{"version":3,"sources":["components/stepProgress.js","components/modals/babyGrow.js","components/modals/hearthBeat.js","components/modals/8kRealisticView.js","components/modals/terms.js","components/registerForm.js","components/selectTimeAppointment.js","components/selectTimeAppointment-v2.js","config/constans.js","services/external.js","components/boookAppointment.js","App.js","reportWebVitals.js","index.js"],"names":["StepProgress","stepOne","stepTwo","stepThree","stepProgressStyles","default","borderRight","borderBottom","borderLeft","borderTop","error","success","className","style","BabyGrow","setModalBabyGrow","onClick","e","cursor","size","icon","faTimesCircle","textAlign","HearthBeat","setModalHearthbeat","RealisticView","setModal8kRealisticView","Terms","setState","hideTerms","state","displayTerms","RegisterForm","text","params","weeks","services","selectedOptionAddons","control","register","handleSubmit","errors","Controller","onFormSubmit","onChangeServices","handleAddonsSelected","width","addOns","hoverIndexBabyGrow","hoverIndexHearthbeat","hoverIndex8kRealisticView","modalHearthbeat","modalBabyGrow","modal8kRealisticView","setClickButtonForm","selectStyles","option","styles","data","isDisabled","isFocused","isSelected","fontSize","translations","en","es","groupTextStyles","color","textTransform","groupStyles","display","alignItems","justifyContent","formatGroupLabel","label","showTerms","onSubmit","language","get","type","placeholder","firstName","required","pattern","lastName","email","phone","name","rules","render","field","options","isSearchable","length","service","onChange","value","isMulti","temsCheckbox","SelectTimeAppointment","setStepTwo","previousStep","availableBlocks","firstLoad","setSelectBlock","leadState","setLeadState","scrollParenTop","selectedBlock","handleAvailabilityBlockSelect","block","a","startDateTime","leadRegistered","leadPayload","partitionKey","partititonKey","orderKey","dateTimeSeleted","step","leadRequest","method","headers","authorization","siteid","siteId","body","JSON","stringify","fetch","process","leadResponse","json","leadData","ok","leadUpdate","console","onSelectedDay","val","moment","format","toString","startDate","useEffect","nextDay","add","setTimeout","blockSelected","id","DatePicker","labelFormat","selectDate","Date","getSelectedDay","endDate","availabilityRequestStatus","map","index","segment","disabled","spin","faSpinner","message","formatPhoneNumber","phoneNumber","replace","getAvailability","accesssToken","locationId","sessionTypeId","siteInfo","queryParams","URLSearchParams","timeZone","url","request","response","Error","status","bookeableSchedule","reShaped","slot","staffId","startTime","SelectTimeAppointmentV2","useState","bookable","setBookable","setFirstLoad","skipCounter","setSkipCounter","fetchAvailability","resp","blockDate","buildBlock","dateString","toLocaleTimeString","undefined","hour","minute","hour12","href","blocks","endSegment","appointment","removeTags","str","getIp","ip","BookAppointment","clientState","addHeartbeatBuddies","add8kRealisticView","setStepThree","googleTrackBooking","setClientState","localTime","ipAddress","bookAppointment","appointmentRequestStatus","createAppointment","clientObject","clientRequestStatus","payload","mobilePhone","createClientRequest","createClientResponse","createClientData","createdClient","clientId","createClientRequestStatus","parseInt","clientData","clientName","notes","log","bookAppointmentRequest","bookAppointmentResponse","bookAppointmentData","mailBody","locationName","city","web","locationPhone","locationAddress","address","howArrive","howtoarrive","appointmentId","Appointment","Id","clientEmail","serviceName","sessionTypeName","postMail","mailResponse","nameListAddons","i","dynamoPayload","SessionTypeId","LocationId","StaffId","ClientId","Notes","StartDateTime","Status","firstAppointment","FirstAppointment","programId","ProgramId","bookDate","date","account","bookDateTime","bookTimeUTC","utc","toISOString","split","servicePrice","includes","source","cbff","bookTime","putDynamo","dynamoResponse","dynamoData","leadDeleted","time","textMessageStatus","textMessage","captchaReady","App","window","location","search","setLocalTime","setWindowWidth","useV2","latitude","longitude","showAddons","searchResults","clientIsEqual","setAvailableBlocks","setServices","setSelectedOptionAddons","setStepOne","setAddHeartbeatBuddies","setAdd8kRealisticView","ultrasounds","setUltrasounds","consultedUltrasounds","setConsultedUltrasounds","setWeeks","sitesInfo","setSitesInfo","sendForm","setSendForm","specialPromotion25min","genderdetermination","earlypregnancy","meetyourbaby25","meetyourbaby15","fixedServices","setFixedServices","setHoverIndex8kRealisticView","setHoverIndexBabyGrow","setHoverIndexHearthbeat","clickButtonForm","addBabysGrowth","setAddBabysGrowth","seletedService","setSeletedService","setAddOns","clientFound","parent_origin","parent","postMessage","task","find","site","getSitesInfo","getSitesData","allSitesItem","sites","sitesArray","filter","filterSite","toLocaleString","getPrice","orderServices","sort","b","getServiceId","servicesArray","purifiedServiceName","remaining","serviceId","regex","toLowerCase","indexPrice","indexOf","slice","forEach","serviceItem","remainingService","today","dayFriday","authPayload","Username","Password","encrypted","crypto","encrypt","authRequest","authResponse","authData","ultrasoundsRequest","locationid","ultrasoundResponse","ultrasoundsData","servicesUltrasounds","filterServicesBySeeOnline","seeOnLine","massageRequest","massageResponse","massageData","filterMassageData","massages","existingServices","serviceTypeId","serviceObject","price","push","item","mutableItem","displayableServices","getServices","arrayOfWeeks","element","queryStartDate","availabilityRequest","availabilityResponse","availabilityData","rooms","schedule","room","appointments","mutableAppointment","listApointments","searchFirstAppointment","reduce","acc","app","firstDates","matches","severalRooms","staffName","unavailabilities","availabilities","roomBlocks","firstDatesMatches","displayableRooms","mutableBlocks","mutableBlock","addTwelve","rawHours","hours","minutes","stringDate","endDateTime","selected","firstBlockTime","available","isToday","localStartTime","localEndTime","selectedDateBlock","firstAvailability","minDate","hourDifferenceAppt","diff","hourDifferenceBlocks","availabilityBlock","isBetween","unavailabilityBlock","EndDateTime","blockAppointment","Boolean","returnRoom","availableBlocksForDisplay","foundedBlock","availableBlock","count","sortedBlocks","currentStep","useForm","watch","formState","updateDimensions","addEventListener","removeEventListener","innerWidth","getBGCombo","indexAddon","purifiedConsulted","searchClientsRequest","searchClientsResponse","searchClientsData","clients","dateTime","peaceofmind","handleFixedServices","formattingSelectedOptionAddons","addOnsToMeetYourBaby","onMouseOver","onMouseLeave","faInfo","addOnsToGenderDetermination","addOnsToEarlyPregnancy","babyGrow","hearthbeat","realisticView","newSessionTypeId","newSessionTypeName","costMeetYourbaby25","match","costMeetYourbaby25PlusBabysGrowth","parseFloat","costMeetYourbaby15","costMeetYourbaby15PlusBabysGrowth","costGenderDetermination","costGenderPlusBabysGrowth","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","document","getElementById"],"mappings":"mWA0FeA,MAvFf,YAII,IAHFC,EAGC,EAHDA,QACAC,EAEC,EAFDA,QACAC,EACC,EADDA,UAGMC,EAAqB,CACzBC,QAAS,CACPC,YAAa,OACbC,aAAc,OACdC,WAAY,OACZC,UAAW,sBAEbC,MAAO,CACLJ,YAAa,OACbC,aAAc,OACdC,WAAY,OACZC,UAAW,sBAEbE,QAAS,CACPL,YAAa,OACbC,aAAc,OACdC,WAAY,OACZC,UAAW,wBAKf,OACE,qCACE,qBAAKG,UAAU,6DAAf,SAEE,sBAAKA,UAAU,mBAAf,UAEE,qBAAKA,UACS,YAAZX,EAAwB,oCACV,YAAZA,EAAwB,qCACtB,wDAHN,SAIe,YAAZA,EAAwB,SACX,YAAZA,EAAwB,IAAM,MAGlC,qBAAKW,UAAU,WAAWC,MACZ,YAAZZ,EAAwBG,EAAmBO,QAC7B,YAAZV,EAAwBG,EAAmBM,MAAQN,EAAmBC,UAE1E,qBAAKO,UACS,YAAZV,EAAwB,oCACtB,wDAFJ,SAGe,YAAZA,EAAwB,SAAM,MAGjC,qBAAKU,UAAU,WAAWC,MAAmB,YAAZX,EAAwBE,EAAmBO,QAAUP,EAAmBC,UAEzG,qBAAKO,UACW,YAAdT,EAA0B,oCACxB,wDAFJ,SAGiB,YAAdA,EAA0B,SAAM,WAMvC,qBAAKS,UAAU,wDAAf,SACE,sBAAKA,UAAU,gBAAf,UAEE,sBAAMA,UAAU,iCAAhB,yBACA,qBAAKA,UAAU,QACf,sBAAMA,UAAU,6CAAhB,sBACA,qBAAKA,UAAU,QACf,sBAAMA,UAAU,0CAAhB,8B,uBCtBKE,MA9Cf,YAAsC,IAAnBC,EAAkB,EAAlBA,iBAEnB,OACE,qBAAKH,UAAU,0BAAf,SACA,sBAAKA,UAAU,4BAAf,UACE,wBACEA,UAAU,wCACVI,QAAS,SAACC,GAAD,OAAOF,GAAiB,IACjCF,MAAO,CAAEK,OAAQ,WAHnB,SAKE,cAAC,IAAD,CACEN,UAAU,aACVO,KAAK,KACLC,KAAMC,QAGV,qBAAKT,UAAU,8CAAf,SACE,mCACE,qBAAKA,UAAU,WAAf,SACE,qBAAKA,UAAU,mCAAf,SACE,mBAAGC,MAAO,CAAES,UAAW,WAAvB,+PAQR,qBAAKV,UAAU,yCAAf,SACE,wBAAQA,UAAU,+CAChBI,QAAS,SAACC,GAAD,OAAOF,GAAiB,IACjCF,MAAO,CAAEK,OAAQ,WAFnB,2BCkBWK,MA9CV,YAA0C,IAArBC,EAAoB,EAApBA,mBAE1B,OACE,qBAAKZ,UAAU,0BAAf,SACA,sBAAKA,UAAU,4BAAf,UACE,wBACEA,UAAU,wCACVI,QAAS,SAACC,GAAD,OAAOO,GAAmB,IACnCX,MAAO,CAAEK,OAAQ,WAHnB,SAKE,cAAC,IAAD,CACEN,UAAU,aACVO,KAAK,KACLC,KAAMC,QAGV,qBAAKT,UAAU,8CAAf,SACE,mCACE,qBAAKA,UAAU,WAAf,SACE,qBAAKA,UAAU,mCAAf,SACE,mBAAGC,MAAO,CAAES,UAAW,WAAvB,uTASR,qBAAKV,UAAU,yCAAf,SACE,wBAAQA,UAAU,+CAChBI,QAAS,SAACC,GAAD,OAAOO,GAAmB,IACnCX,MAAO,CAAEK,OAAQ,WAFnB,2BCcSO,MA7CV,YAAkD,IAA1BC,EAAyB,EAAzBA,wBAE7B,OACE,qBAAKd,UAAU,0BAAf,SACA,sBAAKA,UAAU,4BAAf,UACE,wBACEA,UAAU,wCACVI,QAAS,SAACC,GAAD,OAAOS,GAAwB,IACxCb,MAAO,CAAEK,OAAQ,WAHnB,SAKE,cAAC,IAAD,CACEN,UAAU,aACVO,KAAK,KACLC,KAAMC,QAGV,qBAAKT,UAAU,8CAAf,SACE,mCACE,qBAAKA,UAAU,WAAf,SACE,qBAAKA,UAAU,mCAAf,SACE,mBAAGC,MAAO,CAAES,UAAW,WAAvB,8PAQR,qBAAKV,UAAU,yCAAf,SACE,wBAAQA,UAAU,+CAChBI,QAAS,SAACC,GAAD,OAAOS,GAAwB,IACxCb,MAAO,CAAEK,OAAQ,WAFnB,2BCiNOS,MA9Of,YAAiC,IAAjBC,EAAgB,EAAhBA,SAERC,GAFwB,EAAPC,MAEL,WAChBF,GAAS,SAACE,GAAD,mBAAC,eACLA,GADI,IAEPC,cAAc,SAIlB,OAEE,qBAAKnB,UAAU,mBAAmBI,QAASa,EAA3C,SACA,sBAAKjB,UAAU,mBAAf,UACE,wBACEA,UAAU,wCACVI,QAASa,EAFX,SAIE,cAAC,IAAD,CACEjB,UAAU,aACVO,KAAK,KACLC,KAAMC,QAGV,sBAAKT,UAAU,wCAAf,UACE,qBAAKA,UAAU,gBAAf,SACE,qBAAKA,UAAU,OAAf,SACE,uEAGJ,qCACE,oBAAGA,UAAU,YAAb,mDACwC,uBACtC,uBAFF,8GAKa,uBACX,uBANF,2JAQsD,IACpD,uBACA,uBAVF,mFAW+B,uBAC7B,uBAZF,wGAayD,IACvD,uBACA,uBAfF,wIAkBwC,uBACtC,uBAnBF,8FAqBqC,0BAErC,oBAAGA,UAAU,YAAb,kpBAaE,uBACA,uBAdF,2cAwBE,uBACA,uBAzBF,wJA6BE,uBACA,uBACA,+BACE,8SAQA,6KAKA,0SAOE,8BACG,IADH,0HAOF,+PAOA,+MAMA,+BACG,IADH,0MAOA,wMAMA,+KAGsD,IACpD,6DAEF,kKAKA,8IAKA,sHAIA,wEAzGJ,wPA+GiB,uBACf,uBAhHF,8OAqHyB,uBACvB,uBAtHF,miBAiIS,uBACP,uBAlIF,kJAuIA,oBAAGA,UAAU,YAAb,6IAIE,uBACA,uBALF,+GAQE,uBACA,uBATF,uFAYE,uBACA,uBAbF,qRAoBE,uBACA,uBArBF,6OA2BE,uBACA,gCAIN,qBAAKA,UAAU,kCAAf,SACE,wBAAQA,UAAU,+CAAlB,2BCsMOoB,MAhaf,YA2BI,IAoBiBC,EA9CnBH,EA0BC,EA1BDA,MACAF,EAyBC,EAzBDA,SACAM,EAwBC,EAxBDA,OACAC,EAuBC,EAvBDA,MACAC,EAsBC,EAtBDA,SACAC,EAqBC,EArBDA,qBACAC,EAoBC,EApBDA,QACAC,EAmBC,EAnBDA,SACAC,EAkBC,EAlBDA,aACAC,EAiBC,EAjBDA,OACAC,EAgBC,EAhBDA,WACAC,EAeC,EAfDA,aACAC,EAcC,EAdDA,iBACAC,EAaC,EAbDA,qBACAC,EAYC,EAZDA,MACAC,EAWC,EAXDA,OACAC,EAUC,EAVDA,mBACAC,EASC,EATDA,qBACAC,EAQC,EARDA,0BACAC,EAOC,EAPDA,gBACA3B,EAMC,EANDA,mBACA4B,EAKC,EALDA,cACArC,EAIC,EAJDA,iBACAsC,EAGC,EAHDA,qBACA3B,EAEC,EAFDA,wBACA4B,EACC,EADDA,mBAGMC,EAAe,CACnBC,OAAQ,SAACC,EAAD,GAAyD,EAA9CC,KAA8C,EAAxCC,WAAwC,EAA5BC,UAA4B,EAAjBC,WAC9C,OAAO,2BACFJ,GADL,IAEEK,SAAUhB,EAAQ,KAAO,GAAK,OAK9BiB,EAAe,CACnBC,GAAI,CACF,gCAAiC,iCAEnCC,GAAI,CACF,gCAAiC,kCAS/BC,EAAkB,CACtBC,MAAO,UACPL,SAAUhB,EAAQ,KAAO,GAAK,GAC9BsB,cAAe,cAGXC,EAAc,CAClBC,QAAS,OACTC,WAAY,SACZC,eAAgB,iBAGZC,EAAmB,SAACf,GAAD,OACvB,qBAAK7C,MAAOwD,EAAZ,SACE,sBAAMxD,MAAOqD,EAAb,SAA+BR,EAAKgB,WAIlCC,EAAY,WAChB/C,GAAS,SAACE,GAAD,mBAAC,eACLA,GADI,IAEPC,cAAc,QAKlB,OACE,mCACE,uBACEnB,UAAU,8DACVgE,SAAUpC,EAAaG,GAFzB,UAIE,qBAAK/B,UAAU,WAAf,SACE,sBAAKA,UAAU,MAAf,UACE,oBAAIA,UAAU,0CAAd,UAvCSqB,EAwCI,gCAAiCH,EAAM+C,SAvC9Cd,EAAa7B,EAAO4C,IAAI,SAAW,MACpC7C,IAASA,KAwCd,qBAAIrB,UAAU,eAAd,UACG,IADH,mFAOJ,sBAAKA,UAAU,MAAf,UACE,qBAAKA,UAAU,kBAAf,SACE,mCACEmE,KAAK,OACLC,YAAY,aACZpE,UACE,oCACC6B,EAAOwC,UAAY,uBAAyB,cAE3C1C,EAAS,YAAa,CACxB2C,UAAU,EACVC,QAAS,qBAIf,qBAAKvE,UAAU,kBAAf,SACE,mCACEmE,KAAK,OACLC,YAAY,YACZpE,UACE,oCACC6B,EAAO2C,SAAW,uBAAyB,cAE1C7C,EAAS,WAAY,CACvB2C,UAAU,EACVC,QAAS,wBAKjB,qBAAKvE,UAAU,MAAf,SACE,qBAAKA,UAAU,MAAf,SACE,mCACEmE,KAAK,OACLC,YAAY,QACZpE,UACE,oCACC6B,EAAO4C,MAAQ,uBAAyB,cAEvC9C,EAAS,QAAS,CACpB2C,UAAU,EACVC,QAAS,0BAKjB,qBAAKvE,UAAU,MAAf,SACE,qBAAKA,UAAU,MAAf,SACE,mCACEmE,KAAK,MACLC,YAAY,eACZpE,UACE,oCACC6B,EAAO6C,MAAQ,uBAAyB,cAEvC/C,EAAS,QAAS,CACpB2C,UAAU,EACVC,QACE,8DAMV,qBAAKvE,UAAU,MAAf,SACE,qBAAKA,UAAU,MAAf,SACE,cAAC8B,EAAD,CACE6C,KAAK,QACLjD,QAASA,EACTkD,MAAO,CAAEN,UAAU,GACnBO,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,2BACMA,GADN,IAEEC,QAASxD,EACT6C,YAAY,yBACZY,cAAc,EACdhF,UACE,uBACC6B,EAAON,MAAQ,qBAAuB,cAOnD,qBAAKvB,UAAU,MAAf,SACE,qBAAKA,UAAU,MAAf,SACE,cAAC8B,EAAD,CACE6C,KAAK,UACLjD,QAASA,EACTkD,MAAO,CAAEN,UAAU,GACnBO,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,2BACMA,GADN,IAEEC,QAASvD,EACT4C,YACE5C,EAASyD,OAAS,EACd,mBACA,mBAENlC,YAAavB,EAASyD,OAAS,EAC/BjF,UACE,uBACC6B,EAAOqD,QAAU,qBAAuB,IAE3CrB,iBAAkBA,EAClBhB,OAAQF,EACRqC,cAAc,EACdG,SAAU,SAACD,GACTlD,EAAiBkD,GACjBJ,EAAMK,SAASD,cAQ3B,qBAAKlF,UAAU,MAAf,SACE,qBAAKA,UAAU,MAAf,SACE,cAAC8B,EAAD,CACE6C,KAAK,SACLjD,QAASA,EACTmD,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,2BACMA,GADN,IAEE/B,YAAavB,EAASyD,OAAS,EAC/BG,MAAO3D,EACPuD,cAAc,EACdD,QAAS5C,EACTiC,YACE5C,EAASyD,OAAS,EACd,kCACA,iBAENjF,UAAU,sBACVqF,SAAO,EACPF,SAAU,SAAC9E,GAAQ4B,EAAqB5B,GAAIyE,EAAMK,SAAS9E,cAOrE,qBAAKL,UAAU,WAAf,SACE,qBAAKA,UAAU,gBAAf,SACE,cAAC8B,EAAD,CACE6C,KAAK,eACLjD,QAASA,EACTkD,MAAO,CAAEN,UAAU,GACnBO,OAAQ,gBAAGC,EAAH,EAAGA,MAAH,OACN,sBAAK9E,UAAU,aAAf,UACE,+CACEA,UACE,oBACC6B,EAAOyD,aAAe,qBAAuB,KAE5CR,GALN,IAMEX,KAAK,cAEP,wBACEnE,UACE,0BACC6B,EAAOyD,aAAe,eAAiB,IAH5C,UAMGzD,EAAOyD,cACN,4DACuB,IACrB,yBACEnB,KAAK,SACLnE,UAAU,mCACVI,QAAS2D,EAHX,UAKG,IALH,8BAUFlC,EAAOyD,cACP,gDACW,IACT,yBACEnB,KAAK,SACLnE,UAAU,mCACVI,QAAS2D,EAHX,UAKG,IALH,0CAiBf3B,GACC,qBACEpC,UACEoC,EACI,+CACA,kBAENnC,MAAO,CAAEiD,SAAU,IANrB,SAQE,qBAAKlD,UAAU,WAAf,SACE,qBAAKA,UAAU,SAAf,SACE,mBAAGC,MAAO,CAAES,UAAW,WAAaV,UAAU,YAA9C,6PASPqC,GACC,qBACErC,UACEqC,EACI,gDACA,kBAENpC,MAAO,CAAEiD,SAAU,IANrB,SAQE,qBAAKlD,UAAU,WAAf,SACE,qBAAKA,UAAU,SAAf,SACE,mBAAGC,MAAO,CAAES,UAAW,WAAaV,UAAU,YAA9C,qTAUPsC,GACC,qBACEtC,UACEsC,EACI,uDACA,kBAENrC,MAAO,CAAEiD,SAAU,IANrB,SAQE,qBAAKlD,UAAU,WAAf,SACE,qBAAKA,UAAU,SAAf,SACE,mBAAGC,MAAO,CAAES,UAAW,WAAaV,UAAU,YAA9C,4PASPkB,EAAMC,cACL,cAAC,EAAD,CAAOH,SAAUA,EAAUE,MAAOA,IAGnCqB,GACC,cAAC,EAAD,CAAY3B,mBAAoBA,IAEjC4B,GACA,cAAC,EAAD,CAAUrC,iBAAkBA,IAE5BsC,GACC,cAAC,EAAD,CAAe3B,wBAAyBA,IAG1C,qBAAKd,UAAU,WAAf,SACE,qBAAKA,UAAU,kBAAf,SACE,wBACEmE,KAAK,SACLnE,UAAU,+CACVI,QAAS,kBAAMsC,GAAmB,IAHpC,4C,QCjHG6C,MApQf,YAYI,IAXFC,EAWC,EAXDA,WACAC,EAUC,EAVDA,aACAvE,EASC,EATDA,MACAwE,EAQC,EARDA,gBACA1E,EAOC,EAPDA,SACA2E,EAMC,EANDA,UACAC,EAKC,EALDA,eACAC,EAIC,EAJDA,UACAC,EAGC,EAHDA,aACAC,EAEC,EAFDA,eACAC,EACC,EADDA,cAIMC,EAA6B,uCAAG,WAAOC,GAAP,qBAAAC,EAAA,yDACpCnF,GAAS,SAACE,GAAD,mBAAC,eACLA,GADI,IAEPgF,MAAOA,OAGTN,EAAeM,EAAME,eANe,UAS9BP,EAAUQ,eAToB,wBAU1BC,EAAc,CAClBC,aAAcV,EAAUW,cACxBC,SAAUZ,EAAUY,SACpBC,gBAAiBR,EAAME,cACvBO,KAAM,GAEFC,EAAc,CAClBC,OAAQ,MACRC,QAAS,CACP,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEhBC,KAAMC,KAAKC,UAAUd,IAvBS,SAyBLe,MAAM,GAAD,OAC3BC,4CAD2B,qBAE9BV,GA3B8B,cAyB1BW,EAzB0B,iBA6BTA,EAAaC,OA7BJ,QA6B1BC,EA7B0B,OA8B5BF,EAAaG,GACf5B,GAAa,SAACD,GAAD,mBAAC,eACTA,GADQ,IAEX8B,YAAY,QAGd7B,GAAa,SAACD,GAAD,mBAAC,eACTA,GADQ,IAEX8B,YAAY,OAEdC,QAAQ9H,MAAM2H,IAxCgB,0DA6ClCG,QAAQ9H,MAAR,MA7CkC,0DAAH,sDAkD7B+H,EAAgB,SAACC,GACrBtC,EAAW,WAETuC,IAAOD,GAAKE,OAAO,cAAcC,aACjCF,IAAO7G,EAAMgH,WAAWF,OAAO,cAAcC,YAI/CjH,GAAS,SAACE,GAAD,mBAAC,eACLA,GADI,IAEPgH,UAAWH,IAAOD,GAAKE,OAAO,cAAcC,iBAIhDE,qBAAU,WACR,IAAMC,EAAUL,IAAO7G,EAAMgH,WAC1BG,IAAI,EAAG,QACPL,OAAO,cACPC,WAC4B,IAA3BvC,EAAgBT,QAAiBU,GACnC2C,YAAW,WACTT,EAAcO,KACb,OAEJ,CAAC1C,IAEJ,IAAM6C,EAAa,uCAAG,kCAAApC,EAAA,yDACpBJ,IAEAP,EAAW,WAEXxE,GAAS,SAACE,GAAD,mBAAC,eACLA,GADI,IAEPyF,KAAM,eAPY,UAWdd,EAAUQ,eAXI,wBAYVC,EAAc,CAClBC,aAAcV,EAAUW,cACxBC,SAAUZ,EAAUY,SACpBC,gBAAiBV,EACjBW,KAAM,GAEFC,EAAc,CAClBC,OAAQ,MACRC,QAAS,CACP,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEhBC,KAAMC,KAAKC,UAAUd,IAzBP,SA4BWe,MAAM,GAAD,OAC3BC,4CAD2B,qBAE9BV,GA9Bc,cA4BVW,EA5BU,iBAiCOA,EAAaC,OAjCpB,QAiCVC,EAjCU,OAkCZF,EAAaG,GACf5B,GAAa,SAACD,GAAD,mBAAC,eACTA,GADQ,IAEX8B,YAAY,QAGd7B,GAAa,SAACD,GAAD,mBAAC,eACTA,GADQ,IAEX8B,YAAY,OAEdC,QAAQ9H,MAAM2H,IA5CA,0DAkDlBG,QAAQ9H,MAAR,MAlDkB,0DAAH,qDAuDnB,OAEE,qBAAKE,UAAU,OAAf,SACE,sBAAKA,UAAU,MAAf,UACE,qBAAKA,UAAU,WAAf,SACE,sBAAKA,UAAU,gDAAf,UACE,oBAAIA,UAAU,KAAd,eACA,wBACEA,UAAU,2CACVI,QAAS,WAAQoF,EAAW,WAAYC,EAAa,iBAFvD,uBAQJ,qBAAKzF,UAAU,WAAf,SACE,qBAAKwI,GAAG,aAAaxI,UAAU,MAA/B,SACE,cAACyI,EAAA,EAAD,CACEC,YAAa,OACbC,WAAY,IAAIC,KAAK1H,EAAMgH,WAC3BW,eAAgBhB,EAChBtE,MAAM,UACNuF,QAAS,UAKsB,UAApC5H,EAAM6H,2BACLrD,EAAgBT,QAAU,GACxB,qCACE,oBAAIjF,UAAU,KAAd,8CACA,qBAAKA,UAAU,wEAAf,SACG0F,EAAgBsD,KAAI,SAAC9C,EAAO+C,GAC3B,OACE,qBACEjJ,UAAU,kCADZ,SAIE,wBACEA,UACEkG,EAAMsC,KAAOtH,EAAMgF,MAAMsC,GACrB,iEACA,oEAGNpI,QAAS,kBAAM6F,EAA8BC,IAP/C,SASGA,EAAMgD,SAHFhD,EAAMsC,KARRS,QAiBb,qBAAKjJ,UAAU,WAAf,SACE,qBAAKA,UAAU,kBAAf,SACE,wBACEA,UAAU,oCACVmJ,SAA6B,KAAnBjI,EAAMgF,MAAMsC,GACtBpI,QAASmI,EAHX,yBAW2B,UAApCrH,EAAM6H,2BACsB,IAA3BrD,EAAgBT,QACd,qBAAKjF,UAAU,MAAf,SACE,sBAAKA,UAAU,kBAAf,UACE,oBAAIA,UAAU,UAAd,wDAGA,oBAAIA,UAAU,UAAd,6DAM8B,YAApCkB,EAAM6H,2BAA+E,wBAApC7H,EAAM6H,4BACvD,qBAAK/I,UAAU,MAAf,SACE,qBAAKA,UAAU,kBAAf,SACE,qBAAIA,UAAU,YAAd,UACE,cAAC,IAAD,CAAiBoJ,MAAI,EAAC5I,KAAM6I,MAD9B,mBAMgC,UAApCnI,EAAM6H,2BAC8B,kBAApC7H,EAAM6H,4BACJ,qBAAI/I,UAAU,KAAd,oBAA2BkB,EAAMoI,iBCtO7C,SAASC,EAAkBC,GAI1B,OAHgBA,EAAYC,QAAQ,MAAO,IACjBA,QAAQ,wBAAyB,cAK5D,IAAMC,EAAe,uCAAG,qDAAAvD,EAAA,6DAASwD,EAAT,EAASA,aAAc1C,EAAvB,EAAuBA,OAAQ2C,EAA/B,EAA+BA,WAAY1B,EAA3C,EAA2CA,UAAW2B,EAAtD,EAAsDA,cAAeC,EAArE,EAAqEA,SACtFC,EAAc,IAAIC,gBAAgB,CACvC9B,UAAWA,EACX2B,cAAeA,EACfI,SAAUH,EAASG,WAGdC,EAPiB,UAOR5C,4CAPQ,sBAOmCL,EAPnC,sBAOuD2C,EAPvD,8BAOuFG,EAAY9B,YAEpHkC,EAAU,CACftD,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe4C,IAbM,kBAiBCtC,MAAM6C,EAAKC,GAjBZ,cAiBhBC,EAjBgB,iBAmBHA,EAAS5C,OAnBN,WAmBhB1E,EAnBgB,OAoBjBsH,EAAS1C,GApBQ,uBAqBf,IAAI2C,MAAJ,UAAaD,EAASE,OAAtB,aAAiCnD,KAAKC,UAAUtE,KArBjC,eAuBdyH,EAAsBzH,EAAtByH,kBACFC,EAAWD,EAAkBvB,KAAI,SAACyB,GACvC,MAAO,CACNC,QAASD,EAAKC,QACdtE,cAAeqE,EAAKE,cA3BA,kBA8BfH,GA9Be,wCAgCtB5C,QAAQ9H,MAAM,+BAAd,MAhCsB,+DAAH,sDAiVN8K,MA5Sf,YAAkL,IAA/IpF,EAA8I,EAA9IA,WAAYC,EAAkI,EAAlIA,aAAcvE,EAAoH,EAApHA,MAAOF,EAA6G,EAA7GA,SAAU4E,EAAmG,EAAnGA,eAAgBC,EAAmF,EAAnFA,UAAWC,EAAwE,EAAxEA,aAAcC,EAA0D,EAA1DA,eAAgBC,EAA0C,EAA1CA,cAAe6D,EAA2B,EAA3BA,cAAeC,EAAY,EAAZA,SACpK,EAAgCe,mBAAS,MAAzC,mBAAOC,EAAP,KAAiBC,EAAjB,KACA,EAAkCF,oBAAS,GAA3C,mBAAOlF,EAAP,KAAkBqF,EAAlB,KAEA,EAAsCH,mBAAS,GAA/C,mBAAOI,EAAP,KAAoBC,EAApB,KAEA/C,qBAAU,WACT,IAYMgD,EAAiB,uCAAG,4BAAAhF,EAAA,+EAELuD,EAAgB,CAClCC,aAAczI,EAAM6F,cACpBE,OAAQ/F,EAAM+F,OACd2C,WAAY1I,EAAM0I,WAClB1B,UAAWhH,EAAMgH,UACjB2B,cAAeA,EACfC,SAAUA,IARa,OAElBsB,EAFkB,OAWxBL,EAAYK,GACZJ,GAAa,GAjBdhK,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6H,0BAA2B,aAGH,gDAexBnB,QAAQ9H,MAAM,oCAAd,MACAkB,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6H,0BAA2B,QAC3BO,QAAS,KAAMA,aAnBQ,yDAAH,qDAXtBtI,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6H,0BAA2B,eAiC7BoC,MACE,CAACjK,EAAMgH,UAAW2B,EAAe3I,EAAM0I,WAAY1I,EAAM6F,cAAe7F,EAAM+F,OAAQjG,EAAU8I,IAEnG,IAAM7D,EAA6B,uCAAG,WAAOC,GAAP,qBAAAC,EAAA,yDACrCnF,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERgF,MAAOA,OAGRN,EAAeM,EAAME,eANgB,UAShCP,EAAUQ,eATsB,wBAU7BC,EAAc,CACnBC,aAAcV,EAAUW,cACxBC,SAAUZ,EAAUY,SACpBC,gBAAiBR,EAAME,cACvBO,KAAM,GAEDC,EAAc,CACnBC,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEfC,KAAMC,KAAKC,UAAUd,IAvBa,SAyBRe,MAAM,GAAD,OAAIC,4CAAJ,qBAAsDV,GAzBnD,cAyB7BW,EAzB6B,iBA0BZA,EAAaC,OA1BD,QA0B7BC,EA1B6B,OA2B/BF,EAAaG,GAChB5B,GAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZ8B,YAAY,QAGb7B,GAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZ8B,YAAY,OAEbC,QAAQ9H,MAAM2H,IArCoB,0DAyCpCG,QAAQ9H,MAAR,MAzCoC,0DAAH,sDA6C7B+H,EAAgB,SAACC,GACtBtC,EAAW,WACPuC,IAAOD,GAAKE,OAAO,cAAcC,aAAeF,IAAO7G,EAAMgH,WAAWF,OAAO,cAAcC,YAGjGjH,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERgH,UAAWH,IAAOD,GAAKE,OAAO,cAAcC,iBAI9CE,qBAAU,WACT,GAAI8C,EApGkB,GAoGcH,GAAiC,KAAb,OAARA,QAAQ,IAARA,OAAA,EAAAA,EAAU7F,UAAiBU,GAAiD,UAApCzE,EAAM6H,0BAAuC,CACpI,IAAMX,EAAUL,IAAO7G,EAAMgH,WAAWG,IAAI,EAAG,QAAQL,OAAO,cAAcC,WAC5EiD,EAAeD,EAAc,GAC7B3C,YAAW,WACVT,EAAcO,KACZ,QAGF,CAAC0C,EAAUnF,EAAWzE,EAAM6H,4BAE/B,IAAMR,EAAa,uCAAG,kCAAApC,EAAA,yDACrBJ,IAEAP,EAAW,WAEXxE,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERyF,KAAM,eAPc,UAWhBd,EAAUQ,eAXM,wBAYbC,EAAc,CACnBC,aAAcV,EAAUW,cACxBC,SAAUZ,EAAUY,SACpBC,gBAAiBV,EACjBW,KAAM,GAEDC,EAAc,CACnBC,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEfC,KAAMC,KAAKC,UAAUd,IAzBH,SA4BQe,MAAM,GAAD,OAAIC,4CAAJ,qBAAsDV,GA5BnE,cA4BbW,EA5Ba,iBA8BIA,EAAaC,OA9BjB,QA8BbC,EA9Ba,OA+BfF,EAAaG,GAChB5B,GAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZ8B,YAAY,QAGb7B,GAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZ8B,YAAY,OAEbC,QAAQ9H,MAAM2H,IAzCI,0DA6CpBG,QAAQ9H,MAAR,MA7CoB,0DAAH,qDAgFnB,OACC,qBAAKE,UAAU,OAAf,SACC,sBAAKA,UAAU,MAAf,UACC,qBAAKA,UAAU,WAAf,SACC,sBAAKA,UAAU,gDAAf,UACC,oBAAIA,UAAU,KAAd,eACA,wBACCA,UAAU,2CACVI,QAAS,WACRoF,EAAW,WACXC,EAAa,iBAJf,uBAWF,qBAAKzF,UAAU,WAAf,SACC,qBAAKwI,GAAG,aAAaxI,UAAU,MAA/B,SACC,cAACyI,EAAA,EAAD,CAAYC,YAAa,OAAQC,WAAY,IAAIC,KAAK1H,EAAMgH,WAAYW,eAAgBhB,EAAetE,MAAM,UAAUuF,QAAS,UAI7F,UAApC5H,EAAM6H,2BAAyC+B,GAAYA,EAAS7F,OAAS,GAC7E,qCACC,oBAAIjF,UAAU,KAAd,8CACA,qBAAKA,UAAU,wEAAf,SACE8K,EAAS9B,KAAI,SAAC9C,EAAO+C,GACrB,OACC,qBAAKjJ,UAAU,kCAAf,SACC,wBACCA,UACCkG,EAAME,gBAAkBJ,EACrB,iEACA,oEAGJ5F,QAAS,kBAAM6F,EA7CzB,SAAoBC,GACnB,MAAO,CACNwE,QAAS,CAACxE,EAAMwE,SAChBW,UAAWtD,IAAO7B,EAAME,eAAe6B,WACvC7B,cAAeF,EAAME,eAyCgCkF,CAAWpF,KAPzD,UAjRUqF,EA0RGrF,EAAME,cAzRf,IAAIwC,KAAK2C,GAEVC,wBAAmBC,EADf,CAAEC,KAAM,UAAWC,OAAQ,UAAWC,QAAQ,MAqR/C3C,IAP+CA,GAhR/D,IAAoBsC,OAgSd,qBAAKvL,UAAU,WAAf,SACC,qBAAKA,UAAU,kBAAf,SACC,wBAAQA,UAAU,oCAAoCmJ,SAA6B,KAAnBjI,EAAMgF,MAAMsC,GAAWpI,QAASmI,EAAhG,yBAOiC,UAApCrH,EAAM6H,2BAAyC+B,GAAYA,EAAS7F,OAAS,GAC7E,qBAAKjF,UAAU,MAAf,SACC,sBAAKA,UAAU,kBAAf,UACC,oBAAIA,UAAU,UAAd,sEACA,qBAAIA,UAAU,UAAd,qFAC0E,IACzE,mBAAG6L,KAAM,QAAU/B,EAASpF,MAAOzE,MAAO,CAAEsD,MAAO,WAAnD,SACEgG,EAAkBO,EAASpF,kBAMK,YAApCxD,EAAM6H,2BAA+E,wBAApC7H,EAAM6H,4BACxD,qBAAK/I,UAAU,MAAf,SACC,qBAAKA,UAAU,kBAAf,SACC,qBAAIA,UAAU,YAAd,UACC,cAAC,IAAD,CAAiBoJ,MAAI,EAAC5I,KAAM6I,MAD7B,kBAMkC,UAApCnI,EAAM6H,2BACN,qBAAK/I,UAAU,MAAf,SACC,sBAAKA,UAAU,kBAAf,UACC,qBAAIA,UAAU,UAAd,mEACwD,IACvD,mBAAG6L,KAAM,QAAU/B,EAASpF,MAAOzE,MAAO,CAAEsD,MAAO,WAAnD,SACEgG,EAAkBO,EAASpF,YAG9B,qBAAI1E,UAAU,UAAd,oBAAgCkB,EAAMoI,sBC/UhCwC,EAAS,CACrB,CACCtD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,EACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,IAEd,CACCxD,GAAI,GACJU,QAAS,WACT6C,WAAY,WACZC,YAAa,KAIFC,EAAa,SAACC,GAC1B,OAAY,OAARA,GAAwB,KAARA,IACfA,EAAMA,EAAIjE,YAKJwB,QAAQ,gBAAiB,KC1JxB0C,EAAK,uCAAG,8BAAAhG,EAAA,+EAEMkB,MAAM,oCAAoC,CAACR,OAAQ,QAFzD,cAEXuD,EAFW,gBAGEA,EAAS5C,OAHX,cAGX1E,EAHW,gCAIVA,QAJU,IAIVA,OAJU,EAIVA,EAAMsJ,IAJI,sIAAH,qDCocHC,MA5bf,YAcI,IAbHnL,EAaE,EAbFA,MACAoL,EAYE,EAZFA,YACAC,EAWE,EAXFA,oBACAC,EAUE,EAVFA,mBACAC,EASE,EATFA,aACAC,EAQE,EARFA,mBACA1L,EAOE,EAPFA,SACA2L,EAME,EANFA,eACAlL,EAKE,EALFA,qBACAmL,EAIE,EAJFA,UACA/G,EAGE,EAHFA,UACAC,EAEE,EAFFA,aACAL,EACE,EADFA,aAIA0C,oBAAS,sBAAC,4BAAAhC,EAAA,sEACQgG,IADR,OACHC,EADG,OAETO,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdO,UAAWT,OAJH,2CAMP,CAACE,EAAYO,YAEhB,IAAMC,EAAe,uCAAG,wEAAA3G,EAAA,yDACvBsG,EAAa,WAE0B,YAAnCvL,EAAM6L,yBAHa,mFAetB/L,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6L,yBAA0B,eAGvBC,GAAoB,EACpBC,EArBkB,eAqBEX,EAAYW,cAEI,qBAApCX,EAAYY,oBAvBM,kCAyBdC,EAAU,CACf9I,UAAWiI,EAAYjI,UACvBG,SAAU8H,EAAY9H,SACtB4I,YAAad,EAAY5H,MAAM+E,QAAQ,WAAY,IACnDhF,MAAO6H,EAAY7H,OAEd4I,EAAsB,CAC3BxG,OAAQ,OACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEfC,KAAMC,KAAKC,UAAU+F,IAtCF,UAwCe9F,MAAM,GAAD,OAAIC,4CAAJ,gBAAiD+F,GAxCrE,eAwCdC,EAxCc,iBAyCWA,EAAqB9F,OAzChC,QAyCd+F,EAzCc,OA0ChBD,EAAqB5F,IAClB8F,EAAgB,CACrBC,SAAUF,EAAiBE,SAC3B9I,KAAM4I,EAAiB5I,KACvBD,MAAO6I,EAAiB7I,MAAM+E,QAAQ,WAAY,IAClDhF,MAAO8I,EAAiB9I,OAEzBkI,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdoB,0BAA2B,UAC3BT,aAAcO,OAEfR,GAAoB,EACpBC,EAAY,eAAQO,KAEpBb,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdoB,0BAA2B,QAC3BX,yBAA0B,wBAC1BzD,QAAS,yBAA2BnC,KAAKC,UAAUmG,QAEpDvM,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6L,yBAA0B,YAE3BC,GAAoB,GAnED,mDAsEpBL,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdoB,0BAA2B,QAC3BX,yBAA0B,wBAC1BzD,QAAS,yBAA2BnC,KAAKC,UAAL,WAErCpG,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6L,yBAA0B,wBAC1BzC,OAAQ,wBACRhB,QAAS,yBAA2BnC,KAAKC,UAAU,KAAEkC,cAEtD0D,GAAoB,EAlFA,WAsFkB,2BAApCV,EAAYY,qBAAwF,iBAApCZ,EAAYY,sBAC/EF,GAAoB,IAGjBA,EA1FkB,wBA2FfG,EAAU,CACftD,cAAe,GAAKyC,EAAYzC,cAChCD,WAAY+D,SAASzM,EAAM0I,YAC3Bc,QAASxJ,EAAMgF,MAAMwE,QAAQ,GAC7B+C,SAAUR,EAAaQ,SACvBG,WAAY,CAAEC,WAAW,GAAD,OAAKvB,EAAYjI,UAAjB,aAA+BiI,EAAY9H,UAAYC,MAAO6H,EAAY7H,MAAO2I,YAAad,EAAY5H,MAAM+E,QAAQ,WAAY,KAC5JqE,MACC,UACAxB,EAAY/K,MADZ,eAIAL,EAAM+C,SACN,MACCsI,EAAsB,wBAA0B,KAChDA,EAAsB,KAAO,KAC7BC,EAAqB,wBAA0B,IACjDpG,cAAe2B,IAAO7G,EAAMgF,MAAMmF,WAAWrD,OAAO,yBAAyBC,WAC7E4E,UAAWP,EAAYO,WAExBjF,QAAQmG,IAAIzB,EAAYO,WAElBmB,EAAyB,CAC9BnH,OAAQ,OACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEfC,KAAMC,KAAKC,UAAU+F,IAvHD,UAyHiB9F,MAAM,GAAD,OAAIC,4CAAJ,qBAAsD0G,GAzH5E,eAyHfC,EAzHe,iBA0HaA,EAAwBzG,OA1HrC,WA0Hf0G,EA1He,QA2HjBD,EAAwBvG,GA3HP,wBA4HdyG,EAAW,CAChBC,aAAa,kCAAD,OAAoClN,EAAMmN,MACtDC,IAAK,oCACLC,cAAerN,EAAMwD,MACrB8J,gBAAiBvC,EAAW/K,EAAMuN,SAClCC,UAAWzC,EAAW/K,EAAMyN,aAC5BC,cAAeV,EAAoBW,YAAYC,GAC/CjB,WAAYvB,EAAYjI,UAAY,IAAMiI,EAAY9H,SACtDuK,YAAazC,EAAY7H,MACzBuK,YAAa1C,EAAY2C,gBACzB7I,cAAe2B,IAAO7G,EAAMgF,MAAMmF,WAAWrD,OAAO,yBAAyBC,YAExEiH,EAAW,CAChBrI,OAAQ,OACRC,QAAS,CACR,eAAgB,mCAEjBI,KAAMC,KAAKC,UAAU+G,IA7IF,UA+IO9G,MAAM,GAAD,OAAIC,4CAAJ,sBAAuD4H,GA/InE,eA+IdC,EA/Ic,QAiJFzH,IACjBE,QAAQ9H,MAAMqP,GAGXC,EAAiB,GACjB3N,IACH2N,EAAiB3N,EAAqBuH,KAAI,SAACqG,GAC1C,OAAOA,EAAEjK,UAILkK,EAAgB,CACrB9G,GAAI,GAAK0F,EAAoBW,YAAYC,GACzCjF,cAAe,GAAKqE,EAAoBW,YAAYU,cACpDN,gBAAiB3C,EAAY2C,gBAC7BD,YAAa1C,EAAY2C,gBACzBrF,WAAY,GAAKsE,EAAoBW,YAAYW,WACjD9E,QAAS,GAAKwD,EAAoBW,YAAYY,QAC9ChC,SAAU,GAAKS,EAAoBW,YAAYa,SAC/C5B,MAAOI,EAAoBW,YAAYc,MACvCvJ,cAAe8H,EAAoBW,YAAYe,cAC/CtF,OAAQ4D,EAAoBW,YAAYgB,OACxCC,iBAAkB5B,EAAoBW,YAAYkB,iBAClDC,UAAW9B,EAAoBW,YAAYoB,UAC3C9N,OAAQiN,EACRc,SAAUnI,IAAO6E,EAAUuD,MAAMnI,OAAO,cACxCoI,SAAS,EACTC,aAActI,IAAO6E,EAAUuD,MAAMnI,OAAO,uBAC5CsI,YAAavI,IAAOwI,IAAI3D,EAAUuD,MAAMK,cAAcC,MAAM,KAAK,GACjEC,aAAcpE,EAAY2C,gBAAgB0B,SAAS,KAAOhD,SAASrB,EAAY2C,gBAAgBwB,MAAM,KAAK,IAAM,EAChHxJ,OAAQ/F,EAAM+F,OACd2J,OAAQ,SACRC,MAAM,EACNhD,WAAW,GAAD,OAAKvB,EAAYjI,UAAjB,aAA+BiI,EAAY9H,UACrDC,MAAO6H,EAAY7H,MACnB2I,YAAad,EAAY5H,MAAM+E,QAAQ,WAAY,IACnDoD,UAAWP,EAAYO,UACvBiE,SAAU/I,IAAO6E,EAAUuD,MAAMnI,OAAO,UAEnC+I,EAAY,CACjBlK,OAAQ,MACRC,QAAS,CACR,eAAgB,mCAEjBI,KAAMC,KAAKC,UAAUkI,IA7LF,UA+LSjI,MAAM,GAAD,OAAIC,4CAAJ,8BAA+DyJ,GA/L7E,eA+LdC,EA/Lc,iBAgMKA,EAAexJ,OAhMpB,WAgMdyJ,EAhMc,QAiMhBD,EAAetJ,GAjMC,qBAkMf7B,EAAUQ,eAlMK,wBAmMZC,EAAc,CACnBE,cAAeX,EAAUW,cACzBC,SAAUZ,EAAUY,UAEfG,EAAc,CACnBC,OAAQ,SACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEfC,KAAMC,KAAKC,UAAUd,IA9MJ,UAgNSe,MAAM,GAAD,OAAIC,4CAAJ,qBAAsDV,GAhNpE,eAgNZW,EAhNY,iBAiNKA,EAAaC,OAjNlB,QAiNZC,EAjNY,OAkNdF,EAAaG,IAChB5B,GAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZqL,aAAa,OAEdlQ,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6L,yBAA0B,6BAG3B/L,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6L,yBAA0B,2BAE3BjH,GAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZqL,aAAa,OAEdtJ,QAAQmG,IAAI,uBACZnG,QAAQ9H,MAAM2H,IArOG,QAwOnBiF,EAAmB,CAClB/H,KAAM2H,EAAYjI,UAAY,IAAMiI,EAAY9H,SAChDU,QAASoH,EAAY2C,gBACrBkB,KAAMpI,IAAO7G,EAAMgF,MAAMmF,WAAWrD,OAAO,cAAcC,WACzDkJ,KAAMpJ,IAAO7G,EAAMgF,MAAMmF,WAAWrD,OAAO,WAAWC,aA5OpC,wBA+OnBjH,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6L,yBAA0B,wBAC1BzD,QAASnC,KAAKC,UAAU6J,QAlPN,gCAsPpBjQ,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6L,yBAA0B,wBAC1BzD,QAASnC,KAAKC,UAAU8G,QAzPL,0DA8PtBlN,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERoJ,OAAQ,wBACRhB,QAAS,yBAA2BnC,KAAKC,UAAU,KAAMkC,cAjQpC,kEAAH,qDAsQrB,OACC,sBAAKtJ,UAAU,GAAf,UACC,sBAAKA,UAAU,gBAAf,UACqC,wBAAnCkB,EAAM6L,0BACN,sBAAK/M,UAAU,qCAAf,UACC,oBAAIA,UAAU,gCAAd,sCACA,wBAAQA,UAAU,2CAA2CI,QAAS,kBAAMqF,EAAa,YAAzF,qBAMkC,SAAnCvE,EAAM6L,0BACN,qBAAK/M,UAAU,gBAAf,SACC,sBAAKA,UAAU,kBAAf,UACqC,0BAAnCkB,EAAM6L,0BACN,qBAAK/M,UAAU,yCAAf,SACC,iCACE,IADF,oHAEmH,IAClH,mBAAG6L,KAAI,cAAS3K,EAAMwD,OAAtB,SAAgCxD,EAAMwD,QAHvC,kCAGiF,SAItD,cAA5BxD,EAAMkQ,mBACN,qBAAKpR,UAAU,8BAAf,SACC,qCAAQkB,EAAMmQ,YAAd,SAGkC,iBAAnCnQ,EAAM6L,0BACN,qBAAK/M,UAAU,6BAAf,SACC,qCAAQkB,EAAMoI,QAAd,iBAQN,qBAAKtJ,UAAU,sEAAf,SACC,gCAEE,qCACC,qBAAKA,UAAU,WAAf,SACC,qBAAKA,UAAU,MAAf,SACC,gCACC,2CADD,IACoBsM,EAAYjI,UAAY,IAAMiI,EAAY9H,gBAIhE,qBAAKxE,UAAU,WAAf,SACC,qBAAKA,UAAU,MAAf,SACC,gCACC,0CACCsM,EAAY2C,uBAKf1C,GAAuBC,EACvB,qBAAKxM,UAAU,WAAf,SACC,qBAAKA,UAAU,MAAf,SACC,gCACC,yCACCuM,GAAuB,yBACvBA,GAAuBC,GAAsB,IAC7CA,GAAsB,gCAK1B,GAGD,sBAAKxM,UAAU,WAAf,UACC,qBAAKA,UAAU,WAAf,SACC,gCACC,uCACC+H,IAAO7G,EAAMgF,MAAMmF,WAAWrD,OAAO,cAAcC,gBAGtD,qBAAKjI,UAAU,WAAf,SACC,gCACC,uCACC+H,IAAO7G,EAAMgF,MAAMmF,WAAWrD,OAAO,WAAWC,mBAIpD,qBAAKjI,UAAU,WAAf,SACC,qBAAKA,UAAU,MAAf,SACC,sBAAKA,UAAU,MAAf,UACC,mDACCiM,EAAW/K,EAAMuN,gBAIrB,qBAAKzO,UAAU,WAAf,SACC,qBAAKA,UAAU,MAAf,SACC,gCACC,gDACCiM,EAAW/K,EAAMyN,oBAIrB,qBAAK3O,UAAU,WAAf,SACC,qBAAKA,UAAU,MAAf,SACC,gCACC,iDACA,mBAAG6L,KAAI,cAAS3K,EAAMwD,OAAtB,SAAgCxD,EAAMwD,kBAOP,wBAAnCxD,EAAM6L,0BACN,mCACC,qBAAK/M,UAAU,WAAf,SACC,qBAAKA,UAAU,kBAAf,SACC,qBAAKA,UAAU,WAAf,SACC,qBAAKA,UAAU,kBAAf,SACC,yBAAQmE,KAAK,SAASgF,UAAWjI,EAAMoQ,aAActR,UAAU,+CAA+CI,QAAS0M,EAAvH,UACqC,YAAnC5L,EAAM6L,0BACN,qCACC,cAAC,IAAD,CAAiB3D,MAAI,EAAC5I,KAAM6I,MAD7B,cAImC,YAAnCnI,EAAM6L,0BAA0C,8E,gBCw7B9CwE,MAz0Cf,WACC,IAAMjQ,EAAS,IAAI0I,gBAAgBwH,OAAOC,SAASC,QAEnD,EAAkC7G,oBAAS,GAA3C,mBAAOlF,EAAP,KAAkBqF,EAAlB,KACA,EAAkCH,mBAAS,CAAEsF,KAAM,IAAIvH,OAAvD,mBAAOgE,EAAP,KAAkB+E,EAAlB,KACA,EAAwC9G,mBAAS,MAAjD,mBAAO7E,EAAP,KAAsBJ,EAAtB,KACA,EAAgCiF,mBAAS,GAAzC,mBAAO3I,EAAP,KAAc0P,EAAd,KACA,EAAgB/G,oBAAS,GAAlBgH,EAAP,oBACA,EAA0BhH,mBAAS,CAClClE,KAAM,eACN2D,OAAQ,OACRvB,0BAA2B,OAC3BgE,yBAA0B,OAC1BsB,KAAM/M,EAAO4C,IAAI,SAAW,MAC5BoF,QAAS,GACTrC,OAAQ3F,EAAO4C,IAAI,OAAS,UAC5B4N,SAAUxQ,EAAO4C,IAAI,aAAe,IACpC6N,UAAWzQ,EAAO4C,IAAI,cAAgB,IACtCD,SAhBoB,CAAEb,GAAI,UAAWC,GAAI,WAgBlB/B,EAAO4C,IAAI,UAAY,UAC9C0F,WAAmC,kBAAvBtI,EAAO4C,IAAI,QAA8B,IAAM,IAC3D6C,cAAe,GACf0H,QAASnN,EAAO4C,IAAI,YAAc,MAClCQ,MAAOpD,EAAO4C,IAAI,UAAY,MAC9ByK,YAAarN,EAAO4C,IAAI,gBAAkB,MAC1CgE,UAAWH,IAAO,IAAIa,MAAQZ,OAAO,cAAcC,WACnD/B,MAAO,CACNsC,GAAI,IAEL8I,cAAc,EACdU,YAAY,EACZZ,kBAAmB,OACnBC,YAAa,GACblQ,cAAc,IAxBf,mBAAOD,EAAP,KAAcF,EAAd,KA0BA,EAAsC6J,mBAAS,CAC9CxG,UAAW,GACXG,SAAU,GACVC,MAAO,GACPC,MAAO,GACPnD,MAAO,GACPsI,cAAe,GACfoF,gBAAiB,GACjB/B,oBAAqB,OACrBQ,0BAA2B,OAC3BuE,cAAe,GACfhF,aAAc,GACdiF,mBAAezG,EACfoB,UAAW,KAbZ,mBAAOP,EAAP,KAAoBK,EAApB,KAgBA,EAA8C9B,mBAAS,IAAvD,mBAAOnF,EAAP,KAAwByM,EAAxB,KACA,EAAgCtH,mBAAS,IAAzC,mBAAOrJ,EAAP,KAAiB4Q,EAAjB,KACA,EAAwDvH,mBAAS,MAAjE,oBAAOpJ,GAAP,MAA6B4Q,GAA7B,MACA,GAA8BxH,mBAAS,WAAvC,qBAAOxL,GAAP,MAAgBiT,GAAhB,MACA,GAA8BzH,mBAAS,WAAvC,qBAAOvL,GAAP,MAAgBkG,GAAhB,MACA,GAAkCqF,mBAAS,WAA3C,qBAAOtL,GAAP,MAAkBkN,GAAlB,MACA,GAAsD5B,oBAAS,GAA/D,qBAAO0B,GAAP,MAA4BgG,GAA5B,MACA,GAAoD1H,oBAAS,GAA7D,qBAAO2B,GAAP,MAA2BgG,GAA3B,MACA,GAAsC3H,mBAAS,IAA/C,qBAAO4H,GAAP,MAAoBC,GAApB,MACA,GAAwD7H,mBAAS,IAAjE,qBAAO8H,GAAP,MAA6BC,GAA7B,MACA,GAA0B/H,mBAAS,IAAnC,qBAAOtJ,GAAP,MAAcsR,GAAd,MACA,GAAkChI,mBAAS,IAA3C,qBAAOiI,GAAP,MAAkBC,GAAlB,MACA,GAAgClI,oBAAS,GAAzC,qBAAOmI,GAAP,MAAiBC,GAAjB,MACA,GAA0CpI,mBAAS,CAClDqI,sBAAuB,GACvBC,oBAAqB,GACrBC,eAAgB,GAChBC,eAAgB,GAChBC,eAAgB,KALjB,qBAAOC,GAAP,MAAsBC,GAAtB,MAOA,GAAkE3I,oBAAS,GAA3E,qBAAOvI,GAAP,MAAkCmR,GAAlC,MACA,GAAoD5I,oBAAS,GAA7D,qBAAOzI,GAAP,MAA2BsR,GAA3B,MACA,GAAwD7I,oBAAS,GAAjE,qBAAOxI,GAAP,MAA6BsR,GAA7B,MACA,GAA0C9I,oBAAS,GAAnD,qBAAOrI,GAAP,MAAsBrC,GAAtB,MACA,GAA8C0K,oBAAS,GAAvD,qBAAOtI,GAAP,MAAwB3B,GAAxB,MACA,GAAwDiK,oBAAS,GAAjE,qBAAOpI,GAAP,MAA6B3B,GAA7B,MACA,GAA8C+J,oBAAS,GAAvD,qBAAO+I,GAAP,MAAwBlR,GAAxB,MACA,GAA4CmI,oBAAS,GAArD,qBAAOgJ,GAAP,MAAuBC,GAAvB,MAEA,GAA4CjJ,mBAAS,MAArD,qBAAOkJ,GAAP,MAAuBC,GAAvB,MACA,GAA4BnJ,qBAA5B,qBAAO1I,GAAP,MAAe8R,GAAf,MAEA,GAAkCpJ,mBAAS,CAC1CqJ,aAAa,EACb7N,gBAAgB,EAChB6K,aAAa,EACbvJ,YAAY,EACZnB,cAAe,GACfC,SAAU,KANX,qBAAOZ,GAAP,MAAkBC,GAAlB,MASMqO,GAAa,UAAM7M,qCACnBvB,GAAiB,WACtByL,OAAO4C,OAAOC,YAAY,CAAEC,KAAM,cAAgBH,KAG7CrK,GAAWgJ,GAAUyB,MAAK,SAAClF,GAAD,OAAOA,EAAEmF,OAAF,UAActT,EAAM+F,OAApB,YAA8B/F,EAAM0I,eAMrE6K,GAAY,uCAAG,oCAAAtO,EAAA,sEAEbuO,EAAe,CACpB7N,OAAQ,MACRC,QAAS,CACR,eAAgB,oCALC,SAQIO,MAAM,GAAD,OACxBC,4CADwB,qBAE3BoN,GAVkB,cAQbtK,EARa,gBAYAA,EAAS5C,OAZT,OAYb1E,EAZa,OAafsH,EAAS1C,IACNiN,EAAe7R,EAAK8R,MAAML,MAAK,SAAAC,GAAI,MAAkB,QAAdA,EAAKA,QAC9CK,EAAa,GAEhBA,OADoBpJ,IAAjBkJ,EACU7R,EAAK8R,MAAME,QAAO,SAAAN,GAAI,MAAkB,QAAdA,EAAKA,QAG/B1R,EAAK8R,MAEnB7B,GAAa8B,IAEbjN,QAAQ9H,MAAMsK,GAxBI,kDA2BnBxC,QAAQ9H,MAAMqH,KAAKC,UAAL,OA3BK,0DAAH,qDA+BlBe,qBAAU,WACT,IAAM4M,EAAajC,GAAUyB,MAAK,SAAClF,GAAD,OAAOA,EAAEmF,OAAF,UAActT,EAAM+F,OAApB,YAA8B/F,EAAM0I,eAC7E,QAAmB6B,IAAfsJ,EAA0B,CAC7B,IACM9K,GADO,IAAIrB,MACKoM,eAAe,QAAS,CAAE/K,SAAQ,OAAE8K,QAAF,IAAEA,OAAF,EAAEA,EAAY9K,WACtE0H,GAAa,SAAC/E,GAAD,mBAAC,eACVA,GADS,IAEZuD,KAAMlG,UAGN,CAAC6I,GAAWlG,EAAUuD,OAEzB,IAAM8E,GAAW,SAAC/P,GACjB,OAAOyI,SAASzI,EAAQuL,MAAM,KAAK,KAG9ByE,GAAgB,SAAC1T,GACtB,OAAOA,EAAS2T,MAAK,SAAUhP,EAAGiP,GACjC,OAAIH,GAAS9O,EAAErC,OAASmR,GAASG,EAAEtR,QAC1B,EAELmR,GAAS9O,EAAErC,OAASmR,GAASG,EAAEtR,OAC3B,EAED,MAIHuR,GAAe,SAACrG,EAAasG,GAClC,IACIC,EADEtG,EAAkBD,EAEpBwG,EAAY,GACZC,EAAY,GACVC,EAAQ,aAEd,GAAIzG,EAAgB0G,cAAchF,SAAS,KAAM,CAChD,IAAMiF,EAAa3G,EAAgB0G,cAAcE,QAAQ,KACzDL,EAAYvG,EAAgB0G,cAAcG,MAAM,EAAGF,QAEnDJ,EAAYxG,EAmBb,OAjBAuG,EAAsBC,EAAU/L,QAAQiM,EAAO,IAE/CJ,EAAcS,SAAQ,SAACC,GACtB,IACIC,EAAmB,GAEvB,GAAID,EAAYrR,KAAKgR,cAAchF,SAAS,KAAM,CACjD,IAAMiF,EAAaI,EAAYrR,KAAKgR,cAAcE,QAAQ,KAC1DI,EAAmBD,EAAYrR,KAAKgR,cAAcG,MAAM,EAAGF,QAE3DK,EAAmBD,EAAYrR,KAETsR,EAAiBxM,QAAQiM,EAAO,MAC1BH,IAC5BE,EAAYO,EAAYnM,kBAGnB4L,GAGRtN,qBAAU,WACT,GAAqB,YAAjBjH,EAAM+F,OAAsB,CAC/B,IAAMiP,EAAQnO,MAASC,OAAO,cAAcC,WACtCkO,EAAYpO,IAAO,cAAcC,OAAO,cAAcC,WAC5DjH,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERgH,UAAWgO,EAAQC,EAAYD,EAAQC,UAIvC,CAACjV,EAAM+F,SAEVkB,qBAAU,WAAM,4CACf,gEAAAhC,EAAA,sEAEQiQ,EAAc,CACnBC,SAAS,GAAD,OAAK/O,sBACbgP,SAAS,GAAD,OAAKhP,mBAGFA,kCACNiP,EAAYC,MAAWC,QAAQtP,KAAKC,UAAUgP,GADxC9O,mCAC2DW,WACjEf,EAAO,CAAEpE,KAAMyT,GACfG,EAAc,CACnB7P,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBE,OAAQ9F,EAAM+F,QAEfC,KAAMC,KAAKC,UAAUF,IAhBxB,SAkB6BG,MAAM,GAAD,OAC5BC,4CAD4B,mBAE/BoP,GApBH,cAkBQC,EAlBR,iBAsByBA,EAAanP,OAtBtC,WAsBQoP,EAtBR,QAuBMD,EAAajP,GAvBnB,wBAwBG1G,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6F,cAAe6P,EAASjN,kBAEnBkN,EAAqB,CAC1BhQ,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBE,OAAQ9F,EAAM+F,OACdF,cAAe6P,EAASjN,aACxBmN,WAAY5V,EAAM0I,aAlCvB,UAqCoCvC,MAAM,GAAD,OAClCC,4CADkC,uBAErCuP,GAvCJ,eAqCSE,EArCT,iBAyCiCA,EAAmBvP,OAzCpD,WAyCSwP,EAzCT,QA2COD,EAAmBrP,GA3C1B,oBA6CUuP,EA7CV,YA6CoCD,EAAgBxV,UAE1C0V,EAA4BD,EAAoBnC,QAAO,SAACzF,GAC7D,MAAqB,WAAjBnO,EAAM+F,QAA4C,MAArB/F,EAAM0I,YAGR,IADFyF,EAAE1K,KAAKgR,cAAclM,QAAQ,aAAc,IAAIiI,OAAO,0BAI3D,IAAhBrC,EAAE8H,eAHT,KAMCnO,KAAI,SAACqG,GACP,OAAOA,EAAE1K,QACPwQ,MAAK,SAAChP,EAAGiP,GACX,OAAIjP,EAAIiP,EAAU,EACdjP,EAAIiP,GAAW,EACZ,KAGa,YAAjBlU,EAAM+F,QAAyC,WAAjB/F,EAAM+F,QAAwC,WAAjB/F,EAAM+F,QAAwC,YAAjB/F,EAAM+F,QAAyC,YAAjB/F,EAAM+F,QAAyC,WAAjB/F,EAAM+F,OAjElK,wBAkEWmQ,EAAiB,CACtBvQ,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBE,OAAQ9F,EAAM+F,OACdF,cAAe6P,EAASjN,aACxBmN,WAAY5V,EAAM0I,aAxEzB,UA2EmCvC,MAAM,GAAD,OAC/BC,4CAD+B,uBAElC8P,GA7EN,eA2EWC,EA3EX,iBA+E+BA,EAAgB7P,OA/E/C,QA+EW8P,EA/EX,OAgFKC,EAAoBD,EAAY9V,SAASsT,QAAO,SAACzF,GAAQ,OAAuB,IAAhBA,EAAE8H,aAhFvE,QAkFU1E,EAAc,GACd+E,EAAW,GACXC,EAAmB,GAEzBP,EAA0BnB,SAAQ,SAAC7Q,GAClC,IAAMwS,EAAgBrC,GAAanQ,EAAS8R,EAAgBxV,UAC5D,GAAsB,KAAlBkW,EAAsB,CACzB,IACMC,EAAgB,CACrB9N,cAAe6N,EACf/S,KAAMO,EACN0S,MAJoB3C,GAAS/P,IAM9BuS,EAAiBI,KAAKF,OAIG,CAC1BnW,SAAUiW,GAGQjW,SAASuU,SAAQ,SAAC+B,GACpC,IAAMC,EAAc,CACnB3S,MAAO0S,EAAKjO,cACZ/F,MAAOgU,EAAKnT,MAEb8N,EAAYoF,KAAKE,MAIlBrF,GAAeD,GACfG,GAAwBoE,EAAgBxV,UAEnB,YAAjBN,EAAM+F,QAAyC,WAAjB/F,EAAM+F,QAAwC,WAAjB/F,EAAM+F,QAAwC,YAAjB/F,EAAM+F,QAAyC,YAAjB/F,EAAM+F,QAAyC,WAAjB/F,EAAM+F,QAC7JsQ,EAAkBxB,SAAQ,SAAC+B,GAC1B,IAAMC,EAAc,CACnB3S,MAAO0S,EAAKjO,cACZ/F,MAAOgU,EAAKnT,MAEb6S,EAASK,KAAKE,MAIVC,EAAsB,CAC3B,CACClU,MAAO,cACPiB,QAAS0N,GAEV,CACC3O,MAAO,WACPiB,QAASmQ,GAAcsC,KAGzBpF,EAAY4F,GAvIhB,0DA2IEpQ,QAAQ9H,MAAMqH,KAAKC,UAAL,OA3IhB,2DADe,sBA+IfqN,KA/IgB,WAAD,wBAgJfwD,GACA,IAAMC,EAAe,GACrBA,EAAaL,KAAK,CACjBzS,MAAO,eACPtB,MAAO,iBAER,IAAK,IAAImF,EAAQ,EAAGA,EAAQ,GAAIA,IAAS,CACxC,IAAMkP,EAAU,CACf/S,MAAO,GAAK6D,EACZnF,MAAO,GAAKmF,GAEbiP,EAAaL,KAAKM,GAEnBtF,GAASqF,KACP,IASH/P,qBAAU,WACT,GAA4B,KAAxBjH,EAAM6F,cAAV,CAGA,IAAM2C,EAAe,uCAAG,4CAAAvD,EAAA,6DACvBnF,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6H,0BAA2B,eAHL,SAOhBc,EAAgB,GAAKyC,EAAYzC,cACjCuO,EAAiBrQ,IAAO7G,EAAMgH,WAClCF,OAAO,cACPC,WAEIoQ,EAAsB,CAC3BxR,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBE,OAAQ9F,EAAM+F,OACdF,cAAe7F,EAAM6F,cACrB+P,WAAY5V,EAAM0I,aAlBE,SAsBavC,MAAM,GAAD,OACpCC,4CADoC,2BACYpG,EAAM+F,OADlB,sBACsC/F,EAAM0I,WAD5C,mCACiFC,EADjF,sBAC4GuO,EAD5G,oBACsIA,GAC7KC,GAxBqB,cAsBhBC,EAtBgB,iBA2BSA,EAAqB9Q,OA3B9B,QA2BhB+Q,EA3BgB,OA4BlBD,EAAqB5Q,IAClB8Q,EAAQD,EAAiBE,SAASzP,KAAI,SAAC0P,GAC5C,IAAMC,EAAe,GACrBD,EAAKC,aAAa5C,SAAQ,SAAC/J,GAC1B,IAAM4M,EAAqB5M,EACrB9C,EAAU,IAAIN,KACnBgQ,EAAmBxS,eAClBoF,mBAAmB,QAAS,CAC7BE,KAAM,UACNC,OAAQ,YAETiN,EAAmB1P,QAAUA,EAC7ByP,EAAad,KAAKe,MAGnB,IAAMC,EAAkB,GACxBN,EAAiBE,SAAS1C,SAAQ,SAAC1G,GAClCwJ,EAAgBhB,KAAKxI,EAAEsJ,aAAa,OAGrC,IAAMG,EAAyBD,EAAgBE,QAAO,SAACC,EAAKC,GAE3D,OADAD,EAAG,OAACC,QAAD,IAACA,OAAD,EAACA,EAAK7S,iBAAmB4S,EAAG,OAACC,QAAD,IAACA,OAAD,EAACA,EAAK7S,gBAAkB,EAChD4S,IACL,IAMCE,EAAa,CAChBC,QAAsC,IALbN,EAAgB/D,QAAO,SAACmE,GACjD,OAAOH,EAAsB,OAACG,QAAD,IAACA,OAAD,EAACA,EAAK7S,kBAIRnB,OAC3BmU,aAAcP,EAAgB5T,OAAS,GAYxC,MATmB,CAClByF,QAASgO,EAAKlQ,GACd6Q,UAAWX,EAAK/T,KAChB2U,iBAAkBZ,EAAKY,iBACvBC,eAAgBb,EAAKa,eACrBC,WAAY,GACZb,aAAcA,EACdc,kBAAmBP,MAKfQ,EAAmB,GACzBlB,EAAMzC,SAAQ,SAAC2C,GACd,IAAMiB,EAAa,YAAO7N,GACpBpG,EAAkB,GAClB8T,EAAaG,EAAc3Q,KAAI,SAAC9C,GAAW,IAAD,IACzC0T,EAAY,eAAQ1T,GACpB2T,EAAYD,EAAa1Q,QAAQyH,SAAS,MAC1CmJ,EAAWnM,SAChBiM,EAAa1Q,QAAQuH,MAAM,KAAK,GAAGA,MAAM,KAAK,IAEzCsJ,EACLF,GAA0B,KAAbC,EAAkBA,EAAW,GAAKA,EAC1CE,EAAUrM,SACfiM,EAAa1Q,QAAQuH,MAAM,KAAK,GAAGA,MAAM,KAAK,IAEzCwJ,EAAalS,IAAO7G,EAAMgH,WAC9BF,OAAO,cACPC,WACI7B,EAAgB2B,IAAOkS,GAC3B5R,IAAI0R,EAAO,SACX1R,IAAI2R,EAAS,WACbhS,OAAO,yBACHkS,EAAcnS,IAAO3B,GACzBiC,IAAI,GAAI,WACRL,OAAO,yBACT4R,EAAaxT,cAAgBA,EAC7BwT,EAAaM,YAAcA,EAC3B,IAAM7O,EAAYtD,IAAOkS,GACvB5R,IAAI0R,EAAO,SACX1R,IAAI2R,EAAS,WACb/R,WACF2R,EAAavO,UAAYA,EACzBuO,EAAaO,UAAW,EACxB,IACIC,EADAC,GAAY,EAGVC,EAAUvS,MAASC,OAAO,cAC1BuS,EAAiBxS,IAAO6E,EAAUuD,MAAMnI,OAAO,yBAC/CwS,EAAezS,IAAO6E,EAAUuD,MAAM9H,IAHzB,EAG2C,SAASL,OAAO,yBACxEyS,EAAoB1S,IAAO7G,EAAMgH,WAAWF,OAAO,cACnD8H,EAAgB,UAAG4I,EAAKC,aAAa,UAArB,aAAG,EAAsBvS,cACzCsU,EAAiB,UAAwBhC,EAAKa,eA7HnCR,QAAO,SAAC5S,EAAGiP,GAChC,IAAIuF,EACJ,OADiBxU,GAAKiP,IAAuCuF,EAApCxU,EAAEC,cAAgBgP,EAAEhP,cAA0BD,EAAciP,GAC9EuF,IACL,WA0HyB,aAAG,EAA2CvU,cAE/DwU,EAAqB7S,IAAO+H,GAAkB+K,KAAK9S,IAAOwS,GAAiB,SAC3EO,EAAuB/S,IAAOsD,GAAWwP,KAAK9S,IAAOwS,GAAiB,SAExED,IAAYG,GAEX/B,EAAKe,kBAAkBL,eAEtBV,EAAKe,kBAAkBN,SACtB9N,EAAYtD,IAAOwS,GAAgBtS,aACtCmS,EAAiBrS,IAAO2S,GAAmBzS,YAIxCyQ,EAAKe,kBAAkBN,SACvB9N,EAAYtD,IAAOwS,GAAgBtS,aACtCmS,EAAiBrS,IAAO+H,GAAkB7H,aAKxCyQ,EAAKe,kBAAkBL,eAEvBtJ,IAAqB4K,IACpBE,GA/BY,GA+B0BvP,EAAYtD,IAAOwS,GAAgBtS,WAE5EmS,EAAiBrS,IAAO+H,GAAkB7H,WAEtC6S,GAnCW,IAoCdV,EAAiBrS,IAAOyS,GAAcvS,aAKrC6H,IAAqB4K,GACpBrP,EAAYtD,IAAOwS,GAAgBtS,YAAcoD,EAAYtD,IAAO+H,GAAkB7H,aACzFmS,EAAiBrS,IAAOwS,GAAgBtS,cAK3CmS,EAAiBrS,IAAO7G,EAAMgH,WAAWG,IAAI,KAAM,SAASA,IAAI,KAAM,WAAWJ,WAGlFyQ,EAAKa,eAAexD,SAAQ,SAACgF,GAC5BV,GAEEtS,IAAOsD,GAAW2P,UACjBD,EAAkB3U,cAClB2U,EAAkBb,iBAClBzO,EACA,OACIJ,GAAa+O,MAGrB1B,EAAKY,iBAAiBvD,SAAQ,SAACkF,GAC9BZ,IAEEtS,IAAOsD,GAAW2P,UAClBC,EAAoBrL,cACpBqL,EAAoBC,iBACpBzP,EACA,SAGH,IAAM0P,EAAmBzC,EAAKC,aAAapE,MAAK,SAACvI,GAAD,OAC/CjE,IAAOsD,GAAW2P,UACjBhP,EAAY5F,cACZ4F,EAAYkO,iBACZzO,EACA,SAaF,OATAmO,EAAa5N,iBACSP,IAArB0P,EAAiC,GAAKA,EAEvCvB,EAAaS,UAAYe,QAAQf,QAER5O,IAArB0P,GAAkCd,GACrC3U,EAAgBmS,KAAK+B,GAGfA,KAGFyB,EAAa,CAClB3Q,QAASgO,EAAKhO,QACd2O,UAAWX,EAAKW,UAChBC,iBAAkBZ,EAAKY,iBACvBC,eAAgBb,EAAKa,eACrBC,WAAYA,EACZ9T,gBAAiBA,GAElBgU,EAAiB7B,KAAKwD,MAGjBC,EAA4B,GAClC5B,EAAiB3D,SAAQ,SAAC2C,GACzBA,EAAKhT,gBAAgBqQ,SAAQ,SAAC7P,GAC7B,IAAMqV,EAAeD,EAA0B/G,MAC9C,SAACiH,GAAD,OAAoBA,EAAehT,KAAOtC,EAAMsC,MAEjD,QAAqBiD,IAAjB8P,EAA4B,CAC/B,IAAM3B,EAAe2B,EACrB3B,EAAalP,QAAQmN,KAAKa,EAAKhO,SAC/BkP,EAAa6B,YACP,CACN,IAAM7B,EAAY,eAAQ1T,GAC1B0T,EAAalP,QAAU,CAACgO,EAAKhO,SAC7BkP,EAAa6B,MAAQ,EACrBH,EAA0BzD,KAAK+B,UAI5B8B,EAAeJ,EAA0BnG,MAAK,SAAChP,EAAGiP,GAAJ,OACnDjP,EAAEC,cAAgBgP,EAAEhP,cACjB,EACAgP,EAAEhP,cAAgBD,EAAEC,eAClB,EACD,KAGL4E,GAAa,GACbmH,EAAmBuJ,GAEnB1a,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6H,0BAA2B,cAG5B/H,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAER6H,0BAA2B,gBAC3BO,QAASnC,KAAKC,UAAUmR,QA1PJ,kDA8PtBvX,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERoJ,OAAQ,QACRvB,0BAA2B,QAC3BO,QAAS,sBAAwBnC,KAAKC,UAAU,KAAMkC,cAlQjC,0DAAH,qDAsQa,KAA9BgD,EAAYzC,eAAyBgI,GAAOnI,OAC9C,CACFxI,EAAMgH,UACNhH,EAAM0I,WACN1I,EAAM+F,OACN/F,EAAM6F,cACNuF,EAAYzC,gBAIb,IAAMpE,GAAe,SAACkW,GACrB,OAAQA,GACP,IAAK,eACJ3a,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERyF,KAAM,eACNT,MAAO,CACNsC,GAAI,IAELuE,yBAA0B,YAE3B,MACD,IAAK,UACJ/L,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERyF,KAAM,eACNT,MAAO,CACNsC,GAAI,IAELuE,yBAA0B,cAQ9B,GAMI6O,cALHla,GADD,GACCA,QAEAC,IAHD,GAECka,MAFD,GAGCla,UACaE,GAJd,GAICia,UAAaja,OACbD,GALD,GAKCA,aAGDuG,qBAAU,WAIT,OAHA4T,KAEAvK,OAAOwK,iBAAiB,SAAUD,IAC3B,kBAAMvK,OAAOyK,oBAAoB,SAAUF,OAChD,IAEH,IAAMA,GAAmB,WACxB,IAAM7Z,EAAQsP,OAAO0K,WACrBtK,EAAe1P,IAGVia,GAAa,SAACnN,EAAasG,GAChC,IAAMrG,EAAkBD,EACpBuG,EAAsB,GACtBE,EAAY,GACVC,EAAQ,aAEd,GAAIzG,EAAgB0G,cAAchF,SAAS,KAAM,CAChD,IAAMiF,EAAa3G,EAAgB0G,cAAcE,QAAQ,KACnDL,EAAYvG,EAAgB0G,cAAcG,MAAM,EAAGF,GACzDL,EAAsBC,EAAU/L,QAAQiM,EAAO,IAehD,OAZAJ,EAAcS,SAAQ,SAACC,GACtB,GAAIA,EAAYrR,KAAKgR,cAAchF,SAAS,KAAM,CACjD,IAAMyL,EAAapG,EAAYrR,KAAKgR,cAAcE,QAAQ,KAIpDwG,EAHqBrG,EAAYrR,KACrCgR,cACAG,MAAM,EAAGsG,GACkC3S,QAAQiM,EAAO,IACxDH,IAAwB8G,IAC3B5G,EAAYO,EAAYnM,mBAIpB4L,GAGF1T,GAAY,uCAAG,WAAOe,GAAP,iCAAAqD,EAAA,yDACpBJ,KACI8D,EAAgB/G,EAAKoC,QAAQE,MAC7B6J,EAAkBnM,EAAKoC,QAAQpB,MAEnC6I,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdjI,UAAWvB,EAAKuB,UAChBG,SAAU1B,EAAK0B,SACfC,MAAO3B,EAAK2B,MACZC,MAAO5B,EAAK4B,MAAM+E,QAAQ,WAAY,IACtClI,MAAOuB,EAAKvB,MAAMuC,MAClB+F,cAAeA,EACfoF,gBAAiBA,EACjBhL,SAAU/C,EAAM+C,cAGjBjD,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAGRyF,KAAM,oBAGiC,YAApC2F,EAAYY,oBAvBI,iEA2BfO,EAAW,MACfd,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdY,oBAAqB,eAEhBoP,EAAuB,CAC5BzV,OAAQ,MACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,SArCG,UAwCiBI,MAAM,GAAD,OACrCC,4CADqC,2CAC2BxE,EAAK4B,MAAM+E,QAAQ,WAAY,KAClG6S,GA1CkB,eAwCbC,EAxCa,iBA4CaA,EAAsB/U,OA5CnC,eA4CbgV,EA5Ca,OA6CfD,EAAsB7U,IAEzBuL,IAAY,GAGXnQ,EAAKuB,UAAY,IAAMvB,EAAK0B,WAC5BgY,EAAkBC,QAAQ,GAAG9X,MAC7B6X,EAAkBC,QAAQ,GAAGhY,QAAU3B,EAAK2B,OAC5C+X,EAAkBC,QAAQ,GAAG/X,MAAM+E,QAAQ,WAAY,MAAQ3G,EAAK4B,MAAM+E,QAAQ,WAAY,KAE9FkD,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdY,oBAAqB,eACrBD,aAAcuP,EAAkBC,QAAQ,GACxCxK,cAAeuK,EAAkBC,aAElChP,EAAW+O,EAAkBC,QAAQ,GAAGhP,WAExCd,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdY,oBAAqB,yBACrBD,aAAcuP,EAAkBC,QAAQ,GACxCxK,cAAeuK,EAAkBC,aAElChP,EAAW+O,EAAkBC,QAAQ,GAAGhP,SACxC3H,IAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZqO,aAAa,UAIfvH,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdY,oBAAqB,mBACrB+E,cAAe,QAEhBnM,IAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZqO,aAAa,QAGT5N,EAAc,CACnBW,OAAQ/F,EAAM+F,OACdtC,KAAM7B,EAAKuB,UAAY,IAAMvB,EAAK0B,SAClC4I,YAAatK,EAAK4B,MAAM+E,QAAQ,WAAY,IAC5ChF,MAAO3B,EAAK2B,MACZS,QAAS+J,EACTxB,cAAuBhC,IAAbgC,EAAyB,MAAQA,EAC3CiP,SAAU3U,MAASC,OAAO,yBAAyBC,WACnDtB,KAAM,EACN1C,SAAU/C,EAAM+C,UAEX2C,EAAc,CACnBC,OAAQ,OACRC,QAAS,CACR,eAAgB,kCAChBC,cAAe7F,EAAM6F,cACrBC,OAAQ9F,EAAM+F,QAEfC,KAAMC,KAAKC,UAAUd,IAxGH,UA0GQe,MAAM,GAAD,OAC5BC,4CAD4B,qBAE/BV,GA5GkB,eA0GbW,EA1Ga,iBA8GIA,EAAaC,OA9GjB,QA8GbC,EA9Ga,OA+GfF,EAAaG,GAChB5B,IAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZqO,aAAa,EACb7N,gBAAgB,EAChBG,cAAeiB,EAASjB,cACxBC,SAAUgB,EAAShB,eAGpBX,IAAa,SAACD,GAAD,mBAAC,eACVA,GADS,IAEZqO,aAAa,EACb7N,gBAAgB,OAEjBuB,QAAQmG,IAAI,0BACZnG,QAAQ9H,MAAM2H,IA9HI,kDAiInBzG,GAAS,SAACE,GAAD,mBAAC,eACNA,GADK,IAERoJ,OAAQ,QACRhB,QAAS,yBAA2BnC,KAAKC,UAAU,KAAMkC,cApIvC,0DAAH,sDAmLlBnB,qBAAU,YArBkB,WAAO,IAAD,YAE3BjD,EACkB6O,GAAc,OAAGA,SAAH,IAAGA,IAAH,UAAGA,GAAgBjQ,aAAnB,aAAG,EAAuB6R,cAAclM,QAAQ,aAAc,IAAIiI,OAAO,yBAA2B,GADpIxM,EAEgB6O,GAAc,OAAGA,SAAH,IAAGA,IAAH,UAAGA,GAAgBjQ,aAAnB,aAAG,EAAuB6R,cAAclM,QAAQ,aAAc,IAAIiI,OAAO,uBAAyB,GAFhIxM,EAGW6O,GAAc,OAAGA,SAAH,IAAGA,IAAH,UAAGA,GAAgBjQ,aAAnB,aAAG,EAAuB6R,cAAclM,QAAQ,aAAc,IAAIiI,OAAO,kBAAoB,GAHtHxM,EAIW6O,GAAc,OAAGA,SAAH,IAAGA,IAAH,UAAGA,GAAgBjQ,aAAnB,aAAG,EAAuB6R,cAAclM,QAAQ,aAAc,IAAIiI,OAAO,kBAAoB,GAJtHxM,EAKW6O,GAAc,OAAGA,SAAH,IAAGA,IAAH,UAAGA,GAAgBjQ,aAAnB,aAAG,EAAuB6R,cAAclM,QAAQ,aAAc,IAAIiI,OAAO,kBAAoB,GALtHxM,EAMQ6O,GAAc,OAAGA,SAAH,IAAGA,IAAH,UAAGA,GAAgBjQ,aAAnB,aAAG,EAAuB6R,cAAclM,QAAQ,aAAc,IAAIiI,OAAO,eAAiB,GAGtH8B,IAAiB,SAACD,GAAD,mBAAC,eACdA,GADa,IAEhBL,sBAAyD,IAAlChO,EACvBiO,oBAAqD,IAAhCjO,EACrBkO,eAA2C,IAA3BlO,EAChBmO,eAA2C,IAA3BnO,EAChBoO,eAA2C,IAA3BpO,EAChByX,YAAqC,IAAxBzX,OAId0X,KACE,CAAC7I,GAAgBvS,IAEpB2G,qBAAU,WAIR,IAAI0U,EAFDpb,KAIC8R,GAAcJ,qBAEjB0J,EAAiCpb,GAAqBqT,QAAO,SAACzF,GAAQ,MAAmB,sBAAZA,EAAEjK,SAC/EiN,GAAwBwK,IAEdtJ,GAAcH,gBAAkBG,GAAcL,uBAExD2J,EAAiCpb,GAAqBqT,QAAO,SAACzF,GAAQ,MAAmB,kBAAZA,EAAEjK,OAAyC,sBAAZiK,EAAEjK,SAC9GiN,GAAwBwK,IAEdtJ,GAAcF,gBAAkBE,GAAcD,eAExDjB,GAAwB5Q,IAGxB4Q,GAAwB,OAGxB,CAAC0B,GAAgBR,KAEpB,IAAMuJ,GAAuB,CAC5B,CACC1X,MAAO,oBACPtB,MACC,sBAAK9D,UAAU,gBAAf,UAEC,qBAAKA,UAAU,SAAf,SACC,uDAED,qBAAKA,UAAU,QACd+c,YAAa,kBAAMpJ,IAAwB,IAC3CqJ,aAAc,kBAAMrJ,IAAwB,IAC5C1T,MAAO,CAAEK,OAAQ,WAHlB,SAKC,cAAC,IAAD,CAAiBE,KAAMyc,IACtB7c,QAAS,SAACC,GAAQO,IAAmB,YAM1C,CACCwE,MAAO,gBACPtB,MACC,sBAAK9D,UAAU,gBAAf,UACC,qBAAKA,UAAU,SAAf,SACC,mDAED,qBAAKA,UAAU,QACd+c,YAAa,kBAAMrJ,IAAsB,IACzCsJ,aAAc,kBAAMtJ,IAAsB,IAC1CzT,MAAO,CAAEK,OAAQ,WAHlB,SAKC,cAAC,IAAD,CAAiBE,KAAMyc,IACtB7c,QAAS,SAACC,GAAD,OAAOF,IAAiB,YAMtC,CACCiF,MAAO,oBACPtB,MACC,sBAAK9D,UAAU,gBAAf,UACC,qBAAKA,UAAU,SAAf,SACC,uDAED,qBAAKA,UAAU,QACd+c,YAAa,kBAAMtJ,IAA6B,IAChDuJ,aAAc,kBAAMvJ,IAA6B,IACjDxT,MAAO,CAAEK,OAAQ,WAHlB,SAKC,cAAC,IAAD,CAAiBE,KAAMyc,IACtB7c,QAAS,SAACC,GAAD,OAAOS,IAAwB,aAOxCoc,GAA8B,CACnC,CACC9X,MAAO,oBACPtB,MACC,sBAAK9D,UAAU,gBAAf,UAEC,qBAAKA,UAAU,SAAf,SACC,uDAED,qBAAKA,UAAU,QACd+c,YAAa,kBAAMpJ,IAAwB,IAC3CqJ,aAAc,kBAAMrJ,IAAwB,IAC5C1T,MAAO,CAAEK,OAAQ,WAHlB,SAKC,cAAC,IAAD,CAAiBE,KAAMyc,IACtB7c,QAAS,SAACC,GAAQO,IAAmB,YAM1C,CACCwE,MAAO,gBACPtB,MACC,sBAAK9D,UAAU,gBAAf,UACC,qBAAKA,UAAU,SAAf,SACC,mDAED,qBAAKA,UAAU,QACd+c,YAAa,kBAAMrJ,IAAsB,IACzCsJ,aAAc,kBAAMtJ,IAAsB,IAC1CzT,MAAO,CAAEK,OAAQ,WAHlB,SAKC,cAAC,IAAD,CAAiBE,KAAMyc,IACtB7c,QAAS,SAACC,GAAD,OAAOF,IAAiB,aAOjCgd,GAAyB,CAC9B,CACC/X,MAAO,oBACPtB,MACC,sBAAK9D,UAAU,gBAAf,UAEC,qBAAKA,UAAU,SAAf,SACC,uDAED,qBAAKA,UAAU,QACd+c,YAAa,kBAAMpJ,IAAwB,IAC3CqJ,aAAc,kBAAMrJ,IAAwB,IAC5C1T,MAAO,CAAEK,OAAQ,WAHlB,SAKC,cAAC,IAAD,CAAiBE,KAAMyc,IACtB7c,QAAS,SAACC,GAAD,OAAOO,IAAmB,aAmNzC,OA5MAuH,qBAAU,WAET,IAAIiV,EACAC,EACAC,EAEA7b,KACH2b,EAAW3b,GAAqB8S,MAAK,SAAAlF,GAAC,MAAgB,kBAAZA,EAAEjK,SAC5CiY,EAAa5b,GAAqB8S,MAAK,SAAAlF,GAAC,MAAgB,sBAAZA,EAAEjK,SAC9CkY,EAAgB7b,GAAqB8S,MAAK,SAAAlF,GAAC,MAAgB,sBAAZA,EAAEjK,UAE9CmO,GAAcJ,qBAEjBc,GAAUiJ,SAEYzR,IAAlB6R,GAA6B9K,IAAsB,QAEpC/G,IAAf4R,GACH9K,IAAuB,GACvB2K,GAA4B,GAAGpZ,MAAQoZ,GAA4B,GAAGpZ,QAEtEyO,IAAuB,GACvB8K,EAAWvZ,MAAQ,2DAEH2H,IAAb2R,GACHtJ,IAAkB,GAClBoJ,GAA4B,GAAGpZ,MAAQoZ,GAA4B,GAAGpZ,QAEtEgQ,IAAkB,GAClBsJ,EAAStZ,MAAQ,mDAGRyP,GAAcF,gBAAkBE,GAAcD,gBAExDW,GAAU6I,SAESrR,IAAf4R,GACH9K,IAAuB,GACvBuK,GAAqB,GAAGhZ,MAAQgZ,GAAqB,GAAGhZ,QAExDyO,IAAuB,GACvB8K,EAAWvZ,MAAQ,2DAEH2H,IAAb2R,GACHtJ,IAAkB,GAClBgJ,GAAqB,GAAGhZ,MAAQgZ,GAAqB,GAAGhZ,QAExDgQ,IAAkB,GAClBsJ,EAAStZ,MAAQ,uDAEI2H,IAAlB6R,GACH9K,IAAsB,GACtBsK,GAAqB,GAAGhZ,MAAQgZ,GAAqB,GAAGhZ,QAExD0O,IAAsB,GACtB8K,EAAcxZ,MAAQ,uDAIfyP,GAAcH,gBAAkBG,GAAcL,uBAAyBK,GAAcoJ,aAE7F1I,GAAUkJ,SAEO1R,IAAb2R,GAAwBtJ,IAAkB,QAExBrI,IAAlB6R,GAA6B9K,IAAsB,QAEpC/G,IAAf4R,GACH9K,IAAuB,GACvB4K,GAAuB,GAAGrZ,MAAQqZ,GAAuB,GAAGrZ,QAE5DyO,IAAuB,GACvB8K,EAAWvZ,MAAQ,wDAIpByO,IAAuB,GACvBC,IAAsB,GACtBsB,IAAkB,GAClBG,GAAU,OAET,CACFF,GACAtS,GACA8R,GACAd,KAGDtK,qBAAU,WACT,IAAIoV,EAAmBjR,EAAYzC,cAC/B2T,EAAqBlR,EAAY2C,gBAGrC,GAAIsE,GAAcF,gBAAkBQ,GAAgB,CACnD,IAAM4J,EAAqB1J,GAAejQ,MAAM4Z,MAAM,UAChDC,EAAoCC,WAAWH,EAAmB,IAJjD,GAMvBF,EAAmBpB,GAAW,kDAAD,OACsBwB,GAClDhL,IAED6K,EAAkB,yDAAqDG,GAGxE,GAAIpK,GAAcD,gBAAkBO,GAAgB,CACnD,IAAMgK,EAAqB9J,GAAejQ,MAAM4Z,MAAM,UAChDI,EAAoCF,WAAWC,EAAmB,IAfjD,GAiBvBN,EAAmBpB,GAAW,kDAAD,OACsB2B,GAClDnL,IAED6K,EAAkB,yDAAqDM,GAGxE,GAAIvK,GAAcJ,qBAAuBU,GAAgB,CAExD,IAAMkK,EAA0BhK,GAAejQ,MAAM4Z,MAAM,UACrDM,EAA4BJ,WAAWG,EAAwB,IA3B9C,GA6BvBR,EAAmBpB,GAAW,4CAAD,OACgB6B,EADhB,MAE5BrL,IAED6K,EAAkB,mDAA+CQ,EAA/C,MAGnBrR,GAAe,SAACL,GAAD,mBAAC,eACZA,GADW,IAEdzC,cAAe0T,EACftO,gBAAiBuO,SAEhB,CACFxK,GACA1G,EAAY2C,gBACZ3C,EAAYzC,cACZgK,GACAE,GACAR,KAGDpL,qBAAU,WACT,IAAI0U,EACAta,KACHsa,EAAiCpb,GAAqBqT,QAAO,SAACzF,GAAQ,MAAmB,sBAAZA,EAAEjK,SAC/EiN,GAAwBwK,GACxBtK,IAAuB,IAEpB/P,KACHqa,EAAiCpb,GAAqBqT,QAAO,SAACzF,GAAQ,MAAmB,kBAAZA,EAAEjK,SAC/EiN,GAAwBwK,GACxB/I,IAAkB,IAEfrR,KACHoa,EAAiCpb,GAAqBqT,QAAO,SAACzF,GAAQ,MAAmB,sBAAZA,EAAEjK,SAC/EiN,GAAwBwK,GACxBrK,IAAsB,MAErB,CAAChQ,GAAeD,GAAiBE,KAGpC0F,qBAAU,WACT,IAAIL,GAAM,EACNjG,GAAOwC,YACVyD,GAAM,GAEHjG,GAAO2C,WACVsD,GAAM,GAEHjG,GAAO4C,QACVqD,GAAM,GAEHjG,GAAO6C,QACVoD,GAAM,GAEHjG,GAAON,QACVuG,GAAM,GAEHjG,GAAOqD,UACV4C,GAAM,GAEHjG,GAAOyD,eACVwC,GAAM,GAEH8L,IAEFtB,GADGxK,EACQ,UAEA,aAIX,CACFjG,GAAOwC,UACPxC,GAAO2C,SACP3C,GAAO4C,MACP5C,GAAO6C,MACP7C,GAAON,MACPM,GAAOqD,QACPrD,GAAOyD,aACPsO,KAKA,sBAAK5T,UAAU,YAAf,UAEC,cAAC,EAAD,CACCX,QAASA,GACTC,QAASA,GACTC,UAAWA,KAGI,iBAAf2B,EAAMyF,MACN,cAAC,EAAD,CACCzF,MAAOA,EACPF,SAAUA,EACVM,OAAQA,EACRC,MAAOA,GACPC,SAAUA,EACVC,qBAAsBA,GACtBC,QAASA,GACTC,SAAUA,GACVC,aAAcA,GACdC,OAAQA,GACRC,WAAYA,IACZC,aAAcA,GACdC,iBAhaqB,SAACkD,GACzB8O,GAAkB9O,GAClB4O,IAAkB,GAClBvB,IAAuB,GACvBC,IAAsB,IA6ZnBvQ,qBA1ZyB,SAAC5B,GAE7BgS,GADehS,GAEfqT,IAAsB,GACtBC,IAAwB,GACxBF,IAA6B,IAsZ1BvR,MAAOA,EACPC,OAAQA,GACRC,mBAAoBA,GACpBC,qBAAsBA,GACtBC,0BAA2BA,GAC3BC,gBAAiBA,GACjB3B,mBAAoBA,GACpB4B,cAAeA,GACfrC,iBAAkBA,GAClBsC,qBAAsBA,GACtB3B,wBAAyBA,GACzB4B,mBAAoBA,KAIN,iBAAfxB,EAAMyF,OAA4BkL,GAClC,cAAC,EAAD,CACCrM,WAAYA,GACZC,aAAcA,GACdvE,MAAOA,EACPwE,gBAAiBA,EACjB1E,SAAUA,EACV2E,UAAWA,EACXC,eAAgBA,EAChBC,UAAWA,GACXC,aAAcA,GACdC,eAAgBA,GAChBC,cAAeA,IAID,iBAAf9E,EAAMyF,MAA2BkL,GACjC,cAAC,EAAD,CACCrM,WAAYA,GACZC,aAAcA,GACdvE,MAAOA,EACPF,SAAUA,EACV4E,eAAgBA,EAChBC,UAAWA,GACXC,aAAcA,GACdC,eAAgBA,GAChBC,cAAeA,EACf6D,cAAeyC,EAAYzC,cAC3BC,SAAUA,KAKI,YAAf5I,EAAMyF,MACN,cAAC,EAAD,CACCzF,MAAOA,EACPoL,YAAaA,EACbC,oBAAqBA,GACrBC,mBAAoBA,GACpBC,aAAcA,GACdC,mBA1tCuB,SAAC,GAAmC,IAAjC/H,EAAgC,EAAhCA,KAAMO,EAA0B,EAA1BA,QAASiL,EAAiB,EAAjBA,KAAMgB,EAAW,EAAXA,KAClDvJ,QAAQmG,IAAI,0BACZyD,OAAO4C,OAAOC,YAAY,CAAEC,KAAM,uBAAwB3P,OAAMO,UAASiL,OAAMgB,QAAQgD,KAytCpFnT,SAAUA,EACV2L,eAAgBA,EAChBlL,qBAAsBA,GACtBmL,UAAWA,EACX/G,UAAWA,GACXC,aAAcA,GACdL,aAAcA,SC30CJwY,EAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,6BAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,OCDdQ,IAAS7Z,OACP,cAAC,IAAM8Z,WAAP,UACE,cAAC,EAAD,MAEFC,SAASC,eAAe,SAM1BZ,M","file":"static/js/main.deadfcc6.chunk.js","sourcesContent":["import React from \"react\"\nimport { PropTypes } from \"prop-types\";\n\nfunction StepProgress({\n stepOne,\n stepTwo,\n stepThree,\n}) {\n\n const stepProgressStyles = {\n default: {\n borderRight: \"none\",\n borderBottom: \"none\",\n borderLeft: \"none\",\n borderTop: \"4px dotted #a9a9a9\"\n },\n error: {\n borderRight: \"none\",\n borderBottom: \"none\",\n borderLeft: \"none\",\n borderTop: \"4px dotted #dc3545\"\n },\n success: {\n borderRight: \"none\",\n borderBottom: \"none\",\n borderLeft: \"none\",\n borderTop: \"4px dotted #AE678C \",\n },\n };\n\n\n return (\n <>\n
\n\n
\n\n
\n {stepOne === \"success\" ? \"✓\" :\n stepOne === \"invalid\" ? \"X\" : \"1\"}\n
\n\n
\n\n
\n {stepTwo === \"success\" ? \"✓\" : \"2\"}\n
\n\n
\n\n
\n {stepThree === \"success\" ? \"✓\" : \"3\"}\n
\n\n
\n\n
\n
\n
\n\n Information\n
\n Schedule\n
\n Summary\n\n
\n
\n \n )\n\n\n}\n\nStepProgress.propTypes = {\n stepOne: PropTypes.string.isRequired,\n stepTwo: PropTypes.string.isRequired,\n stepThree: PropTypes.string.isRequired,\n};\n\n\nexport default StepProgress;","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTimesCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport { PropTypes } from \"prop-types\";\n\n\nfunction BabyGrow({setModalBabyGrow}){\n\nreturn(\n
\n
\n setModalBabyGrow(false)}\n style={{ cursor: \"pointer\" }}\n >\n \n \n
\n <>\n
\n
\n

\n By adding this feature, you'll discover: baby's position in the uterus,\n weeks of pregnancy and estimated due date, baby's measurements and baby hearts activity.\n This add-on doesn't replace a medical study performed by your specialist

\n
\n
\n \n
\n
\n \n
\n
\n
\n)\n}\n\n\nBabyGrow.propTypes = {\n setModalBabyGrow: PropTypes.func.isRequired,\n};\n\nexport default BabyGrow;","\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTimesCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport { PropTypes } from \"prop-types\";\n\n\nexport function HearthBeat({setModalHearthbeat}){\n\n return(\n
\n
\n setModalHearthbeat(false)}\n style={{ cursor: \"pointer\" }}\n >\n \n \n
\n <>\n
\n
\n

\n Some moments come once in a lifetime, and they should never be forgotten.\n Recording the baby's heartbeat builds connection and strengthens the bond with baby.\n Our beautiful, high-quality stuffed animals come with a 20-second recording of the baby's heartbeat that can be cherished forever.\n

\n
\n
\n \n
\n
\n \n
\n
\n
\n )\n }\n\n HearthBeat.propTypes = {\n setModalHearthbeat: PropTypes.func.isRequired,\n };\n\n export default HearthBeat;","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTimesCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport { PropTypes } from \"prop-types\";\n\n\nexport function RealisticView({setModal8kRealisticView}){\n\n return(\n
\n
\n setModal8kRealisticView(false)}\n style={{ cursor: \"pointer\" }}\n >\n \n \n
\n <>\n
\n
\n

\n Will show our Mommies and Fathers a hyper-realistic image of what their babies will\n look like once they are born. We work with the ultrasound images from the session,\n process them and send them to our clients within 7 business days.

\n
\n
\n \n
\n
\n \n
\n
\n
\n )\n }\n\n RealisticView.propTypes = {\n setModal8kRealisticView: PropTypes.func.isRequired,\n };\n\n export default RealisticView;","\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faTimesCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport { PropTypes } from \"prop-types\";\n\nfunction Terms({setState,state}){\n\n const hideTerms = () => {\n setState((state) => ({\n ...state,\n displayTerms: false,\n }));\n };\n\n return (\n\n
\n
\n \n \n \n
\n
\n
\n

