From 4c492122dd0d4b3c86e89a9fc608ce25bc5e5a1e Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Tue, 6 Jan 2026 12:15:16 +0800 Subject: [PATCH] feat: support announcement image upload # Conflicts: # database.py # db/migrations.py # routes/admin_api/core.py # static/admin/.vite/manifest.json # static/admin/assets/AnnouncementsPage-Btl9JP7M.js # static/admin/assets/EmailPage-CwqlBGU2.js # static/admin/assets/FeedbacksPage-B_qDNL3q.js # static/admin/assets/LogsPage-DzdymdrQ.js # static/admin/assets/ReportPage-Bp26gOA-.js # static/admin/assets/SettingsPage-__r25pN8.js # static/admin/assets/SystemPage-C1OfxrU-.js # static/admin/assets/UsersPage-DhnABKcY.js # static/admin/assets/email-By53DCWv.js # static/admin/assets/email-ByiJ74rd.js # static/admin/assets/email-DkWacopQ.js # static/admin/assets/index-D5wU2pVd.js # static/admin/assets/tasks-1acmkoIX.js # static/admin/assets/update-DdQLVpC3.js # static/admin/assets/users-B1w166uc.js # static/admin/assets/users-CPJP5r-B.js # static/admin/assets/users-CnIyvFWm.js # static/admin/index.html # static/app/.vite/manifest.json # static/app/assets/AccountsPage-C48gJL8c.js # static/app/assets/AccountsPage-D387XNsv.js # static/app/assets/AccountsPage-DBJCAsJz.js # static/app/assets/LoginPage-BgK_Vl6X.js # static/app/assets/RegisterPage-CwADxWfe.js # static/app/assets/ResetPasswordPage-CVfZX_5z.js # static/app/assets/SchedulesPage-CWuZpJ5h.js # static/app/assets/SchedulesPage-Dw-mXbG5.js # static/app/assets/SchedulesPage-DwzGOBuc.js # static/app/assets/ScreenshotsPage-C6vX2U3V.js # static/app/assets/ScreenshotsPage-CreOSjVc.js # static/app/assets/ScreenshotsPage-DuTeRzLR.js # static/app/assets/VerifyResultPage-BzGlCgtE.js # static/app/assets/VerifyResultPage-CN_nr4V6.js # static/app/assets/VerifyResultPage-CNbQc83z.js # static/app/assets/accounts-BFaVMUve.js # static/app/assets/accounts-BYq3lLev.js # static/app/assets/accounts-Bc9j2moH.js # static/app/assets/auth-Dk_ApO4B.js # static/app/assets/index-BIng7uZJ.css # static/app/assets/index-CDxVo_1Z.js # static/app/index.html --- admin-frontend/src/api/announcements.js | 8 +- .../src/pages/AnnouncementsPage.vue | 135 +++++++++++++++++- app-frontend/src/layouts/AppLayout.vue | 17 +++ app_config.py | 5 + database.py | 2 +- db/announcements.py | 11 +- db/migrations.py | 15 ++ db/schema.py | 1 + routes/admin_api/core.py | 64 ++++++++- routes/api_user.py | 1 + static/admin/.vite/manifest.json | 56 ++++---- .../assets/AnnouncementsPage-BVJSt6Za.js | 1 + .../assets/AnnouncementsPage-BhIwmMSX.css | 1 + .../assets/AnnouncementsPage-Btl9JP7M.js | 1 - .../assets/AnnouncementsPage-CjcC-aWD.css | 1 - ...Page-Cp_IS7bH.js => EmailPage-BU-aLz58.js} | 2 +- ...-BqmEZmow.js => FeedbacksPage-BeAqV1pz.js} | 2 +- ...sPage-CcePQXnM.js => LogsPage-C25hwKy7.js} | 2 +- ...age-CHVUWk0n.js => ReportPage-DcTJhEeS.js} | 2 +- ...e-DTjNosEF.js => SecurityPage-6yFvpr3a.js} | 2 +- ...e-68qb85yN.js => SettingsPage-CixYahEQ.js} | 2 +- ...age-DHToRQFv.js => SystemPage-oGtrzs5v.js} | 2 +- ...Page-lUtZTPoX.js => UsersPage-1x6SHDoq.js} | 2 +- .../{email-ByiJ74rd.js => email-Ct3wXHpw.js} | 2 +- static/admin/assets/index-CRihQT8G.js | 30 ++++ static/admin/assets/index-DL8gIzDq.js | 30 ---- static/admin/assets/index-DxTKnDeo.css | 1 + static/admin/assets/index-_5Ec1Hmd.css | 1 - ...{system-CS-UmZao.js => system-BTlwVb4V.js} | 2 +- .../{tasks-DM1Bwi9j.js => tasks-DjrYX1kb.js} | 2 +- .../{users-B1w166uc.js => users-DXwhA9ak.js} | 2 +- static/admin/index.html | 4 +- static/app/.vite/manifest.json | 36 ++--- ...e-D387XNsv.js => AccountsPage-BWLUZGwv.js} | 2 +- ...Page-D_X-BqcF.js => LoginPage-iG0xN46c.js} | 2 +- ...e-DxPLUv5i.js => RegisterPage-DKtQs7_M.js} | 2 +- ...Ly5yR.js => ResetPasswordPage-DY3NSKCZ.js} | 2 +- ...-CWuZpJ5h.js => SchedulesPage-CtGw4yPv.js} | 2 +- ...uTeRzLR.js => ScreenshotsPage-BfoUmvOa.js} | 2 +- ...bQc83z.js => VerifyResultPage-QlobZKo3.js} | 2 +- ...ounts-BYq3lLev.js => accounts-XHQJZlkc.js} | 2 +- .../{auth-xwgKTSGk.js => auth-CXXxlo9_.js} | 2 +- .../{index-CGLq5RWF.js => index-B3Praptc.js} | 4 +- static/app/assets/index-BIng7uZJ.css | 1 - static/app/assets/index-HG0IyblY.css | 1 + static/app/index.html | 4 +- templates/admin_legacy.html | 83 ++++++++++- templates/index.html | 15 ++ 48 files changed, 450 insertions(+), 121 deletions(-) create mode 100644 static/admin/assets/AnnouncementsPage-BVJSt6Za.js create mode 100644 static/admin/assets/AnnouncementsPage-BhIwmMSX.css delete mode 100644 static/admin/assets/AnnouncementsPage-Btl9JP7M.js delete mode 100644 static/admin/assets/AnnouncementsPage-CjcC-aWD.css rename static/admin/assets/{EmailPage-Cp_IS7bH.js => EmailPage-BU-aLz58.js} (92%) rename static/admin/assets/{FeedbacksPage-BqmEZmow.js => FeedbacksPage-BeAqV1pz.js} (97%) rename static/admin/assets/{LogsPage-CcePQXnM.js => LogsPage-C25hwKy7.js} (97%) rename static/admin/assets/{ReportPage-CHVUWk0n.js => ReportPage-DcTJhEeS.js} (99%) rename static/admin/assets/{SecurityPage-DTjNosEF.js => SecurityPage-6yFvpr3a.js} (99%) rename static/admin/assets/{SettingsPage-68qb85yN.js => SettingsPage-CixYahEQ.js} (98%) rename static/admin/assets/{SystemPage-DHToRQFv.js => SystemPage-oGtrzs5v.js} (98%) rename static/admin/assets/{UsersPage-lUtZTPoX.js => UsersPage-1x6SHDoq.js} (98%) rename static/admin/assets/{email-ByiJ74rd.js => email-Ct3wXHpw.js} (86%) create mode 100644 static/admin/assets/index-CRihQT8G.js delete mode 100644 static/admin/assets/index-DL8gIzDq.js create mode 100644 static/admin/assets/index-DxTKnDeo.css delete mode 100644 static/admin/assets/index-_5Ec1Hmd.css rename static/admin/assets/{system-CS-UmZao.js => system-BTlwVb4V.js} (78%) rename static/admin/assets/{tasks-DM1Bwi9j.js => tasks-DjrYX1kb.js} (87%) rename static/admin/assets/{users-B1w166uc.js => users-DXwhA9ak.js} (90%) rename static/app/assets/{AccountsPage-D387XNsv.js => AccountsPage-BWLUZGwv.js} (99%) rename static/app/assets/{LoginPage-D_X-BqcF.js => LoginPage-iG0xN46c.js} (98%) rename static/app/assets/{RegisterPage-DxPLUv5i.js => RegisterPage-DKtQs7_M.js} (97%) rename static/app/assets/{ResetPasswordPage-pZ9Ly5yR.js => ResetPasswordPage-DY3NSKCZ.js} (96%) rename static/app/assets/{SchedulesPage-CWuZpJ5h.js => SchedulesPage-CtGw4yPv.js} (99%) rename static/app/assets/{ScreenshotsPage-DuTeRzLR.js => ScreenshotsPage-BfoUmvOa.js} (99%) rename static/app/assets/{VerifyResultPage-CNbQc83z.js => VerifyResultPage-QlobZKo3.js} (97%) rename static/app/assets/{accounts-BYq3lLev.js => accounts-XHQJZlkc.js} (93%) rename static/app/assets/{auth-xwgKTSGk.js => auth-CXXxlo9_.js} (89%) rename static/app/assets/{index-CGLq5RWF.js => index-B3Praptc.js} (97%) delete mode 100644 static/app/assets/index-BIng7uZJ.css create mode 100644 static/app/assets/index-HG0IyblY.css diff --git a/admin-frontend/src/api/announcements.js b/admin-frontend/src/api/announcements.js index 111020e..6896159 100644 --- a/admin-frontend/src/api/announcements.js +++ b/admin-frontend/src/api/announcements.js @@ -10,6 +10,13 @@ export async function createAnnouncement(payload) { return data } +export async function uploadAnnouncementImage(file) { + const formData = new FormData() + formData.append('file', file) + const { data } = await api.post('/announcements/upload_image', formData) + return data +} + export async function activateAnnouncement(id) { const { data } = await api.post(`/announcements/${id}/activate`) return data @@ -24,4 +31,3 @@ export async function deleteAnnouncement(id) { const { data } = await api.delete(`/announcements/${id}`) return data } - diff --git a/admin-frontend/src/pages/AnnouncementsPage.vue b/admin-frontend/src/pages/AnnouncementsPage.vue index 330193b..e9b9254 100644 --- a/admin-frontend/src/pages/AnnouncementsPage.vue +++ b/admin-frontend/src/pages/AnnouncementsPage.vue @@ -1,6 +1,7 @@ - + +
diff --git a/static/app/.vite/manifest.json b/static/app/.vite/manifest.json index e5f97e1..8e02b09 100644 --- a/static/app/.vite/manifest.json +++ b/static/app/.vite/manifest.json @@ -1,20 +1,20 @@ { - "_accounts-BYq3lLev.js": { - "file": "assets/accounts-BYq3lLev.js", + "_accounts-XHQJZlkc.js": { + "file": "assets/accounts-XHQJZlkc.js", "name": "accounts", "imports": [ "index.html" ] }, - "_auth-xwgKTSGk.js": { - "file": "assets/auth-xwgKTSGk.js", + "_auth-CXXxlo9_.js": { + "file": "assets/auth-CXXxlo9_.js", "name": "auth", "imports": [ "index.html" ] }, "index.html": { - "file": "assets/index-CGLq5RWF.js", + "file": "assets/index-B3Praptc.js", "name": "index", "src": "index.html", "isEntry": true, @@ -28,16 +28,16 @@ "src/pages/ScreenshotsPage.vue" ], "css": [ - "assets/index-BIng7uZJ.css" + "assets/index-HG0IyblY.css" ] }, "src/pages/AccountsPage.vue": { - "file": "assets/AccountsPage-D387XNsv.js", + "file": "assets/AccountsPage-BWLUZGwv.js", "name": "AccountsPage", "src": "src/pages/AccountsPage.vue", "isDynamicEntry": true, "imports": [ - "_accounts-BYq3lLev.js", + "_accounts-XHQJZlkc.js", "index.html" ], "css": [ @@ -45,51 +45,51 @@ ] }, "src/pages/LoginPage.vue": { - "file": "assets/LoginPage-D_X-BqcF.js", + "file": "assets/LoginPage-iG0xN46c.js", "name": "LoginPage", "src": "src/pages/LoginPage.vue", "isDynamicEntry": true, "imports": [ "index.html", - "_auth-xwgKTSGk.js" + "_auth-CXXxlo9_.js" ], "css": [ "assets/LoginPage-CnwOLKJz.css" ] }, "src/pages/RegisterPage.vue": { - "file": "assets/RegisterPage-DxPLUv5i.js", + "file": "assets/RegisterPage-DKtQs7_M.js", "name": "RegisterPage", "src": "src/pages/RegisterPage.vue", "isDynamicEntry": true, "imports": [ "index.html", - "_auth-xwgKTSGk.js" + "_auth-CXXxlo9_.js" ], "css": [ "assets/RegisterPage-BOcNcW5D.css" ] }, "src/pages/ResetPasswordPage.vue": { - "file": "assets/ResetPasswordPage-pZ9Ly5yR.js", + "file": "assets/ResetPasswordPage-DY3NSKCZ.js", "name": "ResetPasswordPage", "src": "src/pages/ResetPasswordPage.vue", "isDynamicEntry": true, "imports": [ "index.html", - "_auth-xwgKTSGk.js" + "_auth-CXXxlo9_.js" ], "css": [ "assets/ResetPasswordPage-DybfLMAw.css" ] }, "src/pages/SchedulesPage.vue": { - "file": "assets/SchedulesPage-CWuZpJ5h.js", + "file": "assets/SchedulesPage-CtGw4yPv.js", "name": "SchedulesPage", "src": "src/pages/SchedulesPage.vue", "isDynamicEntry": true, "imports": [ - "_accounts-BYq3lLev.js", + "_accounts-XHQJZlkc.js", "index.html" ], "css": [ @@ -97,7 +97,7 @@ ] }, "src/pages/ScreenshotsPage.vue": { - "file": "assets/ScreenshotsPage-DuTeRzLR.js", + "file": "assets/ScreenshotsPage-BfoUmvOa.js", "name": "ScreenshotsPage", "src": "src/pages/ScreenshotsPage.vue", "isDynamicEntry": true, @@ -109,7 +109,7 @@ ] }, "src/pages/VerifyResultPage.vue": { - "file": "assets/VerifyResultPage-CNbQc83z.js", + "file": "assets/VerifyResultPage-QlobZKo3.js", "name": "VerifyResultPage", "src": "src/pages/VerifyResultPage.vue", "isDynamicEntry": true, diff --git a/static/app/assets/AccountsPage-D387XNsv.js b/static/app/assets/AccountsPage-BWLUZGwv.js similarity index 99% rename from static/app/assets/AccountsPage-D387XNsv.js rename to static/app/assets/AccountsPage-BWLUZGwv.js index 6fd5ce9..117b02a 100644 --- a/static/app/assets/AccountsPage-D387XNsv.js +++ b/static/app/assets/AccountsPage-BWLUZGwv.js @@ -1 +1 @@ -import{f as Ft,b as He,a as Ke,c as Mt,s as $t,d as zt,t as Ht,e as Kt,g as Wt,u as Yt,h as Jt}from"./accounts-BYq3lLev.js";import{p as Xt,_ as Qt,n as Gt,a as U,r as X,q as _e,c as F,o as jt,m as Zt,b as L,d as c,h as se,i as Q,w as h,e as E,f as x,g as y,t as A,k as w,s as es,F as ne,x as ge,E as _,y as G}from"./index-CGLq5RWF.js";async function ts(){const{data:n}=await Xt.get("/run_stats");return n}const I=Object.create(null);I.open="0";I.close="1";I.ping="2";I.pong="3";I.message="4";I.upgrade="5";I.noop="6";const ae=Object.create(null);Object.keys(I).forEach(n=>{ae[I[n]]=n});const ke={type:"error",data:"parser error"},je=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Ze=typeof ArrayBuffer=="function",et=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,Ce=({type:n,data:e},t,s)=>je&&e instanceof Blob?t?s(e):We(e,s):Ze&&(e instanceof ArrayBuffer||et(e))?t?s(e):We(new Blob([e]),s):s(I[n]+(e||"")),We=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function Ye(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let we;function ss(n,e){if(je&&n.data instanceof Blob)return n.data.arrayBuffer().then(Ye).then(e);if(Ze&&(n.data instanceof ArrayBuffer||et(n.data)))return e(Ye(n.data));Ce(n,!1,t=>{we||(we=new TextEncoder),e(we.encode(t))})}const Je="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Z=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n(T(),B(He,null,[U($y,{move:a.value,ratio:c.value,size:r.value,always:v.always},null,8,["move","ratio","size","always"]),U($y,{move:l.value,ratio:u.value,size:i.value,vertical:"",always:v.always},null,8,["move","ratio","size","always"])],64))}});var OL=$e(TL,[["__file","bar.vue"]]);const $L=Te({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:Q([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Jn(["ariaLabel","ariaOrientation"])}),tk={"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Ye)},NL="ElScrollbar",RL=G({name:NL}),xL=G({...RL,props:$L,emits:tk,setup(e,{expose:t,emit:n}){const o=e,a=Ce("scrollbar");let l,r,i,u=0,c=0,d="";const f={bottom:!1,top:!1,right:!1,left:!1},v=A(),p=A(),m=A(),h=A(),g=S(()=>{const _={},R=en(o.height),V=en(o.maxHeight);return R&&(_.height=R),V&&(_.maxHeight=V),[o.wrapStyle,_]}),b=S(()=>[o.wrapClass,a.e("wrap"),{[a.em("wrap","hidden-default")]:!o.native}]),C=S(()=>[a.e("view"),o.viewClass]),w=_=>{var R;return(R=f[_])!=null?R:!1},y={top:"bottom",bottom:"top",left:"right",right:"left"},k=_=>{const R=y[d];if(!R)return;const V=_[d],q=_[R];V&&!f[d]&&(f[d]=!0),!q&&f[R]&&(f[R]=!1)},E=()=>{var _;if(p.value){(_=h.value)==null||_.handleScroll(p.value);const R=u,V=c;u=p.value.scrollTop,c=p.value.scrollLeft;const q={bottom:u+p.value.clientHeight>=p.value.scrollHeight-o.distance,top:u<=o.distance&&R!==0,right:c+p.value.clientWidth>=p.value.scrollWidth-o.distance&&V!==c,left:c<=o.distance&&V!==0};if(n("scroll",{scrollTop:u,scrollLeft:c}),R!==u&&(d=u>R?"bottom":"top"),V!==c&&(d=c>V?"right":"left"),o.distance>0){if(w(d))return;k(q)}q[d]&&n("end-reached",d)}};function O(_,R){it(_)?p.value.scrollTo(_):Ye(_)&&Ye(R)&&p.value.scrollTo(_,R)}const x=_=>{Ye(_)&&(p.value.scrollTop=_)},$=_=>{Ye(_)&&(p.value.scrollLeft=_)},M=()=>{var _;(_=h.value)==null||_.update(),f[d]=!1};return pe(()=>o.noresize,_=>{_?(l?.(),r?.(),i?.()):({stop:l}=Gt(m,M),{stop:r}=Gt(p,M),i=Pt("resize",M))},{immediate:!0}),pe(()=>[o.maxHeight,o.height],()=>{o.native||Le(()=>{var _;M(),p.value&&((_=h.value)==null||_.handleScroll(p.value))})}),Ct(lm,$t({scrollbarElement:v,wrapElement:p})),Vd(()=>{p.value&&(p.value.scrollTop=u,p.value.scrollLeft=c)}),ht(()=>{o.native||Le(()=>{M()})}),ta(()=>M()),t({wrapRef:p,update:M,scrollTo:O,setScrollTop:x,setScrollLeft:$,handleScroll:E}),(_,R)=>(T(),B("div",{ref_key:"scrollbarRef",ref:v,class:I(s(a).b())},[H("div",{ref_key:"wrapRef",ref:p,class:I(s(b)),style:qe(s(g)),tabindex:_.tabindex,onScroll:E},[(T(),ie(dt(_.tag),{id:_.id,ref_key:"resizeRef",ref:m,class:I(s(C)),style:qe(_.viewStyle),role:_.role,"aria-label":_.ariaLabel,"aria-orientation":_.ariaOrientation},{default:Y(()=>[re(_.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,["tabindex"]),_.native?le("v-if",!0):(T(),ie(OL,{key:0,ref_key:"barRef",ref:h,always:_.always,"min-size":_.minSize},null,8,["always","min-size"]))],2))}});var IL=$e(xL,[["__file","scrollbar.vue"]]);const Xo=rt(IL),rm=Symbol("popper"),nk=Symbol("popperContent"),ok=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],ak=Te({role:{type:String,values:ok,default:"tooltip"}}),PL=G({name:"ElPopper",inheritAttrs:!1}),ML=G({...PL,props:ak,setup(e,{expose:t}){const n=e,o=A(),a=A(),l=A(),r=A(),i=S(()=>n.role),u={triggerRef:o,popperInstanceRef:a,contentRef:l,referenceRef:r,role:i};return t(u),Ct(rm,u),(c,d)=>re(c.$slots,"default")}});var AL=$e(ML,[["__file","popper.vue"]]);const LL=G({name:"ElPopperArrow",inheritAttrs:!1}),DL=G({...LL,setup(e,{expose:t}){const n=Ce("popper"),{arrowRef:o,arrowStyle:a}=Ae(nk,void 0);return Mt(()=>{o.value=void 0}),t({arrowRef:o}),(l,r)=>(T(),B("span",{ref_key:"arrowRef",ref:o,class:I(s(n).e("arrow")),style:qe(s(a)),"data-popper-arrow":""},null,6))}});var BL=$e(DL,[["__file","arrow.vue"]]);const lk=Te({virtualRef:{type:Q(Object)},virtualTriggering:Boolean,onMouseenter:{type:Q(Function)},onMouseleave:{type:Q(Function)},onClick:{type:Q(Function)},onKeydown:{type:Q(Function)},onFocus:{type:Q(Function)},onBlur:{type:Q(Function)},onContextmenu:{type:Q(Function)},id:String,open:Boolean}),rk=Symbol("elForwardRef"),FL=e=>{Ct(rk,{setForwardRef:n=>{e.value=n}})},VL=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),zL="ElOnlyChild",sk=G({name:zL,setup(e,{slots:t,attrs:n}){var o;const a=Ae(rk),l=VL((o=a?.setForwardRef)!=null?o:Lt);return()=>{var r;const i=(r=t.default)==null?void 0:r.call(t,n);if(!i)return null;const[u,c]=ik(i);return u?ct(Xa(u,n),[[l]]):null}}});function ik(e){if(!e)return[null,0];const t=e,n=t.filter(o=>o.type!==cn).length;for(const o of t){if(it(o))switch(o.type){case cn:continue;case Os:case"svg":return[Ny(o),n];case He:return ik(o.children);default:return[o,n]}return[Ny(o),n]}return[null,0]}function Ny(e){const t=Ce("only-child");return U("span",{class:t.e("content")},[e])}const HL=G({name:"ElPopperTrigger",inheritAttrs:!1}),KL=G({...HL,props:lk,setup(e,{expose:t}){const n=e,{role:o,triggerRef:a}=Ae(rm,void 0);FL(a);const l=S(()=>i.value?n.id:void 0),r=S(()=>{if(o&&o.value==="tooltip")return n.open&&n.id?n.id:void 0}),i=S(()=>{if(o&&o.value!=="tooltip")return o.value}),u=S(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return ht(()=>{pe(()=>n.virtualRef,f=>{f&&(a.value=Tn(f))},{immediate:!0}),pe(a,(f,v)=>{c?.(),c=void 0,co(v)&&d.forEach(p=>{const m=n[p];m&&v.removeEventListener(p.slice(2).toLowerCase(),m,["onFocus","onBlur"].includes(p))}),co(f)&&(d.forEach(p=>{const m=n[p];m&&f.addEventListener(p.slice(2).toLowerCase(),m,["onFocus","onBlur"].includes(p))}),Bi(f)&&(c=pe([l,r,i,u],p=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((m,h)=>{dn(p[h])?f.removeAttribute(m):f.setAttribute(m,p[h])})},{immediate:!0}))),co(v)&&Bi(v)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(p=>v.removeAttribute(p))},{immediate:!0})}),Mt(()=>{if(c?.(),c=void 0,a.value&&co(a.value)){const f=a.value;d.forEach(v=>{const p=n[v];p&&f.removeEventListener(v.slice(2).toLowerCase(),p,["onFocus","onBlur"].includes(v))}),a.value=void 0}}),t({triggerRef:a}),(f,v)=>f.virtualTriggering?le("v-if",!0):(T(),ie(s(sk),vt({key:0},f.$attrs,{"aria-controls":s(l),"aria-describedby":s(r),"aria-expanded":s(u),"aria-haspopup":s(i)}),{default:Y(()=>[re(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var WL=$e(KL,[["__file","trigger.vue"]]);const ap="focus-trap.focus-after-trapped",lp="focus-trap.focus-after-released",jL="focus-trap.focusout-prevented",Ry={cancelable:!0,bubbles:!1},UL={cancelable:!0,bubbles:!1},xy="focusAfterTrapped",Iy="focusAfterReleased",uk=Symbol("elFocusTrap"),sm=A(),cf=A(0),im=A(0);let qu=0;const ck=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const a=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||a?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},Py=(e,t)=>{for(const n of e)if(!qL(n,t))return n},qL=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},YL=e=>{const t=ck(e),n=Py(t,e),o=Py(t.reverse(),e);return[n,o]},GL=e=>e instanceof HTMLInputElement&&"select"in e,ml=(e,t)=>{if(e){const n=document.activeElement;gu(e,{preventScroll:!0}),im.value=window.performance.now(),e!==n&&GL(e)&&t&&e.select()}};function My(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const XL=()=>{let e=[];return{push:o=>{const a=e[0];a&&o!==a&&a.pause(),e=My(e,o),e.unshift(o)},remove:o=>{var a,l;e=My(e,o),(l=(a=e[0])==null?void 0:a.resume)==null||l.call(a)}}},JL=(e,t=!1)=>{const n=document.activeElement;for(const o of e)if(ml(o,t),document.activeElement!==n)return},Ay=XL(),ZL=()=>cf.value>im.value,Yu=()=>{sm.value="pointer",cf.value=window.performance.now()},Ly=()=>{sm.value="keyboard",cf.value=window.performance.now()},QL=()=>(ht(()=>{qu===0&&(document.addEventListener("mousedown",Yu),document.addEventListener("touchstart",Yu),document.addEventListener("keydown",Ly)),qu++}),Mt(()=>{qu--,qu<=0&&(document.removeEventListener("mousedown",Yu),document.removeEventListener("touchstart",Yu),document.removeEventListener("keydown",Ly))}),{focusReason:sm,lastUserFocusTimestamp:cf,lastAutomatedFocusTimestamp:im}),Gu=e=>new CustomEvent(jL,{...UL,detail:e}),_e={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},Sn=(e,t,{checkForDefaultPrevented:n=!0}={})=>a=>{const l=e?.(a);if(n===!1||!l)return t?.(a)},Dy=e=>t=>t.pointerType==="mouse"?e(t):void 0,zt=e=>{if(e.code&&e.code!=="Unidentified")return e.code;const t=dk(e);if(t){if(Object.values(_e).includes(t))return t;switch(t){case" ":return _e.space;default:return""}}return""},dk=e=>{let t=e.key&&e.key!=="Unidentified"?e.key:"";if(!t&&e.type==="keyup"&&XS()){const n=e.target;t=n.value.charAt(n.selectionStart-1)}return t};let zr=[];const By=e=>{zt(e)===_e.esc&&zr.forEach(n=>n(e))},eD=e=>{ht(()=>{zr.length===0&&document.addEventListener("keydown",By),It&&zr.push(e)}),Mt(()=>{zr=zr.filter(t=>t!==e),zr.length===0&&It&&document.removeEventListener("keydown",By)})},tD=G({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[xy,Iy,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=A();let o,a;const{focusReason:l}=QL();eD(m=>{e.trapped&&!r.paused&&t("release-requested",m)});const r={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=m=>{if(!e.loop&&!e.trapped||r.paused)return;const{altKey:h,ctrlKey:g,metaKey:b,currentTarget:C,shiftKey:w}=m,{loop:y}=e,E=zt(m)===_e.tab&&!h&&!g&&!b,O=document.activeElement;if(E&&O){const x=C,[$,M]=YL(x);if($&&M){if(!w&&O===M){const R=Gu({focusReason:l.value});t("focusout-prevented",R),R.defaultPrevented||(m.preventDefault(),y&&ml($,!0))}else if(w&&[$,x].includes(O)){const R=Gu({focusReason:l.value});t("focusout-prevented",R),R.defaultPrevented||(m.preventDefault(),y&&ml(M,!0))}}else if(O===x){const R=Gu({focusReason:l.value});t("focusout-prevented",R),R.defaultPrevented||m.preventDefault()}}};Ct(uk,{focusTrapRef:n,onKeydown:i}),pe(()=>e.focusTrapEl,m=>{m&&(n.value=m)},{immediate:!0}),pe([n],([m],[h])=>{m&&(m.addEventListener("keydown",i),m.addEventListener("focusin",d),m.addEventListener("focusout",f)),h&&(h.removeEventListener("keydown",i),h.removeEventListener("focusin",d),h.removeEventListener("focusout",f))});const u=m=>{t(xy,m)},c=m=>t(Iy,m),d=m=>{const h=s(n);if(!h)return;const g=m.target,b=m.relatedTarget,C=g&&h.contains(g);e.trapped||b&&h.contains(b)||(o=b),C&&t("focusin",m),!r.paused&&e.trapped&&(C?a=g:ml(a,!0))},f=m=>{const h=s(n);if(!(r.paused||!h))if(e.trapped){const g=m.relatedTarget;!dn(g)&&!h.contains(g)&&setTimeout(()=>{if(!r.paused&&e.trapped){const b=Gu({focusReason:l.value});t("focusout-prevented",b),b.defaultPrevented||ml(a,!0)}},0)}else{const g=m.target;g&&h.contains(g)||t("focusout",m)}};async function v(){await Le();const m=s(n);if(m){Ay.push(r);const h=m.contains(document.activeElement)?o:document.activeElement;if(o=h,!m.contains(h)){const b=new Event(ap,Ry);m.addEventListener(ap,u),m.dispatchEvent(b),b.defaultPrevented||Le(()=>{let C=e.focusStartEl;ze(C)||(ml(C),document.activeElement!==C&&(C="first")),C==="first"&&JL(ck(m),!0),(document.activeElement===h||C==="container")&&ml(m)})}}}function p(){const m=s(n);if(m){m.removeEventListener(ap,u);const h=new CustomEvent(lp,{...Ry,detail:{focusReason:l.value}});m.addEventListener(lp,c),m.dispatchEvent(h),!h.defaultPrevented&&(l.value=="keyboard"||!ZL()||m.contains(document.activeElement))&&ml(o??document.body),m.removeEventListener(lp,c),Ay.remove(r),o=null,a=null}}return ht(()=>{e.trapped&&v(),pe(()=>e.trapped,m=>{m?v():p()})}),Mt(()=>{e.trapped&&p(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",f),n.value=void 0),o=null,a=null}),{onKeydown:i}}});function nD(e,t,n,o,a,l){return re(e.$slots,"default",{handleKeydown:e.onKeydown})}var Ms=$e(tD,[["render",nD],["__file","focus-trap.vue"]]),po="top",Lo="bottom",Do="right",vo="left",um="auto",yu=[po,Lo,Do,vo],fs="start",Fi="end",oD="clippingParents",fk="viewport",qs="popper",aD="reference",Fy=yu.reduce(function(e,t){return e.concat([t+"-"+fs,t+"-"+Fi])},[]),cl=[].concat(yu,[um]).reduce(function(e,t){return e.concat([t,t+"-"+fs,t+"-"+Fi])},[]),lD="beforeRead",rD="read",sD="afterRead",iD="beforeMain",uD="main",cD="afterMain",dD="beforeWrite",fD="write",pD="afterWrite",vD=[lD,rD,sD,iD,uD,cD,dD,fD,pD];function Ea(e){return e?(e.nodeName||"").toLowerCase():null}function aa(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ps(e){var t=aa(e).Element;return e instanceof t||e instanceof Element}function Po(e){var t=aa(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function cm(e){if(typeof ShadowRoot>"u")return!1;var t=aa(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function hD(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},a=t.attributes[n]||{},l=t.elements[n];!Po(l)||!Ea(l)||(Object.assign(l.style,o),Object.keys(a).forEach(function(r){var i=a[r];i===!1?l.removeAttribute(r):l.setAttribute(r,i===!0?"":i)}))})}function mD(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var a=t.elements[o],l=t.attributes[o]||{},r=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),i=r.reduce(function(u,c){return u[c]="",u},{});!Po(a)||!Ea(a)||(Object.assign(a.style,i),Object.keys(l).forEach(function(u){a.removeAttribute(u)}))})}}var pk={name:"applyStyles",enabled:!0,phase:"write",fn:hD,effect:mD,requires:["computeStyles"]};function ma(e){return e.split("-")[0]}var ur=Math.max,ld=Math.min,vs=Math.round;function hs(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),o=1,a=1;if(Po(e)&&t){var l=e.offsetHeight,r=e.offsetWidth;r>0&&(o=vs(n.width)/r||1),l>0&&(a=vs(n.height)/l||1)}return{width:n.width/o,height:n.height/a,top:n.top/a,right:n.right/o,bottom:n.bottom/a,left:n.left/o,x:n.left/o,y:n.top/a}}function dm(e){var t=hs(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function vk(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&cm(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function tl(e){return aa(e).getComputedStyle(e)}function gD(e){return["table","td","th"].indexOf(Ea(e))>=0}function zl(e){return((ps(e)?e.ownerDocument:e.document)||window.document).documentElement}function df(e){return Ea(e)==="html"?e:e.assignedSlot||e.parentNode||(cm(e)?e.host:null)||zl(e)}function Vy(e){return!Po(e)||tl(e).position==="fixed"?null:e.offsetParent}function bD(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&Po(e)){var o=tl(e);if(o.position==="fixed")return null}var a=df(e);for(cm(a)&&(a=a.host);Po(a)&&["html","body"].indexOf(Ea(a))<0;){var l=tl(a);if(l.transform!=="none"||l.perspective!=="none"||l.contain==="paint"||["transform","perspective"].indexOf(l.willChange)!==-1||t&&l.willChange==="filter"||t&&l.filter&&l.filter!=="none")return a;a=a.parentNode}return null}function wu(e){for(var t=aa(e),n=Vy(e);n&&gD(n)&&tl(n).position==="static";)n=Vy(n);return n&&(Ea(n)==="html"||Ea(n)==="body"&&tl(n).position==="static")?t:n||bD(e)||t}function fm(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function gi(e,t,n){return ur(e,ld(t,n))}function yD(e,t,n){var o=gi(e,t,n);return o>n?n:o}function hk(){return{top:0,right:0,bottom:0,left:0}}function mk(e){return Object.assign({},hk(),e)}function gk(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var wD=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,mk(typeof e!="number"?e:gk(e,yu))};function CD(e){var t,n=e.state,o=e.name,a=e.options,l=n.elements.arrow,r=n.modifiersData.popperOffsets,i=ma(n.placement),u=fm(i),c=[vo,Do].indexOf(i)>=0,d=c?"height":"width";if(!(!l||!r)){var f=wD(a.padding,n),v=dm(l),p=u==="y"?po:vo,m=u==="y"?Lo:Do,h=n.rects.reference[d]+n.rects.reference[u]-r[u]-n.rects.popper[d],g=r[u]-n.rects.reference[u],b=wu(l),C=b?u==="y"?b.clientHeight||0:b.clientWidth||0:0,w=h/2-g/2,y=f[p],k=C-v[d]-f[m],E=C/2-v[d]/2+w,O=gi(y,E,k),x=u;n.modifiersData[o]=(t={},t[x]=O,t.centerOffset=O-E,t)}}function SD(e){var t=e.state,n=e.options,o=n.element,a=o===void 0?"[data-popper-arrow]":o;a!=null&&(typeof a=="string"&&(a=t.elements.popper.querySelector(a),!a)||!vk(t.elements.popper,a)||(t.elements.arrow=a))}var kD={name:"arrow",enabled:!0,phase:"main",fn:CD,effect:SD,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ms(e){return e.split("-")[1]}var ED={top:"auto",right:"auto",bottom:"auto",left:"auto"};function _D(e){var t=e.x,n=e.y,o=window,a=o.devicePixelRatio||1;return{x:vs(t*a)/a||0,y:vs(n*a)/a||0}}function zy(e){var t,n=e.popper,o=e.popperRect,a=e.placement,l=e.variation,r=e.offsets,i=e.position,u=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,f=e.isFixed,v=r.x,p=v===void 0?0:v,m=r.y,h=m===void 0?0:m,g=typeof d=="function"?d({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var b=r.hasOwnProperty("x"),C=r.hasOwnProperty("y"),w=vo,y=po,k=window;if(c){var E=wu(n),O="clientHeight",x="clientWidth";if(E===aa(n)&&(E=zl(n),tl(E).position!=="static"&&i==="absolute"&&(O="scrollHeight",x="scrollWidth")),E=E,a===po||(a===vo||a===Do)&&l===Fi){y=Lo;var $=f&&E===k&&k.visualViewport?k.visualViewport.height:E[O];h-=$-o.height,h*=u?1:-1}if(a===vo||(a===po||a===Lo)&&l===Fi){w=Do;var M=f&&E===k&&k.visualViewport?k.visualViewport.width:E[x];p-=M-o.width,p*=u?1:-1}}var _=Object.assign({position:i},c&&ED),R=d===!0?_D({x:p,y:h}):{x:p,y:h};if(p=R.x,h=R.y,u){var V;return Object.assign({},_,(V={},V[y]=C?"0":"",V[w]=b?"0":"",V.transform=(k.devicePixelRatio||1)<=1?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",V))}return Object.assign({},_,(t={},t[y]=C?h+"px":"",t[w]=b?p+"px":"",t.transform="",t))}function TD(e){var t=e.state,n=e.options,o=n.gpuAcceleration,a=o===void 0?!0:o,l=n.adaptive,r=l===void 0?!0:l,i=n.roundOffsets,u=i===void 0?!0:i,c={placement:ma(t.placement),variation:ms(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,zy(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,zy(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var bk={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:TD,data:{}},Xu={passive:!0};function OD(e){var t=e.state,n=e.instance,o=e.options,a=o.scroll,l=a===void 0?!0:a,r=o.resize,i=r===void 0?!0:r,u=aa(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return l&&c.forEach(function(d){d.addEventListener("scroll",n.update,Xu)}),i&&u.addEventListener("resize",n.update,Xu),function(){l&&c.forEach(function(d){d.removeEventListener("scroll",n.update,Xu)}),i&&u.removeEventListener("resize",n.update,Xu)}}var yk={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:OD,data:{}},$D={left:"right",right:"left",bottom:"top",top:"bottom"};function gc(e){return e.replace(/left|right|bottom|top/g,function(t){return $D[t]})}var ND={start:"end",end:"start"};function Hy(e){return e.replace(/start|end/g,function(t){return ND[t]})}function pm(e){var t=aa(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function vm(e){return hs(zl(e)).left+pm(e).scrollLeft}function RD(e){var t=aa(e),n=zl(e),o=t.visualViewport,a=n.clientWidth,l=n.clientHeight,r=0,i=0;return o&&(a=o.width,l=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=o.offsetLeft,i=o.offsetTop)),{width:a,height:l,x:r+vm(e),y:i}}function xD(e){var t,n=zl(e),o=pm(e),a=(t=e.ownerDocument)==null?void 0:t.body,l=ur(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),r=ur(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),i=-o.scrollLeft+vm(e),u=-o.scrollTop;return tl(a||n).direction==="rtl"&&(i+=ur(n.clientWidth,a?a.clientWidth:0)-l),{width:l,height:r,x:i,y:u}}function hm(e){var t=tl(e),n=t.overflow,o=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+o)}function wk(e){return["html","body","#document"].indexOf(Ea(e))>=0?e.ownerDocument.body:Po(e)&&hm(e)?e:wk(df(e))}function bi(e,t){var n;t===void 0&&(t=[]);var o=wk(e),a=o===((n=e.ownerDocument)==null?void 0:n.body),l=aa(o),r=a?[l].concat(l.visualViewport||[],hm(o)?o:[]):o,i=t.concat(r);return a?i:i.concat(bi(df(r)))}function tv(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ID(e){var t=hs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Ky(e,t){return t===fk?tv(RD(e)):ps(t)?ID(t):tv(xD(zl(e)))}function PD(e){var t=bi(df(e)),n=["absolute","fixed"].indexOf(tl(e).position)>=0,o=n&&Po(e)?wu(e):e;return ps(o)?t.filter(function(a){return ps(a)&&vk(a,o)&&Ea(a)!=="body"}):[]}function MD(e,t,n){var o=t==="clippingParents"?PD(e):[].concat(t),a=[].concat(o,[n]),l=a[0],r=a.reduce(function(i,u){var c=Ky(e,u);return i.top=ur(c.top,i.top),i.right=ld(c.right,i.right),i.bottom=ld(c.bottom,i.bottom),i.left=ur(c.left,i.left),i},Ky(e,l));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function Ck(e){var t=e.reference,n=e.element,o=e.placement,a=o?ma(o):null,l=o?ms(o):null,r=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2,u;switch(a){case po:u={x:r,y:t.y-n.height};break;case Lo:u={x:r,y:t.y+t.height};break;case Do:u={x:t.x+t.width,y:i};break;case vo:u={x:t.x-n.width,y:i};break;default:u={x:t.x,y:t.y}}var c=a?fm(a):null;if(c!=null){var d=c==="y"?"height":"width";switch(l){case fs:u[c]=u[c]-(t[d]/2-n[d]/2);break;case Fi:u[c]=u[c]+(t[d]/2-n[d]/2);break}}return u}function Vi(e,t){t===void 0&&(t={});var n=t,o=n.placement,a=o===void 0?e.placement:o,l=n.boundary,r=l===void 0?oD:l,i=n.rootBoundary,u=i===void 0?fk:i,c=n.elementContext,d=c===void 0?qs:c,f=n.altBoundary,v=f===void 0?!1:f,p=n.padding,m=p===void 0?0:p,h=mk(typeof m!="number"?m:gk(m,yu)),g=d===qs?aD:qs,b=e.rects.popper,C=e.elements[v?g:d],w=MD(ps(C)?C:C.contextElement||zl(e.elements.popper),r,u),y=hs(e.elements.reference),k=Ck({reference:y,element:b,placement:a}),E=tv(Object.assign({},b,k)),O=d===qs?E:y,x={top:w.top-O.top+h.top,bottom:O.bottom-w.bottom+h.bottom,left:w.left-O.left+h.left,right:O.right-w.right+h.right},$=e.modifiersData.offset;if(d===qs&&$){var M=$[a];Object.keys(x).forEach(function(_){var R=[Do,Lo].indexOf(_)>=0?1:-1,V=[po,Lo].indexOf(_)>=0?"y":"x";x[_]+=M[V]*R})}return x}function AD(e,t){t===void 0&&(t={});var n=t,o=n.placement,a=n.boundary,l=n.rootBoundary,r=n.padding,i=n.flipVariations,u=n.allowedAutoPlacements,c=u===void 0?cl:u,d=ms(o),f=d?i?Fy:Fy.filter(function(m){return ms(m)===d}):yu,v=f.filter(function(m){return c.indexOf(m)>=0});v.length===0&&(v=f);var p=v.reduce(function(m,h){return m[h]=Vi(e,{placement:h,boundary:a,rootBoundary:l,padding:r})[ma(h)],m},{});return Object.keys(p).sort(function(m,h){return p[m]-p[h]})}function LD(e){if(ma(e)===um)return[];var t=gc(e);return[Hy(e),t,Hy(t)]}function DD(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var a=n.mainAxis,l=a===void 0?!0:a,r=n.altAxis,i=r===void 0?!0:r,u=n.fallbackPlacements,c=n.padding,d=n.boundary,f=n.rootBoundary,v=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,b=ma(g),C=b===g,w=u||(C||!m?[gc(g)]:LD(g)),y=[g].concat(w).reduce(function(ne,oe){return ne.concat(ma(oe)===um?AD(t,{placement:oe,boundary:d,rootBoundary:f,padding:c,flipVariations:m,allowedAutoPlacements:h}):oe)},[]),k=t.rects.reference,E=t.rects.popper,O=new Map,x=!0,$=y[0],M=0;M[N.indicatorPosition!=="none"?(T(),B("ul",{key:0,class:I(s(q))},[(T(!0),B(He,null,yt(s(f),(z,D)=>ct((T(),B("li",{key:D,class:I([s(_).e("indicator"),s(_).em("indicator",N.direction),s(_).is("active",D===s(l))]),onMouseenter:W=>s(M)(D),onClick:Ze(W=>s(g)(D),["stop"])},[H("button",{class:I(s(_).e("button")),"aria-label":s(R)("el.carousel.indicator",{index:D+1})},[s(u)?(T(),B("span",{key:0},ke(z.props.label),1)):le("v-if",!0)],10,["aria-label"])],42,["onMouseenter","onClick"])),[[Rt,s(O)(D)]])),128))],2)):le("v-if",!0)]),_:1}),N.motionBlur?(T(),B("svg",{key:2,xmlns:"http://www.w3.org/2000/svg",version:"1.1",style:{display:"none"}},[H("defs",null,[H("filter",{id:"elCarouselHorizontal"},[H("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"12,0"})]),H("filter",{id:"elCarouselVertical"},[H("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"0,10"})])])])):le("v-if",!0)],42,["onMouseenter","onMouseleave"]))}});var xB=$e(RB,[["__file","carousel.vue"]]);const IB=Te({name:{type:String,default:""},label:{type:[String,Number],default:""}}),PB=e=>{const t=Ae(Vk),n=pt(),o=A(),a=A(!1),l=A(0),r=A(1),i=A(!1),u=A(!1),c=A(!1),d=A(!1),{isCardType:f,isVertical:v,cardScale:p}=t;function m(y,k,E){const O=E-1,x=k-1,$=k+1,M=E/2;return k===0&&y===O?-1:k===O&&y===0?E:yID
标题
状态
+ 图片
创建时间
操作
@@ -1646,6 +1659,7 @@
${a.is_active ? '启用' : '停用'}
+ ${a.image_url ? '有图' : '-'}
${a.created_at || '-'}