1import{d as C,U as a,F as E,V as L,_ as l,K as $,a3 as I,$ as T,a8 as S,u as d,bQ as M,bP as O,aW as D,M as s,q as f,x as F,O as u,aL as k,L as h,P as x,a0 as A,aN as P,w as G}from"./icons-0dJroYbd.js";import{f as R,c as V,b as q,h as K}from"./app-CgPjWXEI.js";import{a as z,_ as Q}from"./Layout.vue_vue_type_script_setup_true_lang-QSdtybBK.js";import{_ as N}from"./Switch.vue_vue_type_script_setup_true_lang-CSFlLFnZ.js";import{_ as W}from"./index-i4I5CGQt.js";import{_ as Y}from"./AppLayout.vue_vue_type_script_setup_true_lang-CiKWQwK6.js";import"./reka-ui-CcWaZdOU.js";import"./Separator.vue_vue_type_script_setup_true_lang-CtzIpVA6.js";import"./index-ynJjy3SW.js";import"./SheetTrigger.vue_vue_type_script_setup_true_lang-Dv_GtiQ6.js";import"./TooltipTrigger.vue_vue_type_script_setup_true_lang-b7ep43Cb.js";import"./useInitials-C0AQeawK.js";import"./index-CH2G6zFJ.js";import"./index-BnmYe9Gg.js";import"./Label.vue_vue_type_script_setup_true_lang-DhRWlfb5.js";import"./useStaffSidebar-B6HulAMj.js";const H={class:"inline-flex gap-1 rounded-lg bg-neutral-100 p-1 dark:bg-neutral-800"},J=["onClick"],X={class:"ml-1.5 text-sm"},Z=C({__name:"AppearanceTabs",setup(w){const{appearance:y,updateAppearance:c}=R(),o=[{value:"light",Icon:M,label:"Light"},{value:"dark",Icon:O,label:"Dark"},{value:"system",Icon:D,label:"System"}];return(n,i)=>(s(),a("div",H,[(s(),a(E,null,L(o,({value:v,Icon:m,label:r})=>l("button",{key:v,onClick:t=>d(c)(v),class:S(["flex items-center rounded-md px-3.5 py-1.5 transition-colors",d(y)===v?"bg-white shadow-xs dark:bg-neutral-700 dark:text-neutral-100":"text-neutral-500 hover:bg-neutral-200/60 hover:text-black dark:text-neutral-400 dark:hover:bg-neutral-700/60"])},[(s(),$(I(m),{class:"-ml-1 h-4 w-4"})),l("span",X,T(r),1)],10,J)),64))]))}}),ee={class:"space-y-4"},te={key:0,class:"flex items-center gap-2 text-sm text-muted-foreground py-1"},se={class:"flex justify-end h-6"},ae={key:0,class:"flex items-center gap-1.5 text-sm text-muted-foreground"},le={key:1,class:"text-sm text-green-600 dark:text-green-400"},ie={key:0,class:"text-sm text-muted-foreground"},ne={class:"text-sm font-medium"},oe={key:0,class:"text-xs text-muted-foreground mt-0.5"},re={class:"flex items-center justify-between"},ue={key:0,class:"text-sm text-muted-foreground"},ce={key:1},de=C({__name:"ResendTopics",emits:["sightingEmailsLoaded"],setup(w,{emit:y}){const c=y,o=f([]),n=f({}),i=f(!1),v=f(!0),m=f(null),r=f(!1),t=f(!1);let e=null;F(async()=>{try{const{data:p}=await V.get("/settings/preferences/topics");o.value=p.topics??[],i.value=p.unsubscribed??!1,n.value=Object.fromEntries(o.value.map(_=>[_.id,(p.userTopics[_.id]??"opt_out")==="opt_in"])),p.sightingEmailSeries!==void 0&&c("sightingEmailsLoaded",p.sightingEmailSeries??null)}finally{v.value=!1}});const b=()=>{t.value=!0,e&&clearTimeout(e),e=setTimeout(()=>t.value=!1,2e3)},U=async p=>{m.value=p,t.value=!1,e&&clearTimeout(e);const _=o.value.map(g=>({id:g.id,subscription:n.value[g.id]?"opt_in":"opt_out"}));try{await V.patch("/settings/preferences/topics",{topics:_}),b()}catch{n.value[p]=!n.value[p]}finally{m.value=null}},j=async()=>{r.value=!0,t.value=!1,e&&clearTimeout(e);const p=!i.value;try{await V.patch("/settings/preferences/unsubscribed",{unsubscribed:p}),i.value=p,b()}finally{r.value=!1}};return(p,_)=>(s(),a("div",ee,[u(z,{title:"Email subscriptions",description:"Choose which email topics you'd like to receive"}),v.value?(s(),a("div",te,[u(d(k),{class:"h-4 w-4 animate-spin"}),_[0]||(_[0]=l("span",null,"Loadingâ¦",-1))])):(s(),a(E,{key:1},[l("div",se,[u(P,{"enter-active-class":"transition-opacity duration-150","leave-active-class":"transition-opacity duration-300","enter-from-class":"opacity-0","leave-to-class":"opacity-0",mode:"out-in"},{default:h(()=>[m.value!==null||r.value?(s(),a("span",ae,[u(d(k),{class:"size-3.5 animate-spin"}),_[1]||(_[1]=A(" Saving⦠",-1))])):t.value?(s(),a("p",le," Preferences updated ")):x("",!0)]),_:1})]),o.value.length===0?(s(),a("div",ie," No topics available. ")):(s(),a("ul",{key:1,class:S(["space-y-3",{"opacity-50":i.value}])},[(s(!0),a(E,null,L(o.value,g=>(s(),a("li",{key:g.id,class:"flex items-center justify-between gap-4 roun
1ded-lg border px-4 py-3"},[l("div",null,[l("p",ne,T(g.name),1),g.description?(s(),a("p",oe,T(g.description),1)):x("",!0)]),u(d(N),{modelValue:n.value[g.id],"onUpdate:modelValue":[B=>n.value[g.id]=B,()=>U(g.id)],disabled:m.value!==null||i.value,class:S({"disabled:cursor-default":m.value!==null||i.value})},{thumb:h(()=>[m.value===g.id?(s(),$(d(k),{key:0,class:"size-2.5 animate-spin text-muted-foreground"})):x("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","disabled","class"])]))),128))],2)),l("div",re,[i.value?(s(),a("p",ue," You are unsubscribed from all emails. ")):(s(),a("span",ce)),u(d(W),{type:"button",variant:(i.value,"outline"),size:"sm",disabled:r.value,onClick:j},{default:h(()=>[r.value?(s(),$(d(k),{key:0,class:"size-3.5 animate-spin"})):x("",!0),A(" "+T(i.value?"Resubscribe":"Unsubscribe All"),1)]),_:1},8,["variant","disabled"])])],64))]))}}),me={class:"space-y-4"},pe={class:"flex justify-end h-6"},ve={key:0,class:"flex items-center gap-1.5 text-sm text-muted-foreground"},fe={key:1,class:"text-sm text-green-600 dark:text-green-400"},ge={key:0,class:"text-sm text-muted-foreground"},_e={key:1,class:"space-y-3"},ye={class:"text-sm font-medium"},be=C({__name:"SightingEmailPreferences",props:{series:{}},setup(w){const y=w,c=f([]),o=f(null),n=f(!1);let i=null;G(()=>y.series,r=>{c.value=r.map(t=>({...t}))},{immediate:!0,deep:!0});const v=()=>{n.value=!0,i&&clearTimeout(i),i=setTimeout(()=>n.value=!1,2e3)},m=async r=>{o.value=r,n.value=!1,i&&clearTimeout(i);const t=c.value.filter(e=>e.subscribed).map(e=>e.id);try{const{data:e}=await V.patch("/settings/preferences/sighting-emails",{series_ids:t});Array.isArray(e==null?void 0:e.sightingEmailSeries)&&(c.value=e.sightingEmailSeries.map(b=>({...b}))),v()}catch{const e=c.value.find(b=>b.id===r);e&&(e.subscribed=!e.subscribed)}finally{o.value=null}};return(r,t)=>(s(),a("div",me,[u(z,{title:"Sighting notifications"}),l("div",pe,[u(P,{"enter-active-class":"transition-opacity duration-150","leave-active-class":"transition-opacity duration-300","enter-from-class":"opacity-0","leave-to-class":"opacity-0",mode:"out-in"},{default:h(()=>[o.value!==null?(s(),a("span",ve,[u(d(k),{class:"size-3.5 animate-spin"}),t[0]||(t[0]=A(" Saving⦠",-1))])):n.value?(s(),a("p",fe," Preferences updated ")):x("",!0)]),_:1})]),c.value.length===0?(s(),a("div",ge," No shows send sighting emails yet. ")):(s(),a("ul",_e,[(s(!0),a(E,null,L(c.value,e=>(s(),a("li",{key:e.id,class:"flex items-center justify-between gap-4 rounded-lg border px-4 py-3"},[l("p",ye,T(e.name),1),u(d(N),{modelValue:e.subscribed,"onUpdate:modelValue":[b=>e.subscribed=b,()=>m(e.id)],disabled:o.value!==null,class:S({"disabled:cursor-default":o.value!==null})},{thumb:h(()=>[o.value===e.id?(s(),$(d(k),{key:0,class:"size-2.5 animate-spin text-muted-foreground"})):x("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","disabled","class"])]))),128))]))]))}}),xe={class:"space-y-10"},he={class:"space-y-4"},ke={class:"flex items-center gap-3"},$e={class:"inline-flex gap-1 rounded-lg bg-neutral-100 p-1 dark:bg-neutral-800"},Se={key:0,class:"text-sm text-green-600 dark:text-green-400"},De=C({__name:"Preferences",props:{autoplayVideos:{type:Boolean},sightingEmailSeries:{}},setup(w){const y=w,c=f(y.sightingEmailSeries),o=[{title:"Preferences",href:"/settings/preferences"}],n=q({autoplay_videos:y.autoplayVideos}),i=f(!1);let v=null;const m=r=>{n.autoplay_videos=r,n.patch(route("preferences.update"),{preserveScroll:!0,onSuccess:()=>{i.value=!0,v&&clearTimeout(v),v=setTimeout(()=>i.value=!1,2e3)}})};return(r,t)=>(s(),$(Y,{breadcrumbs:o},{default:h(()=>[u(d(K),{title:"Preferences"}),u(Q,null,{default:h(()=>[l("div",xe,[u(z,{title:"Preferences",description:"Update your account preferences"}),l("div",he,[l("div",null,[t[3]||(t[3]=l("h3",{class:"text-sm font-medium mb-3"},"Theme",-1)),u(Z)]),l("div",null,[t[6]||(t[6]=l("h3",{class:"text-sm font-medium mb-3"},"Autoplay videos",-1)),l("div",ke,[l("div",$e,[l("button",{type:"button",onClick:t[0]||(t[0]=e=>m(!0)),class:S(["flex items-center rounded-md px-3.5 py-1.5 transition-colors",d(n).autoplay_videos?"bg-white shadow-xs dark:bg-neutral-700 dark:text-neutral-100":"text-neutral-500 hover:bg-neutral-200/60 hover:text-black dark:text-neutral-400 dark:hover:bg-neutral-700/60"])},[...t[4]||(t[4]=[l("span",{class:"text-sm"},"On",-1)])],2),l("button",{type:"button",onClick:t[1]||(t[1]=e=>m(!1)),class:S(["flex items-center rounded-md px-3.5 py-1.5 transition-colors",d(n).autoplay_videos?"text-neutral-500 hover:bg-neutral-200/60 hover:text-black dark:text-neutral-400 dark:hover:bg-neutral-700/60":"bg-white shadow-xs dark:bg-neutral-700 dark:text-neutral-100"])},[...t[5]||(t[5]=[l("span",{class:"text-sm"},"Off",-1)])],2)]),u(P,{"enter-active-class":"transition-opacity duration-150","leave-active-class":"transition-opacity duration-300","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:h(()=>[i.value?(s(),a("span",Se," Saved ")):x("",!0)]),_:1})])])]),c.value!==null?(s(),$(be,{key:0,series:c.value},null,8,["series"])):x("",!0),u(de,{onSightingEmailsLoaded:t[2]||(t[2]=e=>c.value=e)})])]),_:1})]),_:1}))}});
1export{De as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.