Little Bellies Terms of services.

\n
\n
\n <>\n

\n I am receiving ongoing prenatal care.
\n
\n I have undergone a medical diagnostic ultrasound\n prescribed by my OB provider in regard to this\n pregnancy.
\n
I understand that my OB provider ultimately will\n confirm my due date, screen for fetal abnormalities\n and/or any issues/concerns related to my pregnancy.{\" \"}\n
\n
Little Bellies is not a medical provider and will\n not do any of the foregoing.
\n
I understand that this ultrasound may not last\n more than 25 minutes and will focus on my pelvic area.{\" \"}\n
\n
\n I understand that this is a limited non-medical\n ultrasound and does not replace any diagnostic\n ultrasound ordered by my OB provider.
\n
\n I understand that there is a possibility that the wrong\n gender may be assigned to my baby.
\n

\n

\n Little Bellies is not a health care provider. Little\n Bellies understands the importance of proper prenatal\n medical care for both the expectant mother and the\n fetus. Therefore, in order to provide our clients with a\n meaningful “keepsake” ultrasound image, Little Bellies\n requires that I: (i) truthfully certify that I am under\n the care of a physician or other health care provider\n for my pregnancy and that I am not obtaining this\n ultrasound as a replacement for, or in lieu of, standard\n prenatal medical care, and (ii) notify my current\n physician or health care provider regarding the keepsake\n ultrasound I receive from Little Bellies.\n
\n
\n Little Bellies requests that I present to Little Bellies\n an acknowledgement of receipt of this notice, signed by\n my physician or health provider, prior to Little\n Bellies’ performance of the keepsake ultrasound. In the\n event I am unable to notify my physician or health\n provider prior to performance of the keepsake\n ultrasound, I assume sole responsibility for notifying\n him or her as soon as practical following performance of\n the keepsake ultrasound.\n
\n
\n As further condition to my receiving ultrasound services\n from Little Bellies, I hereby acknowledge, understand\n and agree to the following statements.\n
\n
\n

    \n
  • \n This ultrasound: (i) is an elective non-medical\n procedure that I have voluntarily requested and (ii)\n is not intended to take the place of a diagnostic\n ultrasound or any other test or treatment that has\n been or may be recommended by my physician or\n healthcare provider.\n
  • \n
  • \n Because of its elective, non-medical nature, this\n ultrasound is generally not covered by insurance.\n Therefore, advance payment is required.\n
  • \n
  • \n The technician who performs the ultrasound, while\n qualified to provide such ultrasound services, is\n not a doctor, nurse, or healthcare provider and\n cannot interpret, diagnose medical conditions from,\n or otherwise offer medical advice regarding the\n images produced.\n \n {\" \"}\n This ultrasound will not be read or interpreted by\n any physician, nurse or other healthcare provider\n at any time.\n \n
  • \n
  • \n This keepsake ultrasound is intended to provide\n enhanced images for the purpose of my viewing fetal\n movement in utero. The technician will make no\n attempt to guarantee a medically inclusive\n ultrasound or fetal well being.\n
  • \n
  • \n I understand that I am responsible for contacting my\n own healthcare provider if I have any questions\n concerning this keepsake ultrasound or any other\n aspect of my pregnancy.\n
  • \n
  • \n {\" \"}\n I understand that the quality of the keepsake\n ultrasound and the DVD, or other audio visual media,\n depends upon many factors including: body tissue\n content, developmental stage and fetal position.\n
  • \n
  • \n I understand that Little Bellies does not guarantee\n the quality of the DVD, or other audio visual media,\n or the ability to visualize any characteristics of\n the fetus.\n
  • \n
  • \n I understand that publication, presentation or\n distribution of any video taken during the\n ultrasound session, not provided by Little Bellies,{\" \"}\n is strictly prohibited. \n
  • \n
  • \n I understand that all the images and video clips\n taken during my session can be used for promotional\n purposes by Little Bellies.\n
  • \n
  • \n I agree to receive E-mail and SMS from Little\n Bellies, as well as surveys, promotional offers and\n marketing.\n
  • \n
  • \n I accept to receive the images and videos of my\n session in my E-mail and Smartphone.\n
  • \n
  • As evidenced by my signature below,
  • \n
\n I understand that factors beyond Little Bellies’ control\n may also affect the ability to accurately determine the\n gender of the fetus, and that Little Bellies can provide\n no warranty or guaranty as to the accuracy of any such\n determination.
\n
\n I further understand and accept the risk that, while\n ultrasound is believed to have no harmful effect on the\n mother or the fetus, future research or other\n information may disclose harmful or adverse effects that\n are presently unknown.
\n
\n IN CONSIDERATION OF THE SERVICES RENDERED, I AGREE TO\n RELEASE LITTLE BELLIES, ITS AGENTS, AFFILIATES, MEMBERS,\n MANAGERS AND EMPLOYEES FROM ANY AND ALL CLAIMS OR CAUSES\n OF ACTIONS FOR INJURY, HARM, DAMAGE, OR OTHER LIABILITY\n WHICH RESULTS FROM, OR ARE ALLEGED TO HAVE RESULTED\n FROM, THIS KEEPSAKE ULTRASOUND, INCLUDING BUT NOT\n LIMITED TO, THE FAILURE OF A LITTLE BELLIES ULTRASOUND\n TO ACCURATELY DETERMINE FETAL GENDER OR OTHER\n CHARACTERISTICS OR ANOMOLIES AND ANY DAMAGES OR INJURIES\n RESULTING FROM ULTRASOUND WHICH ARE NOT NOW KNOWN TO\n OCCUR.
\n
\n “I have carefully read this document and by signing at\n the bottom, acknowledge that I fully understand and\n agree to its contents.”\n

\n

\n I understand that all the images and video clips taken\n during my session can be used for promotional purposes\n by Little Bellies.\n
\n
\n I agree to receive E-mail and SMS from Little Bellies,\n as well as surveys, promotional offers and marketing.\n
\n
\n I accept to receive the images and videos of my session\n in my E-mail and Smartphone.\n
\n
\n As evidenced by my signature below, I understand that\n factors beyond Little Bellies control may also affect\n the ability to accurately determine the gender of the\n fetus, and that Little Bellies can provide no warranty\n or guaranty as to the accuracy of any such\n determination.\n
\n
\n I further understand and accept the risk that, while\n ultrasound is believed to have no harmful effect on the\n mother or the fetus, future research or other\n information may disclose harmful or adverse effects that\n are presently unknown.\n
\n
\n

\n \n
\n
\n \n
\n
\n
\n );\n\n\n}\n\nTerms.propTypes = {\n setModalBabyGrow: PropTypes.func.isRequired,\n state: PropTypes.object.isRequired,\n};\n\n\nexport default Terms;","import React from \"react\"\nimport { PropTypes } from \"prop-types\";\nimport Select from \"react-select\";\nimport BabyGrow from \"./modals/babyGrow\";\nimport HearthBeat from \"./modals/hearthBeat\";\nimport RealisticView from \"./modals/8kRealisticView\";\nimport Terms from \"./modals/terms\";\n\nfunction RegisterForm({\n state,\n setState,\n params,\n weeks,\n services,\n selectedOptionAddons,\n control,\n register,\n handleSubmit,\n errors,\n Controller,\n onFormSubmit,\n onChangeServices,\n handleAddonsSelected,\n width,\n addOns,\n hoverIndexBabyGrow,\n hoverIndexHearthbeat,\n hoverIndex8kRealisticView,\n modalHearthbeat,\n setModalHearthbeat,\n modalBabyGrow,\n setModalBabyGrow,\n modal8kRealisticView,\n setModal8kRealisticView,\n setClickButtonForm,\n}) {\n\n const selectStyles = {\n option: (styles, { data, isDisabled, isFocused, isSelected }) => {\n return {\n ...styles,\n fontSize: width > 1023 ? 16 : 14,\n };\n },\n };\n \n const translations = {\n en: {\n \"Please enter your information\": \"Please enter your information\",\n },\n es: {\n \"Please enter your information\": \"Please enter your information\",\n },\n };\n\n const translate = (text) => {\n const trans = translations[params.get(\"lang\") || \"en\"];\n return trans[text] || text;\n };\n\n const groupTextStyles = {\n color: \"#AE678C\",\n fontSize: width > 1023 ? 18 : 16,\n textTransform: \"capitalize\",\n };\n\n const groupStyles = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }; \n\n const formatGroupLabel = (data) => (\n
\n {data.label}\n
\n );\n\n const showTerms = () => {\n setState((state) => ({\n ...state,\n displayTerms: true,\n }));\n };\n\n\n return (\n <>\n \n
\n
\n

\n {translate(\"Please enter your information\", state.language)}\n

\n

\n {\" \"}\n In order to book an appointment please provide the following\n information\n

\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n\n
\n
\n (\n \n )}\n />\n
\n
\n
\n
\n (\n 0\n ? \"Select a service\"\n : \"Loading services\"\n }\n isDisabled={!services.length > 0}\n className={\n \"dropdown w-100 mb-3\" +\n (errors.service ? \" is-select-invalid\" : \"\")\n }\n formatGroupLabel={formatGroupLabel}\n styles={selectStyles}\n isSearchable={false}\n onChange={(service) => {\n onChangeServices(service);\n field.onChange(service);\n }}\n />\n )}\n />\n
\n
\n\n
\n
\n (\n 0}\n value={selectedOptionAddons}\n isSearchable={false}\n options={addOns}\n placeholder={\n services.length > 0\n ? \"Checkout out our amazing addons\"\n : \"Loading addons\"\n }\n className=\"dropdown w-100 mb-3\"\n isMulti\n onChange={(e) => { handleAddonsSelected(e); field.onChange(e) }}\n />\n )}\n />\n
\n
\n\n
\n
\n (\n
\n \n \n {errors.temsCheckbox && (\n <>\n You have to agree to{\" \"}\n \n {\" \"}\n terms and conditions\n \n \n )}\n {!errors.temsCheckbox && (\n <>\n Agree to{\" \"}\n \n {\" \"}\n terms and conditions\n \n \n )}\n \n
\n )}\n />\n
\n
\n\n {hoverIndexBabyGrow && (\n \n
\n
\n

\n By adding this feature, you'll discover: baby's position in the uterus,\n weeks of pregnancy and estimated due date, baby's measurements and baby hearts activity.\n This add-on doesn't replace a medical study performed by your specialist

\n
\n
\n
\n )}\n\n {hoverIndexHearthbeat && (\n \n
\n
\n

\n Some moments come once in a lifetime, and they should never be forgotten.\n Recording the baby's heartbeat builds connection and strengthens the bond with baby.\n Our beautiful, high-quality stuffed animals come with a 20-second recording of the baby's heartbeat that can be cherished forever.\n

\n
\n
\n
\n )}\n\n {hoverIndex8kRealisticView && (\n \n
\n
\n

\n Will show our Mommies and Fathers a hyper-realistic image of what their babies will look like once they are born. We work with the ultrasound images from the session,\n process them and send them to our clients within 7 business days.\n

\n
\n
\n
\n )}\n\n {state.displayTerms && (\n \n )}\n\n {modalHearthbeat && (\n \n )}\n {modalBabyGrow && (\n \n )}\n {modal8kRealisticView && (\n \n )}\n\n
\n
\n setClickButtonForm(true)}\n >\n Check availabilities\n \n
\n
\n \n \n\n );\n}\n\nRegisterForm.propTypes = {\n state: PropTypes.object.isRequired,\n setState: PropTypes.func.isRequired,\n params: PropTypes.object.isRequired,\n weeks: PropTypes.array.isRequired,\n services: PropTypes.array.isRequired,\n selectedOptionAddons: PropTypes.array,\n control: PropTypes.object.isRequired,\n register: PropTypes.func.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n errors: PropTypes.object.isRequired,\n Controller: PropTypes.func.isRequired,\n onFormSubmit : PropTypes.func.isRequired,\n onChangeServices: PropTypes.func.isRequired,\n handleAddonsSelected: PropTypes.func.isRequired,\n width: PropTypes.number.isRequired,\n addOns: PropTypes.array,\n hoverIndexBabyGrow: PropTypes.bool.isRequired,\n hoverIndexHearthbeat: PropTypes.bool.isRequired,\n hoverIndex8kRealisticView: PropTypes.bool.isRequired,\n modalHearthbeat: PropTypes.bool.isRequired,\n setModalHearthbeat: PropTypes.func.isRequired,\n modalBabyGrow: PropTypes.bool.isRequired,\n setModalBabyGrow: PropTypes.func.isRequired,\n modal8kRealisticView: PropTypes.bool.isRequired,\n setModal8kRealisticView: PropTypes.func.isRequired,\n setClickButtonForm: PropTypes.func.isRequired,\n};\n\nexport default RegisterForm;","import React, { useEffect } from \"react\"\nimport { PropTypes } from \"prop-types\";\nimport DatePicker from \"react-horizontal-datepicker\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSpinner } from \"@fortawesome/free-solid-svg-icons\";\nimport moment from \"moment\";\n\nfunction SelectTimeAppointment({\n setStepTwo,\n previousStep,\n state,\n availableBlocks,\n setState,\n firstLoad,\n setSelectBlock,\n leadState,\n setLeadState,\n scrollParenTop,\n selectedBlock\n}) {\n\n\n const handleAvailabilityBlockSelect = async (block) => { \n setState((state) => ({\n ...state,\n block: block,\n }));\n\n setSelectBlock(block.startDateTime);\n\n try {\n if (leadState.leadRegistered) {\n const leadPayload = {\n partitionKey: leadState.partititonKey,\n orderKey: leadState.orderKey,\n dateTimeSeleted: block.startDateTime,\n step: 2,\n };\n const leadRequest = {\n method: \"PUT\",\n headers: {\n \"Content-type\": \"application/json; charset=UTF-8\",\n authorization: state.authorization,\n siteid: state.siteId,\n },\n body: JSON.stringify(leadPayload),\n };\n const leadResponse = await fetch(\n `${process.env.REACT_APP_API_URL}/api/book/clients`,\n leadRequest\n );\n const leadData = await leadResponse.json();\n if (leadResponse.ok) {\n setLeadState((leadState) => ({\n ...leadState,\n leadUpdate: true,\n }));\n } else {\n setLeadState((leadState) => ({\n ...leadState,\n leadUpdate: true,\n }));\n console.error(leadData);\n }\n };\n\n } catch (error) {\n console.error(error);\n }\n\n };\n\n const onSelectedDay = (val) => {\n setStepTwo(\"default\")\n if (\n moment(val).format(\"MM/DD/YYYY\").toString() ===\n moment(state.startDate).format(\"MM/DD/YYYY\").toString()\n ) {\n return;\n }\n setState((state) => ({\n ...state,\n startDate: moment(val).format(\"MM/DD/YYYY\").toString(),\n }));\n };\n\n useEffect(() => {\n const nextDay = moment(state.startDate)\n .add(1, \"days\")\n .format(\"MM/DD/YYYY\")\n .toString();\n if (availableBlocks.length === 0 && !firstLoad) {\n setTimeout(() => {\n onSelectedDay(nextDay);\n }, 500);\n }\n }, [availableBlocks]);\n\n const blockSelected = async () => {\n scrollParenTop();\n\n setStepTwo(\"success\")\n\n setState((state) => ({\n ...state,\n step: \"summary\",\n }));\n\n try {\n if (leadState.leadRegistered) {\n const leadPayload = {\n partitionKey: leadState.partititonKey,\n orderKey: leadState.orderKey,\n dateTimeSeleted: selectedBlock,\n step: 3,\n };\n const leadRequest = {\n method: \"PUT\",\n headers: {\n \"Content-type\": \"application/json; charset=UTF-8\",\n authorization: state.authorization,\n siteid: state.siteId,\n },\n body: JSON.stringify(leadPayload),\n };\n\n const leadResponse = await fetch(\n `${process.env.REACT_APP_API_URL}/api/book/clients`,\n leadRequest\n );\n\n const leadData = await leadResponse.json();\n if (leadResponse.ok) {\n setLeadState((leadState) => ({\n ...leadState,\n leadUpdate: true,\n }));\n } else {\n setLeadState((leadState) => ({\n ...leadState,\n leadUpdate: true,\n }));\n console.error(leadData);\n }\n\n };\n\n } catch (error) {\n console.error(error);\n }\n\n };\n\n return (\n\n
\n
\n
\n
\n

\n { setStepTwo(\"default\"); previousStep(\"availability\"); }}\n >\n BACK\n \n
\n
\n
\n
\n \n
\n
\n\n {state.availabilityRequestStatus === \"ready\" &&\n availableBlocks.length >= 1 && (\n <>\n

Select time for you appointment:

\n
\n {availableBlocks.map((block, index) => {\n return (\n \n handleAvailabilityBlockSelect(block)}\n >\n {block.segment}\n \n
\n );\n })}\n
\n
\n
\n \n NEXT\n \n
\n
\n \n )}\n {state.availabilityRequestStatus === \"ready\" &&\n availableBlocks.length === 0 && (\n
\n
\n

\n Sorry, there are no available spaces today\n

\n

\n Please select another day on the calendar\n

\n
\n
\n )}\n {(state.availabilityRequestStatus === \"loading\" || state.availabilityRequestStatus === \"BOOK-APPOINTMENT-OK\") && (\n
\n
\n

\n Loading\n

\n
\n
\n )}\n {(state.availabilityRequestStatus === \"error\" ||\n state.availabilityRequestStatus === \"no-data-found\") && (\n

Error: {state.message}

\n )}\n
\n
\n\n )\n\n}\n\nSelectTimeAppointment.propTypes = {\n setStepTwo: PropTypes.func.isRequired,\n previousStep: PropTypes.func.isRequired,\n state: PropTypes.object.isRequired,\n availableBlocks: PropTypes.array.isRequired,\n setState: PropTypes.func.isRequired,\n firstLoad: PropTypes.bool.isRequired,\n setSelectBlock: PropTypes.func.isRequired,\n leadState: PropTypes.object.isRequired,\n setLeadState: PropTypes.func.isRequired,\n scrollParenTop: PropTypes.func.isRequired,\n selectedBlock: PropTypes.string\n};\n\n\nexport default SelectTimeAppointment;","import React, { useEffect, useState } from \"react\";\nimport { PropTypes } from \"prop-types\";\nimport DatePicker from \"react-horizontal-datepicker\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSpinner } from \"@fortawesome/free-solid-svg-icons\";\nimport moment from \"moment\";\n\nfunction formatDate(dateString) {\n\tconst date = new Date(dateString);\n\tconst options = { hour: \"2-digit\", minute: \"2-digit\", hour12: true };\n\treturn date.toLocaleTimeString(undefined, options);\n}\n\nfunction formatPhoneNumber(phoneNumber) {\n\tconst cleaned = phoneNumber.replace(/\\D/g, \"\");\n\tconst formatted = cleaned.replace(/(\\d{3})(\\d{3})(\\d{4})/, \"($1) $2-$3\");\n\n\treturn formatted;\n}\n\nconst getAvailability = async ({ accesssToken, siteId, locationId, startDate, sessionTypeId, siteInfo }) => {\n\tconst queryParams = new URLSearchParams({\n\t\tstartDate: startDate,\n\t\tsessionTypeId: sessionTypeId,\n\t\ttimeZone: siteInfo.timeZone,\n\t});\n\n\tconst url = `${process.env.REACT_APP_API_URL}/api/sites/${siteId}/locations/${locationId}/bookeableSchedule?${queryParams.toString()}`;\n\n\tconst request = {\n\t\tmethod: \"GET\",\n\t\theaders: {\n\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\tauthorization: accesssToken,\n\t\t},\n\t};\n\ttry {\n\t\tconst response = await fetch(url, request);\n\n\t\tconst data = await response.json();\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`${response.status}: ${JSON.stringify(data)}`);\n\t\t}\n\t\tconst { bookeableSchedule } = data;\n\t\tconst reShaped = bookeableSchedule.map((slot) => {\n\t\t\treturn {\n\t\t\t\tstaffId: slot.staffId,\n\t\t\t\tstartDateTime: slot.startTime,\n\t\t\t};\n\t\t});\n\t\treturn reShaped;\n\t} catch (error) {\n\t\tconsole.error(\"Error fetching availability:\", error);\n\t\tthrow error;\n\t}\n};\n\nfunction SelectTimeAppointmentV2({ setStepTwo, previousStep, state, setState, setSelectBlock, leadState, setLeadState, scrollParenTop, selectedBlock, sessionTypeId, siteInfo }) {\n\tconst [bookable, setBookable] = useState(null);\n\tconst [firstLoad, setFirstLoad] = useState(true);\n\tconst maxSkipCounter = 7; //7 days\n\tconst [skipCounter, setSkipCounter] = useState(0);\n\n\tuseEffect(() => {\n\t\tconst showLoading = () => {\n\t\t\tsetState((state) => ({\n\t\t\t\t...state,\n\t\t\t\tavailabilityRequestStatus: \"loading\",\n\t\t\t}));\n\t\t};\n\t\tconst showReady = () => {\n\t\t\tsetState((state) => ({\n\t\t\t\t...state,\n\t\t\t\tavailabilityRequestStatus: \"ready\",\n\t\t\t}));\n\t\t};\n\t\tconst fetchAvailability = async () => {\n\t\t\ttry {\n\t\t\t\tconst resp = await getAvailability({\n\t\t\t\t\taccesssToken: state.authorization,\n\t\t\t\t\tsiteId: state.siteId,\n\t\t\t\t\tlocationId: state.locationId,\n\t\t\t\t\tstartDate: state.startDate,\n\t\t\t\t\tsessionTypeId: sessionTypeId,\n\t\t\t\t\tsiteInfo: siteInfo,\n\t\t\t\t});\n\n\t\t\t\tsetBookable(resp);\n\t\t\t\tsetFirstLoad(false);\n\t\t\t\tshowReady();\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error fetching bookable schedule:\", error);\n\t\t\t\tsetState((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tavailabilityRequestStatus: \"error\",\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\t\tshowLoading();\n\t\tfetchAvailability();\n\t}, [state.startDate, sessionTypeId, state.locationId, state.authorization, state.siteId, setState, siteInfo]);\n\n\tconst handleAvailabilityBlockSelect = async (block) => {\n\t\tsetState((state) => ({\n\t\t\t...state,\n\t\t\tblock: block,\n\t\t}));\n\n\t\tsetSelectBlock(block.startDateTime);\n\n\t\ttry {\n\t\t\tif (leadState.leadRegistered) {\n\t\t\t\tconst leadPayload = {\n\t\t\t\t\tpartitionKey: leadState.partititonKey,\n\t\t\t\t\torderKey: leadState.orderKey,\n\t\t\t\t\tdateTimeSeleted: block.startDateTime,\n\t\t\t\t\tstep: 2,\n\t\t\t\t};\n\t\t\t\tconst leadRequest = {\n\t\t\t\t\tmethod: \"PUT\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(leadPayload),\n\t\t\t\t};\n\t\t\t\tconst leadResponse = await fetch(`${process.env.REACT_APP_API_URL}/api/book/clients`, leadRequest);\n\t\t\t\tconst leadData = await leadResponse.json();\n\t\t\t\tif (leadResponse.ok) {\n\t\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t\t...leadState,\n\t\t\t\t\t\tleadUpdate: true,\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t\t...leadState,\n\t\t\t\t\t\tleadUpdate: true,\n\t\t\t\t\t}));\n\t\t\t\t\tconsole.error(leadData);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t};\n\n\tconst onSelectedDay = (val) => {\n\t\tsetStepTwo(\"default\");\n\t\tif (moment(val).format(\"MM/DD/YYYY\").toString() === moment(state.startDate).format(\"MM/DD/YYYY\").toString()) {\n\t\t\treturn;\n\t\t}\n\t\tsetState((state) => ({\n\t\t\t...state,\n\t\t\tstartDate: moment(val).format(\"MM/DD/YYYY\").toString(),\n\t\t}));\n\t};\n\n\tuseEffect(() => {\n\t\tif (skipCounter < maxSkipCounter && bookable && bookable?.length === 0 && !firstLoad && state.availabilityRequestStatus === \"ready\") {\n\t\t\tconst nextDay = moment(state.startDate).add(1, \"days\").format(\"MM/DD/YYYY\").toString();\n\t\t\tsetSkipCounter(skipCounter + 1);\n\t\t\tsetTimeout(() => {\n\t\t\t\tonSelectedDay(nextDay);\n\t\t\t}, 500);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [bookable, firstLoad, state.availabilityRequestStatus]);\n\n\tconst blockSelected = async () => {\n\t\tscrollParenTop();\n\n\t\tsetStepTwo(\"success\");\n\n\t\tsetState((state) => ({\n\t\t\t...state,\n\t\t\tstep: \"summary\",\n\t\t}));\n\n\t\ttry {\n\t\t\tif (leadState.leadRegistered) {\n\t\t\t\tconst leadPayload = {\n\t\t\t\t\tpartitionKey: leadState.partititonKey,\n\t\t\t\t\torderKey: leadState.orderKey,\n\t\t\t\t\tdateTimeSeleted: selectedBlock,\n\t\t\t\t\tstep: 3,\n\t\t\t\t};\n\t\t\t\tconst leadRequest = {\n\t\t\t\t\tmethod: \"PUT\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(leadPayload),\n\t\t\t\t};\n\n\t\t\t\tconst leadResponse = await fetch(`${process.env.REACT_APP_API_URL}/api/book/clients`, leadRequest);\n\n\t\t\t\tconst leadData = await leadResponse.json();\n\t\t\t\tif (leadResponse.ok) {\n\t\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t\t...leadState,\n\t\t\t\t\t\tleadUpdate: true,\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t\t...leadState,\n\t\t\t\t\t\tleadUpdate: true,\n\t\t\t\t\t}));\n\t\t\t\t\tconsole.error(leadData);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t};\n\n\t/*\n\n\tthis is the block object that is expected from the other components, so sadly we have to mock it\n\n\t{\n\t\"id\": 5,\n\t\"segment\": \"10:30 AM\",\n\t\"endSegment\": \"11:00 AM\",\n\t\"appointment\": {},\n\t\"startDateTime\": \"2024-05-23T10:30:00\",\n\t\"endDateTime\": \"2024-05-23T11:00:00\",\n\t\"blockDate\": \"Thu May 23 2024 10:30:00 GMT-0400\",\n\t\"selected\": false,\n\t\"available\": true,\n\t\"staffId\": [\n\t\t100000001\n\t],\n\t\"count\": 1\n\t}\n\n\tthe minimal object that we need to create is done by the following function\n\t*/\n\n\tfunction buildBlock(block) {\n\t\treturn {\n\t\t\tstaffId: [block.staffId],\n\t\t\tblockDate: moment(block.startDateTime).toString(),\n\t\t\tstartDateTime: block.startDateTime,\n\t\t};\n\t}\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetStepTwo(\"default\");\n\t\t\t\t\t\t\t\tpreviousStep(\"availability\");\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tBACK\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t{state.availabilityRequestStatus === \"ready\" && bookable && bookable.length > 0 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t

Select time for you appointment:

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{bookable.map((block, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t handleAvailabilityBlockSelect(buildBlock(block))}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatDate(block.startDateTime)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{state.availabilityRequestStatus === \"ready\" && bookable && bookable.length < 1 && (\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Sorry, there are no available appointments for this date

\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tPlease select another day on the calendar or call us to help you book at{\" \"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{formatPhoneNumber(siteInfo.phone)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t{(state.availabilityRequestStatus === \"loading\" || state.availabilityRequestStatus === \"BOOK-APPOINTMENT-OK\") && (\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t Loading\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t{state.availabilityRequestStatus === \"error\" && (\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tThere was an error, please call us to help you book at{\" \"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{formatPhoneNumber(siteInfo.phone)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
Error: {state.message}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n}\n\nSelectTimeAppointmentV2.propTypes = {\n\tsetStepTwo: PropTypes.func.isRequired,\n\tpreviousStep: PropTypes.func.isRequired,\n\tstate: PropTypes.object.isRequired,\n\tsetState: PropTypes.func.isRequired,\n\tsetSelectBlock: PropTypes.func.isRequired,\n\tleadState: PropTypes.object.isRequired,\n\tsetLeadState: PropTypes.func.isRequired,\n\tscrollParenTop: PropTypes.func.isRequired,\n\tselectedBlock: PropTypes.string,\n\tsiteInfo: PropTypes.object,\n};\n\nexport default SelectTimeAppointmentV2;\n","export const blocks = [\n\t{\n\t\tid: 0,\n\t\tsegment: \"08:00 AM\",\n\t\tendSegment: \"08:30 AM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 1,\n\t\tsegment: \"08:30 AM\",\n\t\tendSegment: \"09:00 AM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 2,\n\t\tsegment: \"09:00 AM\",\n\t\tendSegment: \"09:30 AM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 3,\n\t\tsegment: \"09:30 AM\",\n\t\tendSegment: \"10:00 AM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 4,\n\t\tsegment: \"10:00 AM\",\n\t\tendSegment: \"10:30 AM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 5,\n\t\tsegment: \"10:30 AM\",\n\t\tendSegment: \"11:00 AM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 6,\n\t\tsegment: \"11:00 AM\",\n\t\tendSegment: \"11:30 AM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 7,\n\t\tsegment: \"11:30 AM\",\n\t\tendSegment: \"12:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 8,\n\t\tsegment: \"12:00 PM\",\n\t\tendSegment: \"12:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 9,\n\t\tsegment: \"12:30 PM\",\n\t\tendSegment: \"01:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 10,\n\t\tsegment: \"01:00 PM\",\n\t\tendSegment: \"01:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 11,\n\t\tsegment: \"01:30 PM\",\n\t\tendSegment: \"02:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 12,\n\t\tsegment: \"02:00 PM\",\n\t\tendSegment: \"02:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 13,\n\t\tsegment: \"02:30 PM\",\n\t\tendSegment: \"03:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 14,\n\t\tsegment: \"03:00 PM\",\n\t\tendSegment: \"03:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 15,\n\t\tsegment: \"03:30 PM\",\n\t\tendSegment: \"04:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 16,\n\t\tsegment: \"04:00 PM\",\n\t\tendSegment: \"04:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 17,\n\t\tsegment: \"04:30 PM\",\n\t\tendSegment: \"05:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 18,\n\t\tsegment: \"05:00 PM\",\n\t\tendSegment: \"05:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 19,\n\t\tsegment: \"05:30 PM\",\n\t\tendSegment: \"06:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 20,\n\t\tsegment: \"06:00 PM\",\n\t\tendSegment: \"06:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 21,\n\t\tsegment: \"06:30 PM\",\n\t\tendSegment: \"07:00 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 22,\n\t\tsegment: \"07:00 PM\",\n\t\tendSegment: \"07:30 PM\",\n\t\tappointment: {},\n\t},\n\t{\n\t\tid: 23,\n\t\tsegment: \"07:30 PM\",\n\t\tendSegment: \"08:00 PM\",\n\t\tappointment: {},\n\t},\n];\n\nexport const removeTags = (str) => {\n\tif (str === null || str === \"\") return false;\n\telse str = str.toString();\n\n\t// Regular expression to identify HTML tags in\n\t// the input string. Replacing the identified\n\t// HTML tag with a null string.\n\treturn str.replace(/(<([^>]+)>)/gi, \"\");\n};\n","export const getIp = async () => {\n try {\n const response = await fetch('https://api.ipify.org?format=json',{method: \"GET\",});\n const data = await response.json();\n return data?.ip;\n } catch (error) {\n return `${error}`\n }\n};\n","import React, { useEffect } from \"react\";\nimport moment from \"moment\";\nimport { PropTypes } from \"prop-types\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSpinner } from \"@fortawesome/free-solid-svg-icons\";\nimport { removeTags } from \"../config/constans\";\nimport { getIp } from \"../services/external\";\n\nfunction BookAppointment({\n\tstate,\n\tclientState,\n\taddHeartbeatBuddies,\n\tadd8kRealisticView,\n\tsetStepThree,\n\tgoogleTrackBooking,\n\tsetState,\n\tsetClientState,\n\tselectedOptionAddons,\n\tlocalTime,\n\tleadState,\n\tsetLeadState,\n\tpreviousStep,\n}) {\n\tconst bypass = false;\n\n\tuseEffect(async () => {\n\t\tconst ip = await getIp();\n\t\tsetClientState((clientState) => ({\n\t\t\t...clientState,\n\t\t\tipAddress: ip,\n\t\t}));\n\t}, [clientState.ipAddress]);\n\n\tconst bookAppointment = async () => {\n\t\tsetStepThree(\"success\");\n\n\t\tif (state.appointmentRequestStatus === \"loading\") {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tif (bypass) {\n\t\t\t\tgoogleTrackBooking({ name: \"name\", service: \"service\", date: \"date\", time: \"time\" });\n\t\t\t\tsetState((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-OK\",\n\t\t\t\t}));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetState((state) => ({\n\t\t\t\t...state,\n\t\t\t\tappointmentRequestStatus: \"loading\",\n\t\t\t}));\n\n\t\t\tlet createAppointment = false;\n\t\t\tlet clientObject = { ...clientState.clientObject };\n\n\t\t\tif (clientState.clientRequestStatus === \"CLIENT-NOT-FOUND\") {\n\t\t\t\ttry {\n\t\t\t\t\tconst payload = {\n\t\t\t\t\t\tfirstName: clientState.firstName,\n\t\t\t\t\t\tlastName: clientState.lastName,\n\t\t\t\t\t\tmobilePhone: clientState.phone.replace(/[^0-9]/gi, \"\"),\n\t\t\t\t\t\temail: clientState.email,\n\t\t\t\t\t};\n\t\t\t\t\tconst createClientRequest = {\n\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: JSON.stringify(payload),\n\t\t\t\t\t};\n\t\t\t\t\tconst createClientResponse = await fetch(`${process.env.REACT_APP_API_URL}/api/clients`, createClientRequest);\n\t\t\t\t\tconst createClientData = await createClientResponse.json();\n\t\t\t\t\tif (createClientResponse.ok) {\n\t\t\t\t\t\tconst createdClient = {\n\t\t\t\t\t\t\tclientId: createClientData.clientId,\n\t\t\t\t\t\t\tname: createClientData.name,\n\t\t\t\t\t\t\tphone: createClientData.phone.replace(/[^0-9]/gi, \"\"),\n\t\t\t\t\t\t\temail: createClientData.email,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsetClientState((clientState) => ({\n\t\t\t\t\t\t\t...clientState,\n\t\t\t\t\t\t\tcreateClientRequestStatus: \"CREATED\",\n\t\t\t\t\t\t\tclientObject: createdClient,\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tcreateAppointment = true;\n\t\t\t\t\t\tclientObject = { ...createdClient };\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetClientState((clientState) => ({\n\t\t\t\t\t\t\t...clientState,\n\t\t\t\t\t\t\tcreateClientRequestStatus: \"ERROR\",\n\t\t\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-FAIL\",\n\t\t\t\t\t\t\tmessage: \"Create request Error: \" + JSON.stringify(createClientData),\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\tappointmentRequestStatus: \"IDLE\",\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tcreateAppointment = false;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tsetClientState((clientState) => ({\n\t\t\t\t\t\t...clientState,\n\t\t\t\t\t\tcreateClientRequestStatus: \"ERROR\",\n\t\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-FAIL\",\n\t\t\t\t\t\tmessage: \"Create request Error: \" + JSON.stringify(e),\n\t\t\t\t\t}));\n\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-FAIL\",\n\t\t\t\t\t\tstatus: \"BOOK-APPOINTMENT-FAIL\",\n\t\t\t\t\t\tmessage: \"Client request Error: \" + JSON.stringify(e.message),\n\t\t\t\t\t}));\n\t\t\t\t\tcreateAppointment = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (clientState.clientRequestStatus === \"CLIENT-FOUND-DIFFERENT\" || clientState.clientRequestStatus === \"CLIENT-FOUND\") {\n\t\t\t\tcreateAppointment = true;\n\t\t\t}\n\n\t\t\tif (createAppointment) {\n\t\t\t\tconst payload = {\n\t\t\t\t\tsessionTypeId: \"\" + clientState.sessionTypeId,\n\t\t\t\t\tlocationId: parseInt(state.locationId),\n\t\t\t\t\tstaffId: state.block.staffId[0],\n\t\t\t\t\tclientId: clientObject.clientId,\n\t\t\t\t\tclientData: { clientName: `${clientState.firstName} ${clientState.lastName}`, email: clientState.email, mobilePhone: clientState.phone.replace(/[^0-9]/gi, \"\") },\n\t\t\t\t\tnotes:\n\t\t\t\t\t\t\"Weeks: \" +\n\t\t\t\t\t\tclientState.weeks +\n\t\t\t\t\t\t\"\\n\" +\n\t\t\t\t\t\t\"Language: \" +\n\t\t\t\t\t\tstate.language +\n\t\t\t\t\t\t\"\\n\" +\n\t\t\t\t\t\t(addHeartbeatBuddies ? \"Add Heartbeat Buddies\" : \"\") +\n\t\t\t\t\t\t(addHeartbeatBuddies ? \"\\n\" : \"\") +\n\t\t\t\t\t\t(add8kRealisticView ? \"Add 8k Realistic View\" : \"\"),\n\t\t\t\t\tstartDateTime: moment(state.block.blockDate).format(\"YYYY-MM-DD[T]HH:mm:ss\").toString(),\n\t\t\t\t\tipAddress: clientState.ipAddress,\n\t\t\t\t};\n\t\t\t\tconsole.log(clientState.ipAddress);\n\n\t\t\t\tconst bookAppointmentRequest = {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(payload),\n\t\t\t\t};\n\t\t\t\tconst bookAppointmentResponse = await fetch(`${process.env.REACT_APP_API_URL}/api/appointments`, bookAppointmentRequest);\n\t\t\t\tconst bookAppointmentData = await bookAppointmentResponse.json();\n\t\t\t\tif (bookAppointmentResponse.ok) {\n\t\t\t\t\tconst mailBody = {\n\t\t\t\t\t\tlocationName: `Little Bellies Pregnancy Spa - ${state.city}`,\n\t\t\t\t\t\tweb: \"www.littlebelliesspa.com/en/home/\",\n\t\t\t\t\t\tlocationPhone: state.phone,\n\t\t\t\t\t\tlocationAddress: removeTags(state.address),\n\t\t\t\t\t\thowArrive: removeTags(state.howtoarrive),\n\t\t\t\t\t\tappointmentId: bookAppointmentData.Appointment.Id,\n\t\t\t\t\t\tclientName: clientState.firstName + \" \" + clientState.lastName,\n\t\t\t\t\t\tclientEmail: clientState.email,\n\t\t\t\t\t\tserviceName: clientState.sessionTypeName,\n\t\t\t\t\t\tstartDateTime: moment(state.block.blockDate).format(\"YYYY-MM-DD[T]HH:mm:ss\").toString(),\n\t\t\t\t\t};\n\t\t\t\t\tconst postMail = {\n\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: JSON.stringify(mailBody),\n\t\t\t\t\t};\n\t\t\t\t\tconst mailResponse = await fetch(`${process.env.REACT_APP_API_URL}/api/book/sendMail`, postMail);\n\n\t\t\t\t\tif (!mailResponse.ok) {\n\t\t\t\t\t\tconsole.error(mailResponse);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nameListAddons = [];\n\t\t\t\t\tif (selectedOptionAddons) {\n\t\t\t\t\t\tnameListAddons = selectedOptionAddons.map((i) => {\n\t\t\t\t\t\t\treturn i.value;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tconst dynamoPayload = {\n\t\t\t\t\t\tid: \"\" + bookAppointmentData.Appointment.Id,\n\t\t\t\t\t\tsessionTypeId: \"\" + bookAppointmentData.Appointment.SessionTypeId,\n\t\t\t\t\t\tsessionTypeName: clientState.sessionTypeName,\n\t\t\t\t\t\tserviceName: clientState.sessionTypeName,\n\t\t\t\t\t\tlocationId: \"\" + bookAppointmentData.Appointment.LocationId,\n\t\t\t\t\t\tstaffId: \"\" + bookAppointmentData.Appointment.StaffId,\n\t\t\t\t\t\tclientId: \"\" + bookAppointmentData.Appointment.ClientId,\n\t\t\t\t\t\tnotes: bookAppointmentData.Appointment.Notes,\n\t\t\t\t\t\tstartDateTime: bookAppointmentData.Appointment.StartDateTime,\n\t\t\t\t\t\tstatus: bookAppointmentData.Appointment.Status,\n\t\t\t\t\t\tfirstAppointment: bookAppointmentData.Appointment.FirstAppointment,\n\t\t\t\t\t\tprogramId: bookAppointmentData.Appointment.ProgramId,\n\t\t\t\t\t\taddOns: nameListAddons,\n\t\t\t\t\t\tbookDate: moment(localTime.date).format(\"MM/DD/YYYY\"),\n\t\t\t\t\t\taccount: true,\n\t\t\t\t\t\tbookDateTime: moment(localTime.date).format(\"MM/DD/YYYY HH:mm:ss\"),\n\t\t\t\t\t\tbookTimeUTC: moment.utc(localTime.date).toISOString().split(\"T\")[1],\n\t\t\t\t\t\tservicePrice: clientState.sessionTypeName.includes(\"$\") ? parseInt(clientState.sessionTypeName.split(\"$\")[1]) : 0,\n\t\t\t\t\t\tsiteId: state.siteId,\n\t\t\t\t\t\tsource: \"online\",\n\t\t\t\t\t\tcbff: false,\n\t\t\t\t\t\tclientName: `${clientState.firstName} ${clientState.lastName}`,\n\t\t\t\t\t\temail: clientState.email,\n\t\t\t\t\t\tmobilePhone: clientState.phone.replace(/[^0-9]/gi, \"\"),\n\t\t\t\t\t\tipAddress: clientState.ipAddress,\n\t\t\t\t\t\tbookTime: moment(localTime.date).format(\"HH:mm\"),\n\t\t\t\t\t};\n\t\t\t\t\tconst putDynamo = {\n\t\t\t\t\t\tmethod: \"PUT\",\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: JSON.stringify(dynamoPayload),\n\t\t\t\t\t};\n\t\t\t\t\tconst dynamoResponse = await fetch(`${process.env.REACT_APP_API_URL}/api/dynamoDB/appointments`, putDynamo);\n\t\t\t\t\tconst dynamoData = await dynamoResponse.json();\n\t\t\t\t\tif (dynamoResponse.ok) {\n\t\t\t\t\t\tif (leadState.leadRegistered) {\n\t\t\t\t\t\t\tconst leadPayload = {\n\t\t\t\t\t\t\t\tpartititonKey: leadState.partititonKey,\n\t\t\t\t\t\t\t\torderKey: leadState.orderKey,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst leadRequest = {\n\t\t\t\t\t\t\t\tmethod: \"DELETE\",\n\t\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tbody: JSON.stringify(leadPayload),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst leadResponse = await fetch(`${process.env.REACT_APP_API_URL}/api/book/clients`, leadRequest);\n\t\t\t\t\t\t\tconst leadData = await leadResponse.json();\n\t\t\t\t\t\t\tif (leadResponse.ok) {\n\t\t\t\t\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t\t\t\t\t...leadState,\n\t\t\t\t\t\t\t\t\tleadDeleted: true,\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-OK\",\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-OK\",\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t\t\t\t\t...leadState,\n\t\t\t\t\t\t\t\t\tleadDeleted: false,\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\tconsole.log(\"Error deleting lead\");\n\t\t\t\t\t\t\t\tconsole.error(leadData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgoogleTrackBooking({\n\t\t\t\t\t\t\tname: clientState.firstName + \" \" + clientState.lastName,\n\t\t\t\t\t\t\tservice: clientState.sessionTypeName,\n\t\t\t\t\t\t\tdate: moment(state.block.blockDate).format(\"MM-DD-YYYY\").toString(),\n\t\t\t\t\t\t\ttime: moment(state.block.blockDate).format(\"hh:mm A\").toString(),\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-FAIL\",\n\t\t\t\t\t\t\tmessage: JSON.stringify(dynamoData),\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tappointmentRequestStatus: \"BOOK-APPOINTMENT-FAIL\",\n\t\t\t\t\t\tmessage: JSON.stringify(bookAppointmentData),\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetState((state) => ({\n\t\t\t\t...state,\n\t\t\t\tstatus: \"BOOK-APPOINTMENT-FAIL\",\n\t\t\t\tmessage: \"Client request Error: \" + JSON.stringify(error.message),\n\t\t\t}));\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{state.appointmentRequestStatus !== \"BOOK-APPOINTMENT-OK\" && (\n\t\t\t\t\t
\n\t\t\t\t\t\t

Your booking information

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t{state.appointmentRequestStatus !== \"IDLE\" && (\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{state.appointmentRequestStatus === \"BOOK-APPOINTMENT-FAIL\" && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t\tThere has been an error booking your appointment, please try again, if the error persist please call this number:{\" \"}\n\t\t\t\t\t\t\t\t\t\t{state.phone} and we will get you sorted out{\" \"}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{state.textMessageStatus === \"TEXT-FAIL\" && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {state.textMessage} \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{state.appointmentRequestStatus === \"CLIENT-ERROR\" && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {state.message} \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tFull Name: {clientState.firstName + \" \" + clientState.lastName}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tService: \n\t\t\t\t\t\t\t\t\t\t{clientState.sessionTypeName}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{addHeartbeatBuddies || add8kRealisticView ? (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\tAddons: \n\t\t\t\t\t\t\t\t\t\t\t{addHeartbeatBuddies && \"Add Heartbeat Buddies \"}\n\t\t\t\t\t\t\t\t\t\t\t{addHeartbeatBuddies && add8kRealisticView && \"-\"}\n\t\t\t\t\t\t\t\t\t\t\t{add8kRealisticView && \" Add 8k Realistic View\"}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tDate: \n\t\t\t\t\t\t\t\t\t\t{moment(state.block.blockDate).format(\"MM-DD-YYYY\").toString()}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tTime: \n\t\t\t\t\t\t\t\t\t\t{moment(state.block.blockDate).format(\"hh:mm A\").toString()}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tLocation Address: \n\t\t\t\t\t\t\t\t\t\t{removeTags(state.address)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tHow to Arrive: \n\t\t\t\t\t\t\t\t\t\t{removeTags(state.howtoarrive)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tLocation Phone: \n\t\t\t\t\t\t\t\t\t\t{state.phone}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\t{state.appointmentRequestStatus !== \"BOOK-APPOINTMENT-OK\" && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nBookAppointment.propTypes = {\n\tstate: PropTypes.object.isRequired,\n\tclientState: PropTypes.object.isRequired,\n\taddHeartbeatBuddies: PropTypes.bool.isRequired,\n\tadd8kRealisticView: PropTypes.bool.isRequired,\n\tsetStepThree: PropTypes.func.isRequired,\n\tgoogleTrackBooking: PropTypes.func.isRequired,\n\tsetState: PropTypes.func.isRequired,\n\tsetClientState: PropTypes.func.isRequired,\n\tselectedOptionAddons: PropTypes.array,\n\tlocalTime: PropTypes.object.isRequired,\n\tleadState: PropTypes.object.isRequired,\n\tsetLeadState: PropTypes.func.isRequired,\n\tpreviousStep: PropTypes.func.isRequired,\n};\n\nexport default BookAppointment;\n","import React, { useEffect, useState } from \"react\";\nimport \"bootstrap/dist/css/bootstrap.min.css\";\nimport moment from \"moment\";\nimport \"./App.css\";\nimport \"./styles/info.css\";\nimport StepProgress from \"../src/components/stepProgress\";\nimport RegisterForm from \"../src/components/registerForm\";\nimport SelectTimeAppointment from \"../src/components/selectTimeAppointment\";\nimport SelectTimeAppointmentV2 from \"../src/components/selectTimeAppointment-v2\";\nimport BookAppointment from \"../src/components/boookAppointment\";\nimport { blocks } from \"../src/config/constans.js\";\nimport { useForm } from \"react-hook-form\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { Controller } from \"react-hook-form\";\nimport { faInfo } from \"@fortawesome/free-solid-svg-icons\";\nimport * as crypto from \"crypto-js\";\n\n\n\n\n\nfunction App() {\n\tconst params = new URLSearchParams(window.location.search);\n\tconst languageList = { en: \"English\", es: \"Spanish\" };\n\tconst [firstLoad, setFirstLoad] = useState(true);\n\tconst [localTime, setLocalTime] = useState({ date: new Date() });//revisar esta linea Trabajar con la fecha y hora del sitio\n\tconst [selectedBlock, setSelectBlock] = useState(null);\n\tconst [width, setWindowWidth] = useState(0);\n\tconst [useV2] = useState(true);\n\tconst [state, setState] = useState({\n\t\tstep: \"registerForm\",\n\t\tstatus: \"IDLE\",\n\t\tavailabilityRequestStatus: \"IDLE\",\n\t\tappointmentRequestStatus: \"IDLE\",\n\t\tcity: params.get(\"city\") || \"N/A\",\n\t\tmessage: \"\",\n\t\tsiteId: params.get(\"id\") || \"5723785\",\n\t\tlatitude: params.get(\"latitude\") || \"0\",\n\t\tlongitude: params.get(\"longitude\") || \"0\",\n\t\tlanguage: languageList[params.get(\"lang\")] || \"English\",\n\t\tlocationId: params.get(\"city\") !== \"coral-springs\" ? \"1\" : \"2\",\n\t\tauthorization: \"\",\n\t\taddress: params.get(\"address\") || \"N/A\",\n\t\tphone: params.get(\"phone\") || \"N/A\",\n\t\thowtoarrive: params.get(\"howtoarrive\") || \"N/A\",\n\t\tstartDate: moment(new Date()).format(\"MM/DD/YYYY\").toString(),\n\t\tblock: {\n\t\t\tid: \"\",\n\t\t},\n\t\tcaptchaReady: true,\n\t\tshowAddons: false,\n\t\ttextMessageStatus: \"IDLE\",\n\t\ttextMessage: \"\",\n\t\tdisplayTerms: false,\n\t});\n\tconst [clientState, setClientState] = useState({\n\t\tfirstName: \"\",\n\t\tlastName: \"\",\n\t\temail: \"\",\n\t\tphone: \"\",\n\t\tweeks: \"\",\n\t\tsessionTypeId: \"\",\n\t\tsessionTypeName: \"\",\n\t\tclientRequestStatus: \"IDLE\",\n\t\tcreateClientRequestStatus: \"IDLE\",\n\t\tsearchResults: [],\n\t\tclientObject: {},\n\t\tclientIsEqual: undefined,\n\t\tipAddress: \"\"\n\t});\n\n\tconst [availableBlocks, setAvailableBlocks] = useState([]);\n\tconst [services, setServices] = useState([]);\n\tconst [selectedOptionAddons, setSelectedOptionAddons] = useState(null);\n\tconst [stepOne, setStepOne] = useState(\"default\");\n\tconst [stepTwo, setStepTwo] = useState(\"default\");\n\tconst [stepThree, setStepThree] = useState(\"default\");\n\tconst [addHeartbeatBuddies, setAddHeartbeatBuddies] = useState(false);\n\tconst [add8kRealisticView, setAdd8kRealisticView] = useState(false);\n\tconst [ultrasounds, setUltrasounds] = useState([]);\n\tconst [consultedUltrasounds, setConsultedUltrasounds] = useState([]);\n\tconst [weeks, setWeeks] = useState([]);\n\tconst [sitesInfo, setSitesInfo] = useState([]);\n\tconst [sendForm, setSendForm] = useState(false);\n\tconst [fixedServices, setFixedServices] = useState({\n\t\tspecialPromotion25min: \"\",\n\t\tgenderdetermination: \"\",\n\t\tearlypregnancy: \"\",\n\t\tmeetyourbaby25: \"\",\n\t\tmeetyourbaby15: \"\",\n\t});\n\tconst [hoverIndex8kRealisticView, setHoverIndex8kRealisticView] = useState(false);\n\tconst [hoverIndexBabyGrow, setHoverIndexBabyGrow] = useState(false);\n\tconst [hoverIndexHearthbeat, setHoverIndexHearthbeat] = useState(false);\n\tconst [modalBabyGrow, setModalBabyGrow] = useState(false);\n\tconst [modalHearthbeat, setModalHearthbeat] = useState(false);\n\tconst [modal8kRealisticView, setModal8kRealisticView] = useState(false);\n\tconst [clickButtonForm, setClickButtonForm] = useState(false);\n\tconst [addBabysGrowth, setAddBabysGrowth] = useState(false);\n\n\tconst [seletedService, setSeletedService] = useState(null)\n\tconst [addOns, setAddOns] = useState();\n\n\tconst [leadState, setLeadState] = useState({\n\t\tclientFound: false,\n\t\tleadRegistered: false,\n\t\tleadDeleted: false,\n\t\tleadUpdate: false,\n\t\tpartititonKey: \"\",\n\t\torderKey: \"\",\n\t});\n\n\tconst parent_origin = `${process.env.REACT_APP_FOLLOWING_URL}`;\n\tconst scrollParenTop = () => {\n\t\twindow.parent.postMessage({ task: \"scroll_top\" }, parent_origin);\n\t};\n\n\tconst siteInfo = sitesInfo.find((i) => i.site === `${state.siteId}-${state.locationId}`);\n\tconst googleTrackBooking = ({ name, service, date, time }) => {\n\t\tconsole.log(\"sending task to parent\");\n\t\twindow.parent.postMessage({ task: \"google_track_booking\", name, service, date, time }, parent_origin);\n\t};\n\n\tconst getSitesInfo = async () => {\n\t\ttry {\n\t\t\tconst getSitesData = {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t},\n\t\t\t};\n\t\t\tconst response = await fetch(\n\t\t\t\t`${process.env.REACT_APP_API_URL}/api/config/sites`,\n\t\t\t\tgetSitesData\n\t\t\t);\n\t\t\tconst data = await response.json();\n\t\t\tif (response.ok) {\n\t\t\t\tconst allSitesItem = data.sites.find(site => site.site === \"0-0\");\n\t\t\t\tlet sitesArray = []\n\t\t\t\tif (allSitesItem !== undefined) {\n\t\t\t\t\tsitesArray = data.sites.filter(site => site.site !== \"0-0\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tsitesArray = data.sites;\n\t\t\t\t}\n\t\t\t\tsetSitesInfo(sitesArray)\n\t\t\t} else {\n\t\t\t\tconsole.error(response);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(JSON.stringify(error));\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst filterSite = sitesInfo.find((i) => i.site === `${state.siteId}-${state.locationId}`);\n\t\tif (filterSite !== undefined) {\n\t\t\tconst date = new Date();\n\t\t\tconst timeZone = date.toLocaleString('en-US', { timeZone: filterSite?.timeZone });\n\t\t\tsetLocalTime((localTime) => ({\n\t\t\t\t...localTime,\n\t\t\t\tdate: timeZone\n\t\t\t}));\n\t\t}\n\t}, [sitesInfo, localTime.date])\n\n\tconst getPrice = (service) => {\n\t\treturn parseInt(service.split(\"$\")[1]);\n\t};\n\n\tconst orderServices = (services) => {\n\t\treturn services.sort(function (a, b) {\n\t\t\tif (getPrice(a.label) < getPrice(b.label)) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (getPrice(a.label) > getPrice(b.label)) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\t};\n\n\tconst getServiceId = (serviceName, servicesArray) => {\n\t\tconst sessionTypeName = serviceName;\n\t\tlet purifiedServiceName = \"\";\n\t\tlet remaining = \"\";\n\t\tlet serviceId = \"\";\n\t\tconst regex = /[-.()+\\s]/g;\n\n\t\tif (sessionTypeName.toLowerCase().includes(\"$\")) {\n\t\t\tconst indexPrice = sessionTypeName.toLowerCase().indexOf(\"$\");\n\t\t\tremaining = sessionTypeName.toLowerCase().slice(0, indexPrice);\n\t\t} else {\n\t\t\tremaining = serviceName;\n\t\t}\n\t\tpurifiedServiceName = remaining.replace(regex, \"\");\n\n\t\tservicesArray.forEach((serviceItem) => {\n\t\t\tlet purifiedServiceArray = \"\";\n\t\t\tlet remainingService = \"\";\n\n\t\t\tif (serviceItem.name.toLowerCase().includes(\"$\")) {\n\t\t\t\tconst indexPrice = serviceItem.name.toLowerCase().indexOf(\"$\");\n\t\t\t\tremainingService = serviceItem.name.toLowerCase().slice(0, indexPrice);\n\t\t\t} else {\n\t\t\t\tremainingService = serviceItem.name;\n\t\t\t}\n\t\t\tpurifiedServiceArray = remainingService.replace(regex, \"\");\n\t\t\tif (purifiedServiceArray === purifiedServiceName) {\n\t\t\t\tserviceId = serviceItem.sessionTypeId;\n\t\t\t}\n\t\t});\n\t\treturn serviceId;\n\t};\n\n\tuseEffect(() => { \n\t\tif (state.siteId === \"5742875\") { //Nashville\n\t\t\tconst today = moment().format(\"MM/DD/YYYY\").toString();\n\t\t\tconst dayFriday = moment(\"03/01/2025\").format(\"MM/DD/YYYY\").toString();\n\t\t\tsetState((state) => ({\n\t\t\t\t...state,\n\t\t\t\tstartDate: today > dayFriday ? today : dayFriday\n\t\t\t}));\n\t\t}\n\n\t}, [state.siteId]);\n\t// Loads the dropdown values and set the states for that display on first load\n\tuseEffect(() => {\n\t\tasync function getServices() {\n\t\t\ttry {\n\t\t\t\tconst authPayload = {\n\t\t\t\t\tUsername: `${process.env.REACT_APP_USER_NAME}`,\n\t\t\t\t\tPassword: `${process.env.REACT_APP_PASSWORD}`,\n\t\t\t\t};\n\n\t\t\t\tconst key = process.env.REACT_APP_ENCRYPTION_KEY;\n\t\t\t\tconst encrypted = crypto.AES.encrypt(JSON.stringify(authPayload), key).toString();\n\t\t\t\tconst body = { data: encrypted }\n\t\t\t\tconst authRequest = {\n\t\t\t\t\tmethod: \"PUT\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(body),\n\t\t\t\t};\n\t\t\t\tconst authResponse = await fetch(\n\t\t\t\t\t`${process.env.REACT_APP_API_URL}/api/userToken/`,\n\t\t\t\t\tauthRequest\n\t\t\t\t);\n\t\t\t\tconst authData = await authResponse.json();\n\t\t\t\tif (authResponse.ok) {\n\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tauthorization: authData.accesssToken,\n\t\t\t\t\t}));\n\t\t\t\t\tconst ultrasoundsRequest = {\n\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t\t\tauthorization: authData.accesssToken,\n\t\t\t\t\t\t\tlocationid: state.locationId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tconst ultrasoundResponse = await fetch(\n\t\t\t\t\t\t`${process.env.REACT_APP_API_URL}/api/sessionTypes/2`,\n\t\t\t\t\t\tultrasoundsRequest\n\t\t\t\t\t);\n\t\t\t\t\tconst ultrasoundsData = await ultrasoundResponse.json();\n\t\t\t\t\tlet filterMassageData;\n\t\t\t\t\tif (ultrasoundResponse.ok) {\n\n\t\t\t\t\t\tconst servicesUltrasounds = [...ultrasoundsData.services];\n\n\t\t\t\t\t\tconst filterServicesBySeeOnline = servicesUltrasounds.filter((i) => {\n\t\t\t\t\t\t\tif (state.siteId === \"557418\" && state.locationId === \"2\") {\n\n\t\t\t\t\t\t\t\tlet specialpromotion25min = i.name.toLowerCase().replace(/[-.()+\\s]/g, \"\").search(\"specialpromotion25min\");\n\t\t\t\t\t\t\t\tif (specialpromotion25min !== 0) return i.seeOnLine === true\n\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn i.seeOnLine === true\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}).map((i) => {\n\t\t\t\t\t\t\treturn i.name\n\t\t\t\t\t\t}).sort((a, b) => {\n\t\t\t\t\t\t\tif (a > b) return 1\n\t\t\t\t\t\t\tif (a < b) return -1\n\t\t\t\t\t\t\treturn 0;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (state.siteId === \"5723785\" || state.siteId === \"557418\" || state.siteId === \"902886\" || state.siteId === \"5721382\" || state.siteId === \"5721159\" || state.siteId === \"888809\") {\n\t\t\t\t\t\t\tconst massageRequest = {\n\t\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t\t\t\t\tauthorization: authData.accesssToken,\n\t\t\t\t\t\t\t\t\tlocationid: state.locationId,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst massageResponse = await fetch(\n\t\t\t\t\t\t\t\t`${process.env.REACT_APP_API_URL}/api/sessionTypes/3`,\n\t\t\t\t\t\t\t\tmassageRequest\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst massageData = await massageResponse.json();\n\t\t\t\t\t\t\tfilterMassageData = massageData.services.filter((i) => { return i.seeOnLine === true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst ultrasounds = [];\n\t\t\t\t\t\tconst massages = [];\n\t\t\t\t\t\tconst existingServices = [];\n\n\t\t\t\t\t\tfilterServicesBySeeOnline.forEach((service) => {\n\t\t\t\t\t\t\tconst serviceTypeId = getServiceId(service, ultrasoundsData.services);\n\t\t\t\t\t\t\tif (serviceTypeId !== \"\") {\n\t\t\t\t\t\t\t\tconst servicePrice = getPrice(service);\n\t\t\t\t\t\t\t\tconst serviceObject = {\n\t\t\t\t\t\t\t\t\tsessionTypeId: serviceTypeId,\n\t\t\t\t\t\t\t\t\tname: service,\n\t\t\t\t\t\t\t\t\tprice: servicePrice,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\texistingServices.push(serviceObject);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst ultrasoundServices = {\n\t\t\t\t\t\t\tservices: existingServices,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tultrasoundServices.services.forEach((item) => {\n\t\t\t\t\t\t\tconst mutableItem = {\n\t\t\t\t\t\t\t\tvalue: item.sessionTypeId,\n\t\t\t\t\t\t\t\tlabel: item.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tultrasounds.push(mutableItem);\n\t\t\t\t\t\t});\n\n\n\t\t\t\t\t\tsetUltrasounds(ultrasounds);\n\t\t\t\t\t\tsetConsultedUltrasounds(ultrasoundsData.services);\n\n\t\t\t\t\t\tif (state.siteId === \"5723785\" || state.siteId === \"557418\" || state.siteId === \"902886\" || state.siteId === \"5721382\" || state.siteId === \"5721159\" || state.siteId === \"888809\") {\n\t\t\t\t\t\t\tfilterMassageData.forEach((item) => {\n\t\t\t\t\t\t\t\tconst mutableItem = {\n\t\t\t\t\t\t\t\t\tvalue: item.sessionTypeId,\n\t\t\t\t\t\t\t\t\tlabel: item.name,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tmassages.push(mutableItem);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst displayableServices = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Ultrasounds\",\n\t\t\t\t\t\t\t\toptions: ultrasounds,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Massages\",\n\t\t\t\t\t\t\t\toptions: orderServices(massages),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tsetServices(displayableServices);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(JSON.stringify(error));\n\t\t\t}\n\t\t}\n\t\tgetSitesInfo();\n\t\tgetServices();\n\t\tconst arrayOfWeeks = [];\n\t\tarrayOfWeeks.push({\n\t\t\tvalue: \"I don't know\",\n\t\t\tlabel: \"I don't know\",\n\t\t});\n\t\tfor (let index = 5; index < 43; index++) {\n\t\t\tconst element = {\n\t\t\t\tvalue: \"\" + index,\n\t\t\t\tlabel: \"\" + index,\n\t\t\t};\n\t\t\tarrayOfWeeks.push(element);\n\t\t}\n\t\tsetWeeks(arrayOfWeeks);\n\t}, []);\n\n\tconst getFirstAvailability = (availabilities) => {\n\t\treturn availabilities.reduce((a, b) => {\n\t\t\tlet minDate; if (a && b) a.startDateTime < b.startDateTime ? minDate = a : minDate = b;\n\t\t\treturn minDate;\n\t\t}, {});\n\t}\n\n\tuseEffect(() => {\n\t\tif (state.authorization === \"\") {\n\t\t\treturn;\n\t\t}\n\t\tconst getAvailability = async () => {\n\t\t\tsetState((state) => ({\n\t\t\t\t...state,\n\t\t\t\tavailabilityRequestStatus: \"loading\",\n\t\t\t}));\n\n\t\t\ttry {\n\t\t\t\tconst sessionTypeId = \"\" + clientState.sessionTypeId;\n\t\t\t\tconst queryStartDate = moment(state.startDate)\n\t\t\t\t\t.format(\"MM/DD/YYYY\")\n\t\t\t\t\t.toString();\n\n\t\t\t\tconst availabilityRequest = {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\t\tlocationid: state.locationId,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tconst availabilityResponse = await fetch(\n\t\t\t\t\t`${process.env.REACT_APP_API_URL}/api/book/sites/${state.siteId}/locations/${state.locationId}/schedule?sessionTypeId=${sessionTypeId}&startDate=${queryStartDate}&endDate=${queryStartDate}`,\n\t\t\t\t\tavailabilityRequest\n\t\t\t\t);\n\n\t\t\t\tconst availabilityData = await availabilityResponse.json();\n\t\t\t\tif (availabilityResponse.ok) {\n\t\t\t\t\tconst rooms = availabilityData.schedule.map((room) => {\n\t\t\t\t\t\tconst appointments = [];\n\t\t\t\t\t\troom.appointments.forEach((appointment) => {\n\t\t\t\t\t\t\tconst mutableAppointment = appointment;\n\t\t\t\t\t\t\tconst segment = new Date(\n\t\t\t\t\t\t\t\tmutableAppointment.startDateTime\n\t\t\t\t\t\t\t).toLocaleTimeString(\"en-US\", {\n\t\t\t\t\t\t\t\thour: \"2-digit\",\n\t\t\t\t\t\t\t\tminute: \"2-digit\",\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tmutableAppointment.segment = segment;\n\t\t\t\t\t\t\tappointments.push(mutableAppointment);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst listApointments = [];\n\t\t\t\t\t\tavailabilityData.schedule.forEach((i) => {\n\t\t\t\t\t\t\tlistApointments.push(i.appointments[0])\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst searchFirstAppointment = listApointments.reduce((acc, app) => {\n\t\t\t\t\t\t\tacc[app?.startDateTime] = ++acc[app?.startDateTime] || 0;\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t}, {});\n\n\t\t\t\t\t\tconst firstDatesMatches = listApointments.filter((app) => {\n\t\t\t\t\t\t\treturn searchFirstAppointment[app?.startDateTime];\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tlet firstDates = {\n\t\t\t\t\t\t\tmatches: firstDatesMatches.length !== 0,\n\t\t\t\t\t\t\tseveralRooms: listApointments.length > 1\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconst roomReturn = {\n\t\t\t\t\t\t\tstaffId: room.id,\n\t\t\t\t\t\t\tstaffName: room.name,\n\t\t\t\t\t\t\tunavailabilities: room.unavailabilities,\n\t\t\t\t\t\t\tavailabilities: room.availabilities,\n\t\t\t\t\t\t\troomBlocks: [],\n\t\t\t\t\t\t\tappointments: appointments,\n\t\t\t\t\t\t\tfirstDatesMatches: firstDates\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn roomReturn;\n\t\t\t\t\t});\n\n\t\t\t\t\tconst displayableRooms = [];\n\t\t\t\t\trooms.forEach((room) => {\n\t\t\t\t\t\tconst mutableBlocks = [...blocks];\n\t\t\t\t\t\tconst availableBlocks = [];\n\t\t\t\t\t\tconst roomBlocks = mutableBlocks.map((block) => {\n\t\t\t\t\t\t\tconst mutableBlock = { ...block };\n\t\t\t\t\t\t\tconst addTwelve = mutableBlock.segment.includes(\"PM\");\n\t\t\t\t\t\t\tconst rawHours = parseInt(\n\t\t\t\t\t\t\t\tmutableBlock.segment.split(\" \")[0].split(\":\")[0]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst hours =\n\t\t\t\t\t\t\t\taddTwelve && rawHours !== 12 ? rawHours + 12 : rawHours;\n\t\t\t\t\t\t\tconst minutes = parseInt(\n\t\t\t\t\t\t\t\tmutableBlock.segment.split(\" \")[0].split(\":\")[1]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst stringDate = moment(state.startDate)\n\t\t\t\t\t\t\t\t.format(\"MM/DD/YYYY\")\n\t\t\t\t\t\t\t\t.toString();\n\t\t\t\t\t\t\tconst startDateTime = moment(stringDate)\n\t\t\t\t\t\t\t\t.add(hours, \"hours\")\n\t\t\t\t\t\t\t\t.add(minutes, \"minutes\")\n\t\t\t\t\t\t\t\t.format(\"YYYY-MM-DD[T]HH:mm:ss\");\n\t\t\t\t\t\t\tconst endDateTime = moment(startDateTime)\n\t\t\t\t\t\t\t\t.add(30, \"minutes\")\n\t\t\t\t\t\t\t\t.format(\"YYYY-MM-DD[T]HH:mm:ss\");\n\t\t\t\t\t\t\tmutableBlock.startDateTime = startDateTime;\n\t\t\t\t\t\t\tmutableBlock.endDateTime = endDateTime;\n\t\t\t\t\t\t\tconst blockDate = moment(stringDate)\n\t\t\t\t\t\t\t\t.add(hours, \"hours\")\n\t\t\t\t\t\t\t\t.add(minutes, \"minutes\")\n\t\t\t\t\t\t\t\t.toString();\n\t\t\t\t\t\t\tmutableBlock.blockDate = blockDate;\n\t\t\t\t\t\t\tmutableBlock.selected = false;\n\t\t\t\t\t\t\tlet available = false;\n\t\t\t\t\t\t\tlet firstBlockTime;\n\t\t\t\t\t\t\tlet hourRestrict = 1;\n\t\t\t\t\t\t\tconst isToday = moment().format(\"MM/DD/YYYY\");\n\t\t\t\t\t\t\tconst localStartTime = moment(localTime.date).format(\"YYYY-MM-DD[T]HH:mm:ss\");\n\t\t\t\t\t\t\tconst localEndTime = moment(localTime.date).add(hourRestrict, 'hours').format(\"YYYY-MM-DD[T]HH:mm:ss\");\n\t\t\t\t\t\t\tconst selectedDateBlock = moment(state.startDate).format(\"MM/DD/YYYY\");\n\t\t\t\t\t\t\tconst firstAppointment = room.appointments[0]?.startDateTime;\n\t\t\t\t\t\t\tconst firstAvailability = getFirstAvailability(room.availabilities)?.startDateTime;\n\n\t\t\t\t\t\t\tconst hourDifferenceAppt = moment(firstAppointment).diff(moment(localStartTime), 'hours');\n\t\t\t\t\t\t\tconst hourDifferenceBlocks = moment(blockDate).diff(moment(localStartTime), 'hours');\n\n\t\t\t\t\t\t\tif (isToday === selectedDateBlock) {\n\n\t\t\t\t\t\t\t\tif (room.firstDatesMatches.severalRooms) {\n\n\t\t\t\t\t\t\t\t\tif (room.firstDatesMatches.matches) {\n\t\t\t\t\t\t\t\t\t\tif (blockDate > moment(localStartTime).toString()) {\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockTime = moment(firstAvailability).toString();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (!room.firstDatesMatches.matches) {\n\t\t\t\t\t\t\t\t\t\tif (blockDate > moment(localStartTime).toString()) {\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockTime = moment(firstAppointment).toString();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (!room.firstDatesMatches.severalRooms) {\n\n\t\t\t\t\t\t\t\t\tif (firstAppointment !== firstAvailability) {\n\t\t\t\t\t\t\t\t\t\tif (hourDifferenceAppt <= hourRestrict && blockDate > moment(localStartTime).toString()) {\n\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockTime = moment(firstAppointment).toString();\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif (hourDifferenceBlocks >= hourRestrict) {\n\t\t\t\t\t\t\t\t\t\t\t\tfirstBlockTime = moment(localEndTime).toString();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (firstAppointment === firstAvailability) {\n\t\t\t\t\t\t\t\t\t\tif (blockDate > moment(localStartTime).toString() && blockDate > moment(firstAppointment).toString()) {\n\t\t\t\t\t\t\t\t\t\t\tfirstBlockTime = moment(localStartTime).toString();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfirstBlockTime = moment(state.startDate).add(\"08\", \"hours\").add(\"30\", \"minutes\").toString();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\troom.availabilities.forEach((availabilityBlock) => {\n\t\t\t\t\t\t\t\tavailable =\n\t\t\t\t\t\t\t\t\tavailable + (\n\t\t\t\t\t\t\t\t\t\tmoment(blockDate).isBetween(\n\t\t\t\t\t\t\t\t\t\t\tavailabilityBlock.startDateTime,\n\t\t\t\t\t\t\t\t\t\t\tavailabilityBlock.endDateTime,\n\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\t\"[)\"\n\t\t\t\t\t\t\t\t\t\t) * (blockDate >= firstBlockTime));\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\troom.unavailabilities.forEach((unavailabilityBlock) => {\n\t\t\t\t\t\t\t\tavailable =\n\t\t\t\t\t\t\t\t\tavailable *\n\t\t\t\t\t\t\t\t\t!moment(blockDate).isBetween(\n\t\t\t\t\t\t\t\t\t\tunavailabilityBlock.StartDateTime,\n\t\t\t\t\t\t\t\t\t\tunavailabilityBlock.EndDateTime,\n\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\"[)\"\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst blockAppointment = room.appointments.find((appointment) =>\n\t\t\t\t\t\t\t\tmoment(blockDate).isBetween(\n\t\t\t\t\t\t\t\t\tappointment.startDateTime,\n\t\t\t\t\t\t\t\t\tappointment.endDateTime,\n\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\"[)\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tmutableBlock.appointment =\n\t\t\t\t\t\t\t\tblockAppointment === undefined ? {} : blockAppointment;\n\n\t\t\t\t\t\t\tmutableBlock.available = Boolean(available);\n\n\t\t\t\t\t\t\tif (blockAppointment === undefined && available) {\n\t\t\t\t\t\t\t\tavailableBlocks.push(mutableBlock);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn mutableBlock;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst returnRoom = {\n\t\t\t\t\t\t\tstaffId: room.staffId,\n\t\t\t\t\t\t\tstaffName: room.staffName,\n\t\t\t\t\t\t\tunavailabilities: room.unavailabilities,\n\t\t\t\t\t\t\tavailabilities: room.availabilities,\n\t\t\t\t\t\t\troomBlocks: roomBlocks,\n\t\t\t\t\t\t\tavailableBlocks: availableBlocks,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tdisplayableRooms.push(returnRoom);\n\t\t\t\t\t});\n\n\t\t\t\t\tconst availableBlocksForDisplay = [];\n\t\t\t\t\tdisplayableRooms.forEach((room) => {\n\t\t\t\t\t\troom.availableBlocks.forEach((block) => {\n\t\t\t\t\t\t\tconst foundedBlock = availableBlocksForDisplay.find(\n\t\t\t\t\t\t\t\t(availableBlock) => availableBlock.id === block.id\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (foundedBlock !== undefined) {\n\t\t\t\t\t\t\t\tconst mutableBlock = foundedBlock;\n\t\t\t\t\t\t\t\tmutableBlock.staffId.push(room.staffId);\n\t\t\t\t\t\t\t\tmutableBlock.count++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst mutableBlock = { ...block };\n\t\t\t\t\t\t\t\tmutableBlock.staffId = [room.staffId];\n\t\t\t\t\t\t\t\tmutableBlock.count = 1;\n\t\t\t\t\t\t\t\tavailableBlocksForDisplay.push(mutableBlock);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tconst sortedBlocks = availableBlocksForDisplay.sort((a, b) =>\n\t\t\t\t\t\ta.startDateTime > b.startDateTime\n\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t: b.startDateTime > a.startDateTime\n\t\t\t\t\t\t\t\t? -1\n\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t);\n\n\t\t\t\t\tsetFirstLoad(false);\n\t\t\t\t\tsetAvailableBlocks(sortedBlocks);\n\n\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tavailabilityRequestStatus: \"ready\",\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tsetState((state) => ({\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tavailabilityRequestStatus: \"no-data-found\",\n\t\t\t\t\t\tmessage: JSON.stringify(availabilityData),\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tsetState((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tstatus: \"error\",\n\t\t\t\t\tavailabilityRequestStatus: \"error\",\n\t\t\t\t\tmessage: \"Onload page Error: \" + JSON.stringify(error.message),\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\t\tif (clientState.sessionTypeId !== \"\" && !useV2) getAvailability();\n\t}, [\n\t\tstate.startDate,\n\t\tstate.locationId,\n\t\tstate.siteId,\n\t\tstate.authorization,\n\t\tclientState.sessionTypeId,\n\t]);\n\n\n\tconst previousStep = (currentStep) => {\n\t\tswitch (currentStep) {\n\t\t\tcase \"availability\":\n\t\t\t\tsetState((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tstep: \"registerForm\",\n\t\t\t\t\tblock: {\n\t\t\t\t\t\tid: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tappointmentRequestStatus: \"IDLE\",\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\tcase \"summary\":\n\t\t\t\tsetState((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tstep: \"availability\",\n\t\t\t\t\tblock: {\n\t\t\t\t\t\tid: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tappointmentRequestStatus: \"IDLE\",\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tconst {\n\t\tcontrol,\n\t\twatch,\n\t\tregister,\n\t\tformState: { errors },\n\t\thandleSubmit,\n\t} = useForm();\n\n\tuseEffect(() => {\n\t\tupdateDimensions();\n\n\t\twindow.addEventListener(\"resize\", updateDimensions);\n\t\treturn () => window.removeEventListener(\"resize\", updateDimensions);\n\t}, []);\n\n\tconst updateDimensions = () => {\n\t\tconst width = window.innerWidth;\n\t\tsetWindowWidth(width);\n\t};\n\n\tconst getBGCombo = (serviceName, servicesArray) => {\n\t\tconst sessionTypeName = serviceName;\n\t\tlet purifiedServiceName = \"\";\n\t\tlet serviceId = \"\";\n\t\tconst regex = /[-.()+\\s]/g;\n\n\t\tif (sessionTypeName.toLowerCase().includes(\"$\")) {\n\t\t\tconst indexPrice = sessionTypeName.toLowerCase().indexOf(\"$\");\n\t\t\tconst remaining = sessionTypeName.toLowerCase().slice(0, indexPrice);\n\t\t\tpurifiedServiceName = remaining.replace(regex, \"\");\n\t\t}\n\n\t\tservicesArray.forEach((serviceItem) => {\n\t\t\tif (serviceItem.name.toLowerCase().includes(\"$\")) {\n\t\t\t\tconst indexAddon = serviceItem.name.toLowerCase().indexOf(\"$\");\n\t\t\t\tconst remainingConsulted = serviceItem.name\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.slice(0, indexAddon);\n\t\t\t\tconst purifiedConsulted = remainingConsulted.replace(regex, \"\");\n\t\t\t\tif (purifiedServiceName === purifiedConsulted) {\n\t\t\t\t\tserviceId = serviceItem.sessionTypeId;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn serviceId;\n\t};\n\n\tconst onFormSubmit = async (data) => {\n\t\tscrollParenTop();\n\t\tlet sessionTypeId = data.service.value;\n\t\tlet sessionTypeName = data.service.label;\n\n\t\tsetClientState((clientState) => ({\n\t\t\t...clientState,\n\t\t\tfirstName: data.firstName,\n\t\t\tlastName: data.lastName,\n\t\t\temail: data.email,\n\t\t\tphone: data.phone.replace(/[^0-9]/gi, ''),\n\t\t\tweeks: data.weeks.label,\n\t\t\tsessionTypeId: sessionTypeId,\n\t\t\tsessionTypeName: sessionTypeName,\n\t\t\tlanguage: state.language,\n\t\t}));\n\n\t\tsetState((state) => ({\n\t\t\t...state,\n\t\t\t// step: \"addons\",\n\t\t\tstep: \"availability\",\n\t\t}));\n\n\t\tif (clientState.clientRequestStatus === \"loading\") {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tlet clientId = \"n/a\";\n\t\t\tsetClientState((clientState) => ({\n\t\t\t\t...clientState,\n\t\t\t\tclientRequestStatus: \"loading\",\n\t\t\t}));\n\t\t\tconst searchClientsRequest = {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t},\n\t\t\t};\n\t\t\tconst searchClientsResponse = await fetch(\n\t\t\t\t`${process.env.REACT_APP_API_URL}/api/clients/clients?searchText=${data.phone.replace(/[^0-9]/gi, '')}`,\n\t\t\t\tsearchClientsRequest\n\t\t\t);\n\t\t\tconst searchClientsData = await searchClientsResponse.json();\n\t\t\tif (searchClientsResponse.ok) {\n\n\t\t\t\tsetSendForm(true)\n\n\t\t\t\tif (\n\t\t\t\t\tdata.firstName + \" \" + data.lastName ===\n\t\t\t\t\tsearchClientsData.clients[0].name &&\n\t\t\t\t\tsearchClientsData.clients[0].email === data.email &&\n\t\t\t\t\tsearchClientsData.clients[0].phone.replace(/[^0-9]/gi, '') === data.phone.replace(/[^0-9]/gi, '')\n\t\t\t\t) {\n\t\t\t\t\tsetClientState((clientState) => ({\n\t\t\t\t\t\t...clientState,\n\t\t\t\t\t\tclientRequestStatus: \"CLIENT-FOUND\",\n\t\t\t\t\t\tclientObject: searchClientsData.clients[0],\n\t\t\t\t\t\tsearchResults: searchClientsData.clients,\n\t\t\t\t\t}));\n\t\t\t\t\tclientId = searchClientsData.clients[0].clientId;\n\t\t\t\t} else {\n\t\t\t\t\tsetClientState((clientState) => ({\n\t\t\t\t\t\t...clientState,\n\t\t\t\t\t\tclientRequestStatus: \"CLIENT-FOUND-DIFFERENT\",\n\t\t\t\t\t\tclientObject: searchClientsData.clients[0],\n\t\t\t\t\t\tsearchResults: searchClientsData.clients,\n\t\t\t\t\t}));\n\t\t\t\t\tclientId = searchClientsData.clients[0].clientId;\n\t\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t\t...leadState,\n\t\t\t\t\t\tclientFound: false,\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetClientState((clientState) => ({\n\t\t\t\t\t...clientState,\n\t\t\t\t\tclientRequestStatus: \"CLIENT-NOT-FOUND\",\n\t\t\t\t\tsearchResults: [],\n\t\t\t\t}));\n\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t...leadState,\n\t\t\t\t\tclientFound: false,\n\t\t\t\t}));\n\t\t\t}\n\t\t\tconst leadPayload = {\n\t\t\t\tsiteId: state.siteId,\n\t\t\t\tname: data.firstName + \" \" + data.lastName,\n\t\t\t\tmobilePhone: data.phone.replace(/[^0-9]/gi, ''),\n\t\t\t\temail: data.email,\n\t\t\t\tservice: sessionTypeName,\n\t\t\t\tclientId: clientId === undefined ? \"n/a\" : clientId,\n\t\t\t\tdateTime: moment().format(\"YYYY-MM-DD[T]HH:mm:ss\").toString(),\n\t\t\t\tstep: 1,\n\t\t\t\tlanguage: state.language,\n\t\t\t};\n\t\t\tconst leadRequest = {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-type\": \"application/json; charset=UTF-8\",\n\t\t\t\t\tauthorization: state.authorization,\n\t\t\t\t\tsiteid: state.siteId,\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify(leadPayload),\n\t\t\t};\n\t\t\tconst leadResponse = await fetch(\n\t\t\t\t`${process.env.REACT_APP_API_URL}/api/book/clients`,\n\t\t\t\tleadRequest\n\t\t\t);\n\t\t\tconst leadData = await leadResponse.json();\n\t\t\tif (leadResponse.ok) {\n\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t...leadState,\n\t\t\t\t\tclientFound: true,\n\t\t\t\t\tleadRegistered: true,\n\t\t\t\t\tpartititonKey: leadData.partititonKey,\n\t\t\t\t\torderKey: leadData.orderKey,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tsetLeadState((leadState) => ({\n\t\t\t\t\t...leadState,\n\t\t\t\t\tclientFound: true,\n\t\t\t\t\tleadRegistered: false,\n\t\t\t\t}));\n\t\t\t\tconsole.log(\"Error registering lead\");\n\t\t\t\tconsole.error(leadData);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsetState((state) => ({\n\t\t\t\t...state,\n\t\t\t\tstatus: \"error\",\n\t\t\t\tmessage: \"Client request Error: \" + JSON.stringify(error.message),\n\t\t\t}));\n\t\t}\n\t};\n\n\t/*function to check if its of the new 15 min services \n\tconst isV2Service = (service) => {\n\t\treturn service.label.toLowerCase().includes(\"15 min\");\n\t}\n\t*/\n\n\tconst onChangeServices = (service) => {\n\t\tsetSeletedService(service)\n\t\tsetAddBabysGrowth(false);\n\t\tsetAddHeartbeatBuddies(false);\n\t\tsetAdd8kRealisticView(false)\n\t};\n\n\tconst handleAddonsSelected = (e) => {\n\t\tconst addons = e;\n\t\tsetSelectedOptionAddons(addons);\n\t\tsetHoverIndexBabyGrow(false)\n\t\tsetHoverIndexHearthbeat(false)\n\t\tsetHoverIndex8kRealisticView(false)\n\t};\n\n\tconst handleFixedServices = () => {\n\n\t\tconst service = {\n\t\t\tspecialPromotion25min: seletedService ? seletedService?.label?.toLowerCase().replace(/[-.()+\\s]/g, \"\").search(\"specialpromotion25min\") : \"\",\n\t\t\tgenderdetermination: seletedService ? seletedService?.label?.toLowerCase().replace(/[-.()+\\s]/g, \"\").search(\"genderdetermination\") : \"\",\n\t\t\tearlypregnancy: seletedService ? seletedService?.label?.toLowerCase().replace(/[-.()+\\s]/g, \"\").search(\"earlypregnancy\") : \"\",\n\t\t\tmeetyourbaby25: seletedService ? seletedService?.label?.toLowerCase().replace(/[-.()+\\s]/g, \"\").search(\"meetyourbaby25\") : \"\",\n\t\t\tmeetyourbaby15: seletedService ? seletedService?.label?.toLowerCase().replace(/[-.()+\\s]/g, \"\").search(\"meetyourbaby15\") : \"\",\n\t\t\tpeaceofmind: seletedService ? seletedService?.label?.toLowerCase().replace(/[-.()+\\s]/g, \"\").search(\"peaceofmind\") : \"\",\n\n\t\t}\n\t\tsetFixedServices((fixedServices) => ({\n\t\t\t...fixedServices,\n\t\t\tspecialPromotion25min: service.specialPromotion25min === 0,\n\t\t\tgenderdetermination: service.genderdetermination === 0,\n\t\t\tearlypregnancy: service.earlypregnancy === 0,\n\t\t\tmeetyourbaby25: service.meetyourbaby25 === 0,\n\t\t\tmeetyourbaby15: service.meetyourbaby15 === 0,\n\t\t\tpeaceofmind: service.peaceofmind === 0,\n\t\t}));\n\t}\n\tuseEffect(() => {\n\t\thandleFixedServices();\n\t}, [seletedService, services]);\n\n\tuseEffect(() => {\n\n\t\tif (selectedOptionAddons) {\n\n\t\t\tlet formattingSelectedOptionAddons;\n\n\t\t\tif (fixedServices.genderdetermination) {\n\n\t\t\t\tformattingSelectedOptionAddons = selectedOptionAddons.filter((i) => { return i.value !== \"8K Realistic View\" })\n\t\t\t\tsetSelectedOptionAddons(formattingSelectedOptionAddons)\n\n\t\t\t} else if (fixedServices.earlypregnancy || fixedServices.specialPromotion25min) {\n\n\t\t\t\tformattingSelectedOptionAddons = selectedOptionAddons.filter((i) => { return i.value !== \"Baby's Growth\" && i.value !== \"8K Realistic View\" })\n\t\t\t\tsetSelectedOptionAddons(formattingSelectedOptionAddons)\n\n\t\t\t} else if (fixedServices.meetyourbaby25 || fixedServices.meetyourbaby15) {\n\n\t\t\t\tsetSelectedOptionAddons(selectedOptionAddons)\n\n\t\t\t} else {\n\t\t\t\tsetSelectedOptionAddons([])\n\t\t\t}\n\t\t}\n\t}, [seletedService, fixedServices]);\n\n\tconst addOnsToMeetYourBaby = [\n\t\t{\n\t\t\tvalue: \"Heartbeat Buddies\",\n\t\t\tlabel: (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tHeartbeat Buddies\n\t\t\t\t\t
\n\t\t\t\t\t
setHoverIndexHearthbeat(true)}\n\t\t\t\t\t\tonMouseLeave={() => setHoverIndexHearthbeat(false)}\n\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t { setModalHearthbeat(true) }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tvalue: \"Baby's Growth\",\n\t\t\tlabel: (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tBaby's Growth\n\t\t\t\t\t
\n\t\t\t\t\t
setHoverIndexBabyGrow(true)}\n\t\t\t\t\t\tonMouseLeave={() => setHoverIndexBabyGrow(false)}\n\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t setModalBabyGrow(true)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tvalue: \"8K Realistic View\",\n\t\t\tlabel: (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t8K Realistic View\n\t\t\t\t\t
\n\t\t\t\t\t
setHoverIndex8kRealisticView(true)}\n\t\t\t\t\t\tonMouseLeave={() => setHoverIndex8kRealisticView(false)}\n\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t setModal8kRealisticView(true)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)\n\t\t}\n\t];\n\tconst addOnsToGenderDetermination = [\n\t\t{\n\t\t\tvalue: \"Heartbeat Buddies\",\n\t\t\tlabel: (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tHeartbeat Buddies\n\t\t\t\t\t
\n\t\t\t\t\t
setHoverIndexHearthbeat(true)}\n\t\t\t\t\t\tonMouseLeave={() => setHoverIndexHearthbeat(false)}\n\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t { setModalHearthbeat(true) }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tvalue: \"Baby's Growth\",\n\t\t\tlabel: (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tBaby's Growth\n\t\t\t\t\t
\n\t\t\t\t\t
setHoverIndexBabyGrow(true)}\n\t\t\t\t\t\tonMouseLeave={() => setHoverIndexBabyGrow(false)}\n\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t setModalBabyGrow(true)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)\n\t\t}\n\t];\n\tconst addOnsToEarlyPregnancy = [\n\t\t{\n\t\t\tvalue: \"Heartbeat Buddies\",\n\t\t\tlabel: (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tHeartbeat Buddies\n\t\t\t\t\t
\n\t\t\t\t\t
setHoverIndexHearthbeat(true)}\n\t\t\t\t\t\tonMouseLeave={() => setHoverIndexHearthbeat(false)}\n\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t setModalHearthbeat(true)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)\n\t\t}];\n\n\tuseEffect(() => {\n\n\t\tlet babyGrow;\n\t\tlet hearthbeat;\n\t\tlet realisticView;\n\n\t\tif (selectedOptionAddons) {\n\t\t\tbabyGrow = selectedOptionAddons.find(i => i.value === \"Baby's Growth\");\n\t\t\thearthbeat = selectedOptionAddons.find(i => i.value === \"Heartbeat Buddies\");\n\t\t\trealisticView = selectedOptionAddons.find(i => i.value === \"8K Realistic View\");\n\t\t}\n\t\tif (fixedServices.genderdetermination) {\n\n\t\t\tsetAddOns(addOnsToGenderDetermination)\n\n\t\t\tif (realisticView === undefined) setAdd8kRealisticView(false);\n\n\t\t\tif (hearthbeat === undefined) {\n\t\t\t\tsetAddHeartbeatBuddies(false)\n\t\t\t\taddOnsToGenderDetermination[0].label = addOnsToGenderDetermination[0].label;\n\t\t\t} else {\n\t\t\t\tsetAddHeartbeatBuddies(true);\n\t\t\t\thearthbeat.label = Heartbeat Buddies;\n\t\t\t}\n\t\t\tif (babyGrow === undefined) {\n\t\t\t\tsetAddBabysGrowth(false)\n\t\t\t\taddOnsToGenderDetermination[1].label = addOnsToGenderDetermination[1].label;\n\t\t\t} else {\n\t\t\t\tsetAddBabysGrowth(true)\n\t\t\t\tbabyGrow.label = Baby's Growth;\n\t\t\t}\n\n\t\t} else if (fixedServices.meetyourbaby25 || fixedServices.meetyourbaby15) {\n\n\t\t\tsetAddOns(addOnsToMeetYourBaby)\n\n\t\t\tif (hearthbeat === undefined) {\n\t\t\t\tsetAddHeartbeatBuddies(false)\n\t\t\t\taddOnsToMeetYourBaby[0].label = addOnsToMeetYourBaby[0].label;\n\t\t\t} else {\n\t\t\t\tsetAddHeartbeatBuddies(true);\n\t\t\t\thearthbeat.label = Heartbeat Buddies;\n\t\t\t}\n\t\t\tif (babyGrow === undefined) {\n\t\t\t\tsetAddBabysGrowth(false)\n\t\t\t\taddOnsToMeetYourBaby[1].label = addOnsToMeetYourBaby[1].label;\n\t\t\t} else {\n\t\t\t\tsetAddBabysGrowth(true)\n\t\t\t\tbabyGrow.label = Baby's Growth;\n\t\t\t}\n\t\t\tif (realisticView === undefined) {\n\t\t\t\tsetAdd8kRealisticView(false)\n\t\t\t\taddOnsToMeetYourBaby[2].label = addOnsToMeetYourBaby[2].label;\n\t\t\t} else {\n\t\t\t\tsetAdd8kRealisticView(true)\n\t\t\t\trealisticView.label = 8K Realistic View;\n\t\t\t}\n\n\t\t}\n\t\telse if (fixedServices.earlypregnancy || fixedServices.specialPromotion25min || fixedServices.peaceofmind) {\n\n\t\t\tsetAddOns(addOnsToEarlyPregnancy)\n\n\t\t\tif (babyGrow === undefined) setAddBabysGrowth(false);\n\n\t\t\tif (realisticView === undefined) setAdd8kRealisticView(false);\n\n\t\t\tif (hearthbeat === undefined) {\n\t\t\t\tsetAddHeartbeatBuddies(false)\n\t\t\t\taddOnsToEarlyPregnancy[0].label = addOnsToEarlyPregnancy[0].label;\n\t\t\t} else {\n\t\t\t\tsetAddHeartbeatBuddies(true);\n\t\t\t\thearthbeat.label = Heartbeat Buddies;\n\t\t\t}\n\n\t\t} else {\n\t\t\tsetAddHeartbeatBuddies(false)\n\t\t\tsetAdd8kRealisticView(false)\n\t\t\tsetAddBabysGrowth(false)\n\t\t\tsetAddOns([]);\n\t\t}\n\t}, [\n\t\tseletedService,\n\t\tselectedOptionAddons,\n\t\tfixedServices,\n\t\tultrasounds\n\t]);\n\n\tuseEffect(() => {\n\t\tlet newSessionTypeId = clientState.sessionTypeId;\n\t\tlet newSessionTypeName = clientState.sessionTypeName;\n\t\tconst costBabysGrowth = 29;\n\n\t\tif (fixedServices.meetyourbaby25 && addBabysGrowth) {\n\t\t\tconst costMeetYourbaby25 = seletedService.label.match(/(\\d+)/g);\n\t\t\tconst costMeetYourbaby25PlusBabysGrowth = parseFloat(costMeetYourbaby25[2]) + costBabysGrowth;\n\n\t\t\tnewSessionTypeId = getBGCombo(\n\t\t\t\t`Meet Your Baby - 25 Min 5D/HD + Baby's Growth $${costMeetYourbaby25PlusBabysGrowth}`,\n\t\t\t\tconsultedUltrasounds\n\t\t\t);\n\t\t\tnewSessionTypeName = `Meet Your Baby - 25 Min 5D/HD + Baby's Growth $${costMeetYourbaby25PlusBabysGrowth}`;\n\t\t}\n\n\t\tif (fixedServices.meetyourbaby15 && addBabysGrowth) {\n\t\t\tconst costMeetYourbaby15 = seletedService.label.match(/(\\d+)/g);\n\t\t\tconst costMeetYourbaby15PlusBabysGrowth = parseFloat(costMeetYourbaby15[2]) + costBabysGrowth;\n\n\t\t\tnewSessionTypeId = getBGCombo(\n\t\t\t\t`Meet Your Baby - 15 Min 5D/HD + Baby's Growth $${costMeetYourbaby15PlusBabysGrowth}`,\n\t\t\t\tconsultedUltrasounds\n\t\t\t);\n\t\t\tnewSessionTypeName = `Meet Your Baby - 15 Min 5D/HD + Baby's Growth $${costMeetYourbaby15PlusBabysGrowth}`;\n\t\t}\n\n\t\tif (fixedServices.genderdetermination && addBabysGrowth) {\n\n\t\t\tconst costGenderDetermination = seletedService.label.match(/(\\d+)/g);\n\t\t\tconst costGenderPlusBabysGrowth = parseFloat(costGenderDetermination[0]) + costBabysGrowth;\n\n\t\t\tnewSessionTypeId = getBGCombo(\n\t\t\t\t`Gender Determination + Baby's Growth - $${costGenderPlusBabysGrowth} `,\n\t\t\t\tconsultedUltrasounds\n\t\t\t);\n\t\t\tnewSessionTypeName = `Gender Determination + Baby's Growth - $${costGenderPlusBabysGrowth} `;\n\t\t}\n\n\t\tsetClientState((clientState) => ({\n\t\t\t...clientState,\n\t\t\tsessionTypeId: newSessionTypeId,\n\t\t\tsessionTypeName: newSessionTypeName,\n\t\t}));\n\t}, [\n\t\tsendForm,\n\t\tclientState.sessionTypeName,\n\t\tclientState.sessionTypeId,\n\t\taddBabysGrowth,\n\t\tseletedService,\n\t\tfixedServices\n\t]);\n\n\tuseEffect(() => {\n\t\tlet formattingSelectedOptionAddons;\n\t\tif (modalHearthbeat) {\n\t\t\tformattingSelectedOptionAddons = selectedOptionAddons.filter((i) => { return i.value !== \"Heartbeat Buddies\" })\n\t\t\tsetSelectedOptionAddons(formattingSelectedOptionAddons)\n\t\t\tsetAddHeartbeatBuddies(false)\n\t\t}\n\t\tif (modalBabyGrow) {\n\t\t\tformattingSelectedOptionAddons = selectedOptionAddons.filter((i) => { return i.value !== \"Baby's Growth\" })\n\t\t\tsetSelectedOptionAddons(formattingSelectedOptionAddons)\n\t\t\tsetAddBabysGrowth(false)\n\t\t}\n\t\tif (modal8kRealisticView) {\n\t\t\tformattingSelectedOptionAddons = selectedOptionAddons.filter((i) => { return i.value !== \"8K Realistic View\" })\n\t\t\tsetSelectedOptionAddons(formattingSelectedOptionAddons)\n\t\t\tsetAdd8kRealisticView(false)\n\t\t}\n\t}, [modalBabyGrow, modalHearthbeat, modal8kRealisticView])\n\n\n\tuseEffect(() => {\n\t\tlet val = false;\n\t\tif (errors.firstName) {\n\t\t\tval = true;\n\t\t}\n\t\tif (errors.lastName) {\n\t\t\tval = true;\n\t\t}\n\t\tif (errors.email) {\n\t\t\tval = true;\n\t\t}\n\t\tif (errors.phone) {\n\t\t\tval = true;\n\t\t}\n\t\tif (errors.weeks) {\n\t\t\tval = true;\n\t\t}\n\t\tif (errors.service) {\n\t\t\tval = true;\n\t\t}\n\t\tif (errors.temsCheckbox) {\n\t\t\tval = true;\n\t\t}\n\t\tif (clickButtonForm) {\n\t\t\tif (val) {\n\t\t\t\tsetStepOne(\"invalid\")\n\t\t\t} else {\n\t\t\t\tsetStepOne(\"success\");\n\t\t\t}\n\t\t}\n\n\t}, [\n\t\terrors.firstName,\n\t\terrors.lastName,\n\t\terrors.email,\n\t\terrors.phone,\n\t\terrors.weeks,\n\t\terrors.service,\n\t\terrors.temsCheckbox,\n\t\tclickButtonForm\n\t])\n\n\n\treturn (\n\t\t
\n\n\t\t\t\n\n\t\t\t{state.step === \"registerForm\" && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{state.step === \"availability\" && !useV2 && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{state.step === \"availability\" && useV2 && (\n\t\t\t\t\n\t\t\t)}\n\n\n\t\t\t{state.step === \"summary\" && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}