PageSourceSearch

https://app.pawsitivefoster.com/assets/FosterAssignModal-CxTjxwXG.js

js pawsitivefoster.com collected 2026-09-24 14:52:23 UTC 12,940 bytes, 2 lines download raw bytes

1import{aQ as e,bx as a,aV as l,bn as t,bA as s,bp as o,a_ as n,bI as i,aS as r,r as u,e as c,b1 as d,bm as v,w as m,aR as p,u as f,bu as g,bJ as b,d2 as y,d3 as h,by as _,c7 as k,c$ as C,bz as x,bo as S,bX as V}from"./index-B7717Xy-.js";import{S as F}from"./SidePanel-DCuTlK1W.js";import{B as I}from"./BaseModal-DdXzcGH0.js";import{P as A}from"./PInput-C2GfNYr8.js";import{F as j}from"./FallbackAvatar-BySus5t3.js";import{f as w}from"./fosterPicker-BmrZ2ZyO.js";import D from"./GroupActionDialog-BdRgwjRn.js";import{B as O}from"./BasePill-CPiaDg9T.js";import{a as U,b as N}from"./fosterAvailability-DNq5ZMWb.js";import{E as T}from"./ExpectedEndDateField-BKJ1O7vp.js";import{u as z}from"./useUnsavedChangesGuard-DbDu1K-G.js";import{f as P}from"./fosterMatchUtils-CbkACqLJ.js";const B={class:"guest-foster-field"},E={key:0,class:"guest-card"},L={class:"guest-info"},M={class:"guest-name-line"},q={class:"guest-name"},G={class:"guest-meta"},$={key:0},R={class:"guest-form"},J=["disabled"],Q=v(e({__name:"GuestFosterField",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:v}){const m=v;let p=0;const f="guest-foster-".concat(p+=1),g=u(!1),b=u(""),y=u(""),h=u(""),_=c(()=>b.value.trim().length>0&&y.value.trim().length>0),k=()=>{b.value="",y.value="",h.value="",g.value=!0},C=()=>{g.value=!1},x=()=>{_.value&&(m("update:modelValue",{name:b.value.trim(),phone:y.value.trim(),email:h.value.trim()}),g.value=!1)},S=()=>{m("update:modelValue",null)};return(u,c)=>(d(),a("div",B,[e.modelValue?(d(),a("div",E,[l(j,{class:"guest-avatar",name:e.modelValue.name},null,8,["name"]),t("div",L,[t("p",M,[t("span",q,s(e.modelValue.name),1),c[3]||(c[3]=t("span",{class:"guest-pill"},"Guest",-1))]),t("p",G,[o(s(e.modelValue.phone),1),e.modelValue.email?(d(),a("span",$," · "+s(e.modelValue.email),1)):n("",!0)])]),t("button",{type:"button",class:"guest-remove","aria-label":"Remove guest foster",onClick:S},[l(i,{name:"close-circle",size:"sm",color:"grey-400"})])])):(d(),a("button",{key:1,type:"button",class:"quick-add-link",onClick:k},[l(i,{name:"add-circle-outline",size:14,color:"grey-200"}),c[4]||(c[4]=t("span",null,"Assign a guest foster",-1))])),l(I,{"is-open":g.value,title:"Add guest foster",variant:"dialog",onDismiss:C},{actions:r(()=>[t("button",{type:"button",class:"button-sm-tertiary",onClick:C},"Cancel"),t("button",{type:"button",class:"button-sm-primary",disabled:!_.value,onClick:x},"Add foster",8,J)]),default:r(()=>[c[5]||(c[5]=t("p",{class:"helper-text guest-intro"},"A guest foster doesn't have a Pawsitive account.",-1)),t("div",R,[l(A,{id:"".concat(f,"-name"),label:"Name",modelValue:b.value,"onUpdate:modelValue":c[0]||(c[0]=e=>b.value=e),required:!0,placeholder:"Full name"},null,8,["id","modelValue"]),l(A,{id:"".concat(f,"-phone"),label:"Phone",type:"tel",modelValue:y.value,"onUpdate:modelValue":c[1]||(c[1]=e=>y.value=e),required:!0,placeholder:"(555) 123-4567"},null,8,["id","modelValue"]),l(A,{id:"".concat(f,"-email"),label:"Email",type:"email",modelValue:h.value,"onUpdate:modelValue":c[2]||(c[2]=e=>h.value=e),placeholder:"[email protected]"},null,8,["id","modelValue"])])]),_:1},8,["is-open"])]))}}),[["__scopeId","data-v-31fa523d"]]),X={class:"foster-info"},Y=["src","alt"],H={class:"foster-details"},K={class:"foster-name"},W={key:0,class:"foster-specialties"},Z=v(e({__name:"FosterListItem",props:{foster:{},isSelected:{type:Boolean}},emits:["select"],setup(e,{emit:o}){const v=e,_=o,k=u(!1),C=c(()=>U(v.foster)),x=c(()=>N(v.foster));m(()=>{var e;return null==(e=v.foster)?void 0:e.photo_url},()=>{k.value=!1});const S=e=>e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),V=c(()=>{var e,a;const l=[...(null==(e=v.foster.happyToFoster)?void 0:e.foster_types)||[],...(null==(a=v.foster.happyToFoster)?void 0:a.medical_comfort)||[]],t=l.slice(0,3).map(S).join(", ");return l.length>3?t+"...":t}),F=c(()=>{var e,a,l,t;return(null==(a=null==(e=v.foster.happyToFoster)?void 0:e.foster_types)?void 0:a.length)||(null==(t=null==(l=v.foster.happyToFoster)?void 0:l.medical_comfort)?void 0:t.length)}),I=()=>{_("select",v.foster.foster_id||v.foster.id)};return(o,u)=>(d(),p(f(g),{class:b(["foster-list-item",{"is-selected":e.isSelected}]),onClick:I,button:"",lines:"none",detail:!1},{default:r(()=>[t("div",X,[!k.value&&e.foster.photo_url?(d(),a("img",{key:0,src:e.foster.photo_url,alt:"".concat(e.foster.first_name," ").concat(e.foster.last_name,"'s avatar"),class:"foster-avatar",loading:"lazy",fetchpriority:"low",onError:u[0]||(u[0]=e=>k.value=!0)},null,40,Y)):(d(),p(j,{key:1,class:"foster-avatar",name:"".concat(e.foster.first_name," ").concat(e.foster.last_name)},null,8,["name"])),t("div",H,[t("div",K,s(e.foster.first_name)+" "+s(e.foster.last_name),1),t("div",{class:b(["foster-availability",{"foster-availability--available":C.value}])},[C.value?(d(),p(i,{key:0,name:"checkmark-circle",size:"xs"})):e.foster.unavailableUntil?(d(),p(i,{key:1,name:"calendar-outline",size:"xs"})):n("",!0),t("span",null,s(x.value),1)],2),F.value?(d(),a("div",W,s(V.value),1)):n("",!0)])]),l(i,{name:e.isSelected?f(y):f(h),class:"select-icon",color:e.isSelected?"none":"grey-100",slot:"end","aria-hidden":"true"},null,8,["name","color"])]),_:1},8,["class"]))}}),[["__scopeId","data-v-d4892a86"]]),ee={key:0,class:"group-context"},ae={class:"group-warning"},le={class:"group-title"},te={class:"search-field"},se={class:"filter-row"},oe={key:1,class:"clear-filters"},ne={class:"foster-list",role:"listbox","aria-label":"Available fosters"},ie=["aria-selected"],re={key:2,class:"no-fosters"},ue={key:3,class:"no-selection"},ce={key:5,class:"assignment-note-section"},de=["disabled"],ve=v(e({__name:"FosterAssignModal",props:{isOpen:{type:Boolean},fosters:{},animalId:{},animalName:{},groupContext:{},preselectedFosterId:{},defaultAssignScope:{}},emits:["update:isOpen","cancel","confirm"],setup(e,{emit:v}){const g=e,b=v,y=[{id:"available",label:"Available",type:"status"},{id:"showed_interest",label:"Showed Interest",type:"status"},{id:"neonatal",label:"Neonatal",type:"preference",preferenceId:"neonatal"},{id:"medical",label:"Medical",type:"preference",preferenceId:"medical"},{id:"juvenile",label:"Juvenile",type:"preference",preferenceId:"juvenile"}],h=u(""),I=u([]),A=u(null);m(A,e=>{e&&(I.value=[])});const j=u([]),N=u(""),B=u(null),E=u(!1),L=u(!1),M=u("group"),q=c(()=>I.value.length>0||null!==A.value),G=z({enabled:c(()=>g.isOpen),snapshot:()=>({searchQuery:h.value,selectedFosterIds:I.value,guestFoster:A.value,activeFilters:j.value,assignmentNote:N.value,expectedEndDate:B.value,groupActionPrimaryChoice:M.value}),onDiscard:()=>me()}),$=c(()=>Boolean(g.groupContext&&g.groupContext.count>1)),R=c(()=>{const e=I.value[0];return e&&g.fosters.find(a=>String(a.foster_id||a.id)===e)||null}),J=c(()=>A.value?A.value.name:R.value&&"".concat(R.value.first_name||""," ").concat(R.value.last_name||"").trim()||"Selected foster"),X=c(()=>{var e,a;return((null==(e=g.groupContext)?void 0:e.displayName)||(null==(a=g.groupContext)?void 0:a.name)||"this group").replace(/\s*\(\d+\)\s
1*$/,"").trim()}),Y=c(()=>{var e;const a=(null==(e=g.groupContext)?void 0:e.count)||0;return"Assign ".concat(J.value," to all ").concat(a," animals in ").concat(X.value,"?")}),H=c(()=>{var e,a,l,t,s;return(null==(e=g.animalName)?void 0:e.trim())?g.animalName.trim():Array.isArray(null==(a=g.groupContext)?void 0:a.animalDetails)&&(null==(l=g.groupContext)?void 0:l.animalDetails.length)?String(g.groupContext.animalDetails[0]).replace(/\s*\([^)]*\)\s*$/,"").trim()||"this animal":"string"==typeof(null==(t=g.groupContext)?void 0:t.detailsList)&&g.groupContext.detailsList.trim()&&(null==(s=g.groupContext.detailsList.split(",")[0])?void 0:s.replace(/\s*\([^)]*\)\s*$/,"").trim())||"this animal"}),K=c(()=>{let e=w(g.fosters);if(h.value){const a=h.value.toLowerCase();e=e.filter(e=>{var l,t;const s="".concat(e.first_name," ").concat(e.last_name).toLowerCase(),o=(null==(t=null==(l=e.happyToFoster)?void 0:l.foster_types)?void 0:t.join(" ").toLowerCase())||"";return s.includes(a)||o.includes(a)})}return j.value.length>0&&(e=e.filter(e=>{var a;for(const l of j.value)switch(l){case"available":if(!U(e))return!1;break;case"showed_interest":if(!(null==(a=e.interestedInFostering)?void 0:a.some(e=>String(e.id)===String(g.animalId))))return!1;break;default:{const a=y.find(e=>e.id===l);if("preference"===(null==a?void 0:a.type)&&a.preferenceId&&!P(e,a.preferenceId))return!1;break}}return!0})),e}),W=c(()=>j.value.length>0),ve=c(()=>{const e=new Date;return new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().slice(0,10)}),me=()=>{I.value=[],h.value="",j.value=[],N.value="",B.value=null,E.value=!1,L.value=!1,M.value="group",A.value=null};m(()=>g.isOpen,async e=>{if(!e)return void(E.value=!1);if(me(),M.value="individual"===g.defaultAssignScope?"individual":"group",!g.preselectedFosterId)return await V(),void G.resetDirty();const a=String(g.preselectedFosterId);if(!g.fosters.some(e=>String(e.foster_id||e.id)===a))return await V(),void G.resetDirty();I.value=[a],L.value=!0,$.value&&(E.value=!0),await V(),G.resetDirty()});const pe=()=>{},fe=()=>{h.value=""},ge=()=>{j.value=[]},be=e=>{const a=String(e);I.value=I.value[0]===a?[]:[a],A.value=null,E.value=!1,L.value=!1},ye=()=>{E.value=!1,b("update:isOpen",!1),b("cancel"),me()},he=()=>{G.requestClose(ye)},_e=e=>{const a=I.value[0];(a||A.value)&&(G.markSaved(),b("confirm",{fosterIds:a?[a]:[],assignScope:e,note:N.value.trim()||void 0,expectedEndDate:B.value||void 0,guestFoster:A.value||void 0}),he())},ke=e=>{E.value=!1,"cancel"!==e?_e(e):L.value&&he()},Ce=()=>{q.value&&($.value?E.value=!0:_e("individual"))};return(u,c)=>(d(),a(_,null,[l(F,{"is-open":e.isOpen,title:"Assign to Foster","can-dismiss":f(G).canDismiss,onClose:ye},{footer:r(()=>[t("button",{type:"button",class:"button-sm-tertiary",onClick:he},"Cancel"),t("button",{type:"button",class:"button-sm-primary",disabled:!q.value,onClick:Ce},s($.value?"Continue":"Assign foster"),9,de)]),default:r(()=>{var u;return[c[10]||(c[10]=t("p",{class:"description"},"Select a foster to assign.",-1)),$.value?(d(),a("div",ee,[t("div",ae,[l(i,{name:"information-circle"}),t("div",null,[t("p",le,"This animal is part of "+s(null==(u=e.groupContext)?void 0:u.displayName),1),c[5]||(c[5]=t("p",{class:"group-message"},"You can choose between assigning this animal only or the entire group.",-1))])])])):n("",!0),t("div",te,[l(i,{class:"search-icon",name:"search-outline"}),k(t("input",{"onUpdate:modelValue":c[0]||(c[0]=e=>h.value=e),class:"search-input",placeholder:"Search by name or skills",onInput:pe,type:"text"},null,544),[[C,h.value]]),h.value?(d(),a("button",{key:0,class:"clear-button",onClick:fe,type:"button","aria-label":"Clear search"},[l(i,{name:"close-circle"})])):n("",!0)]),l(Q,{modelValue:A.value,"onUpdate:modelValue":c[1]||(c[1]=e=>A.value=e),class:"assign-guest-field"},null,8,["modelValue"]),t("div",se,[(d(),a(_,null,x(y,e=>l(O,{key:e.id,label:e.label,selected:j.value.includes(e.id),variant:"outlined",size:"sm",onClick:a=>(e=>{const a=j.value.indexOf(e);-1===a?j.value.push(e):j.value.splice(a,1)})(e.id)},null,8,["label","selected","onClick"])),64))]),W.value?(d(),a("div",oe,[l(f(S),{fill:"clear",onClick:ge},{default:r(()=>[...c[6]||(c[6]=[o(" Clear filters ",-1)])]),_:1})])):n("",!0),t("ul",ne,[(d(!0),a(_,null,x(K.value,e=>(d(),a("li",{key:e.foster_id||e.id,role:"option","aria-selected":I.value.includes(String(e.foster_id||e.id))},[l(Z,{foster:e,"is-selected":I.value.includes(String(e.foster_id||e.id)),onSelect:be},null,8,["foster","is-selected"])],8,ie))),128))]),K.value.length?q.value?n("",!0):(d(),a("div",ue,[...c[8]||(c[8]=[t("p",null,"Select a foster to assign.",-1)])])):(d(),a("div",re,[...c[7]||(c[7]=[t("p",null,"No fosters match your criteria.",-1)])])),q.value?(d(),p(T,{key:4,modelValue:B.value,"onUpdate:modelValue":c[2]||(c[2]=e=>B.value=e),"datetime-id":"assignment-expected-end-date",class:"assignment-date-section",min:ve.value},null,8,["modelValue","min"])):n("",!0),q.value?(d(),a("div",ce,[c[9]||(c[9]=t("label",{class:"assignment-note-label",for:"assignment-note"},"Note",-1)),k(t("textarea",{id:"assignment-note","onUpdate:modelValue":c[3]||(c[3]=e=>N.value=e),class:"assignment-note-textarea",rows:"3",placeholder:"Optional internal note for this assignment"},null,512),[[C,N.value]])])):n("",!0)]}),_:1},8,["is-open","can-dismiss"]),$.value&&e.groupContext?(d(),p(D,{key:0,"is-open":E.value,"group-context":e.groupContext,"animal-name":H.value,"action-name":"assign foster","main-message-override":Y.value,"question-text-override":"","primary-choice":M.value,onChoice:ke,onDismissed:c[4]||(c[4]=e=>E.value=!1)},null,8,["is-open","group-context","animal-name","main-message-override","primary-choice"])):n("",!0)],64))}}),[["__scopeId","data-v-c76b2cd8"]]),me=Object.freeze(Object.defineProperty({__proto__:null,default:ve},Symbol.toStringTag,{value:"Module"}));
1export{Z as F,Q as G,ve as a,me as b};
2//# sourceMappingURL=FosterAssignModal-CxTjxwXG.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.