1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/staffController-KQCBxUAz.js","assets/index-B7717Xy-.js","assets/index-DGLuA4rz.css","assets/web-BqS-0BDP.js","assets/AnimalStatusBadge-Dj3isw1o.js","assets/useAnimals-CeoL5lk9.js","assets/animal-DuZe6uHQ.js","assets/animalPhotoUtils-B_8APW8c.js","assets/animalMediaOptimization-eCqxaOI6.js","assets/staleWriteConflict-BgUlQF4m.js","assets/AnimalStatusBadge-DOnioaGT.css","assets/animalProfileFormat-COPwUbio.js","assets/ageDisplay-CU3MQM_i.js","assets/animalStages-CJHNc6Xk.js","assets/luxon-D8LvV7_N.js","assets/bookingTime-BOL0iaBb.js","assets/date-CUw3Qvze.js","assets/capabilityMatching-BJpd6pIo.js","assets/capabilities-BxxUeBCF.js","assets/fosterPicker-BmrZ2ZyO.js","assets/status-DKPQp2Yv.js","assets/fosterPicker-D2I90Mu0.css","assets/WeightTracker-C9dtv-hJ.js","assets/firebaseStorage-BbKNxzF7.js","assets/file-CtroSVAm.js","assets/animalProfileNavigation-2a5pOZqb.js","assets/paw-filled-BzJ0RPMN.js","assets/WeightInput-8Kd5YpkW.js","assets/WeightInput-D-pLCZo6.css","assets/AnimalAvatar-1HijTvTg.js","assets/AnimalAvatar-BZXyCK_h.css","assets/BaseMiniMenu-BgcJ6tef.js","assets/AnimatePresence-CT_2aw-8.js","assets/BaseMiniMenu-B8dSCMb9.css","assets/CoordinatorAvatar-Do1cqyHh.js","assets/FallbackAvatar-BySus5t3.js","assets/FallbackAvatar-CxNq9bpd.css","assets/CoordinatorAvatar-DlB-Uo7-.css","assets/healthNotes-BhiJMfr0.js","assets/useLongPress-BO13MCF8.js","assets/relativeTime-BDUuQyZv.js","assets/bookingService-6UoxvvSn.js","assets/bookingStatus-Ku_0OvCX.js","assets/BaseModal-DdXzcGH0.js","assets/BaseModal-iseqLcmW.css","assets/WeightTracker-Bad44s47.css","assets/AppSearchBar-Tp1BGQVb.js","assets/AppSearchBar-CCAyJnPH.css","assets/VolunteerListItem-BjSyQCoA.js","assets/fosterMatchUtils-CbkACqLJ.js","assets/fosterAvailability-DNq5ZMWb.js","assets/VolunteerListItem-UeaSaJ_Q.css","assets/ui-OFUE-1Fx.js","assets/foster-BfLPifi5.js","assets/submitError-BPyI4y-r.js","assets/FosterAssignModal-CxTjxwXG.js","assets/SidePanel-DCuTlK1W.js","assets/SidePanel-BjO_DFyr.css","assets/PInput-C2GfNYr8.js","assets/phone-BfEgewkX.js","assets/PInput-reG7A_cG.css","assets/GroupActionDialog-BdRgwjRn.js","assets/GroupActionDialog-sLL4ErmA.css","assets/BasePill-CPiaDg9T.js","assets/BasePill-BVrqbeM9.css","assets/ExpectedEndDateField-BKJ1O7vp.js","assets/ExpectedEndDateField-CzENz7pm.css","assets/useUnsavedChangesGuard-DbDu1K-G.js","assets/FosterAssignModal-ntKzWdWS.css","assets/TransferPartnerPicker-D-sxn3O2.js","assets/TransferPartnerPicker-DQa7JZv2.css","assets/sterilization-B6SoElbS.js","assets/billing-BXoFMNbv.js","assets/billing-3tRrCIme.css","assets/ProSparkle-unkWrSUP.js","assets/ProSparkle-DufDihcm.css","assets/useSmsCreditWarning-_lY7FSFU.js","assets/useBillingPaywall-DyiGTHm7.js","assets/pleaDraftService-Cg2eVIUa.js","assets/plea-D5QCmDMZ.js","assets/fosterService-CbZu7yES.js","assets/species-BbT1ueT5.js","assets/sterilization-Cr5RpjZy.css","assets/PToggle-eqw3t4Sx.js","assets/PToggle-BaZUaSvj.css","assets/PickupConfirmModal-D4f71-8n.js","assets/PickupConfirmModal-CUvyydvn.css","assets/vue3-lottie.es-BbEXTxev.js","assets/_commonjsHelpers-CXUWDbkB.js","assets/CareUpdatePhotoLightbox-Di5Qfus-.js","assets/CareUpdatePhotoLightbox-DApqN0Du.css","assets/CoordinatorBottomNav-Dhz3XVzH.js","assets/BaseCoachMark.vue_vue_type_style_index_0_lang-CQdaXg44.js","assets/BaseCoachMark-DslROw1N.css","assets/OllieNavAction-BSxu9KKP.js","assets/OllieNavAction-BAAuaVpW.css","assets/CoordinatorBottomNav-C5VMDwfh.css","assets/intakeSubmission-DXJRBpE9.js","assets/useFosters-YpnAcY6j.js","assets/messageRouting-Dmy-K-wf.js","assets/CarePillBadge-JiZIlItp.js","assets/CarePillBadge-uzydu0wn.css"])))=>i.map(i=>d[i]); 2import{aQ as e,r as a,w as t,bx as l,bn as n,ck as s,bO as o,bJ as i,bA as r,a_ as u,cx as d,aV as c,bI as p,b1 as v,bm as m,B as g,aR as f,u as _,ca as h,aS as y,aW as b,aX as w,bo as k,bs as S,bp as A,aZ as C,by as x,bz as F,d0 as N,bC as I,a$ as D,bY as U,e as P,bh as E,l as T,h as O,_ as V,e4 as R,c7 as L,c$ as B,d9 as z,cU as M,c8 as j,f1 as W,bX as G,br as q,f as H,d as $,bP as Y,E as K,dA as Q,b5 as J,t as X,cR as Z,z as ee,eP as ae,cC as te,bv as le,cz as ne,aU as se,da as oe,x as ie,C as re,s as ue,d7 as de,aT as ce,cg as pe,ch as ve,f2 as me,b0 as ge,eI as fe,f3 as _e,ba as he,f4 as ye}from"./index-B7717Xy-.js";import{A as be,a as we,G as ke,b as Se}from"./AnimalStatusBadge-Dj3isw1o.js";import{p as Ae,q as Ce}from"./animalProfileFormat-COPwUbio.js";import{h as xe,j as Fe,g as Ne,c as Ie,k as De,m as Ue,f as Pe}
2from"./date-CUw3Qvze.js";import{e as Ee,a as Te,d as Oe,g as Ve}from"./capabilityMatching-BJpd6pIo.js";import{b as Re,f as Le,i as Be,A as ze,a as Me}from"./fosterPicker-BmrZ2ZyO.js";import{f as je,m as We,o as Ge,u as qe,A as He,N as $e,g as Ye,W as Ke,j as Qe,h as Je,k as Xe,l as Ze}from"./WeightTracker-C9dtv-hJ.js";import{A as ea}from"./AppSearchBar-Tp1BGQVb.js";import{F as aa}from"./FallbackAvatar-BySus5t3.js";import{V as ta}from"./VolunteerListItem-BjSyQCoA.js";import{b as la}from"./ui-OFUE-1Fx.js";import na from"./foster-BfLPifi5.js";import{G as sa,F as oa,a as ia}from"./FosterAssignModal-CxTjxwXG.js";import{S as ra}from"./SidePanel-DCuTlK1W.js";import{E as ua}from"./ExpectedEndDateField-BKJ1O7vp.js";import{B as da,u as ca}from"./BaseMiniMenu-BgcJ6tef.js";import{D as pa}from"./luxon-D8LvV7_N.js";import{T as va}from"./TransferPartnerPicker-D-sxn3O2.js";import{I as ma,d as ga,e as fa,c as _a,o as ha,S as ya,g as ba,b as wa,i as ka,a as Sa}from"./sterilization-B6SoElbS.js";import{g as Aa}from"./staleWriteConflict-BgUlQF4m.js";import{B as Ca}from"./BaseModal-DdXzcGH0.js";import{A as xa,a as Fa,b as Na,g as Ia,p as Da}from"./species-BbT1ueT5.js";import{d as Ua,k as Pa,a as Ea,l as Ta,g as Oa}from"./animalPhotoUtils-B_8APW8c.js";import{a as Va,d as Ra}from"./ageDisplay-CU3MQM_i.js";import{P as La}from"./PToggle-eqw3t4Sx.js";import{i as Ba,m as za}from"./status-DKPQp2Yv.js";import{B as Ma}from"./BasePill-CPiaDg9T.js";import{u as ja}from"./useUnsavedChangesGuard-DbDu1K-G.js";import{a as Wa}from"./fosterAvailability-DNq5ZMWb.js";import Ga from"./PickupConfirmModal-D4f71-8n.js";import{V as qa}from"./vue3-lottie.es-BbEXTxev.js";import{_ as Ha}from"./WeightInput-8Kd5YpkW.js";import{f as $a}from"./file-CtroSVAm.js";import{u as Ya}from"./firebaseStorage-BbKNxzF7.js";import{c as Ka,g as Qa,o as Ja,b as Xa}from"./animalMediaOptimization-eCqxaOI6.js";import{C as Za}from"./CareUpdatePhotoLightbox-Di5Qfus-.js";import{m as et}from"./AnimatePresence-CT_2aw-8.js";import{a as at,g as tt}from"./animal-DuZe6uHQ.js";import lt from"./GroupActionDialog-BdRgwjRn.js";import{C as nt}from"./CoordinatorBottomNav-Dhz3XVzH.js";import{B as st}from"./billing-BXoFMNbv.js";import{P as ot}from"./ProSparkle-unkWrSUP.js";import{u as it}from"./useSmsCreditWarning-_lY7FSFU.js";import{u as rt}from"./useBillingPaywall-DyiGTHm7.js";import{F as ut}from"./fosterService-CbZu7yES.js";import dt from"./plea-D5QCmDMZ.js";import{b as ct,r as pt}from"./pleaDraftService-Cg2eVIUa.js";import{g as vt,a as mt,f as gt,c as ft,s as _t}from"./fosterMatchUtils-CbkACqLJ.js";import{s as ht,r as yt}from"./submitError-BPyI4y-r.js";import{h as bt}from"./healthNotes-BhiJMfr0.js";import{i as wt}from"./intakeSubmission-DXJRBpE9.js";import{u as kt}from"./useAnimals-CeoL5lk9.js";import{u as St}from"./useFosters-YpnAcY6j.js";import{getMessageRoute as At}from"./messageRouting-Dmy-K-wf.js";import{C as Ct}from"./CarePillBadge-JiZIlItp.js";import{r as xt,m as Ft}from"./animalProfileNavigation-2a5pOZqb.js";const Nt={class:"collapsible"},It=["role","tabindex","aria-expanded","onKeydown"],Dt={class:"collapsible__header"},Ut={class:"card-title collapsible__title"},Pt={key:0,class:"collapsible__summary"},Et={class:"collapsible__header-right"},Tt=["aria-label"],Ot={class:"collapsible__reveal-inner"},Vt={class:"collapsible__body"},Rt=m(e({__name:"CollapsibleSection",props:{title:{},summary:{default:null},defaultOpen:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},collapsible:{type:Boolean,default:!0}},emits:["update:open"],setup(e,{emit:m}){var g;const f=e,_=m,h=a(!f.collapsible||(null!=(g=f.open)?g:f.defaultOpen));t(()=>f.open,e=>{"boolean"==typeof e&&(h.value=e)});const y=()=>{f.collapsible&&(h.value=!h.value,_("update:open",h.value))};return(a,t)=>(v(),l("section",Nt,[n("div",{class:i(["collapsible__header-row",{"collapsible__header-row--static":!e.collapsible}]),role:e.collapsible?"button":void 0,tabindex:e.collapsible?0:void 0,"aria-expanded":e.collapsible?h.value:void 0,onClick:y,onKeydown:[s(o(y,["prevent"]),["enter"]),s(o(y,["prevent"]),["space"])]}
2,[n("div",Dt,[n("h2",Ut,r(e.title),1),e.summary&&e.collapsible&&!h.value?(v(),l("p",Pt,r(e.summary),1)):u("",!0)]),n("div",Et,[a.$slots.actions?(v(),l("div",{key:0,class:"collapsible__actions",onClick:t[0]||(t[0]=o(()=>{},["stop"]))},[d(a.$slots,"actions",{},void 0,!0)])):u("",!0),e.collapsible?(v(),l("button",{key:1,class:"collapsible__caret-btn","aria-label":h.value?"Collapse":"Expand",onClick:o(y,["stop"])},[c(p,{name:"chevron-down",size:"sm",color:"grey-300",class:i(["collapsible__chevron",{"is-open":h.value}])},null,8,["class"])],8,Tt)):u("",!0)])],42,It),n("div",{class:i(["collapsible__reveal",{"is-open":h.value}])},[n("div",Ot,[n("div",Vt,[d(a.$slots,"default",{},void 0,!0)])])],2)]))}}),[["__scopeId","data-v-dbe20676"]]),Lt={class:"modal-static-header"},Bt={class:"animal-preview-card"},zt={key:0,class:"animal-preview-photo"},Mt=["src","alt"],jt={key:1,class:"animal-preview-photo animal-preview-photo-fallback"},Wt={class:"animal-preview-details"},Gt={class:"animal-preview-name"},qt={class:"animal-preview-id"},Ht={key:0,class:"to-row"},$t={class:"recipients-container"},Yt={class:"recipient-avatar"},Kt=["src","alt","onError"],Qt={class:"recipient-name"},Jt=["onClick"],Xt={key:0,class:"loading-state"},Zt={key:1,class:"empty-state"},el={class:"empty-icon"},al={key:2,class:"empty-state"},tl={class:"empty-icon"},ll={key:3,class:"loading-more-state"},nl=m(e({__name:"ShareAnimalModal",props:{isOpen:{type:Boolean},animalName:{},animalId:{},animalRecordId:{},animalPhotoUrl:{}},emits:["update:isOpen"],setup(e,{emit:s}){const d=e,m=s,{showToast:R}=g(),L=U(new Set),B=a(!1),z=a(""),M=a([]),j=a(!1),W=a(!1),G=a(!1),q=a([]),H=a(0),$=a(!0),Y=a(!1),K=a(!1),Q=a(!1),J=a([]),X=a(null),Z=a(!1);let ee=null;const ae=async({reset:e=!1,searchQuery:a=""}={})=>{if(!Q.value&&(e||$.value))try{Q.value=!0,e?(Y.value=!0,H.value=0,$.value=!0,q.value=[]):K.value=!0;const t=e?1:H.value+1,l={page:t,pageSize:25};a&&(l.search=a);const n=await na.listFosters(l),s=(null==n?void 0:n.fosters)||[],o=e?s:((e,a)=>{var t,l,n,s,o,i;const r=new Map;for(const u of e)r.set(String(null!=(n=null!=(l=null!=(t=u.userId)?t:u.user_id)?l:u.foster_id)?n:u.id),u);for(const u of a)r.set(String(null!=(i=null!=(o=null!=(s=u.userId)?s:u.user_id)?o:u.foster_id)?i:u.id),u);return Array.from(r.values())})(q.value,s);q.value=o,H.value=t;const i=Number.isFinite(null==n?void 0:n.total)?Number(n.total):null;$.value=null!==i?o.length<i:25===s.length}catch(t){T.error("Failed to fetch fosters:",t),e&&(q.value=[])}finally{Q.value=!1,Y.value=!1,K.value=!1}},te=async()=>{var e,a,t;try{const{user:l}=O(),n=(null==(a=null==(e=l.value)?void 0:e.staffProfile)?void 0:a.organization_id)||(null==(t=l.value)?void 0:t.organization_id);if(!n)return;const s=(await V(async()=>{const{default:e}=await import("./staffController-KQCBxUAz.js");return{default:e}},__vite__mapDeps([0,1,2]))).default,o=await s.listStaff(String(n));J.value=o.filter(e=>e.userId).map(e=>({id:String(e.userId),first_name:e.first_name,last_name:e.last_name,email:e.email,photo_url:e.photo_url,organization_id:e.org_id,role:"staff"}))}catch(l){T.error("Failed to load staff:",l),J.value=[]}},le=P(()=>{var e;const{user:a}=O(),t=(null==(e=a.value)?void 0:e.id)?String(a.value.id):null,l=new Set;return[...q.value.filter(e=>{var a;return null!=(a=e.userId)?a:e.user_id}).map(e=>{var a;return{...e,id:String(null!=(a=e.userId)?a:e.user_id),first_name:e.first_name||e.firstName,last_name:e.last_name||e.lastName,photo_url:e.photo_url||e.avatar,role:"volunteer"}}),...J.value.map(e=>({...e,role:"staff"}))].filter(e=>e.id!==t&&(!l.has(e.id)&&(l.add(e.id),!0))).sort((e,a)=>"".concat(e.first_name," ").concat(e.last_name).localeCompare("".concat(a.first_name," ").concat(a.last_name)))}),ne=P(()=>{const e=z.value.trim().toLowerCase();return e?le.value.filter(a=>"".concat(a.first_name," ").concat(a.last_name).toLowerCase().includes(e)):le.value}),se=P(()=>M.value.length>0),oe=async()=>{if(!Z.value&&!Q.value&&$.value){Z.value=!0;try{const e=await(async()=>{var e;const a=(null==(e=X.value)?void 0:e.$el)||X.value;if(!(null==a?void 0:a.getScrollElement))return null;try{const e=await a.getScrollElement();return e?e.scrollHeight-(e.scrollTop+e.clientHeight):null}catch(t){return null}})();if(null!==e&&e<=180&&!Q.value&&$.value){const e=z.value.trim();await ae({searchQuery:e.length>=2?e:""})}}finally{Z.value=!1}}};function ie(){const e=document.querySelector(".share-animal-modal .inline-search input");null==e||e.focus()}function re(){j.value=!0}function ue(){j.value=!1}function de(){1===ne.value.length&&ce(ne.value[0])}function ce(e){M.value.find(a=>a.id===e.id)?M.value=M.value.filter(a=>a.id!==e.id):M.value.push(e),z.value=""}function pe(){m("update:isOpen",!1)}async function ve(){if(!se.value||W.value)return;W.value=!0;const e=function(){const e={name:d.animalName,animalId:d.animalId,recordId:String(d.animalRecordId),photoUrl:d.animalPhotoUrl||""};return"{{animal-share:".concat(JSON.stringify(e),"}}")}();let a=0,t=0;for(const n of M.value)try{const l=parseInt(n.id,10);if(!l||isNaN(l)){t++;continue}const s=await E.createDirectChat(String(l));await E.sendMessage(s.id,e),a++}catch(l){T.error("Failed to share animal with ".concat(n.first_name," ").concat(n.last_name,":"),l),t++}if(W.value=!1,a>0){const e=M.value.slice(0,3).map(e=>e.first_name).join(", "),a=M.value.length>3?" and ".concat(M.value.length-3," more"):"";R("Shared ".concat(d.animalName," with ").concat(e).concat(a),"success")}t>0&&0===a?R("Failed to share. Please try again.","danger"):t>0&&R("Shared with ".concat(a,", but ").concat(t," failed."),"warning"),M.value=[],z.value="",m("update:isOpen",!1)}t(z,e=>{ee&&clearTimeout(ee);const a=e.trim();a.length>=2?ee=setTimeout(()=>ae({reset:!0,searchQuery:a}),350):0===a.length&&(ee=setTimeout(()=>ae({reset:!0}),100))});const me=a(d.isOpen);return t(()=>d.isOpen,e=>{me.value=e,e&&(M.value=[],z.value="",B.value=!1,async function(){var e;G.value=!0;const{user:a}=O();"staff"===(null==(e=a.value)?void 0:e.role)&&await Promise.all([ae({reset:!0}),te()]),G.value=!1}(),setTimeout(ie,40))}),t(me,e=>m("update:isOpen",e)),la(me),(a,t)=>(v(),f(_(h),{"is-open":e.isOpen,onDidDismiss:pe,class:"share-animal-modal","initial-breakpoint":1,breakpoints:[0,1]},{default:y(()=>[c(_(C),{class:"ion-no-border"},{default:y(()=>[c(_(b),{class:"ion-no-border"},{default:y(()=>[c(_(w),{slot:"start"},{default:y(()=>[c(_(k),{fill:"clear","aria-label":"Cancel",onClick:pe},{default:y(()=>[c(p,{name:"close-outline"})]),_:1})]),_:1}),c(_(S),{class:"ion-text-center"},{default:y(()=>[...t[2]||(t[2]=[A("Share Animal",-1)])]),_:1}),c(_(w),{slot:"end"},{default:y(()=>[c(_(k),{fill:"clear",disabled:!se.value||W.value,onClick:ve,class:"send-header-btn"},{default:y(()=>[A(r(W.value?"Sending...":"Send"),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1}),n("div",Lt,[n("div",Bt,[e.animalPhotoUrl?(v(),l("div",zt,[n("img",{src:e.animalPhotoUrl,alt:e.animalName,onError:t[0]||(t[0]=e=>B.value=!0)},null,40,Mt)])):(v(),l("div",jt,[c(p,{name:"paw-outline",size:"lg",color:"grey-400"})])),n("div",Wt,[n("div",Gt,r(e.animalName),1),n("div",qt,r(e.animalId),1)])]),n("div",{class:i(["to-section",{focused:j.value,"has-recipients":M.value.length>0}])},[M.value.length>0?(v(),l("div",Ht,[t[3]||(t[3]=n("div",{class:"to-label"},"To:",-1)),n("div",$t,[c(N,{name:"recipient",tag:"div",class:"recipient-pills"},{default:y(()=>[(v(!0),l(x,null,F(M.value,e=>(v(),l("div",{key:e.id,class:"recipient-pill"},[n("div",Yt,[e.photo_url&&!L.has(e.id)?(v(),l("img",{key:0,src:e.photo_url,alt:e.first_name,onError:a=>L.add(e.id)},null,40,Kt)):(v(),f(aa,{key:1,name:"".concat(e.first_name," ").concat(e.last_name)},null,8,["name"]))]),n("span",Qt,r(e.first_name)+" "+r(e.last_name),1),n("button",{class:"remove-recipient",onClick:o(a=>function(e){M.value=M.value.filter(a=>a.id!==e.id),ie()}(e),["stop"]),"aria-label":"Remove recipient"},[c(p,{name:"close-outline"})],8,Jt)]))),128))]),_:1})])])):u("",!0),c(ea,{modelValue:z.value,"onUpdate:modelValue":t[1]||(t[1]=e=>z.value=e),placeholder:M.value.length>0?"Add more...":"Search contacts...",debounce:300,class:"recipient-search","aria-label":"Search recipients",variant:"inline",clearable:!1,onEnter:de,onFocus:re,onBlur:ue},null,8,["modelValue","placeholder"])],2)]),c(_(D),{ref_key:"contentRef",ref:X,"scroll-events":!0,class:"share-modal-content",onIonScroll:oe},{default:y(()=>[(v(!0),l(x,null,F(ne.value,e=>(v(),f(ta,{key:e.id,foster:e,"is-selected":!!M.value.find(a=>a.id===e.id),selectable:!0,"hide-actions":!0,onSelect:a=>ce(e)},null,8,["foster","is-selected","onSelect"]))),128)),G.value&&0===ne.value.length?(v(),l("div",Xt,[c(_(I),{name:"crescent"}
2),t[4]||(t[4]=n("p",null,"Loading contacts...",-1))])):u("",!0),!G.value&&0===ne.value.length&&z.value.length>0?(v(),l("div",Zt,[n("div",el,[c(p,{name:"search-outline"})]),t[5]||(t[5]=n("h4",null,"No contacts found",-1)),t[6]||(t[6]=n("p",null,"Try a different name or check your spelling",-1))])):u("",!0),G.value||0!==ne.value.length||z.value.length?u("",!0):(v(),l("div",al,[n("div",tl,[c(p,{name:"people-outline"})]),t[7]||(t[7]=n("h4",null,"No contacts available",-1)),t[8]||(t[8]=n("p",null,"There are no contacts to display",-1))])),K.value?(v(),l("div",ll,[c(_(I),{name:"bubbles"})])):u("",!0)]),_:1},512)]),_:1},8,["is-open"]))}}),[["__scopeId","data-v-4c925b99"]]),sl="/assets/icons/lock.svg",ol=["tabindex","onKeydown"],il=["src","alt"],rl={class:"resp__body"},ul={class:"resp__line"},dl={class:"resp__name"},cl={key:1,class:"resp__date"},pl={key:0,class:"resp__caps"},vl={key:0},ml={key:1,class:"resp__note"},gl={key:0,class:"resp__context"},fl={key:1,class:"resp__note"},_l={key:2,class:"resp__sel"},hl={key:0,class:"resp__ring-mark"},yl=m(e({__name:"FosterResponseListItem",props:{response:{},isSelected:{type:Boolean},isAssigned:{type:Boolean},animalNeeds:{},animal:{},groupAnimalCount:{}},emits:["toggle-approval","view-profile"],setup(e,{emit:d}){const c=e,p=d,m=a(!1);t(()=>{var e,a;return null==(a=null==(e=c.response)?void 0:e.foster)?void 0:a.photo_url},()=>{m.value=!1});const g=P(()=>{var e;return R(null==(e=c.response)?void 0:e.foster)}),_=P(()=>"not_interested"===c.response.response_type||"already_committed"===c.response.response_type),h=P(()=>{switch(c.response.response_type){case"interested":return"resp__verdict--yes";case"maybe":return"resp__verdict--maybe";default:return"resp__verdict--no"}}),y=P(()=>"already_committed"===c.response.response_type?"Interest withdrawn by foster":"Not interested"),b=P(()=>{var e;return[...Ee(c.response.foster,null!=(e=c.animal)?e:void 0)].sort((e,a)=>Number(Boolean(a.matched))-Number(Boolean(e.matched))).slice(0,4)}),w=P(()=>{if(_.value)return"";const e=c.groupAnimalCount&&c.groupAnimalCount>1?" (".concat(c.groupAnimalCount,")"):"";return("litter"===c.response.interest_type||c.response.litter_name)&&c.response.litter_name||("group"===c.response.interest_type||c.response.group_name)&&c.response.group_name?"Interested in group".concat(e):""}),k=P(()=>(c.response.message||"").trim()),S=P(()=>{if(!c.response.created_at)return"";const e=xe(c.response.created_at);return"Invalid date"===e?"":e}),A=e=>{switch(e){case"interested":return"Yes";case"maybe":return"Maybe";case"not_interested":case"already_committed":return"No";default:return e}},C=()=>{_.value||p("toggle-approval")},N=()=>{p("view-profile",c.response.foster.id)};return(a,t)=>{var d;return v(),l("div",{class:i(["resp",{"resp--selected":e.isSelected,"resp--declined":_.value,"resp--approved":e.isAssigned}]),role:"button",tabindex:_.value?-1:0,onClick:C,onKeydown:[s(o(C,["prevent"]),["enter"]),s(o(C,["prevent"]),["space"])]},[!m.value&&e.response.foster.photo_url?(v(),l("img",{key:0,src:e.response.foster.photo_url,alt:"".concat(g.value,"'s avatar"),class:"resp__avatar",loading:"lazy",onClick:o(N,["stop"]),onError:t[0]||(t[0]=e=>m.value=!0)},null,40,il)):(v(),f(aa,{key:1,class:"resp__avatar",name:g.value,onClick:o(N,["stop"])},null,8,["name"])),n("div",rl,[n("div",ul,[n("span",dl,r(g.value),1),(null==(d=e.response)?void 0:d.response_type)?(v(),l("span",{key:0,class:i(["resp__verdict",h.value])},r(A(e.response.response_type)),3)):u("",!0),S.value?(v(),l("span",cl,r(S.value),1)):u("",!0)]),b.value.length?(v(),l("div",pl,[(v(!0),l(x,null,F(b.value,(e,a)=>(v(),l(x,{key:a},[n("span",{class:i(e.matched?"resp__cap--match":"resp__cap")},r(e.label),3),a<b.value.length-1?(v(),l("span",vl," · ")):u("",!0)],64))),128))])):u("",!0),_.value?(v(),l("p",ml,r(y.value),1)):(v(),l(x,{key:2},[w.value?(v(),l("p",gl,r(w.value),1)):u("",!0),k.value?(v(),l("p",fl,r("â".concat(k.value,"â")),1)):u("",!0)],64))]),e.isAssigned?(v(),l("div",_l,[...t[1]||(t[1]=[n("span",{class:"resp__ring resp__ring--approved","aria-hidden":"true"},"â",-1),n("span",{class:"resp__sel-label"},"Approved",-1)])])):_.value?u("",!0):(v(),l("span",{key:3,class:i(["resp__ring",{"resp__ring--on":e.isSelected}]),"aria-hidden":"true"},[e.isSelected?(v(),l("span",hl,"â")):u("",!0)],2))],42,ol)}}}),[["__scopeId","data-v-c5369b13"]]),bl={class:"frp"},wl={class:"frp__helper"},kl={class:"frp__list"},Sl={class:"frp__reason"},Al={class:"frp__reason-head"},Cl={class:"frp__eyebrow"},xl={key:0,class:"frp__internal"},Fl=["placeholder"],Nl={class:"frp__check"},Il=["disabled"],Dl=["disabled"],Ul=m(e({__name:"FosterResponsesPanel",props:{isOpen:{type:Boolean},responses:{default:()=>[]},animal:{default:null},animalNeeds:{default:()=>[]},groupAnimalCount:{default:0},mode:{default:"assign"},assignedFosterId:{default:null},submitting:{type:Boolean,default:!1}},emits:["close","view-profile","confirm"],setup(e,{emit:s}){const o=e,i=s,d=a(null),p=a(""),m=a(null),g=a(!1);t(()=>o.isOpen,e=>{e&&(d.value=null,p.value="",m.value=null,g.value=!1)});const _=P(()=>o.responses.find(e=>e.id===d.value)||null),h=P(()=>"reassign"===o.mode?"Need to reassign? Choose a new foster volunteer. The current foster will be notified of the change.":"Choose a foster and they'll get a message to book a pickup time."),b=P(()=>"reassign"===o.mode?"Reason for Reassignment":"Add details or instructions"),w=P(()=>"reassign"===o.mode?"Enter commentsâ¦":"(Optional) E.g. pickup time, care notesâ¦"),k=P(()=>o.submitting?"Workingâ¦":"reassign"===o.mode?"Reassign Foster":"Approve Foster"),S=P(()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().slice(0,10)}),C=e=>{var a;if(null==o.assignedFosterId)return!1;const t=null==(a=e.foster)?void 0:a.id;return null!=t&&String(t)===String(o.assignedFosterId)},N=()=>{_.value&&!o.submitting&&i("confirm",{response:_.value,details:p.value.trim(),alreadyHasAnimal:g.value,expectedEndDate:m.value||void 0})};return(a,t)=>(v(),f(ra,{"is-open":e.isOpen,title:"Foster responses (".concat(e.responses.length,")"),"close-label":"Close",onClose:t[5]||(t[5]=e=>a.$emit("close"))},{footer:y(()=>[n("button",{class:"frp__cancel",disabled:e.submitting,onClick:t[4]||(t[4]=e=>a.$emit("close"))},"Cancel",8,Il),n("button",{class:"frp__primary",disabled:!_.value||e.submitting,onClick:N},r(k.value),9,Dl)]),default:y(()=>[n("div",bl,[n("p",wl,r(h.value),1),n("div",kl,[(v(!0),l(x,null,F(e.responses,l=>(v(),f(yl,{key:l.id,response:l,"is-selected":d.value===l.id,"is-assigned":C(l),"animal-needs":e.animalNeeds,animal:e.animal,"group-animal-count":e.groupAnimalCount,onToggleApproval:e=>(e=>{d.value=d.value===e.id?null:e.id})(l),onViewProfile:t[0]||(t[0]=e=>a.$emit("view-profile",e))},null,8,["response","is-selected","is-assigned","animal-needs","animal","group-animal-count","onToggleApproval"]))),128))]),n("div",Sl,[n("div",Al,[n("span",Cl,r(b.value),1),"reassign"===e.mode?(v(),l("span",xl,[...t[6]||(t[6]=[n("img",{src:sl,alt:"",class:"frp__lock"},null,-1),A(" INTERNAL",-1)])])):u("",!0)]),c(ua,{modelValue:m.value,"onUpdate:modelValue":t[1]||(t[1]=e=>m.value=e),"datetime-id":"response-expected-end-date",class:"frp__date-field",min:S.value},null,8,["modelValue","min"]),L(n("textarea",{"onUpdate:modelValue":t[2]||(t[2]=e=>p.value=e),class:"frp__textarea",placeholder:w.value},null,8,Fl),[[B,p.value]]),n("label",Nl,[L(n("input",{"onUpdate:modelValue":t[3]||(t[3]=e=>g.value=e),type:"checkbox",class:"frp__check-box"}
2,null,512),[[z,g.value]]),t[7]||(t[7]=n("span",{class:"frp__check-text"},[n("strong",null,"The new foster already has the animal."),A(" (If checked, we won't notify them to schedule a pickup).")],-1))])])])]),_:1},8,["is-open","title"]))}}),[["__scopeId","data-v-5afddf5b"]]),Pl={class:"record-section"},El={key:0,class:"record-section__title-row"},Tl={key:0,class:"section-title record-section__title"},Ol={key:1,class:"record-section__locked-note"},Vl={class:"record-section__body"},Rl=m(e({__name:"RecordSection",props:{title:{},locked:{type:Boolean,default:!1},editing:{type:Boolean,default:!1}},setup:e=>(a,t)=>(v(),l("section",Pl,[e.title||a.$slots["title-after"]?(v(),l("div",El,[e.title?(v(),l("h3",Tl,r(e.title),1)):u("",!0),d(a.$slots,"title-after",{},void 0,!0)])):u("",!0),e.locked&&e.editing?(v(),l("p",Ol,"These intake details can't be changed.")):u("",!0),n("div",Vl,[d(a.$slots,"default",{},void 0,!0)])]))}),[["__scopeId","data-v-7b215ede"]]),Ll={class:"group-apply"},Bl=["checked","disabled"],zl={class:"group-apply__text"},Ml={class:"group-apply__label"},jl={key:0,class:"group-apply__hint"},Wl=m(e({__name:"GroupApplyCheckbox",props:{modelValue:{type:Boolean},label:{},hint:{default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:a}){const t=a,s=e=>t("update:modelValue",e.target.checked);return(a,t)=>(v(),l("label",Ll,[n("input",{checked:e.modelValue,type:"checkbox",class:"group-apply__box",disabled:e.disabled,onChange:s},null,40,Bl),n("span",zl,[n("span",Ml,r(e.label),1),e.hint?(v(),l("span",jl,r(e.hint),1)):u("",!0)])]))}}),[["__scopeId","data-v-4311c492"]]),Gl={key:0,class:"eyebrow record-field__label"},ql={key:0,class:"record-field__control"},Hl=["onKeydown"],$l=["value"],Yl=["placeholder","onKeydown"],Kl=["type","max","placeholder","onKeydown"],Ql={class:"record-field__value-text"},Jl=["title"],Xl=m(e({__name:"RecordField",props:{label:{},modelValue:{},editable:{type:Boolean,default:!1},editExternally:{type:Boolean},locked:{type:Boolean,default:!1},lockedHint:{default:"Permanent record â can't be changed"},type:{default:"text"},options:{default:()=>[]},placeholder:{default:""},max:{default:void 0},nested:{type:Boolean,default:!1},groupedWithNext:{type:Boolean,default:!1},formattedValue:{},emptyText:{default:"Not provided"},saveState:{default:void 0},groupSiblingCount:{default:0},groupLabel:{default:"group"}},emits:["edit","update:modelValue","commit"],setup(e,{emit:t}){const d=e,m=t,g=P(()=>d.editable&&!d.locked),_=P(()=>"textarea"===d.type),h=P(()=>d.groupSiblingCount>0&&!_.value&&"date"!==d.type),y=a(!1),b=a(null),w=P(()=>_.value&&Boolean(d.saveState)&&"idle"!==d.saveState),k=P(()=>"select"===d.type?"chevron-down":"create-outline"),S=a(!1),A=a(null),C=a(null),N=a(!1),I=a(!1),D=e=>{if(N.value)return N.value=!1,void(S.value=!1);if(I.value)return;const a=e.target;h.value&&"keydown"!==e.type?b.value=a.value:U(a.value)},U=e=>{I.value=!0;const a=""===e?null:e;h.value?m("commit",a,{applyToGroup:y.value}):m("commit",a),S.value=!1},E=()=>{var e,a,t,l;I.value||U(String(null!=(l=null!=(t=null!=(a=b.value)?a:null==(e=A.value)?void 0:e.value)?t:z.value)?l:""))},T=()=>{N.value=!0,m("update:modelValue",C.value),S.value=!1},O=e=>{(e.metaKey||e.ctrlKey)&&(e.preventDefault(),D(e))},V=P(()=>null===d.modelValue||void 0===d.modelValue||""===d.modelValue),R=P(()=>{if(d.formattedValue)return d.formattedValue;if(V.value)return d.emptyText;if("select"===d.type){const e=d.options.find(e=>e.value===String(d.modelValue));if(e)return e.label}return String(d.modelValue)}),z=P({get:()=>{var e;return null!=(e=d.modelValue)?e:""},set:e=>m("update:modelValue",""===e?null:e)});return(a,t)=>(v(),l("div",{class:i(["record-field",{"record-field--editing":S.value,"record-field--group-editing":S.value&&h.value,"record-field--editable":g.value,"record-field--block":"textarea"===e.type,"record-field--nested":e.nested,"record-field--grouped":e.groupedWithNext}])},[n("div",{class:i(["record-field__lead",{"record-field__lead--floating":_.value&&!e.label}])},[e.label?(v(),l("span",Gl,r(e.label),1)):u("",!0),w.value?(v(),f(M,{key:1,state:e.saveState},null,8,["state"])):u("",!0)],2),S.value?(v(),l("div",ql,["select"===e.type?L((v(),l("select",{key:0,ref_key:"controlRef",ref:A,"onUpdate:modelValue":t[0]||(t[0]=e=>z.value=e),class:"record-field__input native-select",onChange:D,onBlur:D,onKeydown:s(o(T,["prevent"]),["escape"])},[(v(!0),l(x,null,F(e.options,e=>(v(),l("option",{key:e.value,value:e.value},r(e.label),9,$l))),128))],40,Hl)),[[j,z.value]]):"textarea"===e.type?L((v(),l("textarea",{key:1,ref_key:"controlRef",ref:A,"onUpdate:modelValue":t[1]||(t[1]=e=>z.value=e),class:"record-field__input record-field__textarea",placeholder:e.placeholder,rows:"3",onCh
2ange:D,onBlur:D,onKeydown:[s(O,["enter"]),s(o(T,["prevent"]),["escape"])]},null,40,Yl)),[[B,z.value]]):L((v(),l("input",{key:2,ref_key:"controlRef",ref:A,"onUpdate:modelValue":t[2]||(t[2]=e=>z.value=e),class:i(["record-field__input",{"native-date":"date"===e.type}]),type:"number"===e.type?"number":"date"===e.type?"date":"text",max:"date"===e.type?e.max:void 0,placeholder:e.placeholder,onKeydown:[s(o(D,["prevent"]),["enter"]),s(o(T,["prevent"]),["escape"])],onChange:D,onBlur:D},null,42,Kl)),[[W,z.value]]),h.value?(v(),l(x,{key:3},[c(Wl,{modelValue:y.value,"onUpdate:modelValue":t[3]||(t[3]=e=>y.value=e),class:"record-field__group",label:"Apply to all ".concat(e.groupSiblingCount+1," animals in this ").concat(e.groupLabel)},null,8,["modelValue","label"]),n("div",{class:"record-field__group-actions"},[n("button",{type:"button",class:"button-sm-tertiary",onClick:T},"Cancel"),n("button",{type:"button",class:"button-sm-primary record-field__group-save",onClick:E},"Save")])],64)):u("",!0)])):g.value?(v(),l("button",{key:1,type:"button",class:i(["record-field__value record-field__value--editable",{"empty-state-text":V.value}]),onClick:t[4]||(t[4]=a=>e.editExternally?m("edit"):(async()=>{var e,a;if(!g.value)return;C.value=null!=(e=d.modelValue)?e:null,N.value=!1,I.value=!1,y.value=!1,b.value=null,S.value=!0,await G();const t=A.value;if(t)if(t.focus(),"select"===d.type||"date"===d.type)try{null==(a=t.showPicker)||a.call(t)}catch(l){}else window.setTimeout(()=>t.scrollIntoView({block:"center",behavior:"smooth"}),250)})())},[!_.value&&e.saveState&&"idle"!==e.saveState?(v(),f(M,{key:0,state:e.saveState},null,8,["state"])):u("",!0),n("span",Ql,r(R.value),1),c(p,{name:k.value,size:"sm",color:"grey-300",class:"record-field__edit-icon"},null,8,["name"])],2)):(v(),l("span",{key:2,class:i(["record-field__value",{"empty-state-text":V.value,"record-field__value--readonly":!V.value,"record-field__value--locked":e.locked}]),title:e.locked?e.lockedHint:void 0},r(R.value),11,Jl))],2))}}),[["__scopeId","data-v-05b6caaf"]]);function Zl(e=2e3){const t=a("idle");let l;return{state:t,run:async a=>{l&&clearTimeout(l),t.value="saving";try{return await a(),t.value="saved",l=setTimeout(()=>{t.value="idle"},e),!0}catch(n){return t.value="error",l=setTimeout(()=>{t.value="idle"},e),!1}}}}const en=["disabled"],an={class:"intake-edit__field"},tn=["value"],ln=["value"],nn={key:0,class:"intake-edit__field"},sn={class:"intake-edit__field"},on=["value"],rn=["value"],un={class:"helper-text intake-edit__hint",role:"status"},dn={key:3,class:"helper-text intake-edit__error",role:"alert"},cn={key:4,class:"helper-text intake-edit__error",role:"alert"},pn={class:"intake-edit__actions"},vn=["disabled"],mn=m(e({__name:"AnimalIntakeDetails",props:{animal:{},canEdit:{type:Boolean,default:!1},groupSiblingCount:{default:0},groupLabel:{default:"group"},onSave:{}},setup(e){const s=e,i=a(!1),d=a(null),p=a(!1),m=a(!1),g=a(!1),h=a(!1),y=a(),b=Zl(),w=P(()=>"saving"===b.state.value),k=U({reason:"",source:"",notes:"",partner:null}),S=a({...k});let A=0;const C=()=>{const e=s.animal;Object.assign(k,{reason:(null==e?void 0:e.intake_reason)||"",source:(null==e?void 0:e.intake_origin_source)||"",notes:(null==e?void 0:e.intake_reason_notes)||"",partner:(null==e?void 0:e.intake_origin_partner_name)?{id:Number(e.intake_origin_partner_id)||0,name:e.intake_origin_partner_name}:null})};t(()=>s.animal,(e,a)=>{(null==e?void 0:e.id)!==(null==a?void 0:a.id)&&(A+=1,i.value=!1,p.value=!1,m.value=!1,g.value=!1,h.value=!1),i.value||C()},{immediate:!0});const N=P(()=>ha(k.reason)),I=P(()=>fa(k.source)),D=P(()=>{var e;return k.reason?N.value.some(e=>e.value===k.source)?!I.value||(null==(e=k.partner)?void 0:e.name.trim())&&k.partner.id>0?"":"Select the organization to save these changes.":"Select a source to save these changes.":"Select an intake reason to save these changes."}),E=P(()=>{var e,a,t,l;return k.reason!==S.value.reason||k.source!==S.value.source||k.notes!==S.value.notes||(null==(e=k.partner)?void 0:e.id)!==(null==(a=S.value.partner)?void 0:a.id)||(null==(t=k.partner)?void 0:t.name)!==(null==(l=S.value.partner)?void 0:l.name)}),T=P(()=>!w.value&&!h.value&&!D.value&&E.value),O=async()=>{var e,a,t,l;s.canEdit&&!w.value&&(S.value={...k},y.value=(null==(e=s.animal)?void 0:e.updatedAt)||(null==(a=s.animal)?void 0:a.updated_at),m.value=!1,p.value=!1,g.value=!1,h.value=!1,N.value.some(e=>e.value===k.source)||(k.source=""),i.value=!0,await G(),null==(l=null==(t=d.value)?void 0:t.querySelector("select"))||l.focus())},V=()=>{w.value||(C(),i.value=!1,g.value=!1,h.value=!1)},R=async()=>{var e,a,t,l;if(!s.canEdit||!i.value||!T.value)return;const n=A,o={...k.reason!==S.value.reason?{intake_reason:k.reason}:{},...k.source!==S.value.source?{intake_origin_source:k.source}:{},...(null==(e=k.partner)?void 0:e.name)!==(null==(a=S.value.partner)?void 0:a.name)||(null==(t=k.partner)?void 0:t.id)!==(null==(l=S.value.partner)?void 0:l.id)?{intake_origin_partner_name:I.value?k.partner.name:null,intake_origin_partner_id:I.value?k.partner.id:null}:{},...y.value?{expectedVersion:y.value}:{},...k.notes!==S.value.notes?{intake_reason_notes:k.notes.trim()||null}:{},...p.value&&s.groupSiblingCount>0?{apply_to_group:!0}
2:{}};g.value=!1;const r=await b.run(async()=>{try{await s.onSave(o)}catch(e){throw n===A&&Aa(e)&&(h.value=!0),e}});n===A&&(r?(I.value||(k.partner=null),i.value=!1):g.value=!0)};return(a,t)=>{var s;return i.value&&e.canEdit?(v(),l("form",{key:0,ref_key:"formRef",ref:d,class:"intake-edit","aria-label":"Edit intake details",onSubmit:o(R,["prevent"])},[n("fieldset",{disabled:w.value,class:"intake-edit__fields"},[n("label",an,[t[6]||(t[6]=n("span",{class:"eyebrow"},"Intake reason",-1)),n("select",{value:k.reason,class:"native-select",required:"",onChange:t[0]||(t[0]=e=>(e=>{if(w.value)return;k.reason=e,N.value.some(e=>e.value===k.source)||(k.source="",k.partner=null,m.value=!1);const a=_a[k.reason];a&&!m.value&&(k.source=a,fa(a)||(k.partner=null))})(e.target.value))},[t[5]||(t[5]=n("option",{disabled:"",value:""},"Select a reason",-1)),(v(!0),l(x,null,F(_(ma),e=>(v(),l("option",{key:e,value:e},r(e),9,ln))),128))],40,tn)]),"Other"===k.reason||k.notes?(v(),l("label",nn,[t[7]||(t[7]=n("span",{class:"eyebrow"},"Reason details",-1)),L(n("textarea",{"onUpdate:modelValue":t[1]||(t[1]=e=>k.notes=e),rows:"3",placeholder:"Please provide additional detailsâ¦"},null,512),[[B,k.notes]])])):u("",!0),n("label",sn,[t[9]||(t[9]=n("span",{class:"eyebrow"},"Source",-1)),n("select",{value:k.source,class:"native-select",required:"",onChange:t[2]||(t[2]=e=>{return a=e.target.value,void(w.value||(k.source=a,m.value=!0,fa(k.source)||(k.partner=null)));var a})},[t[8]||(t[8]=n("option",{disabled:"",value:""},"Select a source",-1)),(v(!0),l(x,null,F(N.value,e=>(v(),l("option",{key:e.value,value:e.value},r(e.label),9,rn))),128))],40,on)]),I.value?(v(),f(va,{key:1,"model-value":k.partner,label:"Which organization?",required:"",placeholder:"Search saved partners or directory","onUpdate:modelValue":t[3]||(t[3]=e=>k.partner=e)},null,8,["model-value"])):u("",!0),n("p",un,r(D.value||"These changes are saved together when you select Save."),1),e.groupSiblingCount>0?(v(),f(Wl,{key:2,modelValue:p.value,"onUpdate:modelValue":t[4]||(t[4]=e=>p.value=e),label:"Apply to all ".concat(e.groupSiblingCount+1," animals in this ").concat(e.groupLabel)},null,8,["modelValue","label"])):u("",!0),h.value?(v(),l("p",dn," This record changed while you were editing. Your changes were not saved. Cancel and refresh the profile before editing again. ")):g.value?(v(),l("p",cn," Could not save intake details. Your changes are still here. Please try again. ")):u("",!0),n("div",pn,[n("button",{type:"button",class:"button-sm-tertiary",onClick:V},"Cancel"),n("button",{type:"submit",class:"button-sm-primary",disabled:!T.value},r(w.value?"Savingâ¦":"Save"),9,vn)])],8,en)],544)):(v(),l(x,{key:1},[c(Xl,{label:"Intake reason","model-value":k.reason,editable:e.canEdit,"edit-externally":"","save-state":_(b).state.value,onEdit:O},null,8,["model-value","editable","save-state"]),"Other"===k.reason||k.notes?(v(),f(Xl,{key:0,label:"Reason details","model-value":k.notes,type:"textarea",nested:"",editable:e.canEdit,"edit-externally":"",onEdit:O},null,8,["model-value","editable"])):u("",!0),c(Xl,{label:"Source",type:"select","model-value":k.source,options:_(ga),editable:e.canEdit,"edit-externally":"","grouped-with-next":!!k.partner,onEdit:O},null,8,["model-value","options","editable","grouped-with-next"]),I.value||k.partner?(v(),f(Xl,{key:1,label:"Organization","model-value":null==(s=k.partner)?void 0:s.name,nested:"",editable:e.canEdit,"edit-externally":"",onEdit:O},null,8,["model-value","editable"])):u("",!0)],64))}}}),[["__scopeId","data-v-edce3933"]]),gn={key:0,src:sl,alt:"",class:"visibility-tag__icon"},fn=m(e({__name:"VisibilityTag",props:{audience:{}},setup:e=>(a,t)=>(v(),l("span",{class:i(["visibility-tag","visibility-tag--".concat(e.audience)])},["internal"===e.audience?(v(),l("img",gn)):u("",!0),A(" "+r("internal"===e.audience?"Internal":"Visible to fosters"),1)],2))}),[["__scopeId","data-v-67d90a8f"]]),_n={class:"animal-record-panel"},hn={class:"record-panel__body record-panel__details-body"},yn={class:"record-panel__full"},bn={class:"record-panel__full"},wn=["disabled"],kn={key:1,class:"dob-reason-error"},Sn=["disabled"],An=["disabled"],Cn=m(e({__name:"AnimalRecordPanel",props:{animal:{},canEdit:{type:Boolean,default:!1},onSave:{type:Function,default:void 0},groupSiblingCount:{default:0},groupLabel:{default:"group"}},emits:["save"],setup(e,{emit:s}
2){const o=e,i=s,d=a(!1),p=e=>o.onSave?o.onSave(e):i("save",e),m=U({}),g=(e,a,t)=>e.run(()=>p(t)).then(e=>(e||(e=>{for(const a of e)delete m[a]})(a),e)),h=new Set(["species","breed","estimated_dob"]),b=(e,a,t)=>t&&o.groupSiblingCount>0&&h.has(a)?{...e,apply_to_group:!0}:e,w=U({species:void 0,sex:void 0,sterilization_status:ya.unknown,sterilization_date:void 0,breed:void 0,microchip_info:void 0,medical_history:void 0,notes:void 0,weight_grams:null,customBreed:""});t(()=>o.animal,()=>{var e,a,t,l,n,s,i,r;const u=o.animal;w.species=null!=(e=null==u?void 0:u.species)?e:void 0,w.sex=null!=(a=null==u?void 0:u.sex)?a:void 0,w.sterilization_status=null!=(t=null==u?void 0:u.sterilization_status)?t:ya.unknown,w.sterilization_date=null!=(l=null==u?void 0:u.sterilization_date)?l:void 0;{const e=null==u?void 0:u.species,a=null!=(n=null==u?void 0:u.breed)?n:"";a&&e&&!ka(a,e)?(w.breed="Other",w.customBreed=a):(w.breed=a||void 0,w.customBreed="")}w.microchip_info=null!=(s=null==u?void 0:u.microchip_info)?s:void 0,w.medical_history=null!=(i=null==u?void 0:u.medical_history)?i:void 0,w.notes=null!=(r=null==u?void 0:u.notes)?r:void 0,w.weight_grams="number"==typeof(null==u?void 0:u.weight_grams)?u.weight_grams:null},{immediate:!0});const k=xa.map(e=>({value:e,label:Fa[e]})),S=[{value:"Male",label:"Male"},{value:"Female",label:"Female"},{value:"Unknown",label:"Unknown"}],A=P(()=>ba(w.sex||"Unknown")),C=P(()=>{const e=w.species;return e?wa(e).map(e=>({value:e,label:e})):[]}),x=P(()=>{const e=Va(o.animal);if(!e)return"Unknown";const a=pa.fromISO(e,{zone:"utc"});return a.isValid?a.toFormat("MMM d, yyyy"):"Unknown"}),F=P(()=>{const e=Va(o.animal);if(!e)return"";const a=pa.fromISO(e,{zone:"utc"});return a.isValid?a.toFormat("yyyy-MM-dd"):""}),N=P(()=>pa.utc().toFormat("yyyy-MM-dd")),I=P(()=>{if(!w.sterilization_date)return"";const e=pa.fromISO(w.sterilization_date,{zone:"utc"});return e.isValid?e.toFormat("yyyy-MM-dd"):""}),D=P(()=>{if(!w.sterilization_date)return"Date unknown";const e=pa.fromISO(w.sterilization_date,{zone:"utc"});return e.isValid?e.toFormat("MMM d, yyyy"):"Date unknown"}),E=Zl(),T=a(!1),O=a(""),V=a(""),R=a(!1),z=P(()=>"saving"===E.state.value),M=a(!1),j=e=>{const a=null==e?"":String(e);a&&a!==F.value&&(O.value=a,V.value="",R.value=!1,M.value=!1,T.value=!0)},W=()=>{z.value||(T.value=!1,O.value="",V.value="",R.value=!1)},G=async()=>{const e=V.value.trim(),a=O.value;if(!e||!a||z.value)return;R.value=!1;await E.run(()=>p(b({estimated_dob:a,field_change_reasons:{estimated_dob:e}},"estimated_dob",M.value)))?(T.value=!1,O.value="",V.value=""):R.value=!0},H=e=>{var a,t;const l=e||ya.unknown;if(l===(null!=(t=null==(a=o.animal)?void 0:a.sterilization_status)?t:ya.unknown))return;w.sterilization_status=l;const n={sterilization_status:l};l!==ya.sterilized&&(w.sterilization_date=void 0,n.sterilization_date=null),J.sterilization_status.run(()=>p(n))},$=e=>{const a=null==e||""===e?null:String(e);(I.value||null)!==a&&(w.sterilization_date=a||void 0,J.sterilization_date.run(()=>p({sterilization_date:a})))},Y=P(()=>{if(!o.animal)return"Unknown";const e=Ra(o.animal);return e&&"Unknown age"!==e?e:"Unknown"}),K=P(()=>{var e;const a=null==(e=o.animal)?void 0:e.intake_date;if(!a)return"Unknown";const t=pa.fromISO(a);return t.isValid?t.toFormat("MMM d, yyyy"):"Unknown"}),Q=P(()=>{const e=w.weight_grams;return"number"!=typeof e||e<=0?"Unknown":"".concat(Ua({weight_grams:e})," · ").concat(Pa(e,"imperial"))}),J={species:Zl(),sex:Zl(),sterilization_status:Zl(),sterilization_date:Zl(),breed:Zl(),microchip_info:Zl(),medical_history:Zl(),notes:Zl()},X=(e,a)=>{const t=null==e?"":String(e);if("Other"===t)return w.breed="Other",void(w.customBreed="");w.breed=t||void 0,w.customBreed="",ee("breed",t||null,a)},Z=(e,a)=>{const t=null==e?"":String(e).trim();w.customBreed=t,ee("breed",t||null,a)};t(()=>{var e;return null==(e=o.animal)?void 0:e.id},()=>{for(const e of Object.keys(m))delete m[e]});const ee=(e,a,t)=>{var l;if(!o.animal)return;const n=""===a?null:a;String(null!=(l=(e=>{var a,t;return e in m?m[e]:null!=(t=null==(a=o.animal)?void 0:a[e])?t:null})(e))?l:"")!==String(null!=n?n:"")&&(((e,a)=>{m[e]=null!=a?a:null})(e,n),g(J[e],[e],b({[e]:n},e,null==t?void 0:t.applyToGroup)))};return(a,t)=>{const s=q("ion-spinner");return v(),l("div",_n,[c(Rt,{title:"Update Animal Details",class:"record-panel",open:d.value,"onUpdate:open":t[13]||(t[13]=e=>d.value=e),"default-open":!1},{default:y(()=>[n("div",hn,[c(Rl,null,{default:y(()=>[c(Xl,{label:"Species","model-value":w.species,editable:e.canEdit,"group-sibling-count":e.groupSiblingCount,"group-label":e.groupLabel,type:"select",options:_(k),"save-state":J.species.state.value,"onUpdate:modelValue":t[0]||(t[0]=e=>w.species=e),onCommit:t[1]||(t[1]=(e,a)=>ee("species",e,a))},null,8,["model-value","editable","group-sibling-count","group-label","options","save-state"]),c(Xl,{label:"Sex","model-value":w.sex,editable:e.canEdit,type:"select",options:S,"save-state":J.sex.state.value,"onUpdate:modelValue":t[2]||(t[2]=e=>w.sex=e),onCommit:t[3]||(t[3]=e=>ee("sex",e))},null,8,["model-value","editable","save-state"]),c(Xl,{label:"Spay/neuter status","model-value":w.sterilization_status,editable:e.canEdit,type:"select",options:A.value,"save-state":J.sterilization_status.state.value,"grouped-with-next":w.sterilization_status===_(ya).sterilized,"onUpdate:modelValue":t[4]||(t[4]=e=>w.sterilization_status=e),onCommit:H},null,8,["model-value","editable","options","save-state","grouped-with-next"]),w.sterilization_status===_(ya).sterilized?(v(),f(Xl,{key:0,label:"Surgery date",type:"date",nested:"","model-value":I.value,"formatted-value":D.value,editable:e.canEdit,max:N.value,"save-state":J.sterilization_date.state.value,"empty-text":"Date unknown",onCommit:$},null,8,["model-value","formatted-value","editable","max","save-state"])):u("",!0),c(Xl,{label:"Breed",type:"select","model-value":w.breed,options:C.value,editable:e.canEdit,"group-sibling-count":e.groupSiblingCount,"group-label":e.groupLabel,"save-state":J.breed.state.value,"onUpdate:modelValue":t[5]||(t[5]=e=>w.breed=e),onCommit:X}
2,null,8,["model-value","options","editable","group-sibling-count","group-label","save-state"]),e.canEdit&&"Other"===w.breed?(v(),f(Xl,{key:1,label:"Breed name","model-value":w.customBreed,editable:e.canEdit,"group-sibling-count":e.groupSiblingCount,"group-label":e.groupLabel,placeholder:"Enter breed","save-state":J.breed.state.value,"onUpdate:modelValue":t[6]||(t[6]=e=>w.customBreed=e),onCommit:Z},null,8,["model-value","editable","group-sibling-count","group-label","save-state"])):u("",!0),c(Xl,{label:"Date of birth",type:"date","model-value":F.value,"formatted-value":x.value,editable:e.canEdit,max:N.value,"save-state":_(E).state.value,onCommit:j},null,8,["model-value","formatted-value","editable","max","save-state"]),c(Xl,{label:"Age","model-value":Y.value,"formatted-value":Y.value},null,8,["model-value","formatted-value"]),c(Xl,{label:"Weight","model-value":Q.value,"formatted-value":Q.value},null,8,["model-value","formatted-value"])]),_:1}),c(Rl,{title:"Where they came from"},{default:y(()=>{var a,t;return[c(Xl,{label:"Intake date","model-value":null==(a=e.animal)?void 0:a.intake_date,"formatted-value":K.value,locked:!0},null,8,["model-value","formatted-value"]),(v(),f(mn,{key:null==(t=e.animal)?void 0:t.id,animal:e.animal,"can-edit":e.canEdit,"group-sibling-count":e.groupSiblingCount,"group-label":e.groupLabel,"on-save":p},null,8,["animal","can-edit","group-sibling-count","group-label"]))]}),_:1}),c(Rl,{title:"Identification"},{default:y(()=>{var a;return[c(Xl,{label:"Animal ID","model-value":null==(a=e.animal)?void 0:a.animal_id,locked:!0},null,8,["model-value"]),c(Xl,{label:"Microchip","model-value":w.microchip_info,editable:e.canEdit,placeholder:"Microchip # if available","save-state":J.microchip_info.state.value,"onUpdate:modelValue":t[7]||(t[7]=e=>w.microchip_info=e),onCommit:t[8]||(t[8]=e=>ee("microchip_info",e))},null,8,["model-value","editable","save-state"])]}),_:1}),c(Rl,{title:"Medical history"},{"title-after":y(()=>[c(fn,{audience:"internal"})]),default:y(()=>[n("div",yn,[c(Xl,{"model-value":w.medical_history,editable:e.canEdit,type:"textarea",placeholder:"Any medical concerns, injuries, or observationsâ¦","save-state":J.medical_history.state.value,"onUpdate:modelValue":t[9]||(t[9]=e=>w.medical_history=e),onCommit:t[10]||(t[10]=e=>ee("medical_history",e))},null,8,["model-value","editable","save-state"])])]),_:1}),c(Rl,{title:"Care notes"},{"title-after":y(()=>[c(fn,{audience:"foster"})]),default:y(()=>[n("div",bn,[c(Xl,{"model-value":w.notes,editable:e.canEdit,type:"textarea",placeholder:"Additional care information visible to fostersâ¦","save-state":J.notes.state.value,"onUpdate:modelValue":t[11]||(t[11]=e=>w.notes=e),onCommit:t[12]||(t[12]=e=>ee("notes",e))},null,8,["model-value","editable","save-state"])])]),_:1})])]),_:1},8,["open"]),c(Ca,{"is-open":T.value,title:"Update date of birth",variant:"dialog","can-dismiss":!z.value,onDismiss:W},{actions:y(()=>[n("button",{type:"button",class:"button-sm-tertiary",disabled:z.value,onClick:W},"Cancel",8,Sn),n("button",{type:"button",class:"button-sm-primary dob-reason-save",disabled:!V.value.trim()||z.value,onClick:G},[z.value?(v(),f(s,{key:0,name:"crescent",class:"dob-reason-spinner"})):u("",!0),n("span",null,r(z.value?"Saving...":"Save"),1)],8,An)]),default:y(()=>[t[16]||(t[16]=n("p",{class:"helper-text dob-reason-prompt"},"Changing the date of birth updates this animal's age. Add a short reason for the record.",-1)),L(n("textarea",{"onUpdate:modelValue":t[14]||(t[14]=e=>V.value=e),class:"dob-reason-input",rows:"3",placeholder:"Reason for the change",disabled:z.value},null,8,wn),[[B,V.value]]),e.groupSiblingCount>0?(v(),f(Wl,{key:0,modelValue:M.value,"onUpdate:modelValue":t[15]||(t[15]=e=>M.value=e),class:"dob-reason-group",label:"Apply to all ".concat(e.groupSiblingCount+1," animals in this ").concat(e.groupLabel),disabled:z.value},null,8,["modelValue","label","disabled"])):u("",!0),R.value?(v(),l("p",kn,"Couldn't save that change. Please try again.")):u("",!0)]),_:1},8,["is-open","can-dismiss"])])}}}),[["__scopeId","data-v-f142fc87"]]),xn=e=>e.length<=1?e[0]||"":2===e.length?"".concat(e[0]," and ").concat(e[1]):"".concat(e.slice(0,-1).join(", "),", and ").concat(e[e.length-1]),Fn=e=>1===e?"animal":"animals",Nn=(e,a)=>e.every(e=>e.reason===a),In=e=>Nn(e,"outcome")?"still in care":Nn(e,"not_with_foster")?"with this foster":e.some(e=>"foster"===e.reason)?"with the same status and foster":"with the same status",Dn=({includedCount:e,leftOut:a,groupName:t,groupLabel:l,action:n="Apply",allScope:s,currentName:o})=>{if(0===a.length)return"".concat(n," to all ").concat(e," ").concat(Fn(e)," ").concat(null!=s?s:"in this ".concat(l));const i=t||"this ".concat(l);
2if(o){const t=e-1;return"".concat(n," to ").concat(o," and the ").concat(t," ").concat(Fn(t)," in ").concat(i," ").concat(In(a))}return"".concat(n," to the ").concat(e," ").concat(Fn(e)," in ").concat(i," ").concat(In(a))},Un=e=>{if(0===e.length)return"";const a=xn(e.map(e=>e.name)),t=1===e.length,l="so ".concat(t?"it won't":"they won't"," change.");if(Nn(e,"outcome")){const n=new Set(e.map(e=>{return(a=e.status)?String(a).replace(/_/g," ").toLowerCase():"";var a})),[s]=[...n];return 1===n.size&&s?"".concat(a," ").concat(t?"is":"are"," ").concat(s,", ").concat(l):"".concat(a," already ").concat(t?"has a final outcome":"have final outcomes",", ").concat(l)}if(Nn(e,"not_with_foster"))return"".concat(a," ").concat(t?"isn't":"aren't"," with this foster, ").concat(l);if(!e.every(e=>"status"===e.reason||"foster"===e.reason))return"".concat(a," won't change.");const n=Nn(e,"status")?"a different status":Nn(e,"foster")?"a different foster":"a different status or foster";return"".concat(a," ").concat(t?"has":"have"," ").concat(n,", ").concat(l)},Pn=e=>e.length?"".concat(xn(e)," ").concat(1===e.length?"wasn't":"weren't"," changed."):"",En=({updatedTotal:e,failedNames:a,leftOutNames:t=[],groupName:l})=>{const n=e+t.length,s=e-a.length,o=t.length?" ".concat(Pn(t)):"";return a.length?"Updated ".concat(s," of ").concat(n," ").concat(Fn(n)," in ").concat(l,". Couldn't update: ").concat(a.join(", "),".").concat(o):t.length?"Updated ".concat(s," of ").concat(n," ").concat(Fn(n)," in ").concat(l,".").concat(o):"Updated all ".concat(e," ").concat(Fn(e)," in ").concat(l,".")},Tn={class:"flags-card__row"},On={class:"flags-card__control"},Vn={class:"flags-card__row"},Rn={class:"flags-card__control"},Ln={class:"flags-card__row"},Bn={class:"flags-card__control"},zn=m(e({__name:"AnimalFlagsCard",props:{animal:{},canEdit:{type:Boolean,default:!1},onSave:{type:Function,default:void 0},groupSiblingCount:{default:0},groupLabel:{default:"group"},groupLeftOut:{default:()=>[]},groupName:{default:null}},emits:["save"],setup(e,{emit:l}){const s=e,o=P(()=>Dn({includedCount:s.groupSiblingCount+1,leftOut:s.groupLeftOut,groupName:s.groupName,groupLabel:s.groupLabel,action:"Apply changes"})),i=P(()=>Un(s.groupLeftOut)),r=l,d=a(!1);t(()=>{var e;return null==(e=s.animal)?void 0:e.id},()=>{d.value=!1});const p=P(()=>{var e;return Ba(null==(e=s.animal)?void 0:e.status)}),m=P(()=>{var e;return Boolean(null==(e=s.animal)?void 0:e.urgent)}),g=P(()=>{var e;return Boolean(null==(e=s.animal)?void 0:e.on_hold)}),h=P(()=>{var e;return!1!==(null==(e=s.animal)?void 0:e.visibility)}),b={urgent:Zl(),on_hold:Zl(),visibility:Zl()},w=U({urgent:P(()=>b.urgent.state.value),on_hold:P(()=>b.on_hold.state.value),visibility:P(()=>b.visibility.state.value)}),k=(e,a)=>{const t={[e]:a},l=d.value&&s.groupSiblingCount>0?{...t,apply_to_group:!0}:t;b[e].run(()=>s.onSave?s.onSave(l):r("save",l))};return(a,t)=>e.canEdit&&!p.value?(v(),f(Rt,{key:0,title:"Visibility & Urgency","default-open":!1,class:"flags-card"},{default:y(()=>[e.groupSiblingCount>0?(v(),f(Wl,{key:0,modelValue:d.value,"onUpdate:modelValue":t[0]||(t[0]=e=>d.value=e),label:o.value,hint:i.value},null,8,["modelValue","label","hint"])):u("",!0),n("div",Tn,[t[4]||(t[4]=n("div",{class:"flags-card__copy"},[n("span",{class:"flags-card__row-title"},"Mark as urgent"),n("span",{class:"flags-card__row-help"},"Pickup by end of day today.")],-1)),n("div",On,[c(M,{state:w.urgent},null,8,["state"]),c(La,{id:"flags-urgent","model-value":m.value,"onUpdate:modelValue":t[1]||(t[1]=e=>k("urgent",e))},null,8,["model-value"])])]),n("div",Vn,[t[5]||(t[5]=n("div",{class:"flags-card__copy"},[n("span",{class:"flags-card__row-title"},"On hold"),n("span",{class:"flags-card__row-help"},"Pauses matching. Their assigned or gap foster can still see them.")],-1)),n("div",Rn,[c(M,{state:w.on_hold},null,8,["state"]),c(La,{id:"flags-onhold","model-value":g.value,"onUpdate:modelValue":t[2]||(t[2]=e=>k("on_hold",e))},null,8,["model-value"])])]),n("div",Ln,[t[6]||(t[6]=n("div",{class:"flags-card__copy"},[n("span",{class:"flags-card__row-title"},"Visible to fosters"),n("span",{class:"flags-card__row-help"},"When on, fosters can see this animal and can offer to foster them.")],-1)),n("div",Bn,[c(M,{state:w.visibility},null,8,["state"]),c(La,{id:"flags-visible","model-value":h.value&&!g.value&&_(Re)(e.animal||{}),disabled:g.value||!_(Re)(e.animal||{}),"onUpdate:modelValue":t[3]||(t[3]=e=>k("visibility",e))},null,8,["model-value","disabled"])])])]),_:1})):u("",!0)}}),[["__scopeId","data-v-e54dedf7"]]),Mn={class:"animal-status-updater"},jn={class:"status-updater__header"},Wn=["disabled"],Gn={key:0,class:"status-updater__current"},qn={key:0,class:"status-updater__note"},Hn={class:"status-updater__pills"},$n={key:0,class:"status-updater__hint status-updater__hint--block"},Yn={key:1,class:"status-updater__hint status-updater__hint--block"},Kn={key:2,class:"status-updater__field"},Qn={key:3,class:"status-updater__field"},Jn=["value"],Xn={key:4,class:"status-updater__field"}
2,Zn={key:5,class:"status-updater__field"},es={class:"eyebrow"},as={key:0,class:"status-updater__assigned"},ts={class:"status-updater__assigned-name"},ls=["value"],ns={key:6,class:"status-updater__field"},ss={class:"eyebrow"},os={key:0,class:"status-updater__required"},is={class:"status-updater__yes-no"},rs={class:"status-updater__hint status-updater__hint--block"},us={key:7,class:"status-updater__hint status-updater__hint--block"},ds={class:"status-updater__actions"},cs=["disabled"],ps=["disabled"],vs={class:"status-correction__message"},ms=["disabled"],gs="outcome-pending",fs=m(e({__name:"AnimalStatusUpdater",props:{status:{},canEdit:{type:Boolean,default:!1},pathway:{default:"foster"},pathwayNote:{default:null},onHold:{type:Boolean,default:!1},fosters:{default:()=>[]},hasPrimaryFoster:{type:Boolean,default:!1},hasAssignedFoster:{type:Boolean,default:!1},assignedFosterId:{default:null},gapFosterId:{default:null},saving:{type:Boolean,default:!1},groupSiblingCount:{default:0},groupLabel:{default:"group"},groupLeftOut:{default:()=>[]},groupName:{default:null}},emits:["save","update:editing"],setup(e,{emit:s}){const o=e,p=s,m=a(!1);t(m,e=>p("update:editing",e));const g=P(()=>o.status||"At_Shelter"),h=P(()=>"foster"!==o.pathway&&!Ba(g.value)),b=P(()=>h.value?gs:g.value),w=a(b.value),k=P(()=>w.value===gs),S=a(""),C=["At_Shelter","With_Foster","With_Gap_Foster",gs,"Adopted","Transferred","Deceased"],N=P(()=>C.filter(e=>"With_Gap_Foster"!==e||o.hasPrimaryFoster||"With_Gap_Foster"===g.value).map(e=>{var a;return{value:e,label:e===gs?"Outcome Pending":(null==(a=we[e])?void 0:a.label)||e}})),D=[{value:"died-at-shelter",label:"Died at shelter"},{value:"died-in-foster-care",label:"Died in foster care"},{value:"euthanized",label:"Euthanized"},{value:"other",label:"Other"}],U=a("died-at-shelter"),E=a(""),T=a(null),O=P(()=>Le(o.fosters||[],[o.assignedFosterId,o.gapFosterId])),V=e=>{if(!e)return"";const a=e.name||"".concat(e.first_name||""," ").concat(e.last_name||"").trim();return e.userId?a:"".concat(a," (guest)")},R=e=>{const a="With_Gap_Foster"===e?o.gapFosterId:o.assignedFosterId;return null!=a&&""!==a?String(a):null},z=a(null),M=a(!1),W=P(()=>(o.fosters||[]).find(e=>String(e.id)===String(z.value))||null),G=P(()=>M.value||Boolean($.value)||!W.value),q=a(null),$=a(null);t($,e=>{e&&(z.value=null)});const Y=P(()=>"Deceased"===w.value),K=P(()=>"Transferred"===w.value),Q=P(()=>"With_Foster"===w.value||"With_Gap_Foster"===w.value),J=["With_Foster","With_Gap_Foster"],X=["At_Shelter","Adopted","Transferred","Deceased"],Z=P(()=>o.hasAssignedFoster&&(J.includes(g.value)&&X.includes(w.value)||k.value&&!h.value)),ee=P(()=>Z.value&&(k.value||"At_Shelter"===w.value)),ae=P(()=>Z.value&&!ee.value),te=P(()=>k.value?h.value?g.value:o.hasAssignedFoster?!0===q.value?"At_Shelter":g.value:"At_Shelter":w.value),le=P(()=>h.value&&!k.value&&!Ba(w.value)),ne=a(!1),se=P(()=>Dn({includedCount:o.groupSiblingCount+1,leftOut:o.groupLeftOut,groupName:o.groupName,groupLabel:o.groupLabel})),oe=P(()=>Un(o.groupLeftOut)),ie=P(()=>o.groupSiblingCount>0&&(k.value||ke.includes(te.value)));t(ee,e=>{e||(q.value=null)}),t(w,()=>{q.value=null});const re=P(()=>k.value&&S.value.trim()!==(o.pathwayNote||"").trim()),ue=P(()=>w.value!==b.value||re.value),de=P(()=>{var e;return!!ue.value&&(!(Y.value&&"other"===U.value&&!E.value.trim())&&(!(K.value&&!(null==(e=T.value)?void 0:e.id))&&(!(Q.value&&!z.value&&!$.value)&&(!ee.value||null!==q.value))))});t(w,(e,a)=>{e!==a&&"With_Gap_Foster"===a!=("With_Gap_Foster"===e)&&(z.value=R(e),$.value=null,M.value=!1)});const ce=()=>{M.value=!1,m.value=!1},pe=new Set(["Deceased","Adopted","Transferred"]),ve=a(!1),me=a(""),ge=P(()=>{var e;return(null==(e=we[g.value])?void 0:e.label)||g.value}),fe=P(()=>w.value!==g.value&&pe.has(g.value)&&!pe.has(w.value)),_e={Deceased:{header:"Mark as deceased?",message:"This records a final outcome for this animal. Continue?",confirm:"Yes, mark deceased"},Adopted:{header:"Mark as adopted?",message:"This records a final outcome for this animal. Continue?",confirm:"Yes, mark adopted"},Transferred:{header:"Mark as transferred?",message:"This records a final outcome for this animal. Continue?",confirm:"Yes, mark transferred"}},he=e=>{const a=(e=>{const a={};
2return te.value!==g.value&&(a.status=te.value),k.value&&!h.value&&(a.pathway="other"),k.value&&re.value&&(a.pathway_note=S.value.trim()||null),le.value&&(a.pathway="foster"),Y.value&&(a.cause_of_death="other"===U.value?"Other: ".concat(E.value.trim()):U.value),K.value&&T.value&&(a.transferred_to_org=T.value.name,a.transferred_to_organization_id=T.value.id,a.transfer_destination_organization_id=T.value.id,a.transfer_destination_name=T.value.name),Q.value&&z.value?"With_Gap_Foster"===w.value?a.gap_foster_id=z.value:(a.assigned_foster_id=z.value,a.picked_up_by=z.value):Q.value&&$.value&&(a.guest_foster=$.value),(ee.value&&!0===q.value||ae.value)&&(a.assignment_completion_requested=!0),e&&(a.override={reason:e}),ie.value&&ne.value&&(a.apply_to_group=!0),a})(e);m.value=!1,0!==Object.keys(a).length&&p("save",a)},ye=()=>{ve.value=!1,me.value=""},Se=()=>{const e=me.value.trim();e&&o.canEdit&&fe.value&&(ve.value=!1,me.value="",he(e))},Ae=async()=>{if(de.value&&o.canEdit)return fe.value?(me.value="",void(ve.value=!0)):void((w.value===g.value||await(async e=>{const a=_e[e];if(!a)return!0;const t=await H.create({header:a.header,message:a.message,buttons:[{text:"Cancel",role:"cancel"},{text:a.confirm,role:"confirm"}]});await t.present();const{role:l}=await t.onDidDismiss();return"confirm"===l})(w.value))&&he())};return(a,t)=>(v(),l("div",Mn,[n("div",{class:i(["status-updater",{"status-updater--active":m.value}])},[n("div",jn,[t[12]||(t[12]=n("span",{class:"eyebrow"},"Status",-1)),e.canEdit&&!m.value?(v(),l("button",{key:0,type:"button",class:"button-sm-tertiary button-tertiary-success",disabled:e.saving,onClick:t[0]||(t[0]=e=>(w.value=b.value,S.value=h.value&&o.pathwayNote||"",ne.value=!1,U.value="died-at-shelter",E.value="",T.value=null,z.value=R(w.value),M.value=!1,q.value=null,$.value=null,void(m.value=!0)))},[e.saving?(v(),f(_(I),{key:0,name:"crescent",class:"status-updater__spinner"})):u("",!0),A(" "+r(e.saving?"Savingâ¦":"Update status"),1)],8,Wn)):u("",!0)]),m.value?(v(),l(x,{key:1},[n("div",Hn,[(v(!0),l(x,null,F(N.value,e=>(v(),f(Ma,{key:e.value,label:e.label,size:"sm",selected:w.value===e.value,onClick:a=>w.value=e.value},null,8,["label","selected","onClick"]))),128))]),k.value&&!h.value?(v(),l("p",$n," Takes the animal out of the placement queue until a final outcome is recorded. ")):le.value?(v(),l("p",Yn,"Puts the animal back on the foster track.")):u("",!0),k.value?(v(),l("div",Kn,[t[13]||(t[13]=n("label",{class:"eyebrow",for:"outcome-pending-note"},"Note (optional)",-1)),L(n("textarea",{id:"outcome-pending-note","onUpdate:modelValue":t[1]||(t[1]=e=>S.value=e),class:"status-updater__input",rows:"2",maxlength:"2000",placeholder:"e.g. Ready for adoption after surgery"},null,512),[[B,S.value]])])):u("",!0),Y.value?(v(),l("div",Qn,[t[14]||(t[14]=n("span",{class:"eyebrow"},"Manner of death",-1)),L(n("select",{"onUpdate:modelValue":t[2]||(t[2]=e=>U.value=e),class:"status-updater__input native-select"},[(v(),l(x,null,F(D,e=>n("option",{key:e.value,value:e.value},r(e.label),9,Jn)),64))],512),[[j,U.value]]),"other"===U.value?L((v(),l("input",{key:0,"onUpdate:modelValue":t[3]||(t[3]=e=>E.value=e),class:"status-updater__input",placeholder:"Describe the circumstance"},null,512)),[[B,E.value]]):u("",!0)])):u("",!0),K.value?(v(),l("div",Xn,[c(va,{modelValue:T.value,"onUpdate:modelValue":t[4]||(t[4]=e=>T.value=e),label:"Transferred to",required:""},null,8,["modelValue"])])):u("",!0),Q.value?(v(),l("div",Zn,[n("span",es,r("With_Gap_Foster"===w.value?"Gap foster":"Foster"),1),G.value?(v(),l(x,{key:1},[$.value?u("",!0):L((v(),l("select",{key:0,"onUpdate:modelValue":t[6]||(t[6]=e=>z.value=e),class:"status-updater__input native-select"},[t[15]||(t[15]=n("option",{value:null},"Selectâ¦",-1)),(v(!0),l(x,null,F(O.value,e=>(v(),l("option",{key:e.id,value:String(e.id)},r(V(e)),9,ls))),128))],512)),[[j,z.value]]),c(sa,{modelValue:$.value,"onUpdate:modelValue":t[7]||(t[7]=e=>$.value=e),class:"status-updater__guest"},null,8,["modelValue"])],64)):(v(),l("div",as,[n("span",ts,r(V(W.value)),1),n("button",{type:"button",class:"status-updater__change",onClick:t[5]||(t[5]=e=>M.value=!0)},"Change")]))])):u("",!0),ee.value?(v(),l("div",ns,[n("span",ss,[t[16]||(t[16]=A(" Is this foster assignment complete? ",-1)),null===q.value?(v(),l("span",os,"Required")):u("",!0)]),n("div",is,[c(Ma,{label:"Yes",size:"sm",selected:!0===q.value,onClick:t[8]||(t[8]=e=>q.value=!0)},null,8,["selected"]),c(Ma,{label:"No",size:"sm",selected:!1===q.value,onClick:t[9]||(t[9]=e=>q.value=!1)},null,8,["selected"])]),n("p",rs,r(k.value?"Yes returns the animal to the shelter. No keeps it with the foster until the outcome is recorded.":"Yes ends the placement and removes the foster. No keeps the assignment active."),1)])):u("",!0),ae.value?(v(),l("p",us,"The foster assignment will be marked complete.")):u("",!0),ie.value&&ue.value?(v(),f(Wl,{key:8,modelValue:ne.value,"onUpdate:modelValue":t[10]||(t[10]=e=>ne.value=e),class:"status-updater__group",label:se.value,hint:oe.value},null,8,["modelValue","label","hint"])):u("",!0),n("div",ds,[n("button",{type:"button",class:"button-sm-tertiary",disabled:e.saving,onClick:ce},"Cancel",8,cs),n("button",{type:"button",class:"button-sm-primary",disabled:!de.value||e.saving,onClick:Ae},[e.saving?(v(),f(_(I),{key:0,name:"crescent",class:"status-updater__spinner"})):u("",!0),A(" "+r(e.saving?"Savingâ¦":"Update status"),1)],8,ps)])],64)):(v(),l("div",Gn,[c(be,{status:g.value,pathway:e.pathway,"on-hold":e.onHold,size:"sm"},null,8,["status","pathway","on-hold"]),d(a.$slots,"outcome",{},void 0,!0),h.value&&e.pathwayNote?(v(),l("p",qn,r(e.pathwayNote),1)):u("",!0)]))],2),c(Ca,{"is-open":ve.value,title:"Correct final outcome",variant:"dialog",onDismiss:ye},{actions:y(()=>[n("button",{type:"button",class:"button-sm-tertiary",onClick:ye},"Cancel"),n("button",{type:"button",class:"button-sm-primary status-correction__confirm",disabled:!me.value.trim(),onClick:Se}," Correct outcome ",8,ms)]),default:y(()=>[n("p",vs,"This animal is currently marked "+r(ge.value)+". Correcting a final outcome requires a reason.",1),t[17]||(t[17]=n("label",{class:"status-correction__label",for:"final-outcome-correction-reason"},[A(" Reason "),n("span",{class:"status-updater__required"},"Required")],-1)),L(n("textarea",{id:"final-outcome-correction-reason","onUpdate:modelValue":t[11]||(t[11]=e=>me.value=e),class:"status-updater__input status-correction__input",rows:"4",placeholder:"What needs to be corrected?",required:""},null,512),[[B,me.value]])]),_:1},8,["is-open"])]))}}),[["__scopeId","data-v-3401222b"]]),_s=["disabled"],hs={class:"eyebrow msd__label"},ys={class:"msd__chips"},bs={key:0,class:"msd__chip msd__chip--more"},ws={key:1,class:"msd__placeholder"},ks={key:0,class:"msd__panel"},Ss={class:"msd__options"},As=["checked","onChange"],Cs={class:"msd__option-label"},xs={class:"msd__option"},Fs=["checked"],Ns=["placeholder"],Is="Other: ",Ds=m(e({__name:"MultiSelectDropdown",props:{label:{default:""},modelValue:{},options:{},open:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},saveState:{default:void 0},placeholder:{default:"None"},otherPlaceholder:{default:"Describeâ¦"},groupSiblingCount:{default:0},groupLabel:{default:"group"},groupLeftOut:{default:()=>[]},groupName:{default:null},groupCurrentName:{default:null}},emits:["update:open","save"],setup(e,{emit:s}){const o=e,d=P(()=>Dn({includedCount:o.groupSiblingCount+1,leftOut:o.groupLeftOut,groupName:o.groupName,groupLabel:o.groupLabel,currentName:o.groupCurrentName})),c=P(()=>Un(o.groupLeftOut)),m=s,g=P(()=>o.open),_=a(!1),h=P(()=>o.modelValue.slice(0,4)),y=P(()=>Math.max(0,o.modelValue.length-4)),b=a([]),w=a(!1),k=a("");t(g,e=>{e&&((()=>{b.value=[...o.modelValue];const e=o.modelValue.find(e=>e.startsWith(Is));w.value=void 0!==e,k.value=e?e.slice(7):""})(),_.value=!1)});const S=()=>{o.editable&&m("update:open",!g.value)},A=()=>b.value.filter(e=>!e.startsWith(Is)&&o.options.includes(e)),C=()=>{w.value=!w.value,w.value||(k.value="")},N=()=>m("update:open",!1),I=()=>{const e=[...A()];
2w.value&&k.value.trim()&&e.push("".concat(Is).concat(k.value.trim())),m("save",e,{applyToGroup:_.value&&o.groupSiblingCount>0}),m("update:open",!1)},D=e=>{g.value&&("Enter"===e.key?(e.preventDefault(),I()):"Escape"===e.key&&(e.preventDefault(),N()))};return t(g,e=>{e?window.addEventListener("keydown",D):window.removeEventListener("keydown",D)}),$(()=>window.removeEventListener("keydown",D)),(a,t)=>(v(),l("div",{class:i(["msd",{"msd--open":g.value}])},[n("button",{type:"button",class:"msd__row",disabled:!e.editable,onClick:S},[n("span",hs,r(e.label),1),n("span",ys,[e.modelValue.length?(v(),l(x,{key:0},[(v(!0),l(x,null,F(h.value,e=>(v(),l("span",{key:e,class:"msd__chip"},r(e),1))),128)),y.value>0?(v(),l("span",bs,"+"+r(y.value),1)):u("",!0)],64)):(v(),l("span",ws,r(e.placeholder),1))]),e.saveState?(v(),f(M,{key:0,state:e.saveState,class:"msd__saved"},null,8,["state"])):u("",!0),e.editable?(v(),f(p,{key:1,name:"chevron-down",size:"sm",color:"grey-300",class:i(["msd__caret",{"is-open":g.value}])},null,8,["class"])):u("",!0)],8,_s),g.value?(v(),l("div",ks,[n("div",Ss,[(v(!0),l(x,null,F(e.options,e=>(v(),l("label",{key:e,class:"msd__option"},[n("input",{type:"checkbox",checked:b.value.includes(e),onChange:a=>(e=>{const a=new Set(A());a.has(e)?a.delete(e):a.add(e),b.value=Array.from(a),w.value&&k.value.trim()&&b.value.push("".concat(Is).concat(k.value.trim()))})(e)},null,40,As),n("span",Cs,r(e),1)]))),128)),n("label",xs,[n("input",{type:"checkbox",checked:w.value,onChange:C},null,40,Fs),t[2]||(t[2]=n("span",{class:"msd__option-label"},"Other",-1))]),w.value?L((v(),l("input",{key:0,"onUpdate:modelValue":t[0]||(t[0]=e=>k.value=e),class:"msd__other",placeholder:e.otherPlaceholder},null,8,Ns)),[[B,k.value]]):u("",!0)]),e.groupSiblingCount>0?(v(),f(Wl,{key:0,modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=e=>_.value=e),class:"msd__group",label:d.value,hint:c.value},null,8,["modelValue","label","hint"])):u("",!0),n("div",{class:"msd__actions"},[n("button",{type:"button",class:"button-sm-tertiary",onClick:N},"Cancel"),n("button",{type:"button",class:"button-sm-primary msd__save",onClick:I},"Save")])])):u("",!0)],2))}}),[["__scopeId","data-v-ddfa9748"]]),Us={class:"needs-card"},Ps=m(e({__name:"AnimalNeedsCard",props:{species:{default:null},careRequirements:{default:()=>[]},healthConditions:{default:()=>[]},canEdit:{type:Boolean,default:!1},onSave:{type:Function,default:void 0},groupSiblingCount:{default:0},groupLabel:{default:"group"},groupLeftOut:{default:()=>[]},groupName:{default:null},groupCurrentName:{default:null}},emits:["save"],setup(e,{emit:t}){const s=e,o=t,i=P(()=>s.careRequirements||[]),r=P(()=>s.healthConditions||[]),u=P(()=>Na(s.species)),d=P(()=>Ia(s.species)),p=a(null),m=Zl(),g=Zl(),f=m.state,h=g.state,y=(e,a,t={})=>{const l="care"===e?{care_requirements:a}:{health_conditions:a},n=t.applyToGroup&&s.groupSiblingCount>0?{...l,apply_to_group:!0}:l;("care"===e?m.run:g.run)(()=>s.onSave?s.onSave(n):o("save",n))};return(a,t)=>(v(),l("div",Us,[t[6]||(t[6]=n("span",{class:"card-title needs-card__title"},"Update Care Needs",-1)),c(Ds,{modelValue:i.value,"onUpdate:modelValue":t[0]||(t[0]=e=>i.value=e),label:"Care",options:u.value,open:"care"===p.value,editable:e.canEdit,"save-state":_(f),"group-sibling-count":e.groupSiblingCount,"group-label":e.groupLabel,"group-left-out":e.groupLeftOut,"group-name":e.groupName,"group-current-name":e.groupCurrentName,placeholder:"None","other-placeholder":"Describe the care needed","onUpdate:open":t[1]||(t[1]=e=>p.value=e?"care":null),onSave:t[2]||(t[2]=(e,a)=>y("care",e,a))},null,8,["modelValue","options","open","editable","save-state","group-sibling-count","group-label","group-left-out","group-name","group-current-name"]),t[7]||(t[7]=n("div",{class:"needs-card__divider"},null,-1)),c(Ds,{modelValue:r.value,"onUpdate:modelValue":t[3]||(t[3]=e=>r.value=e),label:"Health",options:d.value,open:"health"===p.value,editable:e.canEdit,"save-state":_(h),"group-sibling-count":e.groupSiblingCount,"group-label":e.groupLabel,"group-left-out":e.groupLeftOut,"group-name":e.groupName,"group-current-name":e.groupCurrentName,placeholder:"None","other-placeholder":"Describe the condition","onUpdate:open":t[4]||(t[4]=e=>
2p.value=e?"health":null),onSave:t[5]||(t[5]=(e,a)=>y("health",e,a))},null,8,["modelValue","options","open","editable","save-state","group-sibling-count","group-label","group-left-out","group-name","group-current-name"])]))}}),[["__scopeId","data-v-1820c3bf"]]),Es={class:"modal-layout"},Ts={class:"modal-body"},Os={class:"modal-top"},Vs={class:"modal-description"},Rs={key:0,class:"group-notice"},Ls={class:"search-section"},Bs={class:"filter-options"},zs={class:"filter-pills"},Ms={class:"foster-selection"},js={key:0,class:"loading-fosters"},Ws={key:1,class:"no-fosters"},Gs={key:2,class:"foster-list"},qs=["aria-selected"],Hs={key:0,class:"form-section"},$s={key:1,class:"form-section"},Ys={class:"modal-footer"},Ks={key:0,class:"pickup-option"},Qs={class:"pickup-label"},Js={class:"actions"},Xs=m(e({__name:"ReassignModal",props:{isOpen:{type:Boolean},animalId:{},animalName:{},currentFoster:{},fosters:{},isLoadingFosters:{type:Boolean},isSubmitting:{type:Boolean},animalAlreadyPickedUp:{type:Boolean},animalCount:{default:1},groupDisplayName:{default:""},groupSiblingNames:{default:()=>[]}},emits:["update:isOpen","cancel","confirm"],setup(e,{emit:s}){const o=e,d=s,p=P(()=>{const e=o.groupSiblingNames;return 1===e.length?e[0]:2===e.length?"".concat(e[0]," and ").concat(e[1]):"".concat(e.slice(0,-1).join(", "),", and ").concat(e[e.length-1])}),m=a(""),g=a("all"),h=a(""),b=a(""),w=a(null),S=a(!1),C=()=>{h.value="",b.value="",w.value=null,m.value="",g.value="all",S.value=!1},N=P(()=>o.animalCount>1?"animals":"animal"),D=P(()=>o.animalAlreadyPickedUp?"The new foster already has the ".concat(N.value):"This foster already has the ".concat(N.value," (mark as picked up)")),U=P(()=>o.isSubmitting?"Processingâ¦":S.value?"Reassign & Mark Picked Up":"Reassign Foster"),E=P(()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().slice(0,10)}),T=ja({enabled:P(()=>o.isOpen),isSaving:P(()=>o.isSubmitting),snapshot:()=>({searchTerm:m.value,filterOption:g.value,selectedFosterId:h.value,reassignmentReason:b.value,expectedEndDate:w.value,markPickedUp:S.value}),onDiscard:C}),O=P(()=>{if(!o.fosters||!Array.isArray(o.fosters))return[];let e=Le(o.fosters).filter(e=>{var a;return e&&e.id!==(null==(a=o.currentFoster)?void 0:a.id)});if(m.value.trim()){const a=m.value.toLowerCase().trim(),t=a.replace(/\D/g,""),l=11===t.length&&t.startsWith("1")?t.slice(1):t;e=e.filter(e=>{if(!e)return!1;if("".concat(e.first_name||""," ").concat(e.last_name||"").toLowerCase().includes(a))return!0;if((e.email||"").toLowerCase().includes(a))return!0;if(l.length>0){if((e.phone||"").replace(/\D/g,"").includes(l))return!0}return!1})}switch(g.value){case"available":e=e.filter(e=>e&&Wa(e));break;case"interested":e=e.filter(e=>e&&e.showedInterest)}return e}),V=()=>{d("update:isOpen",!1)},R=()=>{d("cancel"),V(),C()},z=()=>{o.isSubmitting||T.requestClose(()=>{d("cancel"),V()})},M=e=>{h.value=h.value===e?"":e},j=()=>{h.value&&!o.isSubmitting&&d("confirm",{fosterId:h.value,reason:b.value.trim()||void 0,markPickedUp:S.value,expectedEndDate:w.value||void 0})};return t(()=>o.isOpen,e=>{e&&(C(),G(()=>T.resetDirty()))}),(a,t)=>(v(),f(ra,{"is-open":e.isOpen,title:"Reassign Foster","close-label":"Close","can-dismiss":_(T).canDismiss,onClose:R},{footer:y(()=>[n("div",Ys,[h.value?(v(),l("label",Ks,[c(_(Y),{modelValue:S.value,"onUpdate:modelValue":t[6]||(t[6]=e=>S.value=e),class:"pickup-checkbox"},null,8,["modelValue"]),n("span",Qs,r(D.value),1)])):u("",!0),n("div",Js,[c(_(k),{fill:"clear",class:"cancel-btn",disabled:e.isSubmitting,onClick:z},{default:y(()=>[...t[12]||(t[12]=[A(" Cancel ",-1)])]),_:1},8,["disabled"]),c(_(k),{class:"save-btn",disabled:!h.value||e.isSubmitting,onClick:j},{default:y(()=>[e.isSubmitting?(v(),f(_(I),{key:0,name:"crescent",class:"submit-spinner"})):u("",!0),n("span",null,r(U.value),1)]),_:1},8,["disabled"])])])]),default:y(()=>[n("div",Es,[n("div",Ts,[n("div",Os,[n("p",Vs,"Reassign "+r(e.animalName)+" to a different foster volunteer.",1),e.groupSiblingNames.length?(v(),l("div",Rs,r(e.animalName)+" is part of "+r(e.groupDisplayName)+". This reassigns "+r(e.animalName)+" only â "+r(p.value)+" may al
2so need reassigning. ",1)):u("",!0),n("div",Ls,[t[7]||(t[7]=n("h4",null,"Select New Foster",-1)),c(ea,{modelValue:m.value,"onUpdate:modelValue":t[0]||(t[0]=e=>m.value=e),placeholder:"Search volunteers...",clearable:!0},null,8,["modelValue"]),n("div",Bs,[n("div",zs,[c(Ma,{label:"All",selected:"all"===g.value,variant:"outlined",onClick:t[1]||(t[1]=e=>g.value="all")},null,8,["selected"]),c(Ma,{label:"Available",selected:"available"===g.value,variant:"outlined",onClick:t[2]||(t[2]=e=>g.value="available")},null,8,["selected"]),c(Ma,{label:"Showed Interest",selected:"interested"===g.value,variant:"outlined",onClick:t[3]||(t[3]=e=>g.value="interested")},null,8,["selected"])])])])]),n("div",Ms,[e.isLoadingFosters&&0===O.value.length?(v(),l("div",js,[...t[8]||(t[8]=[n("p",null,"Loading volunteers...",-1)])])):0===O.value.length?(v(),l("div",Ws,[...t[9]||(t[9]=[n("p",null,"No volunteers found matching your criteria.",-1)])])):u("",!0),O.value.length>0?(v(),l("ul",Gs,[(v(!0),l(x,null,F(O.value,e=>(v(),l("li",{key:e.id,role:"option","aria-selected":h.value===e.id,class:i({"foster-list-item":!0,selecting:h.value===e.id})},[c(oa,{foster:e,"is-selected":h.value===e.id,onSelect:M},null,8,["foster","is-selected"])],10,qs))),128))])):u("",!0)]),h.value?(v(),l("div",Hs,[c(ua,{modelValue:w.value,"onUpdate:modelValue":t[4]||(t[4]=e=>w.value=e),"datetime-id":"reassign-expected-end-date",min:E.value},null,8,["modelValue","min"])])):u("",!0),h.value?(v(),l("div",$s,[t[10]||(t[10]=n("div",{class:"form-label-row"},[n("h4",{class:"form-label"},"Reason for Reassignment"),n("span",{class:"internal-records-badge"},"For Internal Records")],-1)),L(n("textarea",{"onUpdate:modelValue":t[5]||(t[5]=e=>b.value=e),rows:"2",class:"reassignment-textarea",placeholder:"Enter comments..."},null,512),[[B,b.value]]),t[11]||(t[11]=n("p",{class:"internal-records-copy"},"This stays on the assignment record and will not appear in Care Notes.",-1))])):u("",!0)])])]),_:1},8,["is-open","can-dismiss"]))}}),[["__scopeId","data-v-2eb78265"]]),Zs={class:"edit-date-modal"},eo={class:"edit-date-modal__header"},ao={class:"edit-date-modal__body"},to={class:"edit-date-modal__actions"},lo=["disabled"],no=["disabled"],so=m(e({__name:"EditExpectedEndDateModal",props:{isOpen:{type:Boolean},animalName:{},expectedEndDate:{default:null},isSaving:{type:Boolean,default:!1},groupSiblingCount:{default:0},groupLeftOut:{default:()=>[]},groupName:{default:null}},emits:["update:isOpen","save"],setup(e,{emit:l}){const s=e,o=P(()=>Dn({includedCount:s.groupSiblingCount+1,leftOut:s.groupLeftOut,groupName:s.groupName,groupLabel:"group",allScope:"with this foster"})),i=P(()=>Un(s.groupLeftOut)),d=l,m=a(null),g=a(!1),b=P(()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().slice(0,10)});t(()=>s.isOpen,e=>{e&&(m.value=s.expectedEndDate||null,g.value=!1)},{immediate:!0});const w=()=>{s.isSaving||d("update:isOpen",!1)},k=()=>d("save",m.value,{applyToGroup:g.value&&s.groupSiblingCount>0});return(a,t)=>(v(),f(_(h),{"is-open":e.isOpen,class:"edit-expected-end-date-modal",onDidDismiss:w},{default:y(()=>[n("div",Zs,[n("div",eo,[t[2]||(t[2]=n("h2",null,"Edit expected return date",-1)),n("button",{type:"button","aria-label":"Close",onClick:w},[c(p,{name:"close"})])]),n("div",ao,[n("p",null,[t[3]||(t[3]=A(" Update the planned return date for ",-1)),n("strong",null,r(e.animalName),1),t[4]||(t[4]=A(". ",-1))]),c(ua,{modelValue:m.value,"onUpdate:modelValue":t[0]||(t[0]=e=>m.value=e),"datetime-id":"edit-assignment-expected-end-date",min:b.value},null,8,["modelValue","min"]),e.groupSiblingCount>0?(v(),f(Wl,{key:0,modelValue:g.value,"onUpdate:modelValue":t[1]||(t[1]=e=>g.value=e),class:"edit-date-modal__group",label:o.value,hint:i.value},null,8,["modelValue","label","hint"])):u("",!0),n("div",to,[n("button",{type:"button",class:"edit-date-modal__cancel",disabled:e.isSaving,onClick:w},"Cancel",8,lo),n("button",{type:"button",class:"edit-date-modal__save",disabled:e.isSaving,onClick:k},r(e.isSaving?"Savingâ¦":"Save"),9,no)])])])]),_:1},8,["is-open"]))}}),[["__scopeId","data-v-b3563091"]]),oo={class:"modal-content"},io={class:"confirmation-message"},ro=m(e({__name:"FosterApprovalConfirmModal",props:{isOpen:{type:Boolean},fosterName:{},animalName:{}},emits:["update:isOpen"],setup(e,{emit:t}){const l=t,s=a(null);K(async()=>{try{const e=await fetch("/assets/animations/celebration checkmark.json");s.value=await e.json()}catch(e){}});const o=()=>{l("update:isOpen",!1)};return(a,t)=>(v(),f(_(h),{"is-open":e.isOpen,onDidDismiss:t[0]||(t[0]=e=>a.$emit("update:isOpen",!1))},{default:y(()=>[c(_(C),null,{default:y(()=>[c(_(b),null,{default:y(()=>[c(_(S),null,{default:y(()=>[...t[1]||(t[1]=[A("Foster Approved",-1)])]),_:1}),c(_(w),{slot:"end"},{default:y(()=>[c(_(k),{fill:"clear",onClick:o},{default:y(()=>[...t[2]||(t[2]=[A(" Close ",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),c(_(D),{class:"ion-padding"},{default:y(()=>[n("div",oo,[s.value?(v(),f(_(qa),{key:0,animationData:s.value,height:120,width:120,loop:!1,speed:.8,autoPlay:!0,class:"success-animation"},null,8,["animationData"])):u("",!0),n("h5",io,"We've notified "+r(e.fosterName)+" that they've been chosen for "+r(e.animalName)+".",1),t[4]||(t[4]=n("p",{class:"helper-text instruction-message"},"They'll be guided to confirm a pickup time.",-1)),c(_(k),{class:"button-md-primary close-button",onClick:o},{default:y(()=>[...t[3]||(t[3]=[A(" Got it ",-1)])]),_:1})])]),_:1})]),_:1},8,["is-open"]))}}),[["__scopeId","data-v-cdefae8a"]]),uo="/assets/icons/ionicons/ellipsis-vertical.svg",co={class:"fpc"},po={class:"fpc__inner"},vo={class:"fpc__header"},mo={key:0,class:"fpc__menu-wrap"},go={key:0,class:"fpc__user-section"},fo={class:"fpc__user-row"},_o=["src","alt"],ho={class:"fpc__user-info"},yo={class:"fpc__name"},bo={key:0,class:"fpc__menu-wrap"},wo={key:0,class:"fpc__expected-return"},ko={class:"fpc__row fpc__row--center"},So={class:"fpc__muted"},Ao={key:0,class:"fpc__row fpc__row--center"},Co={class:"fpc__responses-left"},xo={class:"fpc__responses-label"},Fo={key:0,class:"fpc__dot","aria-hidden":"true"},No={key:3,class:"fpc__row fpc__responses fpc__responses--static"},Io={class:"fpc__responses-left"},Do={class:"fpc__responses-label"},Uo=m(e({__name:"FosterPlacementCard",props:{fosterName:{default:null},fosterAvatarUrl:{default:null},fosterId:{default:null},subline:{default:""},sublineTone:{default:"muted"},expectedEndLabel:{default:""},statusText:{default:""},statusTone:{default:"warning"},responseCount:{default:0},responsesUnreviewed:{type:Boolean,default:!1},pickedUp:{type:Boolean,default:!1},emphasizeSendPlea:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},fosterReadonly:{type:Boolean,default:!1}},emits:["send-plea","assign","mark-picked-up","open-responses","message","call","edit-expected-end-date","reassign","unassign","view-foster"],setup(e,{emit:t}){const s=t,d=a(!1),p=a(!1),m=a(!1),g=e=>{switch(p.value=!1,e){case"send-plea":s("send-plea");break;case"assign":s("assign");break;case"mark-picked-up":s("mark-picked-up")}},_=e=>{switch(m.value=!1,e){case"message":s("message");break;case"call":s("call");break;case"edit-expected-end-date":s("edit-expected-end-date");break;case"reassign":s("reassign");break;case"unassign":s("unassign")}};return(a,t)=>(v(),l("div",co,[n("div",po,[n("div",vo,[t[16]||(t[16]=n("span",{class:"fpc__title"},"Foster Placement",-1)),e.readonly?u("",!0):(v(),l("div",mo,[n("button",{class:i(["fpc__dots",{"fpc__dots--glow":e.emphasizeSendPlea}]),type:"button","aria-label":"Placement actions",onClick:t[0]||(t[0]=o(e=>p.value=!p.value,["stop"]))},[...t[15]||(t[15]=[n("img",{src:uo,alt:"",class:"fpc__dots-icon fpc__dots-icon--dark"},null,-1)])],2),c(da,{open:p.value,"onUpdate:open":t[4]||(t[4]=e=>p.value=e),align:"right"},{default:y(()=>[n("button",{type:"button",class:"fpc__menu-item",onClick:t[1]||(t[1]=e=>g("send-plea"))},"Send a plea"),n("button",{type:"button",class:"fpc__menu-item",onClick:t[2]||(t[2]=e=>g("assign"))}
2,"Assign a foster"),!e.fosterName||e.fosterReadonly||e.pickedUp?u("",!0):(v(),l("button",{key:0,type:"button",class:"fpc__menu-item",onClick:t[3]||(t[3]=e=>g("mark-picked-up"))}," Mark as Picked Up "))]),_:1},8,["open"])]))]),e.fosterName?(v(),l("div",go,[n("div",fo,[(v(),f(Q(e.fosterId?"button":"div"),{type:e.fosterId?"button":void 0,class:i(["fpc__identity",{"fpc__identity--link":e.fosterId}]),"aria-label":e.fosterId?"View ".concat(e.fosterName,"'s profile"):void 0,onClick:t[6]||(t[6]=o(a=>e.fosterId&&s("view-foster"),["stop"]))},{default:y(()=>[e.fosterAvatarUrl&&!d.value?(v(),l("img",{key:0,src:e.fosterAvatarUrl,alt:e.fosterName,class:"fpc__avatar",onError:t[5]||(t[5]=e=>d.value=!0)},null,40,_o)):(v(),f(aa,{key:1,class:"fpc__avatar",name:e.fosterName},null,8,["name"])),n("div",ho,[n("span",yo,r(e.fosterName),1),e.subline?(v(),l("span",{key:0,class:i(["fpc__subline",{"fpc__subline--success":"success"===e.sublineTone}])},r(e.subline),3)):u("",!0)])]),_:1},8,["type","class","aria-label"])),e.readonly||e.fosterReadonly?u("",!0):(v(),l("div",bo,[n("button",{class:"fpc__dots",type:"button","aria-label":"Foster actions",onClick:t[7]||(t[7]=o(e=>m.value=!m.value,["stop"]))},[...t[17]||(t[17]=[n("img",{src:uo,alt:"",class:"fpc__dots-icon"},null,-1)])]),c(da,{open:m.value,"onUpdate:open":t[13]||(t[13]=e=>m.value=e),align:"right"},{default:y(()=>[n("button",{type:"button",class:"fpc__menu-item",onClick:t[8]||(t[8]=e=>_("message"))},"Message"),n("button",{type:"button",class:"fpc__menu-item",onClick:t[9]||(t[9]=e=>_("call"))},"Call"),n("button",{type:"button",class:"fpc__menu-item",onClick:t[10]||(t[10]=e=>_("edit-expected-end-date"))},"Edit expected return date"),n("button",{type:"button",class:"fpc__menu-item",onClick:t[11]||(t[11]=e=>_("reassign"))},"Reassign animal"),n("button",{type:"button",class:"fpc__menu-item",onClick:t[12]||(t[12]=e=>_("unassign"))},"Unassign")]),_:1},8,["open"])]))]),e.expectedEndLabel?(v(),l("p",wo,r(e.expectedEndLabel),1)):u("",!0),e.statusText?(v(),l("p",{key:1,class:i(["fpc__status","fpc__status--".concat(e.statusTone)])},r(e.statusText),3)):u("",!0)])):(v(),l(x,{key:1},[n("div",ko,[n("span",So,r(e.readonly?"No foster placement recorded":"No foster placement"),1)]),e.responseCount||e.readonly?u("",!0):(v(),l("div",Ao,[...t[18]||(t[18]=[n("span",{class:"fpc__muted"},"Awaiting foster responses",-1)])]))],64)),e.responseCount>0&&!e.readonly?(v(),l("button",{key:2,type:"button",class:i(["fpc__row fpc__responses",{"fpc__responses--glimmer":!e.fosterName}]),onClick:t[14]||(t[14]=e=>a.$emit("open-responses"))},[n("span",Co,[n("span",xo,"Foster responses ("+r(e.responseCount)+")",1),e.responsesUnreviewed?(v(),l("span",Fo)):u("",!0)]),t[19]||(t[19]=n("img",{src:"/assets/icons/ionicons/chevron-forward-outline.svg",alt:"",class:"fpc__chevron"},null,-1))],2)):e.responseCount>0?(v(),l("div",No,[n("span",Io,[n("span",Do,"Foster responses ("+r(e.responseCount)+")",1)])])):u("",!0)])]))}}),[["__scopeId","data-v-27a43e3e"]]);function Po(e){var a,t,l,n;const s=null!=(a=e.assignment)?a:null,o=null!=(l=null!=(t=e.fosterName)?t:null==s?void 0:s.foster_name)?l:null,i=Boolean(e.pickupDate)||Boolean(e.pickedUp),r=Boolean(e.hasBooking);return s?(u=s.type,"gap_foster"===String(u||"").trim().toLowerCase()?{status:Se.With_Gap_Foster,possession:i?"foster":"shelter",pickedUp:i,hasBooking:r,fosterName:o,relationshipLabel:"Current gap foster"}:i?{status:Se.With_Foster,possession:"foster",pickedUp:!0,hasBooking:r,fosterName:o,relationshipLabel:"Currently with"}:r?{status:Se.Pickup_Pending,possession:"shelter",pickedUp:!1,hasBooking:!0,fosterName:o,relationshipLabel:"Approved foster"}:{status:Se.Pending_Confirmation,possession:"shelter",pickedUp:!1,hasBooking:!1,fosterName:o,relationshipLabel:"Approved foster"}):{status:null!=(n=e.baseStatus)?n:Se.At_Shelter,possession:"shelter",pickedUp:!1,hasBooking:!1,fosterName:null,relationshipLabel:"Foster"};var u}const Eo={class:"activity-status"},To=m(e({__name:"AnimalActivityStatus",props:{pleaData:{default:null},responses:{default:()=>[]},assignmentHistory:{default:()=>[]},assignmentData:{default:null},declineData:{default:null},assignedFoster:{default:null},pickupData:{default:null},pickupAppointment:{default:null},showPickupButton:{type:Boolean,default:!0},canAssign:{type:Boolean,default:!1},animalName:{default:"this animal"},animal:{default:null},animalNeeds:{default:()=>[]}
2,groupAssignmentCount:{default:0},groupAssignmentNames:{default:()=>[]},groupAnimalCount:{default:0}},emits:["send-plea","open-responses","mark-picked-up","reassign","unassign","foster-message","foster-call","edit-expected-end-date","assign-directly","view-foster"],setup(e,{emit:a}){const t=e,n=a,s=P(()=>!Re(t.animal||{})),o=P(()=>{var e;return Ba(null==(e=t.animal)?void 0:e.status)}),i=P(()=>{var e,a,l,n,s,o;return Po({assignment:t.assignmentData?{foster_name:t.assignmentData.foster_name}:null,pickupDate:null!=(a=null==(e=t.pickupData)?void 0:e.pickup_date)?a:null,pickedUp:Boolean(null==(l=t.animal)?void 0:l.picked_up_by)||["With_Foster","With_Gap_Foster"].includes(String((null==(n=t.animal)?void 0:n.status)||"")),fosterName:t.assignedFoster?R(t.assignedFoster):null!=(o=null==(s=t.assignmentData)?void 0:s.foster_name)?o:null})}),r=e=>{const a=new Date(e).getTime();return Number.isNaN(a)?0:a},u={interested:3,maybe:2,not_interested:0,already_committed:0},d=e=>{var a;const l=null!=(a=u[e.response_type])?a:0;let n=l;l>0&&("group"===e.interest_type||"litter"===e.interest_type||e.group_name||e.litter_name)&&(n+=5);const s=t.animalNeeds||[];if(s.length>0){const a=new Set(s),t=new Set(Te(e.foster));for(const e of a)t.has(e)&&(n+=2);const l=[...a].some(e=>e.includes(".medical.")),o=e.foster.medical_comfort||[];l&&o.length>0&&(n+=1),l&&e.foster.comfortable_giving_meds&&(n+=1)}return n},p=P(()=>{var e;const a=new Map;for(const l of t.responses){const t=(null==(e=null==l?void 0:l.foster)?void 0:e.id)?String(l.foster.id):"unknown-".concat(l.id),n=a.get(t);(!n||r(l.created_at)>r(n.created_at))&&a.set(t,l)}return Array.from(a.values()).sort((e,a)=>d(a)-d(e))}),m=P(()=>(t.assignmentHistory||[]).find(e=>{const a=String(e.status||"").toLowerCase();return"active"===a||"on_hold"===a})||null),g=P(()=>{var e,a,t,l;return((null==(a=null==(e=m.value)?void 0:e.creator)?void 0:a.name)||(null==(l=null==(t=m.value)?void 0:t.User)?void 0:l.name)||"").trim()}),f=P(()=>{const e=g.value?"Approved by ".concat(g.value):"Approved";return h.value?"".concat(e," · ").concat(h.value):e}),_=P(()=>w.value?"Picked up ".concat(w.value):"Picked up"),h=P(()=>{var e,a,l,n;const s=(null==(e=m.value)?void 0:e.start_date)||(null==(a=m.value)?void 0:a.startDate)||(null==(l=m.value)?void 0:l.createdAt)||(null==(n=t.assignmentData)?void 0:n.assigned_at);if(!s)return"";const o=xe(s);return"Invalid date"===o?"":o}),y=P(()=>{var e,a,l;return(null==(e=m.value)?void 0:e.expected_end_date)||(null==(a=m.value)?void 0:a.expectedEndDate)||(null==(l=t.assignmentData)?void 0:l.expected_end_date)||null}),b=P(()=>{if(!y.value)return"";const e=(e=>{const a=e.match(/^(\d{4})-(\d{2})-(\d{2})/);if(a){const[,e,t,l]=a,n=new Date(Number(e),Number(t)-1,Number(l));if(n.getFullYear()===Number(e)&&n.getMonth()===Number(t)-1&&n.getDate()===Number(l))return Ie(n)}const t=Ie(e);return"Invalid date"===t?"":t})(y.value);return e?"Expected back ".concat(e):""}),w=P(()=>{var e;if(!(null==(e=t.pickupData)?void 0:e.pickup_date))return"";const a=xe(t.pickupData.pickup_date);return"Invalid date"===a?"":a}),k=P(()=>{var e,a;return t.assignmentData||t.pickupData?t.assignedFoster?R(t.assignedFoster):null!=(a=null==(e=t.assignmentData)?void 0:e.foster_name)?a:null:null}),S=P(()=>{var e,a;return null!=(a=null==(e=t.assignedFoster)?void 0:e.photo_url)?a:null}),A=P(()=>t.pickupData?_.value:t.assignmentData?f.value:""),C=P(()=>t.pickupData?"success":"muted"),x=P(()=>{var e;if(t.pickupData)return{text:"",tone:"warning"};const a=i.value.status;if("Pending_Confirmation"===a)return{text:"Waiting for foster to book pickup",tone:"warning"};if("Pickup_Pending"===a){const a=null==(e=t.pickupAppointment)?void 0:e.datetime;if(a){const e=new Date(a).getTime();if(!Number.isNaN(e))return e<Date.now()?{text:"Pickup overdue · ".concat(Fe(a)),tone:"danger"}:{text:"Pickup booked for ".concat(Ne(a)),tone:"warning"}}return{text:"Pickup booked",tone:"warning"}}return{text:"",tone:"warning"}}),F=P(()=>{var e,a,l;return!(t.assignmentData||t.pickupData||(null==(e=t.pleaData)?void 0:e.sent_date)||(null==(a=t.animal)?void 0:a.on_hold)||!1===(null==(l=t.animal)?void 0:l.visibility))}),N=P(()=>p.value.length),I=P(()=>!o.value&&!t.assignmentData&&!t.pickupData),D=P(()=>{const e=(t.assignmentHistory||[]).filter(e=>e.foster||e.foster_id||e.foster_name),a=e.filter(e=>"completed"===String(e.status||"").toLowerCase());return(a.length>0?a:e).sort((e,a)=>new Date(a.end_date||a.endDate||a.start_date||a.startDate||a.createdAt||0).getTime()-new Date(e.end_date||e.endDate||e.start_date||e.startDate||e.createdAt||0).getTime())[0]||null}),U=P(()=>{const e=D.value;if(!e)return null;const a=e.foster;return a?a.name||"".concat(a.first_name||""," ").concat(a.last_name||"").trim()||null:e.foster_name||null}),E=P(()=>{var e,a,t;return null!=(t=null==(a=null==(e=D.value)?void 0:e.foster)?void 0:a.photo_url)?t:null}),T=P(()=>{var e;const a=D.value;if(!a)return"";const l=a.end_date||a.endDate||(null==(e=t.animal)?void 0:e.foster_assignment_completed_at),n=l?Ie(l):"";return n?"Assignment completed ".concat(n):"Assignment completed"}),O=P(()=>o.value||s.value&&!t.assignmentData&&!t.pickupData),V=P(()=>O.value?U.value:k.value),L=P(()=>O.value?E.value:S.value),B=P(()=>{var e,a,t,l,n;return null!=(n=null!=(l=null==(e=D.value)?void 0:e.foster_id)?l:null==(t=null==(a=D.value)?void 0:a.foster)?void 0:t.id)?n:null}),z=P(()=>{var e,a,l,n;return null!=(n=null!=(l=null==(e=t.assignedFoster)?void 0:e.id)?l:null==(a=t.assignmentData)?void 0:a.foster_id)?n:null}),M=P(()=>O.value?B.value:z.value),j=P(()=>O.value?T.value:A.value),W=P(()=>O.value?"muted":C.value),G=P(()=>O.value?"":x.value.text),q=P(()=>O.value?"":b.value),H=e=>{var a,l,s,o;const i=String(null!=(o=null!=(s=null==(a=t.assignedFoster)?void 0:a.id)?s:null==(l=t.assignmentData)?void 0:l.foster_id)?o:"");n("message"===e?"foster-message":"foster-call",i)};return(a,t)=>{var s;return v(),l("div",Eo,[c(Uo,{readonly:o.value||(null==(s=e.animal)?void 0:s.on_hold),"foster-readonly":O.value,"foster-name":V.value,"foster-avatar-url":L.value,"foster-id":M.value,subline:j.value,"subline-tone":W.value,"expected-end-label":q.value,"status-text":G.value,"status-tone":x.value.tone,"response-count":N.value,"responses-unreviewed":I.value,"picked-up":!!e.pickupData,"emphasize-send-plea":F.value,onSendPlea:t[0]||(t[0]=e=>n("send-plea")),onAssign:t[1]||(t[1]=e=>n("assign-directly")),onMarkPickedUp:t[2]||(t[2]=e=>n("mark-picked-up")),onOpenResponses:t[3]||(t[3]=e=>n("open-responses")),onMessage:t[4]||(t[4]=e=>
2H("message")),onCall:t[5]||(t[5]=e=>H("call")),onEditExpectedEndDate:t[6]||(t[6]=e=>n("edit-expected-end-date")),onReassign:t[7]||(t[7]=e=>n("reassign")),onUnassign:t[8]||(t[8]=e=>n("unassign")),onViewFoster:t[9]||(t[9]=e=>M.value&&n("view-foster",String(M.value)))},null,8,["readonly","foster-readonly","foster-name","foster-avatar-url","foster-id","subline","subline-tone","expected-end-label","status-text","status-tone","response-count","responses-unreviewed","picked-up","emphasize-send-plea"])])}}}),[["__scopeId","data-v-081b57e6"]]),Oo={class:"tab-pane"},Vo=m(e({__name:"AnimalFosterActivityTab",props:{animalData:{},animalPlea:{},animalAssignment:{},assignmentHistory:{},latestDeclineInfo:{},fosterResponses:{},pickupAppointment:{},groupContext:{},mappedAssignedFoster:{},effectiveAnimalStatus:{},showActionButtons:{type:Boolean},animalNeeds:{},groupAssignmentCount:{},groupAssignmentNames:{}},emits:["send-plea","resend-plea","open-responses","assign-directly","unassign","foster-message","foster-call","view-foster","edit-expected-end-date","mark-as-picked-up","assign-from-timeline","reassign-from-timeline","contact-foster-from-timeline","group-action-from-timeline"],setup(e,{emit:a}){const t=e,n=a,s=P(()=>{var e,a;if("With_Foster"!==t.effectiveAnimalStatus&&"With_Gap_Foster"!==t.effectiveAnimalStatus)return null;const l=null==(a=null==(e=t.animalData)?void 0:e.fosterActivity)?void 0:a.pickup_date;return l?{pickup_date:l}:null}),o=()=>{n("reassign-from-timeline",{})};return(a,t)=>{var n,i,r,u,d,p,m,g,f;return v(),l("div",Oo,[c(To,{"plea-data":e.animalPlea,responses:e.fosterResponses||[],"assignment-history":e.assignmentHistory||[],"assignment-data":e.animalAssignment?{foster_name:(null==(n=e.mappedAssignedFoster)?void 0:n.first_name)&&(null==(i=e.mappedAssignedFoster)?void 0:i.last_name)?"".concat(e.mappedAssignedFoster.first_name," ").concat(e.mappedAssignedFoster.last_name):(null==(r=e.animalAssignment)?void 0:r.foster_name)||"Unknown",assigned_at:null==(u=e.animalAssignment)?void 0:u.assigned_at,expected_end_date:(null==(d=e.animalAssignment)?void 0:d.expected_end_date)||null,foster_id:(null==(p=e.animalAssignment)?void 0:p.foster_id)||(null==(m=e.mappedAssignedFoster)?void 0:m.id)}:null,"assigned-foster":e.mappedAssignedFoster,"pickup-appointment":e.pickupAppointment,"decline-data":e.latestDeclineInfo,"pickup-data":s.value,"show-pickup-button":"Pickup_Pending"===e.effectiveAnimalStatus,"can-assign":e.showActionButtons,"animal-name":null==(g=e.animalData)?void 0:g.name,animal:e.animalData,"animal-needs":e.animalNeeds,"group-assignment-count":e.groupAssignmentCount,"group-assignment-names":e.groupAssignmentNames,"group-animal-count":(null==(f=e.groupContext)?void 0:f.count)||0,onSendPlea:t[0]||(t[0]=e=>a.$emit("send-plea")),onMarkPickedUp:t[1]||(t[1]=e=>a.$emit("mark-as-picked-up")),onReassign:o,onUnassign:t[2]||(t[2]=e=>a.$emit("unassign")),onOpenResponses:t[3]||(t[3]=e=>a.$emit("open-responses")),onAssignDirectly:t[4]||(t[4]=e=>a.$emit("assign-directly")),onFosterMessage:t[5]||(t[5]=e=>a.$emit("foster-message",e)),onFosterCall:t[6]||(t[6]=e=>a.$emit("foster-call",e)),onViewFoster:t[7]||(t[7]=e=>a.$emit("view-foster",e)),onEditExpectedEndDate:t[8]||(t[8]=e=>a.$emit("edit-expected-end-date"))},null,8,["plea-data","responses","assignment-history","assignment-data","assigned-foster","pickup-appointment","decline-data","pickup-data","show-pickup-button","can-assign","animal-name","animal","animal-needs","group-assignment-count","group-assignment-names","group-animal-count"])])}}}),[["__scopeId","data-v-753b78c7"]]);var Ro,Lo,Bo,zo;(Lo=Ro||(Ro={})).Heavy="HEAVY",Lo.Medium="MEDIUM",Lo.Light="LIGHT",(zo=Bo||(Bo={})).Success="SUCCESS",zo.Warning="WARNING",zo.Error="ERROR";const Mo=J("Haptics",{web:()=>V(()=>import("./web-BqS-0BDP.js"),__vite__mapDeps([3,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101])).then(e=>new e.HapticsWeb)}),jo={class:"note-section"},Wo={class:"media-section"},Go=["accept"],qo=["disabled"],Ho={key:0,class:"file-previews"},$o=["src"],Yo=["src"],Ko=["disabled","onClick"],Qo={key:1,class:"status-text"},Jo={key:2,class:"error-text"},Xo=["disabled"],Zo=["disabled"],ei=m(e({__name:"AddHealthNotesModal",props:{isOpen:{type:Boolean},animalId:{},animalName:{},userRole:{},currentUserId:{}},emits:["update:isOpen","note-added"],setup(e,{emit:t}){const s=e,i=t,d=a(""),c=a([]),p=a(null),m=a(""),g=a(!1),h=a(!1),b=P(()=>d.value.trim().length>0||c.value.length>0),w=async(e,a)=>{const t=await X.create({message:e,duration:"danger"===a?3e3:2500,position:"top",color:a});await t.present()},k=e=>
2{e.forEach(e=>{URL.revokeObjectURL(e.previewUrl)})},S=()=>{k(c.value),d.value="",c.value=[],m.value="",g.value=!1,h.value=!1,p.value&&(p.value.value="")},A=()=>{var e;g.value||h.value||null==(e=p.value)||e.click()},C=e=>e.type.startsWith("video/")||"video"===Qa(e),N=async e=>{const a=e.target;if(!a.files)return;m.value="";const t=Array.from(a.files),l=c.value.filter(e=>C(e.file)).length;let n=0;const s=[];g.value=!0;try{for(const e of t){if("video"===Qa(e)){if(l+n>=1)throw new Error("Only one MP4 video can be uploaded per animal.");n+=1}const a=await Ja(e);s.push(a)}s.length>0&&(c.value=[...c.value,...s.map(e=>({file:e.file,previewUrl:URL.createObjectURL(e.file),media:e}))])}catch(o){m.value=o instanceof Error?o.message:"Failed to process selected media."}finally{g.value=!1,a.value=""}};$(()=>{k(c.value)});const I=async()=>{var e,a;if(!b.value||g.value||h.value)return;h.value=!0;let t=!1;try{const{default:o}=await V(async()=>{const{default:e}=await import("./healthNotes-BhiJMfr0.js").then(e=>e.c);return{default:e}},__vite__mapDeps([38,1,2])),r=d.value.trim(),u=await o.createHealthNote(s.animalId,{note_text:r||(l=c.value.length,l<=0?"":1===l?"Shared a care update photo.":"Shared ".concat(l," care update photos."))||void 0,note_type:"general"});let p=[];const v=void 0!==(null==u?void 0:u.id)&&null!==(null==u?void 0:u.id)?String(u.id):"";if(c.value.length>0)if(v)try{p=await(async e=>{const a=s.currentUserId&&!Number.isNaN(Number(s.currentUserId))?Number(s.currentUserId):void 0,t=[],l=[];for(const n of c.value){const o=n.file,i=n.media,r="".concat(s.animalId,"_").concat(Date.now(),"_").concat(i.file.name),u="animals/".concat(r),d=await Ya(i.file,r,"animals",void 0,{contentType:i.mimeType}),c=Xa(i,["care-update","care-update-animal:".concat(s.animalId),"".concat("care-update-note:").concat(e)]),p=await $a.createFile({type:i.mimeType,name:o.name,firebaseStorageName:r,filePath:u,size:i.optimizedSize,url:d,createdBy:a,tags:c});t.push(p.id),l.push({id:p.id,url:p.url||d,name:p.name||o.name,type:p.type||i.mimeType,tags:p.tags||c})}return t.length>0&&await $a.attachFilesToAnimal(s.animalId,t),l})(v)}catch(n){t=!0,T.error("Error uploading health note files:",n)}else t=!0,T.error("Health note created without an ID; skipping file upload",{animalId:s.animalId});const m={id:u.id,text:u.note_text,date:new Date(u.createdAt||u.created_at||Date.now()),author:u.author_name||(null==(e=u.author)?void 0:e.name)||"System",authorAvatar:u.author_avatar||void 0,type:u.note_type,authorRole:u.author_role||(s.userRole?s.userRole.charAt(0).toUpperCase()+s.userRole.slice(1):null),authorId:(null==(a=u.author)?void 0:a.id)||u.author_id||s.currentUserId||null,updatedAt:u.updatedAt||u.updated_at,photos:[...Array.isArray(u.photos)?u.photos:[],...p]};i("note-added",m),t&&await w("Note saved, but one or more files failed to upload.","warning"),S(),i("update:isOpen",!1)}catch(o){T.error("Error adding health note:",o),await w("Failed to add note. Please try again.","danger")}finally{h.value=!1}var l},D=()=>{h.value||(S(),i("update:isOpen",!1))};return(a,t)=>(v(),f(Ca,{"is-open":e.isOpen,title:"Add Note",variant:"dialog","can-dismiss":!h.value,onDismiss:D},{actions:y(()=>[n("button",{type:"button",class:"button-sm-tertiary",disabled:h.value,onClick:D},"Cancel",8,Xo),n("button",{type:"button",class:"button-sm-primary",disabled:!b.value||g.value||h.value,onClick:I},r(h.value?"Saving...":"Add Note"),9,Zo)]),default:y(()=>[n("form",{id:"add-health-note-form",onSubmit:o(I,["prevent"]),class:"form-content"},[n("div",jo,[t[1]||(t[1]=n("label",null,"Note",-1)),L(n("textarea",{"onUpdate:modelValue":t[0]||(t[0]=e=>d.value=e),placeholder:"Enter your note...",class:"note-textarea"},null,512),[[B,d.value]])]),n("div",Wo,[n("input",{ref_key:"fileInput",ref:p,type:"file",accept:_(Ka),multiple:"",class:"hidden-file-input",onChange:N},null,40,Go),n("button",{type:"button",class:"photo-btn",disabled:g.value||h.value,onClick:A},[...t[2]||(t[2]=[n("img",{src:Ha,alt:"Add photo",class:"camera-icon"},null,-1)])],8,qo),c.value.length>0?(v(),l("div",Ho,[(v(!0),l(x,null,F(c.value,(e,a)=>(v(),l("div",{key:"".concat(e.file.name,"-").concat(e.file.size,"-").concat(a),class:"file-preview"},[C(e.file)?(v(),l("video",{key:0,src:e.previewUrl,class:"file-preview-media",muted:"",controls:"",playsinline:""},null,8,$o)):(v(),l("img",{key:1,src:e.previewUrl,alt:"Selected file preview",class:"file-preview-media"},null,8,Yo)),n("button",{type:"button",class:"remove-file-button","aria-label":"Remove file",disabled:h.value,onClick:e=>(e=>{const a=c.value[e];
2a&&URL.revokeObjectURL(a.previewUrl),c.value=c.value.filter((a,t)=>t!==e)})(a)},"Ã",8,Ko)]))),128))])):u("",!0),g.value?(v(),l("p",Qo,"Optimizing media...")):u("",!0),m.value?(v(),l("p",Jo,r(m.value),1)):u("",!0)])],32)]),_:1},8,["is-open","can-dismiss"]))}}),[["__scopeId","data-v-c41574ac"]]),ai={class:"animal-accordion-content"},ti={key:0,class:"empty-state-text"},li={class:"timeline-date-header"},ni={key:0,class:"note-edit-panel"},si={key:0,class:"edit-photo-grid"},oi=["src"],ii=["src"],ri=["onClick"],ui={class:"edit-actions"},di=["disabled","onClick"],ci=m(e({__name:"AnimalHealthNotesAccordion",props:{notes:{default:()=>[]},animalPhotos:{default:()=>[]},animalId:{default:""},animalName:{default:""},userRole:{default:"volunteer"},currentUserId:{default:""}},emits:["add-note","edit-note","delete-note","refetch-animal","acknowledgement-change"],setup(e,{expose:t,emit:i}){const d=a(!1),p=a(!1),m=e,g=i,_=a(null),h=a(""),y=a(null),b=a(!1),w=a(""),k=a(""),S=a([]),A=a([]);function C(e){return null==e?"":String(e).trim().toLowerCase()}async function N(e,a="success"){const t=await X.create({message:e,duration:2e3,position:"top",color:a,cssClass:"app-toast ".concat("danger"===a?"toast-danger":"toast-success")});await t.present()}function I(e){if(!e.author||"User"===e.author||0===e.author.length){const a=(e.authorRole||"").toLowerCase();return a.includes("coordinator")?"Coordinator Admin":a.includes("staff")?"Staff Admin":a.includes("volunteer")||a.includes("foster")?"Volunteer":"Care Team"}return e.author}function D(e){if(!e)return null;const a=e instanceof Date?e:new Date(e);return Number.isNaN(a.getTime())?null:a.getTime()}const U=P(()=>[...m.notes].sort((e,a)=>{const t=D(e.date||e.updatedAt)||0;return(D(a.date||a.updatedAt)||0)-t})),E=e=>{const a=new Date,t=new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime(),l=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();return l===t?"Today":l===t-864e5?"Yesterday":e.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})},O=e=>{const a=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),l=String(e.getDate()).padStart(2,"0");return"".concat(a,"-").concat(t,"-").concat(l)},R=a(!1),z=P(()=>R.value?U.value:U.value.slice(0,3)),M=P(()=>U.value.length>3),j=P(()=>{const e=new Map;for(const a of z.value){const t=D(a.date||a.updatedAt)||0,l=new Date(t),n=t?new Date(l.getFullYear(),l.getMonth(),l.getDate()).getTime():0,s=t?O(l):"unknown-".concat(a.id),o=t?E(l):"Earlier";e.has(s)||e.set(s,{key:s,label:o,sortValue:n,items:[]}),e.get(s).items.push(a)}return[...e.values()].sort((e,a)=>a.sortValue-e.sortValue).map(e=>({key:e.key,label:e.label,items:e.items}))}),W=e=>{const a=String(e||"").trim();return a?m.animalPhotos.filter(e=>(Array.isArray(null==e?void 0:e.tags)?e.tags:[]).some(e=>"string"==typeof e&&e==="".concat("care-update-note:").concat(a))):[]},q=e=>{const a=[...Array.isArray(e.photos)?e.photos:[],...W(e.id)],t=new Map;return a.forEach(e=>{if(!(null==e?void 0:e.url))return;const a=String(e.id||e.url);t.has(a)||t.set(a,e)}),Array.from(t.values())},$=e=>{const a=String((null==e?void 0:e.type)||"").toLowerCase(),t=String((null==e?void 0:e.url)||"").toLowerCase();return a.startsWith("video/")||t.includes(".mp4")},Y=e=>({id:e.id,noteId:e.id,authorName:I(e),authorAvatar:e.authorAvatar||"",authorRole:e.authorRole||null,timestamp:e.date,updatedAt:e.updatedAt,noteType:e.type||"general",noteText:e.text||"",weightGrams:"number"==typeof e.weightGrams?e.weightGrams:null,weightUnit:e.weightUnit||null,weightEstimated:Boolean(e.weightEstimated),photos:q(e),isNew:Boolean(e.isUnseenCareUpdate),reactions:Array.isArray(e.reactions)?e.reactions:[],acknowledgements:Array.isArray(e.acknowledgements)?e.acknowledgements:[],acknowledgedBy:e.acknowledgedBy||null,currentUserAcknowledgement:e.currentUserAcknowledgement||null,isAcknowledgedByCurrentUser:Boolean(e.isAcknowledgedByCurrentUser),isSelfAuthored:Boolean(e.isSelfAuthored)});async function K(e){var a;try{const{default:t}=await V(async()=>{const{default:e}=await import("./healthNotes-BhiJMfr0.js").then(e=>e.c);return{default:e}},__vite__mapDeps([38,1,2])),l=Ea(e.value,e.unit),n=await t.updateWeight(m.animalId,l,!1,e.unit);if(n.note){const e={id:n.note.id,author:n.note.author_name||"System",authorAvatar:n.note.author_avatar||"",date:new Date(n.note.createdAt||n.note.created_at),updatedAt:n.note.updatedAt?new Date(n.note.updatedAt):void 0,text:n.note.note_text,type:n.note.note_type,weightGrams:"number"==typeof n.note.weight_update_grams?n.note.weight_update_grams:null,weightUnit:n.note.weight_update_unit||null,weightEstimated:Boolean(n.note.weight_estimated),authorId:String((null==(a=n.note.author)?void 0:a.id)||n.note.author_id||""),authorRole:n.note.author_role||n.note.author_type,photos:Array.isArray(n.note.photos)?n.note.photos:[]};g("add-note",e)}p.value=!1,N("Weight updated")}catch(t){T.error("Error updating weight:",t),await N("Error updating weight","danger")}}t({openAddNote:function(){d.value=!0}});const Q=async e=>{try{g("add-note",e),g("refetch-animal"),await N("Note added successfully")}catch(a){T.error("Error adding note:",a),await N("Error adding note","danger")}};function J(e){(null==e?void 0:e.url)&&(w.value=e.url,b.value=!0)}function ee(){b.value=!1,w.value=""}
2function ae(){_.value=null,h.value="",k.value="",S.value=[],A.value=[]}const te=e=>(e=>{const a=C(m.currentUserId);return!!a&&C(null==e?void 0:e.authorId)===a})(e);return(a,t)=>(v(),l("div",ai,[0===j.value.length?(v(),l("p",ti,"No care notes yet â the first update will show up here.")):u("",!0),(v(!0),l(x,null,F(j.value,a=>(v(),l("div",{key:a.key,class:"timeline-section"},[n("h4",li,r(a.label),1),(v(!0),l(x,null,F(a.items,a=>(v(),l("div",{key:a.id,class:"health-note-row"},[_.value===a.id?(v(),l("div",ni,[L(n("textarea",{"onUpdate:modelValue":t[0]||(t[0]=e=>h.value=e),class:"note-textarea",rows:"3",onKeydown:s(ae,["esc"]),ref_for:!0,ref:e=>((e,a)=>{e instanceof HTMLTextAreaElement&&_.value===a&&(y.value=e)})(e,a.id)},null,544),[[B,h.value]]),S.value.length>0?(v(),l("div",si,[(v(!0),l(x,null,F(S.value,(e,a)=>{var t,s;return v(),l("div",{key:"edit-note-photo-".concat(null!=(s=null!=(t=e.id)?t:e.url)?s:a),class:"edit-photo-item"},[$(e)?(v(),l("video",{key:0,src:e.url,class:"edit-photo-preview edit-photo-video",controls:"",playsinline:""},null,8,oi)):(v(),l("img",{key:1,src:e.url,alt:"Care update media",class:"edit-photo-preview"},null,8,ii)),n("button",{type:"button",class:"remove-edit-photo-button","aria-label":"Remove photo",onClick:o(a=>function(e){const a="number"==typeof(null==e?void 0:e.id)?e.id:Number(null==e?void 0:e.id);Number.isFinite(a)?(A.value.push(a),S.value=S.value.filter(a=>String(a.id||a.url)!==String(e.id||e.url))):N("This photo cannot be removed.","warning")}(e),["stop"])},"Ã",8,ri)])}),128))])):u("",!0),n("div",ui,[n("button",{type:"button",class:"button-sm-tertiary",onClick:o(ae,["stop"])},"Cancel"),n("button",{type:"button",class:"button-sm-tertiary button-tertiary-success",disabled:!h.value.trim(),onClick:o(e=>async function(e){if(h.value.trim()){try{(Z("ios")||Z("android"))&&await Mo.impact({style:Ro.Medium})}catch(a){}try{const{default:a}=await V(async()=>{const{default:e}=await import("./healthNotes-BhiJMfr0.js").then(e=>e.c);return{default:e}},__vite__mapDeps([38,1,2])),t=Array.from(new Set(A.value));h.value.trim()!==k.value.trim()&&await a.updateHealthNote(m.animalId,e.id,{note_text:h.value.trim()}),t.length>0&&(await $a.detachFilesFromAnimal(m.animalId,t),(await Promise.allSettled(t.map(e=>$a.deleteFile(e)))).forEach((e,a)=>{"rejected"===e.status&&T.warn("Failed to delete detached health note file record",{fileId:t[a],error:e.reason})})),g("edit-note",{id:e.id,text:h.value.trim(),updatedAt:(new Date).toISOString()}),g("refetch-animal"),await N(t.length>0?"Note updated and photo removed":"Note updated successfully"),ae()}catch(t){T.error("Error updating health note:",t),await N("Error updating note","danger")}}}(a),["stop"])},"Save",8,di)])])):(v(),f(je,{key:1,class:"note-item",item:Y(a),"timestamp-mode":"time","hide-type-label":"","show-options":te(a),"show-acknowledgements":"","current-user-role":e.userRole,onEdit:e=>async function(e){var a;_.value=e.id,h.value=e.text,k.value=e.text,S.value=q(e),A.value=[],await G(),null==(a=y.value)||a.focus()}(a),onDelete:e=>async function(e){const a=await H.create({header:"Delete Note",message:"Are you sure you want to delete this note? This action cannot be undone.",cssClass:"delete-confirm-alert",buttons:[{text:"Cancel",role:"cancel"},{text:"Delete",role:"destructive",handler:async()=>{try{const{default:t}=await V(async()=>{const{default:e}=await import("./healthNotes-BhiJMfr0.js").then(e=>e.c);return{default:e}},__vite__mapDeps([38,1,2]));await t.deleteHealthNote(m.animalId,String(e.id)),g("delete-note",e.id),g("refetch-animal"),_.value===e.id&&(_.value=null,h.value="");try{await N("Note deleted","danger")}catch(a){}}catch(t){T.error("Error deleting health note:",t),await N("Error deleting note","danger")}}}]});await a.present()}(a),onPhotoClick:J,onAcknowledgementChange:e=>g("acknowledgement-change",{noteId:a.id,response:e})},null,8,["item","show-options","current-user-role","onEdit","onDelete","onAcknowledgementChange"]))]))),128))]))),128)),M.value?(v(),l("button",{key:1,type:"button",class:"notes-see-more",onClick:t[1]||(t[1]=e=>R.value=!R.value)},r(R.value?"See less":"See more +"),1)):u("",!0),c(ei,{"is-open":d.value,"onUpdate:isOpen":t[2]||(t[2]=e=>d.value=e),"animal-id":e.animalId,"animal-name":e.animalName,"user-role":e.userRole,"current-user-id":e.currentUserId,onNoteAdded:Q},null,8,["is-open","animal-id","animal-name","user-role","current-user-id"]),c(We,{"is-open":p.value,onDismiss:t[3]||(t[3]=e=>p.value=!1),onSave:K},null,8,["is-open"]),c(Za,{"is-open":b.value,"image-url":w.value,alt:"Care update photo",onClose:ee}
2,null,8,["is-open","image-url"])]))}}),[["__scopeId","data-v-421eb077"]]),pi={class:"tab-pane"},vi={class:"combined-content"},mi={class:"health-notes-section"},gi={key:0,class:"no-data"},fi=m(e({__name:"AnimalDetailsAndNotesTab",props:{animalData:{},transformedHealthNotes:{},userRole:{},currentUserId:{}},emits:["add-note","edit-note","delete-note","refetch-animal","acknowledgement-change","photo-update"],setup(e,{expose:t}){const s=a(null);return t({openAddNote:()=>{var e;return null==(e=s.value)?void 0:e.openAddNote()}}),(a,t)=>{var o,i,r;return v(),l("div",pi,[n("div",vi,[n("div",mi,[c(ci,{ref_key:"accordion",ref:s,notes:e.transformedHealthNotes,"animal-photos":(null==(o=e.animalData)?void 0:o.photos)||[],"animal-id":String((null==(i=e.animalData)?void 0:i.id)||""),"animal-name":null==(r=e.animalData)?void 0:r.name,"user-role":e.userRole,"current-user-id":e.currentUserId,onAddNote:t[0]||(t[0]=e=>a.$emit("add-note",e)),onEditNote:t[1]||(t[1]=e=>a.$emit("edit-note",e)),onDeleteNote:t[2]||(t[2]=e=>a.$emit("delete-note",e)),onRefetchAnimal:t[3]||(t[3]=e=>a.$emit("refetch-animal")),onAcknowledgementChange:t[4]||(t[4]=e=>a.$emit("acknowledgement-change",e))},null,8,["notes","animal-photos","animal-id","animal-name","user-role","current-user-id"])]),e.animalData?u("",!0):(v(),l("div",gi,[...t[5]||(t[5]=[n("p",null,"Loading animal details...",-1)])]))])])}}}),[["__scopeId","data-v-b4a6b806"]]),_i={health_conditions:"Health conditions",care_requirements:"Care requirements",medical_history:"Medical history",estimated_dob:"Date of birth",weight_grams:"Weight",notes:"Notes",pathway:"Pathway",pathway_note:"Pathway note",visibility:"Visibility to fosters",urgent:"Urgency",group_name:"Group name",litter_name:"Litter name",intake_reason:"Intake reason",intake_reason_notes:"Intake notes",intake_origin_source:"Intake source",intake_origin_partner_name:"Intake partner",cause_of_death:"Cause of death",transferred_to_org:"Transfer destination",sterilization_status:"Spay/neuter status",sterilization_date:"Spay/neuter date"},hi=new Set(["returned","returned_to_shelter","return_to_shelter","status_change_at_shelter"]),yi=new Set(["adopted","transferred","deceased","status_change_adopted","status_change_transferred","status_change_deceased"]),bi=e=>"string"==typeof e&&e.trim()?e.trim():null,wi=e=>{const a=bi(e);return a?a.replace(/_/g," ").split(" ").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):null},ki=e=>{if(e&&"object"==typeof e){const a=e;return bi(a.outcome)||bi(a.status)}return bi(e)},Si=e=>{var a;const t=null==(a=bi(e))?void 0:a.toLowerCase().replace(/^status_change_/,"");return t?wi(t):null},Ai=(e,a)=>{var t,l;return bi(null==(l=null==(t=e.details)?void 0:t.metadata)?void 0:l[a])},Ci=e=>Ai(e,"action"),xi=e=>{const a=new Date(e);return Number.isNaN(a.getTime())?"unknown":"".concat(a.getFullYear(),"-").concat(a.getMonth(),"-").concat(a.getDate())},Fi=e=>{const a=new Date(e);return Number.isNaN(a.getTime())?"Unknown date":De(a)?"Today":Ue(a)?"Yesterday":Ie(a)},Ni=e=>{const a=new Date(e);return Number.isNaN(a.getTime())?"":a.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})},Ii=e=>{const a=[...e].sort((e,a)=>new Date(a.occurred_at).getTime()-new Date(e.occurred_at).getTime()),t=[],l=new Map;for(const n of a){const e=xi(n.occurred_at);let a=l.get(e);a||(a={key:e,label:Fi(n.occurred_at),entries:[]},l.set(e,a),t.push(a)),a.entries.push(n)}return t},Di=e=>{var a;const t="string"==typeof(null==(a=e.actor)?void 0:a.name)?e.actor.name.trim():"";return!t||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.trim())||"system"===t.toLowerCase()?null:t},Ui=(e,a)=>{const t=Ta[a];return"".concat((e/t.gramsPerUnit).toFixed(t.displayDecimals)," ").concat(t.shortLabel)},Pi=(e,a)=>{const t=Di(a);return{lead:e,actor:t&&e.includes(t)?null:t}},Ei=e=>{var a;return bi(null==(a=e.details)?void 0:a.foster_name)||Ai(e,"foster_name")||Ai(e,"to_foster_name")},Ti=e=>{const a=Ci(e);return"placed_on_hold"===a?Pi("Placed on hold",e):"resumed"===a?Pi("Taken off hold",e):null},Oi={intake_reason:e=>e,intake_origin_source:e=>{var a,t;return null!=(t=null==(a=ga.find(a=>a.value===e))?void 0:a.label)?t:e}},Vi=(e,a)=>{const t=bi(a);return t?Oi[e](t):null},Ri=e=>{if(!e||"object"!=typeof e)return null;const a=e,t=bi(a.name);if(!t)return null;
2const l=[bi(a.city),bi(a.state)].filter(Boolean).join(", ");return l?"".concat(t," (").concat(l,")"):t},Li=e=>{var a,t,l,n;return Boolean(Ri(null==(t=null==(a=e.details)?void 0:a.metadata)?void 0:t.prior_partner)||Ri(null==(n=null==(l=e.details)?void 0:l.metadata)?void 0:n.new_partner))},Bi=e=>{var a,t,l,n;const s=Ti(e);if(s)return s;const o=(null==(a=e.details)?void 0:a.field_name)||"";if("on_hold"===o)return null;if("intake_origin_partner_id"===o||"intake_origin_partner_name"===o)return(e=>{var a,t,l,n,s,o,i,r,u;const d="intake_origin_partner_id"===(null==(a=e.details)?void 0:a.field_name),c=Ri(null==(l=null==(t=e.details)?void 0:t.metadata)?void 0:l.prior_partner)||(d?null:bi(null==(n=e.details)?void 0:n.prior_value)),p=Ri(null==(o=null==(s=e.details)?void 0:s.metadata)?void 0:o.new_partner)||(d?null:bi(null==(i=e.details)?void 0:i.new_value));return Pi(c&&p?"Intake partner changed from ".concat(c," to ").concat(p):p?(null==(r=e.details)?void 0:r.prior_value)?"Intake partner changed from an unknown organization to ".concat(p):"Intake partner set to ".concat(p):c?(null==(u=e.details)?void 0:u.new_value)?"Intake partner changed from ".concat(c," to an unknown organization"):"Intake partner cleared (was ".concat(c,")"):"Intake partner changed",e)})(e);if("name"===o){const a=bi(null==(t=e.details)?void 0:t.new_value);return Pi(a?"Name changed to ".concat(a):"Name changed",e)}const i=_i[o]||wi(o);if(!i)return null;if(o in Oi){const a=Vi(o,null==(l=e.details)?void 0:l.prior_value),t=Vi(o,null==(n=e.details)?void 0:n.new_value);if(a&&t)return Pi("".concat(i," changed from ").concat(a," to ").concat(t),e);if(t)return Pi("".concat(i," set to ").concat(t),e);if(a)return Pi("".concat(i," cleared"),e)}return Pi("".concat(i," updated"),e)},zi=e=>{var a,t,l,n,s,o,i,r,u,d,c,p,v,m,g,f,_;if((null==(a=e.details)?void 0:a.is_system_note)||(null==(l=null==(t=e.details)?void 0:t.metadata)?void 0:l.is_system_note))return null;switch(e.kind){case"intake":case"created":return Pi("Intake",e);case"approved":{const a=Ei(e);return Pi(a?"".concat(a," approved as foster"):"Foster approved",e)}case"reassigned":{const a=bi(null==(n=e.details)?void 0:n.from_foster_name),t=bi(null==(s=e.details)?void 0:s.to_foster_name);return Pi(a&&t?"Moved from ".concat(a," to ").concat(t):t?"Moved to ".concat(t):"Moved to a different foster",e)}case"gap_stay":{const a=Ei(e);return Pi(a?"Gap stay started with ".concat(a):"Gap stay started",e)}case"pickup_scheduled":{const a=bi(null==(o=e.details)?void 0:o.scheduled_for);return Pi(a?"Pickup booked for ".concat(Ie(a)):"Pickup booked",e)}case"picked_up":{const a=Ei(e);return Pi(a?"Picked up by ".concat(a):"Picked up",e)}case"returned":return{lead:"Returned to shelter",actor:null};case"declined":{const a=Ei(e)||Di(e);return{lead:a?"".concat(a," declined the placement"):"Foster declined the placement",actor:null}}case"outcome":case"outcome_finalized":{const a=Si((null==(i=e.details)?void 0:i.outcome)||(null==(r=e.details)?void 0:r.status)||Ai(e,"outcome")||Ai(e,"status"));return a?Pi(a,e):null}case"outcome_amended":{const a=Si(ki(null==(u=e.details)?void 0:u.new_value)||Ai(e,"outcome")||Ai(e,"status"));return a?Pi("Outcome changed to ".concat(a),e):null}case"assignment_changed":return(e=>{const a=Ei(e),t=(Ai(e,"outcome")||"").toLowerCase();switch(Ci(e)){case"approved":return Pi(a?"".concat(a," approved as foster"):"Foster approved",e);case"reassigned":{const a=Ai(e,"from_foster_name")||Ai(e,"foster_name"),t=Ai(e,"to_foster_name");return Pi(a&&t?"Moved from ".concat(a," to ").concat(t):t?"Moved to ".concat(t):"Moved to a different foster",e)}case"gap_assigned":case"gap_reassigned":return Pi(a?"Gap stay started with ".concat(a):"Gap stay started",e);case"gap_returned_to_primary":case"gap_ended":return Pi("Gap stay ended",e);case"pickup_scheduled":return Pi("Pickup booked",e);case"unassigned":return Pi(a?"".concat(a," removed as foster"):"Foster removed",e);case"declined":{const t=a||Di(e);return{lead:t?"".concat(t," declined the placement"):"Foster declined the placement",actor:null}}case"completed":{if(hi.has(t))return Pi("Returned to shelter",e);if(yi.has(t))return null;const a=t&&"completed"!==t&&"other"!==t?" · ".concat(Si(t)):"";return Pi("Placement ended".concat(a),e)}default:return null}})(e);case"field_change":return Bi(e);case"status_changed":return(e=>{var a;const t=Ti(e);if(t)return t;switch(Ci(e)){case"picked_up":{const a=Ei(e);return Pi(a?"Picked up by ".concat(a):"Picked up",e)}case"returned":return Pi("Returned to shelter",e);case"outcome_status_set":{const t=Si(ki(null==(a=e.details)?void 0:a.new_value)||Ai(e,"status"));return t?Pi(t,e):null}default:return null}})(e);case"health_note":return Pi("Care note added",e);case"note_edited":return Pi("Care note edited",e);case"note_deleted":return Pi("Care note deleted",e);case"weight_updated":{const a=((e,a)=>{if("number"!=typeof e||!Number.isFinite(e)||e<=0)return null;const t=Math.round(e),l=t<1e3?"".concat(t," g"):Ui(t,"kg"),n=Ui(t,"lbs");return"lbs"===a||"oz"===a?"".concat(n," (").concat(l,")"):"".concat(l," (").concat(n,")")})(null!=(p=null==(d=e.details)?void 0:d.grams)?p:null==(c=e.details)?void 0:c.weight_update_grams,null!=(g=null==(v=e.details)?void 0:v.unit)?g:null==(m=e.details)?void 0:m.weight_update_unit);return Pi(a?"Weight updated to ".concat(a):"Weight updated",e)}case"plea_sent":{const a=null!=(_=null==(f=e.details)?void 0:f.recipient_count)?_:((e,a)=>{var t,l;const n=null==(l=null==(t=e.details)?void 0:t.metadata)?void 0:l[a];return"number"==typeof n&&Number.isFinite(n)?n:null})(e,"recipient_count");return Pi(a?"Plea sent to ".concat(a," foster").concat(1===a?"":"s"):"Plea sent",e)}default:return null}},Mi=e=>{const a=e.filter(e=>null!==zi(e)),t=e=>{var a,t;return JSON.stringify([e.occurred_at,null==(a=e.actor)?void 0:a.id,null==(t=e.actor)?void 0:t.name,e.source])},l=new Set(a.filter(e=>{var a;return"field_change"===e.kind&&"intake_origin_partner_name"===(null==(a=e.details)?void 0:a.field_name)}).map(t)),n=new Set(a.filter(e=>{var a;return"field_change"===e.kind&&"intake_origin_partner_id"===(null==(a=e.details)?void 0:a.field_name)&&Li(e)}).map(t));return a.filter(e=>{var a,s;if("field_change"!==e.kind)return!0;const o=t(e);return"intake_origin_partner_name"===(null==(a=e.details)?void 0:a.field_name)?!n.has(o):"intake_origin_partner_id"!==(null==(s=e.details)?void 0:s.field_name)||(Li(e)||!l.has(o))})},ji=e=>{const a=Mi(e);if(!a.length)return"No activity yet";const t=[...a].sort((e,a)=>new Date(a.occurred_at).getTime()-new Date(e.occurred_at).getTime())[0],l=1===a.length?"1 update":"".concat(a.length," updates");return"".concat(l," · Latest: ").concat((e=>{const a=zi(e);return a?a.actor?"".concat(a.lead,", recorded by ").concat(a.actor):a.lead:""})(t))},Wi={class:"animal-timeline"},Gi={key:0,class:"empty-state-text"},qi={key:1,class:"empty-state-text"},Hi={key:2,class:"empty-state-text"},$i={class:"eyebrow history-day__label"},Yi={class:"history-day__list"},Ki={class:"history-event__node"},Qi={class:"history-event__body"},Ji={class:"history-event__row"},Xi={class:"history-event__title"},Zi=["title"],er={key:0,class:"history-event__by"},ar={key:4,class:"helper-text history-refresh-error",role:"status"},tr=m(e({__name:"AnimalHistoryTimeline",props:{animalId:{},refreshKey:{}},emits:["summary"],setup(e,{expose:s,emit:o}){const d=e,c=o,p=a([]),m=a(!1),g=a(!1),h=a(null),b=a(null),w=a(!1),k=a(new Set),S=a(new Set),A=ca(),C=P(()=>({duration:A.value?0:.24,ease:[.16,1,.3,1]})),N=P(()=>Mi(p.value)),I=P(()=>Ii(N.value).map(e=>({...e,entries:e.entries.map(e=>({entry:e,line:zi(e)}))}))),D=e=>{try{return Pe(e)}catch(a){return e}},U=()=>{!m.value||g.value?m.value||(h.value?c("summary","History unavailable"):c("summary",ji(p.value))):c("summary","Loading historyâ¦")};let E=0,O=null;const V=async()=>{const e=++E,a=d.animalId?String(d.animalId):null;if(a!==O&&(O=a,p.value=[],h.value=null,b.value=null,g.value=!1,w.value=!1,k.value=new Set,S.value=new Set),!a)return p.value=[],h.value=null,m.value=!1,g.value=!1,void U();m.value=!0,U();try{const t=await at.getAnimalHistory(a);if(e!==E)return;const l=Array.isArray(t)?t:[],n=new Set(p.value.map(e=>e.id)),s=new Set(I.value.map(e=>e.key));k.value=new Set(w.value?l.filter(e=>!n.has(e.id)).map(e=>e.id):[]),S.value=new Set(w.value?Ii(Mi(l)).filter(e=>!s.has(e.key)).map(e=>e.key):[]),p.value=l,w.value=!0,h.value=null,b.value=null}catch(t){if(e!==E)return;T.error("Failed to load animal timeline:",t),w.value?b.value="Could not check for new updates. Your loaded history is still shown.":h.value="Could not load the history."}finally{e===E&&(m.value=!1,g.value=!0,U())}};return s({refresh:V}),K(V),ee(()=>{E+=1}),t(()=>[d.animalId,d.refreshKey],V),(e,a)=>(v(),l("div",Wi,[m.value&&!g.value?(v(),l("div",Gi,"Loading historyâ¦")):h.value?(v(),l("div",qi,r(h.value),1)):0===N.value.length?(v(),l("div",Hi,"No activity yet. Intake, placements, and updates will appear here.")):(v(!0),l(x,{key:3},F(I.value,(e,a)=>(v(),f(_(et).div,{key:e.key,class:"history-day",initial:!(!S.value.has(e.key)||_(A))&&{height:0,opacity:0,marginTop:0},animate:{height:"auto",opacity:1,marginTop:0===a?0:"var(--spacing-lg)"},transition:C.value},{default:y(()=>[n("div",$i,r(e.label),1),n("ul",Yi,[(v(!0),l(x,null,F(e.entries,(a,t)=>(v(),f(_(et).li,{key:a.entry.id,class:"history-event","data-history-id":a.entry.id,initial:!(!k.value.has(a.entry.id)||S.value.has(e.key)||_(A))&&{height:0,opacity:0,paddingTop:0},animate:{height:"auto",opacity:1,paddingTop:0===t?0:14},transition:C.value},{default:y(()=>[n("span",Ki,[n("span",{class:i(["history-event__dot","dot--".concat(a.entry.kind)])},null,2)]),n("div",Qi,[n("div",Ji,[n("span",Xi,r(a.line.lead),1),a.entry.occurred_at?(v(),l("span",{key:0,class:"history-event__time",title:D(a.entry.occurred_at)},r(_(Ni)(a.entry.occurred_at)),9,Zi)):u("",!0)]),a.line.actor?(v(),l("div",er,"Recorded by "+r(a.line.actor),1)):u("",!0)])]),_:2},1032,["data-history-id","initial","animate","transition"]))),128))])]),_:2},1032,["initial","animate","transition"]))),128)),b.value?(v(),l("p",ar,r(b.value),1)):u("",!0)]))}}),[["__scopeId","data-v-5bf50aa1"]]),lr={class:"profile-loading-layout"},nr={class:"profile-loading-col-right"},sr=m(e({__name:"AnimalProfileSkeleton",setup:e=>(e,a)=>(v(),l("div",lr,[a[2]||(a[2]=ae('<div class="profile-loading-col-left" data-v-2051d209><div class="profile-loading-card profile-loading-hero" data-v-2051d209><div class="profile-loading-hero-row" data-v-2051d209><div class="profile-loading-photo skeleton-shimmer" data-v-2051d209></div><div class="profile-loading-copy" data-v-2051d209><div class="profile-loading-line profile-loading-line--title skeleton-shimmer" data-v-2051d209></div><div class="profile-loading-line profile-loading-line--id skeleton-shimmer" data-v-2051d209></div><div class="profile-loading-line profile-loading-line--meta skeleton-shimmer" data-v-2051d209></div></div></div><div class="profile-loading-divider" data-v-2051d209></div><div class="profile-loading-row-between" data-v-2051d209><div class="profile-loading-line profile-loading-line--label skeleton-shimmer" data-v-2051d209></div><div class="profile-loading-chip skeleton-shimmer" data-v-2051d209></div></div><div class="profile-loading-divider" data-v-2051d209></div><div class="profile-loading-row-between" data-v-2051d209><div class="profile-loading-line profile-loading-line--label skeleton-shimmer" data-v-2051d209></div><div class="profile-loading-line profile-loading-line--action skeleton-shimmer" data-v-2051d209></div></div></div></div>',1)),n("div",nr,[a[1]||(a[1]=n("div",{class:"profile-loading-cards-row"},[n("div",{class:"profile-loading-card profile-loading-card--mini skeleton-shimmer"}),n("div",{class:"profile-loading-card profile-loading-card--mini skeleton-shimmer"})],-1)),(v(),l(x,null,F(2,e=>n("div",{key:"profile-loading-section-".concat(e),class:"profile-loading-section"},[...a[0]||(a[0]=[n("div",{class:"profile-loading-line profile-loading-line--section-title skeleton-shimmer"},null,-1),n("div",{class:"profile-loading-line profile-loading-line--body skeleton-shimmer"},null,-1),n("div",{class:"profile-loading-line profile-loading-line--body-short skeleton-shimmer"},null,-1)])])),64))])]))}),[["__scopeId","data-v-2051d209"]]),or={class:"plea-panel-body"},ir={class:"plea-top-section"},rr={key:0,class:"panel-hint helper-text"},ur={class:"context-animal"},dr={class:"context-animal-name"},cr={key:0,class:"context-animal-id"},pr={key:1,class:"context-group"},vr={class:"group-info helper-text"},mr={class:"group-toggle-inline"},gr={class:"group-toggle-label"},fr={key:0,class:"group-animals-list"},_r={class:"animal-info-row"},hr={class:"animal-name"},yr={key:0,class:"urgent-label"},br={class:"animal-id-label helper-text"},wr={class:"animal-details helper-text"},kr={class:"form-section"},Sr={class:"ai-draft-row"},Ar=["disabled"],Cr={key:0},xr={key:1,class:"writing-animation"},Fr={class:"recipients-section"},Nr={key:0,class:"species-recipient-notice helper-text"},Ir={class:"send-options"},Dr={class:"option-content"},Ur={class:"option-title"},Pr={key:0,class:"option-count"},Er={class:"option-content"},Tr={class:"option-title"},Or={key:0,class:"option-count"},Vr={class:"option-content"},Rr={class:"option-title"},Lr={key:1,class:"pro-badge-inline"},Br={key:0,class:"loading-state"},zr={key:1,class:"error-state"},Mr={key:2,class:"no-volunteers-warning"},jr={class:"filters-row"},Wr={key:1,class:"search-expanded"},Gr={class:"filter-pills-scroll"},qr={class:"showing-count"},Hr={class:"showing-count-left"},$r={class:"showing-count-right"},Yr={class:"recipients-count"},Kr={class:"foster-list",role:"listbox","aria-label":"Foster recipients"},Qr={key:0,class:"empty-filter-state"},Jr={key:0,class:"sms-credit-warning",role:"alert"},Xr={class:"sms-credit-warning__content"},Zr={class:"sms-credit-warning__title"},eu={class:"sms-credit-warning__body"},au=m(e({__name:"SendPleaPanel",props:{isOpen:{type:Boolean},animalData:{},groupContext:{},groupAnimals:{}},emits:["close","sent"],setup(e,{emit:s}){const o=e,d=s,m=se(),g=a(""),h=a(!0),b=a(!1),{sendingLabel:w}=oe(),S=a(null),C=a("all"),{hasAccess:N}=te(),{billingPlanOptions:D,billingRedirecting:U,closeBillingPaywall:E,isIosPlatform:T,openBillingPaywall:O,showBillingPaywall:V,startCheckoutForPrice:R}=rt(),M=P(()=>N("targeted_pleas")),j=()=>{M.value?(C.value="targeted",0===Y.value.length&&ze()):O()},W=P(()=>N("ai_foster_assistant")),q=a(!1),H=async()=>
2{if(W.value){if(!q.value){q.value=!0;try{const e=ct({primaryAnimal:o.animalData,relatedAnimals:pe.value,includeRelated:h.value});g.value="";let a=0,t="",l=null;const n=()=>{l||(l=setInterval(()=>{a<t.length?(a++,g.value=t.slice(0,a)):q.value||(l&&clearInterval(l),l=null,g.value=t)},18))};await pt(e,{onText:e=>{t=e,n()}}),l&&clearInterval(l),g.value=t;const s=await X.create({message:"Draft added to plea message.",duration:2e3,position:"top",color:"success",cssClass:"app-toast",translucent:!0});await s.present()}catch(e){const a=await X.create({message:(null==e?void 0:e.message)||"Failed to generate draft. Please try again.",duration:2500,position:"top",color:"danger",cssClass:"app-toast",translucent:!0});await a.present()}finally{q.value=!1}}}else O()},$=()=>{O()},Y=a([]),K=a(!1),Q=a(null),J=a(new Set),Z=a(""),ee=a("all"),ae=a([]),ie=a(!1),re=()=>{g.value="",h.value=!0,C.value="all",Z.value="",ee.value="all",ae.value=[],ie.value=!1,J.value=new Set},ue=ja({enabled:P(()=>o.isOpen),isSaving:b,snapshot:()=>({pleaMessage:g.value,includeGroup:h.value,sendTarget:C.value,selectedFosterIds:Array.from(J.value).sort(),searchQuery:Z.value,selectedAvailability:ee.value,activeSpecialtyFilters:[...ae.value].sort(),isSearchExpanded:ie.value}),onDiscard:re}),de=P(()=>{var e;return(null==(e=o.animalData)?void 0:e.name)||"Animal"}),ce=P(()=>{var e,a;return(null==(e=o.animalData)?void 0:e.animal_id)||(null==(a=o.animalData)?void 0:a.id)||""}),pe=P(()=>o.groupAnimals||[]),ve=P(()=>Da([o.animalData,...pe.value])),me=P(()=>{var e,a,t,l;const n=null!=(l=null==(e=o.animalData)?void 0:e.organization_id)?l:null==(t=null==(a=o.groupAnimals)?void 0:a[0])?void 0:t.organization_id,s=Number.parseInt(String(null!=n?n:""),10);return Number.isInteger(s)?s:null}),ge=P(()=>{const e=o.animalData?[o.animalData]:[];return h.value&&pe.value.length>0&&e.push(...pe.value),e}),fe=P(()=>ge.value.length>0),_e=P(()=>{const e=[o.animalData];return h.value&&pe.value.length>0&&e.push(...pe.value),e.filter(Boolean)}),he=P(()=>vt(_e.value)),ye=P(()=>ft(_e.value)),be=e=>_t(e,he.value,o.animalData),we=P(()=>Y.value.length),ke=P(()=>Y.value.filter(e=>e.isAvailable).length),Se=P(()=>mt(Y.value,ye.value)),Ae=P(()=>"all"!==ee.value||ae.value.length>0||""!==Z.value),Ce=P(()=>{const e=Y.value.filter(e=>{if("available"===ee.value&&!e.isAvailable)return!1;if(ae.value.length>0){if(!ae.value.some(a=>gt(e,a)))return!1}if(Z.value){const a=Z.value.toLowerCase(),t=Te(e).map(e=>Oe(e)),l=[...e.foster_types||[],...e.medical_comfort||[],...t];if(!"".concat(e.first_name," ").concat(e.last_name," ").concat(l.join(" ")).toLowerCase().includes(a))return!1}return!0});return he.value.length>0&&e.sort((e,a)=>be(a)-be(e)),e}),xe=P(()=>Ce.value.filter(e=>J.value.has(Pe(e))).length),Fe=P(()=>Ce.value.length>0&&xe.value===Ce.value.length),Ne=P(()=>{if(!Ae.value)return new Set(J.value);const e=new Set(Ce.value.map(e=>Pe(e)));return new Set(Array.from(J.value).filter(a=>e.has(a)))}),Ie=P(()=>Ne.value.size),De=P(()=>0!==g.value.trim().length&&("targeted"!==C.value||Ie.value>0)),Ue=P(()=>{var e;return b.value?null!=(e=w.value)?e:"Sending...":"targeted"===C.value&&Ie.value>0?"Send Plea to ".concat(Ie.value," Foster").concat(1!==Ie.value?"s":""):"available"===C.value?"Send to Available":"Send to All"}),Pe=e=>String(e.foster_id||e.id),{smsCreditsRemaining:Ee,smsEligibleRecipientCount:Ve,shouldShowSmsCreditWarning:Re,warningVariant:Le}=it({isOpen:P(()=>o.isOpen),sendTarget:C,allFosters:Y,selectedFosterIds:Ne,fosterIdFor:Pe,shouldCheckCredits:fe,fallbackOrganizationId:me}),ze=async()=>{K.value=!0,Q.value=null;try{const e=((await na.listFosters({status:"active",pageSize:500})).fosters||[]).map(e=>{var a,t;const l=ut.toUIFoster(e);return{...e,...l,foster_id:e.foster_id||e.id,first_name:l.firstName||e.first_name,last_name:l.lastName||e.last_name,photo_url:l.avatar||e.photo_url,foster_types:e.foster_types||(null==(a=e.happyToFoster)?void 0:a.foster_types)||[],medical_comfort:e.medical_comfort||(null==(t=e.happyToFoster)?void 0:t.medical_comfort)||[]}});Y.value=e,J.value=new Set(e.map(e=>Pe(e)))}catch(e){Q.value="Failed to load fosters"}finally{K.value=!1}};t(()=>o.isOpen,e=>{e&&(re(),ze().finally(()=>{G(()=>ue.resetDirty())}),setTimeout(()=>{var e;null==(e=S.value)||e.focus()},350))},{immediate:!0});const Me=()=>{d("close")},je=e=>{const a=String(e),t=new Set(J.value);t.has(a)?t.delete(a):t.add(a),J.value=t},We=()=>{Z.value="",ee.value="all",ae.value=[],ie.value=!1},Ge=()=>{T||m.push("/settings/billing")},qe=async()=>{var e;if(De.value&&!b.value&&o.animalData){b.value=!0;try{const a={};"targeted"===C.value?a.fosterIds=Array.from(Ne.value):a.filter=C.value;const t=[o.animalData];if(h.value&&pe.value.length>0)for(const e of pe.value){const a=e.id||e.animal_id;
2a&&String(a)!==String(o.animalData.id)&&t.push(e)}const l=(e=>{const a=new Set;return e.filter(e=>{const t=(null==e?void 0:e.id)||(null==e?void 0:e.animal_id);if(!t)return!1;const l=String(t);return!a.has(l)&&(a.add(l),!0)})})(t),n=l.map(e=>e.id||e.animal_id),s=l.some(e=>e.urgent)?"Immediate":"High",i=null==(e=l[0])?void 0:e.organization_id,r=await dt.createPlea(n,g.value.trim(),s,i);await dt.sendPlea(r.id,a),ue.markSaved(),d("sent"),d("close")}catch(a){await ht(a,{component:"SendPleaPanel",action:"send_plea",fallbackMessage:"Failed to send plea. Please try again."})}finally{b.value=!1}}};return(a,t)=>(v(),l(x,null,[c(ra,{"is-open":e.isOpen,title:"Send Plea","can-dismiss":_(ue).canDismiss,onClose:Me},{footer:y(()=>[c(_(k),{class:"button-primary send-plea-button",expand:"block",disabled:!De.value||b.value,onClick:qe},{default:y(()=>[A(r(Ue.value),1)]),_:1},8,["disabled"])]),default:y(()=>[n("div",or,[n("div",ir,[t[12]||(t[12]=n("p",{class:"panel-hint helper-text"},"Send a plea to your foster network about this animal.",-1)),_(Be)(o.animalData||{})?(v(),l("p",rr," This animal is Outcome Pending. Sending a plea puts it back on the foster track so fosters can see it. ")):u("",!0),n("div",ur,[n("span",dr,r(de.value),1),ce.value?(v(),l("span",cr,"ID# "+r(ce.value),1)):u("",!0)]),e.groupContext?(v(),l("div",pr,[n("p",vr,"This animal is part of "+r(e.groupContext.displayName)+".",1),n("label",mr,[L(n("input",{type:"checkbox","onUpdate:modelValue":t[0]||(t[0]=e=>h.value=e),class:"group-checkbox-sm"},null,512),[[z,h.value]]),n("span",gr,"Include entire "+r(e.groupContext.type||"group")+" in plea",1)]),h.value&&pe.value.length>0?(v(),l("div",fr,[(v(!0),l(x,null,F(pe.value,(e,a)=>(v(),l("div",{key:e.id,class:"group-animal-item"},[n("div",_r,[n("div",hr,[A(r(a+1)+". "+r(e.name)+" ",1),e.urgent?(v(),l("span",yr,"Urgent")):u("",!0)]),n("div",br,r(e.animal_id||e.id),1)]),n("div",wr,r(_(Ra)(e)||"Unknown age"),1)]))),128))])):u("",!0)])):u("",!0),n("div",kr,[c(_(le),{class:"section-label"},{default:y(()=>[...t[9]||(t[9]=[A("Plea Message",-1)])]),_:1}),L(n("textarea",{ref_key:"messageTextareaRef",ref:S,"onUpdate:modelValue":t[1]||(t[1]=e=>g.value=e),rows:"8",placeholder:"Write your plea message...",class:"message-textarea",spellcheck:"true",autocorrect:"on",autocomplete:"off",autocapitalize:"sentences"},null,512),[[B,g.value]]),n("div",Sr,[n("button",{class:i(["ai-draft-btn",{"ai-draft-btn--generating":q.value}]),disabled:q.value||!W.value,onClick:H},[c(ot,{size:"sm",placement:"leading",animated:q.value},null,8,["animated"]),q.value?(v(),l("span",xr,[...t[10]||(t[10]=[A("Writing",-1),n("span",{class:"dots"},[n("span",null,"."),n("span",null,"."),n("span",null,".")],-1)])])):(v(),l("span",Cr,"Suggest message"))],10,Ar),W.value?u("",!0):(v(),l("span",{key:0,class:"pro-badge",onClick:$},[...t[11]||(t[11]=[n("span",{class:"pro-star"},"â¦",-1),A(" Pro",-1)])]))])])]),n("div",Fr,[t[25]||(t[25]=n("div",{class:"recipients-header"},[n("span",{class:"recipients-title"},"Recipients")],-1)),ve.value?(v(),l("p",Nr,r(ve.value),1)):u("",!0),n("ul",Ir,[n("li",{class:i(["send-option",{selected:"all"===C.value}]),onClick:t[2]||(t[2]=e=>C.value="all")},[n("div",Dr,[n("div",Ur,[t[13]||(t[13]=A(" All Approved Foster Volunteers ",-1)),we.value>0?(v(),l("span",Pr,"("+r(we.value)+")",1)):u("",!0)]),t[14]||(t[14]=n("div",{class:"option-description helper-text"},"Includes fosters who've marked themselves as temporarily unavailable",-1))])],2),n("li",{class:i(["send-option",{selected:"available"===C.value}]),onClick:t[3]||(t[3]=e=>C.value="available")},[n("div",Er,[n("div",Tr,[t[15]||(t[15]=A(" Available Volunteers Only ",-1)),ke.value>0?(v(),l("span",Or,"("+r(ke.value)+")",1)):u("",!0)]),t[16]||(t[16]=n("div",{class:"option-description helper-text"},"Only send to volunteers who've marked themselves as available",-1))])],2),n("li",{class:i(["send-option",{selected:"targeted"===C.value,locked:!M.value}]),onClick:j},[n("div",Vr,[n("div",Rr,[t[18]||(t[18]=A(" Send to the Right Fosters ",-1)),M.value?(v(),f(ot,{key:0,size:"sm"})):(v(),l("span",Lr,[...t[17]||(t[17]=[n("span",{class:"pro-star"},"â¦",-1),A(" Pro",-1)])]))]),t[19]||(t[19]=n("div",{class:"option-description helper-text"},"Match this plea to fosters with the right experience and availability",-1))])],2)]),"targeted"===C.value&&M.value?(v(),l(x,{key:1},[K.value?(v(),l("div",Br,[c(_(I),{name:"crescent"}),t[20]||(t[20]=n("p",{class:"helper-text"},"Loading fosters...",-1))])):Q.value?(v(),l("div",zr,[c(p,{name:"alert-circle-outline",class:"warning-icon"}),n("p",null,r(Q.value),1),c(_(k),{fill:"clear",size:"small",onClick:ze},{default:y(()=>[...t[21]||(t[21]=[A("Retry",-1)])]),_:1})])):0===Y.value.length?(v(),l("div",Mr,[c(p,{name:"alert-circle-outline",class:"warning-icon"}),t[22]||(t[22]=n("div",{class:"warning-content"},[n("p",{class:"warning-title"},"No active volunteers found"),n("p",{class:"warning-description"},"You need active foster volunteers before you can send pleas.")],-1))])):(v(),l(x,{key:3},[n("div",jr,[ie.value?(v(),l("div",Wr,[c(ea,{modelValue:Z.value,"onUpdate:modelValue":t[5]||(t[5]=e=>Z.value=e),placeholder:"Search fosters...",clearable:!0},null,8,["modelValue"]),n("div",{class:"search-collapse",onClick:t[6]||(t[6]=e=>{ie.value=!1,Z.value=""})}," à ")])):(v(),l("div",{key:0,class:"search-icon-button",onClick:t[4]||(t[4]=e=>ie.value=!0)},[c(p,{name:"search-outline",size:12})])),n("div",Gr,[c(Ma,{label:"available"===ee.value?"Available (".concat(ke.value,") Ã"):"Available (".concat(ke.value,")"),selected:"available"===ee.value,disabled:0===ke.value,variant:"outlined",size:"sm",onClick:t[7]||(t[7]=e=>ee.value="available"===ee.value?"all":"available")},null,8,["label","selected","disabled"]),(v(!0),l(x,null,F(Se.value,e=>(v(),f(Ma,{key:e.value,label:ae.value.includes(e.value)?"".concat(e.label," Ã"):e.label,selected:ae.value.includes(e.value),disabled:e.disabled,variant:"outlined",size:"sm",onClick:a=>(e=>{const a=ae.value.indexOf(e);ae.value=a>=0?ae.value.filter(a=>a!==e):[...ae.value,e]})(e.value)},null,8,["label","selected","disabled","onClick"]))),128))])]),n("div",qr,[n("div",Hr,[n("span",null,"Showing "+r(Ce.value.length)+" of "+r(we.value),1),c(ne,{name:"fade"},{default:y(()=>[Ae.value?(v(),l("span",{key:0,class:"clear-filters-link",onClick:We},"Clear filters Ã")):u("",!0)]),_:1})]),n("div",$r,[n("span",Yr,r(xe.value)+" of "+r(Ce.value.length)+" selected",1),t[23]||(t[23]=n("span",{class:"recipients-separator"},"·",-1)),n("button",{class:"select-toggle-link",onClick:t[8]||(t[8]=e=>Fe.value?(()=>{const e=new Set(J.value);for(const a of Ce.value)e.delete(Pe(a));J.value=e})():(()=>{const e=new Set(J.value);for(const a of Ce.value)e.add(Pe(a));J.value=e})())},r(Fe.value?"Deselect All":"Select All"),1)])]),n("ul",Kr,[(v(!0),l(x,null,F(Ce.value,e=>(v(),l("li",{key:Pe(e),role:"option"},[c(ta,{foster:e,"is-selected":J.value.has(Pe(e)),selectable:!0,"hide-actions":!0,"animal-needs":he.value,animal:o.animalData,onSelect:je},null,8,["foster","is-selected","animal-needs","animal"])]))),128))]),0===Ce.value.length?(v(),l("div",Qr,[t[24]||(t[24]=n("p",{class:"helper-text"},"No fosters match your filters.",-1)),n("button",{class:"select-toggle-link",onClick:We},"Clear filters")])):u("",!0)],64))],64)):u("",!0)]),_(Re)?(v(),l("div",Jr,[t[26]||(t[26]=n("div",{class:"sms-credit-warning__icon","aria-hidden":"true"},"â ",-1)),n("div",Xr,[n("p",Zr,["empty"===_(Le)?(v(),l(x,{key:0},[A(" You're out of SMS credits. ")],64)):(v(),l(x,{key:1},[A(" You have "+r(_(Ee))+" SMS credit"+r(1===_(Ee)?"":"s")+" remaining. Only "+r(_(Ee))+" of "+r(_(Ve))+" foster"+r(1===_(Ve)?"":"s")+" will receive a text. ",1)],64))]),n("p",eu,r("empty"===_(Le)?"Fosters will still get email and in-app notifications.":"The rest will still get email and in-app notifications."),1),n("button",{type:"button",class:"sms-credit-warning__link",onClick:Ge},r("empty"===_(Le)?"Add SMS credits":"Upgrade SMS plan"),1)])])):u("",!0)])]),_:1},8,["is-open","can-dismiss"]),_(T)?u("",!0):(v(),f(st,{key:0,"is-open":_(V),loading:_(U),plans:_(D),onDismiss:_(E),onSelectPlan:_(R)},null,8,["is-open","loading","plans","onDismiss","onSelectPlan"]))],64))}}),[["__scopeId","data-v-2dc47d1c"]]);function tu({animal:e,currentUser:t}){const l=a(null),n=a(0),s=a([]),o=P(()=>{var e;const a=null==(e=l.value)?void 0:e.last_viewed_at;if(!a)return null;const t=new Date(a).getTime();return Number.isNaN(t)?null:t}),i=P(()=>{var e,a,l,n,s;const o=t.value;if(!o)return[];const i=[],r=String((null==(e=null==o?void 0:o.fosterProfile)?void 0:e.id)||(null==(a=null==o?void 0:o.fosterProfile)?void 0:a.foster_id)||(null==(l=null==o?void 0:o.fosterProfile)?void 0:l.uuid)||"");r&&i.push({type:"foster",id:r});const u=String((null==(n=null==o?void 0:o.staffProfile)?void 0:n.id)||(null==(s=null==o?void 0:o.staff)?void 0:s.id)||(null==o?void 0:o.staff_id
2)||"");return u&&i.push({type:"staff",id:u}),i}),r=e=>{var a,t;const l=i.value;if(0===l.length)return!1;const n=((null==(a=e.author)?void 0:a.type)||e.author_type||"").toString().toLowerCase(),s=String((null==(t=e.author)?void 0:t.id)||e.author_id||"");return!(!n||!s)&&l.some(e=>e.type===n&&e.id===s)},u=P(()=>{var a;return(null==(a=e.value)?void 0:a.health_notes)?e.value.health_notes.filter(e=>{var a,t;if(!0===e.is_system_note)return!1;if(null!=e.weight_update_grams&&Ge(e.note_text||"")&&!(null==(a=e.photos)?void 0:a.length))return!1;return"system"!==((null==(t=e.author)?void 0:t.type)||e.author_type||"").toString().toLowerCase()}).map(e=>{var a,t,l,s;return{id:e.id,author:(null==(a=e.author)?void 0:a.name)||e.author_name||"System",authorAvatar:(null==(t=e.author)?void 0:t.avatar)||e.author_avatar||"",date:e.createdAt?new Date(e.createdAt):new Date,updatedAt:e.updatedAt?new Date(e.updatedAt):void 0,text:e.note_text,type:e.note_type,weightGrams:"number"==typeof e.weight_update_grams?e.weight_update_grams:null,weightUnit:e.weight_update_unit||null,weightEstimated:Boolean(e.weight_estimated),authorId:String((null==(l=e.author)?void 0:l.id)||e.author_id||""),authorRole:(null==(s=e.author)?void 0:s.type)||e.author_type,photos:Array.isArray(e.photos)?e.photos:[],reactions:Array.isArray(e.reactions)?e.reactions:[],acknowledgements:Array.isArray(e.acknowledgements)?e.acknowledgements:[],acknowledgedBy:e.acknowledged_by||null,currentUserAcknowledgement:e.current_user_acknowledgement||null,isAcknowledgedByCurrentUser:Boolean(e.is_acknowledged_by_current_user),isSelfAuthored:r(e),isUnseenCareUpdate:!r(e)&&(!0===e.isUnseenCareUpdate||!e.is_system_note&&(null===o.value?n.value>0:new Date(e.createdAt||0).getTime()>o.value))}}):[]}),d=P(()=>s.value.filter(e=>"number"==typeof e.grams&&e.grams>0).map(e=>({date:e.recorded_at||e.createdAt||new Date,weightGrams:e.grams,author:e.recorded_by_name||""}))),c=P(()=>{var e,a,l,n,s;const o=t.value;return o?ie(o.role)?String((null==(e=null==o?void 0:o.fosterProfile)?void 0:e.id)||(null==(a=null==o?void 0:o.fosterProfile)?void 0:a.foster_id)||(null==(l=null==o?void 0:o.fosterProfile)?void 0:l.uuid)||""):String((null==(n=null==o?void 0:o.staffProfile)?void 0:n.id)||(null==(s=null==o?void 0:o.staff)?void 0:s.id)||(null==o?void 0:o.staff_id)||""):""});return{careUpdateUnseenCount:n,transformedHealthNotes:u,weightLogPoints:d,currentNoteAuthorId:c,loadCareUpdates:async(a,t=()=>!1)=>{const o=bt.getHealthNotesWithViewState(a),i=bt.getAnimalWeights(a);o.catch(()=>{}),i.catch(()=>{});try{const{notes:s,careUpdateViewState:i}=await o;if(t())return;l.value=i,n.value=(null==i?void 0:i.unseen_count)||0,e.value&&(e.value.health_notes=s.map(e=>((e,a,t)=>{var l,n,s,o;const i=(null==t?void 0:t.last_viewed_at)?new Date(t.last_viewed_at).getTime():null;return{id:e.id,animal_id:e.animal_id||a,author_id:e.author_id||null,author_type:e.author_type||e.author_role||null,note_text:e.note_text,note_type:e.note_type,is_system_note:e.is_system_note||!1,weight_update_grams:e.weight_update_grams||null,weight_update_unit:e.weight_update_unit||null,weight_estimated:e.weight_estimated||null,createdAt:e.createdAt||e.created_at,updatedAt:e.updatedAt||e.updated_at,photos:Array.isArray(e.photos)?e.photos:[],reactions:Array.isArray(e.reactions)?e.reactions:[],acknowledgements:Array.isArray(e.acknowledgements)?e.acknowledgements:[],acknowledged_by:e.acknowledged_by||null,current_user_acknowledgement:e.current_user_acknowledgement||null,is_acknowledged_by_current_user:Boolean(e.is_acknowledged_by_current_user),author:{id:(null==(l=e.author)?void 0:l.id)||e.author_id||"system",name:(null==(n=e.author)?void 0:n.name)||e.author_name||"System",avatar:(null==(s=e.author)?void 0:s.avatar)||e.author_avatar||null,type:(null==(o=e.author)?void 0:o.type)||e.author_role||e.author_type||"System"},isUnseenCareUpdate:!e.is_system_note&&(null===i?((null==t?void 0:t.unseen_count)||0)>0:new Date(e.createdAt||e.created_at||0).getTime()>i)}})(e,a,i))),((null==i?void 0:i.unseen_count)||0)>0&&bt.markHealthNotesViewed(a).then(e=>{e&&!t()&&(l.value={...e,last_viewed_at:(null==i?void 0:i.last_viewed_at)||e.last_viewed_at})})}catch(r){if(t())return;T.error("â Error loading health notes for animal",a,":",r),e.value&&!Array.isArray(e.value.health_notes)&&(e.value.health_notes=[]),l.value=null,n.value=0}try{const e=await i;if(t())return;s.value=e}catch(r){if(t())return;T.error("Error loading weight history for animal",a,":",r),s.value=[]}},handleAddNote:a=>{if(!e.value)return;e.value.health_notes||(e.value.health_notes=[]);const t={id:a.id,animal_id:e.value.id,author_id:a.authorId?parseInt(a.authorId):null,author_type:a.authorRole||"System",note_text:a.text,note_type:a.type||"general",is_system_note:!1,weight_update_grams:"number"==typeof a.weightGrams?a.weightGrams:null,weight_update_unit:a.weightUnit||null,weight_estimated:"boolean"==typeof a.weightEstimated?a.weightEstimated:null,createdAt:a.date,updatedAt:a.updatedAt||a.date,author:{id:a.authorId,name:a.author,avatar:a.authorAvatar||"",type:a.authorRole},photos:Array.isArray(a.photos)?a.photos:[],reactions:Array.isArray(a.reactions)?a.reactions:[],acknowledgements:Array.isArray(a.acknowledgements)?a.acknowledgements:[],acknowledged_by:a.acknowledgedBy||null,current_user_acknowledgement:a.currentUserAcknowledgement||null,is_acknowledged_by_current_user:Boolean(a.isAcknowledgedByCurrentUser)};e.value.health_notes.unshift(t)},handleEditNote:a=>{var t,l;const n=null==(l=null==(t=e.value)?void 0:t.health_notes)?void 0:l.find(e=>String(e.id)===String(a.id));n&&(n.note_text=a.text,n.updatedAt=a.updatedAt)},handleDeleteNote:a=>{var t;const l=null==(t=e.value)?void 0:t.health_notes;if(!l)return;const n=l.findIndex(e=>String(e.id)===String(a));-1!==n&&l.splice(n,1)},handleAcknowledgementChange:a=>{var t,l;const n=null==(l=null==(t=e.value)?void 0:t.health_notes)?void 0:l.find(e=>String(e.id)===String(a.noteId));n&&Object.assign(n,{reactions:a.response.reactions,acknowledgements:a.response.acknowledgements,acknowledged_by:a.response.acknowledged_by,current_user_acknowledgement:a.response.current_user_acknowledgement,is_acknowledged_by_current_user:a.response.is_acknowledged_by_current_user})}}}const lu=e=>{if(null==e||""===e)return null;const a=Number(e);return!Number.isInteger(a)||a<=0?null:String(a)};function nu(e){const{fosterVolunteers:a,currentUser:t,animalData:l,mappedAssignedFoster:n,resolveFosterIdentity:s}=e,o=se(),{showToast:i}=g(),r=e=>{var a;return lu(null!=(a=null==e?void 0:e.id)?a:null==e?void 0:e.foster_id)},u=e=>{var a,t,l;return lu(null!=(l=null!=(a=null==e?void 0:e.userId)?a:null==e?void 0:e.user_id)?l:null==(t=null==e?void 0:e.user)?void 0:t.id)},d=async e=>{const l=r(e);let n=u(e);try{const e=(await E.getUserChats()).find(e=>{if("foster"!==String((null==e?void 0:e.counterpartyProfileType)||"").trim().toLowerCase()||!(null==e?void 0:e.id))return!1;const a=lu(null==e?void 0:e.counterpartyProfileId),t=lu(null==e?void 0:e.counterpartyUserId);return l&&a===l||n&&t===n});if(null==e?void 0:e.id)return await o.push(At(t.value,String(e.id))),!0}catch(i){T.error("Failed loading chats before opening foster thread:",i)}if(n||(n=await(async e=>{const t=u(e);if(t)return t;const l=r(e);if(!l)return null;const n=a.value.find(e=>String(e.id)===l),s=u(n);if(s)return s;try{const e=await na.getFoster(l);return u(e)}catch(i){return T.error("Failed to resolve foster user ID for chat:",i),null}})(e)),!n)return!1;const s=await E.createDirectChat(String(n));return!!(null==s?void 0:s.id)&&(await o.push(At(t.value,String(s.id))),!0)},c=async e=>{var t,n;const{fosterData:o,method:i}=e,r=o;if(!r)return;let u=r;if(!r.phone&&(null==(n=null==(t=l.value)?void 0:t.assignedFoster)?void 0:n.id)){const e=a.value.find(e=>{var a,t;return e.id===(null==(t=null==(a=l.value)?void 0:a.assignedFoster)?void 0:t.id)});e&&(u={...r,...e})}const c=s(u).displayName;if("call"===i)if(u.phone)window.location.href="tel:".concat(u.phone);else{const e=await X.create({message:c?"No phone number available for ".concat(c):"No phone number available for this foster",duration:3e3,position:"top",color:"warning",cssClass:"app-toast"});await e.present()}else if("message"===i)try{if(!(await d(u))){const e=await X.create({message:c?"Unable to open a chat with ".concat(c," right now."):"Unable to open this chat right now.",duration:3e3,position:"top",color:"warning",cssClass:"app-toast"});await e.present()}}catch(p){T.error("Failed to open foster chat",p);const e=await X.create({message:c?"Unable to open a chat with ".concat(c," right now."):"Unable to open this chat right now.",duration:3e3,position:"top",color:"warning",cssClass:"app-toast"});await e.present()}};return{handleFosterMessage:async e=>{var t;const s=n.value||(null==(t=l.value)?void 0:t.assignedFoster),o=String(e||(null==s?void 0:s.id)||(null==s?void 0:s.foster_id)||"");if(!o)return;const r=a.value.find(e=>String(e.id)===o)||s;r?await c({fosterData:{...r,id:o,foster_id:o},method:"message"}):i("Unable to message this foster right now. Please try from the directory.","warning")},handleFosterCall:async()=>{var e;(null==(e=l.value)?void 0:e.assignedFoster)&&await c({fosterData:l.value.assignedFoster,method:"call"})}}}const su=new Set(["Pending_Confirmation","Pickup_Pending","With_Foster"]),ou=[Se.At_Shelter,Se.Adopted,Se.Transferred,Se.Deceased],iu=e=>ou.includes(e||""),ru=e=>{switch(e){case Se.At_Shelter:return"returned";
2case Se.Adopted:return"adopted";case Se.Transferred:return"transferred";default:return"other"}},uu=(e,a)=>{const t={...e},l=!0===t.assignment_completion_requested,n="string"==typeof t.status?t.status:a||null,s=t.assignment_completion_outcome||ru(n);return delete t.assignment_completion_requested,delete t.assignment_completion_outcome,l&&iu(n)&&(t.fosterAssignmentComplete=!0,t.fosterAssignmentOutcome=s),t},du={key:0,class:"error-container"},cu={class:"error-message"},pu={key:1,class:"profile-loading-shell","aria-hidden":"true"},vu={class:"responsive-container"},mu={key:2},gu={class:"animal-profile-page"},fu={class:"responsive-container"},_u={class:"profile-container"},hu={key:0,class:"care-journey-band","aria-hidden":"true"},yu={class:"desktop-layout"},bu={class:"layout-left"},wu={class:"hero-card"},ku={class:"animal-identity-card"},Su={class:"hero-row"},Au={class:"compact-info"},Cu={class:"compact-name-row"},xu={class:"compact-animal-name"},Fu={key:2,class:"public-intake-pill"},Nu={class:"compact-animal-id"},Iu={class:"compact-animal-age-stage"},Du={key:1,class:"urgent-text"},Uu={key:2,class:"plea-sent-time"},Pu={key:3,class:"sponsor-line"},Eu={key:1,class:"gap-placement-meta hero-stack-gap"},Tu={class:"gap-placement-item"},Ou={class:"gap-placement-value"},Vu={class:"gap-placement-item"},Ru={class:"gap-placement-value"},Lu={class:"layout-right"},Bu={class:"profile-content bento"},zu={class:"bento-full bento-row bento-row--profile-stats"},Mu={class:"bento-stack bento-stack--placement"},ju={class:"profile-section placement-section"},Wu={class:"bento-stack bento-stack--weight"},Gu={key:0,class:"care-updates-new-badge"},qu={class:"bento-full bento-row"},Hu={class:"profile-section appointments-card"},$u=m(e({__name:"AnimalProfilePage",setup(e){const s=re.isNativePlatform(),d=se(),m=ge(),{animals:h,fetchAnimals:x,deleteAnimal:F}=kt(),{enqueueWrite:N}=fe(),{showToast:I}=g(),{currentPlea:U,fetchPleaForAnimal:E}=Xe();let R=null;const L=a([]),B=a([]),z=a("Loading historyâ¦"),M=a(0),j=a(null),W=a(null),$=a(!0),Y=a(null),Q=a(null),J=a(null),Z=P(()=>{var e,a;return"public_intake_form"===(null==(e=Q.value)?void 0:e.intake_source_channel)?"Public intake":"partner_org"===(null==(a=Q.value)?void 0:a.intake_source_channel)?"Organization transfer":""}),ae=a(!1),te=a(!1),le=a(!1),ne=a(null),oe=a({}),ie=()=>{if(!le.value&&ne.value){const e=ne.value.getBoundingClientRect();oe.value={position:"fixed",top:"".concat(e.bottom+4,"px"),right:"".concat(window.innerWidth-e.right,"px")}}le.value=!le.value},be=a(!1),Fe=a(!1),Ne=a(!1),Ie=a(!1),De=a(!1),Ue=a(!1),Ee=a(!1),Te=async(e,a)=>{if(!e.value){e.value=!0;try{await a()}finally{e.value=!1}}},Oe=a(!1),Re=a(!1),je=a(!1),We=P(()=>{var e;return Ve(null!=(e=Q.value)?e:void 0)}),Ge=a(!1),ea=a(!1),aa=a(!1),ta=a(""),la=a(""),sa=a(xt()),oa=a(!1),ra=a(!1),ua=a(null),ca=a([]),pa=(e,a)=>{var t,l,n;const s=null!=(n=null!=(l=null!=(t=null==e?void 0:e.id)?t:null==e?void 0:e.foster_id)?l:a)?n:void 0,o=s?ca.value.find(e=>String(e.id)===String(s)):void 0,i=_e(null==o?void 0:o.first_name),r=_e(null==o?void 0:o.last_name),u=_e(null==o?void 0:o.name);let d=_e(null==e?void 0:e.first_name)||i,c=_e(null==e?void 0:e.last_name)||r;const p=_e(null==e?void 0:e.name)||u;if(!d&&!c&&p){const e=he(p);d=e.first_name,c=e.last_name}return{id:s?String(s):void 0,firstName:d,lastName:c,displayName:ye(d,c)||p,photoUrl:(null==e?void 0:e.photo_url)||(null==e?void 0:e.avatar)||(null==o?void 0:o.avatar)||void 0,phone:(null==e?void 0:e.phone)||(null==o?void 0:o.phone)||void 0}},va=P(()=>{var e,a;return String((null==(e=Q.value)?void 0:e.animal_id)||(null==(a=Q.value)?void 0:a.id)||"")}),ma=P(()=>{var e;return String((null==(e=Q.value)?void 0:e.id)||m.params.id||"")}),{groupDisplayInfo:ga,groupAnimals:fa,groupNavigationAnimals:_a,baseNavigationContext:ha,effectiveNavigationContext:ya,profileNavigationAnimals:ba,profileNavigationTitle:wa,groupContext:ka}=Ze({animal:Q,allAnimals:h,navigationContext:sa,currentAnimalId:ma}),Ca=async(e,a)=>{var t;const l=Q.value,n=ga.value;if(!l||!n||"staff"!==(null==(t=xa.value)?void 0:t.role))throw new Error("Only staff can rename a group or litter");const s=await N([l.id,...fa.value.map(e=>e.id)],()=>at.renameAnimalGroup(l.id,n.type,e,a),{trackStatus:!1}),o="litter"===n.type?"litter_name":"group_name",i=new Map(s.map(e=>[String(e.id),e])),r=e=>{const a=i.get(String(e.id));return a?{...e,[o]:a[o],updatedAt:a.updatedAt}:e};h.value=h.value.map(r),Q.value&&(Q.value=r(Q.value)),await I("".concat("litter"===n.type?"Litter":"Group"," name updated for ").concat(s.length," ").concat(1===s.length?"animal":"animals"),"success",2e3)},{user:xa,loadCurrentUserData:Fa}=O(),Na=P(()=>{var e;return Boolean(null==(e=Q.value)?void 0:e.sponsor_id)}),Ia=P(()=>{var e,a,t;const l=null==(t=null==(a=null==(e=Q.value)?void 0:e.sponsor)?void 0:a.name)?void 0:t.trim();return l?"Sponsored by ".concat(l):"Sponsored"}),Da=a(!1);K(async()=>{try{xa.value=await ue.get("currentUser");const{waitForAuthState:e}=await V(async()=>{const{waitForAuthState:e}=await import("./index-B7717Xy-.js").then(e=>e.fj);return{waitForAuthState:e}},__vite__mapDeps([1,2]));await Promise.race([e(),new Promise((e,a)=>setTimeout(()=>a(new Error("Auth timeout")),3e3))]),Da.value=!0}catch(e){Da.value=!0}});const Ua=P(()=>(({authReady:e,user:a,animal:t,isDevelopment:l=!1})=>{var n;if(!e)return!1;if((!l||a)&&"staff"!==(null==a?void 0:a.role))return!1;if(!t)return!1;const s=(null==(n=t.fosterActivity)?void 0:n.status)||t.status;return!su.has(s)})({authReady:Da.value,user:xa.value,animal:Q.value})),Pa=a(!1),{careUpdateUnseenCount:Ea,transformedHealthNotes:Ta,weightLogPoints:Va,currentNoteAuthorId:Ra,loadCareUpdates:La,handleAddNote:Ma,handleEditNote:ja,handleDeleteNote:Wa,handleAcknowledgementChange:qa}=tu({animal:Q,currentUser:xa}),Ha=a(!1),Ya=a(null),Ka=e=>{Ma(e),ka.value&&ka.value.count>1&&fa.value.length>0&&(Ya.value={text:e.text,type:e.type||"general",photos:e.photos},Ha.value=!0)},Qa=async e=>{Ha.value=!1;const a=Ya.value;if(Ya.value=null,"group"!==e||!a)return;const t=(a.photos||[]).map(e=>e.id).filter(e=>null!=e);try{await Promise.all(fa.value.map(async e=>{await bt.createHealthNote(String(e.id),{note_text:a.text,note_type:a.type}),t.length>0&&await $a.attachFilesToAnimal(e.id,t)}
2)),await I("Note added to ".concat(fa.value.length," other ").concat(1===fa.value.length?"animal":"animals"," in the group"),"success",2e3)}catch(l){T.error("Failed to apply note to group:",l),await I("Could not add the note to the rest of the group","danger",3e3)}},Ja=P(()=>B.value.find(e=>"active"===(null==e?void 0:e.status)&&"gap_foster"!==(null==e?void 0:e.type))||null),Xa=P(()=>{var e,a;if(!Q.value)return null;if(["Pickup_Pending","With_Foster","Foster_Assigned_Pending_Confirmation","Pending_Confirmation"].includes((null==(e=Q.value.fosterActivity)?void 0:e.status)||"")){const e=Q.value.assignedFoster,t=pa(e),l=Ja.value;return{foster_id:(null==e?void 0:e.id)||(null==e?void 0:e.foster_id)||"",foster_name:t.displayName,foster_avatar:t.photoUrl||"https://randomuser.me/api/portraits/men/32.jpg",assigned_at:Q.value.assigned_at||Q.value.updated_at||(new Date).toISOString(),expected_end_date:(null==l?void 0:l.expected_end_date)||null,confirmed_at:"Pickup_Pending"===(null==(a=Q.value.fosterActivity)?void 0:a.status)?Q.value.pickup_confirmed_at:null,pickup_time:Q.value.pickup_by}}return null}),Za=P(()=>{var e,a,t;return(null==(a=null==(e=Q.value)?void 0:e.fosterActivity)?void 0:a.status)||(null==(t=Q.value)?void 0:t.status)||"At_Shelter"}),et=P(()=>!!Q.value&&("boolean"==typeof Q.value.hasActivePrimaryFosterInPossession?Q.value.hasActivePrimaryFosterInPossession:"With_Foster"===Za.value&&Boolean(Q.value.assignedFoster||Q.value.assigned_foster_id))),st=P(()=>{const e=Q.value;return!!e&&Boolean(e.assignedFoster||e.assigned_foster_id||e.gapFoster||e.gap_foster_id)}),ot=e=>{var a;const t=Q.value;if(!t)return[];const l="string"==typeof e.status?e.status:null;if(l&&!ke.includes(l))return[];const n=String(t.assigned_foster_id||(null==(a=t.assignedFoster)?void 0:a.id)||""),s=String(t.organization_id||"");return fa.value.filter(e=>{var a;if(String(e.id)===String(t.id))return!1;if(s&&String(e.organization_id||"")!==s)return!1;if((e.status||"")!==(t.status||""))return!1;const l=String(e.assigned_foster_id||(null==(a=e.assignedFoster)?void 0:a.id)||"");return!n&&!l||l===n})},it=(e,a)=>(e.status||"")!==(a.status||"")?"status":"foster",rt=(e,a=it)=>{const t=Q.value;if(!t)return[];const l=String(t.organization_id||""),n=new Set(e.map(e=>String(e.id)));return fa.value.filter(e=>!(String(e.id)===String(t.id)||n.has(String(e.id))||l&&String(e.organization_id||"")!==l)).map(e=>({name:e.name||"#".concat(e.id),reason:a(e,t),status:e.status||null}))},ut=async(e,a,t)=>{const l=await Promise.allSettled(e.map(a));return l.forEach((a,l)=>{var n;"rejected"===a.status&&yt(a.reason,{component:"AnimalProfilePage",action:t,extra:{siblingId:null==(n=e[l])?void 0:n.id}})}),l.map((a,t)=>{var l,n;return"rejected"===a.status?(null==(l=e[t])?void 0:l.name)||"#".concat(null==(n=e[t])?void 0:n.id):null}).filter(e=>Boolean(e))},ct=new Set(["status","picked_up_by","urgent","visibility","on_hold","override"]),pt=async()=>{var e;const a=null==(e=Q.value)?void 0:e.id;await Promise.all([x().catch(()=>{}),a?gl(String(a),{showLoading:!1}).catch(()=>{}):Promise.resolve()])},vt=async(e,a,t={})=>{var l;const n=Q.value;if(!n)return!1;const s=(null==(l=ga.value)?void 0:l.displayText)||"the group",o=a.length+1,i=t.action||"group_status_update",r=t.failureMessage||"Failed to update status. Please try again.",u=e,d=((e,a)=>{var t;const{assigned_foster_id:l,...n}=e;if(void 0!==l&&String(l)!==String(null!=(t=n.picked_up_by)?t:""))return null;const s=Object.keys(n);return s.length&&s.every(e=>ct.has(e))?a===Se.With_Gap_Foster?null:n:null})(u,n.status);if(d){const e=[n,...a].map(e=>String(e.id));try{await N(e,()=>{const a=Object.fromEntries(e.map(e=>[e,bl(e)]));return at.batchUpdateAnimals(e,{...d,expectedVersions:a})},{trackStatus:!t.inlineStatus})}catch(p){return await ht(p,{component:"AnimalProfilePage",action:"".concat(i,"_batch"),fallbackMessage:r}),await pt(),!1}return await pt(),await I(En({updatedTotal:o,failedNames:[],leftOutNames:t.leftOutNames,groupName:s}),"success",3e3),!0}try{await yl(e,{silent:!0,inlineStatus:t.inlineStatus})}catch(p){if(t.inlineStatus&&Aa(p))throw p;return await ht(p,{component:"AnimalProfilePage",action:i,fallbackMessage:r}),!1}const c=await ut(a,e=>(async(e,a,t=!0)=>{const{update_notes:l,expectedVersion:n,...s}=a;await N(e.id,()=>at.updateAnimal(e,{...uu(s,null==e?void 0:e.status),...void 0!==n?{expectedVersion:bl(e.id)}:{}}),{trackStatus:t})})(e,u,!t.inlineStatus),"".concat(i,"_sibling"));return await pt(),await I(En({updatedTotal:o,failedNames:c,leftOutNames:t.leftOutNames,groupName:s}),c.length?"warning":"success",c.length?6e3:3e3),!0},mt=async(e,a=[],t=[])=>{var l;try{const l=await(async e=>{var a;const t=e.guest_foster;if(!t)return e;const l=null==(a=Q.value)?void 0:a.organization_id;if(!l)throw new Error("This animal needs an organization before a guest foster can be added");const n=await na.createGuestFoster({...t,organizationId:l}),s=String(n.id||n.foster_id||"");if(!s)throw new Error("Guest foster creation did not return an ID");Tl(n);const o={...e};return delete o.guest_foster,o.status===Se.With_Gap_Foster?o.gap_foster_id=s:(o.assigned_foster_id=s,o.picked_up_by=s),o})(e);a.length?await vt(l,a,{leftOutNames:t}):await yl(l)}catch(n){await ht(n,{component:"AnimalStatusUpdater",action:"save_guest_foster_status",fallbackMessage:"Failed to add the guest foster. Please try again.",extra:{animalId:null==(l=Q.value)?void 0:l.id}})}},gt=a(!1),ft=P(()=>Q.value?ot({}).length:0),_t=P(()=>Q.value?rt(ot({})):[]),At=P(()=>{const e=Q.value;if(!e)return[];const a=String(e.organization_id||"");return fa.value.filter(t=>String(t.id)!==String(e.id)&&(!a||String(t.organization_id||"")===a))}),Nt=P(()=>At.value.filter(e=>!Ba(e.status))),It=new Set(["urgent","on_hold","visibility","care_requirements","health_conditions"]),Dt=P(()=>Q.value?rt(Nt.value,()=>"outcome"):[]),Ut=P(()=>Q.value&&Ba(Q.value.status)&&Q.value.name||null),Pt=P(()=>{var e;return(null==(e=ka.value)?void 0:e.type)||"group"}),Et=async e=>{const{apply_to_group:a,...t}=e,l=Object.keys(t).some(e=>It.has(e)),n=!0===a?l?Nt.value:At.value:[];
2if(n.length){const e=l?Dt.value.map(e=>e.name):[];if(!(await vt(t,n,{action:"group_field_update",failureMessage:"Couldn't save that change. Please try again.",leftOutNames:e,inlineStatus:!0})))throw new Error("Group field update failed for the profile animal");return}await yl(t,{silent:!0,inlineStatus:!0})},Tt=async e=>{gt.value=!0;try{const{apply_to_group:a,...t}=e,l=!0===a?ot(t):[],n=l.length?rt(l).map(e=>e.name):[];await mt(t,l,n)}finally{gt.value=!1}},Ot=P(()=>{var e;return Ba(null==(e=Q.value)?void 0:e.status)}),Vt=P(()=>!Q.value||Ot.value||Be(Q.value)?"":Me(Q.value.attention)),Lt=P(()=>{var e;if(!Q.value)return!1;return"With_Gap_Foster"===((null==(e=Q.value.fosterActivity)?void 0:e.status)||Q.value.status)&&Boolean(Q.value.assignedFoster||Q.value.assigned_foster_id||Q.value.gapFoster||Q.value.gap_foster_id)}),Bt=P(()=>{var e;if(!Q.value)return"Unassigned";const a=Q.value.assigned_foster_id||(null==(e=Q.value.assignedFoster)?void 0:e.id);return(Q.value.assignedFoster||a)&&pa(Q.value.assignedFoster,a).displayName||"Unassigned"}),zt=P(()=>{var e;if(!Q.value)return"Unassigned";const a=Q.value.gap_foster_id||(null==(e=Q.value.gapFoster)?void 0:e.id);return(Q.value.gapFoster||a)&&pa(Q.value.gapFoster,a).displayName||"Unassigned"}),Mt=P(()=>{var e;if(!Q.value||!ka.value||ka.value.count<=1)return[];const a=String(Q.value.assigned_foster_id||(null==(e=Q.value.assignedFoster)?void 0:e.id)||"");return a?fa.value.filter(e=>{var t;return String(e.assigned_foster_id||(null==(t=e.assignedFoster)?void 0:t.id)||"")===a&&String(e.id)!==String(Q.value.id)}):[]}),jt=P(()=>{const e=Q.value;if(!e)return[];const a=String(e.organization_id||"");return Mt.value.filter(e=>e.status===Se.With_Foster&&(!a||String(e.organization_id||"")===a))}),Wt=P(()=>Q.value&&jt.value.length?rt(jt.value,()=>"not_with_foster"):[]),Gt=P(()=>Mt.value.map(e=>e.name||"Unknown").filter(Boolean)),qt=P(()=>{var e;if(null==(e=Q.value)?void 0:e.assignedFoster){const e=Q.value.assignedFoster,a=pa(e,e.id),t=ca.value.find(a=>String(a.id)===String(e.id));return{id:e.id,foster_id:e.id,userId:(null==t?void 0:t.userId)||e.userId,first_name:a.firstName,last_name:a.lastName,email:e.email||"",phone:a.phone||(null==t?void 0:t.phone)||"",photo_url:a.photoUrl||void 0,organization_id:e.organization_id||"default",status:"active",isAvailable:!0,happyToFoster:e.happyToFoster||{foster_types:["adult"],medical_comfort:["minor_injuries"]}}}return null}),Ht=a(null),$t=a(!1),Yt=async()=>{if(!Q.value||$t.value)return;const e=await H.create({header:"Edit name",inputs:[{name:"name",type:"text",value:Q.value.name||"",placeholder:"Animal name",attributes:{maxlength:255}}],buttons:[{text:"Cancel",role:"cancel"},{text:"Save",handler:e=>{var a;const t=String(null!=(a=null==e?void 0:e.name)?a:"").trim();return!!t&&(Kt(t),!0)}}]});await e.present()},Kt=async e=>{var a;if(!Q.value)return;const t=(Q.value.name||"").trim();if(e!==t){$t.value=!0;try{const t=Q.value.id,l=await N(t,()=>at.updateAnimalName(t,e),{trackStatus:!1}),n=null!=(a=null==l?void 0:l.updatedAt)?a:null==l?void 0:l.updated_at;Q.value={...Q.value,name:e,...n?{updatedAt:n,updated_at:n}:{}},n&&wl(Q.value.id,n);const s=await X.create({position:"top",message:"Name updated",duration:2e3,color:"success"});await s.present()}catch(l){T.error("Failed to update animal name:",l);const e=l instanceof Error&&l.message?l.message:"Failed to update name",a=await X.create({position:"top",message:e,duration:3e3,color:"danger"});await a.present()}finally{$t.value=!1}}},Qt=P(()=>{var e,a,t;if(!Q.value)return;const l="With_Gap_Foster"===((null==(e=Q.value.fosterActivity)?void 0:e.status)||Q.value.status),n=l?Q.value.gapFoster:Q.value.assignedFoster,s=l?Q.value.gap_foster_id:Q.value.assigned_foster_id;if(!n&&!s)return;const o=pa(n,s);return{id:(null==n?void 0:n.id)||(null==n?void 0:n.foster_id)||s,first_name:o.firstName,last_name:o.lastName,email:(null==n?void 0:n.email)||"",organization_id:(null==n?void 0:n.organization_id)||"default",isAvailable:(null==n?void 0:n.isAvailable)||!0,photo_url:o.photoUrl||(null==n?void 0:n.photo_url),happyToFoster:{foster_types:(null==(a=null==n?void 0:n.happyToFoster)?void 0:a.foster_types)||["adult"],medical_comfort:(null==(t=null==n?void 0:n.happyToFoster)?void 0:t.medical_comfort)||["minor_injuries"]},interestedInFostering:[]}}),Jt=P(()=>{var e,a;if(!(null==(a=null==(e=Q.value)?void 0:e.assignedFoster)?void 0:a.id))return;const t=pa(Q.value.assignedFoster);return{id:Q.value.assignedFoster.id,name:t.displayName,first_name:t.firstName,last_name:t.lastName,avatar:t.photoUrl,photo_url:t.photoUrl}}),Xt=P(()=>{var e,a,t,l,n;const s=null!=(n=null!=(l=null==(e=Q.value)?void 0:e.assigned_foster_id)?l:null==(t=null==(a=Q.value)?void 0:a.assignedFoster)?void 0:t.id)?n:null;return Le(ca.value,[s]).map(e=>{var a,t;return{id:e.id,name:e.name,first_name:e.first_name,last_name:e.last_name,avatar:e.avatar||void 0,photo_url:e.avatar||void 0,foster_types:(null==(a=e.happyToFoster)?void 0:a.foster_types)||[],phone:e.phone,userId:null!=(t=e.userId)?t:null}})}),{handleFosterMessage:Zt,handleFosterCall:el}=nu({fosterVolunteers:ca,currentUser:xa,animalData:Q,mappedAssignedFoster:qt,resolveFosterIdentity:pa}),{galleryPhotos:al,uploadingPhotos:tl,handlePhotoUpdate:ll,handleDeletePhotoByIndex:sl,refreshPhotoUrls:ol}=qe({animal:Q,currentUser:xa,refresh:()=>fl(m.params.id,{refreshAnimals:!0}),showToast:I}),il=a(!1),rl=a([]),ul=async e=>{var a,t;const l=new Set(((null==(a=Q.value)?void 0:a.photos)||[]).map(e=>e.id));await ll(e);const n=((null==(t=Q.value)?void 0:t.photos)||[]).filter(e=>!l.has(e.id)).map(e=>e.id);0!==n.length&&ka.value&&ka.value.count>1&&fa.value.length>0&&(rl.value=n,il.value=!0)},dl=async e=>{il.value=!1;const a=rl.value;if(rl.value=[],"group"===e&&0!==a.length)try{await Promise.all(fa.value.map(e=>$a.attachFilesToAnimal(e.id,a))),await I("Photo added to ".concat(fa.value.length," other ").concat(1===fa.value.length?"animal":"animals"," in the group"),"success",2e3)}catch(t){T.error("Failed to apply photo to group:",t),await I("Could not add the photo to the rest of the group","danger",3e3)}},cl=()=>{window.history.length>1?window.history.back():d.push({name:"AllAnimalsPage"})},pl=e=>e?{animalNavigationContext:e}:void 0,vl=async e=>{var a;const t=Ft(ha.value,_a.value,e,(null==(a=ga.value)?void 0:a.fullText)||"Animal group")||ha.value;d.push({name:"AnimalProfile",params:{id:e},state:pl(t)})};let ml=0;const gl=async(e,t={})=>{var l,n,s,o,i;const r=null==(l=t.showLoading)||l,u=++ml,d=()=>u!==ml;r&&($.value=!0,Y.value=null,B.value=[],W.value=null);try{const t=await(async e=>{try{return await kt().getAnimal(e)}catch(a){try{const a=await at.getAnimalByPublicId(e);return a&&T.warn("Animal profile resolved route param via animal_id fallback: requested=".concat(e," resolved=").concat(a.id)),a}catch(t){const l=a instanceof Error?a.message:String(a),n=t instanceof Error?t.message:String(t);return T.warn("Animal profile failed to resolve route param: requested=".concat(e," primary=").concat(l," fallback=").concat(n)),null}}})(e);if(!t)throw new Error("Animal not found");if(d())return;const l=za(t.status),r=null==(n=Q.value)?void 0:n.health_notes;Q.value={...t,photos:t.photos||[],health_notes:null!=(s=t.health_notes)?s:r,fosterActivity:{status:l,message:(null==(o=we[l])?void 0:o.description)||l,timestamp:new Date,pickup_time:t.pickup_by,pickup_date:t.pickup_date||void 0},assignedFoster:t.assignedFoster?{...t.assignedFoster}:void 0,gapFoster:t.gapFoster?{...t.gapFoster}:void 0},ol(),ae.value=null!=(i=t.urgent)&&i;const u=na.getAnimalAssignmentHistory(String(t.id)),m=La(String(t.id),d),g=Ol();R=function(e){const t=a([]),l=a(!1),n=a(null),s=a(null),o=a(null),i=P(()=>t.value.filter(e=>"interested"===e.response_type)),r=P(()=>t.value.filter(e=>"maybe"===e.response_type)),u=P(()=>t.value.filter(e=>"not_interested"===e.response_type)),d=P(()=>t.value.filter(e=>"already_committed"===e.response_type)),c=P(()=>t.value.filter(e=>"individual"===e.interest_type)),p=P(()=>t.value.filter(e=>"litter"===e.interest_type)),v=P(()=>t.value.filter(e=>"group"===e.interest_type));return{interests:t,loading:l,error:n,animalContext:s,summary:o,interestedFosters:i,maybeFosters:r,notInterestedFosters:u,committedFosters:d,individualInterests:c,litterInterests:p,groupInterests:v,fetchAnimalInterests:async function(a){l.value=!0,n.value=null;try{const l=await tt(e,a);t.value=l.responses,s.value=l.animal,o.value=l.summary}catch(i){n.value=i.message||"Failed to fetch animal interests",T.error("Error fetching animal interests:",i)}finally{l.value=!1}},getInterestDescription:function(e){return"individual"===e.interest_type?"interested in this animal":"litter"===e.interest_type?"interested in ".concat(e.litter_name," litter"):"group"===e.interest_type?"interested in ".concat(e.group_name," group"):"interested"}}}(t.id);const f=R.fetchAnimalInterests();
2[u,m,g,f].forEach(e=>{Promise.resolve(e).catch(()=>{})});let _=[];try{const e=await u;if(d())return;_=Array.isArray(e)?e:[],B.value=_}catch(c){T.error("Error loading assignment history:",c),B.value=[]}if(await m,d())return;try{if(await g,await f,d())return;L.value=R.interests.value.map(e=>({...e,id:e.id,response_type:e.response_type,interest_type:e.interest_type,litter_name:e.litter_name,group_name:e.group_name,message:e.notes||e.message||"",created_at:e.created_at,foster:(()=>{var a,t,l;const n=pa(e.foster,e.foster_id);return{...e.foster||{},id:(null==(a=e.foster)?void 0:a.id)||e.foster_id,first_name:n.firstName,last_name:n.lastName,name:n.displayName,phone:(null==(t=e.foster)?void 0:t.phone)||n.phone,photo_url:(null==(l=e.foster)?void 0:l.photo_url)||n.photoUrl}})()}))}catch(p){T.error("Error loading foster responses:",p),L.value=[]}try{const e=_.find(e=>"declined_by_foster"===(null==e?void 0:e.outcome));if(e){const a=pa(e.foster,e.foster_id),t=Ce(e.notes);W.value={foster_name:a.displayName||"Assigned foster",declined_at:e.end_date||e.updated_at||e.updatedAt||e.created_at||e.createdAt||(new Date).toISOString(),reason:t.reason,comment:t.comment}}}catch(v){T.error("Error resolving latest decline info:",v)}if(M.value+=1,"Pickup_Pending"===l&&t.pickup_by?j.value={datetime:t.pickup_by}:j.value=null,t.plea_id)try{await E(t.id)}catch(p){T.error("Error loading plea data:",p)}}catch(m){r||!Q.value?Y.value=m:T.error("Error silently refreshing animal profile data:",m)}finally{r&&!d()&&($.value=!1)}},fl=async(e,a)=>{var t;const l=null==(t=null==a?void 0:a.showLoading)||t;l&&($.value=!0);const n=[gl(e,{showLoading:l})];(null==a?void 0:a.refreshAnimals)&&n.push(x().catch(e=>{T.error("Error refreshing animals context:",e)})),await Promise.all(n)};de(async()=>{const e=m.params.id;e&&await fl(String(e),{refreshAnimals:!0,showLoading:!1})});const _l=()=>{const e=m.params.id;e&&fl(e,{refreshAnimals:!0})},hl=async e=>{try{const e=m.params.id;if(!e)return;await fl(String(e),{refreshAnimals:!0,showLoading:!1})}catch(a){T.error("Error refreshing animal profile data:",a)}finally{e.detail.complete()}},yl=(e,a)=>{var t;const l=null==(t=Q.value)?void 0:t.id;return l?N(l,()=>kl(e,a),{trackStatus:!(null==a?void 0:a.inlineStatus)}):Promise.resolve()},bl=e=>{var a,t;const l=Q.value,n=l&&String(l.id)===String(e)?l:h.value.find(a=>String(a.id)===String(e));return null!=(t=null!=(a=null==n?void 0:n.updatedAt)?a:null==n?void 0:n.updated_at)?t:null},wl=(e,a)=>{h.value=h.value.map(t=>String(t.id)===String(e)?{...t,updatedAt:a,updated_at:a}:t)},kl=async(e,a)=>{var t,l,n,s,o,i,r,u;if(!Q.value)return;const d=Q.value.id,c=!0===(null==a?void 0:a.silent);try{const a={...e},n=a.update_notes;n&&delete a.update_notes;const s=!0===a.assignment_completion_requested,o="string"==typeof a.status?a.status:Q.value.status,i=a.assignment_completion_outcome||ru(o);delete a.assignment_completion_requested,delete a.assignment_completion_outcome;const r=s&&iu(o);r&&(a.fosterAssignmentComplete=!0,a.fosterAssignmentOutcome=i);const u=await at.updateAnimal(Q.value,a);if(Q.value){const{fosterAssignmentComplete:e,fosterAssignmentOutcome:n,expectedVersion:s,...o}=a,i={...Q.value,...o};if(void 0!==o.animal_id&&(i.animal_id=String(o.animal_id||"")),"string"==typeof o.status&&i.fosterActivity){const e=za(o.status);i.fosterActivity={...i.fosterActivity,status:e,message:(null==(t=we[e])?void 0:t.description)||e}}const r=null!=(l=null==u?void 0:u.updatedAt)?l:null==u?void 0:u.updated_at;null!=r&&(i.updatedAt=r,i.updated_at=r,wl(d,r)),Q.value=i}if(s&&!r&&d&&await(async({animalId:e,outcome:a,notes:t})=>{const l=await na.getAnimalAssignmentHistory(e),n=Array.isArray(l)?l.filter(e=>"active"===(null==e?void 0:e.status)):[];if(0===n.length)return 0;const s=(new Date).toISOString();return await Promise.all(n.map(e=>na.completeAssignment(String(e.id),{endDate:s,outcome:a,notes:t}))),n.length})({animalId:String(d),outcome:i,notes:"string"==typeof n&&n.trim().length>0?n.trim():void 0}),n&&d&&await bt.createHealthNote(String(d),{note_text:n,note_type:"general"}),!c){await gl(String(d),{showLoading:!1});const e=await X.create({message:"Animal updated successfully",duration:2e3,position:"top",color:"success",cssClass:"app-toast"});await e.present()}}catch(p){if(Aa(p)){if(c)throw e.expectedVersion&&d&&await gl(String(d),{showLoading:!1}
2).catch(()=>{}),p;d&&await gl(String(d),{showLoading:!1});const a=await X.create({message:"Looks like this animal was updated at the same time, so your change did not go through. Please try it again.",duration:6e3,position:"top",color:"warning",cssClass:"app-toast"});return void(await a.present())}const a=p,t=new Set(["OUTCOME_CORRECTION_OVERRIDE_REQUIRED","OUTCOME_CORRECTION_FORBIDDEN"]).has((null==(n=a.responseData)?void 0:n.code)||"")||Boolean(e.override)&&"OVERRIDE_REASON_REQUIRED"===(null==(s=a.responseData)?void 0:s.code),l=409===(null==a?void 0:a.status)||"animal_id"===(null==a?void 0:a.field)||/animal id/i.test((null==a?void 0:a.message)||""),v=t||l?a.message:"Failed to update animal";if(yt(p,{component:"UpdateAnimalModal",action:"update_animal",extra:{animalId:null==(o=Q.value)?void 0:o.id,animalRecordId:null==(i=Q.value)?void 0:i.animal_id,organizationId:null==(r=Q.value)?void 0:r.organization_id,currentStatus:null==(u=Q.value)?void 0:u.status,requestedUpdates:e}}),c)throw p;const m=await X.create({message:v,duration:2e3,position:"top",color:"danger",cssClass:"app-toast"});await m.present()}},Sl=()=>{Q.value&&(Ge.value=!0)},Al=async e=>{var a,t;if(!Q.value)return;const l=[Q.value,...e.includeGroup&&e.groupAnimals||[]],n=Array.from(new Set(l.map(e=>(null==e?void 0:e.id)||(null==e?void 0:e.animal_id)).filter(Boolean))),s=l.some(e=>null==e?void 0:e.urgent)?"Immediate":"High",o=null!=(t=null==(a=xa.value)?void 0:a.organization_id)?t:null;try{const a=await dt.createPlea(n,e.message,s,o),t={};!e.sendToAll&&e.fosterIds.length>0?t.fosterIds=e.fosterIds:t.filter=e.sendToAvailable?"available":"all",await dt.sendPlea(a.id,t),ea.value=!1,gl(m.params.id,{showLoading:!1})}catch(i){await ht(i,{component:"SendPleaModal",action:"send_plea",fallbackMessage:"Failed to send plea. Please try again.",extra:{animalIds:n,sendToAll:e.sendToAll,sendToAvailable:e.sendToAvailable,fosterCount:e.fosterIds.length}})}},Cl=()=>{Q.value&&gl(m.params.id,{showLoading:!1})},{fetchFosters:xl,fosters:Fl,loadMore:Nl,hasMorePages:Il,isLoading:Dl,resetPagination:Pl}=St({pageSize:100}),El=e=>{var a,t,l,n,s,o,i,r;const u=pa(e,e.id||e.foster_id);return{...e,id:e.id||e.foster_id,userId:e.userId,first_name:u.firstName,last_name:u.lastName,name:u.displayName,avatar:e.avatar||e.photo_url||void 0,skills:(null==(t=null==(a=e.happyToFosterDetailed)?void 0:a.foster_types)?void 0:t.join(", "))||(Array.isArray(null==(l=e.happyToFoster)?void 0:l.foster_types)?e.happyToFoster.foster_types.join(", "):""),available:null==(n=e.isAvailable)||n,phone:e.phone||e.phoneNumber,happyToFoster:{foster_types:(null==(s=e.happyToFosterDetailed)?void 0:s.foster_types)||(null==(o=e.happyToFoster)?void 0:o.foster_types)||["adult"],medical_comfort:(null==(i=e.happyToFosterDetailed)?void 0:i.medical_comfort)||(null==(r=e.happyToFoster)?void 0:r.medical_comfort)||["minor_injuries"]}}};t(Fl,e=>{ca.value=(e||[]).map(e=>El(e))},{immediate:!0});const Tl=e=>{if(!e)return;const a=El(e);(null==a?void 0:a.id)&&(ca.value.some(e=>String(e.id)===String(a.id))||(ca.value=[a,...ca.value]))},Ol=async({reset:e=!1}={})=>{try{if(!e&&ca.value.length)return;Pl(),await xl({status:"active",page:1});let a=-1;for(;Il.value&&Fl.value.length!==a;)a=Fl.value.length,await Nl()}catch(a){T.error("Failed to load fosters",a)}},Vl=()=>{Fe.value=!1},Rl=async()=>{await G(),await new Promise(e=>{window.setTimeout(e,50)})},Ll=e=>{Fe.value=e},Bl=e=>{if(!Q.value)return[];const a=String(Q.value.id||Q.value.animal_id||"");if("group"!==e||!ka.value||ka.value.count<=1)return a?[a]:[];const t=(Array.isArray(ka.value.animalRecordIds)&&ka.value.animalRecordIds.length>0?ka.value.animalRecordIds:[Q.value,...fa.value].map(e=>e.id)).map(e=>String(e||"")).filter(Boolean),l=Array.from(new Set(t));return l.length>0?l:a?[a]:[]},zl=e=>Te(De,()=>Ml(e)),Ml=async e=>{var a,t,l;try{if(!Q.value)return;const l=(null==e?void 0:e.fosterIds)||[];let n=l[0]?String(l[0]):"";const s=Boolean(e.guestFoster);if(e.guestFoster){const a=Q.value.organization_id;if(!a)return void I("This animal needs an organization before a guest foster can be added","danger");const t=await na.createGuestFoster({...e.guestFoster,organizationId:a});Tl(t),n=String(t.id||t.foster_id||"")}if(!n)return void I("Please select a foster first","warning");const o=ca.value.find(e=>String(e.id)===n),i=o?pa(o,n):null,r=(null==(a=e.guestFoster)?void 0:a.name)||(null==i?void 0:i.displayName)||"Selected foster",u=Q.value.name||"this animal",d=!!Xa.value,c="With_Gap_Foster"===((null==(t=Q.value.fosterActivity)?void 0:t.status)||Q.value.status)?"gap_foster":"foster",p=Bl(e.assignScope);if(0===p.length)return void I("No animals found to assign","danger");const v=await N(p,()=>na.assignAnimalsToFoster(n,p,e.note||void 0,c,s,e.expectedEndDate||void 0));if(!(null==v?void 0:v.message))throw new Error("Assignment request did not return a success response");if(await fl(m.params.id,{refreshAnimals:!0,showLoading:!1}),s||d||p.length>1){const e=p.length>1?"".concat(p.length," animals"):u,a=await X.create({message:s?"Assigned ".concat(e," to guest foster ").concat(r):d?"Successfully reassigned ".concat(e," to ").concat(r):"Approved ".concat(r," for ").concat(e," â they'll book a pickup next"),duration:3e3,position:"top",color:"success",cssClass:"app-toast"});await a.present()}else ta.value=r,la.value=u,aa.value=!0}catch(n){await ht(n,{component:"FosterAssignModal",action:"assign_foster",fallbackMessage:"Failed to assign foster. Please try again.",extra:{animalId:null==(l=Q.value)?void 0:l.id,fosterIds:null==e?void 0:e.fosterIds,assignScope:null==e?void 0:e.assignScope,isGuestAssignment:Boolean(null==e?void 0:e.guestFoster)}})}},jl=e=>{var a,t;return String((null==e?void 0:e.assigned_foster_id)||(null==(a=null==e?void 0:e.assignedFoster)?void 0:a.id)||(null==(t=qt.value)?void 0:t.id)||"")},Wl=e=>lu(null==e?void 0:e.id),Gl=async()=>
2{if(!Q.value)return;if(Mt.value.length>0&&!!ka.value)return await Rl(),void(ra.value=!0);await Yl("individual")},ql=async e=>{ra.value=!1,"cancel"!==e&&await Hl(e)},Hl=e=>Te(Ue,()=>$l(e)),$l=async e=>{if(!Q.value)return;const a=qt.value?"".concat(qt.value.first_name," ").concat(qt.value.last_name):"this foster",t=Q.value.name||"this animal",l=Mt.value;try{const n=jl(Q.value),s=Wl(Q.value);if(!s)throw new Error("This animal is missing a record ID. Please refresh and try again.");const o=[s];if("group"===e)for(const e of l){const a=Wl(e);a&&o.push(a)}const i=(await Promise.all(o.map(e=>(async(e,a)=>{try{const t=await na.getAnimalAssignmentHistory(e);if(!Array.isArray(t))return null;const l=t.find(e=>{var t;return"active"===(null==e?void 0:e.status)&&("gap_foster"!==(null==e?void 0:e.type)&&(!a||String((null==e?void 0:e.foster_id)||(null==(t=null==e?void 0:e.foster)?void 0:t.id)||"")===a))});if(null==l?void 0:l.id)return String(l.id);const n=t.find(e=>"active"===(null==e?void 0:e.status)&&"gap_foster"!==(null==e?void 0:e.type));return(null==n?void 0:n.id)?String(n.id):null}catch(t){throw T.error("Failed to resolve active assignment id",t),t}})(e,n)))).filter(e=>Boolean(e)),r=[...new Set(i)];if(0===r.length){const e=B.value.find(e=>{var a;if("active"!==(null==e?void 0:e.status))return!1;if("gap_foster"===(null==e?void 0:e.type))return!1;if(!n)return!0;return String((null==e?void 0:e.foster_id)||(null==(a=null==e?void 0:e.foster)?void 0:a.id)||"")===n});(null==e?void 0:e.id)&&r.push(String(e.id))}if(0===r.length)return void I("No active assignments found","warning");const u=Q.value.id;1===r.length?await N(u,()=>na.unassignFoster(r[0])):await N(u,()=>na.batchUnassignFoster(r)),await fl(m.params.id,{refreshAnimals:!0,showLoading:!1});const d=r.length>1?"".concat(r.length," animals"):t;I("Successfully unassigned ".concat(a," from ").concat(d),"success")}catch(n){const e=n instanceof Error?n.message:"Unknown error";I("Failed to unassign foster: ".concat(e),"danger")}},Yl=async e=>{if(!Q.value)return;const a=qt.value?"".concat(qt.value.first_name," ").concat(qt.value.last_name):"this foster",t=Q.value.name||"this animal",l=Mt.value;let n;if(l.length,l.length>0){const e=l.map(e=>e.name).join(", ");n="Unassign ".concat(a," from ").concat(t,"? ").concat(a," will remain assigned to ").concat(e,". We'll let them know about this change.")}else n="Unassign ".concat(a," from ").concat(t,"? We'll let them know about this change.");await Rl();const s=await H.create({header:"Unassign Foster",message:n,buttons:[{text:"Cancel",role:"cancel"},{text:"Unassign",role:"destructive",handler:async()=>{await Hl(e)}}]});await s.present()},Kl=async(e,a,t)=>{var l,n;try{if(!Q.value||!e.length)return void I("Missing required data","danger");const s=e[0],o=L.value.find(e=>e.id===s);if(!o||!o.foster)return void I("Foster information not found","danger");const i=(null==(l=o.foster)?void 0:l.id)||o.foster_id;if(!i)return void I("Unable to determine foster for assignment","danger");const r=pa(o.foster,i).displayName,u=Q.value.name||"this animal",d=!!Xa.value,c="With_Gap_Foster"===((null==(n=Q.value.fosterActivity)?void 0:n.status)||Q.value.status)?"gap_foster":"foster",p=String(Q.value.id||Q.value.animal_id||"");if(!!ka.value&&ka.value.count>1){const e=o.interest_type;return ua.value={fosterId:String(i),fosterName:r,extraDetails:a||void 0,expectedEndDate:t||void 0,interestType:e,isReassignment:d},void(oa.value=!0)}const v=await N(p,()=>na.assignAnimalsToFoster(String(i),[p],a||void 0,c,!1,t||void 0));if(!(null==v?void 0:v.message))throw new Error("Assignment request did not return a success response");await fl(m.params.id,{refreshAnimals:!0,showLoading:!1}),d?I("Successfully reassigned ".concat(u," to ").concat(r),"success"):(ta.value=r,la.value=u,aa.value=!0)}catch(s){T.error("Error preparing assignment from response:",s);const e=s instanceof Error?s.message:"Unknown error";I("Failed to assign foster: ".concat(e),"danger")}},Ql=P(()=>{var e,a;if(!ua.value)return"";const{fosterName:t,interestType:l}=ua.value,n=(null==(e=ka.value)?void 0:e.displayName)||"this group",s="group"===l||"litter"===l?"the ".concat(l):"this animal individually";return"Assign ".concat(t," to all ").concat((null==(a=ka.value)?void 0:a.count)||0," animals in ").concat(n,"? ").
2concat(t," expressed interest in ").concat(s,".")}),Jl=P(()=>{var e;const a=null==(e=ua.value)?void 0:e.interestType;return"group"===a||"litter"===a?"group":"individual"}),Xl=async e=>{var a;if(oa.value=!1,"cancel"===e||!ua.value||!Q.value)return void(ua.value=null);const{fosterId:t,fosterName:l,extraDetails:n,expectedEndDate:s,isReassignment:o}=ua.value,i=Q.value.name||"this animal",r="With_Gap_Foster"===((null==(a=Q.value.fosterActivity)?void 0:a.status)||Q.value.status)?"gap_foster":"foster",u=Bl(e);if(0===u.length)return I("No animals found to assign","danger"),void(ua.value=null);try{const e=await N(u,()=>na.assignAnimalsToFoster(t,u,n,r,!1,s||void 0));if(!(null==e?void 0:e.message))throw new Error("Assignment request did not return a success response");if(await fl(m.params.id,{refreshAnimals:!0,showLoading:!1}),o||u.length>1){const e=u.length>1?"".concat(u.length," animals"):i;I(o?"Successfully reassigned ".concat(e," to ").concat(l):"Approved ".concat(l," for ").concat(e," â they'll book a pickup next"),"success")}else ta.value=l,la.value=i,aa.value=!0}catch(d){const e=d instanceof Error?d.message:"Unknown error";I("Failed to assign foster: ".concat(e),"danger")}finally{ua.value=null}},Zl=async()=>{try{ca.value.length||await Ol({reset:!0}),await Rl(),Fe.value=!0}catch(e){T.error("[Reassign] error:",(null==e?void 0:e.message)||e)}},en=async()=>{await Ol({reset:!0}),be.value=!0},an=async()=>{Q.value&&(Oe.value=!0)},tn=()=>{Ja.value?Re.value=!0:I("No active foster assignment found","danger")},ln=async(e,a={})=>{if(Q.value&&!je.value){je.value=!0;try{const t=Q.value;await N(t.id,()=>at.updateAnimal(t,{expected_end_date:e}));const l=a.applyToGroup?jt.value:[],n=l.length?Wt.value.map(e=>e.name):[],s=await ut(l,a=>N(a.id,()=>at.updateAnimal(a,{expected_end_date:e})),"group_expected_end_date_sibling");await Promise.all([fl(m.params.id,{showLoading:!1}),l.length?x().catch(()=>{}):Promise.resolve()]),Re.value=!1;const o=l.length+1,i=o+n.length,r=n.length?" ".concat(Pn(n)):"",u=e?"updated":"cleared";s.length?I("Updated ".concat(o-s.length," of ").concat(i,". Couldn't update: ").concat(s.join(", "),".").concat(r),"warning"):l.length&&n.length?I("Expected return date ".concat(u," for ").concat(o," of ").concat(i," animals.").concat(r),"success"):l.length?I("Expected return date ".concat(u," for all ").concat(o," animals"),"success"):I(e?"Expected return date updated":"Expected return date cleared","success")}catch(t){const e=t instanceof Error?t.message:"Unable to update expected return date";I(e,"danger")}finally{je.value=!1}}},nn=e=>Te(Ee,()=>sn(e)),sn=async e=>{var a,t,l;if(Q.value)try{const l="group"===e.scope;if(l&&ka.value)await(async e=>{var a,t,l,n,s,o;try{const r=e.groupContext.animalIds||[],u=h.value.filter(e=>r.includes(e.animal_id));if(0===u.length)throw new Error("No animals found in group. Looking for: ".concat(r.join(", ")));let d=0;const c=[];if("Assign Foster"===e.action)for(const s of u)try{if(e.actionData){const o=pa(e.actionData.foster,e.actionData.foster_id),i=o.displayName;s.assignedFoster={id:e.actionData.foster_id,foster_id:e.actionData.foster_id,first_name:o.firstName,last_name:o.lastName,email:(null==(a=e.actionData.foster)?void 0:a.email)||"",phone:o.phone,photo_url:o.photoUrl,organization_id:(null==(t=e.actionData.foster)?void 0:t.organization_id)||"default",status:"active",isAvailable:(null==(l=e.actionData.foster)?void 0:l.isAvailable)||!0,happyToFoster:null==(n=e.actionData.foster)?void 0:n.happyToFoster},s.fosterActivity={status:"Pending_Confirmation",message:"Approved for ".concat(i," (Group) · awaiting booking"),timestamp:new Date},d++,c.push("".concat(s.name,": Approved â awaiting booking"))}}catch(i){c.push("".concat(s.name,": Failed - ").concat(i))}else if("Mark as Picked Up"===e.action){const a=e.actionData,t=_e(null==a?void 0:a.fosterName),l=null==a?void 0:a.fosterId;if(!l)throw new Error("Missing foster id for group pickup");const n=u.map(e=>String(e.id)).filter(Boolean),o=await N(n,()=>{var e;return at.batchUpdateAnimals(n,{status:Se.With_Foster,picked_up_by:l,expected_end_date:null!=(e=null==a?void 0:a.expectedEndDate)?e:null})}),i=new Map(o.map(e=>[String(e.id),e])),r=ca.value.find(e=>String(e.id)===String(l));for(const e of u){const a=i.get(String(e.id)),l=(null==a?void 0:a.pickup_date)?new Date(a.pickup_date):new Date,n=null!=(s=null==a?void 0:a.updatedAt)?s:null==a?void 0:a.updated_at;n&&(e.updatedAt=n),e.status=Se.With_Foster,e.fosterActivity={status:Se.With_Foster,message:"Picked up by ".concat(t," (Group Pickup)"),timestamp:l,pickup_date:l.toISOString()}
2,r&&(e.assignedFoster={id:r.id,foster_id:r.id,first_name:r.name.split(" ")[0]||"",last_name:r.name.split(" ").slice(1).join(" ")||"",email:"",phone:r.phone,photo_url:r.avatar,organization_id:"default",status:"active",isAvailable:r.available,happyToFoster:r.happyToFoster}),d++,c.push("".concat(e.name,": Picked up by ").concat(t))}}else c.push('Group action "'.concat(e.action,'" applied to ').concat(u.length," animals")),d=u.length;if(Q.value){const e=u.find(e=>{var a,t;return e.id===(null==(a=Q.value)?void 0:a.id)||e.animal_id===(null==(t=Q.value)?void 0:t.animal_id)});e&&(Q.value.fosterActivity=e.fosterActivity,e.assignedFoster&&(Q.value.assignedFoster=e.assignedFoster))}let p;if("Mark as Picked Up"===e.action&&(null==(o=e.actionData)?void 0:o.fosterName)){const a=e.actionData.fosterName;p=d===u.length?"".concat(e.groupContext.displayName," marked as picked up by ").concat(a):"".concat(d,"/").concat(u.length," animals in ").concat(e.groupContext.displayName," marked as picked up by ").concat(a)}else p=d===u.length?"".concat(e.action," applied to all ").concat(d," animals in ").concat(e.groupContext.displayName):"".concat(e.action," applied to ").concat(d,"/").concat(u.length," animals in ").concat(e.groupContext.displayName);const v=await X.create({message:p,duration:5e3,position:"top",color:d===u.length?"success":"warning",cssClass:"app-toast"});await v.present()}catch(i){const a=await X.create({message:"â Failed to apply ".concat(e.action," to group: ").concat(i),duration:4e3,position:"top",color:"danger",cssClass:"app-toast"});await a.present()}})({action:"Mark as Picked Up",groupContext:ka.value,actionData:e}),m.params.id&&await fl(m.params.id,{showLoading:!1});else{const l=Q.value,n=await N(l.id,()=>at.updateAnimal(l,{status:Se.With_Foster,picked_up_by:e.fosterId,expected_end_date:e.expectedEndDate}));Q.value.status=Se.With_Foster;const s=null!=(a=null==n?void 0:n.updatedAt)?a:null==n?void 0:n.updated_at;s&&(Q.value.updatedAt=s);const o=n.pickup_date?new Date(n.pickup_date):new Date;if(Q.value.fosterActivity){const a=Se.With_Foster;Q.value.fosterActivity.status=a,Q.value.fosterActivity.message="Picked up by ".concat(e.fosterName),Q.value.fosterActivity.timestamp=o,Q.value.fosterActivity.pickup_date=o.toISOString()}else Q.value.fosterActivity={status:Se.With_Foster,message:"Picked up by ".concat(e.fosterName),timestamp:o,pickup_date:o.toISOString()};if(e.fosterId!==(null==(t=Q.value.assignedFoster)?void 0:t.id)){const a=ca.value.find(a=>a.id===e.fosterId);a&&(Q.value.assignedFoster={id:a.id,foster_id:a.id,first_name:a.name.split(" ")[0]||"",last_name:a.name.split(" ").slice(1).join(" ")||"",email:"",phone:a.phone,photo_url:a.avatar,organization_id:"default",status:"active",isAvailable:a.available,happyToFoster:a.happyToFoster})}m.params.id&&await fl(m.params.id,{showLoading:!1})}if(Oe.value=!1,!l){const a=await X.create({message:"".concat(Q.value.name," marked as picked up by ").concat(e.fosterName),duration:3e3,position:"top",color:"success",cssClass:"app-toast"});await a.present()}}catch(n){await ht(n,{component:"PickupConfirmModal",action:"mark_picked_up",fallbackMessage:"Failed to mark as picked up. Please try again.",extra:{animalId:null==(l=Q.value)?void 0:l.id,scope:e.scope,fosterId:e.fosterId}})}else I("No animal data available","danger")},on=async e=>{var a,t,l,n,s,o;if(Ne.value=!1,qt.value){const n=String(null!=(l=null==(t=null==(a=e.response)?void 0:a.foster)?void 0:t.id)?l:"");if(!n)return;await rn({fosterId:n,reason:e.details||void 0,markPickedUp:e.alreadyHasAnimal,expectedEndDate:e.expectedEndDate||void 0})}else await(n=[e.response.id],s=e.details||void 0,o=e.expectedEndDate||void 0,Te(De,()=>Kl(n,s,o)))},rn=async e=>{var a,t;if(Ie.value)return;Ie.value=!0;let l=!1;try{if(!Q.value)return;const t=Wl(Q.value);if(!t)throw new Error("This animal is missing a record ID. Please refresh and try again.");const n=ca.value.find(a=>((e,a)=>{const t=lu(e),l=lu(a);return Boolean(t&&l&&t===l)})(a.id,e.fosterId)),s=(null==n?void 0:n.name)||"the selected foster volunteer",o="With_Gap_Foster"===((null==(a=Q.value.fosterActivity)?void 0:a.status)||Q.value.status)?"gap_foster":"foster",i=await N(t,()=>na.assignAnimalsToFoster(e.fosterId,[t],e.reason,o,!0===e.markPickedUp,e.expectedEndDate||void 0));if(!(null==i?void 0:i.message))throw new Error("Assignment API did not return a success response");if(l=!0,e.markPickedUp){const a=await at.getAnimal(t),l=a||Q.value;await N(t,()=>at.updateAnimal(l,{status:Se.With_Foster,picked_up_by:e.fosterId,expectedVersion:(null==a?void 0:a.updatedAt)||(null==a?void 0:a.updated_at)||null}))}Vl(),Ie.value=!1,m.params.id&&await fl(m.params.id,{refreshAnimals:!0,showLoading:!1});const r=await X.create({message:e.markPickedUp?"Reassigned to ".concat(s," and marked as picked up"):"Successfully reassigned to ".concat(s),duration:2e3,position:"top",color:"success",cssClass:"app-toast"});await r.present()}catch(n){if(l&&e.markPickedUp){T.error("[Reassign] pickup step failed after successful reassign:",n),Vl(),Ie.value=!1,m.params.id&&await fl(m.params.id,{refreshAnimals:!0,showLoading:!1});const e=await X.create({message:"Reassigned, but couldn't mark as picked up. Use the pickup action to try again.",duration:3500,position:"top",color:"warning",cssClass:"app-toast"});await e.present()}else await ht(n,{component:"ReassignModal",action:"reassign_foster",fallbackMessage:"Failed to reassign foster. Please try again.",extra:{animalId:null==(t=Q.value)?void 0:t.id,fosterId:e.fosterId}})}finally{Ie.value=!1}},un=()=>{be.value=!1};return function({onMessage:e,onCall:a,onReassign:t,onUnassign:l}){const n=async n=>{const{action:s,fosterId:o}=n.detail||{};"message"===s?await e(o):"call"===s?await a():"reassign"===s?await t():"unassign"===s&&await l()};K(()=>{"undefined"!=typeof window&&window.addEventListener("native-assigned-foster-action",n)}),ee(()=>{"undefined"!=typeof window&&window.removeEventListener("native-assigned-foster-action",n)})}({onMessage:Zt,onCall:el,onReassign:Zl,onUnassign:Gl}),K(async()=>{try{await Fa()}catch(e){}try{h.value.length||await x()}catch(e){}}),t([Q,()=>{var e;return null==(e=xa.value)?void 0:e.role}],([e,a],t,l)=>{if(J.value=null,!e||"staff"!==a||!Z.value)return;let n=!1;l(()=>{n=!0}),wt.getByCreatedAnimalId(e.id).then(e=>{n||(J.value=e)}).catch(e=>{n||T.error("Error loading intake submission link:",e)})}),t(()=>m.params.id,e=>{sa.value=xt(),e&&fl(e)},{immediate:!0}),function({route:e,router:a,animal:l,openPlea:n,openAssignment:s,openResponses:o}){const i=t=>a.replace({query:{...e.query,[t]:void 0}}),r=a=>{var t;if(!a)return!1;const l=null==(t=e.params)?void 0:t.id;return null==l||[a.id,a.animal_id].some(e=>null!=e&&String(e)===String(l))};t([()=>e.query.sendPlea,l],([e,a])=>{"true"===e&&r(a)&&(n(),i("sendPlea"))},{immediate:!0});let u=!1;t([()=>e.query.assign,l],([e,a])=>{"1"===e?r(a)&&!u&&(u=!0,s().catch(e=>T.error("Failed to open Ollie assignment action:",e)).finally(()=>{i("assign")})):u=!1},{immediate:!0});let d=!1;t([()=>e.query.responses,l],([e,a])=>{"true"===e?r(a)&&!d&&(d=!0,o(),i("responses")):d=!1},{immediate:!0})}({route:m,router:d,animal:Q,openPlea:()=>Ge.value=!0,openAssignment:en,openResponses:()=>Ne.value=!0}),(e,a)=>{const t=q("router-link");return v(),f(_(ce),null,{default:y(()=>{var e;return[c(_(C),{class:"ion-no-border"},{default:y(()=>[c(_(b),{class:"ion-no-border toolbar-custom-padding"},{default:y(()=>[c(_(w),{slot:"start"},{default:y(()=>[c(_(k),{fill:"clear","aria-label":"Back",onClick:cl},{default:y(()=>[c(p,{name:"arrow-back-outline"})]),_:1})]),_:1}),c(_(S),{class:"title-centered"},{default:y(()=>[...a[24]||(a[24]=[A("Animal Profile",-1)])]),_:1}),c(_(w),{slot:"end"},{default:y(()=>{var e;return["staff"===(null==(e=_(xa))?void 0:e.role)?(v(),l("div",{key:0,ref_key:"overflowTriggerEl",ref:ne,class:"overflow-menu-wrap"},[c(_(k),{fill:"clear","aria-label":"Animal options",onClick:o(ie,["stop"])},{default:y(()=>[c(p,{name:"ellipsis-vertical"})]),_:1}),c(da,{open:le.value,"onUpdate:open":a[2]||(a[2]=e=>le.value=e),mode:"floating","floating-style":oe.value},{default:y(()=>[n("button",{type:"button",class:"overflow-menu-item",onClick:a[0]||(a[0]=e=>{le.value=!1,Q.value&&(Pa.value=!0)})}," Share with a foster "),n("button",{type:"button",class:"overflow-menu-item overflow-menu-item--danger",onClick:a[1]||(a[1]=e=>{le.value=!1,(async()=>
2{if(!Q.value)return;const e=await H.create({header:"Delete Animal Record",message:"Are you sure you want to permanently delete ".concat(Q.value.name,"'s record? This action cannot be undone."),cssClass:"alert-danger",buttons:[{text:"Cancel",role:"cancel",cssClass:"secondary"},{text:"Delete",role:"destructive",cssClass:"danger",handler:async()=>{try{const e=Q.value.id.toString();if(await N(e,async()=>{const a=await F(e);if(!a)throw new Error("Delete failed");return a}).catch(()=>!1)){const e=await X.create({message:"".concat(Q.value.name,"'s record has been deleted successfully."),duration:3e3,position:"top",color:"success",cssClass:"app-toast"});await e.present(),d.back()}else{const e=await X.create({message:"Failed to delete animal record. Please try again.",duration:3e3,position:"top",color:"danger",cssClass:"app-toast"});await e.present()}}catch(e){T.error("Error deleting animal:",e);const a=await X.create({message:"An error occurred while deleting the record. Please try again.",duration:3e3,position:"top",color:"danger",cssClass:"app-toast"});await a.present()}}}]});await e.present()})()})}," Delete animal record ")]),_:1},8,["open","floating-style"])],512)):u("",!0)]}),_:1})]),_:1})]),_:1}),c(_(D),{fullscreen:_(s)},{default:y(()=>{var e,s,o,g,h,b,w,S,C,x,F,N,I,D,P,E,T,O,V,R,G,q,H,K,X,ee,ae,le,ne,se,oe,ie,re,ue,de,ce,ge,fe,_e,he,ye,we,ke,Se,Ce,De;return[c(_(pe),{slot:"fixed",onIonRefresh:hl},{default:y(()=>[c(_(ve),{"pulling-text":"Pull to refresh","refreshing-spinner":"crescent","refreshing-text":"Refreshing animal data..."})]),_:1}),Y.value?(v(),l("div",du,[n("p",cu,r((null==(e=Y.value)?void 0:e.message)||"An error occurred"),1),c(_(k),{class:"button-secondary",fill:"clear",onClick:_l},{default:y(()=>[...a[25]||(a[25]=[A("Retry",-1)])]),_:1})])):$.value?(v(),l("div",pu,[n("div",vu,[c(sr)])])):Q.value?(v(),l("div",mu,[n("div",gu,[n("div",fu,[n("div",_u,[_(me).careJourneyUi?(v(),l("div",hu)):u("",!0),n("div",yu,[n("div",bu,[n("div",wu,[n("div",ku,[n("div",Su,[c(He,{photos:_(al),"alt-text":"Photo of ".concat((null==(s=Q.value)?void 0:s.name)||"animal"),"can-edit":"staff"===(null==(o=_(xa))?void 0:o.role),"max-photos":5,"is-uploading":_(tl),"onUpdate:photos":ul,onDeletePhoto:_(sl)},null,8,["photos","alt-text","can-edit","is-uploading","onDeletePhoto"]),n("div",Au,[n("div",Cu,[n("h1",xu,r(null==(g=Q.value)?void 0:g.name),1),"staff"===(null==(h=_(xa))?void 0:h.role)?(v(),f($e,{key:0,label:"Edit name",disabled:$t.value,onClick:Yt},null,8,["disabled"])):u("",!0),"staff"===(null==(b=_(xa))?void 0:b.role)&&Z.value&&J.value?(v(),f(t,{key:1,class:"public-intake-pill public-intake-pill--link",to:{name:"PublicIntakeSubmission",params:{id:J.value.id}},"aria-label":"View ".concat(Z.value.toLowerCase()," submission ").concat(J.value.tracking_id)},{default:y(()=>[A(r(Z.value),1)]),_:1},8,["to","aria-label"])):Z.value?(v(),l("span",Fu,r(Z.value),1)):u("",!0)]),n("div",Nu,r(null==(w=Q.value)?void 0:w.animal_id),1),n("div",Iu,r(_(Ae)(Q.value)),1),c(Ct,{animal:Q.value,class:"compact-care-pills"},null,8,["animal"]),Vt.value?(v(),l("p",{key:0,class:i(["compact-attention","compact-attention--".concat(null==(C=null==(S=Q.value)?void 0:S.attention)?void 0:C.tier)])},r(Vt.value),3)):u("",!0),!(null==(x=Q.value)?void 0:x.urgent)||Ot.value||_(Be)(Q.value)||["With_Foster","With_Gap_Foster"].includes(Za.value)?u("",!0):(v(),l("p",Du," Needs pickup today ")),"Awaiting_Responses"===Za.value&&(null==(F=_(U))?void 0:F.sent_date)?(v(),l("p",Uu," Plea sent "+r((De=_(U).sent_date,"".concat(Pe(De)," (").concat(xe(De),")"))),1)):u("",!0),Na.value?(v(),l("p",Pu,r(Ia.value),1)):u("",!0)])]),_(ga)?(v(),f(Ye,{key:String(Q.value.id),class:"identity-group","group-info":_(ga),"group-animals":_(fa),"current-animal-id":String(Q.value.id),"can-edit":"staff"===(null==(N=_(xa))?void 0:N.role),"on-rename":Ca,onAnimalClick:vl},null,8,["group-info","group-animals","current-animal-id","can-edit"])):u("",!0)]),"staff"===(null==(I=_(xa))?void 0:I.role)?(v(),f(fs,{key:0,class:"hero-stack-gap",status:Za.value,pathway:(null==(D=Q.value)?void 0:D.pathway)||"foster","pathway-note":null==(P=Q.value)?void 0:P.pathway_note,"on-hold":null==(E=Q.value)?void 0:E.on_hold,"can-edit":!0,fosters:ca.value,"has-primary-foster":et.value,"has-assigned-foster":st.value,"assigned-foster-id":jl(Q.value)||null,"gap-foster-id":null!=(G=null!=(R=null==(T=Q.value)?void 0:T.gap_foster_id)?R:null==(V=null==(O=Q.value)?void 0:O.gapFoster)?void 0:V.id)?G:null,saving:gt.value,"group-sibling-count":ft.value,"group-label":(null==(q=_(ka))?void 0:q.type)||"group","group-left-out":_t.value,"group-name":(null==(H=_(ga))?void 0:H.displayText)||null,onSave:Tt,"onUpdate:editing":a[3]||(a[3]=e=>te.value=e)},{outcome:y(()=>[c(ze,{animal:Q.value},null,8,["animal"])]),_:1},8,["status","pathway","pathway-note","on-hold","fosters","has-primary-foster","has-assigned-foster","assigned-foster-id","gap-foster-id","saving","group-sibling-count","group-label","group-left-out","group-name"])):u("",!0),Lt.value?(v(),l("div",Eu,[n("div",Tu,[c(p,{name:"person-outline",size:"xs",color:"grey-400",class:"gap-placement-icon"}),a[26]||(a[26]=n("span",{class:"gap-placement-label"},"Primary Foster",-1)),n("span",Ou,r(Bt.value),1)]),n("div",Vu,[c(p,{name:"swap-horizontal-outline",size:"xs",color:"grey-400",class:"gap-placement-icon"}),a[27]||(a[27]=n("span",{class:"gap-placement-label"},"Gap Foster",-1)),n("span",Ru,r(zt.value),1)])])):u("",!0),c(Cn,{class:"hero-stack-gap",animal:Q.value,"can-edit":"staff"===(null==(K=_(xa))?void 0:K.role),"group-sibling-count":At.value.length,"group-label":Pt.value,"on-save":Et,onSave:Et},null,8,["animal","can-edit","group-sibling-count","group-label"])]),c(zn,{animal:Q.value,"can-edit":"staff"===(null==(X=_(xa))?void 0:X.role),"group-sibling-count":Nt.value.length,"group-label":Pt.value,"group-left-out":Dt.value,"group-name":(null==(ee=_(ga))?void 0:ee.displayText)||null,"on-save":Et,onSave:Et},null,8,["animal","can-edit","group-sibling-count","group-label","group-left-out","group-name"])]),n("div",Lu,[n("div",Bu,[n("div",zu,[n("div",Mu,[n("section",ju,[c(Vo,{"animal-data":Q.value,"animal-plea":_(U),"animal-assignment":Xa.value,"assignment-history":B.value,"latest-decline-info":W.value,"foster-responses":L.value,"pickup-appointment":j.value,"group-context":_(ka),"mapped-assigned-foster":qt.value,"effective-animal-status":Za.value,"show-action-buttons":Ua.value,"animal-needs":We.value,"group-assignment-count":Mt.value.length+1,"group-assignment-names":Gt.value,onOpenResponses:a[4]||(a[4]=e=>Ne.value=!0),onAssignDirectly:en,onSendPlea:Sl,onUnassign:Gl,onFosterMessage:_(Zt),onFosterCall:_(el),onViewFoster:a[5]||(a[5]=e=>_(d).push("/foster/".concat(e))),onEditExpectedEndDate:tn,onMarkAsPickedUp:an,onReassignFromTimeline:Zl},null,8,["animal-data","animal-plea","animal-assignment","assignment-history","latest-decline-info","foster-responses","pickup-appointment","group-context","mapped-assigned-foster","effective-animal-status","show-action-buttons","animal-needs","group-assignment-count","group-assignment-names","onFosterMessage","onFosterCall"])]),u("",!0)]),n("div",Wu,[c(Ke,{"animal-id":null==(ae=Q.value)?void 0:ae.id,"current-grams":null==(le=Q.value)?void 0:le.weight_grams,"weight-points":_(Va),"can-edit":"staff"===(null==(ne=_(xa))?void 0:ne.role),onUpdated:a[6]||(a[6]=e=>gl(_(m).params.id,{showLoading:!1}))},null,8,["animal-id","current-grams","weight-points","can-edit"])])]),c(Rt,{title:"Care Notes",collapsible:!1,
2class:"profile-section bento-full care-notes-card"},{actions:y(()=>[_(Ea)>0?(v(),l("span",Gu,r(_(Ea))+" new ",1)):u("",!0),n("button",{class:"card-add-button",type:"button","aria-label":"Add note",onClick:a[7]||(a[7]=e=>{var a;return null==(a=Ht.value)?void 0:a.openAddNote()})},[...a[28]||(a[28]=[n("span",{class:"card-add-button__icon","aria-hidden":"true"},null,-1)])])]),default:y(()=>{var e;return[c(fi,{ref_key:"careNotesTab",ref:Ht,"animal-data":Q.value,"transformed-health-notes":_(Ta),"user-role":(null==(e=_(xa))?void 0:e.role)||"volunteer","current-user-id":_(Ra),onAddNote:Ka,onEditNote:_(ja),onDeleteNote:_(Wa),onAcknowledgementChange:_(qa),onRefetchAnimal:a[8]||(a[8]=e=>gl(_(m).params.id,{showLoading:!1}))},null,8,["animal-data","transformed-health-notes","user-role","current-user-id","onEditNote","onDeleteNote","onAcknowledgementChange"])]}),_:1}),n("div",qu,[n("section",Hu,[a[29]||(a[29]=n("h2",{class:"card-title profile-section-title"},"Appointments",-1)),c(Qe,{"animal-id":null==(se=Q.value)?void 0:se.id,"organization-id":null==(oe=Q.value)?void 0:oe.organization_id,title:""},null,8,["animal-id","organization-id"])]),(v(),f(Ps,{species:null==(ie=Q.value)?void 0:ie.species,"care-requirements":(null==(re=Q.value)?void 0:re.care_requirements)||[],"health-conditions":(null==(ue=Q.value)?void 0:ue.health_conditions)||[],"can-edit":"staff"===(null==(de=_(xa))?void 0:de.role),key:null==(ce=Q.value)?void 0:ce.id,"group-sibling-count":Nt.value.length,"group-label":Pt.value,"group-left-out":Dt.value,"group-name":(null==(ge=_(ga))?void 0:ge.displayText)||null,"group-current-name":Ut.value,"on-save":Et,onSave:Et},null,8,["species","care-requirements","health-conditions","can-edit","group-sibling-count","group-label","group-left-out","group-name","group-current-name"]))]),c(Rt,{title:"History",summary:z.value,"default-open":!1,class:"profile-section bento-full history-section"},{default:y(()=>{var e,t,l,n;return[c(tr,{"refresh-key":"".concat((null==(e=Q.value)?void 0:e.updatedAt)||(null==(t=Q.value)?void 0:t.updated_at),":").concat(M.value),"animal-id":null!=(n=null==(l=Q.value)?void 0:l.id)?n:null,onSummary:a[9]||(a[9]=e=>z.value=e)},null,8,["refresh-key","animal-id"])]}),_:1},8,["summary"])])])])]),Q.value?(v(),f(ia,{key:0,"is-open":be.value,fosters:ca.value.map(e=>{var a;return{id:e.id,foster_id:e.id,first_name:(e.name||"Unknown").split(" ")[0],last_name:(e.name||"Unknown").split(" ")[1]||"",email:"".concat((e.name||"unknown").toLowerCase().replace(" ","."),"@example.com"),organization_id:"default",isAvailable:e.available,photo_url:e.avatar,happyToFoster:e.happyToFoster,userId:null!=(a=e.userId)?a:null,currentAnimals:e.currentAnimals||[],interestedInFostering:L.value.some(a=>{var t,l;return String(null==(t=a.foster)?void 0:t.id)===String(e.id)||String(null==(l=a.foster)?void 0:l.foster_id)===String(e.id)})?[{id:va.value}]:[]}}),"animal-id":va.value,"animal-name":Q.value.name,"group-context":_(ka),"onUpdate:isOpen":a[10]||(a[10]=e=>be.value=e),onConfirm:zl,onCancel:un},null,8,["is-open","fosters","animal-id","animal-name","group-context"])):u("",!0),Q.value?(v(),f(Ul,{key:1,"is-open":Ne.value,responses:L.value,animal:Q.value,"animal-needs":We.value,"group-animal-count":(null==(fe=_(ka))?void 0:fe.count)||0,mode:qt.value?"reassign":"assign","assigned-foster-id":null!=(he=null==(_e=qt.value)?void 0:_e.id)?he:null,onClose:a[11]||(a[11]=e=>Ne.value=!1),onConfirm:on,onViewProfile:a[12]||(a[12]=e=>_(d).push("/foster/".concat(e)))},null,8,["is-open","responses","animal","animal-needs","group-animal-count","mode","assigned-foster-id"])):u("",!0),Q.value?(v(),f(Xs,{key:2,"is-open":Fe.value,"animal-id":String(Q.value.id||""),"animal-name":Q.value.name,"current-foster":Qt.value,"is-loading-fosters":_(Dl),"is-submitting":Ie.value,"animal-already-picked-up":"With_Foster"===Za.value,"group-display-name":(null==(ye=_(ka))?void 0:ye.displayName)||"","group-sibling-names":Gt.value,fosters:ca.value.map(e=>{var a;return{id:e.id,foster_id:e.id,first_name:e.first_name||(e.name||"Unknown").split(" ")[0],last_name:e.last_name||(e.name||"Unknown").split(" ").slice(1).join(" "),email:e.email||"",phone:e.phone||"",organization_id:"default",isAvailable:e.available,photo_url:e.avatar,happyToFoster:e.happyToFoster,userId:null!=(a=e.userId)?a:null,currentAnimals:e.currentAnimals||[],interestedInFostering:[],showedInterest:L.value.some(a=>{var t,l;return(null==(t=a.foster)?void 0:t.id)===e.id||(null==(l=a.foster)?void 0:l.foster_id)===e.id})}}),"onUpdate:isOpen":Ll,onConfirm:rn,onCancel:Vl},null,8,["is-open","animal-id","animal-name","current-foster","is-loading-fosters","is-submitting","animal-already-picked-up","group-display-name","group-sibling-names","fosters"])):u("",!0),Q.value?(v(),f(Ga,{key:3,"is-open":Oe.value,"animal-name":Q.value.name,"assigned-foster":Jt.value,"available-fosters":Xt.value,"group-context":_(ka),"expected-end-date":(null==(we=Ja.value)?void 0:we.expected_end_date)||null,"is-submitting":Ee.value,"onUpdate:isOpen":a[13]||(a[13]=e=>Oe.value=e),onConfirm:nn,onCancel:a[14]||(a[14]=e=>Oe.value=!1)},null,8,["is-open","animal-name","assigned-foster","available-fosters","group-context","expected-end-date","is-submitting"])):u("",!0),Q.value?(v(),f(so,{key:4,"is-open":Re.value,"onUpdate:isOpen":a[15]||(a[15]=e=>Re.value=e),"animal-name":Q.value.name,"expected-end-date":(null==(ke=Ja.value)?void 0:ke.expected_end_date)||null,"is-saving":je.value,"group-sibling-count":jt.value.length,"group-left-out":Wt.value,"group-name":(null==(Se=_(ga))?void 0:Se.displayText)||null,onSave:ln},null,8,["is-open","animal-name","expected-end-date","is-saving","group-sibling-count","group-left-out","group-name"])):u("",!0),c(ro,{"is-open":aa.value,"foster-name":ta.value,"animal-name":la.value,"onUpdate:isOpen":a[16]||(a[16]=e=>aa.value=e)},null,8,["is-open","foster-name","animal-name"]),_(ka)&&Q.value?(v(),f(lt,{key:5,"is-open":oa.value,"group-context":_(ka),"animal-name":Q.value.name||"this animal","action-name":"assign foster","main-message-override":Ql.value,"question-text-override":"","primary-choice":Jl.value,onChoice:Xl,onDismissed:a[17]||(a[17]=e=>oa.value=!1)},null,8,["is-open","group-context","animal-name","main-message-override","primary-choice"])):u("",!0),_(ka)&&Q.value?(v(),f(lt,{key:6,"is-open":ra.value,"group-context":_(ka),"animal-name":Q.value.name||"this animal","action-name":"unassign foster","main-message-override":"".concat(Q.value.name||"This animal"," is part of ").concat((null==(Ce=_(ka))?void 0:Ce.displayName)||"a group"," assigned to the same foster."),"question-text-override":"Unassign from just ".concat(Q.value.name||"this animal"," or the entire group?"),onChoice:ql,onDismissed:a[18]||(a[18]=e=>ra.value=!1)},null,8,["is-open","group-context","animal-name","main-message-override","question-text-override"])):u("",!0),_(ka)&&Q.value?(v(),f(lt,{key:7,"is-open":il.value,"group-context":_(ka),"animal-name":Q.value.name||"this animal","action-name":"add this photo",onChoice:
2dl,onDismissed:a[19]||(a[19]=e=>il.value=!1)},null,8,["is-open","group-context","animal-name"])):u("",!0),_(ka)&&Q.value?(v(),f(lt,{key:8,"is-open":Ha.value,"group-context":_(ka),"animal-name":Q.value.name||"this animal","action-name":"add this note","main-message-override":"This animal is part of a group. A note like a medication dose may not apply to every member.",onChoice:Qa,onDismissed:a[20]||(a[20]=e=>Ha.value=!1)},null,8,["is-open","group-context","animal-name"])):u("",!0),Q.value?(v(),f(Sa,{key:9,"is-open":ea.value,"animal-id":String(Q.value.id||Q.value.animal_id),"animal-name":Q.value.name,"animal-data":Q.value,"group-context":_(ka),"group-animals":_(fa),"onUpdate:isOpen":a[21]||(a[21]=e=>ea.value=e),onConfirm:Al},null,8,["is-open","animal-id","animal-name","animal-data","group-context","group-animals"])):u("",!0)])])])):u("",!0),Q.value?(v(),f(Je,{key:3})):u("",!0),u("",!0)]}),_:1},8,["fullscreen"]),"staff"===(null==(e=_(xa))?void 0:e.role)?(v(),f(nt,{key:0})):u("",!0),Q.value?(v(),f(au,{key:1,"is-open":Ge.value,"animal-data":Q.value,"group-context":_(ka),"group-animals":_(fa),onClose:a[22]||(a[22]=e=>Ge.value=!1),onSent:Cl},null,8,["is-open","animal-data","group-context","group-animals"])):u("",!0),Q.value?(v(),f(nl,{key:2,"is-open":Pa.value,"animal-name":Q.value.name||"Unknown","animal-id":Q.value.animal_id||"","animal-record-id":Q.value.id,"animal-photo-url":_(Oa)(Q.value),"onUpdate:isOpen":a[23]||(a[23]=e=>Pa.value=e)},null,8,["is-open","animal-name","animal-id","animal-record-id","animal-photo-url"])):u("",!0)]}),_:1})}}}),[["__scopeId","data-v-1233d32d"]]),Yu=Object.freeze(Object.defineProperty({__proto__:null,default:$u},Symbol.toStringTag,{value:"Module"}));export{Yu as A,Ro as I,Bo as N}; 3//# sourceMappingURL=AnimalProfilePage-DNGPTM9s.js.map
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.