PageSourceSearch

https://app.pawsitivefoster.com/assets/FosterPage-C8G8Clt-.js

js pawsitivefoster.com collected 2026-10-02 01:41:06 UTC 34,137 bytes, 1 lines download raw bytes

1import{aQ as e,w as a,E as l,b4 as t,aR as n,aS as s,u as o,aT as i,h as r,r as u,l as c,aV as d,aW as v,aX as m,bo as f,bI as p,bs as h,bp as b,aZ as y,bx as g,bC as _,bn as w,bA as k,bJ as C,a_ as A,by as S,bz as F,bH as I,bG as P,bu as x,bv as N,bQ as T,d8 as j,ca as M,a$ as D,dv as R,e as E,bh as O,t as z,aU as U,b1 as B,ea as V,f as L,bm as Y,s as W,dj as H,eb as G,br as $}from"./index-B0wWhsKS.js";import{_ as Q,a as q}from"./phonecall-YWi1tPkX.js";import{R as J}from"./ReportReasonModal-Cw5gDFHT.js";import{r as X,b as K}from"./moderation-CL1-2IT-.js";import{a as Z}from"./blocks-umqG0-ry.js";import{u as ee}from"./useFosters-C0KCbdw-.js";import ae from"./foster-Ce7nl-LN.js";import{F as le,g as te}from"./FosterPendingInterestsCard-CPTOO_39.js";import{A as ne}from"./AnimalAvatar-CTDE548D.js";import{F as se}from"./FallbackAvatar-BN3XXAeu.js";import{C as oe}from"./CoordinatorAvatar-Ctrsow4z.js";import{u as ie}from"./useAnimals-kd6UKD2X.js";import{c as re}from"./animalProfileNavigation-2a5pOZqb.js";import{b as ue,g as ce}from"./fosterProfileInsights-0Yv9jQJl.js";import{getMessageRoute as de}from"./messageRouting-BsvjBq4n.js";import{a as ve,b as me}from"./fosterAvailability-DNq5ZMWb.js";import{B as fe}from"./BasePill-rR8WIu-w.js";import"./fosterService-CbZu7yES.js";import"./capabilityMatching-BJpd6pIo.js";import"./capabilities-BxxUeBCF.js";import"./submitError-Crrxf9mD.js";import"./paw-filled-BzJ0RPMN.js";import"./animalPhotoUtils-MhJKVcr8.js";import"./animalMediaOptimization-D_8RNxhq.js";import"./animal-DW7SFz_x.js";import"./staleWriteConflict-D-vL37kG.js";const pe={key:0,class:"state-container"},he={key:1,class:"state-container"},be={key:2,class:"page-content"},ye={class:"profile-card"},ge={class:"profile-avatar-shell"},_e=["src","alt"],we={class:"profile-name"},ke={class:"profile-meta"},Ce={class:"contact-actions"},Ae=["disabled"],Se={key:0,class:"match-summary","aria-labelledby":"foster-fit-summary-title"},Fe={class:"match-summary-heading"},Ie={class:"ai-indicator",role:"img","aria-label":"AI-assisted summary"},Pe={key:1,class:"info-card"},xe={class:"about-text"},Ne={key:2,class:"info-card"},Te={class:"info-list"},je={key:0,class:"info-row"},Me={class:"info-row-label"},De=["href"],Re={key:1,class:"info-row"},Ee={class:"info-row-label"},Oe=["href"],ze={key:2,class:"info-row"},Ue={class:"info-row-label"},Be={class:"info-row-value"},Ve={key:3,class:"info-row"},Le={class:"info-row-label"},Ye={class:"info-row-value"},We={key:3,class:"section border-top"},He={class:"scroll-container"},Ge={class:"foster-animals"},$e={key:0,class:"scroll-container"},Qe={class:"foster-animals"},qe={key:1,class:"no-animals-message"},Je={key:4,class:"section"},Xe={key:5,class:"info-card"},Ke={class:"compact-card-heading"},Ze={class:"capability-chips"},ea={key:0,class:"capability-species"},aa={key:6,class:"info-card"},la={class:"context-list"},ta={key:7,class:"info-card"},na={key:0,class:"context-list"},sa={key:1,class:"long-answer"},oa={key:2,class:"long-answer"},ia={class:"accordion-content",slot:"content"},ra={class:"notes-body"},ua={key:0,class:"notes-loading"},ca={class:"timeline-date-header"},da={class:"note-layout"},va=["disabled","onClick"],ma={class:"note-content"},fa={class:"note-meta"},pa=["disabled","onClick"],ha={class:"note-date"},ba={class:"note-text"},ya={key:2,class:"no-notes"},ga={key:3,class:"note-composer"},_a={class:"actions"},wa={key:4,class:"add-notes-row"},ka={class:"modal-content"},Ca={class:"actions"},Aa={class:"modal-content"},Sa={class:"actions"},Fa={class:"modal-content"},Ia={class:"pill-row"},Pa={key:0,class:"promote-blockers"},xa={class:"promote-blockers__list"},Na={key:1,class:"promote-seat-notice"},Ta={class:"actions"};const ja=Y(e({name:"FosterProfilePage",components:{FosterProfile:Y(e({__name:"FosterProfile",props:{fosterId:{}},setup(e,{expose:Y}){const W=U(),{user:H}=r(),G=u(!1),$=u(!1),ja=u(!1),Ma=u(!1),Da=u(null),Ra=u(!1),Ea=u([]),Oa=u(!1),za=u(!1),Ua=u(""),Ba=u(""),Va=e,{getFoster:La}=ee(),Ya=u(null),Wa=u(!1),Ha=u(!0),Ga=u(!1);a(()=>{var e;return null==(e=Ya.value)?void 0:e.photo_url},()=>{Wa.value=!1});const $a=u([]),Qa=u([]),qa=u(!1),Ja=u(!1),Xa=u(!1),Ka=u("");l(async()=>{var e;const a=window.history.state,l=null==a?void 0:a.preloadedFoster;l&&String(l.id||"")===String(Va.fosterId)&&(Ya.value={...l,id:String(l.id||Va.fosterId),foster_id:String(l.id||Va.fosterId)},Wa.value=!1),Ha.value=!0;try{const a=await La(Va.fosterId);a&&(Ya.value={...Ya.value||{},...a,photo_url:a.photo_url||(null==(e=Ya.value)?void 0:e.photo_url)})}finally{Ha.value=!1}}),a(()=>{var e;return null==(e=Ya.value)?void 0:e.photo_url},(e,a)=>{e&&e!==a&&(Wa.value=!1)});const{animals:Za,fetchAnimals:el}=ie();el().catch(()=>{});const al=E(()=>{var e,a;return String((null==(e=Ya.value)?void 0:e.id)||(null==(a=Ya.value)?void 0:a.foster_id)||"")}),ll=E(()=>V(Ya.value)||"Unknown"),tl=u(!1),nl=E(()=>{var e,a,l;return String((null==(e=Ya.value)?void 0:e.email)||(null==(l=null==(a=Ya.value)?void 0:a.user)?void 0:l.email)||"").trim()}),sl=E(()=>ve(Ya.value||{})),ol=E(()=>me(Ya.value||{})),il=E(()=>{var e;return(Array.isArray(null==(e=Ya.value)?void 0:e.languagesSpoken)?Ya.value.languagesSpoken.filter(
1Boolean):[]).join(", ")}),rl=E(()=>{var e;return["staff"].includes((null==(e=H.value)?void 0:e.role)||"")}),ul=["coordinator","staff","admin","shelter","shelter_admin","employee","shelter_employee"],cl=e=>{var a;return{...e,id:String(e.id),animal_id:null!=(a=e.animal_id)?a:e.id}},dl=E(()=>{if(!al.value)return[];return Za.value.filter(e=>{var a,l;const t=String(null!=(a=e.assigned_foster_id)?a:""),n=String(null!=(l=e.gap_foster_id)?l:""),s=t===al.value||n===al.value,o="With_Foster"===e.status||"With_Gap_Foster"===e.status;return s&&o}).map(cl)}),vl=E(()=>{if(!al.value)return[];return Za.value.filter(e=>{var a;const l=String(null!=(a=e.assigned_foster_id)?a:"")===al.value,t="Pickup_Pending"===e.status;return l&&t}).map(cl)}),ml=E(()=>te({interests:$a.value,animals:Za.value,fosterId:al.value})),fl=E(()=>ue(Ya.value)),pl=E(()=>ce(Ya.value)),hl=E(()=>[...pl.value.map(e=>({key:e.id,label:e.title,species:"all"===e.species?"":e.speciesLabel})),...(pl.value.some(e=>e.isFosterRole)?Wl.value:[...Yl.value,...Wl.value]).map(e=>({key:"legacy-".concat(e),label:e,species:""}))].filter((e,a,l)=>l.findIndex(a=>a.label===e.label)===a)),bl=E(()=>{var e,a,l,t;const n=null==(e=Ya.value)?void 0:e.kitten_care_plans;return[{label:"Daytime setup",answer:null==n?void 0:n.day_location},{label:"Nighttime setup",answer:null==n?void 0:n.sleep_location},{label:"Daily time available",answer:null==n?void 0:n.time_with_kittens_daily},{label:"Typical time alone",answer:null==n?void 0:n.alone_time_hours},{label:"Home",answer:(null==(a=Ya.value)?void 0:a.housing_status)?Vl(Ya.value.housing_status):""},{label:"Household",answer:Ll.value},{label:"Resident pets",answer:"boolean"==typeof(null==(l=Ya.value)?void 0:l.has_pets)?Ya.value.has_pets?String((null==(t=Ya.value)?void 0:t.existing_pets_description)||"").trim()||"Has resident pets":"No resident pets":""}].filter(e=>"string"==typeof e.answer&&e.answer.trim().length>0)}),yl=e=>e?"Yes":"No",gl=E(()=>{var e,a,l,t,n,s,o;const i=[],r=null!=(l=null==(e=Ya.value)?void 0:e.can_transport)?l:null==(a=Ya.value)?void 0:a.can_bring_in;return"boolean"==typeof(null==(t=Ya.value)?void 0:t.comfortable_giving_meds)&&i.push({label:"Giving medication",answer:yl(Ya.value.comfortable_giving_meds)}),"boolean"==typeof r&&i.push({label:"Checkup & vaccine transport",answer:yl(r)}),"boolean"==typeof(null==(n=Ya.value)?void 0:n.can_isolate)&&i.push({label:"Separate foster space",answer:yl(Ya.value.can_isolate)}),"boolean"==typeof(null==(s=Ya.value)?void 0:s.can_handle_special_diet)&&i.push({label:"Special diets",answer:yl(Ya.value.can_handle_special_diet)}),(null==(o=Ya.value)?void 0:o.has_fostered_before)&&i.push({label:"Fostered before",answer:"yes"===Ya.value.has_fostered_before?"Yes":"no"===Ya.value.has_fostered_before?"No":"Other experience"}),i}),_l=E(()=>{var e,a,l,t,n,s;const o=null!=(s=null!=(l=null==(e=Ya.value)?void 0:e.userId)?l:null==(a=Ya.value)?void 0:a.user_id)?s:null==(n=null==(t=Ya.value)?void 0:t.user)?void 0:n.id,i=Number(o);return Number.isInteger(i)&&i>0?i:null}),wl=E(()=>{var e;const a=null==(e=H.value)?void 0:e.id;return!(!a||!_l.value)&&Number(a)===_l.value}),kl=E(()=>{var e;return["staff","admin"].includes(((null==(e=H.value)?void 0:e.role)||"").toLowerCase())}),Cl=E(()=>{var e,a;const l=null==(e=H.value)?void 0:e.staffProfile,t=null==l?void 0:l.id,n=null==(a=null==l?void 0:l.organization)?void 0:a.staff_id;return Boolean(t&&n&&String(t)===String(n))}),Al=E(()=>{var e,a,l;const t=(null==(e=Ya.value)?void 0:e.status)?"active"===Ya.value.status:null==(l=null==(a=Ya.value)?void 0:a.isAvailable)||l,n=[];return kl.value&&!wl.value&&(n.push({text:t?"Mark as Inactive":"Mark as Active",handler:()=>{t?$.value=!0:async function(){if(!Ya.value)return;if(!(await nt(!0)))return;G.value=!1}()}}),Cl.value&&n.push({text:"Make this volunteer a staff member",handler:()=>{Da.value=null,Ea.value=[],Oa.value=!1,Ma.value=!0}}),n.push({text:"Remove Foster",role:"destructive",handler:()=>{ja.value=!0}})),!wl.value&&_l.value&&(n.push({text:"Report this user",role:"destructive",handler:()=>{za.value=!0}}),n.push({text:"Block this user",role:"destructive",handler:()=>{Il()}})),n.push({text:"Cancel",role:"cancel"}),n});async function Sl(e,a="success"){const l=await z.create({message:e,duration:2500,position:"top",color:a});await l.present()}const Fl=async({reason:e,details:a})=>{if(za.value=!1,_l.value)try{await X({contentType:"profile",reportedUserId:_l.value,reason:e,details:a}),await Sl("Report submitted. Our team reviews reports within 24 hours.","success")}catch(l){c.error("Failed to report foster profile",l),await Sl("Could not submit the report. Please try again.","danger")}},Il=async()=>
1{if(!_l.value)return;const e=await L.create({header:"Block this user?",message:"You will no longer see their content and they will not be able to contact you. We will review their activity.",buttons:[{text:"Cancel",role:"cancel"},{text:"Block",role:"destructive",handler:async()=>{await Pl()}}]});await e.present()},Pl=async()=>{const e=_l.value;if(e)try{await K(e),await Z(e),await Sl("User blocked. Their content will no longer appear in your feed.","success"),window.history.length>1&&W.back()}catch(a){c.error("Failed to block foster user",a),await Sl("Could not block this user. Please try again.","danger")}};function xl(){W.back()}async function Nl(){if(tl.value)return;const e=_l.value;if(e){tl.value=!0;try{const a=await O.createDirectChat(String(e));W.push(de(H.value,String(a.id)))}catch(a){c.error("Failed to create direct chat:",a),await Sl("Could not open a chat with this foster. Please try again.","danger")}finally{tl.value=!1}}else await Sl("Could not open a chat with this foster. Please try again.","danger")}function Tl(){var e;(null==(e=Ya.value)?void 0:e.phone)&&(window.location.href="tel:".concat(Ya.value.phone))}function jl(){nl.value&&(window.location.href="mailto:".concat(nl.value))}const Ml=(e,a=[],l)=>{const t=re(a.map(e=>({...e,id:String(e.id)})),l);W.push({name:"AnimalProfile",params:{id:e},state:t?{animalNavigationContext:t}:void 0})};function Dl(e){const a=String((null==e?void 0:e.id)||(null==e?void 0:e.animal_id)||"");a&&Ml(a)}async function Rl(){if(!Ya.value||!Ua.value.trim())return;const e=Ua.value.trim();await nt(!1,e)&&(Ua.value="",$.value=!1,G.value=!1)}async function El(){if(!Ya.value||!Ba.value.trim())return;await st(Ba.value.trim())&&(Ba.value="",ja.value=!1,G.value=!1,W.back())}function Ol(){Ma.value=!1,Ea.value=[],Oa.value=!1}function zl(){Ol(),G.value=!1,W.push("/team")}async function Ul(){var e,a;if(Ya.value&&Da.value&&!Ra.value){Ra.value=!0,Ea.value=[],Oa.value=!1;try{const e=String(Ya.value.id||Ya.value.foster_id||Va.fosterId);await ae.promoteToStaff(e,Da.value),Ol(),G.value=!1,await tt("".concat(ll.value," is now a staff member"),"success"),W.back()}catch(l){const t=null==(e=null==l?void 0:l.response)?void 0:e.data;"ACTIVE_COMMITMENTS"===(null==t?void 0:t.code)?Ea.value=(null==(a=t.details)?void 0:a.blockers)||[]:"PLAN_MEMBER_LIMIT_REACHED"===(null==t?void 0:t.code)?Oa.value=!0:(c.error("Failed to convert volunteer to staff:",l),await tt((null==t?void 0:t.error)||"Could not convert this volunteer. Please try again.","danger"))}finally{Ra.value=!1}}}const Bl=e=>{switch(e){case"phone":return"Phone Call";case"text":return"Text";case"email":return"Email";default:return e}},Vl=e=>{switch(e){case"own":return"Own my home";case"rent_with_permission":case"rent_has_permission":return"Renting (permission to foster)";case"rent_not_sure":case"rent_not_yet":return"Renting (permission not yet confirmed)";default:return e}},Ll=E(()=>{var e;const a=null==(e=Ya.value)?void 0:e.household;if(!a)return"";const l=[];a.adults&&l.push("".concat(a.adults," adult").concat(a.adults>1?"s":"")),a.infants&&l.push("".concat(a.infants," infant").concat(a.infants>1?"s":"")),a.children&&l.push("".concat(a.children," ").concat(1===a.children?"child":"children")),a.teens&&l.push("".concat(a.teens," teen").concat(a.teens>1?"s":""));const t=l.join(", ");return t?"".concat(t," in household"):""}),Yl=E(()=>{var e,a,l;const t=[...Array.isArray(null==(e=Ya.value)?void 0:e.foster_types)?Ya.value.foster_types:[],...Array.isArray(null==(l=null==(a=Ya.value)?void 0:a.happyToFoster)?void 0:l.foster_types)?Ya.value.happyToFoster.foster_types:[]];if(!t.length)return[];const n={neonatal:"Neonatal",transitional:"Transitional",socialization:"Socialization",juvenile:"Juvenile",adolescent:"Adolescent",medical:"Medical care",shy:"Shy or undersocialized kittens",adult:"Adult cats",senior:"Senior cats",flexible:"Flexible"};return Array.from(new Set(t.map(e=>n[e]||e)))}),Wl=E(()=>{var e,a,l;const t=[...Array.isArray(null==(e=Ya.value)?void 0:e.medical_comfort)?Ya.value.medical_comfort:[],...Array.isArray(null==(l=null==(a=Ya.value)?void 0:a.happyToFoster)?void 0:l.medical_comfort)?Ya.value.happyToFoster.medical_comfort:[]];if(!t.length)return[];const n={minor_injuries:"Minor injuries",uri:"Upper respiratory infection (URI)",ringworm:"Ringworm",post_surgery:"Post-surgery recovery",open_to_most:"Open to most cases"};return Array.from(new Set(t.map(e=>n[e]||e)))});function Hl(e){if(!e)return null;const a=e instanceof Date?e:new Date(e);return Number.isNaN(a.getTime())?null:a.getTime()}function Gl(e){const a=new Date,l=new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime(),t=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();return t===l?"Today":t===l-864e5?"Yesterday":e.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function $l(e){const a=e.getFullYear(),l=String(e.getMonth()+1).padStart(2,"0"),t=String(e.getDate()).padStart(2,"0");return"".concat(a,"-").concat(l,"-").concat(t)}function Ql(e){const a=new Date(e);return Number.isNaN(a.getTime())?"":a.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})}
1async function ql(){const e=al.value||Va.fosterId;if(e&&rl.value){qa.value=!0;try{Qa.value=await ae.getNotes(e)}catch(a){c.error("Failed to load foster notes:",a),Qa.value=[]}finally{qa.value=!1}}else Qa.value=[]}async function Jl(){const e=al.value||Va.fosterId;if(e)try{const a=await ae.getInterestedAnimals(e);$a.value=Array.isArray(a)?a.map(a=>{var l,t,n,s,o,i,r,u,c,d,v,m,f,p,h,b,y,g,_;return{id:String(null!=(t=null==a?void 0:a.id)?t:"interest_".concat(null!=(l=null==a?void 0:a.animal_id)?l:Math.random())),foster_id:String(null!=(n=null==a?void 0:a.foster_id)?n:e),foster_name:(null==a?void 0:a.foster_name)||((null==a?void 0:a.foster)?"".concat(a.foster.first_name||""," ").concat(a.foster.last_name||"").trim():"")||"",animal_id:String(null!=(i=null!=(o=null==a?void 0:a.animal_id)?o:null==(s=null==a?void 0:a.animal)?void 0:s.id)?i:""),animal_name:null!=(c=null!=(u=null==a?void 0:a.animal_name)?u:null==(r=null==a?void 0:a.animal)?void 0:r.name)?c:"",comment:null!=(v=null!=(d=null==a?void 0:a.comment)?d:null==a?void 0:a.notes)?v:"",submitted_at:null!=(p=null!=(f=null!=(m=null==a?void 0:a.submitted_at)?m:null==a?void 0:a.createdAt)?f:null==a?void 0:a.created_at)?p:(new Date).toISOString(),status:(null==a?void 0:a.status)||(()=>{const e=(null==a?void 0:a.response_type)||(null==a?void 0:a.responseType)||(null==a?void 0:a.response);return"interested"===e||"maybe"===e?"pending":"not_interested"===e||"already_committed"===e||"withdrawn"===e?"declined":"pending"})(),reviewed_at:null!=(h=null==a?void 0:a.reviewed_at)?h:null==a?void 0:a.reviewedAt,reviewed_by:null!=(b=null==a?void 0:a.reviewed_by)?b:null==a?void 0:a.reviewedBy,litter_name:null!=(y=null==a?void 0:a.litter_name)?y:void 0,group_name:null!=(g=null==a?void 0:a.group_name)?g:void 0,litter_animals:Array.isArray(null==a?void 0:a.litter_animals)?a.litter_animals.map(e=>({id:null==e?void 0:e.id,animal_id:null==e?void 0:e.animal_id,name:null==e?void 0:e.name})):void 0,animal:null!=(_=null==a?void 0:a.animal)?_:null}}):[]}catch(a){c.error("Failed to load foster interests:",a),$a.value=[]}else $a.value=[]}const Xl=E(()=>[...Qa.value].sort((e,a)=>new Date(a.createdAt||a.created_at||0).getTime()-new Date(e.createdAt||e.created_at||0).getTime()).map(e=>{var a,l,t,n;return{id:String(e.id),text:e.text,kind:e.kind,createdAt:e.createdAt||e.created_at||(new Date).toISOString(),authorName:(null==(a=e.author)?void 0:a.name)||e.author_name||"Staff",authorProfileId:(null==(l=e.author)?void 0:l.profileId)?String(e.author.profileId):null,authorAvatar:(null==(t=e.author)?void 0:t.avatar)||e.author_avatar||"",authorRole:(null==(n=e.author)?void 0:n.type)||e.author_role||"staff"}})),Kl=E(()=>{const e=new Map;for(const a of Xl.value){const l=Hl(a.createdAt)||0,t=new Date(l),n=l?new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime():0,s=l?$l(t):"unknown-".concat(a.id),o=l?Gl(t):"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}))});function Zl(e){const a=String(e||"").trim();a&&W.push("/staff-profile/".concat(a))}function et(e){switch(e){case"status":return"Status";case"remove":return"Removed";default:return"Note"}}function at(){Ka.value="",Ja.value=!1}async function lt(){const e=al.value||Va.fosterId,a=Ka.value.trim();if(e&&a){Xa.value=!0;try{await ae.createNote(e,{text:a}),Ka.value="",Ja.value=!1,await ql(),await tt("Note added","success")}catch(l){c.error("Failed to create foster note:",l),await tt("Failed to save note","danger")}finally{Xa.value=!1}}}async function tt(e,a){const l=await z.create({message:e,duration:2200,position:"top",color:a,cssClass:"app-toast"});await l.present()}async function nt(e,a){if(!Ya.value)return!1;try{const l=String(Ya.value.id||Ya.value.foster_id||Va.fosterId),t=e?"active":"inactive",n={status:t,isAvailable:e};a&&(n.comment=a,n.reason=a);const s=await ae.updateFoster(l,n);return Ya.value={...Ya.value,...s,status:t,isAvailable:e},await ql(),await tt(e?"Foster marked as active":"Foster marked as inactive","success"),!0}catch(l){return c.error("Failed to update foster status:",l),await tt("Failed to update foster status","danger"),
1!1}}async function st(e){if(!Ya.value)return!1;try{const a=String(Ya.value.id||Ya.value.foster_id||Va.fosterId),l=await ae.removeFromOrg(a,e);return Ya.value={...Ya.value,...l},await ql(),await tt("Foster removed from organization","success"),!0}catch(a){return c.error("Failed to remove foster from organization:",a),await tt("Failed to remove foster","danger"),!1}}return a([al,rl],async([e,a])=>{e&&a?await ql():Qa.value=[]},{immediate:!0}),a(al,async e=>{e?await Jl():$a.value=[]},{immediate:!0}),t(async()=>{Ga.value?await Promise.allSettled([el(),Jl()]):Ga.value=!0}),Y({updateStatus:nt,removeFoster:st,getStatus:async function(){var e,a;return!(null!=(a=null==(e=Ya.value)?void 0:e.isAvailable)&&!a)}}),(e,a)=>(B(),n(o(i),null,{default:s(()=>[d(o(y),{class:"ion-no-border"},{default:s(()=>[d(o(v),{class:"ion-no-border toolbar-custom-padding"},{default:s(()=>[d(o(m),{slot:"start",class:"start-buttons"},{default:s(()=>[d(o(f),{fill:"clear","aria-label":"Back",onClick:xl},{default:s(()=>[d(p,{name:"arrow-back-outline"})]),_:1})]),_:1}),d(o(h),{class:"ion-text-center"},{default:s(()=>[...a[14]||(a[14]=[b("Foster Profile",-1)])]),_:1}),d(o(m),{slot:"end",class:"end-buttons"},{default:s(()=>[d(o(f),{fill:"clear",onClick:a[0]||(a[0]=e=>G.value=!0),"aria-label":"More options"},{default:s(()=>[d(p,{name:"ellipsis-vertical"})]),_:1})]),_:1})]),_:1})]),_:1}),d(o(D),{fullscreen:""},{default:s(()=>[Ha.value?(B(),g("div",pe,[d(o(_),{name:"crescent"}),a[15]||(a[15]=w("p",{class:"state-title"},"Loading foster profile...",-1))])):Ya.value?(B(),g("div",be,[w("div",ye,[w("div",ge,[Ya.value.photo_url&&!Wa.value?(B(),g("img",{key:0,src:Ya.value.photo_url,alt:ll.value,class:"profile-avatar-image",onError:a[1]||(a[1]=e=>Wa.value=!0)},null,40,_e)):(B(),n(se,{key:1,class:"profile-avatar-fallback",name:ll.value},null,8,["name"]))]),w("h2",we,k(ll.value),1),w("div",ke,[w("p",{class:C(["profile-position",{"profile-position--available":sl.value}])},k(ol.value),3)]),w("div",Ce,[w("button",{class:"icon-button",disabled:!al.value||tl.value,onClick:Nl,"aria-label":"Send message"},[...a[17]||(a[17]=[w("img",{src:Q,alt:"Message",class:"action-icon"},null,-1)])],8,Ae),Ya.value.phone?(B(),g("button",{key:0,class:"icon-button",onClick:Tl,"aria-label":"Call"},[...a[18]||(a[18]=[w("img",{src:q,alt:"Call",class:"action-icon"},null,-1)])])):A("",!0),nl.value?(B(),g("button",{key:1,class:"icon-button",onClick:jl,"aria-label":"Email"},[...a[19]||(a[19]=[w("img",{src:"/assets/icons/mail-outline.svg",alt:"Email",class:"action-icon"},null,-1)])])):A("",!0)])]),fl.value?(B(),g("section",Se,[w("div",Fe,[a[20]||(a[20]=w("h3",{id:"foster-fit-summary-title"},"Foster fit",-1)),w("span",Ie,[d(p,{name:"sparkles",size:"xs",color:"purple-light"})])]),w("p",null,k(fl.value.text),1),a[21]||(a[21]=w("small",null,"Generated from this foster’s saved preferences. Confirm dates before placement.",-1))])):A("",!0),Ya.value.about?(B(),g("div",Pe,[a[22]||(a[22]=w("p",{class:"section-label"},"ABOUT",-1)),w("p",xe,k(Ya.value.about),1)])):A("",!0),Ya.value.phone||nl.value||Ya.value.preferredContactMethod?(B(),g("div",Ne,[a[27]||(a[27]=w("p",{class:"section-label"},"CONTACT INFO",-1)),w("ul",Te,[Ya.value.phone?(B(),g("li",je,[w("div",Me,[d(p,{name:"call-outline",size:"sm"}),a[23]||(a[23]=w("span",null,"Phone",-1))]),w("a",{href:"tel:".concat(Ya.value.phone),class:"info-row-value link"},k(Ya.value.phone),9,De)])):A("",!0),nl.value?(B(),g("li",Re,[w("div",Ee,[d(p,{name:"mail-outline",size:"sm"}),a[24]||(a[24]=w("span",null,"Email",-1))]),w("a",{href:"mailto:".concat(nl.value),class:"info-row-value link"},k(nl.value),9,Oe)])):A("",!0),Ya.value.preferredContactMethod?(B(),g("li",ze,[w("div",Ue,[d(p,{name:"chatbubble-outline",size:"sm"}),a[25]||(a[25]=w("span",null,"Preferred contact",-1))]),w("span",Be,k(Bl(Ya.value.preferredContactMethod)),1)])):A("",!0),il.value?(B(),g("li",Ve,[w("div",Le,[d(p,{name:"globe-outline",size:"sm"}),a[26]||(a[26]=w("span",null,"Languages",-1))]),w("span",Ye,k(il.value),1)])):A("",!0)])])):A("",!0),vl.value.length>0?(B(),g("section",We,[w("div",null,[a[29]||(a[29]=w("h6",{class:"section-title"},"Waiting for Pickup Confirmation:",-1)),w("div",He,[w("div",Ge,[(B(!0),g(S,null,F(vl.value,e=>(B(),n(ne,{key:e.id,name:e.name,animal:e,onClick:a=>Ml(e.id,vl.value,"Waiting for Pickup Confirmation")},null,8,["name","animal","onClick"]))),128))]),a[28]||(a[28]=w("div",{class:"scroll-indicator right","aria-hidden":"true"},null,-1))]),a[30]||(a[30]=w("p",{class:"status-message"},"Foster needs to book a pickup time",-1))])])):A("",!0),w("section",{class:C(["section",{"border-top":0===vl.value.length}])},[w("div",null,[a[32]||(a[32]=w("h6",{class:"section-title"},"Currently Fostering:",-1)),dl.value.length>0?(B(),g("div",$e,[w("div",Qe,[(B(!0),g(S,null,F(dl.value,e=>(B(),n(ne,{key:e.id,name:e.name,animal:e,onClick:a=>Ml(e.id,dl.value,"Currently Fostering")},null,8,["name","animal","onClick"]))),128))]),a[31]||(a[31]=w("div",{class:"scroll-indicator right","aria-hidden":"true"},null,-1))])):(B(),g("p",qe,"None"))])],2),ml.value.length>0?(B(),g("section",Je,[d(le,{animals:ml.value,subtitle:null,"show-see-all":!1,onSelectAnimal
1:Dl},null,8,["animals"])])):A("",!0),hl.value.length?(B(),g("div",Xe,[w("div",Ke,[a[33]||(a[33]=w("p",{class:"section-label"},"CAPABILITIES & PREFERENCES",-1)),w("span",null,k(hl.value.length)+" selected",1)]),w("div",Ze,[(B(!0),g(S,null,F(hl.value,e=>(B(),g("span",{key:e.key,class:"capability-chip"},[e.species?(B(),g("span",ea,k(e.species),1)):A("",!0),b(" "+k(e.label),1)]))),128))])])):A("",!0),bl.value.length?(B(),g("div",aa,[a[34]||(a[34]=w("p",{class:"section-label"},"HOME & ROUTINE",-1)),w("dl",la,[(B(!0),g(S,null,F(bl.value,e=>(B(),g("div",{key:e.label,class:"context-row"},[w("dt",null,k(e.label),1),w("dd",null,k(e.answer),1)]))),128))])])):A("",!0),gl.value.length||Ya.value.prior_experience||Ya.value.additional_notes?(B(),g("div",ta,[a[37]||(a[37]=w("p",{class:"section-label"},"EXPERIENCE",-1)),gl.value.length?(B(),g("dl",na,[(B(!0),g(S,null,F(gl.value,e=>(B(),g("div",{key:e.label,class:"context-row context-row--short"},[w("dt",null,k(e.label),1),w("dd",{class:C({"answer-positive":"Yes"===e.answer})},k(e.answer),3)]))),128))])):A("",!0),Ya.value.prior_experience?(B(),g("div",sa,[a[35]||(a[35]=w("p",null,"What’s your fostering experience so far?",-1)),w("span",null,k(Ya.value.prior_experience),1)])):A("",!0),Ya.value.additional_notes?(B(),g("div",oa,[a[36]||(a[36]=w("p",null,"Anything else you want the coordinator to know?",-1)),w("span",null,k(Ya.value.additional_notes),1)])):A("",!0)])):A("",!0),rl.value?(B(),n(o(I),{key:8,class:"notes-accordion"},{default:s(()=>[d(o(P),{value:"foster-notes"},{default:s(()=>[d(o(x),{slot:"header",class:"notes-header"},{default:s(()=>[d(o(N),null,{default:s(()=>[...a[38]||(a[38]=[w("h2",null,"Notes",-1)])]),_:1}),d(p,{slot:"end",name:"chevron-down"})]),_:1}),w("div",ia,[w("div",ra,[qa.value&&!Xl.value.length?(B(),g("p",ua,"Loading notes...")):Xl.value.length?(B(!0),g(S,{key:1},F(Kl.value,e=>(B(),g("div",{key:e.key,class:"timeline-section"},[w("h4",ca,k(e.label),1),(B(!0),g(S,null,F(e.items,e=>{return B(),g("div",{key:e.id,class:"note-item"},[w("div",da,[w("button",{type:"button",class:C(["note-avatar note-author-link",{"note-author-link--disabled":!e.authorProfileId}]),disabled:!e.authorProfileId,onClick:a=>Zl(e.authorProfileId)},[d(oe,{size:"md","badge-size":"sm",src:e.authorAvatar||void 0,"fallback-name":e.authorName,role:e.authorRole,"force-badge":(l=e.authorRole,!!l&&ul.includes(l.toLowerCase()))},null,8,["src","fallback-name","role","force-badge"])],10,va),w("div",ma,[w("div",fa,[w("button",{type:"button",class:C(["note-author note-author-link",{"note-author-link--disabled":!e.authorProfileId}]),disabled:!e.authorProfileId,onClick:a=>Zl(e.authorProfileId)},k(e.authorName),11,pa),a[39]||(a[39]=w("span",{class:"note-dot"},"•",-1)),w("span",ha,k(Ql(e.createdAt)),1),"comment"!==e.kind?(B(),g("span",{key:0,class:C(["note-kind","note-kind--".concat(e.kind)])},k(et(e.kind)),3)):A("",!0)]),w("p",ba,k(e.text),1)])])]);var l}),128))]))),128)):(B(),g("p",ya,"No notes yet")),Ja.value?(B(),g("div",ga,[d(o(T),{modelValue:Ka.value,"onUpdate:modelValue":a[2]||(a[2]=e=>Ka.value=e),placeholder:"Add an internal note","auto-grow":!0,rows:4,class:"comment-textarea"},null,8,["modelValue"]),w("div",_a,[d(o(f),{fill:"clear",class:"cancel-btn",disabled:Xa.value,onClick:at},{default:s(()=>[...a[40]||(a[40]=[b("Cancel",-1)])]),_:1},8,["disabled"]),d(o(f),{class:"save-btn",disabled:!Ka.value.trim()||Xa.value,onClick:lt},{default:s(()=>[b(k(Xa.value?"Saving...":"Save Note"),1)]),_:1},8,["disabled"])])])):(B(),g("div",wa,[d(o(f),{class:"action-button",fill:"clear",onClick:a[3]||(a[3]=e=>Ja.value=!0)},{default:s(()=>[...a[41]||(a[41]=[b(" Add Notes ",-1)])]),_:1})]))])])]),_:1})]),_:1})):A("",!0)])):(B(),g("div",he,[...a[16]||(a[16]=[w("p",{class:"state-title"},"Foster profile not found.",-1)])])),d(o(j),{"is-open":G.value,header:"Foster Actions",buttons:Al.value,onDidDismiss:a[4]||(a[4]=e=>G.value=!1)},null,8,["is-open","buttons"]),d(J,{"is-open":za.value,title:"Report this profile",onClose:a[5]||(a[5]=e=>za.value=!1),onSubmit:Fl},null,8,["is-open"]),d(o(M),{"is-open":$.value,onDidDismiss:a[9]||(a[9]=e=>$.value=!1)},{default:s(()=>[d(o(y),null,{default:s(()=>[d(o(v),null,{default:s(()=>[d(o(h),{class:"ion-text-center"},{default:s(()=>[...a[42]||(a[42]=[b("Mark as Inactive",-1)])]),_:1}),d(o(m),{slot:"end"},{default:s(()=>[d(o(f),{fill:"clear",onClick:a[6]||(a[6]=e=>$.value=!1)},{default:s(()=>[...a[43]||(a[43]=[b(" Close ",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),d(o(D),null,{default:s(()=>[w("div",ka,[a[46]||(a[46]=w("p",null,"Add a comment about why this foster is being marked as inactive:",-1)),d(o(T),{modelValue:Ua.value,"onUpdate:modelValue":a[7]||(a[7]=e=>Ua.value=e),placeholder:"Enter comment...","auto-grow":!0,rows:4,class:"comment-textarea"},null,8,["modelValue"]),w("div",Ca,[d(o(f),{fill:"clear",class:"cancel-btn",onClick:a[8]||(a[8]=e=>$.value=!1)},{default:s(()=>
1[...a[44]||(a[44]=[b("Cancel",-1)])]),_:1}),d(o(f),{class:"save-btn",disabled:!Ua.value.trim(),onClick:Rl},{default:s(()=>[...a[45]||(a[45]=[b("Confirm",-1)])]),_:1},8,["disabled"])])])]),_:1})]),_:1},8,["is-open"]),d(o(M),{"is-open":ja.value,onDidDismiss:a[13]||(a[13]=e=>ja.value=!1)},{default:s(()=>[d(o(y),null,{default:s(()=>[d(o(v),null,{default:s(()=>[d(o(h),{class:"ion-text-center"},{default:s(()=>[...a[47]||(a[47]=[b("Remove Foster",-1)])]),_:1}),d(o(m),{slot:"end"},{default:s(()=>[d(o(f),{fill:"clear",onClick:a[10]||(a[10]=e=>ja.value=!1)},{default:s(()=>[...a[48]||(a[48]=[b(" Close ",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),d(o(D),null,{default:s(()=>[w("div",Aa,[a[51]||(a[51]=w("p",null,"Add a comment about why this foster is being removed:",-1)),d(o(T),{modelValue:Ba.value,"onUpdate:modelValue":a[11]||(a[11]=e=>Ba.value=e),placeholder:"Enter comment...","auto-grow":!0,rows:4,class:"comment-textarea"},null,8,["modelValue"]),w("div",Sa,[d(o(f),{fill:"clear",class:"cancel-btn",onClick:a[12]||(a[12]=e=>ja.value=!1)},{default:s(()=>[...a[49]||(a[49]=[b("Cancel",-1)])]),_:1}),d(o(f),{class:"save-btn",disabled:!Ba.value.trim(),onClick:El},{default:s(()=>[...a[50]||(a[50]=[b("Confirm",-1)])]),_:1},8,["disabled"])])])]),_:1})]),_:1},8,["is-open"]),d(o(M),{"is-open":Ma.value,onDidDismiss:Ol},{default:s(()=>[d(o(y),null,{default:s(()=>[d(o(v),null,{default:s(()=>[d(o(h),{class:"ion-text-center"},{default:s(()=>[...a[52]||(a[52]=[b("Make this volunteer a staff member",-1)])]),_:1}),d(o(m),{slot:"end"},{default:s(()=>[d(o(f),{fill:"clear",onClick:Ol},{default:s(()=>[...a[53]||(a[53]=[b(" Close ",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),d(o(D),null,{default:s(()=>[w("div",Fa,[w("p",null,k(ll.value)+" becomes a staff member of your organization and takes a staff seat. Their volunteer access here ends, and any other organizations they volunteer for are unaffected. ",1),a[57]||(a[57]=w("p",{class:"modal-section-label"},"Staff position",-1)),w("div",Ia,[(B(!0),g(S,null,F(o(R),e=>(B(),n(fe,{key:e.value,label:e.label,size:"sm",selected:Da.value===e.value,variant:"outlined",onClick:a=>Da.value=e.value},null,8,["label","selected","onClick"]))),128))]),Ea.value.length?(B(),g("div",Pa,[a[54]||(a[54]=w("p",{class:"promote-blockers__title"},"Reassign these first",-1)),w("ul",xa,[(B(!0),g(S,null,F(Ea.value,e=>(B(),g("li",{key:"".concat(e.type,"-").concat(e.id)},k("animal"===e.type?e.name||"Animal ".concat(e.id):"Assignment ".concat(e.id)),1))),128))])])):A("",!0),Oa.value?(B(),g("p",Na," Your plan has no staff seats left. Add a seat or upgrade from the Team page, then try again. ")):A("",!0),w("div",Ta,[d(o(f),{fill:"clear",class:"cancel-btn",onClick:Ol},{default:s(()=>[...a[55]||(a[55]=[b("Cancel",-1)])]),_:1}),Oa.value?(B(),n(o(f),{key:0,class:"save-btn",onClick:zl},{default:s(()=>[...a[56]||(a[56]=[b("Go to Team",-1)])]),_:1})):(B(),n(o(f),{key:1,class:"save-btn",disabled:!Da.value||Ra.value,onClick:Ul},{default:s(()=>[b(k(Ra.value?"Converting...":"Make staff member"),1)]),_:1},8,["disabled"]))])])]),_:1})]),_:1},8,["is-open"])]),_:1})]),_:1}))}}),[["__scopeId","data-v-d87ad329"]])},props:{id:{type:String,required:!0}},data:()=>({currentUser:null,ellipsisVertical:G,arrowBackOutline:H,isOptionsOpen:!1,isPromptOpen:!1,pendingAction:null,isActiveCached:!0}),computed:{fosterId(){return this.id},actionButtons(){const e=[];return this.isActiveCached?e.push({text:"Mark as Inactive",handler:()=>this.openPrompt("set-inactive")}):e.push({text:"Mark as Active",handler:()=>this.openPrompt("set-active")}),e.push({text:"Remove Foster",role:"destructive",handler:()=>this.openPrompt("remove")}),e.push({text:"Cancel",role:"cancel"}),e},promptHeader(){return this.pendingAction?"set-active"===this.pendingAction.type?"Mark as Active":"set-inactive"===this.pendingAction.type?"Mark as Inactive":"Remove Foster":"Confirm action"}},async mounted(){this.currentUser=await W.get("currentUser")},methods:{goBack(){this.$router.back()},async openOptions(){var e,a;const l=await(null==(a=null==(e=this.$refs.fosterProfile)?void 0:e.getStatus)?void 0:a.call(e));"boolean"==typeof l&&(this.isActiveCached=l),this.isOptionsOpen=!0},openPrompt(e){this.pendingAction={type:e},this.isPromptOpen=!0},closePrompt(){this.isPromptOpen=!1,this.pendingAction=null},async onConfirmPrompt(e){var a,l,t;const n=((null==e?void 0:e.comment)||"").trim(),s=this.$refs.fosterProfile;if(!this.pendingAction||!s)return this.closePrompt();"set-active"===this.pendingAction.type?await(null==(a=s.updateStatus)?void 0:a.call(s,!0,n)):"set-inactive"===this.pendingAction.type?await(null==(l=s.updateStatus)?void 0:l.call(s,!1,n)):"remove"===this.pendingAction.type&&await(null==(t=s.removeFoster)?void 0:t.call(s,n)),this.closePrompt()}}}),[["render",function(e,a,l,t,s,o){const i=$("FosterProfile");return B(),n(i,{ref:"fosterProfile",fosterId:e.fosterId},null,8,["fosterId"])}],["__scopeId","data-v-b459660b"]]);export{ja as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.