1import{r as C,j as e,dL as Fe,c6 as Te,dM as ke,q as ge,dN as Le,F as Q,ae as Oe,dO as Re,dP as He,u as O,W as B,I as E,bv as _e,bx as Be,aW as se,M as ae,aP as te,n as Y,S as X,cw as he,B as re,dQ as Ue,bi as Ce,ca as Se,bg as ze,o as me,p as ue,ct as Ke,cu as We,cv as Ge,cZ as Qe,c_ as pe}from"./elements-5kxJS_4j.js";import{M as Ye}from"./ModernPortalPage-ZOfMD2FX.js";import{A as xe}from"./authorization-DRCBMAi9.js";import{u as ee}from"./useModalActions-Dvto1loR.js";import{j as _,k as K,aX as Xe,ba as Ze,p as Je}from"./index-CtCeyryw.js";import{u as J,C as y,a as ea}from"./index.esm-GMeyTKQp.js";import{C as L}from"./contactFieldMaxLengths-DkDsle-Q.js";import{u as Z}from"./useMutation-jkV-6MpM.js";import{E as aa}from"./ExpandableCustomContent-C4IwOpOO.js";import{u as ra}from"./useCustomContent-DI_9OCLI.js";import{u as na}from"./useIsMobile-DE0QDUth.js";import{u as ta}from"./useIsNonHomeownerBoardMember-Cs-SpCXk.js";import"./useAuthorization-XS6cSJ0I.js";import"./grids-DGmfp9GI.js";import"./startOfDay-AazlW55I.js";import"./CustomContent-DRQushAI.js";import"./index-BSR_b3JY.js";const Pe=["AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"];function qe({id:r,value:l,onChange:t,onKeyDown:d,disabled:o}){const[s,p]=C.useState(Pe),b=a=>{p(Pe.filter(j=>j.toLowerCase().includes(a.toLowerCase())))},c=a=>{t(a??"")};return e.jsx(Fe,{value:l??"",onChange:c,disabled:o,children:e.jsxs("div",{id:r,className:"relative w-full lg:w-1/2 text-base-fg",children:[e.jsxs("div",{children:[e.jsx(Te,{className:"block mb-1 text-sm font-medium text-base-header",children:"State"}),e.jsx(ke,{id:`${r}__input`,placeholder:"Choose...",displayValue:a=>a,onChange:a=>b(a.target.value),onKeyDown:d,autoComplete:"off",className:ge("relative w-full cursor-default rounded-md border border-input-border bg-input-bg py-2 pl-3 pr-10","text-left text-input-fg shadow-sm focus:border-input-active focus:outline-none focus:ring-1","focus:ring-input-active sm:text-sm")}),e.jsx(Le,{className:"absolute inset-y-4 right-0 flex flex-col justify-center h-full items-center pr-2",children:e.jsx(Q,{icon:Oe})})]}),e.jsx(Re,{"data-qa":`${r}__options-container`,style:l?{bottom:"65%",top:"auto"}:{},className:"absolute z-10 mt-1 bottom-6 max-h-60 w-full overflow-auto rounded-md bg-input-bg text-input-fg py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",children:s.map(a=>e.jsx(He,{value:a,"data-qa":`${r}__option`,className:"relative cursor-default text-cmp-heading select-none py-2 pl-10 pr-4 data-[focus]:bg-primary-bg data-[focus]:bg-opacity-25",children:a},a))})]})})}const sa=C.forwardRef((r,l)=>{const{t}=O(),d=_(u=>{var f;return(f=u.user)==null?void 0:f.relId}),{handleSubmit:o,control:s,formState:{errors:p,isValid:b,isDirty:c},watch:a}=J({mode:"onChange",defaultValues:{address1:"",address2:"",city:"",state:"",postalCode:"",label:"",province:"",country:"",isInternational:!1,isMailing:!1,type:"homeownerAddress"}});C.useEffect(()=>{r.onValid(b)},[b]),C.useEffect(()=>{r.onDirty(c)},[c]);const m=o(async u=>{if(!d)throw new Error("No homeowner ID found");r.createAddress(u,d)}),v=u=>{m(u).catch(console.error)};C.useImperativeHandle(l,()=>({submit:m}));const h=a("isInternational");return e.jsxs("form",{onSubmit:v,className:"flex flex-col gap-7",children:[e.jsx(y,{name:"isMailing",control:s,defaultValue:!1,render:({field:u})=>e.jsx(B,{...u,id:"mailing-address",className:"flex-row-reverse justify-between",value:u.value,onChange:()=>u.onChange(!u.value),label:t("profile.mailingAddress").toString()})}),e.jsx(y,{name:"isInternational",control:s,defaultValue:!1,render:({field:u})=>e.jsx(B,{...u,id:"international-address",className:"flex-row-reverse justify-between",value:u.value,onChange:()=>u.onChange(!u.value),label:t("profile.internationalAddress").toString()})}),e.jsx(y,{name:"label",control:s,defaultValue:"",render:({field:u})=>{var f,g;return e.jsx(E,{...u,errorSpacing:!1,type:"text",label:t("profile.label").toString(),error:(g=(f=p.label)==null?void 0:f.message)==null?void 0:g.toString(),qaAttribute:"new-contact-label",maxLength:L.label})},rules:{required:t("profile.labelRequired").toString()}}),e.jsx(y,{name:"address1",control:s,defaultValue:"",render:({field:u})=>{var f,g;return e.jsx(E,{...u,errorSpacing:!1,type:"text",label:t("profile.streetAddress").toString(),error:(g=(f=p.streetAddress)==null?void 0:f.message)==null?void 0:g.toString(),qaAttribute:"new-street-address",maxLength:L.address1})},rules:{required:t("profile.streetAddress").toString()}}),e.jsx(y,{name:"address2",control:s,defaultValue:"",render:({field:u})=>e.jsx(E,{...u,errorSpacing:!1,type:"text",label:t("profile.secondaryAddress").toString(),qaAttribute:"new-secondary-address",maxLength:L.address2})}),e.jsx(y,{name:"city",control:s,defaultValue:"",render:({field:u})=>{var f,g;return e.jsx(E,{...u,errorSpacing:!1,type:"text",label:t("profile.city").toString(),error:(g=(f=p.city)==null?void 0:f.message)==null?void 0:g.toString(),qaAttribute:"new-city",maxLength:L.city})},rules:{required:t("profile.cityRequired").toString()}}),!h&&e.jsxs("div",{className:"flex w-full gap-6",children:[e.jsx(y,{name:"state",control:s,defaultValue:"",render:({field:u})=>
1e.jsx(qe,{...u,id:"new-state",onChange:f=>u.onChange(f),value:u.value??""}),rules:{required:t("profile.stateRequired").toString()}}),e.jsx(y,{name:"postalCode",control:s,defaultValue:"",render:({field:u})=>{var f,g;return e.jsx(E,{...u,errorSpacing:!1,type:"text",label:t("profile.zipcode").toString(),error:(g=(f=p.zipcode)==null?void 0:f.message)==null?void 0:g.toString(),className:"grow",qaAttribute:"new-zip-code",maxLength:L.postalCode})},rules:{required:t("profile.zipcodeRequired").toString()}})]}),h&&e.jsxs(e.Fragment,{children:[e.jsx(y,{name:"province",control:s,defaultValue:"",render:({field:u})=>{var f,g;return e.jsx(E,{...u,errorSpacing:!1,type:"text",label:t("profile.provinceAndPostalCode").toString(),error:(g=(f=p.provinceAndPostalCode)==null?void 0:f.message)==null?void 0:g.toString(),className:"grow",qaAttribute:"new-province-and-postal-code",maxLength:L.province})},rules:{required:t("profile.provinceAndPostalCodeRequired").toString()}}),e.jsx(y,{name:"country",control:s,defaultValue:"",render:({field:u})=>{var f,g;return e.jsx(E,{...u,errorSpacing:!1,type:"text",label:t("profile.country").toString(),error:(g=(f=p.country)==null?void 0:f.message)==null?void 0:g.toString(),className:"grow",qaAttribute:"new-country",maxLength:L.country})}})]})]})}),la=C.forwardRef((r,l)=>{const{t}=O(),d=_(v=>{var h;return(h=v.user)==null?void 0:h.relId}),{handleSubmit:o,control:s,formState:{errors:p,isValid:b,isDirty:c}}=J({mode:"onChange",defaultValues:{email:"",label:"",isPrimary:!1}});C.useEffect(()=>{r.onValid(b)},[b]),C.useEffect(()=>{r.onDirty(c)},[c]);const j=o(async v=>{if(!v.email||!v.label)throw new Error("Improper form data");if(!d)throw new Error("No homeowner ID found");r.createContact(v,d)}),m=v=>{j(v).catch(console.error)};return C.useImperativeHandle(l,()=>({submit:j})),e.jsxs("form",{onSubmit:m,className:"flex flex-col gap-7",children:[e.jsx(y,{name:"email",control:s,defaultValue:"",render:({field:v})=>{var h,u;return e.jsx(E,{...v,errorSpacing:!1,type:"text",label:t("auth.login.email").toString(),error:(u=(h=p.email)==null?void 0:h.message)==null?void 0:u.toString(),qaAttribute:"new-contact-email",maxLength:L.email})},rules:{required:t("auth.login.emailRequired").toString(),pattern:{value:/^([\w.!#$%&'*+\-/=?^`{|}~]+@([\w\-.]+\.)+[\w-]{2,15}([,;]\s{0,}){0,1})+$/,message:t("auth.login.invalidEmail").toString()}}}),e.jsx(y,{name:"label",control:s,defaultValue:"",render:({field:v})=>{var h,u;return e.jsx(E,{...v,errorSpacing:!1,type:"text",label:t("profile.label").toString(),error:(u=(h=p.label)==null?void 0:h.message)==null?void 0:u.toString(),qaAttribute:"new-email-label",maxLength:L.label})},rules:{required:t("profile.labelRequired").toString()}}),e.jsx(y,{name:"isPrimary",control:s,defaultValue:!1,render:({field:v})=>e.jsx(B,{...v,id:"make-primary-email",className:"flex-row-reverse justify-between",value:v.value,onChange:()=>v.onChange(!v.value),label:t("profile.makePrimary").toString()})})]})}),oa=C.forwardRef((r,l)=>{const{t}=O(),d=_(f=>{var g;return(g=f.user)==null?void 0:g.relId}),{onValid:o,createContact:s,onDirty:p}=r,{handleSubmit:b,control:c,formState:{errors:a,isValid:j,isDirty:m}}=J({mode:"onChange",defaultValues:{phone:"",label:"",isPrimary:!1}});C.useEffect(()=>{o(j)},[j,o]),C.useEffect(()=>{p(m)},[m,p]);const h=b(async f=>{if(!f.phone||!f.label)throw new Error("Inproper form data");if(!d)throw new Error("No homeowner ID found");s(f,d)}),u=f=>{h(f).catch(console.error)};return C.useImperativeHandle(l,()=>({submit:h})),e.jsxs("form",{onSubmit:u,className:"flex flex-col gap-7",children:[e.jsx(y,{name:"phone",control:c,rules:{required:t("profile.phoneRequired").toString(),pattern:{value:_e,message:t("profile.invalidPhone").toString()}},render:({field:f})=>{var V,N;const g=D=>Be(D),A=D=>{const R=g(D.target.value);f.onChange(R)};return e.jsx(E,{...f,onChange:A,value:f.value,errorSpacing:!1,type:"tel",label:t("profile.phoneNumber").toString(),error:(N=(V=a.phone)==null?void 0:V.message)==null?void 0:N.toString(),qaAttribute:"new-phone-label",maxLength:14})}}),e.jsx(y,{name:"label",control:c,defaultValue:"",render:({field:f})=>{var g,A;return e.jsx(E,{...f,errorSpacing:!1,type:"text",label:t("profile.label").toString(),error:(A=(g=a.label)==null?void 0:g.message)==null?void 0:A.toString(),qaAttribute:"new-phone-label",maxLength:L.label})},rules:{required:t("profile.labelRequired").toString()}}),e.jsx(y,{name:"isPrimary",control:c,defaultValue:!1,render:({field:f})=>e.jsx(B,{...f,id:"make-primary-email",className:"flex-row-reverse justify-between",value:f.value,onChange:()=>f.onChange(!f.value),label:t("profile.makePrimary").toString()})})]})});function le({isDirty:r,onClose:l,reset:t}){const[d,o]=C.useState(!1);return{showUnsavedChanges:d,handleClose:()=>{r&&d?(o(!1),t(),l()):r&&!d?o(!0):(l(),t())},handleDiscardChanges:()=>{o(!1),t(),l()},handleContinueEditing:()=>{o(!1)}}}function oe(){const{t:r}=O();return e.jsxs("div",{className:"flex flex-col gap-4","data-qa":"unsaved-changes-view",children:[e.jsx("h1",{className:"text-lg font-semibold",children:r("profile.unsavedChanges")}
1),e.jsx("p",{className:"text-base-fg",children:r("profile.unsavedChangesMessage")})]})}function Ie({mailingAddress:r}){const[l,t]=C.useState(!1);return{isMailingAddressChanging:l,setIsMailingAddressChanging:t,checkIfMailingAddressChanges:o=>{const s=r.find(p=>p.isMailing);return(s==null?void 0:s.address1)!==o.address1||(s==null?void 0:s.address2)!==o.address2||(s==null?void 0:s.city)!==o.city||(s==null?void 0:s.state)!==o.state||(s==null?void 0:s.postalCode)!==o.postalCode||(s==null?void 0:s.country)!==o.country||(s==null?void 0:s.province)!==o.province||(s==null?void 0:s.isInternational)!==o.isInternational||(s==null?void 0:s.label)!==o.label||(s==null?void 0:s.type)!==o.type}}}function Ae({address:r}){const{t:l}=O();return e.jsxs("div",{className:"flex flex-col gap-4 text-base-fg",role:"alert","aria-live":"polite",children:[e.jsx("h2",{children:l("profile.changePrimaryAddress")}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"font-medium","aria-label":"Address label",children:r.label}),e.jsx("address",{className:"not-italic",children:se({address1:r.address1,address2:r.address2,city:r.city,stateProvince:r.state??"",postalCode:r.postalCode??""},"full")})]}),e.jsx("p",{children:l("profile.proceedWithChange")})]})}const fe=[{display:"Email",value:"email"},{display:"Address",value:"address"},{display:"Phone Number",value:"phone"}];function ia({view:r,isModalOpen:l,closeModal:t,refetch:d,mailingAddress:o}){const[s,p]=C.useState("email"),b=C.useRef(null),[c,a]=C.useState(!1),[j,m]=C.useState(!1),[v,h]=C.useState(!1),[u,f]=C.useState(null),{t:g}=O(),{showUnsavedChanges:A,handleClose:V,handleContinueEditing:N}=le({isDirty:v,onClose:t,reset:()=>""}),{isMailingAddressChanging:D,setIsMailingAddressChanging:R,checkIfMailingAddressChanges:w}=Ie({mailingAddress:o}),[S,M]=C.useState(!1);C.useEffect(()=>{S&&!v&&(V(),M(!1))},[S,v,V]);const H=()=>{h(!1),M(!0),Y({message:g("profile.success",{type:s}),title:"Success",type:"success"}),R(!1),a(!1),d()},z=()=>{a(!1)},{mutate:I}=Z({mutationFn:({data:$,homeownerId:U})=>(a(!0),K.createContact(U,$)),onSuccess:()=>{H()},onError:()=>a(!1)}),P=($,U)=>{I({data:$,homeownerId:U})},{mutate:T}=Z({mutationFn:({data:$,homeownerId:U})=>(a(!0),K.createAddress(U,$)),onSuccess:H,onError:z}),x=($,U)=>{if($.isMailing&&!D&&w($)){f({...$,isInternational:$.isInternational??!1}),R(!0);return}T({data:$,homeownerId:U})},q=()=>{b.current&&j&&b.current.submit()},F=()=>{switch(s){case"address":return e.jsx(sa,{ref:b,onValid:m,createAddress:x,onDirty:h});case"email":return e.jsx(la,{ref:b,onValid:m,createContact:P,onDirty:h});case"phone":return e.jsx(oa,{ref:b,onValid:m,onDirty:h,createContact:P})}},ie=()=>c?e.jsx(X,{color:"white",className:"h-8 w-8"}):g(D?"profile.confirmChange":A?"profile.stayOnPage":r==="add"?"profile.add":"profile.update"),de=()=>(A?N():q(),Promise.resolve());return e.jsxs(ae,{title:g(r==="add"?"profile.newContact":"profile.editContact"),open:l,onClose:()=>{R(!1),V()},"data-qa":"create-contact-modal",actions:[{text:ie(),onClick:de,variant:"primary",disabled:!A&&(c||!j),"data-qa":A?"create-contact-stay-button":"create-contact-submit-button"},{text:g(A?"profile.leaveAndDiscard":"profile.cancel"),onClick:()=>(R(!1),V(),Promise.resolve()),variant:"primaryOutline","data-qa":A?"create-contact-discard-button":"create-contact-cancel-button"}],children:[A&&e.jsx(oe,{}),D&&u&&e.jsx(Ae,{address:u}),e.jsxs("div",{className:ge(A||D?"hidden":""),children:[e.jsx(te,{qaListAttribute:"create-contact-type-selector",options:fe,label:g("profile.contactType"),deriveKey:$=>$.value??"",displaySelected:()=>{var $;return(($=fe.find(U=>U.value===s))==null?void 0:$.display)??""},displayOption:$=>$.display,value:fe.find($=>$.value===s),onChange:$=>p($.value),className:"w-full mb-7",buttonClassName:"bg-base-fill h-10 "}),F()]})]})}function be({contact:r,address:l,isOpen:t,closeModal:d,refetch:o}){const{t:s}=O(),p=_(m=>{var v;return(v=m.user)==null?void 0:v.relId}),{mutate:b,isPending:c}=Z({mutationFn:()=>p?l?K.deleteAddress(p,l.id):r?K.deleteContact(p,r.id):Promise.reject(new Error("Error deleting contact")):Promise.reject(new Error("Homeowner not found")),onSuccess:()=>{Y({type:"success",message:s("profile.deleteSuccess",{type:a()})}),d(),o()}}),a=()=>r!=null&&r.email?"Email":r!=null&&r.phone?"Phone":l!=null&&l.address1?"Address":"",j=()=>
1{if(r!=null&&r.email)return r.email;if(r!=null&&r.phone)return r.phone;if(l&&(l!=null&&l.address1))return se({address1:l.address1??"",address2:l.address2??"",city:l.city??"",stateProvince:l.state??l.province??"",postalCode:l.postalCode??l.country??""},"full")};return e.jsx(ae,{open:t,onClose:d,title:s("profile.deleteContact"),actions:[{text:c?e.jsx(X,{color:"white",className:"h-8 w-8"}):s("profile.delete"),onClick:()=>(b(),Promise.resolve()),variant:"danger",disabled:c},{text:s("profile.cancel"),onClick:()=>(d(),Promise.resolve()),variant:"primaryOutline"}],children:e.jsxs("div",{children:[e.jsx("p",{children:s("profile.areYouSure")}),e.jsxs("dl",{className:"flex flex-col gap-2 pt-2 w-full",children:[e.jsxs("div",{className:"flex w-full",children:[e.jsx("dt",{className:"font-semibold w-16",children:s("profile.type")}),e.jsx("dd",{className:"w-full","data-qa":"delete-contact-modal-type",children:a()})]}),e.jsxs("div",{className:"flex w-full",children:[e.jsx("dt",{className:"font-semibold w-16",children:s("profile.label")}),e.jsx("dd",{className:"w-full","data-qa":"delete-contact-modal-label",children:(r==null?void 0:r.label)??(l==null?void 0:l.label)??""})]}),e.jsxs("div",{className:"flex w-full",children:[e.jsx("dt",{className:"font-semibold w-16",children:s("profile.details")}),e.jsx("dd",{className:"w-full text-nowrap","data-qa":"delete-contact-modal-details",children:j()})]})]})]})})}function da({address:r,mailingAddress:l,refetch:t}){const{closeModal:d,isModalOpen:o,openModal:s}=ee(),{isModalOpen:p,openModal:b,closeModal:c}=ee(),a=r.type==="property",{isMailingAddressChanging:j,setIsMailingAddressChanging:m,checkIfMailingAddressChanges:v}=Ie({mailingAddress:l}),{t:h}=O(),u=_(x=>{var q;return(q=x.user)==null?void 0:q.relId}),{handleSubmit:f,control:g,reset:A,getValues:V,formState:{errors:N,isValid:D,isDirty:R}}=J({mode:"onChange",defaultValues:{address1:r.address1??"",address2:r.address2??"",city:r.city??"",state:r.state??"",postalCode:r.postalCode??"",label:r.label??"",isInternational:r.isInternational??!1,isMailing:r.isMailing??!1,type:r.type??"homeownerAddress",province:r.province??"",country:r.country??""}}),{mutate:w,isPending:S}=Z({mutationFn:({data:x})=>{if(!u)throw new Error("homeownerId is required but is missing");return K.updateAddress(u,r.id,{address1:x.address1??r.address1,address2:x.address2??r.address2,city:x.city??r.city,state:x.state??r.state,postalCode:x.postalCode??r.postalCode,label:x.label??r.label,isInternational:x.isInternational??r.isInternational,isMailing:x.isMailing??r.isMailing,province:x.province??r.province,country:x.country??r.country,type:r.type??x.type})},onSuccess:(x,{data:q})=>{Y({message:h("profile.updateSuccess",{type:"Address"}),title:"Success",type:"success"}),m(!1),d(),A({...q,label:q.label??void 0,state:q.state??void 0,address2:q.address2??void 0}),t()}}),M=f(x=>{if(!u)throw new Error("Homeowner ID not found");if(r.isMailing&&!j||v(x)&&x.isMailing&&!j){m(!0);return}w({data:x})}),{showUnsavedChanges:H,handleClose:z,handleContinueEditing:I}=le({isDirty:R,onClose:d,reset:A}),P=ea({control:g,name:"isInternational"}),T=()=>S?e.jsx(X,{color:"white",className:"h-8 w-8"}):h(H?"profile.stayOnPage":j?"profile.confirmChange":"profile.saveContactInfo");return e.jsxs(e.Fragment,{children:[e.jsx("button",{"data-qa":"edit-address-trigger",onClick:s,"aria-label":h("profile.editAddressAriaLabel"),children:e.jsx(Q,{icon:he})}),e.jsxs(ae,{title:h("profile.editContact"),open:o,onClose:z,dataQa:"edit-address-modal",actions:[{text:T(),onClick:()=>(H?I():M(),Promise.resolve()),variant:"primary",disabled:!D||!R||S,"data-qa":H?"edit-address-stay-button":"edit-address-submit-button"},{text:h(H?"profile.leaveAndDiscard":"profile.cancel"),onClick:()=>(m(!1),z(),Promise.resolve()),variant:"primaryOutline","data-qa":H?"edit-address-discard-button":"edit-address-cancel-button"}],children:[a&&e.jsx("p",{className:"font-semibold text-base-header bg-primary-bg/10 p-2 rounded-md border border-primary-border mb-4",children:h("profile.propertyAddressDisclaimer")}),H?e.jsx(oe,{}):j?e.jsx(Ae,{address:V()}):e.jsxs(e.Fragment,{children:[e.jsxs("form",{"data-qa":"edit-address-form",onSubmit:M,className:"flex flex-col gap-7",children:[e.jsx(y,{name:"isMailing",control:g,defaultValue:!1,disabled:r.isMailing,render:({field:x})=>e.jsx(B,{...x,id:"mailing-address","data-qa":"edit-address-mailing-toggle",className:"flex-row-reverse justify-between",value:x.value,onChange:()=>x.onChange(!x.value),label:h("profile.mailingAddress").toString()})}),e.jsx(y,{name:"isInternational",control:g,defaultValue:!1,disabled:a,render:({field:x})=>e.jsx(B,{...x,id:"international-address","data-qa":"edit-address-international-toggle",className:"flex-row-reverse justify-between",value:x.value,onChange:()=>x.onChange(!x.value),label:h("profile.internationalAddress").toString()})}),e.jsx(y,{name:"label",control:g,defaultValue:"",disabled:a,render:({field:x})=>{var q,F;return e.jsx(E,{...x,errorSpacing:!1,type:"text",label:h("profile.label").toString(),error:(F=(q=N.label)==null?void 0:q.message)==null?void 0:F.toString(),qaAttribute:"new-contact-label",maxLength:L.label})},rules:{required:h("profile.labelRequired").toString()}}),e.jsx(y,{name:"address1",control:g,defaultValue:"",disabled:a,render:({field:x})=>{var q,F;return e.jsx(E,{...x,errorSpacing:!1,type:"text",label:h("profile.streetAddress").toString(),error:(F=(q=N.streetAddress)==null?void 0:q.message)==null?void 0:F.toString(),qaAttribute:"new-street-address",maxLength:L.address1})},rules:{required:h("profile.streetAddress").toString()}}),e.jsx(y,{name:"address2",control:g,defaultValue:"",disabled:a,render:({field:x})=>e.jsx(E,{...x,errorSpacing:!1,type:"text",label:h("profile.secondaryAddress").toString(),qaAttribute:"new-secondary-address",maxLength:L.address2})}),e.jsx(y,{name:"city",control:g,defaultValue:"",disabled:a,render:({field:x})=>{var q,F;return e.jsx(E,{...x,errorSpacing:!1,type:"text",label:h("profile.city").toString(),error:(F=(q=N.city)==null?void 0:q.message)==null?void 0:F.toString(),qaAttribute:"new-city",maxLength:L.city})},rules:{required:h("profile.cityRequired").toString()}}),!P&&e.jsxs("div",{className:"flex w-full gap-6",children:[e.jsx(y,{name:"state",control:g,defaultValue:"",disabled:a,render:({field:x})=>
1e.jsx(qe,{...x,id:"new-state",onChange:q=>x.onChange(q),value:x.value??"",disabled:a}),rules:{required:h("profile.stateRequired").toString()}}),e.jsx(y,{name:"postalCode",control:g,defaultValue:"",disabled:a,render:({field:x})=>{var q,F;return e.jsx(E,{...x,errorSpacing:!1,type:"text",label:h("profile.zipcode").toString(),error:(F=(q=N.zipcode)==null?void 0:q.message)==null?void 0:F.toString(),className:"grow",qaAttribute:"new-zip-code",maxLength:L.postalCode})},rules:{required:h("profile.zipcodeRequired").toString()}})]}),P&&e.jsxs(e.Fragment,{children:[e.jsx(y,{name:"province",control:g,defaultValue:"",disabled:a,render:({field:x})=>{var q,F;return e.jsx(E,{...x,errorSpacing:!1,type:"text",label:h("profile.provinceAndPostalCode").toString(),error:(F=(q=N.provinceAndPostalCode)==null?void 0:q.message)==null?void 0:F.toString(),className:"grow",qaAttribute:"new-province-and-postal-code",maxLength:L.province})},rules:{required:h("profile.provinceAndPostalCodeRequired").toString()}}),e.jsx(y,{name:"country",control:g,defaultValue:"",disabled:a,render:({field:x})=>{var q,F;return e.jsx(E,{...x,errorSpacing:!1,type:"text",label:h("profile.country").toString(),error:(F=(q=N.country)==null?void 0:q.message)==null?void 0:F.toString(),className:"grow",qaAttribute:"new-country",maxLength:L.country})}})]})]}),!a&&!r.isMailing&&e.jsx(re,{variant:"dangerOutline",className:"w-full mt-4","data-qa":"edit-address-delete-button",onClick:()=>{m(!1),d(),b(),A()},children:h("profile.delete")})]})]}),!a&&!r.isMailing&&e.jsx(be,{address:r,isOpen:p,closeModal:c,refetch:t})]})}function ca({contact:r,refetch:l}){const{closeModal:t,isModalOpen:d,openModal:o}=ee(),{isModalOpen:s,openModal:p,closeModal:b}=ee(),{t:c}=O(),a=_(w=>{var S;return(S=w.user)==null?void 0:S.relId}),{handleSubmit:j,control:m,reset:v,formState:{errors:h,isValid:u,isDirty:f}}=J({mode:"onChange",defaultValues:{email:r.email??"",label:r.label??"",isPrimary:r.isPrimary??!1}}),{mutate:g,isPending:A}=Z({mutationFn:({data:w})=>{if(!a)throw new Error("homeownerId is required but is missing");return K.updateContact(a,r.id,w)},onSuccess:(w,{data:S}
1)=>{Y({message:c("profile.updateSuccess",{type:"Email"}),title:"Success",type:"success"}),t(),v(S),l()},onError:()=>console.log("error")}),V=j(w=>{if(!a)throw new Error("Homeowner ID not found");g({data:w})}),{showUnsavedChanges:N,handleClose:D,handleContinueEditing:R}=le({isDirty:f,onClose:t,reset:v});return e.jsxs(e.Fragment,{children:[e.jsx("button",{"data-qa":"edit-email-trigger",onClick:o,"aria-label":c("profile.editEmailAriaLabel"),children:e.jsx(Q,{icon:he})}),e.jsx(ae,{title:c("profile.editContact"),open:d,onClose:D,dataQa:"edit-email-modal",actions:[{text:A?e.jsx(X,{color:"white",className:"h-8 w-8"}):c(N?"profile.stayOnPage":"profile.saveContactInfo"),onClick:()=>(N?R():V(),Promise.resolve()),variant:"primary",disabled:!u||!f||A,"data-qa":N?"edit-email-stay-button":"edit-email-submit-button"},{text:c(N?"profile.leaveAndDiscard":"profile.cancel"),onClick:()=>(D(),Promise.resolve()),variant:"primaryOutline","data-qa":N?"edit-email-discard-button":"edit-email-cancel-button"}],children:N?e.jsx(oe,{}):e.jsxs(e.Fragment,{children:[e.jsxs("form",{"data-qa":"edit-email-form",onSubmit:V,className:"flex flex-col gap-7",children:[e.jsx(y,{name:"email",control:m,render:({field:w})=>{var S,M;return e.jsx(E,{...w,errorSpacing:!1,type:"text",label:c("auth.login.email").toString(),error:(M=(S=h.email)==null?void 0:S.message)==null?void 0:M.toString(),qaAttribute:"new-contact-email",maxLength:L.email})},rules:{required:c("auth.login.emailRequired").toString(),pattern:{value:/^([\w.!#$%&'*+\-/=?^`{|}~]+@([\w\-.]+\.)+[\w-]{2,15}([,;]\s{0,}){0,1})+$/,message:c("auth.login.invalidEmail").toString()}}}),e.jsx(y,{name:"label",control:m,render:({field:w})=>{var S,M;return e.jsx(E,{...w,errorSpacing:!1,type:"text",label:c("profile.label").toString(),error:(M=(S=h.label)==null?void 0:S.message)==null?void 0:M.toString(),qaAttribute:"new-email-label",maxLength:L.label})},rules:{required:c("profile.labelRequired").toString()}}),e.jsx(y,{name:"isPrimary",control:m,render:({field:w})=>e.jsx(B,{...w,id:"make-primary-email","data-qa":"edit-email-primary-toggle",className:"flex-row-reverse justify-between",value:w.value,onChange:()=>w.onChange(!w.value),label:c("profile.makePrimary").toString()})})]}),e.jsx(re,{variant:"dangerOutline",className:"w-full mt-4","data-qa":"edit-email-delete-button",onClick:()=>{t(),p(),v()},children:c("profile.delete")})]})}),e.jsx(be,{contact:r,isOpen:s,closeModal:b,refetch:l})]})}function ma({contact:r,refetch:l}){const{closeModal:t,isModalOpen:d,openModal:o}=ee(),{isModalOpen:s,openModal:p,closeModal:b}=ee(),{t:c}=O(),a=_(w=>{var S;return(S=w.user)==null?void 0:S.relId}),{handleSubmit:j,control:m,reset:v,formState:{errors:h,isValid:u,isDirty:f}}=J({mode:"onChange",defaultValues:{phone:r.phone??"",label:r.label??"",isPrimary:r.isPrimary??!1}}),{mutate:g,isPending:A}=Z({mutationFn:({data:w})=>{if(!a)throw new Error("homeownerId is required but is missing");return K.updateContact(a,r.id,w)},onSuccess:(w,{data:S}
1)=>{Y({message:c("profile.updateSuccess",{type:"Phone"}),title:"Success",type:"success"}),t(),v(S),l()},onError:()=>console.log("error")}),V=j(w=>{if(!a)throw new Error("Homeowner ID not found");g({data:w})}),{showUnsavedChanges:N,handleClose:D,handleContinueEditing:R}=le({isDirty:f,onClose:t,reset:v});return e.jsxs(e.Fragment,{children:[e.jsx("button",{"data-qa":"edit-phone-trigger",onClick:o,"aria-label":c("profile.editPhoneAriaLabel"),children:e.jsx(Q,{icon:he})}),e.jsx(ae,{title:c("profile.editContact"),open:d,onClose:D,dataQa:"edit-phone-modal",actions:[{text:A?e.jsx(X,{color:"white",className:"h-8 w-8"}):c(N?"profile.stayOnPage":"profile.saveContactInfo"),onClick:()=>(N?R():V(),Promise.resolve()),variant:"primary",disabled:!u||!f||A,"data-qa":N?"edit-phone-stay-button":"edit-phone-submit-button"},{text:c(N?"profile.leaveAndDiscard":"profile.cancel"),onClick:()=>(D(),Promise.resolve()),variant:"primaryOutline","data-qa":N?"edit-phone-discard-button":"edit-phone-cancel-button"}],children:N?e.jsx(oe,{}):e.jsxs(e.Fragment,{children:[e.jsxs("form",{"data-qa":"edit-phone-form",onSubmit:V,className:"flex flex-col gap-7",children:[e.jsx(y,{name:"phone",control:m,rules:{required:c("profile.phoneRequired").toString(),pattern:{value:/^\(\d{3}\) \d{3}-\d{4}$/,message:c("profile.invalidPhone").toString()}},render:({field:w})=>{var H,z;const S=I=>{const P=I.replace(/\D/g,"");return P.length<=3?P:P.length<=6?`(${P.slice(0,3)}) ${P.slice(3)}`:`(${P.slice(0,3)}) ${P.slice(3,6)}-${P.slice(6,10)}`},M=I=>{const P=S(I.target.value);w.onChange(P)};return e.jsx(E,{...w,onChange:M,value:w.value,errorSpacing:!1,type:"tel",label:c("profile.phoneNumber").toString(),error:(z=(H=h.phone)==null?void 0:H.message)==null?void 0:z.toString(),qaAttribute:"new-phone-label",maxLength:14})}}),e.jsx(y,{name:"label",control:m,render:({field:w})=>{var S,M;return e.jsx(E,{...w,errorSpacing:!1,type:"text",label:c("profile.label").toString(),error:(M=(S=h.label)==null?void 0:S.message)==null?void 0:M.toString(),qaAttribute:"new-phone-label",maxLength:L.label})},rules:{required:c("profile.labelRequired").toString()}}),e.jsx(y,{name:"isPrimary",control:m,render:({field:w})=>e.jsx(B,{...w,id:"make-primary-phone","data-qa":"edit-phone-primary-toggle",className:"flex-row-reverse justify-between",value:w.value,onChange:()=>w.onChange(!w.value),label:c("profile.makePrimary").toString()})})]}),e.jsx(re,{variant:"dangerOutline",className:"w-full mt-4","data-qa":"edit-phone-delete-button",onClick:()=>{t(),p(),v()},children:c("profile.delete")})]})}),e.jsx(be,{contact:r,isOpen:s,closeModal:b,refetch:l})]})}function Ee({contacts:r,refetch:l,isLoading:t}){const{t:d}=O();return t?e.jsx("div",{className:"flex justify-center items-center h-full",children:e.jsx(X,{})}):e.jsxs(xe,{controller:"Homeowner_v2",action:"ContactInfo",children:[e.jsx(ua,{refetch:l,contacts:r}),r&&(r.addresses.length||r.contacts.length)>0?e.jsx(pa,{contacts:r,refetch:l}):e.jsx("div",{children:d("profile.noContactsFound")})]})}const ua=({refetch:r,contacts:l})=>{const{t}=O(),{closeModal:d,isModalOpen:o,openModal:s}=ee(),p=_(c=>c.user),b=(p==null?void 0:p.userName)??(p==null?void 0:p.email);return e.jsxs("div",{className:"mt-8 flex mobile:flex-row flex-col gap-4 justify-between mobile:items-center",children:[e.jsxs("div",{className:"flex gap-4 items-center",children:[e.jsx("div",{className:"rounded-full bg-base-fg/75 w-10 h-10 flex justify-center items-center",children:e.jsx(Q,{icon:Ue,className:"text-white text-2xl"})}),e.jsx("h1",{"data-qa":"profile-name",className:"text-lg font-semibold",children:b})]}),e.jsx(re,{onClick:s,"data-qa":"add-contact-button",children:t("profile.addContactInfo")}),e.jsx(ia,{view:"add",isModalOpen:o,closeModal:d,refetch:r,mailingAddress:l.addresses.filter(c=>c.isMailing)})]})},pa=({contacts:r,refetch:l})=>{const{t}=O(),{primaryEmailContacts:d,primaryPhoneContacts:o,secondaryEmailContacts:s,secondaryPhoneContacts:p}=C.useMemo(()=>({primaryEmailContacts:r.contacts.filter(({isPrimary:a,email:j})=>a&&j),primaryPhoneContacts:r.contacts.filter(({isPrimary:a,phone:j})=>a&&j),secondaryEmailContacts:r.contacts.filter(({isPrimary:a,email:j})=>!a&&j),secondaryPhoneContacts:r.contacts.filter(({isPrimary:a,phone:j})=>!a&&j)}),[r]),{mailingAddresses:b,propertyAddresses:c}=C.useMemo(()=>{let a=!0;const j=[],m=[];for(const v of r.addresses)v.isMailing&&a?(j.push(v),a=!1):m.push(v);return{mailingAddresses:j,propertyAddresses:m}},[r.addresses]);return e.jsxs("div",{className:"flex flex-col gap-4 mt-8",children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.primaryContactInfo")}),e.jsxs("div",{className:"w-full flex flex-nowrap tablet:flex-row items-center tablet:items-start gap-12 flex-col justify-between rounded-md border-2 border-base-border p-4",children:[e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.mailingAddress")}),e.jsx("div",{className:"flex flex-col gap-4","data-qa":"primary-address-container",children:b.length>0?b.map(a=>e.jsx(Ne,{contact:a,refetch:l,mailingAddresses:b},a.id)):e.jsx("p",{children:t("profile.noPrimaryAddresses")})})]}),e.jsx("div",{className:"flex flex-col gap-4 w-full",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.phone")}),o.length>0?o.map(a=>e.jsx(ne,{contact:a,refetch:l},a.id)):e.jsx("p",{"data-qa":"primary-phone-contacts-empty",children:t("profile.noPrimaryPhoneContacts")}
1)]})}),e.jsx("div",{className:"flex flex-col gap-4 w-full",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.email")}),d.length>0?d.map(a=>e.jsx(ne,{contact:a,refetch:l},a.id)):e.jsx("p",{children:t("profile.noPrimaryEmailContacts")})]})})]})]}),e.jsxs("div",{className:"mt-6 border-t-2 border-base-border pt-6 flex flex-col gap-4",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.otherContactInfo")}),e.jsxs("div",{className:"w-full flex flex-nowrap tablet:flex-row items-center tablet:items-start gap-12 flex-col justify-between rounded-md border-2 border-base-border p-4",children:[e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.address")}),c.length>0?c.map(a=>e.jsx(Ne,{contact:a,refetch:l,mailingAddresses:b},a.id)):e.jsx("p",{"data-qa":"secondary-addresses-empty",children:t("profile.noSecondaryAddresses")})]}),e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.phone")}),p.length>0?p.map(a=>e.jsx(ne,{contact:a,refetch:l},a.id)):e.jsx("p",{"data-qa":"secondary-phone-contacts-empty",children:t("profile.noSecondaryPhoneContacts")})]}),e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsx("h1",{className:"text-lg font-semibold",children:t("profile.email")}),s.length>0?s.map(a=>e.jsx(ne,{contact:a,refetch:l},a.id)):e.jsx("p",{"data-qa":"secondary-email-contacts-empty",children:t("profile.noSecondaryEmailContacts")})]})]})]})]})},ne=({contact:r,refetch:l})=>{const{t}=O(),{id:d,email:o,label:s,phone:p}=r;return e.jsxs("div",{className:"w-full max-w-80 flex justify-between","data-qa":`${o?"email":"phone"}-card-${d}`,children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold w-60 text-wrap break-words","data-qa":`${o?"email":"phone"}-label-${d}`,children:s||t(o?"profile.email":"profile.phone")}),e.jsx("p",{className:"w-60 break-words","data-qa":`${o?"email":"phone"}-value-${d}`,children:o??p})]}),o?e.jsx(ca,{contact:r,refetch:l}):e.jsx(ma,{contact:r,refetch:l})]},d)},Ne=({contact:r,refetch:l,mailingAddresses:t})=>{const{t:d}=O(),{id:o,type:s,label:p,mailingNameOverride:b,address1:c,address2:a,city:j,state:m,province:v,postalCode:h,country:u}=r;return e.jsxs("div",{className:"w-full max-w-80 flex justify-between","data-qa":`address-card-${o}`,children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold w-60 break-words","data-qa":`address-label-${o}`,children:s==="property"?d("profile.propertyAddress",{label:p??""}):p??""}),e.jsx("p",{className:"w-52 text-wrap break-words","data-qa":`mailing-name-override-value-${o}`,children:b}),e.jsx("p",{className:"w-52 text-wrap break-words","data-qa":`address-value-${o}`,children:se({address1:c??"",address2:a??"",city:j??"",stateProvince:m??v??"",postalCode:h??u??""},"full")})]}),e.jsx(da,{address:r,mailingAddress:t,refetch:l})]},o)};function De({contacts:r,refreshContacts:l}){var we,ye,ve;const{t}=O(),d=_(n=>n.user),[o,s]=C.useState(!1),[p,b]=C.useState(null),c=ra("ContactInfo","Homeowner_v2","electronicDisclosure"),a=_(n=>n.preferences),j=_(n=>n.setPreferences),m=_(n=>n.configuration),v=m==null?void 0:m.casb392Enabled,h=_(n=>n.setPendo),u=d!=null&&d.firstName&&(d!=null&&d.lastName)?`${d.firstName} ${d.lastName}`:d==null?void 0:d.login,f=_(n=>{var i;return(i=n.user)==null?void 0:i.relId}),g=(we=r.contacts.slice().reverse().find(n=>n.label==="cell"))==null?void 0:we.phone,A=C.useMemo(()=>r.contacts.filter(n=>n.email).map(n=>({value:n.email||"",label:n.email||"",id:n.id})),[r.contacts]),V=C.useMemo(()=>r.addresses.map(n=>({value:n.id,label:`${n.type==="property"?"Property":"Homeowner"}: ${se({address1:n.address1??"",address2:n.address2??"",city:n.city??"",stateProvince:n.state??n.province??"",postalCode:n.postalCode??""},"full")}`,id:n.id,type:n.type})),[r.addresses]),N=C.useMemo(()=>{if(a!=null&&a.email)return A.find(n=>n.value===a.email)},[a==null?void 0:a.email,A]),D=C.useMemo(()=>{if(!(!(a!=null&&a.mailingAddressId)||!(a!=null&&a.mailRelTypeId)))return V.find(n=>n.id===a.mailingAddressId&&n.type===a.mailRelTypeId)},[a==null?void 0:a.mailingAddressId,a==null?void 0:a.mailRelTypeId,V]),{handleSubmit:R,control:w,watch:S,formState:{errors:M,isValid:H,isDirty:z},reset:I}=J({defaultValues:{generalCommunicationPreference:(ye=m==null?void 0:m.availableGeneralCommunicationPreferences)!=null&&ye.find(n=>n===(a==null?void 0:a.generalCommunicationPreference))?{value:a==null?void 0:a.generalCommunicationPreference,display:t(`profile.communicationPreferencesOptions.${a==null?void 0:a.generalCommunicationPreference}`)}:void 0,billingCommunicationPreference:(ve=m==null?void 0:m.availableBilling
1CommunicationPreferences)!=null&&ve.find(n=>n===(a==null?void 0:a.billingCommunicationPreference))?{value:a==null?void 0:a.billingCommunicationPreference,display:t(`profile.communicationPreferencesOptions.${a==null?void 0:a.billingCommunicationPreference}`)}:void 0,receivePayBillingText:(a==null?void 0:a.receivePayBillingText)??void 0,billingTextPhone:g??void 0,homeownerShowName:!(a!=null&&a.hideNameInDirectory),homeownerShowPhone:!(a!=null&&a.hidePhoneInDirectory),homeownerShowEmail:!(a!=null&&a.hideEmailInDirectory),homeownerShowPropertyAddress:!(a!=null&&a.hidePropertyInDirectory),sendPayConfirmationEmail:(a==null?void 0:a.sendPayConfirmationEmail)??void 0,casbEmailPreference:N==null?void 0:N.value,casbAddressPreference:D==null?void 0:D.value,electronicSignature:""},mode:"onChange"}),P=C.useCallback(()=>{var k,W;const n=(k=S("generalCommunicationPreference"))==null?void 0:k.value,i=(W=S("billingCommunicationPreference"))==null?void 0:W.value;return n==="email"||n==="paperAndEmail"||i==="email"||i==="paperAndEmail"},[S]),T=C.useCallback(()=>{var k,W;const n=(k=S("generalCommunicationPreference"))==null?void 0:k.value,i=(W=S("billingCommunicationPreference"))==null?void 0:W.value;return n==="paper"||n==="paperAndEmail"||i==="paper"||i==="paperAndEmail"},[S]),{mutate:x,isPending:q}=Z({mutationFn:n=>{var i;if(!f)throw new Error("No homeowner ID found");return K.updatePreferences(f,{generalCommunicationPreference:n.generalCommunicationPreference.value,billingCommunicationPreference:n.billingCommunicationPreference.value,receivePayBillingText:n.receivePayBillingText,hideNameInDirectory:!n.homeownerShowName,hideEmailInDirectory:!n.homeownerShowEmail,hidePhoneInDirectory:!n.homeownerShowPhone,hidePropertyInDirectory:!n.homeownerShowPropertyAddress,sendPayConfirmationEmail:n.sendPayConfirmationEmail,email:n.casbEmailPreference||null,homeownerAddressId:n.casbAddressPreference||null,mailRelTypeId:n.casbAddressPreference&&((i=V.find(k=>k.value===n.casbAddressPreference))==null?void 0:i.type)||"homeownerAddress",electronicSignature:n.electronicSignature})},onSuccess:async n=>{Y({message:t("profile.preferencesUpdated"),type:"success"}),j(n),h()}}),{mutate:F}=Z({mutationFn:({data:n,homeownerId:i})=>K.createContact(i,n),onSuccess:()=>{Y({message:t("profile.success",{type:"phone"}),type:"success"}),l()},onError:()=>{Y({message:t("profile.contactCreationFailed"),type:"error"})}});C.useEffect(()=>{var n,i;a&&I({generalCommunicationPreference:(n=m==null?void 0:m.availableGeneralCommunicationPreferences)!=null&&n.find(k=>k===a.generalCommunicationPreference)?{value:a.generalCommunicationPreference,display:t(`profile.communicationPreferencesOptions.${a.generalCommunicationPreference}`)}:void 0,billingCommunicationPreference:(i=m==null?void 0:m.availableBilling
1CommunicationPreferences)!=null&&i.find(k=>k===a.billingCommunicationPreference)?{value:a.billingCommunicationPreference,display:t(`profile.communicationPreferencesOptions.${a.billingCommunicationPreference}`)}:void 0,receivePayBillingText:a.receivePayBillingText??void 0,billingTextPhone:g??void 0,homeownerShowName:!a.hideNameInDirectory,homeownerShowPhone:!a.hidePhoneInDirectory,homeownerShowEmail:!a.hideEmailInDirectory,homeownerShowPropertyAddress:!a.hidePropertyInDirectory,sendPayConfirmationEmail:a.sendPayConfirmationEmail??void 0,casbEmailPreference:N==null?void 0:N.value,casbAddressPreference:D==null?void 0:D.value,electronicSignature:""})},[a,r,m,t,N,D,g,I]);const ie=n=>{if(n.generalCommunicationPreference.value==="email"||n.generalCommunicationPreference.value==="paperAndEmail"||n.billingCommunicationPreference.value==="email"||n.billingCommunicationPreference.value==="paperAndEmail")b(n),s(!0);else if(x(n),n.receivePayBillingText&&n.billingTextPhone&&n.billingTextPhone!==g){const k={phone:n.billingTextPhone??"",label:"cell",isPrimary:!1};F({data:k,homeownerId:f??0})}},de=async()=>{if(p){const n=S("electronicSignature"),i={...p,electronicSignature:n},k=[x(i)];if(p.receivePayBillingText&&p.billingTextPhone&&p.billingTextPhone!==g){const W={phone:p.billingTextPhone??"",label:"cell",isPrimary:!1};k.push(F({data:W,homeownerId:f??0}))}await Promise.all(k),s(!1),b(null)}},$=()=>{const n=S("electronicSignature");return n&&n.trim().length>0},U=()=>{s(!1),b(null)},Ve=R(ie),$e=n=>{Ve(n).catch(console.error)};return a?e.jsxs(e.Fragment,{children:[o&&e.jsxs(ae,{title:t("profile.electronicCommunication"),open:o,onClose:U,actions:[{text:t("profile.submit"),onClick:de,variant:"primary",disabled:!$(),"data-qa":"update-preferences-form-email-confirmation-submit-button"},{text:t("profile.cancel"),onClick:async()=>U(),variant:"primaryOutline","data-qa":"update-preferences-form-email-confirmation-cancel-button"}],children:[c?e.jsx(aa,{content:c}):e.jsx("p",{children:t("profile.emailPreferenceDisclaimer")}),e.jsx("div",{className:"mt-4",children:e.jsx(y,{name:"electronicSignature",control:w,"data-qa":"update-preferences-form-electronic-signature",rules:{required:t("profile.eSignatureRequired").toString()},render:({field:n})=>{var i,k;return e.jsx(E,{...n,type:"text",label:t("profile.eSignature"),placeholder:t("profile.eSignaturePlaceholder"),error:(k=(i=M.electronicSignature)==null?void 0:i.message)==null?void 0:k.toString(),qaAttribute:"electronic-signature-input","data-qa":"update-preferences-form-electronic-signature-input"})}})})]}),e.jsxs("form",{onSubmit:$e,className:"mt-8 flex flex-col gap-10","data-qa":"update-preferences-form",children:[e.jsx("p",{className:"text-base-header bg-primary-bg/10 p-2 rounded-md",children:u&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"font-semibold",children:[t("profile.viewingSettingsFor"),":"]})," ",e.jsx("span",{"data-qa":"update-preferences-form-name-value",children:u})]})}),e.jsx("div",{className:"flex justify-between items-center",children:e.jsx("p",{children:t("profile.communications")})}),e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex gap-3 items-center",children:[e.jsx("p",{className:"font-bold text-base-header",children:t("profile.communicationPreferences")}),e.jsx(Ce,{"data-qa":"update-preferences-form-tooltip",children:t("main.profile.communicationPreferences.selectPreferencesHeader.tooltip")})]}),e.jsxs("div",{className:"border-b-2 border-base-border py-5 flex lg:flex-row flex-col justify-between lg:items-center items-start",children:[e.jsx("p",{children:t("profile.generalCommunicationPreferences")}),e.jsx(y,{name:"generalCommunicationPreference",control:w,"data-qa":"update-preferences-form-general-communication-preference",rules:{validate:n=>!n||!n.value?"Please select a general communication preference":!0},render:({field:n})=>e.jsxs("div",{children:[e.jsx(Se,{...n,label:t("profile.generalCommunicationPreferences"),qaAttribute:"general-communications-preferences",direction:"horizontal",options:(m==null?void 0:m.availableGeneralCommunicationPreferences.map(i=>({display:t(`profile.communicationPreferencesOptions.${i}`),value:i})))??[],deriveId:i=>(i==null?void 0:i.value)??"",deriveLabel:i=>(i==null?void 0:i.display)??"",value:n.value,onChange:i=>n.onChange(i)}),M.generalCommunicationPreference&&e.jsx("p",{className:"text-base-error text-sm mt-1",children:M.generalCommunicationPreference.message})]})})]}),e.jsxs("div",{className:"border-b-2 border-base-border py-5 flex lg:flex-row flex-col justify-between lg:items-center items-start",children:[e.jsx("p",{children:t("profile.billingCommunicationPreferences")}),e.jsx(y,{name:"billingCommunicationPreference",control:w,"data-qa":"update-preferences-form-billing-communication-preference",render:({field:n})=>e.jsx(Se,{...n,label:t("profile.billingCommunicationPreferences"),qaAttribute:"billing-communications-preferences",direction:"horizontal",options:(m==null?void 0:m.availableBilling
1CommunicationPreferences.map(i=>({display:t(`profile.communicationPreferencesOptions.${i}`),value:i})))??[],deriveId:i=>(i==null?void 0:i.value)??"",deriveLabel:i=>(i==null?void 0:i.display)??"",value:n.value,onChange:i=>n.onChange(i)})})]}),v&&(P()||T())&&e.jsx("div",{className:"border-b-2 border-base-border py-5",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[P()&&e.jsx("div",{className:"flex-1",children:e.jsx(y,{name:"casbEmailPreference",control:w,"data-qa":"update-preferences-form-casb-email-preference",render:({field:n})=>e.jsx(te,{...n,label:t("profile.preferredEmail"),options:A,value:A.find(i=>i.value===n.value),onChange:i=>n.onChange(i.value),placeholder:t("profile.selectEmail"),deriveKey:i=>i.id.toString(),displayOption:i=>i.label,displaySelected:i=>i.label})})}),T()&&e.jsx("div",{className:"flex-1",children:e.jsx(y,{name:"casbAddressPreference",control:w,"data-qa":"update-preferences-form-casb-address-preference",render:({field:n})=>e.jsx(te,{...n,label:t("profile.preferredAddress"),options:V,value:V.find(i=>i.value===n.value),onChange:i=>n.onChange(i.value),placeholder:t("profile.selectAddress"),deriveKey:i=>i.id.toString(),displayOption:i=>i.label,displaySelected:i=>i.label})})})]})}),(m==null?void 0:m.emailReceiptAvailable)&&e.jsx("div",{className:"border-b-2 border-base-border py-5",children:e.jsx(y,{name:"sendPayConfirmationEmail",control:w,render:({field:n})=>e.jsx(B,{"data-qa":"update-preferences-form-send-pay-confirmation-email",...n,id:"save-payment-method",className:"flex-row-reverse justify-between",value:n.value,tooltip:t("main.profile.communicationPreferences.sendPaymentConfirmEmailLineItem.tooltip"),onChange:()=>n.onChange(!n.value),label:`${t("profile.sendPaymentEmail").toString()}`})})}),e.jsx("div",{className:"flex flex-col gap-5 py-5",children:(m==null?void 0:m.billingTextNotificationsAvailable)&&e.jsxs(e.Fragment,{children:[e.jsx(y,{name:"receivePayBillingText",control:w,render:({field:n})=>e.jsx(B,{"data-qa":"update-preferences-form-receive-pay-billing-text",...n,id:"payment-reminder-texts",className:"flex-row-reverse justify-between",value:n.value,onChange:()=>{n.onChange(!n.value)},label:`${t("profile.getPaymentTexts").toString()}`})}),S("receivePayBillingText")&&e.jsx(y,{"data-qa":"update-preferences-form-billing-text-phone-input",name:"billingTextPhone",control:w,rules:{required:t("profile.labelRequired").toString(),pattern:{value:/^\(\d{3}\) \d{3}-\d{4}$/,message:t("profile.invalidPhone").toString()}},render:({field:n})=>{var W,je;const i=ce=>{const G=ce.replace(/\D/g,"");return G.length<=3?G:G.length<=6?`(${G.slice(0,3)}) ${G.slice(3)}`:`(${G.slice(0,3)}) ${G.slice(3,6)}-${G.slice(6,10)}`},k=ce=>{const G=i(ce.target.value);n.onChange(G)};return e.jsx(E,{...n,onChange:k,value:n.value,errorSpacing:!1,type:"tel",label:t("profile.phoneNumber").toString(),error:(je=(W=M.billingTextPhone)==null?void 0:W.message)==null?void 0:je.toString(),qaAttribute:"new-phone-label",maxLength:14,"data-qa":"update-preferences-form-phone-input"})}}),e.jsx("p",{className:"lg:w-2/3 text-[12px]","data-qa":"update-preferences-form-text-disclaimer",children:t("profile.textDisclaimer")})]})})]}),e.jsx("div",{className:"lg:grid flex flex-col grid-cols-2 lg:gap-[10vw] gap-5 ",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex gap-3 items-center",children:[e.jsx("p",{className:"font-bold text-base-header",children:t("profile.homeownerPreferences")}),e.jsx(Ce,{"data-qa":"update-preferences-form-tooltip",children:t("main.profile.contactInformation.directoryPreferences.tooltip")})]}),e.jsxs("div",{children:[e.jsx(y,{name:"homeownerShowName",control:w,render:({field:n})=>e.jsx(B,{"data-qa":"update-preferences-form-homeowner-show-name",...n,id:"homeowner-show-name",className:"flex-row-reverse justify-between my-5",value:n.value,onChange:()=>n.onChange(!n.value),label:`${t("profile.showName").toString()}`})}),e.jsx(y,{name:"homeownerShowPhone",control:w,render:({field:n})=>e.jsx(B,{"data-qa":"update-preferences-form-homeowner-show-phone",...n,id:"homeowner-show-phone",className:"flex-row-reverse justify-between my-5",value:n.value,onChange:()=>n.onChange(!n.value),label:`${t("profile.showPhone").toString()}`})}),e.jsx(y,{name:"homeownerShowEmail",control:w,render:({field:n})=>e.jsx(B,{"data-qa":"update-preferences-form-homeowner-show-email",...n,id:"homeowner-show-email",className:"flex-row-reverse justify-between my-5",value:n.value,onChange:()=>n.onChange(!n.value),label:`${t("profile.showEmail").toString()}`})}),e.jsx(y,{name:"homeownerShowPropertyAddress",control:w,render:({field:n})=>e.jsx(B,{"data-qa":"update-preferences-form-homeowner-show-address",...n,id:"homeowner-show-address",className:"flex-row-reverse justify-between my-5",value:n.value,onChange:()=>n.onChange(!n.value),label:`${t("profile.showProperty").toString()}`})})]})]})}),e.jsx(re,{type:"submit",className:"mb-5 self-start","data-qa":"update-preferences-form-submit-button",disabled:!z||q||!H,children:q?e.jsx(X,{color:"white",className:"h-8 w-8"}):t("profile.update")})]})]}):e.jsx("div",{className:"flex justify-center items-center h-full",children:e.jsx(X,{})})}function Me(){const{t:r}=O(),l=_(I=>I.user),[t,d]=C.useState(!1),[o,s]=C.useState(!1),[p,b]=C.useState(!1),[c,a]=C.useState(null),j=()=>{d(!t)},m=()=>{s(!o)},v=()=>{b(!p)},{handleSubmit:h,control:u,formState:{errors:f,isValid:g},reset:A,watch:V}=J(),N=V("newPassword"),D=V("confirmPassword"),{mutate:R,isPending:w}=Z({mutationFn:I=>K.updateLogin(I,{suppressToast:!0}),onSuccess:()=>{a(null),Y({message:"Login updated successfully",type:"success"}),A()},onError:I=>{var T;a(null);const P=(T=I.response)==null?void 0:T.data;a((P==null?void 0:P.detail)||(P==null?void 0:P.message)||"Failed to update login")}}),S=I=>{a(null),R(I)},M=()=>{a(null)},H=h(S),z=I=>{H(I).catch(console.error)};return e.jsxs("form",{onSubmit:z,className:"mt-8","data-qa":"update-login-form",children:[c&&e.jsxs("div",{className:"mb-6 p-4 bg-error/10 rounded-lg flex items-center gap-3 max-w-[500px]",children:[e.jsx(Q,{icon:ze,className:"text-error text-lg flex-shrink-0"}),e.jsx("span",{className:"text-error text-sm font-medium","data-qa":"update-login-form__error-message",children:c})]}),e.jsx(y,{name:"emailAddress",control:u,defaultValue:(l==null?void 0:l.login)??"",render:({field:I})=>{var P,T;return e.jsx(E,{...I,errorSpacing:!1,type:"text",label:r("auth.login.loginEmail").toString(),className:"lg:mb-[2vw] mb-7 lg:w-1/2",error:(T=(P=f.email)==null?void 0:P.message)==null?void 0:T.toString(),qaAttribute:"email",disabled:!0,"data-qa":"update-login-form-email-input"})},rules:{required:`${r("auth.login.emailRequired")}`,pattern:{value:/^[^@ ]+@[^@ ]+\.[^@ .]{2,}$/,message:`${r("auth.login.invalidEmail")}`}}}),e.jsx(y,{name:"currentPassword",control:u,defaultValue:"",render:({field:I})=>{var P,T;return e.jsx(E,{...I,errorSpacing:!1,type:t?"text":"password",label:r("auth.login.currentPassword").toString(),className:"lg:mb-[2vw] mb-7 lg:w-1/2",error:(T=(P=f.currentPassword)==null?void 0:P.message)==null?void 0:T.toString(),qaAttribute:"password","data-qa":"update-login-form-current-password-input",onChange:x=>{I.onChange(x),M()},endIcon:e.jsx(Q,{icon:t?me:ue,className:"text-base-header opacity-70",onClick:j})})},rules:{required:`${r("auth.login.passRequired")}`}}),e.jsx(y,{name:"newPassword",control:u,defaultValue:"",render:({field:I})=>{var P,T;return e.jsx(E,{...I,errorSpacing:!1,type:o?"text":"password",label:r("auth.login.newPassword").toString(),className:"lg:mb-[2vw] mb-7 lg:w-1/2",error:(T=(P=f.newPassword)==null?void 0:P.message)==null?void 0:T.toString(),qaAttribute:"password","data-qa":"update-login-form-new-password-input",onChange:x=>{I.onChange(x),M()},endIcon:e.jsx(Q,{icon:o?me:ue,className:"text-base-header opacity-70",onClick:m})})},rules:{required:`${r("auth.login.inputRequired")}`}}),e.jsx(y,{name:"confirmPassword",control:u,defaultValue:"",render:({field:I})=>{var P,T;return e.jsx(E,{...I,errorSpacing:!1,type:p?"text":"password",label:r("auth.login.confirmNewPassword").toString(),className:"lg:mb-[2vw] mb-7 lg:w-1/2",error:(T=(P=f.confirmNewPassword)==null?void 0:P.message)==null?void 0:T.toString(),qaAttribute:"password","data-qa":"update-login-form-confirm-password-input",onChange:x=>{I.onChange(x),M()},endIcon:e.jsx(Q,{icon:p?me:ue,className:"text-base-header opacity-70",onClick:v})})},rules:{required:`${r("auth.login.inputRequired")}`}}),e.jsx(re,{type:"submit",className:"mb-5 self-start","data-qa":"update-login-form-submit-button",disabled:!g||w||N!==D,children:w?e.jsx(X,{color:"white",className:"h-8 w-8"}):r("profile.saveChanges")}
1)]})}const Fa={title:"Profile Settings",showPropertySelector:!0,customContentId:["ContactInfo","Homeowner_v2"],showAi:!0};function Ta(){return ta()?e.jsx(Xe,{to:"/dashboard",replace:!0}):Ze?e.jsx(ga,{}):e.jsx(fa,{})}function fa(){return e.jsx(xe,{controller:"Homeowner_v2",action:"ContactInfo",children:e.jsx(Ye,{controller:"Homeowner_v2",action:"ContactInfo"})})}function ga(){const r=na(),l=_(p=>{var b;return(b=p.user)==null?void 0:b.relId}),{data:t,isLoading:d,refetch:o}=Je({queryKey:["contacts",l],queryFn:()=>{if(l)return K.getContacts(l)},enabled:!!l}),s=()=>t?r?e.jsx(ha,{contacts:t,refetch:o,isContactsLoading:d}):e.jsx(xa,{contacts:t,refetch:o,isContactsLoading:d}):null;return e.jsx(xe,{controller:"Homeowner_v2",action:"ContactInfo",children:e.jsx("div",{className:"px-horizontal-layout-sm h-full py-8 bg-base-fill rounded-xl tablet:px-horizontal-layout","data-qa":"profile-settings-container",children:s()})})}const ha=({contacts:r,refetch:l,isContactsLoading:t})=>{const{t:d}=O(),[o,s]=C.useState("contactInfo"),p=[{label:d("profile.contactInfo"),value:"contactInfo"},{label:d("profile.loginInfo"),value:"loginInfo"},{label:d("profile.preferences"),value:"preferences"}];return e.jsxs("div",{className:"flex flex-col",children:[e.jsx(te,{label:"",options:p,onChange:b=>s(b.value),deriveKey:b=>b.value,displayOption:b=>b.label,displaySelected:()=>{var b;return((b=p.find(c=>c.value===o))==null?void 0:b.label)??""},value:p.find(b=>b.value===o),"data-qa":"mobile-tab-selector"}),o==="contactInfo"&&e.jsx(Ee,{contacts:r,refetch:l,isLoading:t}),o==="loginInfo"&&e.jsx(Me,{}),o==="preferences"&&e.jsx(De,{contacts:r,refreshContacts:l})]})},xa=({contacts:r,refetch:l,isContactsLoading:t})=>{const{t:d}=O();return e.jsx("div",{className:"flex flex-col gap-4",children:e.jsxs(Ke,{children:[e.jsxs(We,{className:"flex w-full flex-row","data-qa":"profile-tabs",children:[["contactInfo","loginInfo","preferences"].map(o=>e.jsx(Ge,{as:"button","data-qa":`tab-${o}`,className:({selected:s})=>ge("py-2 px-4 self-stretch text-left font-bold leading-5 text-input-fg underline-offset-4","focus:outline-none","border-b-2 hover:border-base-link",s&&"border-base-link text-base-link"),children:d(`profile.${o}`)},`panel-${o}`)),e.jsx("div",{"aria-hidden":"true",className:"flex-1 border-b-2"})]}),e.jsxs(Qe,{children:[e.jsx(pe,{tabIndex:-1,"data-qa":"contact-info-tab",children:e.jsx(Ee,{contacts:r,refetch:l,isLoading:t})}),e.jsx(pe,{tabIndex:-1,"data-qa":"login-info-tab",children:e.jsx(Me,{})}),e.jsx(pe,{tabIndex:-1,"data-qa":"preferences-tab",children:e.jsx(De,{contacts:r,refreshContacts:l})})]})]})})};export{Ta as Component,Fa as handle};
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.