1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,44100,e=>{"use strict";var t=e.i(43476),n=e.i(71645);e.s(["BackToTop",0,function(){let[e,a]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=()=>a(window.scrollY>400);return e(),window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,t.jsx)("button",{type:"button","aria-label":"Back to top",onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),className:`fixed right-5 bottom-5 z-40 hidden size-10 place-items-center rounded-full border-2 border-current bg-transparent text-slate-500/80 transition-all duration-300 hover:bg-slate-500 hover:text-white min-[850px]:grid ${e?"translate-y-0 opacity-100":"pointer-events-none translate-y-3 opacity-0"}`,children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"size-5",fill:"none",stroke:"currentColor",strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,t.jsx)("path",{d:"m6 15 6-6 6 6"})})})}])},93983,e=>{"use strict";var t=e.i(43476),n=e.i(22016),a=e.i(18566),r=e.i(71645),i=e.i(18887);function o({className:e,children:a,reason:r}){return i.site.bookingUrl.startsWith("/")?(0,t.jsx)(n.default,{href:r?`${i.site.bookingUrl}?reason=${encodeURIComponent(r)}`:i.site.bookingUrl,className:e,children:a}):(0,t.jsxs)("a",{href:i.site.bookingUrl,target:"_blank",rel:"noopener noreferrer",className:e,children:[a,(0,t.jsx)("span",{className:"sr-only",children:" (opens the booking page in a new tab)"})]})}var s=e.i(33209);function l({className:e,children:n}){return(0,t.jsx)("div",{className:(0,s.cn)("mx-auto w-full max-w-[1220px] px-[15px]",e),children:n})}var c=e.i(70312),u=e.i(13251),d=e.i(41150);e.s(["Header",0,function(){let e,p=(e=(0,a.usePathname)()??"/").endsWith("/")?e:`${e}/`,[m,f]=(0,r.useState)(!1),[h,y]=(0,r.useState)(!1);(0,d.useSignedIn)(),(0,r.useEffect)(()=>f(!1),[p]),(0,r.useEffect)(()=>{let e=()=>y(window.scrollY>24);return e(),window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,r.useEffect)(()=>{if(!m)return;let e=e=>"Escape"===e.key&&f(!1);return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[m]);let b=e=>"/"===e?"/"===p:p.startsWith(e),g=h||m;return(0,t.jsxs)("header",{className:(0,s.cn)("fixed inset-x-0 top-0 z-50 transition-[background-color,box-shadow,color] duration-300",g?"bg-white text-brand-600 shadow-[0_1px_0_rgb(20_33_74/0.08),0_8px_24px_-12px_rgb(20_33_74/0.2)]":"text-white"),children:[(0,t.jsxs)(l,{className:"flex h-[84px] items-center justify-between gap-8",children:[(0,t.jsx)(c.Logo,{onDark:!g}),(0,t.jsx)("nav",{"aria-label":"Main",className:"hidden lg:block",children:(0,t.jsx)("ul",{className:"flex items-center gap-9",children:i.nav.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:e.href,"aria-current":b(e.href)?"page":void 0,className:(0,s.cn)("relative block py-2 text-[1.02rem] font-semibold transition-opacity outline-none focus-visible:opacity-100 focus-visible:after:opacity-100","after:absolute after:bottom-0 after:left-0 after:h-[3px] after:w-5 after:rounded-full after:bg-gold-500 after:transition-opacity",b(e.href)?"after:opacity-100":"opacity-80 after:opacity-0 hover:opacity-100"),children:e.label})},e.href))})}),(0,t.jsxs)("div",{className:"flex items-center gap-5",children:[!1,(0,t.jsx)(o,{className:"btn-fs hidden h-11 items-center rounded-lg bg-gold-500 px-5 text-[0.95rem] font-extrabold text-white sm:inline-flex",children:"Book Now"}),(0,t.jsxs)("button",{type:"button",onClick:()=>f(e=>!e),"aria-expanded":m,"aria-controls":"mobile-menu",className:(0,s.cn)("grid size-11 place-items-center rounded-full outline-none transition-colors lg:hidden",g?"focus-visible:bg-brand-50 active:bg-brand-50":"focus-visible:bg-white/15 active:bg-white/15"),children:[(0,t.jsx)("span",{className:"sr-only",children:m?"Close menu":"Open menu"}),(0,t.jsx)(u.Icon,{plain:!0,name:m?"close":"menu",className:"size-7"})]})]})]}),m&&(0,t.jsx)("div",{id:"mobile-menu",className:"border-t border-slate-100 bg-white lg:hidden",children:(0,t.jsxs)(l,{className:"pt-2 pb-6",children:[(0,t.jsx)("nav",{"aria-label":"Mobile",children:(0,t.jsx)("ul",{className:"divide-y divide-slate-100",children:i.nav.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:e.href,"aria-current":b(e.href)?"page":void 0,className:(0,s.cn)("block py-3.5 text-lg",b(e.href)?"font-extrabold":"font-medium text-slate-600"),children:e.label})},e.href))})}),!1,(0,t.jsx)(o,{className:"btn-fs mt-3 flex h-12 items-center justify-center rounded-lg bg-gold-500 font-extrabold text-white",children:"Book Now"})]})})]})}],93983)},41150,21894,e=>{"use strict";var t=e.i(18566),n=e.i(71645),a=e.i(41065),r=e.i(29961),i=a;class o extends i.BimbleError{constructor(){super("This visit canât be changed online. Please call the clinic to change it.",404)}}let s=i.bimble.live,l=(e,...t)=>t.map(t=>{let n;return"string"==typeof(n=e[t])?n:"number"==typeof n?String(n):""}).find(Boolean)??"",c=(e,...t)=>{if(Array.isArray(e))return e;for(let n of t){let t=e?.[n];if(Array.isArray(t))return t}return[]};function u(e){let t,n=l(e,"status").toLowerCase(),a=l(e,"appointment_date","requested_appointment_date","requestedAppointmentDate").slice(0,10),i=l(e,"appointment_time","requested_appointment_time","requestedAppointmentTime"),o=!!(a&&/^\d{1,2}:\d{2}\s*[AP]M$/i.test(i.trim())&&(0,r.slotAt)(a,i)+60<(0,r.clinicNowAt)()),s=!o&&!!(e.can_reschedule_direct??e.canRescheduleDirect),u=!o&&!!(e.can_request_reschedule??e.canRequestReschedule);return{id:Number(e.appointment_id),date:a,time:i,doctor:l(e,"assigned_doctor_name","assignedDoctorName","requested_doctor_name","requestedDoctorName"),reason:l(e,"chief_complaint","service_name"),channel:(t=l(e,"channel","visit_type").toLowerCase()).includes("video")?"Video":t.includes("phone")?"Phone":"Virtual",status:e.cancelled_at||n.includes("cancel")?"cancelled":e.no_show_at||n.includes("no_show")?"missed":e.completed_at||n.includes("complete")?"completed":o?"past":"upcoming",pharmacy:l(e,"preferred_pharmacy_name"),canCancel:!o&&!!e.can_cancel,canReschedule:s||u,rescheduleBy:s?"move":u?"request":"",changeRequested:null,visitType:/walk|clinic|person/i.test(l(e,"visit_type"))?"clinic":"virtual",questionsDone:!!(e.follow_up_completed??e.followUpCompleted),picturesDone:!!(e.follow_up_images_completed??e.followUpImagesCompleted??e.problem_images_uploaded),serviceId:Number(e.service_id??e.serviceId)||null,joinUrl:e.can_join_waiting_room&&!o?l(e,"waiting_room_join_url"):"",prescriptionNotes:l(e,"prescription_notes"),cancellationReason:l(e,"cancellation_reason"),documents:function(e){let t=Number(e.appointment_id),n=[];for(let t of c(e.portal_requests??e.portalRequests)){let e=l(t,"attachment_download_url");e&&(t.download_available??t.downloadAvailable??!0)&&n.push({name:l(t,"attachment_name")||l(t,"request_type").replace(/_/g," ")||"Document",path:e.replace(/^.*\/api\/v1/,"")})}let a=e.private_invoice??e.privateInvoice;return a&&/paid/i.test(l(a,"status","payment_status"))&&n.push({name:"Invoice",path:`/patient/appointments/${t}/private-invoice/download`}),n}(e),requests:[["Prescription",l(e,"prescription_request_status","prescriptionRequestStatus")],["Lab report",l(e,"lab_report_request_status","labReportRequestStatus")]].filter(([,e])=>e).map(([e,t])=>({label:e,status:t.replace(/_/g," ")}))}}function d(e){return{id:Number(e.family_member_id),firstName:l(e,"first_name"),lastName:l(e,"last_name"),relationship:l(e,"relationship_label"),dob:l(e,"date_of_birth").slice(0,10),active:/verified|signed|active|approved|granted/i.test(l(e,"consent_status"))}}function p(e){var t;let n,a=t=>(0,i.fetchPatient)(t,e),r=new Map,p=(t,n,a)=>(0,i.fetchPatient)(t,e,{method:n,body:JSON.stringify(a)});return s?{async me(){let e=await a("/patients/me"),t=e.patient??e;return{firstName:l(t,"first_name","firstName"),lastName:l(t,"last_name","lastName"),phone:l(t,"phone","phone_number","cell_phone"),phn:l(t,"phn"),email:l(t,"email"),dob:l(t,"date_of_birth","dateOfBirth","dob").slice(0,10),gender:l(t,"gender"),address:l(t,"address_line_1","addressLine1","address"),unit:l(t,"address_line_2","addressLine2","unit_number"),city:l(t,"city"),province:l(t,"province"),postalCode:l(t,"postal_code","postalCode"),allergies:l(t,"allergies"),photo:l(t,"photo"),preferences:{sms:(t.sms_enabled??!0)!==!1,email:(t.email_enabled??!0)!==!1,reminders:(t.appointment_reminders??!0)!==!1,feedback:(t.feedback_requests??!0)!==!1}}},async updateProfile(e){let t={firstName:"first_name",lastName:"last_name",email:"email",address:"address_line_1",unit:"address_line_2",city:"city",province:"province",postalCode:"postal_code",allergies:"allergies"},n=Object.fromEntries(Object.entries(e).map(([e,n])=>[t[e],n]));await p("/patients/me","PATCH",n)},async startPhoneChange(e){let t=await p("/patients/me/phone/start","POST",{phone:e});return{otpToken:t.otp_token,devCode:t.dev_otp??t.devOtp??""}}
1,async finishPhoneChange(e,t){await p("/patients/me/phone/verify","POST",{otp_token:e,otp_code:t})},async setPhoto(e){await p("/patients/me/photo","PUT",{photo:e})},async removePhoto(){await (0,i.fetchPatient)("/patients/me/photo",e,{method:"DELETE"})},async setPreferences(e){await p("/patient/preferences","PATCH",{sms_enabled:e.sms,email_enabled:e.email,appointment_reminders:e.reminders,feedback_requests:e.feedback})},family:async()=>c(await a("/patient/family-members"),"items","family_members").map(d),async addFamily(e){let t=await p("/patient/family-members","POST",{first_name:e.firstName,last_name:e.lastName,relationship_label:e.relationship,date_of_birth:e.dob,phn:e.phn||null,email:e.email||null,phone:e.phone||null,consent_channel:"SMS",authority_consent_given:e.authority}),n=d(t??{});return{member:n,needsCode:!n.active,devCode:l(t??{},"dev_otp_code")}},confirmFamily:async(e,t,n)=>d(await p(`/patient/family-members/${e}/consent/verify`,"POST",{otp_code:t,signature_text:n})),async managedBy(){let e=await a("/patient/linked-owner-profiles");return(Array.isArray(e)?e:[]).map(e=>`${l(e,"first_name")} ${l(e,"last_name")}`.trim()).filter(Boolean)},switchTo:async e=>(await p(`/patient/family-members/${e}/switch-profile`,"POST",{})).access_token,async updateFamily(e,t){await p(`/patient/family-members/${e}`,"PATCH",{...t.dob?{date_of_birth:t.dob}:{},...t.phn?{phn:t.phn}:{},...t.email?{email:t.email}:{}})},async file(t){let n=await fetch(/^https?:/.test(t.path)?t.path:`${i.bimbleApi}/api/v1${t.path}`,{headers:{Authorization:`Bearer ${e}`,"X-Bimble-Authorization":`Bearer ${e}`},cache:"no-store"});if(!n.ok)throw new i.BimbleError("We couldnât open this file. Please try again.",n.status);if((n.headers.get("content-type")??"").includes("json")){let e=await n.json(),t=e.url??e.download_url;if(!t)throw new i.BimbleError("We couldnât open this file. Please try again.",500);return(await fetch(t)).blob()}return n.blob()},async appointments(){let[e,t]=await Promise.all([a("/patient/appointments"),a("/patient/requests").catch(()=>[])]),n=new Map;for(let e of c(t,"items","requests")){let t=Number(e.appointment_id);if("RESCHEDULE"!==l(e,"request_type").toUpperCase()||!/^(submitted|in_review)$/i.test(l(e,"status"))||n.has(t))continue;let a=l(e,"requested_appointment_date").slice(0,10),r=l(e,"requested_appointment_time");a&&r&&n.set(t,{date:a,time:r})}let r=c(e?.past).map(u).map(e=>"upcoming"===e.status||"past"===e.status?{...e,status:"completed"}:e);return[...c(e?.current),...c(e,"appointments","items")].map(u).concat(r).map(e=>({...e,changeRequested:"upcoming"===e.status?n.get(e.id)??null:null}))},async cancel(e,t){await p(`/patient/appointments/${e}/cancel`,"POST",{reason:t})},async rescheduleOptions(e){if("move"===e.rescheduleBy)return((await a(`/patient/appointments/${e.id}/reschedule-options?days=14`)).dates??[]).map(e=>({date:e.appointment_date,times:(e.slots??[]).map(e=>e.appointment_time)})).filter(e=>e.times.length);let t=Number((await a(`/patient/pool/${e.id}/status`).catch(e=>{throw e instanceof i.BimbleError&&(404===e.status||403===e.status)?new o:e})).assigned_doctor_id);if(!Number.isInteger(t)||t<=0)throw new o;r.set(e.id,t);let n=await i.bimble.doctorSlots([t],e.visitType).then(e=>e[t]??[],e=>{throw e instanceof i.BimbleError&&404===e.status?new o:e}),s=new Map;for(let e of n)s.set(e.date,[...s.get(e.date)??[],e.time]);return[...s.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({date:e,times:[...new Set(t)].sort((e,t)=>(0,i.slotMinutes)(e)-(0,i.slotMinutes)(t))}))},async reschedule(e,t,n){await p(`/patient/appointments/${e}/reschedule`,"PATCH",{appointment_date:t,appointment_time:n})},async requestReschedule(e,t,n){let a=r.get(e);await p(`/patient/appointments/${e}/reschedule-request`,"POST",{request_type:"RESCHEDULE",requested_appointment_date:t,requested_appointment_time:n,...a?{requested_doctor_id:a}:{}})},async conversations(){let[e,t]=await Promise.all([a("/patient/conversations?limit=30"),i.bimble.clinicId().catch(()=>0)]);return(e.items??[]).filter(e=>!t||Number(e.clinic_id)===t).map(e=>{let t;return{id:Number(e.conversation_id),subject:l(e,"subject")||"Message from the clinic",from:l(e,"clinic_name"),at:l(e,"last_activity_at"),unread:!!e.unread,canReply:(t=l(e,"state"),!/closed|archiv|read.?only|locked|resolved/i.test(t))}})},async bookedClinic(){let[e,t]=await Promise.all([a("/patient/appointments"),i.bimble.clinicId().catch(()=>0)]),n=[...c(e?.current),...c(e,"appointments","items"),...c(e?.past)].find(e=>!t||Number(e.clinic_id)===t);return n?{name:l(n,"clinic_name")}:null},async conversation(e){let t=await a(`/patient/conversations/${e}?limit=50`),n=Math.max(0,...(t.messages??[]).map(e=>Number(e.message_id)).filter(Number.isFinite));return n&&p(`/patient/conversations/${e}/read`,"POST",{last_read_message_id:n}).catch(()=>{}),(t.messages??[]).filter(e=>!e.is_deleted).map(e=>({id:Number(e.message_id),mine:"patient"===l(e,"author_actor_type").toLowerCase(),author:l(e,"author_display_name"),body:l(e,"body"),at:l(e,"created_at"),attachment:e.attachment_ref_id?{id:Number(e.attachment_ref_id),name:l(e,"attachment_name")||"Attachment",type:l(e,"attachment_content_type")}:null})).sort((e,t)=>
1e.at.localeCompare(t.at))},async upload(t,n){let a=new FormData;a.append("file",n);let r=await (0,i.fetchPatient)(`/patient/conversations/${t}/attachments`,e,{method:"POST",body:a});return{id:r.attachment_id,name:r.file_name||n.name,type:r.content_type||n.type}},async reply(e,t,n){await p(`/patient/conversations/${e}/messages`,"POST",{body:t,...n?{attachment_ref_id:n.id}:{}})},async startConversation(e,t){let n=await i.bimble.clinicId();return Number((await p("/patient/conversations","POST",{body:t,clinic_id:n,subject:e.trim()||"Message to the clinic"}).catch(e=>{if(e instanceof i.BimbleError&&404===e.status)throw new i.BimbleError("You can message the clinic once youâve booked a visit with us.",404);throw e})).conversation_id)},async download(t,n){let a=await fetch(`${i.bimbleApi}/api/v1/patient/conversations/${t}/attachments/${n.id}/download`,{headers:{Authorization:`Bearer ${e}`,"X-Bimble-Authorization":`Bearer ${e}`},cache:"no-store"});if(!a.ok)throw new i.BimbleError("We couldnât open this file. Please try again.",a.status);if((a.headers.get("content-type")??"").includes("json")){let e=await a.json(),t=e.url??e.download_url;if(!t)throw new i.BimbleError("We couldnât open this file. Please try again.",500);return(await fetch(t)).blob()}return a.blob()}}:e.startsWith("demo-family-")?(t=Number(e.slice(12)),n=N.find(e=>e.id===t),{...x,me:async()=>({...v,firstName:n?.firstName??"",lastName:n?.lastName??"",dob:n?.dob??"",gender:"",allergies:"",preferences:{...P}}),appointments:async()=>(await m(300),[]),conversations:async()=>(await m(300),[]),family:async()=>[]}):x}let m=e=>new Promise(t=>setTimeout(t,e)),f=e=>{let t=new Date;return t.setDate(t.getDate()+e),`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`},h=(e,t)=>`${f(e)}T${String(t).padStart(2,"0")}:15:00`,y={reason:"",pharmacy:"Bimble Pharmacy",canCancel:!1,canReschedule:!1,rescheduleBy:"",changeRequested:null,visitType:"virtual",questionsDone:!0,picturesDone:!0,serviceId:null,joinUrl:"",prescriptionNotes:"",cancellationReason:"",documents:[],requests:[]},b=e=>`data:text/plain;charset=utf-8,${encodeURIComponent(`${e} 2 3123 Virtual Clinic â sample document (demo).`)}`,g=[{...y,id:301,date:f(2),time:"3:30 PM",doctor:"Dr. Sarah Chen",reason:"Cough, Cold, and Sore Throat",channel:"Video",status:"upcoming",canCancel:!0,canReschedule:!0,rescheduleBy:"request",questionsDone:!1,picturesDone:!1},{...y,id:288,date:f(-21),time:"10:00 AM",doctor:"Dr. Amrit Gill",reason:"Prescription Refill",channel:"Phone",status:"completed",prescriptionNotes:"Salbutamol inhaler, 100 mcg â 2 puffs as needed. 3 refills.",documents:[{name:"Visit summary",path:"",url:b("Visit summary")},{name:"Doctorâs note for work",path:"",url:b("Doctorâs note")}],requests:[{label:"Prescription",status:"sent to pharmacy"}]},{...y,id:251,date:f(-64),time:"1:45 PM",doctor:"Dr. Sarah Chen",reason:"Skin Problems",channel:"Video",status:"completed",prescriptionNotes:"Hydrocortisone 1% cream, twice a day for 7 days."}],_={41:[{id:1,mine:!1,author:"123 Virtual Clinic",body:"Hi Jane, your visit with Dr. Sarah Chen is booked. Keep your phone close at your appointment time.",at:h(-1,10),attachment:null}],37:[{id:2,mine:!1,author:"Dr. Amrit Gill",body:"Your prescription was sent to Bimble Pharmacy.",at:h(-21,11),attachment:null},{id:3,mine:!0,author:"You",body:"Thank you!",at:h(-21,12),attachment:null}]},w=[{id:41,subject:"Your upcoming visit",from:"123 Virtual Clinic",at:h(-1,10),unread:!0,canReply:!0},{id:37,subject:"Prescription sent",from:"123 Virtual Clinic",at:h(-21,12),unread:!1,canReply:!1}],v={firstName:"JANE",lastName:"DOE",phone:"604-555-0147",phn:"9123456780",email:"[email protected]",dob:"1960-02-11",gender:"female",address:"123 MAIN ST",unit:"",city:"ABBOTSFORD",province:"BC",postalCode:"V2T 4V1",allergies:"Penicillins",photo:""},S="",P={sms:!0,email:!0,reminders:!0,feedback:!0},N=[{id:71,firstName:"EMMA",lastName:"DOE",relationship:"Daughter",dob:"2016-05-03",active:!0}],x={me:async()=>({...v,preferences:{...P}}),async updateProfile(e){await m(500),Object.assign(v,e)},startPhoneChange:async e=>(S=e,await m(500),{otpToken:"demo",devCode:"1234"}),async finishPhoneChange(e,t){if(await m(500),"1234"!==t)throw new i.BimbleError("That code didnât work. Please try again.",400);v.phone=S},async setPhoto(e){await m(300),v.photo=e},async removePhoto(){await m(300),v.photo=""},async setPreferences(e){await m(300),Object.assign(P,e)},family:async()=>(await m(300),N.map(e=>({...e}))),async addFamily(e){await m(600);let t={id:Date.now(),firstName:e.firstName,lastName:e.lastName,relationship:e.relationship,dob:e.dob,active:!1};return N.push(t),{member:t,needsCode:!0,devCode:"1234"}},async confirmFamily(e,t,n){if(await m(500),"1234"!==t)throw new i.BimbleError("That code didnât work. Please try again.",400);let a=N.find(t=>
3t.id===e);return a.active=!0,{...a}},switchTo:async e=>(await m(500),`demo-family-${e}`),managedBy:async()=>[],async updateFamily(e,t){await m(400)},file:async e=>(await fetch(e.url??"")).blob(),appointments:async()=>(await m(300),g.map(e=>({...e}))),async cancel(e,t){await m(500),g=g.map(t=>t.id===e?{...t,status:"cancelled",canCancel:!1,canReschedule:!1,changeRequested:null}:t)},rescheduleOptions:async e=>(await m(400),[1,2,3,4].map(e=>({date:f(e),times:e%2?["9:00 AM","10:30 AM","2:15 PM","4:00 PM"]:["11:00 AM","1:30 PM","3:45 PM"]}))),async reschedule(e,t,n){await m(500),g=g.map(a=>a.id===e?{...a,date:t,time:n}:a)},async requestReschedule(e,t,n){await m(500),g=g.map(a=>a.id===e?{...a,changeRequested:{date:t,time:n}}:a)},conversations:async()=>(await m(300),w.map(e=>({...e}))),bookedClinic:async()=>(await m(200),g.length?{name:"123 Virtual Clinic"}:null),async conversation(e){await m(250);let t=w.find(t=>t.id===e);return t&&(t.unread=!1),[..._[e]??[]]},upload:async(e,t)=>(await m(500),{id:Date.now(),name:t.name,type:t.type,url:URL.createObjectURL(t)}),async reply(e,t,n){await m(400),(_[e]??=[]).push({id:Date.now(),mine:!0,author:"You",body:t,at:new Date().toISOString(),attachment:n??null})},async startConversation(e,t){await m(400);let n=Date.now();return w.unshift({id:n,subject:e.trim()||"Message to the clinic",from:"123 Virtual Clinic",at:new Date().toISOString(),unread:!1,canReply:!0}),_[n]=[{id:n,mine:!0,author:"You",body:t,at:new Date().toISOString(),attachment:null}],n},download:async(e,t)=>(await fetch(t.url??"")).blob()};e.s(["ChangeByPhone",0,o,"portalApi",0,p,"portalAuth",0,{async start(e){if(!s)return await m(500),{otpToken:"demo",devCode:"1234"};let t=await (0,i.request)("/patients/auth/phone",{method:"POST",body:{phone:e}});return{otpToken:t.otp_token??"",devCode:t.dev_otp??t.devOtp??""}},async verify(e,t){if(!s){if(await m(500),"1234"!==t)throw new i.BimbleError("That code didnât work. Please try again.",400);return e}return(await (0,i.request)("/patients/auth/phone/verify",{method:"POST",body:{otp_token:e,otp_code:t}})).otp_token},finish:async(e,t)=>s?(await (0,i.request)("/patients/auth/phone/profile",{method:"POST",body:{otp_token:e,date_of_birth:t.dob,phn:t.phn||null,email:t.email||null}})).access_token:(await m(600),"demo"),access:async e=>s?(await (0,i.request)("/patients/auth/portal-access",{method:"POST",body:{token:e}})).access_token:(await m(400),"demo")},"portalLive",0,s],21894);let C="123vc-patient-session";function j(e){return e instanceof a.BimbleError&&401===e.status&&(E(),window.location.replace(`/login/?next=${encodeURIComponent(location.pathname+location.search)}&expired=1`),!0)}function E(){try{for(let e of(sessionStorage.removeItem(C),sessionStorage.removeItem(k),sessionStorage.removeItem(T),sessionStorage.removeItem(O),Object.keys(sessionStorage)))e.startsWith("123vc-photo-tab:")&&sessionStorage.removeItem(e)}catch{}}let k="123vc-owner-session",T="123vc-acting-as",O="123vc-owner-name",I=()=>{try{return sessionStorage.getItem(C)??""}catch{return""}};e.s(["isActingForFamily",0,function(){try{return!!(sessionStorage.getItem(T)||sessionStorage.getItem(k))}catch{return!1}},"saveSession",0,function(e){try{sessionStorage.setItem(C,e)}catch{}},"signOut",0,E,"signedOutIfExpired",0,j,"switchBack",0,function(){try{let e=sessionStorage.getItem(k);e&&sessionStorage.setItem(C,e),sessionStorage.removeItem(k),sessionStorage.removeItem(T),sessionStorage.removeItem(O)}catch{}window.location.href="/account/"},"switchToFamily",0,function(e,t,n=""){try{sessionStorage.getItem(k)||(sessionStorage.setItem(k,sessionStorage.getItem(C)??""),sessionStorage.setItem(O,n)),sessionStorage.setItem(C,e),sessionStorage.setItem(T,t)}catch{}window.location.href="/account/"},"useActingAs",0,function(){let[e,t]=(0,n.useState)("");return(0,n.useEffect)(()=>{try{t(sessionStorage.getItem(T)??"")}catch{}},[]),e},"useOwner",0,function(){let[e,t]=(0,n.useState)({canSwitchBack:!1,name:""});return(0,n.useEffect)(()=>{try{t({canSwitchBack:!!sessionStorage.getItem(k),name:sessionStorage.getItem(O)??""})}catch{}},[]),e},"usePortal",0,function(){let e=(0,t.useRouter)(),[a,r]=(0,n.use
3State)(null);return(0,n.useEffect)(()=>{let t=I();t?r(t):e.replace(`/login/?next=${encodeURIComponent(location.pathname+location.search)}`)},[e]),{api:(0,n.useMemo)(()=>a?p(a):null,[a]),token:a??"",expired:j}},"useSignedIn",0,function(){let[e,t]=(0,n.useState)(!1);return(0,n.useEffect)(()=>t(!!I()),[]),e}],41150)},33209,e=>{"use strict";e.s(["cn",0,(...e)=>e.filter(Boolean).join(" ")])},22016,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={default:function(){return b},useLinkStatus:function(){return _}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let i=e.r(90809),o=e.r(43476),s=i._(e.r(71645)),l=e.r(95057),c=e.r(8372),u=e.r(18581),d=e.r(18967),p=e.r(5550),m=e.r(88540),f=e.r(91949),h=e.r(73668),y=e.r(9396);function b(t){var n;let a,r,i,[b,_]=(0,s.useOptimistic)(f.IDLE_LINK_STATUS),w=(0,s.useRef)(null),{href:v,as:S,children:P,prefetch:N=null,passHref:x,replace:C,shallow:j,scroll:E,onClick:k,onMouseEnter:T,onTouchStart:O,legacyBehavior:I=!1,onNavigate:R,transitionTypes:A,ref:$,unstable_dynamicOnHover:B,...D}=t;a=P,I&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let q=s.default.useContext(c.AppRouterContext),M=!1!==N,L=!1===N?"none":!0===N?"full":"auto",U="none"!==L?"auto"===L?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,F="string"==typeof(n=S||v)?n:(0,l.formatUrl)(n);if(I){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});r=s.default.Children.only(a)}let z=I?r&&"object"==typeof r&&r.ref:$,V,W=s.default.useCallback(e=>(null!==q&&(w.current=(0,f.mountLinkInstance)(e,F,q,U,M,_,V)),()=>{w.current&&((0,f.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,f.unmountPrefetchableInstance)(e)}),[M,F,q,U,_,V]),K={ref:(0,u.useMergedRef)(W,z),onClick(t){I||"function"!=typeof k||k(t),I&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(t),!q||t.defaultPrevented||function(t,n,a,r,i,o,l,c="none"){if("u">typeof window){let u,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(n)){r&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:p}=e.r(99781);s.default.startTransition(()=>{p(n,r?"replace":"push",!1===i?m.ScrollBehavior.NoScroll:m.ScrollBehavior.Default,a.current,l,c)})}}(t,F,w,C,E,R,A,L)},onMouseEnter(e){I||"function"!=typeof T||T(e),I&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),q&&M&&(0,f.onNavigationIntent)(e.currentTarget,!0===B)},onTouchStart:function(e){I||"function"!=typeof O||O(e),I&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),q&&M&&(0,f.onNavigationIntent)(e.currentTarget,!0===B)}};return(0,d.isAbsoluteUrl)(F)?K.href=F:I&&!x&&("a"!==r.type||"href"in r.props)||(K.href=(0,p.addBasePath)(F)),i=I?s.default.cloneElement(r,K):(0,o.jsx)("a",{...D,...K,children:a}),(0,o.jsx)(g.Provider,{value:b,children:i})}let g=(0,s.createContext)(f.IDLE_LINK_STATUS),_=()=>(0,s.useContext)(g);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return r}});let a=e.r(71645);function r(e,t){let n=(0,a.useRef)(null),r=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=n.current;e&&(n.current=null,e());let t=r.current;t&&(r.current=null,t())}else e&&(n.current=i(e,a)),t&&(r.current=i(t,a))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esMo
3dule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18967,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={DecodeError:function(){return b},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return w},NormalizeError:function(){return g},PageNotFoundError:function(){return _},SP:function(){return h},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return o},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return u},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return S}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,n=!1;return(...a)=>(n||(n=!0,t=e(...a)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&s.test(e)};function c(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function u(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function m(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function f(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(n&&p(n))return a;if(!a)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return a}let h="u">typeof performance,y=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class g extends Error{}class _ extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class w extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function S(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return i}});let a=e.r(18967),r=e.r(52817);function i(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,r.hasBasePath)(n.pathname)}catch(e){return!1}}},98183,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={assign:function(){return l},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});function i(e){let t={};for(let[n,a]of e.entries()){let e=t[n];void 0===e?t[n]=a:Array.isArray(e)?e.push(a):t[n]=[e,a]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[n,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(n,o(e));else t.set(n,o(a));return t}function l(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,a]of n.entries())e.append(t,a)}return e}},95057,(e,t,n)=>{"use strict";e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var a={formatUrl:function(){return s},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let i=e.r(90809)._(e.r(98183)),o=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:n}=e,a=e.protocol||"",r=e.pathname||"",s=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:n&&(c=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(i.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==c?(c="//"+(c||""),r&&"/"!==r[0]&&(r="/"+r)):c||(c=""),s&&"#"!==s[0]&&(s="#"+s),u&&"?"!==u[0]&&(u="?"+u),r=r.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${a}${c}${r}${u}${s}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return s(e)}}]);
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.