music-assistant-frontend 2.17.23__py3-none-any.whl → 2.17.32__py3-none-any.whl
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.
- music_assistant_frontend/assets/About-BlM2bNNU.css +1 -0
- music_assistant_frontend/assets/About-CV6HY6Cu.js +1 -0
- music_assistant_frontend/assets/{AddManualLink.vue_vue_type_script_setup_true_lang-BPxtYoQW.js → AddManualLink.vue_vue_type_script_setup_true_lang-BeduIUk6.js} +1 -1
- music_assistant_frontend/assets/AddPlayerGroup-Du383NUc.js +1 -0
- music_assistant_frontend/assets/{AddProviderDetails-CelupE7u.js → AddProviderDetails-DH9lhcSK.js} +1 -1
- music_assistant_frontend/assets/AlbumDetails-COxyRlta.js +1 -0
- music_assistant_frontend/assets/ArtistDetails-BXxNva8k.js +1 -0
- music_assistant_frontend/assets/{AudiobookDetails-Bu9SszK7.js → AudiobookDetails-Dosym9RN.js} +1 -1
- music_assistant_frontend/assets/BrowseView-CYbwlBvT.css +1 -0
- music_assistant_frontend/assets/BrowseView-pB3l4XUD.js +1 -0
- music_assistant_frontend/assets/{Button-CsTMTfds.js → Button-BiCjBB20.js} +1 -1
- music_assistant_frontend/assets/{Container-DVyrkl2H.js → Container-CxScoaQr.js} +1 -1
- music_assistant_frontend/assets/{CreateTokenDialog.vue_vue_type_script_setup_true_lang-CDOcvzeY.js → CreateTokenDialog.vue_vue_type_script_setup_true_lang-D2Qjl841.js} +1 -1
- music_assistant_frontend/assets/Default-DHOHMFeE.js +21 -0
- music_assistant_frontend/assets/{Default-BGKNhhwh.css → Default-DJnoQ5hD.css} +1 -1
- music_assistant_frontend/assets/{EditConfig-DgPHHjUH.js → EditConfig-DB9H12KG.js} +2 -2
- music_assistant_frontend/assets/{EditCoreConfig-CbqG7Gbn.js → EditCoreConfig-BMQ7BS3a.js} +1 -1
- music_assistant_frontend/assets/{EditPlayer-K5ooPIlK.js → EditPlayer-DzVgRHoC.js} +1 -1
- music_assistant_frontend/assets/{EditPlayerDsp-B-LTM5mJ.js → EditPlayerDsp-D5V1CkM-.js} +3 -3
- music_assistant_frontend/assets/{EditProvider-LhZSA23p.js → EditProvider-CJto140u.js} +1 -1
- music_assistant_frontend/assets/FrontendConfig-BUkcUaxv.js +1 -0
- music_assistant_frontend/assets/HomeView-oK5JMBeb.js +1 -0
- music_assistant_frontend/assets/ItemsListing-A1ZT1kbn.js +1 -0
- music_assistant_frontend/assets/ItemsListing-DBRgGdb9.css +1 -0
- music_assistant_frontend/assets/LibraryAlbums-DJho375s.js +1 -0
- music_assistant_frontend/assets/LibraryArtists-DcWnNjeu.js +1 -0
- music_assistant_frontend/assets/LibraryAudiobooks-B117NR_V.js +1 -0
- music_assistant_frontend/assets/LibraryPlaylists-CoLgVbrh.js +1 -0
- music_assistant_frontend/assets/LibraryPodcasts-BEHMJqOA.js +1 -0
- music_assistant_frontend/assets/LibraryRadios-BrqYjq3J.js +1 -0
- music_assistant_frontend/assets/LibraryTracks-Bmvmk-4Y.js +1 -0
- music_assistant_frontend/assets/{ListItem-Emhe-KUj.js → ListItem-iWXF1T59.js} +1 -1
- music_assistant_frontend/assets/{MediaItemImages-Df7nKM8C.js → MediaItemImages-BOf5Uj2V.js} +1 -1
- music_assistant_frontend/assets/MediaItemThumb-Dw_UVqvI.js +1 -0
- music_assistant_frontend/assets/{PanelviewItemCompact-pmyYhZHE.js → PanelviewItemCompact-DqrW-65j.js} +1 -1
- music_assistant_frontend/assets/PlayerCard-CAzWxRts.js +1 -0
- music_assistant_frontend/assets/{PlayerCard-BtmAlIKh.css → PlayerCard-FDH7ZKgP.css} +1 -1
- music_assistant_frontend/assets/Players-C2XxoddH.js +1 -0
- music_assistant_frontend/assets/Players-DiFMAcvk.css +1 -0
- music_assistant_frontend/assets/PlaylistDetails-C7LgYTrG.js +1 -0
- music_assistant_frontend/assets/PodcastDetails-DWV8dfji.js +1 -0
- music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-ne-sT3oC.js +8 -0
- music_assistant_frontend/assets/Providers-CNZqCuOW.js +1 -0
- music_assistant_frontend/assets/Providers-Df6R6NDc.css +1 -0
- music_assistant_frontend/assets/RadioDetails-CHnY3szA.js +1 -0
- music_assistant_frontend/assets/RemoteAccessSettings-Bf5s7Cwr.css +1 -0
- music_assistant_frontend/assets/RemoteAccessSettings-C7tOdY92.js +1 -0
- music_assistant_frontend/assets/Search-DnZKGW7M.js +1 -0
- music_assistant_frontend/assets/{ServerLogs-D72XN62w.js → ServerLogs-CN-V6Ykv.js} +1 -1
- music_assistant_frontend/assets/Settings-CUlHRuiJ.js +1 -0
- music_assistant_frontend/assets/{Settings-C1mth5_q.css → Settings-CbTYv9HY.css} +1 -1
- music_assistant_frontend/assets/{SystemConfig-B_pajhS9.js → SystemConfig-CfZR6dJU.js} +1 -1
- music_assistant_frontend/assets/Toolbar-B6JfB3ZK.js +1 -0
- music_assistant_frontend/assets/{Toolbar-CVFN8H4Z.css → Toolbar-DOjWle_n.css} +1 -1
- music_assistant_frontend/assets/TrackDetails-U0dq6UQ-.js +1 -0
- music_assistant_frontend/assets/{UserManagement-DbFQsYHK.js → UserManagement-BL2RuBx9.js} +1 -1
- music_assistant_frontend/assets/{UserProfile--j1jhm_i.js → UserProfile-B0pe-Ula.js} +1 -1
- music_assistant_frontend/assets/{VAlert-Kj2m6TCt.js → VAlert-CqZcE68W.js} +1 -1
- music_assistant_frontend/assets/{VCheckboxBtn-lg4Bkg3S.js → VCheckboxBtn-pFfosXS7.js} +1 -1
- music_assistant_frontend/assets/{VDialog-DofGN8Yd.js → VDialog-oA-qD8nK.js} +1 -1
- music_assistant_frontend/assets/VExpansionPanels-ynbmIXCh.js +1 -0
- music_assistant_frontend/assets/{VForm-DkfI6S-G.js → VForm-lwT5Vjdc.js} +1 -1
- music_assistant_frontend/assets/{VInfiniteScroll-C4zaTPzz.js → VInfiniteScroll-D5IkGjaw.js} +1 -1
- music_assistant_frontend/assets/{VSelect-CMxVGu2h.js → VSelect-BULCN41e.js} +1 -1
- music_assistant_frontend/assets/VSelectionControl-BU644enI.js +1 -0
- music_assistant_frontend/assets/{VSlider-D1oP09L0.js → VSlider-SvfKY3nA.js} +1 -1
- music_assistant_frontend/assets/{VSwitch-jlMLuij2.js → VSwitch-CbeBX82z.js} +1 -1
- music_assistant_frontend/assets/VToolbar-p_Wr_MDA.js +1 -0
- music_assistant_frontend/assets/{VVirtualScroll-RawLIXgS.js → VVirtualScroll-Bmp7pEa7.js} +1 -1
- music_assistant_frontend/assets/{WidgetRow-CkOdk0Z6.js → WidgetRow-CI7rsYFv.js} +1 -1
- music_assistant_frontend/assets/{index-Ci6ypq6O.js → index-Co2Il0FF.js} +55 -54
- music_assistant_frontend/assets/index-W5yBuLNV.css +1 -0
- music_assistant_frontend/assets/{marquee_text_sync-D_iJsxcD.js → marquee_text_sync-CRO4rHS2.js} +1 -1
- music_assistant_frontend/assets/userPreferences-BuMozdux.js +1 -0
- music_assistant_frontend/index.html +2 -2
- music_assistant_frontend/sw.js +1 -1
- {music_assistant_frontend-2.17.23.dist-info → music_assistant_frontend-2.17.32.dist-info}/METADATA +1 -1
- music_assistant_frontend-2.17.32.dist-info/RECORD +148 -0
- music_assistant_frontend/assets/About-Ba3VLBU-.css +0 -1
- music_assistant_frontend/assets/About-RUoOAv4X.js +0 -1
- music_assistant_frontend/assets/AddPlayerGroup-D1w33Hxp.js +0 -1
- music_assistant_frontend/assets/AlbumDetails-DAiKOl2b.js +0 -1
- music_assistant_frontend/assets/ArtistDetails-CB1LbwJB.js +0 -1
- music_assistant_frontend/assets/BrowseView-DsuxryYQ.css +0 -1
- music_assistant_frontend/assets/BrowseView-mL-Ro3la.js +0 -1
- music_assistant_frontend/assets/Default-CbXEYQ2G.js +0 -21
- music_assistant_frontend/assets/FrontendConfig-DK_MHxLP.js +0 -1
- music_assistant_frontend/assets/HomeView-CgBzF01O.js +0 -1
- music_assistant_frontend/assets/ItemsListing-BZL9sVtN.css +0 -1
- music_assistant_frontend/assets/ItemsListing-Bao8c9rP.js +0 -1
- music_assistant_frontend/assets/LibraryAlbums-DFEsqYSE.js +0 -1
- music_assistant_frontend/assets/LibraryArtists-zSFwRyIw.js +0 -1
- music_assistant_frontend/assets/LibraryAudiobooks-CWiohRcm.js +0 -1
- music_assistant_frontend/assets/LibraryPlaylists-BwcUK8IR.js +0 -1
- music_assistant_frontend/assets/LibraryPodcasts-CuYH_JUt.js +0 -1
- music_assistant_frontend/assets/LibraryRadios-C41h1ZhN.js +0 -1
- music_assistant_frontend/assets/LibraryTracks-wXT86JHG.js +0 -1
- music_assistant_frontend/assets/MediaItemThumb-DT_RR5hr.js +0 -1
- music_assistant_frontend/assets/PlayerCard-CEVvwv95.js +0 -1
- music_assistant_frontend/assets/Players-EhQqcnhl.css +0 -1
- music_assistant_frontend/assets/Players-tRk-aPmf.js +0 -1
- music_assistant_frontend/assets/PlaylistDetails-CLa5Z3w1.js +0 -1
- music_assistant_frontend/assets/PodcastDetails-CLsR7Tn5.js +0 -1
- music_assistant_frontend/assets/ProviderDetails.vue_vue_type_script_setup_true_lang-DHz8rGQ5.js +0 -8
- music_assistant_frontend/assets/Providers-B-Yv3fiH.js +0 -1
- music_assistant_frontend/assets/Providers-Dn02HurB.css +0 -1
- music_assistant_frontend/assets/RadioDetails-CLCgG3cC.js +0 -1
- music_assistant_frontend/assets/RemoteAccessSettings-BAwrICX9.js +0 -1
- music_assistant_frontend/assets/RemoteAccessSettings-C5-vEsHF.css +0 -1
- music_assistant_frontend/assets/Search-BTfWUjPY.js +0 -1
- music_assistant_frontend/assets/Settings-BRF4vH9U.js +0 -1
- music_assistant_frontend/assets/Toolbar-DNqs9OXR.js +0 -1
- music_assistant_frontend/assets/TrackDetails-Dae-KK6X.js +0 -1
- music_assistant_frontend/assets/VExpansionPanels-Hd3nRlf_.js +0 -1
- music_assistant_frontend/assets/VSelectionControl-CuEKzbGp.js +0 -1
- music_assistant_frontend/assets/VSnackbar-B4pe7Cfy.css +0 -1
- music_assistant_frontend/assets/VSnackbar-DsamuEmf.js +0 -1
- music_assistant_frontend/assets/VToolbar-CTLIwz5x.js +0 -1
- music_assistant_frontend/assets/index-BMi8F_Xw.css +0 -1
- music_assistant_frontend/assets/userPreferences-D-oqBjc0.js +0 -1
- music_assistant_frontend-2.17.23.dist-info/RECORD +0 -150
- {music_assistant_frontend-2.17.23.dist-info → music_assistant_frontend-2.17.32.dist-info}/WHEEL +0 -0
- {music_assistant_frontend-2.17.23.dist-info → music_assistant_frontend-2.17.32.dist-info}/licenses/LICENSE +0 -0
- {music_assistant_frontend-2.17.23.dist-info → music_assistant_frontend-2.17.32.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{C as $}from"./Container-
|
|
1
|
+
import{C as $}from"./Container-CxScoaQr.js";import{ay as B,J as r,i as b,L as E,a3 as S,b6 as N,aI as R,aA as v,aG as n,o as a,bg as z,E as f,bW as j,M as V,bh as y,aN as i,aU as A,c3 as D,az as _,aB as C,b8 as F,aL as M,aS as O,aP as x,R as P,_ as G}from"./index-Co2Il0FF.js";import{V as H}from"./VSwitch-CbeBX82z.js";import{V as J}from"./VAlert-CqZcE68W.js";import"./index-kQIztB-E.js";import"./VSelectionControl-BU644enI.js";const W={class:"d-flex flex-column flex-sm-row align-start align-sm-center ga-2 w-100"},q={class:"d-flex flex-wrap ga-2"},K={key:0,class:"pa-8 text-center"},Q={class:"mt-4"},X={key:1,class:"pa-8 text-center"},Y={class:"text-error"},Z={key:2,class:"pa-4 text-center"},ee={class:"log-content"},h=150,te=B({__name:"ServerLogs",setup(ae){const c=r(""),m=r(!0),w=r(!1),d=r(""),p=r(!0),u=r(null);let o=null;const k=b(()=>{const e=c.value.split(`
|
|
2
2
|
`);return e.length>h?e.slice(-h).join(`
|
|
3
3
|
`):c.value}),L=b(()=>c.value.split(`
|
|
4
4
|
`).length>h),T=()=>{u.value&&P(()=>{u.value&&(u.value.scrollTop=u.value.scrollHeight)})},g=async(e=!1)=>{try{e?w.value=!0:m.value=!0,d.value="";const t=await fetch(`${x.baseUrl}/music-assistant.log`);if(!t.ok)throw new Error(`Failed to fetch logs: ${t.statusText}`);const s=await t.text(),l=c.value;c.value=s,(!e||s!==l)&&setTimeout(()=>T(),100)}catch(t){d.value=t.message||"Failed to load server logs",console.error("Error loading logs:",t)}finally{m.value=!1,w.value=!1}},U=()=>{g(!0)},I=async()=>{try{const t=await(await fetch(`${x.baseUrl}/music-assistant.log`)).blob(),s=window.URL.createObjectURL(t),l=document.createElement("a");l.href=s,l.download="music-assistant.log",document.body.appendChild(l),l.click(),document.body.removeChild(l),window.URL.revokeObjectURL(s)}catch(e){console.error("Error downloading log:",e)}};return E(p,e=>{e?o=setInterval(()=>{g(!0)},5e3):o&&(clearInterval(o),o=null)}),S(async()=>{await g(!1),p.value&&(o=setInterval(()=>{g(!0)},5e3))}),N(()=>{o&&clearInterval(o)}),(e,t)=>(v(),R($,null,{default:n(()=>[a(O,{class:"mb-4",elevation:"0",variant:"flat"},{default:n(()=>[a(z,{class:"text-subtitle-1 font-weight-bold py-3"},{default:n(()=>[f("div",W,[a(H,{modelValue:p.value,"onUpdate:modelValue":t[0]||(t[0]=s=>p.value=s),color:"primary",density:"compact","hide-details":"",label:e.$t("settings.auto_refresh_log")},null,8,["modelValue","label"]),a(j,{class:"d-none d-sm-block"}),f("div",q,[a(V,{color:"primary",variant:"text",loading:w.value,"prepend-icon":"mdi-refresh",size:"small",onClick:U},{default:n(()=>[y(i(e.$t("settings.reload")),1)]),_:1},8,["loading"]),a(V,{color:"primary",variant:"elevated","prepend-icon":"mdi-download",size:"small",onClick:I},{default:n(()=>[y(i(e.$t("settings.download_log")),1)]),_:1})])])]),_:1}),a(A),a(D,{class:"pa-0"},{default:n(()=>[m.value?(v(),_("div",K,[a(F,{indeterminate:"",color:"primary"}),f("div",Q,i(e.$t("loading")),1)])):d.value?(v(),_("div",X,[a(M,{icon:"mdi-alert-circle",color:"error",size:"48",class:"mb-4"}),f("div",Y,i(d.value),1)])):L.value?(v(),_("div",Z,[a(J,{type:"info",variant:"tonal"},{default:n(()=>[y(i(e.$t("settings.log_truncated",[h])),1)]),_:1})])):C("",!0),!m.value&&!d.value?(v(),_("div",{key:3,ref_key:"logContainer",ref:u,class:"log-container"},[f("pre",ee,i(k.value),1)],512)):C("",!0)]),_:1})]),_:1})]),_:1}))}}),ce=G(te,[["__scopeId","data-v-30a4366c"]]);export{ce as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as z}from"./Container-CxScoaQr.js";import{T as $}from"./Toolbar-B6JfB3ZK.js";import{g as B,p as w,n as P,E as k,q as I,r as D,C as M,cy as E,i as p,bZ as F,ao as U,o as r,ae as N,x as T,cz as Z,av as j,b$ as q,c as G,d as H,f as J,m as K,t as y,z as W,B as Y,cA as Q,aL as S,an as X,aw as ee,ah as A,ay as te,bN as se,by as ie,aE as ae,aP as u,az as O,aA as g,aI as C,aK as ne,aG as o,M as re,aD as _,cB as oe,aU as le,aF as de,aH as ue,aS as ce,aZ as me,aY as pe,aJ as ge,aM as ve,bh as R,aN as L,bS as fe,bE as be,_ as ye}from"./index-Co2Il0FF.js";import{M as _e}from"./index-kQIztB-E.js";import"./VToolbar-p_Wr_MDA.js";const he=w({divider:[Number,String],...M()},"VBreadcrumbsDivider"),Ce=B()({name:"VBreadcrumbsDivider",props:he(),setup(t,l){let{slots:i}=l;return P(()=>k("li",{"aria-hidden":"true",class:D(["v-breadcrumbs-divider",t.class]),style:I(t.style)},[i?.default?.()??t.divider])),{}}}),ke=w({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...M(),...j(q(),["width","maxWidth"]),...Z(),...T({tag:"li"})},"VBreadcrumbsItem"),Ve=B()({name:"VBreadcrumbsItem",props:ke(),setup(t,l){let{slots:i,attrs:v}=l;const m=E(t,v),c=p(()=>t.active||m.isActive?.value),{dimensionStyles:f}=F(t),{textColorClasses:b,textColorStyles:d}=U(()=>c.value?t.activeColor:t.color);return P(()=>r(t.tag,{class:D(["v-breadcrumbs-item",{"v-breadcrumbs-item--active":c.value,"v-breadcrumbs-item--disabled":t.disabled,[`${t.activeClass}`]:c.value&&t.activeClass},b.value,t.class]),style:I([d.value,f.value,t.style]),"aria-current":c.value?"page":void 0},{default:()=>[m.isLink.value?k("a",N({class:"v-breadcrumbs-item--link",onClick:m.navigate},m.linkProps),[i.default?.()??t.title]):i.default?.()??t.title]})),{}}}),Se=w({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:Q,items:{type:Array,default:()=>[]},itemProps:Boolean,...M(),...Y(),...W(),...T({tag:"ul"})},"VBreadcrumbs"),Be=B()({name:"VBreadcrumbs",props:Se(),setup(t,l){let{slots:i}=l;const{backgroundColorClasses:v,backgroundColorStyles:m}=G(()=>t.bgColor),{densityClasses:c}=H(t),{roundedClasses:f}=J(t);K({VBreadcrumbsDivider:{divider:y(()=>t.divider)},VBreadcrumbsItem:{activeClass:y(()=>t.activeClass),activeColor:y(()=>t.activeColor),color:y(()=>t.color),disabled:y(()=>t.disabled)}});const b=p(()=>t.items.map(d=>typeof d=="string"?{item:{title:d},raw:d}:{item:d,raw:d}));return P(()=>{const d=!!(i.prepend||t.icon);return r(t.tag,{class:D(["v-breadcrumbs",v.value,c.value,f.value,t.class]),style:I([m.value,t.style])},{default:()=>[d&&k("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[i.prepend?r(X,{key:"prepend-defaults",disabled:!t.icon,defaults:{VIcon:{icon:t.icon,start:!0}}},i.prepend):r(S,{key:"prepend-icon",start:!0,icon:t.icon},null)]),b.value.map((h,s,n)=>{let{item:e,raw:a}=h;return k(A,null,[i.item?.({item:e,index:s})??r(Ve,N({key:s,disabled:s>=n.length-1},typeof e=="string"?{title:e}:e,t.itemProps&&ee(a)?a:{}),{default:i.title?()=>i.title?.({item:e,index:s}):void 0}),s<n.length-1&&r(Ce,null,{default:i.divider?()=>i.divider?.({item:a,index:s}):void 0})])}),i.default?.()]})}),{}}}),we=te({__name:"Settings",setup(t){const l=ae(),{t:i}=se(),v=[{name:"profile",label:"auth.profile",description:"settings.profile_description",icon:"mdi-account-cog",color:"indigo",route:{name:"profile"},adminOnly:!1},{name:"providers",label:"settings.providers",description:"settings.providers_description",icon:"mdi-monitor-dashboard",color:"blue",route:{name:"providersettings"},adminOnly:!0},{name:"players",label:"settings.players",description:"settings.players_description",icon:"mdi-speaker-multiple",color:"green",route:{name:"playersettings"},adminOnly:!0},{name:"system",label:"settings.system",description:"settings.system_description",icon:"mdi-server",color:"purple",route:{name:"systemsettings"},adminOnly:!0},{name:"remote_access",label:"settings.remote_access",description:"settings.remote_access_description",icon:"mdi-cloud-lock",color:"deep-purple",route:{name:"remoteaccesssettings"},adminOnly:!0},{name:"frontend",label:"settings.frontend",description:"settings.frontend_description",icon:"mdi-palette",color:"orange",route:{name:"frontendsettings"},adminOnly:!1},{name:"users",label:"auth.user_management",description:"settings.users_description",icon:"mdi-account-multiple",color:"teal",route:{name:"usersettings"},adminOnly:!0},{name:"about",label:"settings.about",description:"settings.about_description",icon:"mdi-information-outline",color:"grey-darken-1",route:{name:"aboutsettings"},adminOnly:!1}],m=p(()=>{const s=ie.isAdmin();return v.filter(n=>!n.adminOnly||s)}),c=p(()=>l.currentRoute.value.name==="settings"),f=p(()=>{const s=l.currentRoute.value.name?.toString()||"";return s==="profile"?"profile":s.includes("player")||s==="addgroup"?"players":s.includes("system")||s.includes("core")||s.includes("serverlog")?"system":s.includes("frontend")?"frontend":s.includes("remoteaccess")?"remote_access":s.includes("user")?"users":s.includes("about")?"about":"providers"}),b=s=>{const n=u.getProvider(s);if(n)return n.name;const e=s.split("--")[0];return u.providerManifests[e]?.name||s},d=p(()=>{const s=l.currentRoute.value,n=s.name?.toString()||"",e=[{title:i("settings.settings"),disabled:!1,href:"#",to:{name:"settings"}}];if(!c.value){const a=f.value;a==="profile"?e.push({title:i("auth.profile"),disabled:n==="profile",to:{name:"profile"}}):a==="players"?e.push({title:i("settings.players"),disabled:n==="playersettings",to:{name:"playersettings"}}):a==="system"?e.push({title:i("settings.system"),disabled:n==="systemsettings",to:{name:"systemsettings"}}):a==="remote_access"?e.push({title:i("settings.remote_access"),disabled:n==="remoteaccesssettings",to:{name:"remoteaccesssettings"}}):a==="frontend"?e.push({title:i("settings.frontend"),disabled:n==="frontendsettings",to:{name:"frontendsettings"}}):a==="users"?e.push({title:i("settings.users"),disabled:n==="usersettings",to:{name:"usersettings"}}):a==="providers"?e.push({title:i("settings.providers"),disabled:n==="providersettings",to:{name:"providersettings"}}):a==="about"&&e.push({title:i("settings.about"),disabled:n==="aboutsettings",to:{name:"aboutsettings"}})}return _e(n).with("addproviderdetails",()=>{e.push({title:i("settings.setup_provider",[s.params.domain||""]),disabled:!0})}).with("editprovider",()=>{e.push({title:b(s.params.instanceId),disabled:!0})}).with("addgroup",()=>{e.push({title:i("settings.add_group_player"),disabled:!0})}).with("editplayer",()=>{e.push({title:i("settings.player_settings"),disabled:!0})}).with("editplayerdsp",()=>{e.push({title:"DSP",disabled:!0})}).with("editcore",()=>{const a=s.params.domain,V=i(`settings.core_module.${a}.name`),x=V!==`settings.core_module.${a}.name`?V:u.providerManifests[a]?.name||a;e.push({title:x,disabled:!0})}).with("serverlogs",()=>{e.push({title:i("settings.server_logging"),disabled:!0})}).otherwise(()=>{}),e}),h=p(()=>{const s=l.currentRoute.value,n=s.name?.toString()||"";if(n==="editcore"){const e=s.params.domain;if(e&&u.providerManifests[e])return u.providerManifests[e].documentation||null}else if(n==="editprovider"){const e=s.params.instanceId;if(e){const a=u.getProvider(e);if(a&&u.providerManifests[a.domain])return u.providerManifests[a.domain].documentation||null}}else if(n==="addproviderdetails"){const e=s.params.domain;if(e&&u.providerManifests[e])return u.providerManifests[e].documentation||null}return null});return(s,n)=>{const e=pe("router-view");return g(),O("div",null,[r($,{icon:"mdi-cog-outline","show-loading":!0},ne({title:o(()=>[r(Be,{items:d.value,class:"pa-0"},null,8,["items"])]),_:2},[h.value?{name:"append",fn:o(()=>[r(re,{icon:"mdi-help-circle",variant:"text",title:_(i)("settings.view_documentation"),onClick:n[0]||(n[0]=a=>_(oe)(h.value))},null,8,["title"])]),key:"0"}:void 0]),1024),r(le),c.value?(g(),C(z,{key:0,variant:"comfortable",class:"settings-overview"},{default:o(()=>[r(ce,{class:"settings-main-card"},{default:o(()=>[r(de,{class:"settings-list"},{default:o(()=>[(g(!0),O(A,null,ue(m.value,a=>(g(),C(ge,{key:a.name,ripple:!0,class:"settings-list-item",onClick:V=>_(l).push(a.route)},{prepend:o(()=>[r(be,{color:a.color,size:"48"},{default:o(()=>[r(S,{icon:a.icon,size:"24",color:"white"},null,8,["icon"])]),_:2},1032,["color"])]),append:o(()=>[r(S,{icon:"mdi-chevron-right"})]),default:o(()=>[r(ve,{class:"text-h6"},{default:o(()=>[R(L(_(i)(a.label)),1)]),_:2},1024),r(fe,null,{default:o(()=>[R(L(_(i)(a.description)),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1})]),_:1})):(g(),C(e,{key:1},{default:o(({Component:a})=>[(g(),C(me(a)))]),_:1}))])}}}),Re=ye(we,[["__scopeId","data-v-6879739a"]]);export{Re as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-breadcrumbs{display:flex;align-items:center;line-height:1.6;padding:16px 12px}.v-breadcrumbs--rounded{border-radius:4px}.v-breadcrumbs--density-default{padding-top:16px;padding-bottom:16px}.v-breadcrumbs--density-comfortable{padding-top:12px;padding-bottom:12px}.v-breadcrumbs--density-compact{padding-top:8px;padding-bottom:8px}.v-breadcrumbs__prepend{align-items:center;display:inline-flex}.v-breadcrumbs-item{align-items:center;color:inherit;display:inline-flex;padding:0 4px;text-decoration:none;vertical-align:middle}.v-breadcrumbs-item--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-breadcrumbs-item--link{color:inherit;text-decoration:none}.v-breadcrumbs-item--link:hover{text-decoration:underline}.v-breadcrumbs-item .v-icon{font-size:1rem;margin-inline:-4px 2px}.v-breadcrumbs-divider{display:inline-block;padding:0 8px;vertical-align:middle}.settings-overview[data-v-
|
|
1
|
+
.v-breadcrumbs{display:flex;align-items:center;line-height:1.6;padding:16px 12px}.v-breadcrumbs--rounded{border-radius:4px}.v-breadcrumbs--density-default{padding-top:16px;padding-bottom:16px}.v-breadcrumbs--density-comfortable{padding-top:12px;padding-bottom:12px}.v-breadcrumbs--density-compact{padding-top:8px;padding-bottom:8px}.v-breadcrumbs__prepend{align-items:center;display:inline-flex}.v-breadcrumbs-item{align-items:center;color:inherit;display:inline-flex;padding:0 4px;text-decoration:none;vertical-align:middle}.v-breadcrumbs-item--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-breadcrumbs-item--link{color:inherit;text-decoration:none}.v-breadcrumbs-item--link:hover{text-decoration:underline}.v-breadcrumbs-item .v-icon{font-size:1rem;margin-inline:-4px 2px}.v-breadcrumbs-divider{display:inline-block;padding:0 8px;vertical-align:middle}.settings-overview[data-v-6879739a]{padding:24px;max-width:800px;margin:0 auto}.settings-main-card[data-v-6879739a]{overflow:hidden}.settings-list[data-v-6879739a]{padding:0}.settings-list-item[data-v-6879739a]{cursor:pointer;padding:20px 24px;min-height:80px;border-bottom:1px solid rgba(var(--v-border-color),var(--v-border-opacity))}.settings-list-item[data-v-6879739a]:last-child{border-bottom:none}.settings-list-item[data-v-6879739a]:hover{background-color:rgba(var(--v-theme-on-surface),.05)}.settings-list-item[data-v-6879739a] .v-list-item__prepend{margin-right:16px}.v-avatar[data-v-6879739a]{box-shadow:0 2px 8px #00000026}@media (max-width: 600px){.settings-list-item[data-v-6879739a]{padding:12px 16px;min-height:64px}.settings-list-item[data-v-6879739a] .v-list-item__prepend{margin-right:12px}.settings-list-item[data-v-6879739a] .v-avatar{width:40px!important;height:40px!important}.settings-list-item[data-v-6879739a] .v-list-item-title{font-size:1rem!important;line-height:1.3}.settings-list-item[data-v-6879739a] .v-list-item-subtitle{font-size:.813rem!important;line-height:1.3}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as L}from"./Container-
|
|
1
|
+
import{C as L}from"./Container-CxScoaQr.js";import{ay as M,bN as w,J as z,i as N,aP as o,a3 as B,aI as u,aA as r,aG as e,o as a,aF as E,az as _,aH as f,ah as C,aS as D,aE as T,aJ as v,aM as h,bh as l,aN as c,bS as k,aB as A,aL as d,bE as y,aV as F,aD as V,_ as J}from"./index-Co2Il0FF.js";import"./index-kQIztB-E.js";const G=M({__name:"SystemConfig",setup(H){const m=T(),{t:i}=w(),p=z([]),x=[{domain:"logging",name:"settings.system_logging",description:"settings.system_logging_description",icon:"mdi-text-box-search",route:"/settings/serverlogs"}],I=N(()=>[...p.value].sort((t,n)=>o.providerManifests[t.domain].name.localeCompare(o.providerManifests[n.domain].name))),b=t=>{const n=i(`settings.core_module.${t.domain}.name`);return n!==`settings.core_module.${t.domain}.name`?n:o.providerManifests[t.domain].name},$=t=>{const n=i(`settings.core_module.${t.domain}.description`);return n!==`settings.core_module.${t.domain}.description`?n:o.providerManifests[t.domain].description},g=function(t){t.route?m.push(t.route):m.push(`/settings/editcore/${t.domain}`)};return B(async()=>{p.value=await o.getCoreConfigs()}),(t,n)=>(r(),u(L,{variant:"comfortable",class:"settings-overview"},{default:e(()=>[a(D,{class:"settings-main-card"},{default:e(()=>[a(E,{class:"settings-list"},{default:e(()=>[(r(!0),_(C,null,f(I.value,s=>(r(),u(v,{key:s.domain,ripple:!0,class:"settings-list-item",onClick:S=>g(s)},{prepend:e(()=>[a(y,{color:"blue",size:"48"},{default:e(()=>[a(F,{domain:s.domain,size:24,color:"white"},null,8,["domain"])]),_:2},1024)]),append:e(()=>[s.last_error?(r(),u(d,{key:0,color:"red",icon:"mdi-alert-circle",class:"mr-2",title:s.last_error},null,8,["title"])):A("",!0),a(d,{icon:"mdi-chevron-right"})]),default:e(()=>[a(h,{class:"text-h6"},{default:e(()=>[l(c(b(s)),1)]),_:2},1024),a(k,null,{default:e(()=>[l(c($(s)),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),(r(),_(C,null,f(x,s=>a(v,{key:s.domain,ripple:!0,class:"settings-list-item",onClick:S=>g(s)},{prepend:e(()=>[a(y,{color:"purple",size:"48"},{default:e(()=>[a(d,{icon:s.icon,size:"24",color:"white"},null,8,["icon"])]),_:2},1024)]),append:e(()=>[a(d,{icon:"mdi-chevron-right"})]),default:e(()=>[a(h,{class:"text-h6"},{default:e(()=>[l(c(V(i)(s.name)),1)]),_:2},1024),a(k,null,{default:e(()=>[l(c(V(i)(s.description)),1)]),_:2},1024)]),_:2},1032,["onClick"])),64))]),_:1})]),_:1})]),_:1}))}}),q=J(G,[["__scopeId","data-v-fe538fe8"]]);export{q as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as R,p as E,c as X,f as Y,I as G,ao as H,u as J,cC as K,bZ as W,n as Z,cD as j,o as l,ae as y,b$ as q,cE as Q,v as U,x as p,z as I,ce as _,C as ee,cA as te,E as h,Y as ae,N as le,X as oe,aL as f,ay as ie,aI as r,aA as i,aK as w,aG as a,aD as d,b5 as B,M as m,a$ as P,aB as v,az as u,aP as k,b8 as T,ah as V,aH as $,b4 as L,aF as x,aJ as M,ax as ne,aC as se,aN as re,_ as de}from"./index-Co2Il0FF.js";import{V as ce}from"./VToolbar-p_Wr_MDA.js";const ue=E({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:te,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...ee(),..._({location:"top end"}),...I(),...p(),...U(),...Q({transition:"scale-rotate-transition"}),...q()},"VBadge"),A=R()({name:"VBadge",inheritAttrs:!1,props:ue(),setup(e,b){const{backgroundColorClasses:C,backgroundColorStyles:n}=X(()=>e.color),{roundedClasses:s}=Y(e),{t}=G(),{textColorClasses:o,textColorStyles:g}=H(()=>e.textColor),{themeClasses:N}=J(),{locationStyles:z}=K(e,!0,c=>(e.floating?e.dot?2:4:e.dot?8:12)+(["top","bottom"].includes(c)?Number(e.offsetY??0):["left","right"].includes(c)?Number(e.offsetX??0):0)),{dimensionStyles:D}=W(e);return Z(()=>{const c=Number(e.content),S=!e.max||isNaN(c)?e.content:c<=Number(e.max)?c:`${e.max}+`,[F,O]=j(b.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return l(e.tag,y({class:["v-badge",{"v-badge--bordered":e.bordered,"v-badge--dot":e.dot,"v-badge--floating":e.floating,"v-badge--inline":e.inline},e.class]},O,{style:e.style}),{default:()=>[h("div",{class:"v-badge__wrapper"},[b.slots.default?.(),l(ae,{transition:e.transition},{default:()=>[le(h("span",y({class:["v-badge__badge",N.value,C.value,s.value,o.value],style:[n.value,g.value,D.value,e.inline?{}:z.value],"aria-atomic":"true","aria-label":t(e.label,c),"aria-live":"polite",role:"status"},F),[e.dot?void 0:b.slots.badge?b.slots.badge?.():e.icon?l(f,{icon:e.icon},null):S]),[[oe,e.modelValue]])]})])]})}),{}}}),fe={key:0,class:"mobile-brand"},be={key:1},ve=ie({__name:"Toolbar",props:{color:{default:"transparent"},icon:{default:void 0},title:{default:void 0},menuItems:{default:void 0},enforceOverflowMenu:{type:Boolean,default:!1},showLoading:{type:Boolean,default:void 0},home:{type:Boolean},iconAction:{type:Function,default:void 0}},emits:["iconClicked","titleClicked"],setup(e,{emit:b}){const C=b;return(n,s)=>(i(),r(ce,{color:e.color,class:"header"},w({title:a(()=>[P(n.$slots,"title",{},()=>[d(ne).mobileLayout&&e.home?(i(),u("div",fe,[...s[2]||(s[2]=[h("img",{src:se,alt:"Music Assistant",class:"mobile-brand-logo"},null,-1),h("span",{class:"mobile-brand-text"},"Music Assistant",-1)])])):e.title?(i(),u("button",{key:1,onClick:s[1]||(s[1]=t=>C("titleClicked"))},re(e.title),1)):v("",!0)],!0)]),_:2},[(!d(B)({breakpoint:"tablet"})||e.iconAction)&&e.icon?{name:"prepend",fn:a(()=>[l(m,{icon:e.icon,size:"large",disabled:e.iconAction==null,style:{opacity:"0.8"},onClick:s[0]||(s[0]=t=>e.iconAction())},null,8,["icon","disabled"])]),key:"0"}:void 0,n.$slots.append?{name:"append",fn:a(()=>[P(n.$slots,"append",{},void 0,!0)]),key:"1"}:e.menuItems?.length?{name:"append",fn:a(()=>[e.showLoading&&(d(k).fetchesInProgress.value.length>0||d(k).syncTasks.value.length>0)?(i(),r(T,{key:0,color:"primary",indeterminate:"",title:n.$t("tooltip.loading")},null,8,["title"])):v("",!0),(i(!0),u(V,null,$(e.menuItems.filter(t=>!t.hide),t=>(i(),u("div",{key:t.label},[t.subItems?.length?(i(),r(L,{key:0,location:"bottom end",scrim:"",density:"compact",slim:"",tile:"","close-on-content-click":t.closeOnContentClick!==!1},{activator:a(({props:o})=>[l(m,y({variant:"text",style:{width:"40px"}},{ref_for:!0},o,{title:n.$t(t.label,t.labelArgs||[]),disabled:t.disabled==!0}),{default:a(()=>[l(A,{"model-value":t.active==!0,color:"primary",dot:""},{default:a(()=>[l(f,{icon:t.icon,color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22px"},null,8,["icon","color"])]),_:2},1032,["model-value"])]),_:2},1040,["title","disabled"])]),default:a(()=>[l(x,null,{default:a(()=>[(i(!0),u(V,null,$(t.subItems.filter(o=>o.hide!=!0),(o,g)=>(i(),r(M,{key:g,title:n.$t(o.label,o.labelArgs||[]),disabled:o.disabled==!0,onClick:N=>o.action?o.action():""},w({append:a(()=>[o.selected?(i(),r(f,{key:0,icon:"mdi-check"})):v("",!0)]),_:2},[o.icon?{name:"prepend",fn:a(()=>[l(f,{icon:o.icon},null,8,["icon"])]),key:"0"}:void 0]),1032,["title","disabled","onClick"]))),128))]),_:2},1024)]),_:2},1032,["close-on-content-click"])):!e.enforceOverflowMenu&&(d(B)("bp5")||t.overflowAllowed==!1)?(i(),r(m,{key:1,variant:"text",style:{width:"40px"},title:n.$t(t.label,t.labelArgs||[]),disabled:t.disabled==!0,onClick:t.action},{default:a(()=>[l(A,{"model-value":t.active==!0,color:"primary",dot:""},{default:a(()=>[l(f,{icon:t.icon,color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22px"},null,8,["icon","color"])]),_:2},1032,["model-value"])]),_:2},1032,["title","disabled","onClick"])):v("",!0)]))),128)),(!d(B)("bp5")||e.enforceOverflowMenu)&&e.menuItems.filter(t=>t.hide!=!0&&!t.subItems?.length&&t.overflowAllowed!==!1).length?(i(),u("div",be,[l(L,{location:"bottom end",scrim:""},{activator:a(({props:t})=>[l(m,y({variant:"plain",style:{width:"15px","margin-left":"-10px"}},t),{default:a(()=>[l(f,{icon:"mdi-dots-vertical",color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22",style:{"margin-right":"-5px",width:"15px"}},null,8,["color"])]),_:1},16)]),default:a(()=>[l(x,{density:"compact",slim:"",tile:""},{default:a(()=>[(i(!0),u(V,null,$(e.menuItems.filter(t=>t.hide!=!0&&!t.subItems?.length&&t.overflowAllowed!==!1),(t,o)=>(i(),r(M,{key:o,title:n.$t(t.label,t.labelArgs||[]),disabled:t.disabled==!0,onClick:g=>t.action?t.action():""},w({_:2},[t.icon?{name:"prepend",fn:a(()=>[l(A,{"model-value":t.active==!0,color:"primary",dot:""},{default:a(()=>[l(f,{icon:t.icon,color:n.$vuetify.theme.current.dark?"#fff":"#000",size:"22px"},null,8,["icon","color"])]),_:2},1032,["model-value"])]),key:"0"}:void 0]),1032,["title","disabled","onClick"]))),128))]),_:1})]),_:1})])):v("",!0)]),key:"2"}:e.showLoading?{name:"append",fn:a(()=>[d(k).fetchesInProgress.value.length>0||d(k).syncTasks.value.length>0?(i(),r(T,{key:0,color:"primary",indeterminate:""})):v("",!0)]),key:"3"}:void 0]),1032,["color"]))}}),ke=de(ve,[["__scopeId","data-v-3bfde582"]]);export{ke as T,A as V};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-badge{display:inline-block;line-height:1}.v-badge__badge{align-items:center;display:inline-flex;border-radius:10px;font-family:Roboto,sans-serif;font-size:.75rem;font-weight:500;height:1.25rem;justify-content:center;min-width:20px;padding:4px 6px;pointer-events:auto;position:absolute;text-align:center;text-indent:0;transition:.225s cubic-bezier(.4,0,.2,1);white-space:nowrap}.v-badge__badge{background:rgb(var(--v-theme-surface-variant));color:rgba(var(--v-theme-on-surface-variant),var(--v-high-emphasis-opacity))}.v-badge__badge:has(.v-icon){padding:4px 6px}.v-badge--bordered .v-badge__badge:after{border-radius:inherit;border-style:solid;border-width:2px;color:rgb(var(--v-theme-background));content:"";inset:0;position:absolute;transform:scale(1.05)}.v-badge--dot .v-badge__badge{border-radius:4.5px;height:9px;min-width:0;padding:0;width:9px}.v-badge--dot .v-badge__badge:after{border-width:1.5px}.v-badge--inline .v-badge__badge{position:relative;vertical-align:middle}.v-badge__badge .v-icon{color:inherit;font-size:.75rem;margin:0 -2px}.v-badge__badge img,.v-badge__badge .v-img{height:100%;width:100%}.v-badge__wrapper{display:flex;position:relative}.v-badge--inline .v-badge__wrapper{align-items:center;display:inline-flex;justify-content:center;margin:0 4px}@media (forced-colors: active){.v-badge__badge{forced-color-adjust:preserve-parent-color}.v-badge__badge.v-badge__badge{background:highlight!important;color:highlighttext!important}}.header.v-toolbar[data-v-
|
|
1
|
+
.v-badge{display:inline-block;line-height:1}.v-badge__badge{align-items:center;display:inline-flex;border-radius:10px;font-family:Roboto,sans-serif;font-size:.75rem;font-weight:500;height:1.25rem;justify-content:center;min-width:20px;padding:4px 6px;pointer-events:auto;position:absolute;text-align:center;text-indent:0;transition:.225s cubic-bezier(.4,0,.2,1);white-space:nowrap}.v-badge__badge{background:rgb(var(--v-theme-surface-variant));color:rgba(var(--v-theme-on-surface-variant),var(--v-high-emphasis-opacity))}.v-badge__badge:has(.v-icon){padding:4px 6px}.v-badge--bordered .v-badge__badge:after{border-radius:inherit;border-style:solid;border-width:2px;color:rgb(var(--v-theme-background));content:"";inset:0;position:absolute;transform:scale(1.05)}.v-badge--dot .v-badge__badge{border-radius:4.5px;height:9px;min-width:0;padding:0;width:9px}.v-badge--dot .v-badge__badge:after{border-width:1.5px}.v-badge--inline .v-badge__badge{position:relative;vertical-align:middle}.v-badge__badge .v-icon{color:inherit;font-size:.75rem;margin:0 -2px}.v-badge__badge img,.v-badge__badge .v-img{height:100%;width:100%}.v-badge__wrapper{display:flex;position:relative}.v-badge--inline .v-badge__wrapper{align-items:center;display:inline-flex;justify-content:center;margin:0 4px}@media (forced-colors: active){.v-badge__badge{forced-color-adjust:preserve-parent-color}.v-badge__badge.v-badge__badge{background:highlight!important;color:highlighttext!important}}.header.v-toolbar[data-v-3bfde582]{height:55px;font-family:JetBrains Mono Medium}.header.v-toolbar[data-v-3bfde582] .v-toolbar__content>.v-toolbar__append{margin-right:0}.header.v-toolbar>.v-toolbar__content>.v-toolbar-title[data-v-3bfde582]{margin-inline-start:10px}.header.v-toolbar>.v-toolbar__content>.v-toolbar__prepend[data-v-3bfde582]{margin-inline-start:6px}.header.v-toolbar>.v-toolbar__content>.v-toolbar__append[data-v-3bfde582]{margin-inline-end:21px}.header.v-toolbar-default>.v-toolbar__content>.v-toolbar-title[data-v-3bfde582]{margin-inline-start:0px}.header.v-toolbar-default>.v-toolbar__content>.v-toolbar__prepend[data-v-3bfde582]{margin-inline-start:10px}.header.v-toolbar-default>.v-toolbar__content>.v-toolbar__append[data-v-3bfde582]{margin-inline-end:10px}.mobile-brand[data-v-3bfde582]{display:flex;align-items:center;gap:1rem}.mobile-brand-logo[data-v-3bfde582]{height:30px;width:30px}.mobile-brand-text[data-v-3bfde582]{font-weight:600;letter-spacing:.5px;margin-top:4px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as u}from"./ItemsListing-A1ZT1kbn.js";import{I as c,_ as f}from"./ProviderDetails.vue_vue_type_script_setup_true_lang-ne-sT3oC.js";import{ay as y,J as k,L as b,az as w,aA as o,o as h,aI as s,aB as n,E as m,aD as I,aP as l}from"./index-Co2Il0FF.js";import"./Container-CxScoaQr.js";import"./index-kQIztB-E.js";import"./Toolbar-B6JfB3ZK.js";import"./VToolbar-p_Wr_MDA.js";import"./Button-BiCjBB20.js";import"./ListItem-iWXF1T59.js";import"./userPreferences-BuMozdux.js";import"./VCheckboxBtn-pFfosXS7.js";import"./VSelectionControl-BU644enI.js";import"./MediaItemThumb-Dw_UVqvI.js";import"./PanelviewItemCompact-DqrW-65j.js";import"./VInfiniteScroll-D5IkGjaw.js";import"./VVirtualScroll-Bmp7pEa7.js";import"./VAlert-CqZcE68W.js";import"./marquee_text_sync-CRO4rHS2.js";import"./VDialog-oA-qD8nK.js";const x=y({__name:"TrackDetails",props:{itemId:{},provider:{},album:{}},setup(r){const a=r,e=k(),p=async function(){e.value=await l.getTrack(a.itemId,a.provider,a.album)};b(()=>a.itemId,t=>{t&&p()},{immediate:!0});const d=async function(t){return await l.getTrackVersions(e.value.item_id,e.value.provider)},v=async function(t){return await l.getTrackAlbums(a.itemId,a.provider,t.libraryOnly)};return(t,i)=>(o(),w("section",null,[h(c,{item:e.value,"active-provider":r.provider},null,8,["item","active-provider"]),e.value?(o(),s(u,{key:0,itemtype:"trackalbums","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!1,"show-library-only-filter":e.value.provider=="library"&&I(l).hasStreamingProviders.value,"show-track-number":!1,"show-refresh-button":!1,"load-items":v,"sort-keys":["name","sort_name","year","year_desc"],title:t.$t("appears_on"),path:r.provider+r.itemId,"allow-collapse":!0},null,8,["parent-item","show-library-only-filter","title","path"])):n("",!0),i[0]||(i[0]=m("br",null,null,-1)),e.value?(o(),s(u,{key:1,itemtype:"trackversions","parent-item":e.value,"show-provider":!0,"show-favorites-only-filter":!1,"show-track-number":!1,"load-items":d,"show-refresh-button":!1,"sort-keys":["name","sort_name","duration"],title:t.$t("other_versions"),"hide-on-empty":!0,path:r.provider+r.itemId,"allow-collapse":!0},null,8,["parent-item","title","path"])):n("",!0),i[1]||(i[1]=m("br",null,null,-1)),e.value?(o(),s(f,{key:2,"item-details":e.value},null,8,["item-details"])):n("",!0),i[2]||(i[2]=m("br",null,null,-1))]))}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as pe}from"./Container-DVyrkl2H.js";import{L as ae}from"./ListItem-Emhe-KUj.js";import{ay as S,bN as B,J as U,i as I,aP as P,ce as re,L as le,aI as N,aA as i,aG as t,o as l,aS as E,bg as j,bh as g,aN as s,c3 as J,bH as O,aB as C,az as $,bK as Q,bV as H,bW as W,M as z,aW as w,cI as ue,E as V,_ as Z,ax as ee,aU as ve,bE as G,aL as K,ah as te,aH as se,bd as oe,a3 as ce,am as fe,aO as _e}from"./index-Ci6ypq6O.js";import{V as A}from"./VSelect-CMxVGu2h.js";import{V as X}from"./VDialog-DofGN8Yd.js";import{_ as he}from"./CreateTokenDialog.vue_vue_type_script_setup_true_lang-CDOcvzeY.js";import"./index-kQIztB-E.js";import"./Button-CsTMTfds.js";import"./VVirtualScroll-RawLIXgS.js";import"./VCheckboxBtn-lg4Bkg3S.js";import"./VSelectionControl-CuEKzbGp.js";const ye={key:1,class:"text-grey text-caption align-self-center"},be={key:1,class:"text-grey text-caption align-self-center"},ke=S({__name:"CreateUserDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",password:"",confirmPassword:"",role:"user",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=I(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=I(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=I(()=>a.value.username.length>=3&&a.value.password.length>=8&&a.value.password===a.value.confirmPassword&&a.value.role),L=()=>{a.value={username:"",displayName:"",password:"",confirmPassword:"",role:ue.USER,playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{b.value=!0;try{await P.createUser(a.value.username,a.value.password,a.value.role,a.value.displayName||void 0,a.value.playerFilter.length>0?a.value.playerFilter:void 0,a.value.providerFilter.length>0?a.value.providerFilter:void 0)?(w.success(u("auth.user_created")),L(),p("created"),p("update:modelValue",!1)):w.error(u("auth.user_create_failed"))}catch{w.error(u("auth.user_create_failed"))}finally{b.value=!1}};return le(()=>n.modelValue,e=>{e||L()}),(e,o)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[7]||(o[7]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.create_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength],autofocus:""},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.password=r),label:e.$t("auth.password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordMatch]},null,8,["modelValue","label","rules"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",class:"mb-2"},null,8,["modelValue","label"]),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",ye," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",be," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,disabled:!R.value,onClick:q},{default:t(()=>[g(s(e.$t("create")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Ve={class:"text-body-1 mb-4"},ge={key:0,class:"user-name-box"},$e=S({__name:"DeleteUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","deleted"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.deleteUser(n.user.user_id)?(w.success(u("auth.user_deleted")),p("deleted"),p("update:modelValue",!1)):w.error(u("auth.user_delete_failed"))}catch{w.error(u("auth.user_delete_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ve,s(m.$t("auth.confirm_delete_user")),1),c.user?(i(),$("div",ge,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),we=Z($e,[["__scopeId","data-v-8cbf5f8f"]]),Ue={class:"text-body-1 mb-4"},Ce={key:0,class:"user-name-box"},Fe=S({__name:"DisableUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","disabled"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.disableUser(n.user.user_id)?(w.success(u("auth.user_disabled")),p("disabled"),p("update:modelValue",!1)):w.error(u("auth.user_disable_failed"))}catch{w.error(u("auth.user_disable_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ue,s(m.$t("auth.confirm_disable_user")),1),c.user?(i(),$("div",Ce,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),De=Z(Fe,[["__scopeId","data-v-9638370d"]]),Ne={key:1,class:"text-grey text-caption align-self-center"},Te={key:1,class:"text-grey text-caption align-self-center"},ze=S({__name:"EditUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","updated"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",avatarUrl:"",role:"user",password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=I(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=I(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=I(()=>!n.user||!ee.currentUser?!1:n.user.user_id===ee.currentUser.user_id),L=()=>{n.user?a.value={username:n.user.username,displayName:n.user.display_name||"",avatarUrl:n.user.avatar_url||"",role:n.user.role,password:"",confirmPassword:"",playerFilter:n.user.player_filter||[],providerFilter:n.user.provider_filter||[]}:a.value={username:"",displayName:"",avatarUrl:"",role:ue.USER,password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{if(n.user){if(a.value.password&&a.value.password!==a.value.confirmPassword){w.error(u("auth.passwords_must_match"));return}b.value=!0;try{const e={};a.value.username!==n.user.username&&(e.username=a.value.username),a.value.displayName!==(n.user.display_name||"")&&(e.displayName=a.value.displayName),a.value.avatarUrl!==(n.user.avatar_url||"")&&(e.avatarUrl=a.value.avatarUrl),a.value.role!==n.user.role&&!R.value&&(e.role=a.value.role),a.value.password&&(e.password=a.value.password);const o=n.user.player_filter||[];JSON.stringify([...a.value.playerFilter].sort())!==JSON.stringify([...o].sort())&&(e.player_filter=a.value.playerFilter);const r=n.user.provider_filter||[];JSON.stringify([...a.value.providerFilter].sort())!==JSON.stringify([...r].sort())&&(e.provider_filter=a.value.providerFilter),await P.updateUser(n.user.user_id,e),w.success(u("auth.user_updated")),L(),p("updated"),p("update:modelValue",!1)}catch{w.error(u("auth.user_update_failed"))}finally{b.value=!1}}};return le(()=>n.user,L,{immediate:!0}),le(()=>n.modelValue,e=>{e&&L()}),(e,o)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[8]||(o[8]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.edit_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.avatarUrl,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.avatarUrl=r),label:e.$t("auth.avatar_url"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("auth.avatar_url_hint"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",disabled:R.value,class:"mb-2"},null,8,["modelValue","label","disabled"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.password=r),label:e.$t("auth.new_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("auth.password_optional_hint"),"persistent-hint":"",rules:a.value.password?[D.passwordLength]:[]},null,8,["modelValue","label","hint","rules"]),a.value.password?(i(),N(O,{key:0,modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",rules:[D.passwordMatch]},null,8,["modelValue","label","rules"])):C("",!0),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Ne," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[7]||(o[7]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":Y=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Te," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,onClick:q},{default:t(()=>[g(s(e.$t("save")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Pe={class:"pa-4"},Le={class:"mb-2"},Me={class:"section-subtitle mb-6"},Oe={key:0,class:"empty-state"},Ie={class:"text-medium-emphasis"},Se={key:1,class:"tokens-list"},Be={class:"line-clamp-1"},Re={class:"token-meta"},qe={key:0,class:"token-divider"},Ae={key:1},Ee={class:"pa-4"},je={class:"section-header-with-action"},Je={class:"w-100"},He={class:"d-flex justify-space-between align-center gap-2"},We={class:"mb-2"},Xe={class:"section-subtitle"},Ye={key:0,class:"empty-state"},Ge={class:"text-medium-emphasis"},Ke={key:1,class:"tokens-list"},Qe={class:"line-clamp-1"},Ze={class:"token-meta"},xe={key:0,class:"token-divider"},ea={key:1},aa=S({__name:"ManageTokensDialog",props:{modelValue:{type:Boolean},user:{},tokens:{}},emits:["update:modelValue","revoke","token-created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=I(()=>n.tokens.filter(d=>!d.is_long_lived)),m=I(()=>n.tokens.filter(d=>d.is_long_lived)),h=d=>new Date(d).toLocaleString();return(d,k)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"900",scrollable:"","onUpdate:modelValue":k[4]||(k[4]=y=>p("update:modelValue",y))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(d.$t("auth.tokens"))+" - "+s(c.user?.display_name||c.user?.username),1)]),_:1}),l(ve),l(J,{class:"pa-0"},{default:t(()=>[V("div",Pe,[V("h3",Le,s(d.$t("auth.active_sessions")),1),V("p",Me,s(d.$t("auth.active_sessions_description")),1),a.value.length===0?(i(),$("div",Oe,[l(G,{color:"blue-grey-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(K,{icon:"mdi-devices",size:"32"})]),_:1}),V("p",Ie,s(d.$t("auth.no_active_sessions")),1)])):(i(),$("div",Se,[(i(!0),$(te,null,se(a.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(G,{color:"blue-grey-darken-2",size:"40"},{default:t(()=>[l(K,{icon:"mdi-devices",size:"20"})]),_:1})]),title:t(()=>[V("div",Be,s(y.name),1)]),subtitle:t(()=>[V("div",Re,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",qe,"•")):C("",!0),y.last_used_at?(i(),$("span",Ae,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))]),V("div",Ee,[V("div",je,[V("div",Je,[V("div",He,[V("h3",We,s(d.$t("auth.long_lived_tokens")),1),l(z,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",size:"small",onClick:k[0]||(k[0]=y=>b.value=!0)},{default:t(()=>[g(s(d.$t("auth.create_token")),1)]),_:1})]),V("p",Xe,s(d.$t("auth.long_lived_tokens_description")),1)])]),m.value.length===0?(i(),$("div",Ye,[l(G,{color:"deep-purple-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(K,{icon:"mdi-key-variant",size:"32"})]),_:1}),V("p",Ge,s(d.$t("auth.no_long_lived_tokens")),1)])):(i(),$("div",Ke,[(i(!0),$(te,null,se(m.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(G,{color:"deep-purple-darken-2",size:"40"},{default:t(()=>[l(K,{icon:"mdi-key-variant",size:"20"})]),_:1})]),title:t(()=>[V("div",Qe,s(y.name),1)]),subtitle:t(()=>[V("div",Ze,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",xe,"•")):C("",!0),y.last_used_at?(i(),$("span",ea,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))])]),_:1}),l(H,{class:"pa-6"},{default:t(()=>[l(W),l(z,{variant:"tonal",onClick:k[1]||(k[1]=y=>p("update:modelValue",!1))},{default:t(()=>[g(s(d.$t("close")),1)]),_:1})]),_:1})]),_:1}),l(he,{modelValue:b.value,"onUpdate:modelValue":k[2]||(k[2]=y=>b.value=y),"user-id":c.user?.user_id,onCreated:k[3]||(k[3]=y=>p("token-created"))},null,8,["modelValue","user-id"])]),_:1},8,["model-value"]))}}),la=Z(aa,[["__scopeId","data-v-19f1861f"]]),ta={class:"text-body-1 mb-4"},sa={key:0,class:"token-name-box"},oa=S({__name:"RevokeTokenDialog",props:{modelValue:{type:Boolean},token:{}},emits:["update:modelValue","revoked"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(!n.token)return;b.value=!0;const m=!n.token.is_long_lived;try{await P.revokeToken(n.token.token_id)?(w.success(u(m?"auth.session_revoked":"auth.token_revoked")),p("revoked"),p("update:modelValue",!1)):w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}catch{w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}finally{b.value=!1}};return(m,h)=>(i(),N(X,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(c.token?.is_long_lived?m.$t("auth.revoke_token"):m.$t("auth.revoke_session")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",ta,s(c.token?.is_long_lived?m.$t("auth.revoke_token_confirm"):m.$t("auth.revoke_session_confirm")),1),c.token?(i(),$("div",sa,s(c.token.name),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(W),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.revoke")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),ra=Z(oa,[["__scopeId","data-v-026d0253"]]),ua={class:"users-header w-100"},na={class:"user-avatar-wrapper"},ia={class:"line-clamp-1"},da={class:"line-clamp-1"},ma={key:0,class:"text-center pa-8 text-medium-emphasis"},pa=S({__name:"UserManagement",setup(c){const{t:F}=B(),u=U([]),n=U(""),p=U(!1),b=U(!1),a=U(!1),m=U(!1),h=U(!1),d=U(!1),k=U(null),y=U([]),D=U(null),R=I(()=>{if(!n.value)return u.value;const f=n.value.toLowerCase();return u.value.filter(v=>{const _=(v.display_name||v.username).toLowerCase(),x=v.username.toLowerCase();return _.includes(f)||x.includes(f)})}),L=f=>!f||!ee.currentUser?!1:f.user_id===ee.currentUser.user_id,M=async()=>{try{u.value=await P.getAllUsers()}catch{w.error(F("auth.users_load_failed"))}},q=f=>{k.value=f,b.value=!0},e=f=>{k.value=f,a.value=!0},o=f=>{k.value=f,m.value=!0},r=async f=>{k.value=f,await T(f.user_id),h.value=!0},T=async f=>{try{y.value=await P.getUserTokens(f)}catch{w.error(F("auth.tokens_load_failed"))}},Y=async()=>{k.value&&await T(k.value.user_id)},ne=f=>{D.value=f,d.value=!0},ie=async()=>{k.value&&await T(k.value.user_id),D.value=null},de=async f=>{try{await P.enableUser(f.user_id)?(await M(),w.success(F("auth.user_enabled"))):w.error(F("auth.user_enable_failed"))}catch{w.error(F("auth.user_enable_failed"))}},me=(f,v)=>{const _=[{label:"auth.edit_user",labelArgs:[],action:()=>{q(v)},icon:"mdi-pencil"},{label:"auth.manage_tokens",labelArgs:[],action:()=>{r(v)},icon:"mdi-key-variant"},{label:v.enabled?"auth.disable_user":"auth.enable_user",labelArgs:[],action:()=>{v.enabled?e(v):de(v)},icon:v.enabled?"mdi-account-off":"mdi-account-check",hide:L(v)},{label:"auth.delete_user",labelArgs:[],action:()=>{o(v)},icon:"mdi-delete",color:"error",hide:L(v)}];_e.emit("contextmenu",{items:_,posX:f.clientX,posY:f.clientY})};return ce(()=>{M()}),(f,v)=>(i(),$("div",null,[V("div",ua,[l(O,{modelValue:n.value,"onUpdate:modelValue":v[0]||(v[0]=_=>n.value=_),placeholder:f.$t("search"),"prepend-inner-icon":"mdi-magnify",variant:"outlined",density:"compact","hide-details":"",clearable:"",style:{"max-width":"400px"}},null,8,["modelValue","placeholder"]),l(z,{color:"primary",variant:"flat",height:"40",class:"add-user-btn","prepend-icon":"mdi-plus",onClick:v[1]||(v[1]=_=>p.value=!0)},{default:t(()=>[g(s(f.$t("auth.create_user")),1)]),_:1})]),l(pe,null,{default:t(()=>[(i(!0),$(te,null,se(R.value,_=>(i(),N(ae,{key:_.user_id,"show-menu-btn":"",link:"",onMenu:x=>me(x,_),onClick:x=>q(_)},{prepend:t(()=>[V("div",na,[l(G,{size:"40",color:_.avatar_url?void 0:"grey-darken-2"},{default:t(()=>[_.avatar_url?(i(),N(fe,{key:0,src:_.avatar_url},null,8,["src"])):(i(),N(K,{key:1,icon:"mdi-account",size:"20",color:"grey-lighten-1"}))]),_:2},1032,["color"])])]),title:t(()=>[V("div",ia,s(_.display_name||_.username),1)]),subtitle:t(()=>[V("div",da,s(_.username)+" • "+s(f.$t(`auth.${_.role}_role`)),1)]),append:t(()=>[_.enabled?C("",!0):(i(),N(Q,{key:0,size:"small",color:"error"},{default:t(()=>[g(s(f.$t("auth.disabled")),1)]),_:1}))]),_:2},1032,["onMenu","onClick"]))),128)),u.value.length===0?(i(),$("div",ma,s(f.$t("no_content")),1)):C("",!0)]),_:1}),l(ke,{modelValue:p.value,"onUpdate:modelValue":v[2]||(v[2]=_=>p.value=_),onCreated:M},null,8,["modelValue"]),l(ze,{modelValue:b.value,"onUpdate:modelValue":v[3]||(v[3]=_=>b.value=_),user:k.value,onUpdated:M},null,8,["modelValue","user"]),l(De,{modelValue:a.value,"onUpdate:modelValue":v[4]||(v[4]=_=>a.value=_),user:k.value,onDisabled:M},null,8,["modelValue","user"]),l(we,{modelValue:m.value,"onUpdate:modelValue":v[5]||(v[5]=_=>m.value=_),user:k.value,onDeleted:M},null,8,["modelValue","user"]),l(la,{modelValue:h.value,"onUpdate:modelValue":v[6]||(v[6]=_=>h.value=_),user:k.value,tokens:y.value,onRevoke:ne,onTokenCreated:Y},null,8,["modelValue","user","tokens"]),l(ra,{modelValue:d.value,"onUpdate:modelValue":v[7]||(v[7]=_=>d.value=_),token:D.value,onRevoked:ie},null,8,["modelValue","token"])]))}}),wa=Z(pa,[["__scopeId","data-v-4952d4ff"]]);export{wa as default};
|
|
1
|
+
import{C as pe}from"./Container-CxScoaQr.js";import{L as ae}from"./ListItem-iWXF1T59.js";import{ay as I,bN as B,J as U,i as S,aP as P,co as re,L as le,aI as N,aA as i,aG as t,o as l,aS as E,bg as j,bh as g,aN as s,c3 as J,bH as O,aB as C,az as $,bK as Q,bV as H,bW as K,M as z,aW as w,cK as ue,E as V,_ as Z,ax as ee,aU as ve,bE as Y,aL as G,ah as te,aH as se,bd as oe,a3 as ce,am as fe,aO as _e}from"./index-Co2Il0FF.js";import{V as A}from"./VSelect-BULCN41e.js";import{V as W}from"./VDialog-oA-qD8nK.js";import{_ as he}from"./CreateTokenDialog.vue_vue_type_script_setup_true_lang-D2Qjl841.js";import"./index-kQIztB-E.js";import"./Button-BiCjBB20.js";import"./VVirtualScroll-Bmp7pEa7.js";import"./VCheckboxBtn-pFfosXS7.js";import"./VSelectionControl-BU644enI.js";const ye={key:1,class:"text-grey text-caption align-self-center"},be={key:1,class:"text-grey text-caption align-self-center"},ke=I({__name:"CreateUserDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",password:"",confirmPassword:"",role:"user",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=S(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=S(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=S(()=>a.value.username.length>=3&&a.value.password.length>=8&&a.value.password===a.value.confirmPassword&&a.value.role),L=()=>{a.value={username:"",displayName:"",password:"",confirmPassword:"",role:ue.USER,playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{b.value=!0;try{await P.createUser(a.value.username,a.value.password,a.value.role,a.value.displayName||void 0,a.value.playerFilter.length>0?a.value.playerFilter:void 0,a.value.providerFilter.length>0?a.value.providerFilter:void 0)?(w.success(u("auth.user_created")),L(),p("created"),p("update:modelValue",!1)):w.error(u("auth.user_create_failed"))}catch{w.error(u("auth.user_create_failed"))}finally{b.value=!1}};return le(()=>n.modelValue,e=>{e||L()}),(e,o)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[7]||(o[7]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.create_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength],autofocus:""},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.password=r),label:e.$t("auth.password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.passwordMatch]},null,8,["modelValue","label","rules"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",class:"mb-2"},null,8,["modelValue","label"]),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",ye," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",be," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,disabled:!R.value,onClick:q},{default:t(()=>[g(s(e.$t("create")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Ve={class:"text-body-1 mb-4"},ge={key:0,class:"user-name-box"},$e=I({__name:"DeleteUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","deleted"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.deleteUser(n.user.user_id)?(w.success(u("auth.user_deleted")),p("deleted"),p("update:modelValue",!1)):w.error(u("auth.user_delete_failed"))}catch{w.error(u("auth.user_delete_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ve,s(m.$t("auth.confirm_delete_user")),1),c.user?(i(),$("div",ge,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.delete_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),we=Z($e,[["__scopeId","data-v-8cbf5f8f"]]),Ue={class:"text-body-1 mb-4"},Ce={key:0,class:"user-name-box"},Fe=I({__name:"DisableUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","disabled"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(n.user){b.value=!0;try{await P.disableUser(n.user.user_id)?(w.success(u("auth.user_disabled")),p("disabled"),p("update:modelValue",!1)):w.error(u("auth.user_disable_failed"))}catch{w.error(u("auth.user_disable_failed"))}finally{b.value=!1}}};return(m,h)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pl-6 pb-0"},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",Ue,s(m.$t("auth.confirm_disable_user")),1),c.user?(i(),$("div",Ce,s(c.user.display_name||c.user.username),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.disable_user")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),De=Z(Fe,[["__scopeId","data-v-9638370d"]]),Ne={key:1,class:"text-grey text-caption align-self-center"},Te={key:1,class:"text-grey text-caption align-self-center"},ze=I({__name:"EditUserDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","updated"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=U({username:"",displayName:"",avatarUrl:"",role:"user",password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}),m=[{title:u("auth.admin_role"),value:"admin"},{title:u("auth.user_role"),value:"user"}],h=S(()=>Object.values(P.players).map(e=>({title:e.name,value:e.player_id})).sort((e,o)=>e.title.localeCompare(o.title))),d=S(()=>Object.values(P.providers).filter(e=>e.type===re.MUSIC).map(e=>({title:e.name,value:e.instance_id})).sort((e,o)=>e.title.localeCompare(o.title))),k=e=>{a.value.playerFilter=a.value.playerFilter.filter(o=>o!==e)},y=e=>{a.value.providerFilter=a.value.providerFilter.filter(o=>o!==e)},D={required:e=>!!e||u("auth.field_required"),usernameLength:e=>e.length>=3||u("auth.username_min_length"),passwordLength:e=>e.length>=8||u("auth.password_min_length"),passwordMatch:e=>e===a.value.password||u("auth.passwords_must_match")},R=S(()=>!n.user||!ee.currentUser?!1:n.user.user_id===ee.currentUser.user_id),L=()=>{n.user?a.value={username:n.user.username,displayName:n.user.display_name||"",avatarUrl:n.user.avatar_url||"",role:n.user.role,password:"",confirmPassword:"",playerFilter:n.user.player_filter||[],providerFilter:n.user.provider_filter||[]}:a.value={username:"",displayName:"",avatarUrl:"",role:ue.USER,password:"",confirmPassword:"",playerFilter:[],providerFilter:[]}},M=()=>{L(),p("update:modelValue",!1)},q=async()=>{if(n.user){if(a.value.password&&a.value.password!==a.value.confirmPassword){w.error(u("auth.passwords_must_match"));return}b.value=!0;try{const e={};a.value.username!==n.user.username&&(e.username=a.value.username),a.value.displayName!==(n.user.display_name||"")&&(e.displayName=a.value.displayName),a.value.avatarUrl!==(n.user.avatar_url||"")&&(e.avatarUrl=a.value.avatarUrl),a.value.role!==n.user.role&&!R.value&&(e.role=a.value.role),a.value.password&&(e.password=a.value.password);const o=n.user.player_filter||[];JSON.stringify([...a.value.playerFilter].sort())!==JSON.stringify([...o].sort())&&(e.player_filter=a.value.playerFilter);const r=n.user.provider_filter||[];JSON.stringify([...a.value.providerFilter].sort())!==JSON.stringify([...r].sort())&&(e.provider_filter=a.value.providerFilter),await P.updateUser(n.user.user_id,e),w.success(u("auth.user_updated")),L(),p("updated"),p("update:modelValue",!1)}catch{w.error(u("auth.user_update_failed"))}finally{b.value=!1}}};return le(()=>n.user,L,{immediate:!0}),le(()=>n.modelValue,e=>{e&&L()}),(e,o)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"500","onUpdate:modelValue":o[8]||(o[8]=r=>p("update:modelValue",r))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(e.$t("auth.edit_user")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[l(O,{modelValue:a.value.username,"onUpdate:modelValue":o[0]||(o[0]=r=>a.value.username=r),label:e.$t("auth.username"),variant:"outlined",density:"comfortable",class:"mb-2",rules:[D.required,D.usernameLength]},null,8,["modelValue","label","rules"]),l(O,{modelValue:a.value.displayName,"onUpdate:modelValue":o[1]||(o[1]=r=>a.value.displayName=r),label:e.$t("auth.display_name"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("optional"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(O,{modelValue:a.value.avatarUrl,"onUpdate:modelValue":o[2]||(o[2]=r=>a.value.avatarUrl=r),label:e.$t("auth.avatar_url"),variant:"outlined",density:"comfortable",class:"mb-6",hint:e.$t("auth.avatar_url_hint"),"persistent-hint":""},null,8,["modelValue","label","hint"]),l(A,{modelValue:a.value.role,"onUpdate:modelValue":o[3]||(o[3]=r=>a.value.role=r),label:e.$t("auth.role"),items:m,variant:"outlined",density:"comfortable",disabled:R.value,class:"mb-2"},null,8,["modelValue","label","disabled"]),l(O,{modelValue:a.value.password,"onUpdate:modelValue":o[4]||(o[4]=r=>a.value.password=r),label:e.$t("auth.new_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",hint:e.$t("auth.password_optional_hint"),"persistent-hint":"",rules:a.value.password?[D.passwordLength]:[]},null,8,["modelValue","label","hint","rules"]),a.value.password?(i(),N(O,{key:0,modelValue:a.value.confirmPassword,"onUpdate:modelValue":o[5]||(o[5]=r=>a.value.confirmPassword=r),label:e.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",rules:[D.passwordMatch]},null,8,["modelValue","label","rules"])):C("",!0),l(A,{modelValue:a.value.playerFilter,"onUpdate:modelValue":o[6]||(o[6]=r=>a.value.playerFilter=r),label:e.$t("auth.player_filter"),items:h.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.player_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>k(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Ne," (+"+s(a.value.playerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"]),l(A,{modelValue:a.value.providerFilter,"onUpdate:modelValue":o[7]||(o[7]=r=>a.value.providerFilter=r),label:e.$t("auth.provider_filter"),items:d.value,variant:"outlined",density:"comfortable",multiple:"",chips:"","closable-chips":"",class:"mb-2",hint:e.$t("auth.provider_filter_hint"),"persistent-hint":""},{selection:t(({item:r,index:T})=>[T<2?(i(),N(Q,{key:0,size:"small",closable:"","onClick:close":X=>y(r.value)},{default:t(()=>[g(s(r.title),1)]),_:2},1032,["onClick:close"])):C("",!0),T===2?(i(),$("span",Te," (+"+s(a.value.providerFilter.length-2)+" "+s(e.$t("actions"))+") ",1)):C("",!0)]),_:1},8,["modelValue","label","items","hint"])]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:M},{default:t(()=>[g(s(e.$t("cancel")),1)]),_:1}),l(z,{color:"primary",variant:"flat",loading:b.value,onClick:q},{default:t(()=>[g(s(e.$t("save")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Pe={class:"pa-4"},Le={class:"mb-2"},Me={class:"section-subtitle mb-6"},Oe={key:0,class:"empty-state"},Se={class:"text-medium-emphasis"},Ie={key:1,class:"tokens-list"},Be={class:"line-clamp-1"},Re={class:"token-meta"},qe={key:0,class:"token-divider"},Ae={key:1},Ee={class:"pa-4"},je={class:"section-header-with-action"},Je={class:"w-100"},He={class:"d-flex justify-space-between align-center gap-2"},Ke={class:"mb-2"},We={class:"section-subtitle"},Xe={key:0,class:"empty-state"},Ye={class:"text-medium-emphasis"},Ge={key:1,class:"tokens-list"},Qe={class:"line-clamp-1"},Ze={class:"token-meta"},xe={key:0,class:"token-divider"},ea={key:1},aa=I({__name:"ManageTokensDialog",props:{modelValue:{type:Boolean},user:{},tokens:{}},emits:["update:modelValue","revoke","token-created"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=S(()=>n.tokens.filter(d=>!d.is_long_lived)),m=S(()=>n.tokens.filter(d=>d.is_long_lived)),h=d=>new Date(d).toLocaleString();return(d,k)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"900",scrollable:"","onUpdate:modelValue":k[4]||(k[4]=y=>p("update:modelValue",y))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(d.$t("auth.tokens"))+" - "+s(c.user?.display_name||c.user?.username),1)]),_:1}),l(ve),l(J,{class:"pa-0"},{default:t(()=>[V("div",Pe,[V("h3",Le,s(d.$t("auth.active_sessions")),1),V("p",Me,s(d.$t("auth.active_sessions_description")),1),a.value.length===0?(i(),$("div",Oe,[l(Y,{color:"blue-grey-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(G,{icon:"mdi-devices",size:"32"})]),_:1}),V("p",Se,s(d.$t("auth.no_active_sessions")),1)])):(i(),$("div",Ie,[(i(!0),$(te,null,se(a.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(Y,{color:"blue-grey-darken-2",size:"40"},{default:t(()=>[l(G,{icon:"mdi-devices",size:"20"})]),_:1})]),title:t(()=>[V("div",Be,s(y.name),1)]),subtitle:t(()=>[V("div",Re,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",qe,"•")):C("",!0),y.last_used_at?(i(),$("span",Ae,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))]),V("div",Ee,[V("div",je,[V("div",Je,[V("div",He,[V("h3",Ke,s(d.$t("auth.long_lived_tokens")),1),l(z,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",size:"small",onClick:k[0]||(k[0]=y=>b.value=!0)},{default:t(()=>[g(s(d.$t("auth.create_token")),1)]),_:1})]),V("p",We,s(d.$t("auth.long_lived_tokens_description")),1)])]),m.value.length===0?(i(),$("div",Xe,[l(Y,{color:"deep-purple-darken-2",size:"64",class:"mb-3"},{default:t(()=>[l(G,{icon:"mdi-key-variant",size:"32"})]),_:1}),V("p",Ye,s(d.$t("auth.no_long_lived_tokens")),1)])):(i(),$("div",Ge,[(i(!0),$(te,null,se(m.value,y=>(i(),N(ae,{key:y.token_id},{prepend:t(()=>[l(Y,{color:"deep-purple-darken-2",size:"40"},{default:t(()=>[l(G,{icon:"mdi-key-variant",size:"20"})]),_:1})]),title:t(()=>[V("div",Qe,s(y.name),1)]),subtitle:t(()=>[V("div",Ze,[V("span",null,s(d.$t("created"))+": "+s(h(y.created_at)),1),y.last_used_at?(i(),$("span",xe,"•")):C("",!0),y.last_used_at?(i(),$("span",ea,s(d.$t("last_used"))+": "+s(h(y.last_used_at)),1)):C("",!0)])]),append:t(()=>[l(z,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:oe(D=>p("revoke",y),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))])]),_:1}),l(H,{class:"pa-6"},{default:t(()=>[l(K),l(z,{variant:"tonal",onClick:k[1]||(k[1]=y=>p("update:modelValue",!1))},{default:t(()=>[g(s(d.$t("close")),1)]),_:1})]),_:1})]),_:1}),l(he,{modelValue:b.value,"onUpdate:modelValue":k[2]||(k[2]=y=>b.value=y),"user-id":c.user?.user_id,onCreated:k[3]||(k[3]=y=>p("token-created"))},null,8,["modelValue","user-id"])]),_:1},8,["model-value"]))}}),la=Z(aa,[["__scopeId","data-v-19f1861f"]]),ta={class:"text-body-1 mb-4"},sa={key:0,class:"token-name-box"},oa=I({__name:"RevokeTokenDialog",props:{modelValue:{type:Boolean},token:{}},emits:["update:modelValue","revoked"],setup(c,{emit:F}){const{t:u}=B(),n=c,p=F,b=U(!1),a=async()=>{if(!n.token)return;b.value=!0;const m=!n.token.is_long_lived;try{await P.revokeToken(n.token.token_id)?(w.success(u(m?"auth.session_revoked":"auth.token_revoked")),p("revoked"),p("update:modelValue",!1)):w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}catch{w.error(u(m?"auth.session_revoke_failed":"auth.token_revoke_failed"))}finally{b.value=!1}};return(m,h)=>(i(),N(W,{"model-value":c.modelValue,"max-width":"480","onUpdate:modelValue":h[1]||(h[1]=d=>p("update:modelValue",d))},{default:t(()=>[l(E,null,{default:t(()=>[l(j,{class:"text-h6 pa-6 pb-4"},{default:t(()=>[g(s(c.token?.is_long_lived?m.$t("auth.revoke_token"):m.$t("auth.revoke_session")),1)]),_:1}),l(J,{class:"px-6 pb-2"},{default:t(()=>[V("p",ta,s(c.token?.is_long_lived?m.$t("auth.revoke_token_confirm"):m.$t("auth.revoke_session_confirm")),1),c.token?(i(),$("div",sa,s(c.token.name),1)):C("",!0)]),_:1}),l(H,{class:"pa-6 pt-4"},{default:t(()=>[l(K),l(z,{variant:"text",onClick:h[0]||(h[0]=d=>p("update:modelValue",!1))},{default:t(()=>[g(s(m.$t("cancel")),1)]),_:1}),l(z,{color:"error",variant:"flat",loading:b.value,onClick:a},{default:t(()=>[g(s(m.$t("auth.revoke")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),ra=Z(oa,[["__scopeId","data-v-026d0253"]]),ua={class:"users-header w-100"},na={class:"user-avatar-wrapper"},ia={class:"line-clamp-1"},da={class:"line-clamp-1"},ma={key:0,class:"text-center pa-8 text-medium-emphasis"},pa=I({__name:"UserManagement",setup(c){const{t:F}=B(),u=U([]),n=U(""),p=U(!1),b=U(!1),a=U(!1),m=U(!1),h=U(!1),d=U(!1),k=U(null),y=U([]),D=U(null),R=S(()=>{if(!n.value)return u.value;const f=n.value.toLowerCase();return u.value.filter(v=>{const _=(v.display_name||v.username).toLowerCase(),x=v.username.toLowerCase();return _.includes(f)||x.includes(f)})}),L=f=>!f||!ee.currentUser?!1:f.user_id===ee.currentUser.user_id,M=async()=>{try{u.value=await P.getAllUsers()}catch{w.error(F("auth.users_load_failed"))}},q=f=>{k.value=f,b.value=!0},e=f=>{k.value=f,a.value=!0},o=f=>{k.value=f,m.value=!0},r=async f=>{k.value=f,await T(f.user_id),h.value=!0},T=async f=>{try{y.value=await P.getUserTokens(f)}catch{w.error(F("auth.tokens_load_failed"))}},X=async()=>{k.value&&await T(k.value.user_id)},ne=f=>{D.value=f,d.value=!0},ie=async()=>{k.value&&await T(k.value.user_id),D.value=null},de=async f=>{try{await P.enableUser(f.user_id)?(await M(),w.success(F("auth.user_enabled"))):w.error(F("auth.user_enable_failed"))}catch{w.error(F("auth.user_enable_failed"))}},me=(f,v)=>{const _=[{label:"auth.edit_user",labelArgs:[],action:()=>{q(v)},icon:"mdi-pencil"},{label:"auth.manage_tokens",labelArgs:[],action:()=>{r(v)},icon:"mdi-key-variant"},{label:v.enabled?"auth.disable_user":"auth.enable_user",labelArgs:[],action:()=>{v.enabled?e(v):de(v)},icon:v.enabled?"mdi-account-off":"mdi-account-check",hide:L(v)},{label:"auth.delete_user",labelArgs:[],action:()=>{o(v)},icon:"mdi-delete",color:"error",hide:L(v)}];_e.emit("contextmenu",{items:_,posX:f.clientX,posY:f.clientY})};return ce(()=>{M()}),(f,v)=>(i(),$("div",null,[V("div",ua,[l(O,{modelValue:n.value,"onUpdate:modelValue":v[0]||(v[0]=_=>n.value=_),placeholder:f.$t("search"),"prepend-inner-icon":"mdi-magnify",variant:"outlined",density:"compact","hide-details":"",clearable:"",style:{"max-width":"400px"}},null,8,["modelValue","placeholder"]),l(z,{color:"primary",variant:"flat",height:"40",class:"add-user-btn","prepend-icon":"mdi-plus",onClick:v[1]||(v[1]=_=>p.value=!0)},{default:t(()=>[g(s(f.$t("auth.create_user")),1)]),_:1})]),l(pe,null,{default:t(()=>[(i(!0),$(te,null,se(R.value,_=>(i(),N(ae,{key:_.user_id,"show-menu-btn":"",link:"",onMenu:x=>me(x,_),onClick:x=>q(_)},{prepend:t(()=>[V("div",na,[l(Y,{size:"40",color:_.avatar_url?void 0:"grey-darken-2"},{default:t(()=>[_.avatar_url?(i(),N(fe,{key:0,src:_.avatar_url},null,8,["src"])):(i(),N(G,{key:1,icon:"mdi-account",size:"20",color:"grey-lighten-1"}))]),_:2},1032,["color"])])]),title:t(()=>[V("div",ia,s(_.display_name||_.username),1)]),subtitle:t(()=>[V("div",da,s(_.username)+" • "+s(f.$t(`auth.${_.role}_role`)),1)]),append:t(()=>[_.enabled?C("",!0):(i(),N(Q,{key:0,size:"small",color:"error"},{default:t(()=>[g(s(f.$t("auth.disabled")),1)]),_:1}))]),_:2},1032,["onMenu","onClick"]))),128)),u.value.length===0?(i(),$("div",ma,s(f.$t("no_content")),1)):C("",!0)]),_:1}),l(ke,{modelValue:p.value,"onUpdate:modelValue":v[2]||(v[2]=_=>p.value=_),onCreated:M},null,8,["modelValue"]),l(ze,{modelValue:b.value,"onUpdate:modelValue":v[3]||(v[3]=_=>b.value=_),user:k.value,onUpdated:M},null,8,["modelValue","user"]),l(De,{modelValue:a.value,"onUpdate:modelValue":v[4]||(v[4]=_=>a.value=_),user:k.value,onDisabled:M},null,8,["modelValue","user"]),l(we,{modelValue:m.value,"onUpdate:modelValue":v[5]||(v[5]=_=>m.value=_),user:k.value,onDeleted:M},null,8,["modelValue","user"]),l(la,{modelValue:h.value,"onUpdate:modelValue":v[6]||(v[6]=_=>h.value=_),user:k.value,tokens:y.value,onRevoke:ne,onTokenCreated:X},null,8,["modelValue","user","tokens"]),l(ra,{modelValue:d.value,"onUpdate:modelValue":v[7]||(v[7]=_=>d.value=_),token:D.value,onRevoked:ie},null,8,["modelValue","token"])]))}}),wa=Z(pa,[["__scopeId","data-v-4952d4ff"]]);export{wa as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as Z}from"./Container-DVyrkl2H.js";import{ay as P,bN as F,J as h,az as k,aA as d,E as o,o as e,aN as s,M as $,aG as a,bh as y,bE as T,aL as z,ah as M,aH as H,aI as C,bd as B,aB as S,_ as I,i as D,aD as x,ax as R,bH as L,aP as N,aW as U,R as ee,L as ae,am as E,aS as W,bg as G,c3 as J,bV as j,bW as K,a3 as se,aU as q}from"./index-Ci6ypq6O.js";import{L as O}from"./ListItem-Emhe-KUj.js";import{_ as te}from"./CreateTokenDialog.vue_vue_type_script_setup_true_lang-CDOcvzeY.js";import{V as le}from"./VAlert-Kj2m6TCt.js";import{V as oe}from"./VForm-DkfI6S-G.js";import{V as Q}from"./VDialog-DofGN8Yd.js";import"./index-kQIztB-E.js";import"./Button-CsTMTfds.js";const ne={class:"long-lived-tokens"},re={class:"section-header-with-action"},ie={class:"section-header"},ue={class:"section-subtitle"},de={key:0,class:"empty-state"},ce={class:"text-medium-emphasis"},ve={class:"text-caption text-medium-emphasis mt-1"},_e={key:1,class:"tokens-list"},me={class:"line-clamp-1"},pe={class:"token-meta"},fe={key:0,class:"token-divider"},he={key:1},ke=P({__name:"LongLivedTokensList",props:{tokens:{}},emits:["revoke","created"],setup(V,{emit:c}){const{t:n}=F(),u=c,l=h(!1),_=v=>new Date(v).toLocaleString(),m=()=>{u("created")};return(v,p)=>(d(),k("div",ne,[o("div",re,[o("div",ie,[o("h3",null,s(v.$t("auth.long_lived_tokens")),1),o("p",ue,s(v.$t("auth.api_tokens_description")),1)]),e($,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",onClick:p[0]||(p[0]=t=>l.value=!0)},{default:a(()=>[y(s(v.$t("auth.create_token")),1)]),_:1})]),V.tokens.length===0?(d(),k("div",de,[e(T,{color:"deep-purple-darken-2",size:"64",class:"mb-3"},{default:a(()=>[e(z,{icon:"mdi-key-variant",size:"32"})]),_:1}),o("p",ce,s(v.$t("auth.no_tokens")),1),o("p",ve,s(v.$t("auth.create_token_hint")),1)])):(d(),k("div",_e,[(d(!0),k(M,null,H(V.tokens,t=>(d(),C(O,{key:t.token_id},{prepend:a(()=>[e(T,{color:"deep-purple-darken-2",size:"40"},{default:a(()=>[e(z,{icon:"mdi-key-variant",size:"20"})]),_:1})]),title:a(()=>[o("div",me,s(t.name),1)]),subtitle:a(()=>[o("div",pe,[o("span",null,s(v.$t("created"))+": "+s(_(t.created_at)),1),t.last_used_at?(d(),k("span",fe,"•")):S("",!0),t.last_used_at?(d(),k("span",he,s(v.$t("last_used"))+": "+s(_(t.last_used_at)),1)):S("",!0)])]),append:a(()=>[e($,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:B(w=>u("revoke",t),["stop"])},null,8,["onClick"])]),_:2},1024))),128))])),e(te,{modelValue:l.value,"onUpdate:modelValue":p[1]||(p[1]=t=>l.value=t),onCreated:m},null,8,["modelValue"])]))}}),ge=I(ke,[["__scopeId","data-v-511373f4"]]),$e={class:"password-settings"},ye={class:"section-header"},be={class:"section-subtitle"},we=P({__name:"PasswordSettings",setup(V){const{t:c}=F(),n=h(""),u=h(""),l=h(!1),_=h(null),m={required:t=>!!t||c("auth.field_required"),passwordLength:t=>t.length>=8||c("auth.password_min_length"),passwordMatch:t=>t===n.value||c("auth.passwords_must_match")},v=D(()=>n.value.length>=8&&n.value===u.value),p=async()=>{l.value=!0;try{await N.changePassword(n.value)?(U.success(c("auth.password_changed")),n.value="",u.value="",await ee(),_.value?.resetValidation()):U.error(c("auth.password_change_failed"))}catch(t){U.error(t.message||c("auth.password_change_failed"))}finally{l.value=!1}};return(t,w)=>(d(),k("div",$e,[o("div",ye,[o("h3",null,s(t.$t("auth.change_password")),1),o("p",be,s(t.$t("auth.update_your_password")),1)]),x(R).isIngressSession?(d(),C(le,{key:0,type:"info",variant:"tonal",density:"compact",class:"mb-4"},{default:a(()=>[y(s(t.$t("auth.ingress_password_note")),1)]),_:1})):S("",!0),e(oe,{ref_key:"passwordForm",ref:_,onSubmit:B(p,["prevent"])},{default:a(()=>[e(L,{modelValue:n.value,"onUpdate:modelValue":w[0]||(w[0]=i=>n.value=i),label:t.$t("auth.new_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[m.required,m.passwordLength]},null,8,["modelValue","label","rules"]),e(L,{modelValue:u.value,"onUpdate:modelValue":w[1]||(w[1]=i=>u.value=i),label:t.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-4",rules:[m.required,m.passwordMatch]},null,8,["modelValue","label","rules"]),e($,{type:"submit",color:"primary",variant:"flat",loading:l.value,disabled:!v.value},{default:a(()=>[y(s(t.$t("auth.change_password")),1)]),_:1},8,["loading","disabled"])]),_:1},512)]))}}),Ve=I(we,[["__scopeId","data-v-36fba185"]]),Ce={class:"profile-settings"},Ue={class:"section-header"},Le={class:"section-subtitle"},Te={class:"avatar-section"},ze={class:"avatar-container"},Se={class:"avatar-wrapper"},De={class:"avatar-text mt-2"},Pe={class:"profile-fields"},Ie={class:"actions"},Ae={class:"d-flex flex-column align-center mb-4"},Ne=P({__name:"ProfileSettings",setup(V){const{t:c}=F(),n=D(()=>R.currentUser),u=h(""),l=h(""),_=h(""),m=h(!1),v=h(!1),p=h(""),t=h(!1),w={required:r=>!!r||c("auth.field_required"),usernameLength:r=>r.length>=3||c("auth.username_min_length")},i=D(()=>n.value?u.value!==n.value.username||l.value!==(n.value.display_name||"")||_.value!==(n.value.avatar_url||""):!1),g=()=>{n.value&&(u.value=n.value.username,l.value=n.value.display_name||"",_.value=n.value.avatar_url||"",p.value=n.value.avatar_url||"")},A=async()=>{if(!(!n.value||!i.value)){m.value=!0;try{const r={};u.value!==n.value.username&&(r.username=u.value),l.value!==(n.value.display_name||"")&&(r.displayName=l.value),_.value!==(n.value.avatar_url||"")&&(r.avatarUrl=_.value);const f=await N.updateUser(n.value.user_id,r);f&&(R.currentUser=f,g(),U.success(c("auth.profile_updated")))}catch(r){U.error(r.message||c("error_generic"))}finally{m.value=!1}}},X=()=>{v.value=!1,p.value=_.value,t.value=!1},Y=()=>{_.value=p.value,v.value=!1,t.value=!1};return ae(n,g,{immediate:!0}),(r,f)=>(d(),k("div",Ce,[o("div",Ue,[o("h3",null,s(r.$t("auth.account_settings")),1),o("p",Le,s(r.$t("auth.manage_your_profile_info")),1)]),o("div",Te,[o("div",ze,[o("div",Se,[e(T,{size:"120",class:"profile-avatar",color:_.value?void 0:"grey-darken-2"},{default:a(()=>[_.value?(d(),C(E,{key:0,src:_.value,onError:f[0]||(f[0]=b=>t.value=!0)},null,8,["src"])):(d(),C(z,{key:1,icon:"mdi-account",size:"64",color:"grey-lighten-1"}))]),_:1},8,["color"]),e($,{icon:"mdi-camera",size:"small",variant:"elevated",class:"avatar-edit-btn",color:"surface",onClick:f[1]||(f[1]=b=>v.value=!0)})]),o("div",De,[e($,{variant:"text",size:"small",class:"text-capitalize",onClick:f[2]||(f[2]=b=>v.value=!0)},{default:a(()=>[y(s(r.$t("auth.change_avatar")),1)]),_:1})])]),o("div",Pe,[e(L,{modelValue:u.value,"onUpdate:modelValue":f[3]||(f[3]=b=>u.value=b),label:r.$t("auth.username"),variant:"outlined",density:"comfortable",rules:[w.required,w.usernameLength],class:"mb-2"},null,8,["modelValue","label","rules"]),e(L,{modelValue:l.value,"onUpdate:modelValue":f[4]||(f[4]=b=>l.value=b),label:r.$t("auth.display_name"),variant:"outlined",density:"comfortable",hint:r.$t("optional"),"persistent-hint":"",class:"mb-2"},null,8,["modelValue","label","hint"]),e(L,{"model-value":r.$t(`auth.${n.value?.role}_role`),label:r.$t("auth.role"),variant:"outlined",density:"comfortable",readonly:"",disabled:""},null,8,["model-value","label"])])]),o("div",Ie,[i.value?(d(),C($,{key:0,variant:"text",color:"grey",onClick:g},{default:a(()=>[y(s(r.$t("cancel")),1)]),_:1})):S("",!0),e($,{color:"primary",variant:"flat",loading:m.value,disabled:!i.value,onClick:A},{default:a(()=>[y(s(r.$t("save")),1)]),_:1},8,["loading","disabled"])]),e(Q,{modelValue:v.value,"onUpdate:modelValue":f[7]||(f[7]=b=>v.value=b),"max-width":"500"},{default:a(()=>[e(W,null,{default:a(()=>[e(G,{class:"text-h5"},{default:a(()=>[y(s(r.$t("auth.change_avatar")),1)]),_:1}),e(J,null,{default:a(()=>[o("div",Ae,[e(T,{size:"140",color:p.value?void 0:"grey-darken-2"},{default:a(()=>[p.value?(d(),C(E,{key:0,src:p.value,onError:f[5]||(f[5]=b=>t.value=!0)},null,8,["src"])):(d(),C(z,{key:1,icon:"mdi-account",size:"72",color:"grey-lighten-1"}))]),_:1},8,["color"])]),e(L,{modelValue:p.value,"onUpdate:modelValue":f[6]||(f[6]=b=>p.value=b),label:r.$t("auth.avatar_url"),variant:"outlined",hint:r.$t("auth.avatar_url_hint"),"persistent-hint":"",clearable:""},null,8,["modelValue","label","hint"])]),_:1}),e(j,null,{default:a(()=>[e(K),e($,{variant:"text",onClick:X},{default:a(()=>[y(s(r.$t("cancel")),1)]),_:1}),e($,{color:"primary",variant:"flat",onClick:Y},{default:a(()=>[y(s(r.$t("save")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),Fe=I(Ne,[["__scopeId","data-v-e98d7828"]]),qe={class:"session-tokens"},Re={class:"section-header"},Be={class:"section-subtitle"},Ee={key:0,class:"empty-state"},Me={class:"text-medium-emphasis"},He={key:1,class:"tokens-list"},We={class:"line-clamp-1"},Ge={class:"token-meta"},Je={key:0,class:"token-divider"},je={key:1},Ke=P({__name:"SessionTokensList",props:{tokens:{}},emits:["revoke"],setup(V,{emit:c}){const n=c,u=l=>new Date(l).toLocaleString();return(l,_)=>(d(),k("div",qe,[o("div",Re,[o("h3",null,s(l.$t("auth.active_sessions")),1),o("p",Be,s(l.$t("auth.manage_active_sessions")),1)]),V.tokens.length===0?(d(),k("div",Ee,[e(T,{color:"blue-grey-darken-2",size:"64",class:"mb-3"},{default:a(()=>[e(z,{icon:"mdi-devices-off",size:"32"})]),_:1}),o("p",Me,s(l.$t("no_content")),1)])):(d(),k("div",He,[(d(!0),k(M,null,H(V.tokens,m=>(d(),C(O,{key:m.token_id},{prepend:a(()=>[e(T,{color:"blue-grey-darken-2",size:"40"},{default:a(()=>[e(z,{icon:"mdi-devices",size:"20"})]),_:1})]),title:a(()=>[o("div",We,s(m.name),1)]),subtitle:a(()=>[o("div",Ge,[o("span",null,s(l.$t("created"))+": "+s(u(m.created_at)),1),m.last_used_at?(d(),k("span",Je,"•")):S("",!0),m.last_used_at?(d(),k("span",je,s(l.$t("last_used"))+": "+s(u(m.last_used_at)),1)):S("",!0)])]),append:a(()=>[e($,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:B(v=>n("revoke",m),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))]))}}),Oe=I(Ke,[["__scopeId","data-v-984369e1"]]),Qe={class:"user-profile"},Xe={class:"profile-content"},Ye={class:"text-body-1 mb-4"},Ze={class:"token-name-box"},xe=P({__name:"UserProfile",setup(V){const{t:c}=F(),n=h([]),u=h(!1),l=h(null),_=h(!1),m=D(()=>n.value.filter(i=>!i.is_long_lived)),v=D(()=>n.value.filter(i=>i.is_long_lived)),p=async()=>{try{n.value=await N.getUserTokens()}catch(i){console.error("Failed to load tokens:",i)}},t=i=>{l.value=i,u.value=!0},w=async()=>{if(l.value){_.value=!0;try{if(await N.revokeToken(l.value.token_id)){await p();const g=!l.value.is_long_lived;U.success(c(g?"auth.session_revoked":"auth.token_revoked"))}else{const g=!l.value.is_long_lived;U.error(c(g?"auth.session_revoke_failed":"auth.token_revoke_failed"))}}catch(i){console.error("Failed to revoke token:",i);const g=!l.value?.is_long_lived;U.error(c(g?"auth.session_revoke_failed":"auth.token_revoke_failed"))}finally{u.value=!1,l.value=null,_.value=!1}}};return se(()=>{p()}),(i,g)=>(d(),k("div",Qe,[e(Z,{variant:"comfortable",class:"profile-container"},{default:a(()=>[o("div",Xe,[e(Fe),e(q,{class:"my-6"}),e(Ve),e(q,{class:"my-6"}),e(Oe,{tokens:m.value,onRevoke:t},null,8,["tokens"]),e(q,{class:"my-6"}),e(ge,{tokens:v.value,onRevoke:t,onCreated:p},null,8,["tokens"])])]),_:1}),e(Q,{modelValue:u.value,"onUpdate:modelValue":g[1]||(g[1]=A=>u.value=A),"max-width":"480"},{default:a(()=>[e(W,null,{default:a(()=>[e(G,{class:"text-h6 pl-6 pb-0 mt-3"},{default:a(()=>[y(s(l.value?.is_long_lived?i.$t("auth.revoke_token"):i.$t("auth.revoke_session")),1)]),_:1}),e(J,{class:"px-6 pb-2"},{default:a(()=>[o("p",Ye,s(l.value?.is_long_lived?i.$t("auth.revoke_token_confirm"):i.$t("auth.revoke_session_confirm")),1),o("div",Ze,s(l.value?.name),1)]),_:1}),e(j,{class:"pa-6 pt-4"},{default:a(()=>[e(K),e($,{variant:"text",onClick:g[0]||(g[0]=A=>u.value=!1)},{default:a(()=>[y(s(i.$t("cancel")),1)]),_:1}),e($,{color:"error",variant:"flat",loading:_.value,onClick:w},{default:a(()=>[y(s(i.$t("auth.revoke")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),ua=I(xe,[["__scopeId","data-v-4961f1fb"]]);export{ua as default};
|
|
1
|
+
import{C as Z}from"./Container-CxScoaQr.js";import{ay as P,bN as F,J as h,az as k,aA as d,E as o,o as e,aN as s,M as $,aG as a,bh as y,bE as T,aL as z,ah as M,aH as H,aI as C,bd as B,aB as S,_ as I,i as D,aD as x,ax as R,bH as L,aP as N,aW as U,R as ee,L as ae,am as E,aS as W,bg as G,c3 as J,bV as j,bW as K,a3 as se,aU as q}from"./index-Co2Il0FF.js";import{L as O}from"./ListItem-iWXF1T59.js";import{_ as te}from"./CreateTokenDialog.vue_vue_type_script_setup_true_lang-D2Qjl841.js";import{V as le}from"./VAlert-CqZcE68W.js";import{V as oe}from"./VForm-lwT5Vjdc.js";import{V as Q}from"./VDialog-oA-qD8nK.js";import"./index-kQIztB-E.js";import"./Button-BiCjBB20.js";const ne={class:"long-lived-tokens"},re={class:"section-header-with-action"},ie={class:"section-header"},ue={class:"section-subtitle"},de={key:0,class:"empty-state"},ce={class:"text-medium-emphasis"},ve={class:"text-caption text-medium-emphasis mt-1"},_e={key:1,class:"tokens-list"},me={class:"line-clamp-1"},pe={class:"token-meta"},fe={key:0,class:"token-divider"},he={key:1},ke=P({__name:"LongLivedTokensList",props:{tokens:{}},emits:["revoke","created"],setup(V,{emit:c}){const{t:n}=F(),u=c,l=h(!1),_=v=>new Date(v).toLocaleString(),m=()=>{u("created")};return(v,p)=>(d(),k("div",ne,[o("div",re,[o("div",ie,[o("h3",null,s(v.$t("auth.long_lived_tokens")),1),o("p",ue,s(v.$t("auth.api_tokens_description")),1)]),e($,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",onClick:p[0]||(p[0]=t=>l.value=!0)},{default:a(()=>[y(s(v.$t("auth.create_token")),1)]),_:1})]),V.tokens.length===0?(d(),k("div",de,[e(T,{color:"deep-purple-darken-2",size:"64",class:"mb-3"},{default:a(()=>[e(z,{icon:"mdi-key-variant",size:"32"})]),_:1}),o("p",ce,s(v.$t("auth.no_tokens")),1),o("p",ve,s(v.$t("auth.create_token_hint")),1)])):(d(),k("div",_e,[(d(!0),k(M,null,H(V.tokens,t=>(d(),C(O,{key:t.token_id},{prepend:a(()=>[e(T,{color:"deep-purple-darken-2",size:"40"},{default:a(()=>[e(z,{icon:"mdi-key-variant",size:"20"})]),_:1})]),title:a(()=>[o("div",me,s(t.name),1)]),subtitle:a(()=>[o("div",pe,[o("span",null,s(v.$t("created"))+": "+s(_(t.created_at)),1),t.last_used_at?(d(),k("span",fe,"•")):S("",!0),t.last_used_at?(d(),k("span",he,s(v.$t("last_used"))+": "+s(_(t.last_used_at)),1)):S("",!0)])]),append:a(()=>[e($,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:B(w=>u("revoke",t),["stop"])},null,8,["onClick"])]),_:2},1024))),128))])),e(te,{modelValue:l.value,"onUpdate:modelValue":p[1]||(p[1]=t=>l.value=t),onCreated:m},null,8,["modelValue"])]))}}),ge=I(ke,[["__scopeId","data-v-511373f4"]]),$e={class:"password-settings"},ye={class:"section-header"},be={class:"section-subtitle"},we=P({__name:"PasswordSettings",setup(V){const{t:c}=F(),n=h(""),u=h(""),l=h(!1),_=h(null),m={required:t=>!!t||c("auth.field_required"),passwordLength:t=>t.length>=8||c("auth.password_min_length"),passwordMatch:t=>t===n.value||c("auth.passwords_must_match")},v=D(()=>n.value.length>=8&&n.value===u.value),p=async()=>{l.value=!0;try{await N.changePassword(n.value)?(U.success(c("auth.password_changed")),n.value="",u.value="",await ee(),_.value?.resetValidation()):U.error(c("auth.password_change_failed"))}catch(t){U.error(t.message||c("auth.password_change_failed"))}finally{l.value=!1}};return(t,w)=>(d(),k("div",$e,[o("div",ye,[o("h3",null,s(t.$t("auth.change_password")),1),o("p",be,s(t.$t("auth.update_your_password")),1)]),x(R).isIngressSession?(d(),C(le,{key:0,type:"info",variant:"tonal",density:"compact",class:"mb-4"},{default:a(()=>[y(s(t.$t("auth.ingress_password_note")),1)]),_:1})):S("",!0),e(oe,{ref_key:"passwordForm",ref:_,onSubmit:B(p,["prevent"])},{default:a(()=>[e(L,{modelValue:n.value,"onUpdate:modelValue":w[0]||(w[0]=i=>n.value=i),label:t.$t("auth.new_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-2",rules:[m.required,m.passwordLength]},null,8,["modelValue","label","rules"]),e(L,{modelValue:u.value,"onUpdate:modelValue":w[1]||(w[1]=i=>u.value=i),label:t.$t("auth.confirm_password"),type:"password",variant:"outlined",density:"comfortable",class:"mb-4",rules:[m.required,m.passwordMatch]},null,8,["modelValue","label","rules"]),e($,{type:"submit",color:"primary",variant:"flat",loading:l.value,disabled:!v.value},{default:a(()=>[y(s(t.$t("auth.change_password")),1)]),_:1},8,["loading","disabled"])]),_:1},512)]))}}),Ve=I(we,[["__scopeId","data-v-36fba185"]]),Ce={class:"profile-settings"},Ue={class:"section-header"},Le={class:"section-subtitle"},Te={class:"avatar-section"},ze={class:"avatar-container"},Se={class:"avatar-wrapper"},De={class:"avatar-text mt-2"},Pe={class:"profile-fields"},Ie={class:"actions"},Ae={class:"d-flex flex-column align-center mb-4"},Ne=P({__name:"ProfileSettings",setup(V){const{t:c}=F(),n=D(()=>R.currentUser),u=h(""),l=h(""),_=h(""),m=h(!1),v=h(!1),p=h(""),t=h(!1),w={required:r=>!!r||c("auth.field_required"),usernameLength:r=>r.length>=3||c("auth.username_min_length")},i=D(()=>n.value?u.value!==n.value.username||l.value!==(n.value.display_name||"")||_.value!==(n.value.avatar_url||""):!1),g=()=>{n.value&&(u.value=n.value.username,l.value=n.value.display_name||"",_.value=n.value.avatar_url||"",p.value=n.value.avatar_url||"")},A=async()=>{if(!(!n.value||!i.value)){m.value=!0;try{const r={};u.value!==n.value.username&&(r.username=u.value),l.value!==(n.value.display_name||"")&&(r.displayName=l.value),_.value!==(n.value.avatar_url||"")&&(r.avatarUrl=_.value);const f=await N.updateUser(n.value.user_id,r);f&&(R.currentUser=f,g(),U.success(c("auth.profile_updated")))}catch(r){U.error(r.message||c("error_generic"))}finally{m.value=!1}}},X=()=>{v.value=!1,p.value=_.value,t.value=!1},Y=()=>{_.value=p.value,v.value=!1,t.value=!1};return ae(n,g,{immediate:!0}),(r,f)=>(d(),k("div",Ce,[o("div",Ue,[o("h3",null,s(r.$t("auth.account_settings")),1),o("p",Le,s(r.$t("auth.manage_your_profile_info")),1)]),o("div",Te,[o("div",ze,[o("div",Se,[e(T,{size:"120",class:"profile-avatar",color:_.value?void 0:"grey-darken-2"},{default:a(()=>[_.value?(d(),C(E,{key:0,src:_.value,onError:f[0]||(f[0]=b=>t.value=!0)},null,8,["src"])):(d(),C(z,{key:1,icon:"mdi-account",size:"64",color:"grey-lighten-1"}))]),_:1},8,["color"]),e($,{icon:"mdi-camera",size:"small",variant:"elevated",class:"avatar-edit-btn",color:"surface",onClick:f[1]||(f[1]=b=>v.value=!0)})]),o("div",De,[e($,{variant:"text",size:"small",class:"text-capitalize",onClick:f[2]||(f[2]=b=>v.value=!0)},{default:a(()=>[y(s(r.$t("auth.change_avatar")),1)]),_:1})])]),o("div",Pe,[e(L,{modelValue:u.value,"onUpdate:modelValue":f[3]||(f[3]=b=>u.value=b),label:r.$t("auth.username"),variant:"outlined",density:"comfortable",rules:[w.required,w.usernameLength],class:"mb-2"},null,8,["modelValue","label","rules"]),e(L,{modelValue:l.value,"onUpdate:modelValue":f[4]||(f[4]=b=>l.value=b),label:r.$t("auth.display_name"),variant:"outlined",density:"comfortable",hint:r.$t("optional"),"persistent-hint":"",class:"mb-2"},null,8,["modelValue","label","hint"]),e(L,{"model-value":r.$t(`auth.${n.value?.role}_role`),label:r.$t("auth.role"),variant:"outlined",density:"comfortable",readonly:"",disabled:""},null,8,["model-value","label"])])]),o("div",Ie,[i.value?(d(),C($,{key:0,variant:"text",color:"grey",onClick:g},{default:a(()=>[y(s(r.$t("cancel")),1)]),_:1})):S("",!0),e($,{color:"primary",variant:"flat",loading:m.value,disabled:!i.value,onClick:A},{default:a(()=>[y(s(r.$t("save")),1)]),_:1},8,["loading","disabled"])]),e(Q,{modelValue:v.value,"onUpdate:modelValue":f[7]||(f[7]=b=>v.value=b),"max-width":"500"},{default:a(()=>[e(W,null,{default:a(()=>[e(G,{class:"text-h5"},{default:a(()=>[y(s(r.$t("auth.change_avatar")),1)]),_:1}),e(J,null,{default:a(()=>[o("div",Ae,[e(T,{size:"140",color:p.value?void 0:"grey-darken-2"},{default:a(()=>[p.value?(d(),C(E,{key:0,src:p.value,onError:f[5]||(f[5]=b=>t.value=!0)},null,8,["src"])):(d(),C(z,{key:1,icon:"mdi-account",size:"72",color:"grey-lighten-1"}))]),_:1},8,["color"])]),e(L,{modelValue:p.value,"onUpdate:modelValue":f[6]||(f[6]=b=>p.value=b),label:r.$t("auth.avatar_url"),variant:"outlined",hint:r.$t("auth.avatar_url_hint"),"persistent-hint":"",clearable:""},null,8,["modelValue","label","hint"])]),_:1}),e(j,null,{default:a(()=>[e(K),e($,{variant:"text",onClick:X},{default:a(()=>[y(s(r.$t("cancel")),1)]),_:1}),e($,{color:"primary",variant:"flat",onClick:Y},{default:a(()=>[y(s(r.$t("save")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),Fe=I(Ne,[["__scopeId","data-v-e98d7828"]]),qe={class:"session-tokens"},Re={class:"section-header"},Be={class:"section-subtitle"},Ee={key:0,class:"empty-state"},Me={class:"text-medium-emphasis"},He={key:1,class:"tokens-list"},We={class:"line-clamp-1"},Ge={class:"token-meta"},Je={key:0,class:"token-divider"},je={key:1},Ke=P({__name:"SessionTokensList",props:{tokens:{}},emits:["revoke"],setup(V,{emit:c}){const n=c,u=l=>new Date(l).toLocaleString();return(l,_)=>(d(),k("div",qe,[o("div",Re,[o("h3",null,s(l.$t("auth.active_sessions")),1),o("p",Be,s(l.$t("auth.manage_active_sessions")),1)]),V.tokens.length===0?(d(),k("div",Ee,[e(T,{color:"blue-grey-darken-2",size:"64",class:"mb-3"},{default:a(()=>[e(z,{icon:"mdi-devices-off",size:"32"})]),_:1}),o("p",Me,s(l.$t("no_content")),1)])):(d(),k("div",He,[(d(!0),k(M,null,H(V.tokens,m=>(d(),C(O,{key:m.token_id},{prepend:a(()=>[e(T,{color:"blue-grey-darken-2",size:"40"},{default:a(()=>[e(z,{icon:"mdi-devices",size:"20"})]),_:1})]),title:a(()=>[o("div",We,s(m.name),1)]),subtitle:a(()=>[o("div",Ge,[o("span",null,s(l.$t("created"))+": "+s(u(m.created_at)),1),m.last_used_at?(d(),k("span",Je,"•")):S("",!0),m.last_used_at?(d(),k("span",je,s(l.$t("last_used"))+": "+s(u(m.last_used_at)),1)):S("",!0)])]),append:a(()=>[e($,{icon:"mdi-delete",variant:"text",color:"error",size:"small",onClick:B(v=>n("revoke",m),["stop"])},null,8,["onClick"])]),_:2},1024))),128))]))]))}}),Oe=I(Ke,[["__scopeId","data-v-984369e1"]]),Qe={class:"user-profile"},Xe={class:"profile-content"},Ye={class:"text-body-1 mb-4"},Ze={class:"token-name-box"},xe=P({__name:"UserProfile",setup(V){const{t:c}=F(),n=h([]),u=h(!1),l=h(null),_=h(!1),m=D(()=>n.value.filter(i=>!i.is_long_lived)),v=D(()=>n.value.filter(i=>i.is_long_lived)),p=async()=>{try{n.value=await N.getUserTokens()}catch(i){console.error("Failed to load tokens:",i)}},t=i=>{l.value=i,u.value=!0},w=async()=>{if(l.value){_.value=!0;try{if(await N.revokeToken(l.value.token_id)){await p();const g=!l.value.is_long_lived;U.success(c(g?"auth.session_revoked":"auth.token_revoked"))}else{const g=!l.value.is_long_lived;U.error(c(g?"auth.session_revoke_failed":"auth.token_revoke_failed"))}}catch(i){console.error("Failed to revoke token:",i);const g=!l.value?.is_long_lived;U.error(c(g?"auth.session_revoke_failed":"auth.token_revoke_failed"))}finally{u.value=!1,l.value=null,_.value=!1}}};return se(()=>{p()}),(i,g)=>(d(),k("div",Qe,[e(Z,{variant:"comfortable",class:"profile-container"},{default:a(()=>[o("div",Xe,[e(Fe),e(q,{class:"my-6"}),e(Ve),e(q,{class:"my-6"}),e(Oe,{tokens:m.value,onRevoke:t},null,8,["tokens"]),e(q,{class:"my-6"}),e(ge,{tokens:v.value,onRevoke:t,onCreated:p},null,8,["tokens"])])]),_:1}),e(Q,{modelValue:u.value,"onUpdate:modelValue":g[1]||(g[1]=A=>u.value=A),"max-width":"480"},{default:a(()=>[e(W,null,{default:a(()=>[e(G,{class:"text-h6 pl-6 pb-0 mt-3"},{default:a(()=>[y(s(l.value?.is_long_lived?i.$t("auth.revoke_token"):i.$t("auth.revoke_session")),1)]),_:1}),e(J,{class:"px-6 pb-2"},{default:a(()=>[o("p",Ye,s(l.value?.is_long_lived?i.$t("auth.revoke_token_confirm"):i.$t("auth.revoke_session_confirm")),1),o("div",Ze,s(l.value?.name),1)]),_:1}),e(j,{class:"pa-6 pt-4"},{default:a(()=>[e(K),e($,{variant:"text",onClick:g[0]||(g[0]=A=>u.value=!1)},{default:a(()=>[y(s(i.$t("cancel")),1)]),_:1}),e($,{color:"error",variant:"flat",loading:_.value,onClick:w},{default:a(()=>[y(s(i.$t("auth.revoke")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}}),ua=I(xe,[["__scopeId","data-v-4961f1fb"]]);export{ua as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{d0 as D,p as S,i as M,g as w,j as E,t as d,G as F,ca as N,d as R,bZ as j,e as O,cC as q,c9 as G,f as Z,ao as p,I as H,o as l,q as v,r as m,cc as J,v as K,x as Q,z as U,cd as W,ce as X,A as Y,b$ as ee,B as ae,C as te,cA as le,ci as se,E as s,aL as ne,ae as y,an as f,M as oe}from"./index-Co2Il0FF.js";const ie=D("v-alert-title"),ce=S({iconSize:[Number,String],iconSizes:{type:Array,default:()=>[["x-small",10],["small",16],["default",24],["large",28],["x-large",32]]}},"iconSize");function re(e,n){return{iconSize:M(()=>{const a=new Map(e.iconSizes),t=e.iconSize??n()??"default";return a.has(t)?a.get(t):t})}}const ue=["success","info","warning","error"],de=S({border:{type:[Boolean,String],validator:e=>typeof e=="boolean"||["top","end","bottom","start"].includes(e)},borderColor:String,closable:Boolean,closeIcon:{type:le,default:"$close"},closeLabel:{type:String,default:"$vuetify.close"},icon:{type:[Boolean,String,Function,Object],default:null},modelValue:{type:Boolean,default:!0},prominent:Boolean,title:String,text:String,type:{type:String,validator:e=>ue.includes(e)},...te(),...ae(),...ee(),...Y(),...ce(),...X(),...W(),...U(),...Q(),...K(),...J({variant:"flat"})},"VAlert"),me=w()({name:"VAlert",props:de(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0},setup(e,n){let{emit:c,slots:a}=n;const t=E(e,"modelValue"),o=d(()=>{if(e.icon!==!1)return e.type?e.icon??`$${e.type}`:e.icon}),{iconSize:b}=re(e,()=>e.prominent?44:void 0),{themeClasses:k}=F(e),{colorClasses:C,colorStyles:P,variantClasses:z}=N(()=>({color:e.color??e.type,variant:e.variant})),{densityClasses:V}=R(e),{dimensionStyles:g}=j(e),{elevationClasses:x}=O(e),{locationStyles:_}=q(e),{positionClasses:A}=G(e),{roundedClasses:B}=Z(e),{textColorClasses:I,textColorStyles:h}=p(()=>e.borderColor),{t:T}=H(),r=d(()=>({"aria-label":T(e.closeLabel),onClick(i){t.value=!1,c("click:close",i)}}));return()=>{const i=!!(a.prepend||o.value),L=!!(a.title||e.title),$=!!(a.close||e.closable),u={density:e.density,icon:o.value,size:e.iconSize||e.prominent?b.value:void 0};return t.value&&l(e.tag,{class:m(["v-alert",e.border&&{"v-alert--border":!!e.border,[`v-alert--border-${e.border===!0?"start":e.border}`]:!0},{"v-alert--prominent":e.prominent},k.value,C.value,V.value,x.value,A.value,B.value,z.value,e.class]),style:v([P.value,g.value,_.value,e.style]),role:"alert"},{default:()=>[se(!1,"v-alert"),e.border&&s("div",{key:"border",class:m(["v-alert__border",I.value]),style:v(h.value)},null),i&&s("div",{key:"prepend",class:"v-alert__prepend"},[a.prepend?l(f,{key:"prepend-defaults",disabled:!o.value,defaults:{VIcon:{...u}}},a.prepend):l(ne,y({key:"prepend-icon"},u),null)]),s("div",{class:"v-alert__content"},[L&&l(ie,{key:"title"},{default:()=>[a.title?.()??e.title]}),a.text?.()??e.text,a.default?.()]),a.append&&s("div",{key:"append",class:"v-alert__append"},[a.append()]),$&&s("div",{key:"close",class:"v-alert__close"},[a.close?l(f,{key:"close-defaults",defaults:{VBtn:{icon:e.closeIcon,size:"x-small",variant:"text"}}},{default:()=>[a.close?.({props:r.value})]}):l(oe,y({key:"close-btn",icon:e.closeIcon,size:"x-small",variant:"text"},r.value),null)])]})}}});export{me as V,ie as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{V as a,m as f}from"./VSelectionControl-
|
|
1
|
+
import{V as a,m as f}from"./VSelectionControl-BU644enI.js";import{g as V,p as v,j as c,t as l,n as I,ai as k,o as x,ae as h,cA as b}from"./index-Co2Il0FF.js";const C=v({indeterminate:Boolean,indeterminateIcon:{type:b,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=V()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:s}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function u(o){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),m=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const o=k(a.filterProps(e),["modelValue"]);return x(a,h(o,{modelValue:n.value,"onUpdate:modelValue":[d=>n.value=d,u],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:m.value,"aria-checked":t.value?"mixed":void 0}),s)}),{}}});export{B as V,C as m};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as P,p as x,j as E,aa as b,J as y,L as D,n as w,bx as u,ae as r,o as d,ap as A,ai as F,
|
|
1
|
+
import{g as P,p as x,j as E,aa as b,J as y,L as D,n as w,bx as u,ae as r,o as d,ap as A,ai as F,cf as L,cO as I,R as S,an as O}from"./index-Co2Il0FF.js";const R=x({fullscreen:Boolean,scrollable:Boolean,...F(L({captureFocus:!0,origin:"center center",scrollStrategy:"block",transition:{component:I},zIndex:2400,retainFocus:!0}),["disableInitialFocus"])},"VDialog"),H=P()({name:"VDialog",props:R(),emits:{"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(e,f){let{emit:c,slots:i}=f;const o=E(e,"modelValue"),{scopeId:v}=b(),a=y();function m(){c("afterEnter"),(e.scrim||e.retainFocus)&&a.value?.contentEl&&!a.value.contentEl.contains(document.activeElement)&&a.value.contentEl.focus({preventScroll:!0})}function g(){c("afterLeave")}return D(o,async l=>{l||(await S(),a.value.activatorEl?.focus({preventScroll:!0}))}),w(()=>{const l=u.filterProps(e),V=r({"aria-haspopup":"dialog"},e.activatorProps),h=r({tabindex:-1},e.contentProps);return d(u,r({ref:a,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},l,{modelValue:o.value,"onUpdate:modelValue":t=>o.value=t,"aria-modal":"true",activatorProps:V,contentProps:h,height:e.fullscreen?void 0:e.height,width:e.fullscreen?void 0:e.width,maxHeight:e.fullscreen?void 0:e.maxHeight,maxWidth:e.fullscreen?void 0:e.maxWidth,role:"dialog",onAfterEnter:m,onAfterLeave:g},v),{activator:i.activator,default:function(){for(var t=arguments.length,s=new Array(t),n=0;n<t;n++)s[n]=arguments[n];return d(O,{root:"VDialog"},{default:()=>[i.default?.(...s)]})}})}),A({},a)}});export{H as V};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as m,p as P,T as h,W as N,n as b,o as i,cM as j,Z,C as E,N as w,X as q,E as u,q as y,r as v,cN as I,c as A,bZ as F,i as f,t as l,an as B,b$ as M,cA as k,aL as O,U,e as W,f as X,x as _,z as H,$ as J,A as K,S as Q,l as Y,G as ee,m as ae,v as ne,av as le,w as te}from"./index-Co2Il0FF.js";const x=Symbol.for("vuetify:v-expansion-panel"),D=P({...E(),...Z()},"VExpansionPanelText"),C=m()({name:"VExpansionPanelText",props:D(),setup(e,c){let{slots:n}=c;const a=h(x);if(!a)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:s,onAfterLeave:d}=N(e,a.isSelected);return b(()=>i(j,{onAfterLeave:d},{default:()=>[w(u("div",{class:v(["v-expansion-panel-text",e.class]),style:y(e.style)},[n.default&&s.value&&u("div",{class:"v-expansion-panel-text__wrapper"},[n.default?.()])]),[[q,a.isSelected.value]])]})),{}}}),R=P({color:String,expandIcon:{type:k,default:"$expand"},collapseIcon:{type:k,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...E(),...M()},"VExpansionPanelTitle"),T=m()({name:"VExpansionPanelTitle",directives:{vRipple:I},props:R(),setup(e,c){let{slots:n}=c;const a=h(x);if(!a)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:s,backgroundColorStyles:d}=A(()=>e.color),{dimensionStyles:r}=F(e),p=f(()=>({collapseIcon:e.collapseIcon,disabled:a.disabled.value,expanded:a.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly})),V=l(()=>a.isSelected.value?e.collapseIcon:e.expandIcon);return b(()=>w(u("button",{class:v(["v-expansion-panel-title",{"v-expansion-panel-title--active":a.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},s.value,e.class]),style:y([d.value,r.value,e.style]),type:"button",tabindex:a.disabled.value?-1:void 0,disabled:a.disabled.value,"aria-expanded":a.isSelected.value,onClick:e.readonly?void 0:a.toggle},[u("span",{class:"v-expansion-panel-title__overlay"},null),n.default?.(p.value),!e.hideActions&&i(B,{defaults:{VIcon:{icon:V.value}}},{default:()=>[u("span",{class:"v-expansion-panel-title__icon"},[n.actions?.(p.value)??i(O,null,null)])]})]),[[I,e.ripple]])),{}}}),z=P({title:String,text:String,bgColor:String,...K(),...J(),...H(),..._(),...R(),...D()},"VExpansionPanel"),ce=m()({name:"VExpansionPanel",props:z(),emits:{"group:selected":e=>!0},setup(e,c){let{slots:n}=c;const a=U(e,x),{backgroundColorClasses:s,backgroundColorStyles:d}=A(()=>e.bgColor),{elevationClasses:r}=W(e),{roundedClasses:p}=X(e),V=l(()=>a?.disabled.value||e.disabled),S=f(()=>a.group.items.value.reduce((o,t,g)=>(a.group.selected.value.includes(t.id)&&o.push(g),o),[])),G=f(()=>{const o=a.group.items.value.findIndex(t=>t.id===a.id);return!a.isSelected.value&&S.value.some(t=>t-o===1)}),L=f(()=>{const o=a.group.items.value.findIndex(t=>t.id===a.id);return!a.isSelected.value&&S.value.some(t=>t-o===-1)});return Q(x,a),b(()=>{const o=!!(n.text||e.text),t=!!(n.title||e.title),g=T.filterProps(e),$=C.filterProps(e);return i(e.tag,{class:v(["v-expansion-panel",{"v-expansion-panel--active":a.isSelected.value,"v-expansion-panel--before-active":G.value,"v-expansion-panel--after-active":L.value,"v-expansion-panel--disabled":V.value},p.value,s.value,e.class]),style:y([d.value,e.style])},{default:()=>[u("div",{class:v(["v-expansion-panel__shadow",...r.value])},null),i(B,{defaults:{VExpansionPanelTitle:{...g},VExpansionPanelText:{...$}}},{default:()=>[t&&i(T,{key:"title"},{default:()=>[n.title?n.title():e.title]}),o&&i(C,{key:"text"},{default:()=>[n.text?n.text():e.text]}),n.default?.()]})]})}),{groupItem:a}}}),se=["default","accordion","inset","popout"],oe=P({flat:Boolean,...te(),...le(z(),["bgColor","collapseIcon","color","eager","elevation","expandIcon","focusable","hideActions","readonly","ripple","rounded","tile","static"]),...ne(),...E(),..._(),variant:{type:String,default:"default",validator:e=>se.includes(e)}},"VExpansionPanels"),de=m()({name:"VExpansionPanels",props:oe(),emits:{"update:modelValue":e=>!0},setup(e,c){let{slots:n}=c;const{next:a,prev:s}=Y(e,x),{themeClasses:d}=ee(e),r=l(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return ae({VExpansionPanel:{bgColor:l(()=>e.bgColor),collapseIcon:l(()=>e.collapseIcon),color:l(()=>e.color),eager:l(()=>e.eager),elevation:l(()=>e.elevation),expandIcon:l(()=>e.expandIcon),focusable:l(()=>e.focusable),hideActions:l(()=>e.hideActions),readonly:l(()=>e.readonly),ripple:l(()=>e.ripple),rounded:l(()=>e.rounded),static:l(()=>e.static)}}),b(()=>i(e.tag,{class:v(["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},d.value,r.value,e.class]),style:y(e.style)},{default:()=>[n.default?.({prev:s,next:a})]})),{next:a,prev:s}}});export{de as V,ce as a,T as b,C as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as d,p,
|
|
1
|
+
import{g as d,p,d1 as v,J as b,n as y,E as F,q as V,r as h,ap as R,d2 as C,C as P}from"./index-Co2Il0FF.js";const k=p({...P(),...C()},"VForm"),g=d()({name:"VForm",props:k(),emits:{"update:modelValue":a=>!0,submit:a=>!0},setup(a,n){let{slots:m,emit:l}=n;const s=v(a),o=b();function i(r){r.preventDefault(),s.reset()}function f(r){const t=r,e=s.validate();t.then=e.then.bind(e),t.catch=e.catch.bind(e),t.finally=e.finally.bind(e),l("submit",t),t.defaultPrevented||e.then(u=>{let{valid:c}=u;c&&o.value?.submit()}),t.preventDefault()}return y(()=>F("form",{ref:o,class:h(["v-form",a.class]),style:V(a.style),novalidate:!0,onReset:i,onSubmit:f},[m.default?.(s)])),R(s,o)}});export{g as V};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as L,p as N,J as R,K as w,i as _,s as $,a3 as E,I as B,bZ as D,n as
|
|
1
|
+
import{g as L,p as N,J as R,K as w,i as _,s as $,a3 as E,I as B,bZ as D,n as A,o as c,q as H,r as W,x as J,b$ as K,R as v,cq as O,cr as U,L as Z,E as g,bh as j,b8 as q,M as G}from"./index-Co2Il0FF.js";const Q=N({color:String,direction:{type:String,default:"vertical",validator:e=>["vertical","horizontal"].includes(e)},side:{type:String,default:"end",validator:e=>["start","end","both"].includes(e)},mode:{type:String,default:"intersect",validator:e=>["intersect","manual"].includes(e)},margin:[Number,String],loadMoreText:{type:String,default:"$vuetify.infiniteScroll.loadMore"},emptyText:{type:String,default:"$vuetify.infiniteScroll.empty"},...K(),...J()},"VInfiniteScroll"),x=O({name:"VInfiniteScrollIntersect",props:{side:{type:String,required:!0},rootMargin:String},emits:{intersect:(e,d)=>!0},setup(e,d){let{emit:o}=d;const{intersectionRef:S,isIntersecting:i}=U();return Z(i,async a=>{o("intersect",e.side,a)}),A(()=>g("div",{class:"v-infinite-scroll-intersect",style:{"--v-infinite-margin-size":e.rootMargin},ref:S},[j(" ")])),{}}}),Y=L()({name:"VInfiniteScroll",props:Q(),emits:{load:e=>!0},setup(e,d){let{slots:o,emit:S}=d;const i=R(),a=w("ok"),f=w("ok"),b=_(()=>$(e.margin)),y=w(!1);function m(t){if(!i.value)return;const n=e.direction==="vertical"?"scrollTop":"scrollLeft";i.value[n]=t}function k(){if(!i.value)return 0;const t=e.direction==="vertical"?"scrollTop":"scrollLeft";return i.value[t]}function u(){if(!i.value)return 0;const t=e.direction==="vertical"?"scrollHeight":"scrollWidth";return i.value[t]}function z(){if(!i.value)return 0;const t=e.direction==="vertical"?"clientHeight":"clientWidth";return i.value[t]}E(()=>{i.value&&(e.side==="start"?m(u()):e.side==="both"&&m(u()/2-z()/2))});function h(t,n){t==="start"?a.value=n:t==="end"?f.value=n:t==="both"&&(a.value=n,f.value=n)}function C(t){return t==="start"?a.value:f.value}let I=0;function V(t,n){y.value=n,y.value&&s(t)}function s(t){if(e.mode!=="manual"&&!y.value)return;const n=C(t);if(!i.value||["empty","loading"].includes(n))return;I=u(),h(t,"loading");function l(r){h(t,r),v(()=>{r==="empty"||r==="error"||(r==="ok"&&t==="start"&&m(u()-I+k()),e.mode!=="manual"&&v(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{s(t)})})})}))})}S("load",{side:t,done:l})}const{t:T}=B();function M(t,n){if(e.side!==t&&e.side!=="both")return;const l=()=>s(t),r={side:t,props:{onClick:l,color:e.color}};return n==="error"?o.error?.(r):n==="empty"?o.empty?.(r)??g("div",null,[T(e.emptyText)]):e.mode==="manual"?n==="loading"?o.loading?.(r)??c(q,{indeterminate:!0,color:e.color},null):o["load-more"]?.(r)??c(G,{variant:"outlined",color:e.color,onClick:l},{default:()=>[T(e.loadMoreText)]}):o.loading?.(r)??c(q,{indeterminate:!0,color:e.color},null)}const{dimensionStyles:F}=D(e);A(()=>{const t=e.tag,n=e.side==="start"||e.side==="both",l=e.side==="end"||e.side==="both",r=e.mode==="intersect";return c(t,{ref:i,class:W(["v-infinite-scroll",`v-infinite-scroll--${e.direction}`,{"v-infinite-scroll--start":n,"v-infinite-scroll--end":l}]),style:H(F.value)},{default:()=>[g("div",{class:"v-infinite-scroll__side"},[M("start",a.value)]),n&&r&&c(x,{key:"start",side:"start",onIntersect:V,rootMargin:b.value},null),o.default?.(),l&&r&&c(x,{key:"end",side:"end",onIntersect:V,rootMargin:b.value},null),g("div",{class:"v-infinite-scroll__side"},[M("end",f.value)])]})});function P(t){const n=t??e.side;h(n,"ok"),v(()=>{n!=="end"&&m(u()-I+k()),e.mode!=="manual"&&v(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{n==="both"?(s("start"),s("end")):s(n)})})})})})}return{reset:P}}});export{Y as V};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as le,L as
|
|
1
|
+
import{K as le,L as N,I as ae,ct as be,i as I,t as $,dg as W,p as U,g as ke,J as F,d6 as we,j as Q,c_ as Ce,cQ as Pe,dh as xe,cZ as H,n as Se,bH as Y,o as v,ae as y,ap as Ie,cE as Ae,ai as De,cO as Le,d8 as Te,db as Z,c$ as G,di as Be,cA as Ee,R as Re,O as Fe,E as b,aL as X,ah as M,b4 as _e,aF as Oe,aJ as ee,dj as Ke,aU as $e,dd as He,bE as Me,bK as te,de as Ne,an as Ue,bh as qe}from"./index-Co2Il0FF.js";import{V as je}from"./VVirtualScroll-Bmp7pEa7.js";import{V as ze}from"./VCheckboxBtn-pFfosXS7.js";function Je(e,A){const a=le(!1);let k;function f(n){cancelAnimationFrame(k),a.value=!0,k=requestAnimationFrame(()=>{k=requestAnimationFrame(()=>{a.value=!1})})}async function D(){await new Promise(n=>requestAnimationFrame(n)),await new Promise(n=>requestAnimationFrame(n)),await new Promise(n=>requestAnimationFrame(n)),await new Promise(n=>{if(a.value){const p=N(a,()=>{p(),n()})}else n()})}async function w(n){if(n.key==="Tab"&&A.value?.focus(),!["PageDown","PageUp","Home","End"].includes(n.key))return;const p=e.value?.$el;if(!p)return;(n.key==="Home"||n.key==="End")&&p.scrollTo({top:n.key==="Home"?0:p.scrollHeight,behavior:"smooth"}),await D();const B=p.querySelectorAll(":scope > :not(.v-virtual-scroll__spacer)");if(n.key==="PageDown"||n.key==="Home"){const o=p.getBoundingClientRect().top;for(const C of B)if(C.getBoundingClientRect().top>=o){C.focus();break}}else{const o=p.getBoundingClientRect().bottom;for(const C of[...B].reverse())if(C.getBoundingClientRect().bottom<=o){C.focus();break}}}return{onScrollPassive:f,onKeydown:w}}const We=U({closeText:{type:String,default:"$vuetify.close"},openText:{type:String,default:"$vuetify.open"}},"autocomplete");function Qe(e,A){const{t:a}=ae(),k=be(),f=I(()=>`menu-${k}`),D=$(()=>W(A)),w=$(()=>f.value),n=$(()=>a(W(A)?e.closeText:e.openText));return{menuId:f,ariaExpanded:D,ariaControls:w,ariaLabel:n}}const Ye=U({chips:Boolean,closableChips:Boolean,eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuIcon:{type:Ee,default:"$dropdown"},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:"$vuetify.noDataText"},openOnClear:Boolean,itemColor:String,noAutoScroll:Boolean,...We(),...Be({itemChildren:!1})},"Select"),Ze=U({...Ye(),...De(Te({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Ae({transition:{component:Le}})},"VSelect"),tt=ke()({name:"VSelect",props:Ze(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0},setup(e,A){let{slots:a}=A;const{t:k}=ae(),f=F(),D=F(),w=F(),{items:n,transformIn:p,transformOut:B}=we(e),o=Q(e,"modelValue",[],t=>p(t===null?[null]:Ce(t)),t=>{const s=B(t);return e.multiple?s:s[0]??null}),C=I(()=>typeof e.counterValue=="function"?e.counterValue(o.value):typeof e.counterValue=="number"?e.counterValue:o.value.length),_=Pe(e),ne=xe(e),q=I(()=>o.value.map(t=>t.value)),P=le(!1);let g="",E=-1,j;const L=I(()=>e.hideSelected?n.value.filter(t=>!o.value.some(s=>(e.valueComparator||H)(s,t))):n.value),O=I(()=>e.hideNoData&&!L.value.length||_.isReadonly.value||_.isDisabled.value),K=Q(e,"menu"),r=I({get:()=>K.value,set:t=>{K.value&&!t&&D.value?.ΨopenChildren.size||t&&O.value||(K.value=t)}}),{menuId:oe,ariaExpanded:ue,ariaControls:ie,ariaLabel:z}=Qe(e,r),se=I(()=>({...e.menuProps,activatorProps:{...e.menuProps?.activatorProps||{},"aria-haspopup":"listbox"}})),T=F(),re=Je(T,f);function ce(t){e.openOnClear&&(r.value=!0)}function de(){O.value||(r.value=!r.value)}function fe(t){Z(t)&&J(t)}function J(t){if(!t.key||_.isReadonly.value)return;["Enter"," ","ArrowDown","ArrowUp","Home","End"].includes(t.key)&&t.preventDefault(),["Enter","ArrowDown"," "].includes(t.key)&&(r.value=!0),["Escape","Tab"].includes(t.key)&&(r.value=!1),t.key==="Home"?T.value?.focus("first"):t.key==="End"&&T.value?.focus("last");const s=1e3;if(!Z(t))return;const c=performance.now();c-j>s&&(g="",E=-1),g+=t.key.toLowerCase(),j=c;const x=L.value;function V(){let i=l();return i||g.at(-1)===g.at(-2)&&(g=g.slice(0,-1),i=l(),i)||(E=-1,i=l(),i)?i:(g=t.key.toLowerCase(),l())}function l(){for(let i=E+1;i<x.length;i++){const h=x[i];if(h.title.toLowerCase().startsWith(g))return[h,i]}}const u=V();if(!u)return;const[d,S]=u;E=S,T.value?.focus(S),e.multiple||(o.value=[d])}function R(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!t.props.disabled)if(e.multiple){const c=o.value.findIndex(V=>(e.valueComparator||H)(V.value,t.value)),x=s??!~c;if(~c){const V=x?[...o.value,t]:[...o.value];V.splice(c,1),o.value=V}else x&&(o.value=[...o.value,t])}else{const c=s!==!1;o.value=c?[t]:[],Re(()=>{r.value=!1})}}function ve(t){T.value?.$el.contains(t.relatedTarget)||(r.value=!1)}function me(){e.eager&&w.value?.calculateVisibleItems()}function pe(){P.value&&f.value?.focus()}function he(t){P.value=!0}function ye(t){if(t==null)o.value=[];else if(G(f.value,":autofill")||G(f.value,":-webkit-autofill")){const s=n.value.find(c=>c.title===t);s&&R(s)}else f.value&&(f.value.value="")}return N(r,()=>{if(!e.hideSelected&&r.value&&o.value.length){const t=L.value.findIndex(s=>o.value.some(c=>(e.valueComparator||H)(c.value,s.value)));Fe&&!e.noAutoScroll&&window.requestAnimationFrame(()=>{t>=0&&w.value?.scrollToIndex(t)})}}),N(n,(t,s)=>{r.value||P.value&&e.hideNoData&&!s.length&&t.length&&(r.value=!0)}),Se(()=>{const t=!!(e.chips||a.chip),s=!!(!e.hideNoData||L.value.length||a["prepend-item"]||a["append-item"]||a["no-data"]),c=o.value.length>0,x=Y.filterProps(e),V=c||!P.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder;return v(Y,y({ref:f},x,{modelValue:o.value.map(l=>l.props.title).join(", "),name:void 0,"onUpdate:modelValue":ye,focused:P.value,"onUpdate:focused":l=>P.value=l,validationValue:o.externalValue,counterValue:C.value,dirty:c,class:["v-select",{"v-select--active-menu":r.value,"v-select--chips":!!e.chips,[`v-select--${e.multiple?"multiple":"single"}`]:!0,"v-select--selected":o.value.length,"v-select--selection-slot":!!a.selection},e.class],style:e.style,inputmode:"none",placeholder:V,"onClick:clear":ce,"onMousedown:control":de,onBlur:ve,onKeydown:J,"aria-expanded":ue.value,"aria-controls":ie.value,"aria-label":z.value,title:z.value}),{...a,default:()=>b(M,null,[b("select",{hidden:!0,multiple:e.multiple,name:ne.fieldName.value},[n.value.map(l=>b("option",{key:l.value,value:l.value,selected:q.value.includes(l.value)},null))]),v(_e,y({id:oe.value,ref:D,modelValue:r.value,"onUpdate:modelValue":l=>r.value=l,activator:"parent",contentClass:"v-select__content",disabled:O.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:me,onAfterLeave:pe},se.value),{default:()=>[s&&v(Oe,y({ref:T,selected:q.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:l=>l.preventDefault(),onKeydown:fe,onFocusin:he,tabindex:"-1",selectable:!0,"aria-live":"polite","aria-label":`${e.label}-list`,color:e.itemColor??e.color},re,e.listProps),{default:()=>[a["prepend-item"]?.(),!L.value.length&&!e.hideNoData&&(a["no-data"]?.()??v(ee,{key:"no-data",title:k(e.noDataText)},null)),v(je,{ref:w,renderless:!0,items:L.value,itemKey:"value"},{default:l=>{let{item:u,index:d,itemRef:S}=l;const i=Ke(u.props),h=y(u.props,{ref:S,key:u.value,onClick:()=>R(u,null)});return u.type==="divider"?a.divider?.({props:u.raw,index:d})??v($e,y(u.props,{key:`divider-${d}`}),null):u.type==="subheader"?a.subheader?.({props:u.raw,index:d})??v(He,y(u.props,{key:`subheader-${d}`}),null):a.item?.({item:u,index:d,props:h})??v(ee,y(h,{role:"option"}),{prepend:m=>{let{isSelected:ge}=m;return b(M,null,[e.multiple&&!e.hideSelected?v(ze,{key:u.value,modelValue:ge,ripple:!1,tabindex:"-1",onClick:Ve=>Ve.preventDefault()},null):void 0,i.prependAvatar&&v(Me,{image:i.prependAvatar},null),i.prependIcon&&v(X,{icon:i.prependIcon},null)])}})}}),a["append-item"]?.()]})]}),o.value.map((l,u)=>{function d(m){m.stopPropagation(),m.preventDefault(),R(l,!1)}const S=y(te.filterProps(l.props),{"onClick:close":d,onKeydown(m){m.key!=="Enter"&&m.key!==" "||(m.preventDefault(),m.stopPropagation(),d(m))},onMousedown(m){m.preventDefault(),m.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),i=t?!!a.chip:!!a.selection,h=i?Ne(t?a.chip({item:l,index:u,props:S}):a.selection({item:l,index:u})):void 0;if(!(i&&!h))return b("div",{key:l.value,class:"v-select__selection"},[t?a.chip?v(Ue,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:l.title}}},{default:()=>[h]}):v(te,y({key:"chip",closable:e.closableChips,size:"small",text:l.title,disabled:l.props.disabled},S),null):h??b("span",{class:"v-select__selection-text"},[l.title,e.multiple&&u<o.value.length-1&&b("span",{class:"v-select__selection-comma"},[qe(",")])])])})]),"append-inner":function(){for(var l=arguments.length,u=new Array(l),d=0;d<l;d++)u[d]=arguments[d];return b(M,null,[a["append-inner"]?.(...u),e.menuIcon?v(X,{class:"v-select__menu-icon",color:f.value?.fieldIconColor,icon:e.menuIcon},null):void 0])}})}),Ie({isFocused:P,menu:r,select:R},f)}});export{tt as V,Je as a,Ye as m,Qe as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as B,v as K,B as O,C as N,cZ as Z,cA as T,g as _,j as U,ct as j,t as a,m as Q,n as E,E as m,q as L,r as h,S as W,a7 as X,cN as w,K as G,J as Y,cu as p,ae as R,o as D,N as ee,ah as le,aL as ae,cV as te,T as oe,d as ne,i as C,c_ as I,ao as ue,c as ie,R as re,c$ as se}from"./index-Co2Il0FF.js";const $=Symbol.for("vuetify:selection-control-group"),q=B({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:T,trueIcon:T,ripple:{type:[Boolean,Object],default:!0},multiple:{type:Boolean,default:null},name:String,readonly:{type:Boolean,default:null},modelValue:null,type:String,valueComparator:{type:Function,default:Z},...N(),...O(),...K()},"SelectionControlGroup"),ce=B({...q({defaultsTarget:"VSelectionControl"})},"VSelectionControlGroup");_()({name:"VSelectionControlGroup",props:ce(),emits:{"update:modelValue":e=>!0},setup(e,n){let{slots:y}=n;const t=U(e,"modelValue"),o=j(),f=a(()=>e.id||`v-selection-control-group-${o}`),r=a(()=>e.name||f.value),l=new Set;return W($,{modelValue:t,forceUpdate:()=>{l.forEach(u=>u())},onForceUpdate:u=>{l.add(u),X(()=>{l.delete(u)})}}),Q({[e.defaultsTarget]:{color:a(()=>e.color),disabled:a(()=>e.disabled),density:a(()=>e.density),error:a(()=>e.error),inline:a(()=>e.inline),modelValue:t,multiple:a(()=>!!e.multiple||e.multiple==null&&Array.isArray(t.value)),name:r,falseIcon:a(()=>e.falseIcon),trueIcon:a(()=>e.trueIcon),readonly:a(()=>e.readonly),ripple:a(()=>e.ripple),type:a(()=>e.type),valueComparator:a(()=>e.valueComparator)}}),E(()=>m("div",{class:h(["v-selection-control-group",{"v-selection-control-group--inline":e.inline},e.class]),style:L(e.style),role:e.type==="radio"?"radiogroup":void 0},[y.default?.()])),{}}});const de=B({label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...N(),...q()},"VSelectionControl");function ve(e){const n=oe($,void 0),{densityClasses:y}=ne(e),t=U(e,"modelValue"),o=C(()=>e.trueValue!==void 0?e.trueValue:e.value!==void 0?e.value:!0),f=C(()=>e.falseValue!==void 0?e.falseValue:!1),r=C(()=>!!e.multiple||e.multiple==null&&Array.isArray(t.value)),l=C({get(){const d=n?n.modelValue.value:t.value;return r.value?I(d).some(i=>e.valueComparator(i,o.value)):e.valueComparator(d,o.value)},set(d){if(e.readonly)return;const i=d?o.value:f.value;let v=i;r.value&&(v=d?[...I(t.value),i]:I(t.value).filter(s=>!e.valueComparator(s,o.value))),n?n.modelValue.value=v:t.value=v}}),{textColorClasses:u,textColorStyles:b}=ue(()=>{if(!(e.error||e.disabled))return l.value?e.color:e.baseColor}),{backgroundColorClasses:V,backgroundColorStyles:g}=ie(()=>l.value&&!e.error&&!e.disabled?e.color:e.baseColor),k=C(()=>l.value?e.trueIcon:e.falseIcon);return{group:n,densityClasses:y,trueValue:o,falseValue:f,model:l,textColorClasses:u,textColorStyles:b,backgroundColorClasses:V,backgroundColorStyles:g,icon:k}}const me=_()({name:"VSelectionControl",directives:{vRipple:w},inheritAttrs:!1,props:de(),emits:{"update:modelValue":e=>!0},setup(e,n){let{attrs:y,slots:t}=n;const{group:o,densityClasses:f,icon:r,model:l,textColorClasses:u,textColorStyles:b,backgroundColorClasses:V,backgroundColorStyles:g,trueValue:k}=ve(e),d=j(),i=G(!1),v=G(!1),s=Y(),S=a(()=>e.id||`input-${d}`),A=a(()=>!e.disabled&&!e.readonly);o?.onForceUpdate(()=>{s.value&&(s.value.checked=l.value)});function x(c){A.value&&(i.value=!0,se(c.target,":focus-visible")!==!1&&(v.value=!0))}function F(){i.value=!1,v.value=!1}function z(c){c.stopPropagation()}function M(c){if(!A.value){s.value&&(s.value.checked=l.value);return}e.readonly&&o&&re(()=>o.forceUpdate()),l.value=c.target.checked}return E(()=>{const c=t.label?t.label({label:e.label,props:{for:S.value}}):e.label,[H,J]=p(y),P=m("input",R({ref:s,checked:l.value,disabled:!!e.disabled,id:S.value,onBlur:F,onFocus:x,onInput:M,"aria-disabled":!!e.disabled,"aria-label":e.label,type:e.type,value:k.value,name:e.name,"aria-checked":e.type==="checkbox"?l.value:void 0},J),null);return m("div",R({class:["v-selection-control",{"v-selection-control--dirty":l.value,"v-selection-control--disabled":e.disabled,"v-selection-control--error":e.error,"v-selection-control--focused":i.value,"v-selection-control--focus-visible":v.value,"v-selection-control--inline":e.inline},f.value,e.class]},H,{style:e.style}),[m("div",{class:h(["v-selection-control__wrapper",u.value]),style:L(b.value)},[t.default?.({backgroundColorClasses:V,backgroundColorStyles:g}),ee(m("div",{class:h(["v-selection-control__input"])},[t.input?.({model:l,textColorClasses:u,textColorStyles:b,backgroundColorClasses:V,backgroundColorStyles:g,inputNode:P,icon:r.value,props:{onFocus:x,onBlur:F,id:S.value}})??m(le,null,[r.value&&D(ae,{key:"icon",icon:r.value},null),P])]),[[w,!e.disabled&&!e.readonly&&e.ripple,null,{center:!0,circle:!0}]])]),c&&D(te,{for:S.value,onClick:z},{default:()=>[c]})])}),{isFocused:i,input:s}}});export{me as V,de as m};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as le,i as s,cN as ce,cO as ge,H as ne,t as L,K as de,J as ee,cP as Ce,A as we,z as Ve,a6 as se,R as _e,S as Te,g as oe,cL as ve,T as fe,e as xe,ao as Fe,c as re,cQ as Re,n as ue,s as $,E as f,N as me,o as H,q as J,r as E,X as Pe,cR as Ne,C as he,f as ze,j as Le,ci as Ee,cl as be,ae as Be,ap as Me,cm as Ke,cS as De,cT as Ie,ah as Oe}from"./index-Ci6ypq6O.js";const ie=Symbol.for("vuetify:v-slider");function qe(e,l,r){const u=r==="vertical",i=l.getBoundingClientRect(),h="touches"in e?e.touches[0]:e;return u?h.clientY-(i.top+i.height/2):h.clientX-(i.left+i.width/2)}function Ae(e,l){return"touches"in e&&e.touches.length?e.touches[0][l]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][l]:e[l]}const je=le({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,noKeyboard:Boolean,...Ve(),...we({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),$e=e=>{const l=s(()=>parseFloat(e.min)),r=s(()=>parseFloat(e.max)),u=s(()=>Number(e.step)>0?parseFloat(e.step):0),i=s(()=>Math.max(ce(u.value),ce(l.value)));function h(S){if(S=parseFloat(S),u.value<=0)return S;const o=se(S,l.value,r.value),c=l.value%u.value;let y=Math.round((o-c)/u.value)*u.value+c;return o>y&&y+u.value>r.value&&(y=r.value),parseFloat(Math.min(y,r.value).toFixed(i.value))}return{min:l,max:r,step:u,decimals:i,roundValue:h}},Ue=e=>{let{props:l,steps:r,onSliderStart:u,onSliderMove:i,onSliderEnd:h,getActiveThumb:S}=e;const o=ge(l),{isRtl:c}=ne(),y=L(()=>l.reverse),F=s(()=>l.direction==="vertical"),w=s(()=>F.value!==y.value),{min:d,max:V,step:_,decimals:K,roundValue:B}=r,D=s(()=>parseInt(l.thumbSize,10)),g=s(()=>parseInt(l.tickSize,10)),C=s(()=>parseInt(l.trackSize,10)),R=s(()=>(V.value-d.value)/_.value),T=s(()=>l.error||o.isDisabled.value?void 0:l.thumbColor??l.color),P=s(()=>l.error||o.isDisabled.value?void 0:l.thumbColor),I=s(()=>l.error||o.isDisabled.value?void 0:l.trackColor??l.color),M=s(()=>l.error||o.isDisabled.value?void 0:l.trackFillColor??l.color),v=de(!1),m=de(0),p=ee(),n=ee();function x(t){const a=p.value?.$el;if(!a)return;const j=l.direction==="vertical",G=j?"top":"left",Z=j?"height":"width",ke=j?"clientY":"clientX",{[G]:pe,[Z]:ye}=a.getBoundingClientRect(),Se=Ae(t,ke);let ae=se((Se-pe-m.value)/ye)||0;return(j?w.value:w.value!==c.value)&&(ae=1-ae),B(d.value+ae*(V.value-d.value))}const N=t=>{const a=x(t);a!=null&&h({value:a}),v.value=!1,m.value=0},Y=t=>{const a=x(t);n.value=S(t),n.value&&(v.value=!0,n.value.contains(t.target)?m.value=qe(t,n.value,l.direction):(m.value=0,a!=null&&i({value:a})),a!=null&&u({value:a}),_e(()=>n.value?.focus()))},O={passive:!0,capture:!0};function z(t){const a=x(t);a!=null&&i({value:a})}function q(t){t.stopPropagation(),t.preventDefault(),N(t),window.removeEventListener("mousemove",z,O),window.removeEventListener("mouseup",q)}function U(t){N(t),window.removeEventListener("touchmove",z,O),t.target?.removeEventListener("touchend",U)}function A(t){Y(t),window.addEventListener("touchmove",z,O),t.target?.addEventListener("touchend",U,{passive:!1})}function te(t){t.button===0&&(t.preventDefault(),Y(t),window.addEventListener("mousemove",z,O),window.addEventListener("mouseup",q,{passive:!1}))}const X=t=>{const a=(t-d.value)/(V.value-d.value)*100;return se(isNaN(a)?0:a,0,100)},Q=L(()=>l.showTicks),W=s(()=>Q.value?l.ticks?Array.isArray(l.ticks)?l.ticks.map(t=>({value:t,position:X(t),label:t.toString()})):Object.keys(l.ticks).map(t=>({value:parseFloat(t),position:X(parseFloat(t)),label:l.ticks[t]})):R.value!==1/0?Ce(R.value+1).map(t=>{const a=d.value+t*_.value;return{value:a,position:X(a)}}):[]:[]),k=s(()=>W.value.some(t=>{let{label:a}=t;return!!a})),b={activeThumbRef:n,color:L(()=>l.color),decimals:K,disabled:o.isDisabled,direction:L(()=>l.direction),elevation:L(()=>l.elevation),hasLabels:k,isReversed:y,indexFromEnd:w,min:d,max:V,mousePressed:v,noKeyboard:L(()=>l.noKeyboard),numTicks:R,onSliderMousedown:te,onSliderTouchstart:A,parsedTicks:W,parseMouseMove:x,position:X,readonly:o.isReadonly,rounded:L(()=>l.rounded),roundValue:B,showTicks:Q,startOffset:m,step:_,thumbSize:D,thumbColor:T,thumbLabelColor:P,thumbLabel:L(()=>l.thumbLabel),ticks:L(()=>l.ticks),tickSize:g,trackColor:I,trackContainerRef:p,trackFillColor:M,trackSize:C,vertical:F};return Te(ie,b),b},Xe=le({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,noKeyboard:Boolean,...he()},"VSliderThumb"),Ye=oe()({name:"VSliderThumb",directives:{vRipple:ve},props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,l){let{slots:r,emit:u}=l;const i=fe(ie),{isRtl:h,rtlClasses:S}=ne();if(!i)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{min:o,max:c,thumbColor:y,thumbLabelColor:F,step:w,disabled:d,thumbSize:V,thumbLabel:_,direction:K,isReversed:B,vertical:D,readonly:g,elevation:C,mousePressed:R,decimals:T,indexFromEnd:P}=i,I=s(()=>d.value?void 0:C.value),{elevationClasses:M}=xe(I),{textColorClasses:v,textColorStyles:m}=Fe(y),{backgroundColorClasses:p,backgroundColorStyles:n}=re(F),{pageup:x,pagedown:N,end:Y,home:O,left:z,right:q,down:U,up:A}=Re,te=[x,N,Y,O,z,q,U,A],X=s(()=>w.value?[1,2,3]:[1,5,10]);function Q(k,b){if(e.noKeyboard||d.value||!te.includes(k.key))return;k.preventDefault();const t=w.value||.1,a=(c.value-o.value)/t;if([z,q,U,A].includes(k.key)){const G=(D.value?[h.value?z:q,B.value?U:A]:P.value!==h.value?[z,A]:[q,A]).includes(k.key)?1:-1,Z=k.shiftKey?2:k.ctrlKey?1:0;G===-1&&b===c.value&&!Z&&!Number.isInteger(a)?b=b-a%1*t:b=b+G*t*X.value[Z]}else if(k.key===O)b=o.value;else if(k.key===Y)b=c.value;else{const j=k.key===N?1:-1;b=b-j*t*(a>100?a/10:10)}return Math.max(e.min,Math.min(e.max,b))}function W(k){const b=Q(k,e.modelValue);b!=null&&u("update:modelValue",b)}return ue(()=>{const k=$(P.value?100-e.position:e.position,"%");return f("div",{class:E(["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&R.value},e.class,S.value]),style:J([{"--v-slider-thumb-position":k,"--v-slider-thumb-size":$(V.value)},e.style]),role:"slider",tabindex:d.value?-1:0,"aria-label":e.name,"aria-valuemin":o.value,"aria-valuemax":c.value,"aria-valuenow":e.modelValue,"aria-readonly":!!g.value,"aria-orientation":K.value,onKeydown:g.value?void 0:W},[f("div",{class:E(["v-slider-thumb__surface",v.value,M.value]),style:J(m.value)},null),me(f("div",{class:E(["v-slider-thumb__ripple",v.value]),style:J(m.value)},null),[[ve,e.ripple,null,{circle:!0,center:!0}]]),H(Ne,{origin:"bottom center"},{default:()=>[me(f("div",{class:"v-slider-thumb__label-container"},[f("div",{class:E(["v-slider-thumb__label",p.value]),style:J(n.value)},[f("div",null,[r["thumb-label"]?.({modelValue:e.modelValue})??e.modelValue.toFixed(w.value?T.value:1)]),f("div",{class:"v-slider-thumb__label-wedge"},null)])]),[[Pe,_.value&&e.focused||_.value==="always"]])]})])}),{}}}),He=le({start:{type:Number,required:!0},stop:{type:Number,required:!0},...he()},"VSliderTrack"),Je=oe()({name:"VSliderTrack",props:He(),emits:{},setup(e,l){let{slots:r}=l;const u=fe(ie);if(!u)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:i,parsedTicks:h,rounded:S,showTicks:o,tickSize:c,trackColor:y,trackFillColor:F,trackSize:w,vertical:d,min:V,max:_,indexFromEnd:K}=u,{roundedClasses:B}=ze(S),{backgroundColorClasses:D,backgroundColorStyles:g}=re(F),{backgroundColorClasses:C,backgroundColorStyles:R}=re(y),T=s(()=>`inset-${d.value?"block":"inline"}-${K.value?"end":"start"}`),P=s(()=>d.value?"height":"width"),I=s(()=>({[T.value]:"0%",[P.value]:"100%"})),M=s(()=>e.stop-e.start),v=s(()=>({[T.value]:$(e.start,"%"),[P.value]:$(M.value,"%")})),m=s(()=>o.value?(d.value?h.value.slice().reverse():h.value).map((n,x)=>{const N=n.value!==V.value&&n.value!==_.value?$(n.position,"%"):void 0;return f("div",{key:n.value,class:E(["v-slider-track__tick",{"v-slider-track__tick--filled":n.position>=e.start&&n.position<=e.stop,"v-slider-track__tick--first":n.value===V.value,"v-slider-track__tick--last":n.value===_.value}]),style:{[T.value]:N}},[(n.label||r["tick-label"])&&f("div",{class:"v-slider-track__tick-label"},[r["tick-label"]?.({tick:n,index:x})??n.label])])}):[]);return ue(()=>f("div",{class:E(["v-slider-track",B.value,e.class]),style:J([{"--v-slider-track-size":$(w.value),"--v-slider-tick-size":$(c.value)},e.style])},[f("div",{class:E(["v-slider-track__background",C.value,{"v-slider-track__background--opacity":!!i.value||!F.value}]),style:{...I.value,...R.value}},null),f("div",{class:E(["v-slider-track__fill",D.value]),style:{...v.value,...g.value}},null),o.value&&f("div",{class:E(["v-slider-track__ticks",{"v-slider-track__ticks--always-show":o.value==="always"}])},[m.value])])),{}}}),Qe=le({...De(),...je(),...Ke(),modelValue:{type:[Number,String],default:0}},"VSlider"),Ge=oe()({name:"VSlider",props:Qe(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,l){let{slots:r,emit:u}=l;const i=ee(),h=ee(),{rtlClasses:S}=ne(),o=$e(e),c=Le(e,"modelValue",void 0,v=>o.roundValue(v??o.min.value)),{min:y,max:F,mousePressed:w,roundValue:d,onSliderMousedown:V,onSliderTouchstart:_,trackContainerRef:K,position:B,hasLabels:D,disabled:g,readonly:C,noKeyboard:R}=Ue({props:e,steps:o,onSliderStart:()=>{!g.value&&!C.value&&u("start",c.value)},onSliderEnd:v=>{let{value:m}=v;const p=d(m);!g.value&&!C.value&&(c.value=p),u("end",p)},onSliderMove:v=>{let{value:m}=v;!g.value&&!C.value&&(c.value=d(m))},getActiveThumb:()=>i.value?.$el}),{isFocused:T,focus:P,blur:I}=Ee(e),M=s(()=>B(c.value));return ue(()=>{const v=be.filterProps(e),m=!!(e.label||r.label||r.prepend);return H(be,Be({ref:h,class:["v-slider",{"v-slider--has-labels":!!r["tick-label"]||D.value,"v-slider--focused":T.value,"v-slider--pressed":w.value,"v-slider--disabled":g.value},S.value,e.class],style:e.style},v,{focused:T.value}),{...r,prepend:m?p=>f(Oe,null,[r.label?.(p)??(e.label?H(Ie,{id:p.id.value,class:"v-slider__label",text:e.label},null):void 0),r.prepend?.(p)]):void 0,default:p=>{let{id:n,messagesId:x}=p;return f("div",{class:"v-slider__container",onMousedown:C.value?void 0:V,onTouchstartPassive:C.value?void 0:_},[f("input",{id:n.value,name:e.name||n.value,disabled:g.value,readonly:C.value,tabindex:"-1",value:c.value},null),H(Je,{ref:K,start:0,stop:M.value},{"tick-label":r["tick-label"]}),H(Ye,{ref:i,"aria-describedby":x.value,focused:T.value,noKeyboard:R.value,min:y.value,max:F.value,modelValue:c.value,"onUpdate:modelValue":N=>c.value=N,position:M.value,elevation:e.elevation,onFocus:P,onBlur:I,ripple:e.ripple,name:e.name},{"thumb-label":r["thumb-label"]})])}})}),Me({focus:()=>i.value?.$el.focus()},h)}});export{Ge as V};
|
|
1
|
+
import{p as le,i as s,cP as ce,cQ as ge,H as ne,t as L,K as de,J as ee,cR as Ce,A as we,z as Ve,a6 as se,R as _e,S as Te,g as oe,cN as ve,T as fe,e as xe,ao as Fe,c as re,cS as Re,n as ue,s as $,E as f,N as me,o as H,q as J,r as E,X as Pe,cT as Ne,C as he,f as ze,j as Le,cs as Ee,cv as be,ae as Be,ap as Me,cw as Ke,cU as De,cV as Ie,ah as qe}from"./index-Co2Il0FF.js";const ie=Symbol.for("vuetify:v-slider");function Oe(e,l,r){const u=r==="vertical",i=l.getBoundingClientRect(),h="touches"in e?e.touches[0]:e;return u?h.clientY-(i.top+i.height/2):h.clientX-(i.left+i.width/2)}function Ae(e,l){return"touches"in e&&e.touches.length?e.touches[0][l]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][l]:e[l]}const je=le({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,noKeyboard:Boolean,...Ve(),...we({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),$e=e=>{const l=s(()=>parseFloat(e.min)),r=s(()=>parseFloat(e.max)),u=s(()=>Number(e.step)>0?parseFloat(e.step):0),i=s(()=>Math.max(ce(u.value),ce(l.value)));function h(S){if(S=parseFloat(S),u.value<=0)return S;const o=se(S,l.value,r.value),c=l.value%u.value;let y=Math.round((o-c)/u.value)*u.value+c;return o>y&&y+u.value>r.value&&(y=r.value),parseFloat(Math.min(y,r.value).toFixed(i.value))}return{min:l,max:r,step:u,decimals:i,roundValue:h}},Ue=e=>{let{props:l,steps:r,onSliderStart:u,onSliderMove:i,onSliderEnd:h,getActiveThumb:S}=e;const o=ge(l),{isRtl:c}=ne(),y=L(()=>l.reverse),F=s(()=>l.direction==="vertical"),w=s(()=>F.value!==y.value),{min:d,max:V,step:_,decimals:K,roundValue:B}=r,D=s(()=>parseInt(l.thumbSize,10)),g=s(()=>parseInt(l.tickSize,10)),C=s(()=>parseInt(l.trackSize,10)),R=s(()=>(V.value-d.value)/_.value),T=s(()=>l.error||o.isDisabled.value?void 0:l.thumbColor??l.color),P=s(()=>l.error||o.isDisabled.value?void 0:l.thumbColor),I=s(()=>l.error||o.isDisabled.value?void 0:l.trackColor??l.color),M=s(()=>l.error||o.isDisabled.value?void 0:l.trackFillColor??l.color),v=de(!1),m=de(0),p=ee(),n=ee();function x(t){const a=p.value?.$el;if(!a)return;const j=l.direction==="vertical",G=j?"top":"left",Z=j?"height":"width",ke=j?"clientY":"clientX",{[G]:pe,[Z]:ye}=a.getBoundingClientRect(),Se=Ae(t,ke);let ae=se((Se-pe-m.value)/ye)||0;return(j?w.value:w.value!==c.value)&&(ae=1-ae),B(d.value+ae*(V.value-d.value))}const N=t=>{const a=x(t);a!=null&&h({value:a}),v.value=!1,m.value=0},Y=t=>{const a=x(t);n.value=S(t),n.value&&(v.value=!0,n.value.contains(t.target)?m.value=Oe(t,n.value,l.direction):(m.value=0,a!=null&&i({value:a})),a!=null&&u({value:a}),_e(()=>n.value?.focus()))},q={passive:!0,capture:!0};function z(t){const a=x(t);a!=null&&i({value:a})}function O(t){t.stopPropagation(),t.preventDefault(),N(t),window.removeEventListener("mousemove",z,q),window.removeEventListener("mouseup",O)}function U(t){N(t),window.removeEventListener("touchmove",z,q),t.target?.removeEventListener("touchend",U)}function A(t){Y(t),window.addEventListener("touchmove",z,q),t.target?.addEventListener("touchend",U,{passive:!1})}function te(t){t.button===0&&(t.preventDefault(),Y(t),window.addEventListener("mousemove",z,q),window.addEventListener("mouseup",O,{passive:!1}))}const X=t=>{const a=(t-d.value)/(V.value-d.value)*100;return se(isNaN(a)?0:a,0,100)},Q=L(()=>l.showTicks),W=s(()=>Q.value?l.ticks?Array.isArray(l.ticks)?l.ticks.map(t=>({value:t,position:X(t),label:t.toString()})):Object.keys(l.ticks).map(t=>({value:parseFloat(t),position:X(parseFloat(t)),label:l.ticks[t]})):R.value!==1/0?Ce(R.value+1).map(t=>{const a=d.value+t*_.value;return{value:a,position:X(a)}}):[]:[]),k=s(()=>W.value.some(t=>{let{label:a}=t;return!!a})),b={activeThumbRef:n,color:L(()=>l.color),decimals:K,disabled:o.isDisabled,direction:L(()=>l.direction),elevation:L(()=>l.elevation),hasLabels:k,isReversed:y,indexFromEnd:w,min:d,max:V,mousePressed:v,noKeyboard:L(()=>l.noKeyboard),numTicks:R,onSliderMousedown:te,onSliderTouchstart:A,parsedTicks:W,parseMouseMove:x,position:X,readonly:o.isReadonly,rounded:L(()=>l.rounded),roundValue:B,showTicks:Q,startOffset:m,step:_,thumbSize:D,thumbColor:T,thumbLabelColor:P,thumbLabel:L(()=>l.thumbLabel),ticks:L(()=>l.ticks),tickSize:g,trackColor:I,trackContainerRef:p,trackFillColor:M,trackSize:C,vertical:F};return Te(ie,b),b},Xe=le({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,noKeyboard:Boolean,...he()},"VSliderThumb"),Ye=oe()({name:"VSliderThumb",directives:{vRipple:ve},props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,l){let{slots:r,emit:u}=l;const i=fe(ie),{isRtl:h,rtlClasses:S}=ne();if(!i)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{min:o,max:c,thumbColor:y,thumbLabelColor:F,step:w,disabled:d,thumbSize:V,thumbLabel:_,direction:K,isReversed:B,vertical:D,readonly:g,elevation:C,mousePressed:R,decimals:T,indexFromEnd:P}=i,I=s(()=>d.value?void 0:C.value),{elevationClasses:M}=xe(I),{textColorClasses:v,textColorStyles:m}=Fe(y),{backgroundColorClasses:p,backgroundColorStyles:n}=re(F),{pageup:x,pagedown:N,end:Y,home:q,left:z,right:O,down:U,up:A}=Re,te=[x,N,Y,q,z,O,U,A],X=s(()=>w.value?[1,2,3]:[1,5,10]);function Q(k,b){if(e.noKeyboard||d.value||!te.includes(k.key))return;k.preventDefault();const t=w.value||.1,a=(c.value-o.value)/t;if([z,O,U,A].includes(k.key)){const G=(D.value?[h.value?z:O,B.value?U:A]:P.value!==h.value?[z,A]:[O,A]).includes(k.key)?1:-1,Z=k.shiftKey?2:k.ctrlKey?1:0;G===-1&&b===c.value&&!Z&&!Number.isInteger(a)?b=b-a%1*t:b=b+G*t*X.value[Z]}else if(k.key===q)b=o.value;else if(k.key===Y)b=c.value;else{const j=k.key===N?1:-1;b=b-j*t*(a>100?a/10:10)}return Math.max(e.min,Math.min(e.max,b))}function W(k){const b=Q(k,e.modelValue);b!=null&&u("update:modelValue",b)}return ue(()=>{const k=$(P.value?100-e.position:e.position,"%");return f("div",{class:E(["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&R.value},e.class,S.value]),style:J([{"--v-slider-thumb-position":k,"--v-slider-thumb-size":$(V.value)},e.style]),role:"slider",tabindex:d.value?-1:0,"aria-label":e.name,"aria-valuemin":o.value,"aria-valuemax":c.value,"aria-valuenow":e.modelValue,"aria-readonly":!!g.value,"aria-orientation":K.value,onKeydown:g.value?void 0:W},[f("div",{class:E(["v-slider-thumb__surface",v.value,M.value]),style:J(m.value)},null),me(f("div",{class:E(["v-slider-thumb__ripple",v.value]),style:J(m.value)},null),[[ve,e.ripple,null,{circle:!0,center:!0}]]),H(Ne,{origin:"bottom center"},{default:()=>[me(f("div",{class:"v-slider-thumb__label-container"},[f("div",{class:E(["v-slider-thumb__label",p.value]),style:J(n.value)},[f("div",null,[r["thumb-label"]?.({modelValue:e.modelValue})??e.modelValue.toFixed(w.value?T.value:1)]),f("div",{class:"v-slider-thumb__label-wedge"},null)])]),[[Pe,_.value&&e.focused||_.value==="always"]])]})])}),{}}}),He=le({start:{type:Number,required:!0},stop:{type:Number,required:!0},...he()},"VSliderTrack"),Je=oe()({name:"VSliderTrack",props:He(),emits:{},setup(e,l){let{slots:r}=l;const u=fe(ie);if(!u)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:i,parsedTicks:h,rounded:S,showTicks:o,tickSize:c,trackColor:y,trackFillColor:F,trackSize:w,vertical:d,min:V,max:_,indexFromEnd:K}=u,{roundedClasses:B}=ze(S),{backgroundColorClasses:D,backgroundColorStyles:g}=re(F),{backgroundColorClasses:C,backgroundColorStyles:R}=re(y),T=s(()=>`inset-${d.value?"block":"inline"}-${K.value?"end":"start"}`),P=s(()=>d.value?"height":"width"),I=s(()=>({[T.value]:"0%",[P.value]:"100%"})),M=s(()=>e.stop-e.start),v=s(()=>({[T.value]:$(e.start,"%"),[P.value]:$(M.value,"%")})),m=s(()=>o.value?(d.value?h.value.slice().reverse():h.value).map((n,x)=>{const N=n.value!==V.value&&n.value!==_.value?$(n.position,"%"):void 0;return f("div",{key:n.value,class:E(["v-slider-track__tick",{"v-slider-track__tick--filled":n.position>=e.start&&n.position<=e.stop,"v-slider-track__tick--first":n.value===V.value,"v-slider-track__tick--last":n.value===_.value}]),style:{[T.value]:N}},[(n.label||r["tick-label"])&&f("div",{class:"v-slider-track__tick-label"},[r["tick-label"]?.({tick:n,index:x})??n.label])])}):[]);return ue(()=>f("div",{class:E(["v-slider-track",B.value,e.class]),style:J([{"--v-slider-track-size":$(w.value),"--v-slider-tick-size":$(c.value)},e.style])},[f("div",{class:E(["v-slider-track__background",C.value,{"v-slider-track__background--opacity":!!i.value||!F.value}]),style:{...I.value,...R.value}},null),f("div",{class:E(["v-slider-track__fill",D.value]),style:{...v.value,...g.value}},null),o.value&&f("div",{class:E(["v-slider-track__ticks",{"v-slider-track__ticks--always-show":o.value==="always"}])},[m.value])])),{}}}),Qe=le({...De(),...je(),...Ke(),modelValue:{type:[Number,String],default:0}},"VSlider"),Ge=oe()({name:"VSlider",props:Qe(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,l){let{slots:r,emit:u}=l;const i=ee(),h=ee(),{rtlClasses:S}=ne(),o=$e(e),c=Le(e,"modelValue",void 0,v=>o.roundValue(v??o.min.value)),{min:y,max:F,mousePressed:w,roundValue:d,onSliderMousedown:V,onSliderTouchstart:_,trackContainerRef:K,position:B,hasLabels:D,disabled:g,readonly:C,noKeyboard:R}=Ue({props:e,steps:o,onSliderStart:()=>{!g.value&&!C.value&&u("start",c.value)},onSliderEnd:v=>{let{value:m}=v;const p=d(m);!g.value&&!C.value&&(c.value=p),u("end",p)},onSliderMove:v=>{let{value:m}=v;!g.value&&!C.value&&(c.value=d(m))},getActiveThumb:()=>i.value?.$el}),{isFocused:T,focus:P,blur:I}=Ee(e),M=s(()=>B(c.value));return ue(()=>{const v=be.filterProps(e),m=!!(e.label||r.label||r.prepend);return H(be,Be({ref:h,class:["v-slider",{"v-slider--has-labels":!!r["tick-label"]||D.value,"v-slider--focused":T.value,"v-slider--pressed":w.value,"v-slider--disabled":g.value},S.value,e.class],style:e.style},v,{focused:T.value}),{...r,prepend:m?p=>f(qe,null,[r.label?.(p)??(e.label?H(Ie,{id:p.id.value,class:"v-slider__label",text:e.label},null):void 0),r.prepend?.(p)]):void 0,default:p=>{let{id:n,messagesId:x}=p;return f("div",{class:"v-slider__container",onMousedown:C.value?void 0:V,onTouchstartPassive:C.value?void 0:_},[f("input",{id:n.value,name:e.name||n.value,disabled:g.value,readonly:C.value,tabindex:"-1",value:c.value},null),H(Je,{ref:K,start:0,stop:M.value},{"tick-label":r["tick-label"]}),H(Ye,{ref:i,"aria-describedby":x.value,focused:T.value,noKeyboard:R.value,min:y.value,max:F.value,modelValue:c.value,"onUpdate:modelValue":N=>c.value=N,position:M.value,elevation:e.elevation,onFocus:P,onBlur:I,ripple:e.ripple,name:e.name},{"thumb-label":r["thumb-label"]})])}})}),Me({focus:()=>i.value?.$el.focus()},h)}});export{Ge as V};
|