{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/utils.js","webpack:///./src/components/appFooter/AppFooter.vue?dcb4","webpack:///./src/helpers/env.js","webpack:///./src/lang/covid-screening-metadata/CovidScreeningMetadataLang.js","webpack:///./src/components/TzLoading.vue?7246","webpack:///./src/components/bars/standardHeaderMenu/StandardHeaderMenu.vue?1afc","webpack:///./src/components/bars/logoutConfirmationModal/LogoutConfirmationModal.vue?8556","webpack:///./src/lang/region/RegionLang.js","webpack:///./src/lang/en.js","webpack:///./src/store/modules/loading.js","webpack:///./src/store/modules/appointments.js","webpack:///./src/store/modules/availabilities.js","webpack:///./src/store/modules/error.js","webpack:///./src/store/modules/establishment.js","webpack:///./src/store/modules/places.js","webpack:///./src/store/modules/other.js","webpack:///./src/store/modules/resources.js","webpack:///./src/store/modules/services.js","webpack:///./src/store/modules/forms.js","webpack:///./src/store/modules/snackbar.js","webpack:///./src/store/modules/texts.js","webpack:///./src/store/modules/analytics.js","webpack:///./src/store/modules/stats.js","webpack:///./src/store/modules/metadataForm.js","webpack:///./src/store/modules/calendar/calendarDisplaySettings.js","webpack:///./src/store/modules/gap.js","webpack:///./src/store/modules/mobileDialogMenu.js","webpack:///./src/store/modules/kcLogin/helpers.js","webpack:///./src/store/modules/kcLogin/kcLogin.js","webpack:///./src/store/modules/globalSettings.js","webpack:///./src/store/index.js","webpack:///./src/components/bars/logoHeader/LogoHeader.vue?600a","webpack:///./src/App.vue?4c4d","webpack:///./src/components/TitleBar.vue?1839","webpack:///./src/components/bars/mobileHeaderMenu/MobileHeaderMenu.vue?7d69","webpack:///./src/components/bars/mobileHeaderMenu/MobileDialogMenu.vue?5480","webpack:///./src/components/bars/profileButtons/profileButtons.vue?d7c3","webpack:///./src/components/bars/logoutConfirmationModal/LogoutConfirmationModal.vue?0db0","webpack:///src/components/bars/logoutConfirmationModal/LogoutConfirmationModal.vue","webpack:///./src/components/bars/logoutConfirmationModal/LogoutConfirmationModal.vue?082b","webpack:///./src/components/bars/logoutConfirmationModal/LogoutConfirmationModal.vue","webpack:///src/components/bars/profileButtons/profileButtons.vue","webpack:///./src/components/bars/profileButtons/profileButtons.vue?dfc4","webpack:///./src/components/bars/profileButtons/profileButtons.vue","webpack:///./src/components/bars/topHeaderMenu/MenuItems.vue?380c","webpack:///src/components/bars/topHeaderMenu/MenuItems.vue","webpack:///./src/components/bars/topHeaderMenu/MenuItems.vue?6a37","webpack:///./src/components/bars/topHeaderMenu/MenuItems.vue","webpack:///src/components/bars/mobileHeaderMenu/MobileDialogMenu.vue","webpack:///./src/components/bars/mobileHeaderMenu/MobileDialogMenu.vue?fa04","webpack:///./src/components/bars/mobileHeaderMenu/MobileDialogMenu.vue","webpack:///./src/components/bars/logoHeader/LogoHeader.vue?11c0","webpack:///src/components/bars/logoHeader/LogoHeader.vue","webpack:///./src/components/bars/logoHeader/LogoHeader.vue?4175","webpack:///./src/components/bars/logoHeader/LogoHeader.vue","webpack:///src/components/bars/mobileHeaderMenu/MobileHeaderMenu.vue","webpack:///./src/components/bars/mobileHeaderMenu/MobileHeaderMenu.vue?f044","webpack:///./src/components/bars/mobileHeaderMenu/MobileHeaderMenu.vue","webpack:///./src/components/bars/standardHeaderMenu/StandardHeaderMenu.vue?f640","webpack:///src/components/bars/standardHeaderMenu/StandardHeaderMenu.vue","webpack:///./src/components/bars/standardHeaderMenu/StandardHeaderMenu.vue?f89c","webpack:///./src/components/bars/standardHeaderMenu/StandardHeaderMenu.vue","webpack:///./src/components/bars/topHeaderMenu/TopHeaderMenu.vue?9895","webpack:///src/components/bars/topHeaderMenu/TopHeaderMenu.vue","webpack:///./src/components/bars/topHeaderMenu/TopHeaderMenu.vue?c15e","webpack:///./src/components/bars/topHeaderMenu/TopHeaderMenu.vue","webpack:///src/components/TitleBar.vue","webpack:///./src/components/TitleBar.vue?5c42","webpack:///./src/components/TitleBar.vue","webpack:///./src/components/trimozSnackBar/TrimozSnackbar.vue?b688","webpack:///src/components/trimozSnackBar/TrimozSnackbar.vue","webpack:///./src/components/trimozSnackBar/TrimozSnackbar.vue?43af","webpack:///./src/components/trimozSnackBar/TrimozSnackbar.vue","webpack:///./src/components/TrimozErrorDialog.vue?56f6","webpack:///src/components/TrimozErrorDialog.vue","webpack:///./src/components/TrimozErrorDialog.vue?b00e","webpack:///./src/components/TrimozErrorDialog.vue","webpack:///./src/components/SheddingPage.vue?4947","webpack:///src/components/SheddingPage.vue","webpack:///./src/components/SheddingPage.vue?61e8","webpack:///./src/components/SheddingPage.vue","webpack:///./src/components/establishmentHeader/EstablishmentHeader.vue?9232","webpack:///src/components/establishmentHeader/EstablishmentHeader.vue","webpack:///./src/components/establishmentHeader/EstablishmentHeader.vue?2cc9","webpack:///./src/components/establishmentHeader/EstablishmentHeader.vue?3092","webpack:///./src/components/appFooter/AppFooter.vue?4236","webpack:///./src/formatters/phone/nanp.js","webpack:///src/components/appFooter/AppFooter.vue","webpack:///./src/components/appFooter/AppFooter.vue?8b4f","webpack:///./src/components/appFooter/AppFooter.vue?4b34","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue?bff9","webpack:///./src/errors/errors.js","webpack:///./src/main.js","webpack:///./src/lang lazy ^\\.\\/.*$ namespace object","webpack:///./src/App.vue?165b","webpack:///./src/components/establishmentHeader/EstablishmentHeader.vue?30e5","webpack:///./src/lang/fr.js","webpack:///./src/lang/input-validation-accessibility/en.js","webpack:///./src/components/bars/mobileHeaderMenu/MobileHeaderMenu.vue?7115","webpack:///./src/enums.js","webpack:///./src/components/bars/mobileHeaderMenu/MobileDialogMenu.vue?c613","webpack:///./src/components/TzLoading.vue?b0ad","webpack:///src/components/TzLoading.vue","webpack:///./src/components/TzLoading.vue?9f81","webpack:///./src/components/TzLoading.vue","webpack:///./src/lang/input-validation-accessibility/fr.js","webpack:///./src/components/bars/topHeaderMenu/MenuItems.vue?522b","webpack:///./src/i18n.js","webpack:///./src/components/TitleBar.vue?d807","webpack:///./src/router/useRouter.js","webpack:///./src/router/index.js","webpack:///./src/components/trimozSnackBar/TrimozSnackbar.vue?8d3c","webpack:///./src/components/bars/profileButtons/profileButtons.vue?c569","webpack:///./src/config.js","webpack:///./src/lang/input-validation-accessibility/InputValidationAccessibilityLang.js","webpack:///./src/components/bars/topHeaderMenu/TopHeaderMenu.vue?a701"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","dateTimeToString","date","substr","formatTimefromJsDate","Date","parse","require","hour","getHours","min","getMinutes","formatDatefromJsDate","month","getMonth","day","getDate","year","getFullYear","join","stringDate","lang","options","weekday","toLocaleDateString","formatPhoneNumber","match","shadeColor","color","percent","f","parseInt","R","G","B","Math","round","toString","setProduct","domain","product","search","setFavicon","searchString","x","querySelectorAll","str","str2","remove","getGoogleTagManager","config","GTM","process","distanceBetweenLocation","lat1","lng1","lat2","lng2","earthRadius","degLat","deg2rad","degLng","sindLat","sin","sindLng","ret1","pow","cos","ret2","atan2","sqrt","deg","PI","maskNam","payload","replace","regex","RegExp","trim","maskPhoneNumber","unmask","parts","phone","isUsingKc","authModule","removeAccents","normalize","retainSTLetters","prefixRegex","index","substring","secondElement","test","addXForSmallNam","padEnd","removeDash","normalizeLastName","formattedValue","avoidNoAppointmentFocus","outsideDays","forEach","element","setFocusForAccessibility","elementId","timeOut","useBlurAll","blurAll","focusElement","getElementById","addEventListener","preventDefault","focus","tmp","body","isFirefox","navigator","userAgent","toLowerCase","indexOf","validateNamAgainstBirthday","clientData","nam","birthday","format","getBirthdayFromNAM","TrimozError","century","Number","now","yearFromBirthday","validateMinAge","currentEstSettings","warn","minimumAgePatient","find","ServiceSettings","MIN_AGE_TO_BOOK_PATIENT","minimumAgeAccompanyingPerson","MIN_AGE_TO_BOOK_ACCOMPANYING_PERSON","accompanyingPerson","priorityGroup","minimumAgePriorityGroup","MIN_AGE_TO_BOOK_REQUIRES_CONSENT","MIN_AGE_TO_BOOK_HEALTH_WORKER","MIN_AGE_TO_BOOK_ESSENTIAL_HEALTH_WORKER","MIN_AGE_TO_BOOK_CHRONIC_DISEASE","MIN_AGE_TO_BOOK_HANDICAPPED","MIN_AGE_TO_BOOK_HANDICAPPED_ACCOMPAGNATOR","MIN_AGE_TO_BOOK_PREGNANT_WOMAN","MIN_AGE_TO_BOOK_DAY_CAMP_WORKER","MIN_AGE_TO_BOOK_IMMUNOCOMPROMISED","requesterLink","APPOINTMENT_FOR_SOMEONE_ELSE","MIN_AGE_TO_BOOK_IN_APP","isNil","ageNow","diffInYears","differenceInYears","inferApiUrl","parsed","Url","VUE_APP_API","location","set","host","protocol","inferPortalUrl","pathname","hostname","inferCookieDomain","VUE_APP_COOKIE_DOMAIN","inferConsentDomain","VUE_APP_CONSENT_DOMAIN","CovidScreeningMetadataLang","fr","covidScreeningHealthcareInstitution","dropDown","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","covidScreeningHealthcareSharingResult","description","consent","refuse","covidScreeningHealthcareInstitutionType","covidScreeningConsentReceiveResultByEmailSms","accept","covidScreeningPreferredCommunication","covidScreeningCategory","covidScreeningStudentSchoolRegion","covidScreeningStudentLevel","dataTable","covidScreeningHealthcareWorker","covidScreeningHealthcareWorkerType","covidScreeningConsentSharingInformations","covidScreeningConsentReceiveResultByEmailSMS","covidScreeningTravelledOutsideQuebec","covidScreeningCountry","covidScreeningStudentInstitution","covidScreeningWorkingQuebec","covidScreeningEmployerName","covidScreeningChildNameOfNursery","covidScreeningOutbreakNumber","en","RegionMetadataLang","base","home","joinUs","btnSubmit","btnSubmitAriaLabel","close","delete","print","noData","continue","previous","cancel","between","yes","no","na","iDontKnow","noAnswer","choice","timezone","establishmentTimeZone","easternTime","atlanticTime","zipCode","male","female","changeVaccineType","backToResults","previousPage","distanceWarning","showMore","showLess","phonePrefix","phoneMask","namMask","dateMask","shortPostalCodeMask","postalCodeMask","faxPrefix","gapMode","errors","requiredField","requiredFieldWithLabel","requiredFieldConsentForm","requiredFieldsErrorList","requiredTermsAndConditions","requiredRecaptchaToken","failed","requiredFields","cellPhone2short","phone2short","invalidEmail","invalidNam","temporaryNAM","invalidUrl","invalidZipCode","invalidBirthday","invalidDate","invalidMonth","invalidName","invalidComments","zipcodeError","geolocShortPostcodeFormat","invalidConfirmationCode","errorDialogTitle","invalidEmployeeNumber","formQuestion","invalidExtension","scannedRequestMaxSize","invalidDateRange","travelInvalidDateRange","dateFuture","travelDateFuture","pregnancyDateFuture","datePast","invalidPrematureBirthWeeks","cookieConsent","linkLabel","buttonLabel","urlPath","accessibility","nextStep","header","accessibilitySkipToContentLink","subtitle","tabs","takeAppt","reminder","cancelAppt","profile","menu","myProfile","settings","disconnect","loginText","loggedText","createMyAccount","clicsante","title1","title2","solution","faq","job","terms","policy","cookiePolicy","locale","logoutConfirmationModal","title","text","logout","footer","website","trimoz","depistage","pharmaservices","pharmaprix","uniprix","allRightsReserved","path","mobileMenus","appt","selectPlace","unknowPlaceAddress","selectService","unknowServiceDescription","dateDescription","default","timeDescription","alternate","timeDescriptionSelected","stepsIntroduction","serviceName","formattedPlaceAddress","continueButtonLabel","registrationOption","profileCompletionOption","noAvailable","available","availsCheck","availsForMonthPrev","availsForMonthNext","noAvailsForMonthNext","fillFormA11yDirective","docTitle","answerQuestions","answeredQuestions","chooseService","chooseServiceSub","answerServiceFilters","answeredServiceFilters","zipCodeFilter","answeredZipCodeFilter","enterZipCode","choosePlace","choosePlaceSub","chooseMoment","stepProgresss","currentStep","completedStep","dataCollectionForm","dataCollectionAriaDescription","at","to","details","full","previousMonth","nextMonth","chooseMomentSub","chooseTime","nominativeData","nominativeDataSub","apptTime","apptTimeTitle","apptDateTitle","loadingTimeSlotsAriaMessage","noMetaToDisplay","duration","minutes","price","feesWillApply","priceOnDemand","freeOfCharges","upcoming","complete","selectMonth","serviceAvailable","serviceNotAvailable","topOfStepperForm","targetVaccine","targetPregnancy","scannedRequest","skipNAM","tooltips","number","time","clickToSee","clickToSeePlaceDetails","dayStatus","availabilities","toCome","kidsAvailabilitiesInsideDelay","kidsAvailabilitiesInsideTolerance","kidsAvailabilitiesOutsideTolerance","notifications","deleteSuccess","addSuccess","placeholder","email","confirmEmail","cellphone","firstName","lastName","requester_link_0","requester_link_1","requester_name","consentFormConfirmationCode","address","employeeNumber","employerName","workLocation","jobTitle","employeeRegion","employeeEstablishment","employeeCategory","hints","labels","employerRegion","apptDate","emailValid","first_name","last_name","birthdayValid","sendByEmail","sendBySMS","invalidAppointmentCount","atLeastOneRequired","noAvailability","emailNoMatch","dynamicServiceFilters","pregnancy_dpa","optinNewServiceList","comments","resident_first_name","resident_last_name","resident_room_number","resident_birthday","scanned_request","requester_link","travelerCount","ah635","healthProblems","immunosuppression","allergicReactions","pregnancyQuestion","bleedingDisorder","immunization","as624","healthProblemsQuestion","immunosuppressionQuestion","allergicReactionsQuestion","bleedingDisorderQuestion","hasBloodTransfusionQuestion","lessThanSixMonthsMotherTreatmentQuestion","healthWorker","informalCaregiver","childcareWorker","essentialHealthWorker","chronicDisease","handicapped","handicappedAccompagnator","pregnantWoman","publicHealthWorker","schoolWorker","dayCampWorker","seniorsResidence","astra45","nothing","nothing12","nothing14","nothing18","nothing25","nothing30","nothing35","nothing40","nothing45","nothing50","nothing55","nothing60","nothing65","nothing70","nothing75","nothing80","requiresConsent","immunocompromised","rpa","hint","vaccineArn","none","genericVaccine","ageGroupIdentified","influenza","healthStatus","isImmunosuppressive","hasSevereReaction","isPregnant","receivedVaccineLastMonth","hasImmunocompromisedContact","peopleWhoLiveWithMe","hasBloodTransfusion","receivedPneumococcalVaccine","isHealthCareWorker","receivedShinglesVaccine","vaccineApprehension","coveredRamq","child6MonthTo17Years","adultChronicDisease","pregnant","person75AndMore","child6MonthTo23Month","person60To74","caregiver","healthCareWorker","civilStatusLabel","single","divorced","married","separated","widowed","coadminInjection","option1","option2","option3","relationshipListLabel","father2","friend","other","stepmother","stepfather","joint","daughter","son","brother","grandmother","grandfather","mother","nephew","niece","grandson","dad","sister","mother2","establishment","pharmacie","clinique_privee","etablissement_de_sante","demo","coupon","thanks","service","resource","place","placeInstructions","instructions","additionalInformation","confirmSMS","reminderEmail","reminderSMS","virtualReminder","smsSent","backToApptBooking","totalApptBooked","nextApptBookNotif","cancelCouponTitle","takeAnotherAppt","btn","createProfile","whyCreateProfile","profileAdvantage","actionBtn","advantage1","advantage2","advantage3","reminderInfo","remindersInfo","maxDate","addChild","submitSuccess","cancelTitle","cancelSingleTitle","cancelMultipleTitle","couponLostTitle","unableToCancel","couponNumber","appointmentDate","appointmentDateRequired","groupUuidFromEmail","couponNumberRequired","cancelMyAppointment","cancelMyAppointments","getMyAppointment","keepMyAppointments","keepMyAppointment","cancelSuccess","couponLostSuccess","couponLostSuccessNoContent","invalidCouponNumber","appointmentDateInvalid","couponNotAssociated","prefilledCouponNumber","prefilledAppointmentDate","apptToBeCancelled","confirm","confirmSuccess","byPhone","byMail","send","form","required","optional","fieldIsRequired","ownerTermsText","otherTermsText","ownerConsentCollectData","otherConsentCollectData","ownerConsentReceiveMarketing","otherConsentReceiveMarketing","preTermsText","prePolicyText","termsLink","policyLink","birthDate","vaccine","reminderDate","age","status","ramq","adult","child","receiveSMSConfirmation","selectNam","consentHints","warning","bullet1","bullet2","bullet3","delegatedPiConsent","multiApptLabel","firstVirtualAppointment","hasntVirtualAccount","appointmentOnReacts","appointmentOnReacts2","warningNamExpired","virtualAccountSelect","label","items","true","false","reactsRegisterMailInfo","covid195To11ConfirmConsentToVaccine","refuseError","covid195To11ConfirmReadDocument","patientSelector","otherPatient","piConsentRequired","birthDateFormat","dateFormat","reminderDateFormat","emailFormat","phoneFormat","virtual_account","phxCovidScreeningReasonQuestion","phxCovidExperiencingSymptomQuestion","phxCovidAskedToGetAScreeningTestQuestion","phxCovidTravelledAndAdvisedToQuarantineQuestion","phxCovidReceivedPositiveExposureNotificationQuestion","phxCovidReceivedPositivePcrTestQuestion","phxCovidScreeningReason0","phxCovidScreeningReason0Note","phxCovidScreeningReason1","phxCovidScreeningReason2","phxCovidScreeningReasonHint","phxCovidExperiencingSymptom0","phxCovidExperiencingSymptom1","phxCovidExperiencingSymptom2","phxCovidExperiencingSymptom3","phxCovidExperiencingSymptom4","phxCovidExperiencingSymptom5","phxCovidExperiencingSymptom6","phxCovidExperiencingSymptom7","phxCovidExperiencingSymptom8","phxCovidExperiencingSymptom9","phxCovidExperiencingSymptom10","phxCovidExperiencingSymptom11","phxCovidExperiencingSymptom12","phxCovidExperiencingSymptom13","phxCovidContactWithCovid19PositivePersonHint","phxCovidScreeningConsentHint","phxCovidScreeningConsentPoint1","phxCovidScreeningConsentPoint2","phxCovidScreeningConsentPoint3","phxCovidScreeningConsentPoint4","phxCovidScreeningConsentPoint5","phxCovidScreeningConsentLabel","phxCovidScreeningDetailsConsentHint","phxCovidScreeningDetailsConsentPoint1","phxCovidScreeningDetailsConsentPoint2","phxCovidScreeningDetailsConsentPoint3","phxCovidScreeningDetailsConsentLabel","phxCovidAcceptRiskLabel","traveler","cardTitle","errorPage","content","notFound","content1","content2","linkToPortal","sheddingPage","team","appointmentBookedButErrorDisplayingCoupon","closestAvailsModal","timeNoLongerAvail","chooseAnotherAvail","returnToCalendar","noClosestAvail","noClosestAvailGotoCalendar","toCalendarBtn","validation","min_age_to_book","max_age_to_book","generic","forms","expiredToken","invalid","couponNotFound","appointment","forbidden_cancellation_date","forbidden_cancellation_client_state","unable_to_obtain_lock","unavailable_availability","forbidden_confirm_already_cancelled","forbidden_confirm_past","appointments","reacts","public","recaptcha","response","birthdayAndNamAreInvalid","validateMinAgeApp","patient","screening","preferredCommunicationEmail","metadataScreeningFeesAcknowledged","linkText","metadataCovidScreeningEmailConsent","metadataCovidScreeningSecurityConsent","banner","promptLogin","ctaMessage","login","subscribe","or","promptCompleteRegistration","ctaMessage1","ctaMessage2","getUpdatedPatients","covidScreeningMetadataLang","regionMetadataLang","coAdministrationFluCovid","metadata","flu","covid","couponReminder","loadingGeneric","inputValidationAccessibilityLang","InputValidationAccessibilityLang","privacy","state","loading","homeLoading","mutations","TOGGLE_LOADING","TOGGLE_HOME_LOADING","getters","isLoading","Boolean","isHomeLoading","actions","toggleLoading","commit","toggleHomeLoading","namespaced","nextAppointmentInfo","gapFlag","getAppointments","getApptsNumber","map","getFirstAppointment","getAppointmentsResourceIds","uniq","getNextAppointmentInfo","getGapFlag","SET_APPOINTMENTS","NEXT_APPOINTMENT_INFO","selectedDate","start","selectedService","establishmentServiceTemplate","selectedPlace","secondAppointment","REMOVE_NEXT_APPOINTMENT_INFO","UPDATE_GAP_FLAG","createAppt","rootGetters","dispatch","establishmentId","this","_vm","$api","fetchGroupOfAppointment","apptNumberOrGroupUuid","uuid","recaptchaToken","getGroupOfAppointment","humps","sendAppointmentMessage","appointmentId","messageType","configurationMessage","sendMessage","closestAvailabilities","daysComplete","upcomingAvailabilities","pastAvailabilities","dailyAvailabilities","getAvailabilities","getClosestAvailabilities","getDaysComplete","getUpcomingAvailabilities","getPastAvailabilities","getDailyAvailabilities","extractTimeSlots","avails","reduce","avail","prop","timeValue","remainderToFive","forceDiff","addMinutes","getTime","stop","formattedTime","includes","obj","assign","timeLabel","resourceCount","timeMS","sort","a","b","isDateCompleteEvent","isDatePastEvent","isDateUpcomingEvent","UPDATE_AVAILABILITIES","UPDATE_AVAILABILITIES_ONLY","UPDATE_DAYS_COMPLETE","UPDATE_UPCOMING_AVAILABILITIES","UPDATE_PAST_AVAILABILITIES","UPDATE_DAILY_AVAILABILITIES","UPDATE_CLOSEST_AVAILABILITIES","dateStart","dateStop","serviceId","placeId","filters","clientTimeZone","endOfMonth","gapHeadOfficeId","schedules","getPublicSchedule","fetchClosestAvails","dateTarget","limit","minResourceCount","getClosestSchedule","union","getCompleteAvailabilitiesBetweenPeriod","getCompletePublicPeriodSchedule","compact","root","getFirstAvailability","places","getFirstAvailabilityNextYear","getOnePrest","resourceId","resources","formatAvail","dateEnd","formatDate","formatToTimeZone","timeZone","purgeAvailsPastDayUpcomingDaysAndDaysComplete","dateMin","dateMax","stateToPurge","subDays","addDays","mutation","acc","filter","isBefore","SET_ERROR","getError","currentEstablishment","communications","establishmentModules","allModules","getEstablishment","getEstablishmentId","id","getSettings","getCommunications","getEstablishmentModules","getAllModules","getDynamicServiceFilters","getEstablishmentHasModule","moduleName","findIndex","getUniqueModule","getEstablishmentSettingById","getDisableGoogleAnalyticsSetting","EstablishmentSetting","DISABLE_GOOGLE_ANALYTICS","SET_CURRENT_ESTABLISHMENT","SET_SETTINGS","SET_COMMUNICATIONS","SET_ESTABLISHMENT_MODULES","MODULES","SET_ALL_MODULES","SET_DYNAMIC_SERVICE_FILTERS","getWithSettings","themingOverride","THEMING_OVERRIDE","themeColors","theme_color_override","head_office","setOptions","setting","estabId","getMessageConfigurationsByEstablishment","getModules","arr","toArray","services","getServiceTemplatesFilters","postalCode","postalCodeIsValid","postalCodeFromPortal","selectedPlacePanel","selectedPlaceId","isSelectedPlace","lat","lng","getPlaceById","keyBy","getPlaces","getPlaceIds","getPlace","getPostalCode","getPostalCodeIsValid","getPostalCodeFromPortal","getSelectedPlacePanel","getIsSelectedPlace","getSelectedPlaceId","getPlacesOrderByDistance","getPlacesWithDistance","sortBy","distance","latitude","longitude","SET_PLACES","SET_POSTAL_CODE","SET_POSTAL_CODE_IS_VALID","SET_POSTAL_CODE_FROM_PORTAL","SET_SELECTED_PLACE_PANEL","SET_IS_SELECTED_PLACE","SET_SELECTED_PLACE_ID","SET_LAT","SET_LNG","getAll","postalCodeFormatted","formattedAddress","city","country","sendReminders","confirmAppointment","cancelAppointment","sendJoinUsMail","sendCouponLostMail","geocode","addressComponents","isAddressNotFound","results","geometry","geocoder","getResource","instantiateServices","associatedEst","dynamicServiceFilter","allMetaData","selectedServiceMetadataValues","isSelectedService","isFirstServiceLoad","unifiedService","currentEstMetas","selectedServiceConfigurationMessages","serviceHasDynamicFilter","dynamicFilterMetadataValues","serviceHasDataCollectionFormId","clientFiltersIsAdmissible","portalEst","serviceHasServiceTemplateFilterIds","servicesFilteredByServiceTemplateIds","getPortalEst","getDynamicFilterMetadataValues","getInstantiateServiceById","getServiceByID","groupBy","getInstantiateServices","getInstantiateServiceTemplatesIds","serviceTemplate","getUnifiedServices","getCurrentEstMetas","getCurrentEstSettings","getInstantiatedService","getActivatedServices","getAssociatedEst","getFirstServiceLoad","getBaseMetadataById","getCopySelectedServiceMetadataValues","cloneDeep","getCopySelectedServiceMetadataValuesOverrideApplied","rootState","metadataValues","baseMetadata","isOverride","metadataOverridable","requiredOverridable","MetadataRequiredOverridable","OVERRIDABLE_PUBLIC_ADMIN","getOrderredCopySelectedServiceMetadataValuesOverrideAppliedKeys","baseMetadatas","baseMetadatasKeys","keys","orderedMetadataKeys","customDisplayOrderFlag","GlobalSettings","METADATA_DISPLAY_ORDER_FEATURE_FLAG","customDisplayOrder","METADATA_DISPLAY_ORDER","concat","getOrderredCopySelectedServiceMetadataValuesOverrideApplied","arrayMetaOrdered","currentMetadata","size","getServiceHasModule","serviceModuleId","getSelectedService","getSelectedServiceId","getIsSelectedService","getSelectedServiceConfigurationMessageById","getIsFluService","isFluService","getServiceHasDataCollectionFormId","getClientFiltersIsAdmissible","getServiceHasServiceTemplateFilterIds","getServicesFilteredByServiceTemplateIds","SET_PORTAL_EST","SET_DYNAMIC_FILTER_METADATA_VALUES","SET_INSTANTIATE_SERVICES","SET_ASSOCIATED_EST","SET_UNIFIED_SERVICE","SET_CURRENT_EST_METAS","SET_CURRENT_EST_SETTINGS","SET_ALL_METADATA","Vue","SET_SELECTED_SERVICE_METADATA_VALUES","SET_SELECTED_SERVICE","SET_IS_SELECTED_SERVICE","SET_SELECTED_SERVICE_CONFIGURATION_MESSAGES","cm","SET_FIRST_SERVICE_LOAD","SET_SERVICE_HAS_DATA_COLLECTION_FORM_ID","dataCollectionFormId","ENABLE_ESTABLISHMENT_SERVICE_TEMPLATES_FORMS","SET_CLIENT_FILTERS_IS_ADMISSIBLE","SET_SERVICE_HAS_SERVICE_TEMPLATE_FILTER_IDS","SET_SERVICES_FILTERED_BY_SERVICE_TEMPLATE_IDS","RESET_SERVICES_FILTERED_BY_SERVICE_TEMPLATE_IDS","setServicesFilteredByServiceTemplateIds","serviceTemplates","split","servicesTemplatesFiltered","flatten","setPortalEst","getAllMetaData","getEstMetaData","estId","getEstMetadata","fetchEstMetadataValues","getEstSettings","getAllByEstablishment","UnifiedService","FLU","serviceFlu","ServiceTemplateUnderFluUnifiedService","getEstServiceUnifiedAssociationsByServiceUnified","serviceUnifiedId","unifiedServiceId","ignoreUnifiedServiceSet","fetchEstConfigurationMessages","getEstConfigurationMessages","removeInstantiateServiceWithServiceTemplateIds","serviceTemplateIds","filteredServices","filterInstantiateServiceWithServiceTemplateIds","serviceTemplateTag","setInstantiateServices","setSelectedPortalEST","layout","section","configVersionNumber","formsList","getData","getConfig","getConfigVersionNumber","SET_FORM","SET_FORMS_LIST","getFormById","formId","createFormFromPublic","getFormListByEstablishment","getAvailableForms","snack","getSnackbar","SET_SNACK","snackBar","appointmentCancelledText","appointmentReminderText","isPopupActivated","popupText","popupTitle","presentationText","presentationTitle","privacyText","publicSiteDeactivatedText","publicPageFooter","getTexts","UPDATE_TEXTS","texts","res","analyticsEnabled","getAnalyticsEnabled","SET_ANALYTICS_ENABLED","useAnalytics","use","VueGtm","vueRouter","Router","incrementPublicVisits","stats","incrementPublicVisitsForEstablishment","insertKPIStatistic","firstAvailabilityDate","insertKPIStatisticForEstablishment","profileIdentityState","patientDataToFillMetadataForm","getSendByEmail","getSendBySMS","getConfirmEmail","getProfileIdentityState","getPatientDataToFillMetadataForm","SET_PATIENT_DATA_TO_FILL_METADATA_FORM","SET_CONFIRM_EMAIL","SET_SEND_BY_EMAIL","SET_SEND_BY_SMS","SET_PROFILE_IDENTITY_STATE","hasEstablishmentsAdminServicesEnabled","establishmentsSettings","ENABLE_ADMIN_SERVICES","getSelectedServiceVisibility","visibility","getIsCovidModule","intersection","CovidModules","showCalendar","ServiceVisibility","CAN_BOOKED_ADMIN_ONLY_BUT_SHOW_PUBLIC","isGapModeOn","getGapHeadOfficeId","SET_GAP_MODE","SET_GAP_HEAD_OFFICE_ID","isOpen","SET_IS_OPEN","getIsOpen","windowOpts","buildAuthWindow","url","windowArea","width","outerWidth","height","floor","outerHeight","left","screenX","top","screenY","open","sanitizeDoubleSlashOnUrl","isString","authWindow","searchInterval","signInWindow","searchIntervalCounter","isRegister","clearInterval","setInterval","keycloakAdapter","validateCookieTs","cookie","shouldTrySilentSso","initOptions","onLoad","redirectUri","checkLoginIframe","init","isAuth","deleteAuthTsCookie","openSignInWindow","createKeycloakServerUrl","openRegisterWindow","urlSuffix","globalSettings","getGlobalSettings","SET_GLOBAL_SETTINGS","fetchGlobalSettings","VuEx","Store","localeString","currency","dynamicService","style","staticFilesUrl","isErrorRoute","captchaKey","theme","lastError","checkGA","appVersion","appVersionDate","whitelistingIp","publicPageBlocked","waitingForThemeOverride","UPDATE_DYNAMIC_SERVICE","UPDATE_STYLE","UPDATE_THEME","UPDATE_LOCALE","UPDATE_IS_ERROR_ROUTE","UPDATE_LAST_ERROR","UPDATE_API_SECURITY_WHITELISTING_IP","SET_PUBLIC_PAGE_BLOCKED","SET_WAITING_FOR_THEME_OVERRIDE","getAppVersion","getAppVersionDate","getLastError","getDynamicService","getStyle","getStaticFilesUrl","invertLocale","invertLocaleLong","isClicSante","getIsErrorRoute","getTheme","upperLocale","upperFirst","getLocaleString","getCurrency","getShowCalendar","isIpWhitelisted","getPublicPageBlocked","getWaitingForThemeOverride","getLogoUrl","getAlternateLogoUrl","setLocale","i18n","toLower","documentElement","messages","localStorage","setItem","setLocaleMessage","mergeLocales","isObject","router","currentRoute","meta","setStyle","changeCurrentTheme","$vuetify","overrideCurrentTheme","setApiSecurityWhitelistingIp","apiSecurityWhitelistingIp","snackbar","analytics","metadataForm","calendarDisplaySettings","errorHandling","jwt","kcAuth","kcLogin","gap","mobileDialogMenu","strict","_h","$createElement","_c","_self","_e","class","breakpoint","smAndDown","attrs","$t","$route","directives","rawName","expression","cookieConsentMessage","cookieConsentLinkLabel","consentLink","cookieConsentButtonLabel","tld","slot","staticClass","_v","staticRenderFns","mdAndUp","on","setToggleHomeLoading","openMobileDialogMenu","model","callback","$$v","closeDialog","getPortalLink","isLogged","loadingAuth","getProfileUrl","getLocale","lgAndUp","md","_s","showLogoutConfirmationModal","register","staticStyle","logoutAccount","computed","mapGetters","getLogoutConfirmationModal","methods","mapMutations","setCloseLogoutConfirmationDialog","mapActions","kcLogout","component","components","LogoutConfirmationModal","getLoggedUser","getOwnerPatient","openKcSignInWindow","openKcRegisterWindow","setOpenLogoutConfirmationDialog","clientDataForUrl","_l","menuListClasses","closeMobileDialogMenu","menuTitleClasses","icon","localeButtonClasses","localeToToggleLabel","$event","$i18n","domProps","localeToToggle","menuItems","menuWeb","iconSize","getMenuItems","className","setOpenMobileDialogMenu","showMenu","StandardLoginButton","getAccessToken","displayProfileFeatures","setCloseMobileDialogMenu","getLogoClasses","showAlternateLogo","MobileDialogMenu","LogoHeader","toUpperCase","headerMenus","MobileMenu","StandardMenu","TopMenu","scopedSlots","_u","fn","proxy","show","nativeOn","getLowerMessage","watch","handler","deep","textKey","textParams","xsOnly","timer","getClientLogo","mounted","skipTo","onSkipToClick","getClientLogomark","formatNanpPhoneNumber","fax","publicPageFooterText","getFooterProductLogo","usersMenus","getCurrentYear","rawPhone","isNaN","phoneExtensionMask","areaCode","exchangeCode","subscriberLine","extension","formattedPhone","getFooterInfo","AppFooter","TrimozErrorDialog","TitleBar","TrimozSnackbar","TzLoading","CookieConsent","SheddingPage","EstablishmentHeader","recaptchaScript","newLocale","isPublicPageBlocked","setRecaptchaScript","registerSheddingHandling","vue","errorCallbacks","onSheddingError","$store","InputFacade","VueSkipTo","VueMask","sync","Apiv2","Vuetify","errorHandler","scrollto","langMixin","created","localeKey","item","getItem","decodedUrl","decodeURIComponent","urlObj","URL","urlParams","URLSearchParams","localeOnUrl","queryLang","language","languages","browserLanguage","ignoreWarnMessage","warnHandler","msg","vm","trace","isUserAuth","isKeycloakInitError","shouldCheckLogin","page","hasCookieTs","el","mixins","store","vuetify","icons","iconfont","customProperties","light","themes","primary","secondary","accent","info","success","anchor","dispatchEvent","Event","render","h","App","registerSentryLogging","isKcInstanceError","$mount","webpackAsyncContext","req","invalidComment","travelerCountHint","reacts_event_url","reacts_event_id","ah635_health_problems_question","ah635_immunosuppression_question","ah635_allergic_reactions_question","ah635_pregnancy_question","ah635_bleeding_disorder_question","ah635_immunization_question","influenza_health_status","influenza_is_immunosuppressive","influenza_has_severe_reaction","influenza_is_pregnant","influenza_received_vaccine_last_month","influenza_has_immunocompromised_contact","influenza_people_who_live_with_me","influenza_has_blood_transfusion","influenza_received_pneumococcal_vaccine","influenza_is_health_care_worker","influenza_received_shingles_vaccine","phx_covid_screening_reason","phx_covid_screening_details_consent","phx_covid_screening_consent","phx_covid_accept_risk","covid_screening_student_level","as624_health_problems_question","as624_immunosuppression_question","as624_allergic_reactions_question","as624_bleeding_disorder_question","as624_has_blood_transfusion_question","as624_pregnancy_question","as624_less_than_six_months_mother_treatment_question","phone_extension","sendConfirmationSms","traveler_ramq","traveler_birthdate","travel_departure_date","traveler_first_name","traveler_last_name","traveler_age","traveler_status","terms_agreement","privacy_policy_agreement","HIDE_CALENDARS_PUBLIC_PAGE","ACTIVATE_SEARCH_IN_ALL_SCHEDULES","KPI_AVAILABILITY_DELAY","ENABLE_OPEN_TO_PUBLIC","ENABLE_FOOTER_INFO","USE_CLIENT_LOGO","CLIENT_LOGO","PUBLISH_NEW_DAYS","AMOUNT_SAVED_PUBLIC_APPOINTMENT","USE_CUSTOM_TIMEZONE","DEFAULT_TIMEZONE","ENABLE_VIRTUAL_SERVICES","ENABLE_REMINDER_REPORT","ENABLE_RELAUNCH_REPORT","ENABLE_ZIP_CODE_FILTER","DISABLE_COMMUNICATIONS","PRIVATE","ALLOW_PREST_OVERRIDE","ENABLE_PRIVATE_ADMIN_SERVICES","ENABLE_CUSTOM_TIMEZONE","ENABLE_SMS","CLIENT_LOGOMARK","CO_ADMINISTRATION_FLU_COVID","ESTABLISHMENT_TYPE","SHOW_CONTACT_US_PUBLIC_PAGE","ENABLE_DATA_COLLECTION_FORMS","ServiceTemplateEnum","VACCINATION_GRIPPE","VACCINATION_COVID_19","PRISE_DE_SANG","SHINGLES_VACCINE","VACCINE_DELAY_MIN","VACCINE_DELAY_MAX","VACCINE_DELAY_MIN_MONTHS","VACCINE_DELAY_MAX_MONTHS","VACCINE_TOLERANCE_BEFORE","VACCINE_TOLERANCE_AFTER","IS_VIRTUAL_SERVICE","VIRTUAL_SERVICE_APP","ENABLE_FILTER_QUESTIONS","FILTER_QUESTIONS","FILTER_MESSAGES","VIRTUAL_SERVICE_MESSAGE_DELAY","IS_ADMIN_SERVICE","IS_PRIVATE_ADMIN_SERVICE","SUBMODULES","ENABLE_NEXT_SERVICE_TO_BOOK_FOLLOW_UP","NEXT_SERVICE_TO_BOOK","PREGNANCY_DELAY_MIN","PREGNANCY_DELAY_MAX","PREGNANCY_DELAY_MIN_DAYS","PREGNANCY_DELAY_MAX_DAYS","PREGNANCY_TOLERANCE_BEFORE","PREGNANCY_TOLERANCE_AFTER","TRAVEL_MIN_TRAVELER_COUNT","TRAVEL_MAX_TRAVELER_COUNT","TRAVEL_COUNTRY_LIST","TRAVEL_MAX_DAYS_AHEAD","DRUG_INJECTION_LIST","WORK_LOCATION_LIST","EMPLOYER_NAME_LIST","JOB_TITLE_LIST","EMPLOYEE_ESTABLISHMENT_LIST","EMPLOYEE_CATEGORY_LIST","PRIORITY_GROUP_OPTIONS","DISALLOW_PUBLIC_CANCELLATION","COVID_2ND_DELAY_MIN_DAYS","COVID_2ND_DELAY_MAX_DAYS","FLU_TARIFICATION_MODE_VALUE","SPECIFIC_SERVICE","OTHER_SERVICE","CIVIL_STATUS_LIST","EMERGENCY_CONTACT_RELATIONSHIP","MAX_AGE_TO_BOOK_PATIENT","ConfigurationMessageEnum","ABSENT_CLIENT_REMINDER","APPOINTMENT_CONFIRMATION_REQUEST","APPOINTMENT_CONFIRMATION_REQUEST_LAST_MINUTE","CANCELLED_APPOINTMENT","CANCELLED_APPOINTMENT_REMINDER","FUTURE_APPOINTMENTS","LAST_MINUTE_CANCELLATION_APPOINTMENT","LAST_MINUTE_NEW_APPOINTMENT","NEW_APPOINTMENT","SCHEDULED_APPOINTMENT_BOOK_REMINDER","SCHEDULED_APPOINTMENT_CONFIRMATION_REQUEST","VIRTUAL_APPOINTMENT_REMINDER","NEW_MULTIPLE_APPOINTMENT","NEXT_SERVICE_TO_BOOK_FOLLOW_UP","MessageTypeEnum","MAIL","SMS","MetadataEnumCovidScreening","COVID_SCREENING_HEALTHCARE_WORKER","COVID_SCREENING_HEALTHCARE_WORKER_TYPE","COVID_SCREENING_HEALTHCARE_INSTITUTION","COVID_SCREENING_HEALTHCARE_INSTITUTION_TYPE","COVID_SCREENING_HEALTHCARE_SHARING_RESULT","COVID_SCREENING_CONSENT_SHARING_INFORMATIONS","COVID_SCREENING_CONSENT_RECEIVE_RESULT_BY_EMAIL_SMS","COVID_SCREENING_PREFERRED_COMMUNICATION","COVID_SCREENING_TRAVELLED_OUTSIDE_QUEBEC","COVID_SCREENING_COUNTRY","COVID_SCREENING_CATEGORY","COVID_SCREENING_STUDENT_SCHOOL_REGION","COVID_SCREENING_STUDENT_LEVEL","COVID_SCREENING_STUDENT_INSTITUTION","COVID_SCREENING_WORKING_QUEBEC","COVID_SCREENING_EMPLOYER_NAME","COVID_SCREENING_CHILD_NAME_OF_NURSERY","COVID_SCREENING_OUTBREAK_NUMBER","MetadataEnumSampling","HAVE_YOU_BEEN_TO_HOSPITAL_IN_THE_LAST_THREE_MONTHS","CIVIL_STATUS","SPOUSE_FIRST_NAME","SPOUSE_LAST_NAME","EMERGENCY_CONTACT_FIRST_NAME","EMERGENCY_CONTACT_LAST_NAME","EMERGENCY_CONTACT_PHONE_NUMBER","MetadataEnumAs624","AS624_HEALTH_PROBLEMS_QUESTION","AS624_IMMUNOSUPPRESSION_QUESTION","AS624_ALLERGIC_REACTIONS_QUESTION","AS624_BLEEDING_DISORDER_QUESTION","AS624_HAS_BLOOD_TRANSFUSION_QUESTION","AS624_PREGNANCY_QUESTION","AS624_LESS_THAN_SIX_MONTHS_MOTHER_TREATMENT_QUESTION","MetadataEnum","FIRST_NAME","LAST_NAME","EMAIL","BIRTHDAY","PHONE","CELLPHONE","COMMENTS","CONFIRMATION_URL","CANCELLATION_URL","VIRTUAL_ACCOUNT","REACTS_EVENT_URL","REACTS_EVENT_ID","PREGNANCY_DPA","RESIDENT_FIRST_NAME_INITIAL","RESIDENT_LAST_NAME","RESIDENT_ROOM_NUMBER","RESIDENT_BIRTHDAY_MONTH","RESIDENT_CONTACT_ALLOW_ZOOM","RESIDENT_CONTACT_ALTERNATIVE","RESIDENT_MULTIPLE_USERS","NAM","SCANNED_REQUEST","DOCTOR_NAME","DRUG_NAME","TRAVEL_TRAVELER_COUNT","TRAVEL_TRAVELERS_INFO","TRAVEL_DESTINATION_COUNTRY","TRAVEL_DEPARTURE_DATE","ADDRESS","OCCUPATION","BIRTH_PREMATURE","BIRTH_PREMATURE_WEEK_COUNT","TUTOR_FIRST_NAME","TUTOR_LAST_NAME","TUTOR_OCCUPATION","UNKNOWN_MOTHER","MOTHER_FIRST_NAME","MOTHER_LAST_NAME","UNKNOWN_FATHER","FATHER_FIRST_NAME","FATHER_LAST_NAME","GENDER","PROFILE_NUMBER","SCHOOL_NAME","VACCINE_TARGET","REQUESTER_LINK","REQUESTER_NAME","GEOLOC_SHORT_POSTCODE","COMM_PHONE_ONLY","CONSENT_FORM_CONFIRMATION_CODE","VACCINE_SECURITY_ACCEPTANCE","EMPLOYEE_NUMBER","EMPLOYER_NAME","WORK_LOCATION","JOB_TITLE","EMPLOYEE_ESTABLISHMENT","EMPLOYEE_CATEGORY","AH635_HEALTH_PROBLEMS_QUESTION","AH635_IMMUNOSUPPRESSION_QUESTION","AH635_ALLERGIC_REACTIONS_QUESTION","AH635_PREGNANCY_QUESTION","AH635_BLEEDING_DISORDER_QUESTION","AH635_IMMUNIZATION_QUESTION","ACCOMPANYING_PERSON","PRIORITY_GROUP","P_CODE","INFLUENZA_HEALTH_STATUS","INFLUENZA_IS_IMMUNOSUPPRESSIVE","INFLUENZA_HAS_SEVERE_REACTION","INFLUENZA_IS_PREGNANT","INFLUENZA_RECEIVED_VACCINE_LAST_MONTH","INFLUENZA_HAS_IMMUNOCOMPROMISED_CONTACT","INFLUENZA_PEOPLE_WHO_LIVE_WITH_ME","INFLUENZA_HAS_BLOOD_TRANSFUSION","INFLUENZA_RECEIVED_PNEUMOCOCCAL_VACCINE","INFLUENZA_IS_HEALTH_CARE_WORKER","INFLUENZA_RECEIVED_SHINGLES_VACCINE","COVERED_RAMQ","VACCINE_APPREHENSION","SCHOOL_CLASS","POSTAL_CODE","COVID_5_11_CONFIRM_READ_DOCUMENT","COVID_5_11_CONFIRM_I_AM_PARENT","COVID_5_11_CONFIRM_CONSENT_TO_VACCINE","SCREENING_FEES_ACKNOWLEDGED","COVID_SCREENING_EMAIL_CONSENT","COVID_SCREENING_SECURITY_CONSENT","PHX_COVID_SCREENING_REASON","PHX_COVID_EXPERIENCING_SYMPTOMS","PHX_COVID_TRAVELLED_AND_ADVISED_TO_QUARANTINE","PHX_COVID_RECEIVED_POSITIVE_PCR_TEST","PHX_COVID_RECEIVED_POSITIVE_EXPOSURE_NOTIFICATION","PHX_COVID_ASKED_TO_GET_A_SCREENING_TEST","PHX_COVID_SCREENING_DETAILS_CONSENT","PHX_COVID_SCREENING_CONSENT","PHX_COVID_ACCEPT_RISK","NAM_EXPIRATION_DATE","NAM_SEQUENTIAL_NUMBER","REGION","PHONE_EXTENSION","PQDCS_ELIGIBILITY_DATE","PQDCS_PRESCRIPTION_DATE","LEGAL_FIRST_MIDDLE_LAST_NAME","OFFER_LETTER_SENT_DATE","PLANNED_START_DATE","WORKED_FOR_NSHA","NAME_USED_PREVIOUSLY","COADMIN_INJECTION","SubModulesEnum","DEFAULT","VACCINE","PREGNANCY","VIRTUAL","VIRTUAL_REACTS","PREGNANCY_DELAY","TRAVEL","DRUG_INJECTION","EMPLOYER","NO_OVERRIDE","OVERRIDABLE_PUBLIC","OVERRIDABLE_ADMIN","CAN_BOOKED_PUBLIC_AND_ADMIN","CAN_BOOKED_ADMIN_ONLY_AND_HIDE_PUBLIC","ProfileIdentityState","VALIDATED","UNVALIDATED","CoAdministrationServiceTemplateIds","COVID","DynamicFilterMetadataAssociation","GenericVaccineServiceTemplateIds","ReferenceDateEnum","APPT_START","APPT_STOP","APPT_STATE_LAST_MODIFIED","APPT_CLIENT_STATE_LAST_MODIFIED","APPT_CLIENT_BIRTHDAY","FormStatusCustom","NEW","IN_PROGRESS","COMPLETE","FormRoleId","PUBLIC","minHeight","props","VueI18n","translations","vueI18nOptions","silentTranslationWarn","useRouter","beforeEnter","from","next","params","query","category","dynamicFilters","every","portalServicesUnified","some","serviceUnified","beforeEach","utils","VueRouter","routes","redirect","children","showContactSetting","afterEach","InputValidationAccessibilityFr","InputValidationAccessibilityEn"],"mappings":"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","file":"js/app.94f0ee0a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".43161cd8.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-7375dc70\":1,\"chunk-44248ba5\":1,\"chunk-ac6284fa\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".43161cd8.css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import config from './config';\nimport { map, split, join, replace, find, isNil } from 'lodash';\nimport { ServiceSettings } from '@/enums';\nimport { differenceInYears, format } from 'date-fns';\nimport { MIN_AGE_TO_BOOK_IN_APP, APPOINTMENT_FOR_SOMEONE_ELSE } from '@/config';\nimport { TrimozError } from '@trimoz/trimoz-vue-error-handling';\n\nexport function dateTimeToString(date) {\n    // date must be '2018-06-10T12:00:00.000-04:00'\n    if (date) {\n        return date.substr(0, 10) + ' ' + date.substr(11, 8);\n    }\n    return null;\n}\n\nexport function formatTimefromJsDate(date) {\n    // eslint-disable-next-line\n    if(!(date instanceof Date)) {\n        const parse = require('date-fns/parse');\n        date = parse(date);\n    }\n    let hour = date.getHours();\n    let min = date.getMinutes();\n\n    hour = hour < 10\n        ? '0' + hour\n        : hour;\n\n    min = min < 10\n        ? '0' + min\n        : min;\n\n    return hour + ':' + min;\n}\n\nexport function formatDatefromJsDate(date) {\n    // Warning: Do not send the time with the date, only date\n    // eslint-disable-next-line\n    if(!(date instanceof Date)) {\n        const parse = require('date-fns/parse');\n        date = parse(date);\n    }\n    let month = '' + (date.getMonth() + 1);\n    let day = '' + date.getDate();\n    let year = date.getFullYear();\n\n    if (month.length < 2) month = '0' + month;\n    if (day.length < 2) day = '0' + day;\n\n    return [year, month, day].join('-');\n}\n\nexport function stringDate(date, lang) {\n    const parse = require('date-fns/parse');\n    const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };\n    return parse(date + ' 12:00').toLocaleDateString(lang + '-CA', options);\n}\n\nexport function formatPhoneNumber(s) {\n    let m = s.match(/^(\\d{3})(\\d{3})(\\d{4})(.*)$/);\n    return (!m) ? null : m[1] + '-' + m[2] + '-' + m[3] + m[4];\n}\n\nexport function getEachDaysElements(viewType) {\n    if(viewType === 'month') {\n        return document.querySelectorAll('td:not(.fc-other-month) > .fc-day-number');\n    }\n    else if(viewType === 'agendaWeek') {\n        return document.querySelectorAll('.fc-day-header');\n    }\n    return false;\n}\n\nexport function shadeColor(color, percent) {\n    let f = parseInt(color.slice(1), 16);\n    let t = percent < 0 ? 0 : 255;\n    let p = percent < 0 ? percent * -1 : percent;\n    let R = f >> 16;\n    let G = f >> 8 & 0x00FF;\n    let B = f & 0x0000FF;\n    return '#' + (0x1000000 + (Math.round((t - R) * p) + R) * 0x10000 + (Math.round((t - G) * p) + G) * 0x100 + (Math.round((t - B) * p) + B)).toString(16).slice(1);\n}\n\nexport function placeHasAvailabilities(events, date, placeId, has) {\n    return has(events, date) && events[date][placeId];\n}\n\nexport function setProduct(domain) {\n    let product = 'clicsante';\n    if (process.env.VUE_APP_ENV === 'development') product = process.env.VUE_APP_PRODUCT;\n    else if (domain.search('pharmaprix') !== -1) product = 'pharmaprix';\n    else if (domain.search('uniprix') !== -1) product = 'uniprix';\n    else if (domain.search('pharmaservices') !== -1) product = 'pharmaservices';\n    else if (domain.search('reacts') !== -1) product = 'reacts';\n    return product;\n}\n\n/**\n * Overriding favicon complete. Firefox loads the last favicon it sees in webpack regardless of head tags. And since\n * pharmaservice is dying anyway, we'll just remove it soon so we hardcode this to clic-sante.\n */\nexport function setFavicon() {\n    let searchString = 'favicon-clicsante';\n    let x = document.querySelectorAll('link');\n    for (let i = 0; i < x.length; i++) {\n        let str = x[i].href;\n        let str2 = x[i].rel;\n        if (str.search(searchString) === -1 && str2 !== 'stylesheet') {\n            x[i].remove();\n        }\n    }\n}\n\nexport function getGoogleTagManager(product) {\n    if (process.env.VUE_APP_ENV === 'production' && config[product]) {\n        return config[product].GTM;\n    }\n    // Non-production environment, return GTM dev clicsante account number\n    return process.env.VUE_APP_GTM_TAG;\n}\n\n/**\n * Calculate distance between two locations in a straight line\n * @params lat1, lng1, lat2, lng2\n */\nexport function distanceBetweenLocation(lat1, lng1, lat2, lng2) {\n    // $earthRadius = 3958.75; //in miles, change to 6371 for kilometer\n    const earthRadius = 6371;\n\n    const degLat = deg2rad(lat2 - lat1);\n    const degLng = deg2rad(lng2 - lng1);\n    const sindLat = Math.sin(degLat / 2);\n    const sindLng = Math.sin(degLng / 2);\n\n    const ret1 = Math.pow(sindLat, 2) + Math.pow(sindLng, 2) * Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2));\n    const ret2 = 2 * Math.atan2(Math.sqrt(ret1), Math.sqrt(1 - ret1));\n    return earthRadius * ret2;\n}\n\nexport function deg2rad(deg) {\n    return deg * (Math.PI / 180);\n}\n\nexport function formatDateToDatePicker(date) {\n    const dateMatch = !isNaN(Date.parse(date)) && date.match(/[0-9]{4}[-][0-9]{1,2}[-][0-9]{1,2}/);\n    if (!dateMatch) return null;\n    return join(map(split(dateMatch[0], '-'), (d) => {\n        return (!/^0/.test(d) && +d < 10 ? '0' : '') + d;\n    }), '-');\n}\n\nexport function maskNam(payload) {\n    if (!payload || !payload.replace) {\n        return '';\n    }\n    const regex = new RegExp('[A-Za-z0-9]{4}', 'gi');\n    return payload.replace(/\\s+/gi, '').replace(regex, '$& ').trim();\n}\n\nexport function maskPhoneNumber(payload) {\n    if (!payload || !payload.replace) {\n        return '';\n    }\n\n    const unmask = payload.replace(/^[+]1/, '').replace(/[^0-9]/gi, '');\n    const parts = unmask.match(/^(\\d{1,3})(?:(\\d{1,3})|$)(?:(\\d{1,4})|$)/);\n    let phone = '';\n    if (parts && parts[1]) {\n        phone = `(${parts[1]}`;\n    }\n    if (parts && parts[2]) {\n        phone += `) ${parts[2]}`;\n    }\n    if (parts && parts[3]) {\n        phone += ` - ${parts[3]}`;\n    }\n    return phone;\n}\n\nexport const isUsingKc = process.env.VUE_APP_IS_USING_KEYCLOAK_LOGIN_AUTH === 'true';\nexport const authModule = isUsingKc ? 'kcAuth' : 'jwt';\n\nexport function removeAccents(str) {\n    return str ? str.normalize('NFD').replace(/'/g, '').replace(/[\\u0300-\\u036f]/g, '').replace(/\\s+/g, ' ') : '';\n}\n\nexport function retainSTLetters(str) {\n    const prefixRegex = /^(?!^SAIN(t|)(e|)$)(ST(e|)|SAINTE?|SAINT?|SAINTE)([ -][a-zA-Z]+)?\\b/i;\n    const index = str.search(/[\\s-]/);\n\n    const [, secondElement] = [str.substring(0, index), str.substring(index + 1).replace(/[\\s-]/g, '')];\n    return prefixRegex.test(str) ? 'ST' + secondElement : str.replace(/\\s/g, '');\n}\n\nexport function addXForSmallNam(str) {\n    return str.length > 2 ? str : str.padEnd(3, 'X');\n}\n\nexport function removeDash(str) {\n    return replace(str, '-', '');\n}\n\nexport function normalizeLastName(str) {\n    let formattedValue = removeAccents(str); // will remove accents, remove consecutive whitespace and diacritical marks\n    formattedValue = retainSTLetters(formattedValue);\n    formattedValue = removeDash(formattedValue);\n    return addXForSmallNam(formattedValue);\n}\n\nexport function avoidNoAppointmentFocus() {\n    const outsideDays = document.querySelectorAll('div.v-calendar-weekly__day.v-outside a, div.v-calendar-weekly__day.v-outside button, div.v-calendar-weekly__day.v-future.v-outside a, div.v-calendar-weekly__day.v-future.v-outside button, div.v-calendar-weekly__day.v-past.v-outside a, div.v-calendar-weekly__day.v-past.v-outside button');\n    outsideDays.forEach(element => {\n        element.setAttribute('tabindex', '-1');\n    });\n}\n\nexport function setFocusForAccessibility(elementId, timeOut = 500, useBlurAll = true) {\n    if (useBlurAll) {\n        blurAll();\n    }\n\n    if(timeOut === null) {\n        focusElement(elementId);\n        return;\n    }\n\n    setTimeout(() => {\n        focusElement(elementId);\n    }, timeOut);\n}\n\nfunction focusElement(elementId) {\n    const element = document.getElementById(elementId);\n\n    if (element === null) {\n        return;\n    }\n\n    if(element.getAttribute('tabindex') === '-1') {\n        element.setAttribute('tabindex', 0);\n    }\n\n    if (element) {\n        element.addEventListener('focus', (event) => { event.preventDefault(); });\n        element.focus();\n    }\n}\n\n/**\n * Unfocus all.\n * ref.: https://stackoverflow.com/a/29237391\n */\nexport function blurAll() {\n    let tmp = document.createElement('input');\n    document.body.appendChild(tmp);\n    tmp.focus();\n    document.body.removeChild(tmp);\n}\n\n/**\n * Detect Firefox browser\n * https://stackoverflow.com/questions/13975976/javascript-execute-code-only-if-it-is-not-google-chrome-browser\n */\nexport function isFirefox() {\n    return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n}\n\n/**\n * Validate that birthday and nam correspond\n */\nexport function validateNamAgainstBirthday(clientData) {\n    if(!clientData.nam || !clientData.birthday) {\n        return null;\n    }\n\n    if (clientData.nam && clientData.birthday && format(clientData.birthday, 'YYYY-MM-DD') !== getBirthdayFromNAM(clientData).birthday) {\n        throw new TrimozError(new Error(), 'errors.birthdayAndNamAreInvalid');\n    }\n    return true;\n}\n\nexport function getBirthdayFromNAM(clientData) {\n    if (!clientData.nam) {\n        return {\n            century: null,\n            year: null,\n            month: null,\n            day: null,\n            birthday: null,\n        };\n    }\n    clientData.nam = clientData.nam.replace(/\\s+/g, '');\n\n    let century = Number(format(Date.now(), 'YYYY').substring(0, 2)) + 1;\n    let year = clientData.nam.substring(4, 6);\n    let month = clientData.nam.substring(6, 8);\n    let day = clientData.nam.substring(8, 10);\n\n    if (month > 12) {\n        month = month - 50;\n        if (month < 10) {\n            month = '0' + month;\n        }\n    }\n\n    if(clientData.birthday && format(clientData.birthday, 'YYYY') !== 'Invalid Date') {\n        let yearFromBirthday = format(clientData.birthday, 'YYYY');\n        century = Number(yearFromBirthday.substring(0, 2)) + 1;\n    }\n    else {\n        /**\n         * Handle most cases except 100+ years old which is around 9 500 peoples in Canada has of 2021 (https://www.cbc.ca/news/politics/canadian-centenarians-census-2021-1.6436494).\n         * Correspond to 0.0002 % of Canada population (40 500 000 has of 2024).\n         */\n        if (new Date().getFullYear() - (Number(year) + ((century - 2) * 100)) < 100) {\n            century = (century - 1);\n        }\n    }\n\n    return {\n        century,\n        year,\n        month,\n        day,\n        birthday: format(`${century - 1}${year}-${month}-${day}`, 'YYYY-MM-DD'),\n    };\n}\n\n/**\n * Validate minimum age base on service settings\n */\nexport function validateMinAge(clientData, currentEstSettings) {\n    if (!clientData.birthday && !clientData.nam) {\n        return null;\n    }\n\n    let birthday = clientData.birthday ? format(clientData.birthday, 'YYYY-MM-DD') : null;\n    birthday = clientData.nam ? getBirthdayFromNAM(clientData).birthday : birthday;\n\n    if(!birthday || birthday === 'Invalid Date') {\n        console.warn('Birthday value is invalid. skipping the validation process...');\n        return null;\n    }\n\n    const minimumAgePatient = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_PATIENT]);\n    const minimumAgeAccompanyingPerson = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_ACCOMPANYING_PERSON]);\n\n    // set the minimum age with patient minimum age\n    let validateMinAge = null;\n    if (minimumAgePatient.value) {\n        validateMinAge = minimumAgePatient.value;\n    }\n\n    // set the minimum age with accompanying person minimum age\n    if (clientData.accompanyingPerson && minimumAgeAccompanyingPerson.value) {\n        if (!validateMinAge || minimumAgeAccompanyingPerson.value < validateMinAge) {\n            validateMinAge = minimumAgeAccompanyingPerson.value;\n        }\n    }\n\n    // set minimum age of patient if priority group is set\n    if (clientData.priorityGroup && clientData.priorityGroup !== 'nothing') {\n        let minimumAgePriorityGroup = null;\n        switch (clientData.priorityGroup) {\n            case 'requiresConsent':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_REQUIRES_CONSENT]);\n                break;\n            case 'schoolWorker':\n            case 'publicHealthWorker':\n            case 'healthWorker':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_HEALTH_WORKER]);\n                break;\n            case 'essentialHealthWorker':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_ESSENTIAL_HEALTH_WORKER]);\n                break;\n            case 'chronicDisease':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_CHRONIC_DISEASE]);\n                break;\n            case 'handicapped':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_HANDICAPPED]);\n                break;\n            case 'handicappedAccompagnator':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_HANDICAPPED_ACCOMPAGNATOR]);\n                break;\n            case 'pregnantWoman':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_PREGNANT_WOMAN]);\n                break;\n            case 'dayCampWorker':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_DAY_CAMP_WORKER]);\n                break;\n            case 'genericVaccine.immunocompromised':\n                minimumAgePriorityGroup = find(currentEstSettings, ['setting', ServiceSettings.MIN_AGE_TO_BOOK_IMMUNOCOMPROMISED]);\n                break;\n        }\n        if (minimumAgePriorityGroup && minimumAgePriorityGroup.value) {\n            if (!validateMinAge || minimumAgePriorityGroup.value < validateMinAge) {\n                validateMinAge = minimumAgePriorityGroup.value;\n            }\n        }\n    }\n\n    validateMinAge = (clientData.requesterLink !== APPOINTMENT_FOR_SOMEONE_ELSE && validateMinAge < MIN_AGE_TO_BOOK_IN_APP) ? MIN_AGE_TO_BOOK_IN_APP : validateMinAge;\n\n    // validate the minimum age with birthday\n    if (!isNil(validateMinAge)) {\n        const ageNow = format(new Date(), 'YYYY-MM-DD');\n        const diffInYears = differenceInYears(ageNow, birthday);\n\n        if (diffInYears < validateMinAge) {\n            throw new TrimozError(new Error(), (validateMinAge === MIN_AGE_TO_BOOK_IN_APP) ? 'errors.validateMinAgeApp' : 'errors.validateMinAge', null, null, [MIN_AGE_TO_BOOK_IN_APP]);\n        }\n    }\n\n    return true;\n}\n\nexport function formatFormObject(filteredEntries, convertStart = true) {\n    return map(filteredEntries, d => {\n        if (convertStart) {\n            d.start = format(parseFromTimeZone(d.start, { timeZone: 'UTC' }), 'YYYY-MM-DD HH:mm');\n        }\n        d.birthday = d.birthday ? format(d.birthday, 'YYYY-MM-DD') : '';\n        return d;\n    });\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&lang=scss&\"","import Url from 'url-parse';\nimport { replace } from 'lodash';\n\nexport function inferApiUrl() {\n    const parsed = new Url(process.env.VUE_APP_API || window.location.href);\n    parsed.set('host', replace(parsed.host, 'clients3.', 'api3.'));\n    parsed.set('host', replace(parsed.host, 'clients.', 'api.'));\n    parsed.set('host', replace(parsed.host, 'public-dot-', 'api-dot-'));\n    parsed.set('host', replace(parsed.host, 'uniprix.', 'api3.'));\n    parsed.set('host', replace(parsed.host, 'pharmaprix.', 'api3.'));\n    parsed.set('host', replace(parsed.host, 'reacts.', 'api.'));\n    return parsed.protocol + '//' + parsed.host;\n}\n\nexport function inferPortalUrl(pathname = '') {\n    const parsed = new Url(process.env.VUE_APP_PORTAL_URL || window.location.href);\n    parsed.set('hostname', replace(parsed.hostname, 'clients3.', 'portal3.'));\n    parsed.set('hostname', replace(parsed.hostname, 'clients.', 'portal.'));\n    parsed.set('hostname', replace(parsed.hostname, 'public-dot-', 'portal-dot-'));\n    parsed.set('hostname', replace(parsed.hostname, 'uniprix.', 'portal.'));\n    parsed.set('hostname', replace(parsed.hostname, 'pharmaprix.', 'portal.'));\n    // parsed.set('hostname', replace(parsed.hostname, 'reacts', 'portal.'));\n    parsed.set('pathname', pathname);\n    return parsed.toString();\n}\n\nexport function inferCookieDomain() {\n    let hostname = process.env.VUE_APP_COOKIE_DOMAIN || window.location.hostname;\n    hostname = replace(hostname, 'clients3.', '');\n    hostname = replace(hostname, 'clients.', '');\n    hostname = replace(hostname, /public-dot-.*?\\./, '');\n    hostname = replace(hostname, /uniprix.*?\\./, '');\n    hostname = replace(hostname, /pharmaprix.*?\\./, '');\n    return hostname;\n}\n\nexport function inferConsentDomain() {\n    let hostname = process.env.VUE_APP_CONSENT_DOMAIN || window.location.hostname;\n    hostname = replace(hostname, 'clients3.', 'portal3.');\n    hostname = replace(hostname, 'clients.', 'portal.');\n    hostname = replace(hostname, 'public-dot-', 'portal-dot-');\n    hostname = replace(hostname, 'uniprix.', 'portal.');\n    hostname = replace(hostname, 'pharmaprix.', 'portal.');\n    return hostname;\n}\n","const CovidScreeningMetadataLang = {\n    fr: {\n        covidScreeningHealthcareInstitution: {\n            dropDown: {\n                0: 'Autre',\n                1: 'Centre de santé Inuulitsivik',\n                2: 'Centre de santé Tulattavik de l’Ungava',\n                3: 'Centre hospitalier de l’Université de Montréal (CHUM)',\n                4: 'CENTRE HOSPITALIER UNIVERSITAIRE SAINTE-JUSTINE',\n                5: 'Centre universitaire de santé McGill (CUSM)',\n                6: 'CHU de Québec - Université Laval',\n                7: 'CISSS de Chaudière-Appalaches',\n                8: 'CISSS de l’Abitibi-Témiscamingue',\n                9: 'CISSS de l’Outaouais',\n                10: 'CISSS de la Côte-Nord',\n                11: 'CISSS de la Gaspésie',\n                12: 'CISSS de la Montérégie-Centre',\n                13: 'CISSS de la Montérégie-Est',\n                14: 'CISSS de la Montérégie-Ouest',\n                15: 'CISSS de Lanaudière',\n                16: 'CISSS de Laval',\n                17: 'CISSS des Îles',\n                18: 'CISSS des Laurentides',\n                19: 'CISSS du Bas-Saint-Laurent',\n                20: 'CIUSSS de l’Est-de-l’Île-de-Montréal',\n                21: 'CIUSSS de l’Estrie - Centre hospitalier universitaire de Sherbrooke',\n                22: 'CIUSSS de l’Ouest-de-l’Île-de-Montréal',\n                23: 'CIUSSS de la Capitale-Nationale',\n                24: 'CIUSSS de la Mauricie-et-Centre-du-Québec',\n                25: 'CIUSSS du Centre-Ouest-de-l’Île-de-Montréal',\n                26: 'CIUSSS du Centre-Sud-de-l’Île-de-Montréal',\n                27: 'CIUSSS du Nord-de l’Île-de-Montréal',\n                28: 'CIUSSS du Saguenay–Lac-Saint-Jean',\n                29: 'CLSC Naskapi',\n                30: 'Conseil Cri de la santé et des services sociaux de la Baie James (CCSSSBJ)',\n                31: 'CRSSS de la Baie-James',\n                32: 'Institut de cardiologie de Montréal (ICM)',\n                33: 'Institut national de psychiatrie légale Philippe-Pinel',\n                34: 'Institut universitaire de cardiologie et de pneumologie de Québec - Université Laval',\n                35: 'RRSSS du Nunavik',\n                36: 'Système',\n            },\n        },\n        covidScreeningHealthcareSharingResult: {\n            description: 'Je consens à ce que le centre qui procédera à mon dépistage transmette mon résultat au bureau de santé se rattachant à l’établissement pour lequel je travaille. Si je refuse, je m’engage à transmettre mon résultat à mon employeur dès sa réception.',\n            consent: 'Je consens',\n            refuse: 'Je refuse',\n        },\n        covidScreeningHealthcareInstitutionType: {\n            dropDown: {\n                0: 'RI',\n                1: 'RPA',\n                2: 'RTF',\n                3: 'CHSLD',\n            },\n        },\n        covidScreeningConsentReceiveResultByEmailSms: {\n            accept: 'J’accepte de recevoir mes résultats par courriel',\n            description: '<p class=\"mb-4\">J’ai lu la déclaration de consentement et JE CONSENS à ce que le centre de dépistage qui procédera à mon test de dépistage de la COVID-19 ou à celui de mon enfant de moins de 14 ans me transmette le résultat de test par courriel.</p>' +\n                '<p class=\"mb-4\">Je reconnais qu’en recevant le résultat de test par courriel, certaines de mes informations sortiront de la présente plateforme informatique sécurisée et pourront ne pas bénéficier des mêmes mesures de sécurité ou pourront être accessibles à d’autres personnes. Je reconnais que si mon adresse courriel est incorrect, mon résultat de test pourrait être transmis à une mauvaise adresse courriel.</p>' +\n                '<p class=\"mb-4\">En ne consentant pas à ce que le résultat de test soit transmis par courriel, je comprends que la transmission du résultat de test sera effectuée par téléphone.</p>',\n        },\n\n        covidScreeningPreferredCommunication: {\n            dropDown: {\n                0: 'Courriel',\n                1: 'Appel téléphonique',\n            },\n        },\n        covidScreeningCategory: {\n            dropDown: {\n                0: 'Étudiant',\n                1: 'Travailleur',\n                2: 'Enfant (0-5 ans)',\n                3: 'Sans emploi',\n                4: 'Retraité',\n                5: 'Autre/Refuse de préciser',\n            },\n        },\n        covidScreeningStudentSchoolRegion: {\n            dropDown: {\n                0: 'Abitibi-Témiscamingue',\n                1: 'Bas-Saint-Laurent',\n                2: 'Capitale-Nationale',\n                3: 'Chaudière-Appalaches',\n                4: 'Côte-Nord',\n                5: 'Estrie',\n                6: 'Gaspésie-Îles-de-la-Madeleine',\n                7: 'Lanaudière',\n                8: 'Laurentides',\n                9: 'Laval',\n                10: 'Mauricie-et-Centre-du-Québec',\n                11: 'Montérégie',\n                12: 'Montréal',\n                13: 'Nord-du-Québec',\n                14: 'Nunavik',\n                15: 'Outaouais',\n                16: 'Saguenay-Lac-Saint-Jean',\n            },\n        },\n        covidScreeningStudentLevel: {\n            dropDown: {\n                0: 'Préscolaire',\n                1: 'Primaire',\n                2: 'Secondaire',\n                3: 'Collégial',\n                4: 'Universitaire',\n            },\n        },\n        dataTable: {\n            covidScreeningHealthcareWorker: 'Dep. Covid - Travailleur de la santé',\n            covidScreeningHealthcareWorkerType: 'Dep. Covid - Employé (CIUSSS, CISSS, etc...)',\n            covidScreeningHealthcareInstitution: 'Dep. Covid - Établissement',\n            covidScreeningHealthcareInstitutionType: 'Dep. Covid - Type d\\'établissement',\n            covidScreeningHealthcareSharingResult: 'Dep. Covid - Consentement divulgation',\n            covidScreeningConsentSharingInformations: 'Dep. Covid - Consentement partage',\n            covidScreeningConsentReceiveResultByEmailSMS: 'Dep. Covid - Consentement par courriel/SMS',\n            covidScreeningPreferredCommunication: 'Dep. Covid - Préférences de communication',\n            covidScreeningTravelledOutsideQuebec: 'Dep. Covid - Voyage hors Québec',\n            covidScreeningCountry: 'Dep. Covid - Pays',\n            covidScreeningCategory: 'Dep. Covid - Catégorie',\n            covidScreeningStudentSchoolRegion: 'Dep. Covid - Région scolaire',\n            covidScreeningStudentLevel: 'Dep. Covid - Niveau',\n            covidScreeningStudentInstitution: 'Dep. Covid - Nom de l’établissement scolaire',\n            covidScreeningWorkingQuebec: 'Dep. Covid - Travaillez-vous au Québec?',\n            covidScreeningEmployerName: 'Dep. Covid - Nom de l\\'employeur',\n            covidScreeningChildNameOfNursery: 'Dep. Covid - Nom du service de garde',\n            covidScreeningOutbreakNumber: 'Dep. Covid - Numéro d’éclosion',\n        },\n    },\n    en: {\n        covidScreeningHealthcareInstitution: {\n            dropDown: {\n                0: 'Other',\n                1: 'Centre de santé Inuulitsivik',\n                2: 'Centre de santé Tulattavik de l’Ungava',\n                3: 'Centre hospitalier de l’Université de Montréal (CHUM)',\n                4: 'CENTRE HOSPITALIER UNIVERSITAIRE SAINTE-JUSTINE',\n                5: 'Centre universitaire de santé McGill (CUSM)',\n                6: 'CHU de Québec - Université Laval',\n                7: 'CISSS de Chaudière-Appalaches',\n                8: 'CISSS de l’Abitibi-Témiscamingue',\n                9: 'CISSS de l’Outaouais',\n                10: 'CISSS de la Côte-Nord',\n                11: 'CISSS de la Gaspésie',\n                12: 'CISSS de la Montérégie-Centre',\n                13: 'CISSS de la Montérégie-Est',\n                14: 'CISSS de la Montérégie-Ouest',\n                15: 'CISSS de Lanaudière',\n                16: 'CISSS de Laval',\n                17: 'CISSS des Îles',\n                18: 'CISSS des Laurentides',\n                19: 'CISSS du Bas-Saint-Laurent',\n                20: 'CIUSSS de l’Est-de-l’Île-de-Montréal',\n                21: 'CIUSSS de l’Estrie - Centre hospitalier universitaire de Sherbrooke',\n                22: 'CIUSSS de l’Ouest-de-l’Île-de-Montréal',\n                23: 'CIUSSS de la Capitale-Nationale',\n                24: 'CIUSSS de la Mauricie-et-Centre-du-Québec',\n                25: 'CIUSSS du Centre-Ouest-de-l’Île-de-Montréal',\n                26: 'CIUSSS du Centre-Sud-de-l’Île-de-Montréal',\n                27: 'CIUSSS du Nord-de l’Île-de-Montréal',\n                28: 'CIUSSS du Saguenay–Lac-Saint-Jean',\n                29: 'CLSC Naskapi',\n                30: 'Conseil Cri de la santé et des services sociaux de la Baie James (CCSSSBJ)',\n                31: 'CRSSS de la Baie-James',\n                32: 'Institut de cardiologie de Montréal (ICM)',\n                33: 'Institut national de psychiatrie légale Philippe-Pinel',\n                34: 'Institut universitaire de cardiologie et de pneumologie de Québec - Université Laval',\n                35: 'RRSSS du Nunavik',\n                36: 'Système',\n            },\n        },\n        covidScreeningHealthcareSharingResult: {\n            description: 'I consent to the screening test centre sharing my test result with the health office affiliated with the facility where I work. If I decline, I promise to forward my test result to my employer as soon as I receive it.',\n            consent: 'I consent',\n            refuse: 'I decline',\n        },\n        covidScreeningHealthcareInstitutionType: {\n            dropDown: {\n                0: 'RI',\n                1: 'RPA',\n                2: 'RTF',\n                3: 'CHSLD',\n            },\n        },\n        covidScreeningConsentReceiveResultByEmailSms: {\n            accept: 'I agree to receive my results by email',\n            description: '<p class=\"mb-4\">I have read the declaration of consent and I CONSENT to the center that will handle my COVID-19 screening test sending me the result by email. If the information concerns my child under 14 years of age, I CONSENT to the center that will handle my child\\'s COVID-19 screening test sending me the result by email.</p>' +\n                '<p class=\"mb-4\">I understand that in choosing to receive the test result by email, part of my information will leave this secure computer platform and might not benefit from the same security measures or be accessed by third parties. I acknowledge that if my email address or telephone number is wrong, my test result could be sent to the wrong email address.</p>' +\n                '<p class=\"mb-4\">By not consenting to the test result being sent by email, I understand that the transmission of the test result will be sent by telephone.</p>',\n        },\n        covidScreeningPreferredCommunication: {\n            dropDown: {\n                0: 'Email',\n                1: 'Phone',\n            },\n        },\n        covidScreeningCategory: {\n            dropDown: {\n                0: 'Student',\n                1: 'Worker',\n                2: 'Child',\n                3: 'Out of job',\n                4: 'Retired',\n                5: 'Other/Decline to answer',\n            },\n        },\n        covidScreeningStudentSchoolRegion: {\n            dropDown: {\n                0: 'Abitibi-Témiscamingue',\n                1: 'Bas-Saint-Laurent',\n                2: 'Capitale-Nationale',\n                3: 'Chaudière-Appalaches',\n                4: 'Côte-Nord',\n                5: 'Estrie',\n                6: 'Gaspésie-Îles-de-la-Madeleine',\n                7: 'Lanaudière',\n                8: 'Laurentides',\n                9: 'Laval',\n                10: 'Mauricie-et-Centre-du-Québec',\n                11: 'Montérégie',\n                12: 'Montréal',\n                13: 'Nord-du-Québec',\n                14: 'Nunavik',\n                15: 'Outaouais',\n                16: 'Saguenay-Lac-Saint-Jean',\n            },\n        },\n        covidScreeningStudentLevel: {\n            dropDown: {\n                0: 'Kindergarten',\n                1: 'Primary',\n                2: 'Secondary',\n                3: 'CEGEP',\n                4: 'University',\n            },\n        },\n        dataTable: {\n            covidScreeningHealthcareWorker: 'Covid Screening - Healthcare worker',\n            covidScreeningHealthcareWorkerType: 'Covid Screening - Healthcare worker type',\n            covidScreeningHealthcareInstitution: 'Covid Screening - Institution',\n            covidScreeningHealthcareInstitutionType: 'Covid Screening - Institution type',\n            covidScreeningHealthcareSharingResult: 'Covid Screening - Consent sharing result',\n            covidScreeningConsentSharingInformations: 'Covid Screening - Consent Sharing informations',\n            covidScreeningConsentReceiveResultByEmailSMS: 'Covid Screening - Consent result by Email/SMS',\n            covidScreeningPreferredCommunication: 'Covid Screening - Preferred communication',\n            covidScreeningTravelledOutsideQuebec: 'Covid Screening - travelled outside Quebec',\n            covidScreeningCountry: 'Covid Screening - Country',\n            covidScreeningCategory: 'Covid Screening - Category',\n            covidScreeningStudentSchoolRegion: 'Covid Screening - Student school region',\n            covidScreeningStudentLevel: 'Covid Screening - Student level',\n            covidScreeningStudentInstitution: 'Covid Screening - Student institution',\n            covidScreeningWorkingQuebec: 'Covid Screening - Working in Quebec?',\n            covidScreeningEmployerName: 'Covid Screening - Employer name',\n            covidScreeningChildNameOfNursery: 'Covid Screening - Name of nursery',\n            covidScreeningOutbreakNumber: 'Covid Screening - Outbreak number',\n        },\n    },\n};\n\nexport default CovidScreeningMetadataLang;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TzLoading.vue?vue&type=style&index=0&id=559c21a0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StandardHeaderMenu.vue?vue&type=style&index=0&id=34473c76&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoutConfirmationModal.vue?vue&type=style&index=0&id=12010258&lang=scss&scoped=true&\"","const RegionMetadataLang = {\n    fr: {\n        dropDown: {\n            0: 'Abitibi-Témiscamingue',\n            1: 'Bas-Saint-Laurent',\n            2: 'Capitale-Nationale',\n            3: 'Chaudière-Appalaches',\n            4: 'Côte-Nord',\n            5: 'Estrie',\n            6: 'Gaspésie-Îles-de-la-Madeleine',\n            7: 'Lanaudière',\n            8: 'Laurentides',\n            9: 'Laval',\n            10: 'Mauricie-et-Centre-du-Québec',\n            11: 'Montérégie',\n            12: 'Montréal',\n            13: 'Nord-du-Québec',\n            14: 'Nunavik',\n            15: 'Outaouais',\n            16: 'Saguenay-Lac-Saint-Jean',\n            17: 'Terres-Cries-de-la-Baie-James',\n        },\n    },\n    en: {\n        dropDown: {\n            0: 'Abitibi-Témiscamingue',\n            1: 'Bas-Saint-Laurent',\n            2: 'Capitale-Nationale',\n            3: 'Chaudière-Appalaches',\n            4: 'Côte-Nord',\n            5: 'Estrie',\n            6: 'Gaspésie-Îles-de-la-Madeleine',\n            7: 'Lanaudière',\n            8: 'Laurentides',\n            9: 'Laval',\n            10: 'Mauricie-et-Centre-du-Québec',\n            11: 'Montérégie',\n            12: 'Montréal',\n            13: 'Nord-du-Québec',\n            14: 'Nunavik',\n            15: 'Outaouais',\n            16: 'Saguenay-Lac-Saint-Jean',\n            17: 'Terres-Cries-de-la-Baie-James',\n        },\n    },\n};\n\nexport default RegionMetadataLang;\n","import CovidScreeningMetadataLang from '@/lang/covid-screening-metadata/CovidScreeningMetadataLang';\nimport RegionMetadataLang from '@/lang/region/RegionLang';\nimport InputValidationAccessibilityLang from '@/lang/input-validation-accessibility/InputValidationAccessibilityLang';\n\nexport default {\n    en: {\n        base: {\n            home: 'Home',\n            joinUs: 'Contact Us',\n            btnSubmit: 'Submit',\n            btnSubmitAriaLabel: 'Submit and book the appointment.',\n            close: 'I Understand',\n            delete: 'Delete',\n            print: 'Print',\n            noData: 'No data available',\n            continue: 'Next',\n            previous: 'Previous',\n            cancel: 'Cancel',\n            between: 'Between',\n            yes: 'Yes',\n            no: 'No',\n            na: 'Not Applicable or I don\\'t know',\n            iDontKnow: 'I don\\'t know',\n            noAnswer: 'Prefer not to answer',\n            choice: 'Please choose',\n            timezone: 'My time zone:',\n            establishmentTimeZone: 'Time zone:',\n            easternTime: 'Eastern Time',\n            atlanticTime: 'Atlantic Time',\n            zipCode: 'Postal code',\n            male: 'Male',\n            female: 'Female',\n            undefined: 'Unspecified',\n            changeVaccineType: 'Change vaccine type',\n            backToResults: 'Back to results',\n            previousPage: 'Previous page',\n            distanceWarning: 'The distances displayed are calculated in a straight line and not according to a route.',\n            showMore: 'Show More',\n            showLess: 'Show Less',\n            phonePrefix: 'Tel.',\n            phoneMask: '(###) ### - ####',\n            namMask: 'AAAA #### ####',\n            dateMask: '####-##-##',\n            shortPostalCodeMask: 'A#A',\n            postalCodeMask: 'A#A #A#',\n            faxPrefix: 'Fax.',\n            gapMode: 'GAP Mode',\n            errors: {\n                requiredField: 'Field is required',\n                requiredFieldWithLabel: 'The field \"{fieldLabel}\" is required',\n                requiredFieldConsentForm: 'The confirmation code is required',\n                requiredFieldsErrorList: 'List of required fields in error:',\n                requiredTermsAndConditions: 'You must accept the terms and conditions',\n                requiredRecaptchaToken: 'You must check the box \"I am not a robot\"',\n                failed: 'An error occurred. Please try again.',\n                requiredFields: 'Please fill in all mandatory fields',\n                cellPhone2short: 'Cellphone number is incorrect',\n                phone2short: 'Phone number is incorrect',\n                invalidEmail: 'Invalid email format',\n                invalidNam: 'This health insurance card is invalid',\n                temporaryNAM: 'This health insurance card is temporary',\n                invalidUrl: 'Invalid url format',\n                invalidZipCode: 'Invalid postal code',\n                invalidBirthday: 'Invalid birth date',\n                invalidDate: 'Invalid date',\n                invalidMonth: 'Invalid month',\n                invalidName: 'This name is invalid',\n                invalidComments: 'Special characters are not supported',\n                zipcodeError: 'Postal code could not be located',\n                geolocShortPostcodeFormat: 'The postal code format is not valid',\n                invalidConfirmationCode: 'The confirmation code format is not valid',\n                errorDialogTitle: 'An error occurred',\n                invalidEmployeeNumber: 'Employee number is not of a valid format',\n                formQuestion: 'You must answer this question by selecting one of the options above.',\n                invalidExtension: 'The extension is invalid',\n                scannedRequestMaxSize: 'The file exceeds the limit allowed size of 8 megabytes (MB)',\n                invalidDateRange: 'The date must be between {minDate} and {maxDate}',\n                travelInvalidDateRange: 'The travel departure date must be between {minDate} and {maxDate}',\n                dateFuture: 'The date must be in the future',\n                travelDateFuture: 'Travel departure date must be in the future',\n                pregnancyDateFuture: 'The due date must be in the future',\n                datePast: 'The date must be in the past',\n                invalidPrematureBirthWeeks: 'The number of weeks must be between 1 and 32',\n            },\n            cookieConsent: {\n                message: 'This website uses cookies to provide the best possible experience. For more information, visit our: ',\n                linkLabel: 'Privacy Policy',\n                buttonLabel: 'Ok',\n                urlPath: '/confidentialite',\n            },\n            accessibility: {\n                nextStep: 'Continue to the next step',\n            },\n        },\n        header: {\n            accessibilitySkipToContentLink: 'Skip to main content',\n            subtitle: 'Online appointment booking',\n            tabs: {\n                takeAppt: 'Appointment Booking',\n                reminder: 'Set a Reminder',\n                cancelAppt: 'Cancel an Appointment',\n            },\n            profile: {\n                menu: {\n                    myProfile: 'My Profile',\n                    settings: 'Account Settings',\n                    disconnect: 'Disconnect',\n                },\n                loginText: 'Login',\n                loggedText: 'My account',\n                createMyAccount: 'Create my account',\n            },\n            clicsante: {\n                title1: 'Book your health',\n                title2: ' appointment now!',\n                menu: {\n                    takeAppt: 'Home',\n                    solution: 'Our solutions',\n                    cancelAppt: 'Cancel appointment',\n                    faq: 'FAQ',\n                    join: 'Contact Us',\n                    job: 'Job offers',\n                    terms: 'Terms and conditions of use',\n                    policy: 'Privacy Policy',\n                    cookiePolicy: 'Cookie Policy',\n                    locale: 'EN',\n                },\n            },\n            logoutConfirmationModal: {\n                title: 'Log out from my Clic Santé account',\n                text: 'Are you sure you want to log out ?',\n                cancel: 'Cancel',\n                logout: 'YES, LOG ME OUT',\n            },\n        },\n        footer: {\n            website: 'Visit our Website',\n            trimoz: {\n                depistage: 'depistage.clicsante.ca is an online appointment booking system that allows patients to quickly schedule appointments from the comfort of their own home and easily obtain a confirmation.',\n                clicsante: 'Clic Santé is an online appointment booking system that allows patients to quickly schedule appointments from the comfort of their own home and easily obtain a confirmation.',\n                pharmaservices: 'Pharmaservices is a an online appointment booking system that allows patients to quickly schedule appointments from the comfort of their own home and easily obtain a confirmation.',\n                pharmaprix: 'Only pharmacists are responsible for pharmacy practice',\n                uniprix: 'Services in pharmacy are the sole responsibility of pharmacist-owners. Only pharmacists are responsible for pharmacy practice. They only provide related services acting under a pharmacist-owner’s name.',\n                allRightsReserved: 'All rights reserved',\n            },\n            terms: {\n                name: 'Terms and conditions of use',\n                path: 'terms'\n            },\n            policy: {\n                name: 'Privacy Policy',\n                path: 'privacy'\n            },\n            cookiePolicy: {\n                name: 'Cookie Policy',\n                path: 'cookie-policy'\n            },\n            clicsante: {\n                mobileMenus: {\n                    takeAppt: 'Book <br/>appointment',\n                    cancelAppt: 'Cancel<br/>appointment',\n                    loginText: 'Login',\n                    loggedText: 'My account',\n                },\n            },\n        },\n        appt: {\n            accessibility: {\n                selectPlace: `Select %{placeName} located at %{address}.`,\n                unknowPlaceAddress: 'unknow localisation',\n                selectService: `Select %{serviceName}. Service description: %{serviceDescription}`,\n                unknowServiceDescription: 'No description available.',\n                dateDescription: {\n                    default: `Select to make an appointment for %{date} for service %{serviceName}.`,\n                },\n                timeDescription: {\n                    default: `Select to make an appointment at %{time} on %{date} for service %{serviceName}.`,\n                    alternate: `Instead, select the appointment at %{time} on %{date} for service %{serviceName}.`,\n                },\n                timeDescriptionSelected: {\n                    default: `You have chosen to select the appointment at %{time} on %{date} for service %{serviceName}.`,\n                },\n                stepsIntroduction: {\n                    default: 'Start of appointment booking steps%{serviceName} of %{establishmentName} %{selectedPlaceName} (%{establishmentType})%{formattedPlaceAddress}.',\n                    serviceName: ' for %{serviceName} service',\n                    formattedPlaceAddress: ' located at %{formattedPlaceAddress}',\n                },\n                continueButtonLabel: 'Go to the next step to continue booking an appointment on {0} at {1} for the {2} service',\n                registrationOption: 'Optional step: you can log in or subscribe for a free Clic Santé account to automatically fill in the identification form for each appointment.',\n                profileCompletionOption: 'Optional step: you can complete your Clic Santé account registration to pre-fill in the identification form for each appointment.',\n                noAvailable: 'no',\n                available: '',\n                availsCheck: 'There are {0} available appointments for the current selected month of {1}. {2}',\n                availsForMonthPrev: 'Press the tab key to continue or press enter to go to the previous month of {0}.',\n                availsForMonthNext: 'Press the tab key to select a date on the calendar or press enter to go to the next month of {0}.',\n                noAvailsForMonthNext: 'Press enter to go to the next month of {0}.',\n                fillFormA11yDirective: 'To fulfill the appointment form without difficulties, navigating by tabulation is recommended. Press the TAB key to advance from an element to another. Press the SHIFT and TAB keys for returning to the previous element. For multiple choices elements, use the arrow navigation to go from a choice to another. Press the SPACE or ENTER key to select the choice.',\n            },\n            docTitle: 'Book an appointment',\n            answerQuestions: 'Answer the questions',\n            answeredQuestions: 'Questions',\n            chooseService: 'Select a service',\n            chooseServiceSub: 'Please select a service',\n            answerServiceFilters: 'Answer the questions',\n            answeredServiceFilters: 'Questions',\n            zipCodeFilter: 'Please enter your postal code',\n            answeredZipCodeFilter: 'Postal code',\n            enterZipCode: 'Enter your postal code: ',\n            choosePlace: 'Select a location',\n            choosePlaceSub: 'Please select a location',\n            chooseMoment: 'Choose date and time',\n            stepProgresss: 'Step @num of @total',\n            currentStep: 'Current step',\n            completedStep: 'Completed step',\n            dataCollectionForm: 'Additional Information',\n            dataCollectionAriaDescription: 'Your appointment has been booked. This step is optional and allows the professional to better prepare your appointment.',\n            at: ' at ',\n            to: ' to ',\n            details: 'Details',\n            full: 'Full',\n            previousMonth: 'Previous Month',\n            nextMonth: 'Next Month',\n            chooseMomentSub: 'Please select a time and date for your appointment',\n            chooseTime: 'Please select a time for your appointment',\n            nominativeData: 'Complete your booking',\n            nominativeDataSub: 'Please enter your information',\n            description: 'Description: ',\n            document: 'Refer to the service information document',\n            apptTime: 'Appointment time',\n            apptTimeTitle: 'Select an appointment time',\n            apptDateTitle: 'Select an appointment date',\n            loadingTimeSlotsAriaMessage: 'Loading time slots',\n            noMetaToDisplay: 'No more info required...',\n            duration: 'Duration:',\n            minutes: ' minutes',\n            price: 'Price: ',\n            feesWillApply: 'Fees will apply',\n            priceOnDemand: 'Pricing upon request',\n            freeOfCharges: 'This service is free of charge',\n            upcoming: 'Upcoming',\n            complete: 'Full',\n            selectMonth: 'Select this month',\n            serviceAvailable: 'Service available',\n            serviceNotAvailable: 'Service not available',\n            topOfStepperForm: 'Top of multi step form',\n            targetVaccine: 'The recommended immunization target for your child is from ',\n            targetPregnancy: 'The recommended target date for your appointment is from ',\n            scannedRequest: 'Take a photo in JPG / PNG format or scan your request in PDF format to send with your appointment. Max. accepted size: 8 megabytes (MB)',\n            skipNAM: 'I confirm that I do not have a Quebec Health Insurance Number. I will provide accurate additional information so that I can be identified correctly.',\n            tooltips: {\n                number: 'You can take more than one appointment',\n                time: 'Select the appointment time',\n                clickToSee: 'Click to see service details',\n                clickToSeePlaceDetails: 'Click to see address',\n                scannedRequest: 'The quality of the submitted image is your responsibility.<br /><br />Tips on taking your photo:<br />- Flatten the request, place it on a dark, non-reflective surface <br />- Make sure there is enough light<br />- Ensure the image is clear, and that all information is clearly visible.<br /><br />Inspect the image quality before submitting.',\n            },\n            dayStatus: {\n                availabilities: 'Availabilities',\n                toCome: 'Upcoming',\n                complete: 'Full',\n                kidsAvailabilitiesInsideDelay: 'Target Period',\n                kidsAvailabilitiesInsideTolerance: 'Off-target period',\n                kidsAvailabilitiesOutsideTolerance: 'Availabilities outside tolerance',\n            },\n            notifications: {\n                deleteSuccess: 'The appointment has been deleted successfully',\n                addSuccess: 'The appointment has been added successfully',\n                failed: 'An error has occurred. Try Again.',\n                dataCollectionForm: 'Please complete the additional information which will be consulted by your pharmacist before your consultation. This will validate your eligibility for care and speed up your access to a healthcare professional.'\n            },\n            placeholder: {\n                email: 'Enter your email',\n                confirmEmail: 'Validate your email',\n                cellphone: 'Enter your cell phone number',\n                firstName: 'Enter the patient\\'s first name',\n                lastName: 'Enter the patient\\'s last name',\n                phone: 'Enter your phone number',\n                birthday: 'Enter the patient\\'s  birth date',\n                requester_link_0: 'Myself',\n                requester_link_1: 'Someone else or for another patient',\n                requester_name: 'Enter the name of the person booking the appointment',\n                consentFormConfirmationCode: 'Please enter the consent form confirmation code',\n                address: 'Enter the patient\\'s address including street, apartment number, city and postal code',\n                employeeNumber: 'Unique number that identifies you to your employer',\n                employerName: 'Enter the name of your employer',\n                workLocation: 'Enter your workplace location',\n                jobTitle: 'Enter your job title',\n                employeeRegion: 'Enter the employer region (QHR)',\n                employeeEstablishment: 'Enter the employer establishment',\n                employeeCategory: 'Enter the employee category',\n            },\n            hints: {\n                cellphone: 'Enter your cellphone number if you wish to receive SMS notifications (Standard messaging fees may apply)',\n            },\n            labels: {\n                employerRegion: 'Employer region',\n            },\n            errors: {\n                apptDate: 'Appointment date is required',\n                apptTime: 'Appointment time is required',\n                phone: 'The phone number is required',\n                cellphone: 'The cellphone number is required',\n                email: 'The email is required',\n                confirmEmail: 'The email confirmation is required',\n                emailValid: 'Email format is invalid',\n                first_name: 'The first name is required',\n                last_name: 'The last name is required',\n                birthday: 'Birth date is required',\n                birthdayValid: 'Birth date is invalid',\n                sendByEmail: 'The email is required to send the message',\n                sendBySMS: 'The cellphone number is required to send the SMS',\n                invalidAppointmentCount: 'You have exceeded the number of available appointments',\n                atLeastOneRequired: 'You need to take at least one appointment',\n                noAvailability: 'There are no results that match your search',\n                emailNoMatch: 'The \"Email\" and \"Email Confirmation\" field values must be the same',\n                dynamicServiceFilters: 'No matching service found',\n                pregnancy_dpa: 'Expected birth date is required',\n                optinNewServiceList: 'Please enter your email to receive our service notifications',\n                comments: 'Comments are required',\n                resident_first_name: 'Resident first name is required',\n                resident_last_name: 'Resident last name is required',\n                resident_room_number: 'Resident room number is required',\n                resident_birthday: 'Resident birthdate is required',\n                scanned_request: 'Scanned document is required',\n                requester_link: 'You must select who the appointment is for',\n                requester_name: 'You must enter the name of the person booking the appointment',\n                travelerCount: 'The number of travelers must be between %min% and %max%',\n                nam: 'The field is required. You must enter a valid Quebec Health Insurance number or check the box if you do not have a Quebec Health Insurance number.',\n            },\n            ah635: {\n                healthProblems: 'Have you had COVID-19 or COVID-19 symptoms or have you noticed a recent change in your health?',\n                immunosuppression: 'Do you fall into either of the following categories:' +\n                    '<div class=\"pl-4 pb-0\">A. You are taking immuno-suppressive drugs.' +\n                    '<br/>B. You have a disease that weakens your immune system, such as cancer.</div>',\n                allergicReactions: 'Have you ever had an allergic reaction that required a visit to the hospital?\\n',\n                pregnancyQuestion: '<strong class=\"font-weight-black\">If you are a woman,</strong> are you currently pregnant?',\n                bleedingDisorder: 'Do you have a blood clotting problem or are you taking blood thinning medication?',\n                immunization: 'Are you in the following category:' +\n                    '<div class=\"pl-4 pb-0\">A. Have you been hospitalized and treated for COVID-19 in the last 90 days?</div>',\n            },\n            as624: {\n                healthProblemsQuestion: 'Do you currently have a change in your health status, from your usual status ?',\n                immunosuppressionQuestion: 'Do you have a weakened immune system due to a disease or a medication ?',\n                allergicReactionsQuestion: 'Do <strong class=\"font-weight-black\">any</strong> of the following apply to you ?' +\n                                '<br/>- You have had a severe allergic reaction that required emergency medical attention' +\n                                '<br/>- You have had a fairly severe reaction to a vaccine that required medical attention',\n                bleedingDisorderQuestion: 'Do you have any bleeding disorders that require medical attention or anticoagulants ?',\n                hasBloodTransfusionQuestion: 'Have you received a blood transfusion or immunoglobulin injection in the last 11 months ?',\n                pregnancyQuestion: '<strong class=\"font-weight-black\">If you are a woman</strong>, are you pregnant ?',\n                lessThanSixMonthsMotherTreatmentQuestion: 'If the patient is an infant less than 6 months of age, did the mother take a biologic agent (e.g., Enbrel, Remicade, Humira) for the treatment of an autoimmune disease (e.g., Crohn’s disease, rheumatoid arthritis, lupus, or psoriasis) during pregnancy ?',\n            },\n            priorityGroup: {\n                healthWorker: 'I am a private sector healthcare worker',\n                informalCaregiver: 'I am an informal or family caregiver',\n                childcareWorker: 'I am a worker in a licensed early childhood education service or in a school childcare service',\n                essentialHealthWorker: 'I am an essential worker',\n                chronicDisease: 'I am an adult who has a chronic disease or health problem that increases the risk of complications from COVID-19',\n                handicapped: 'I am an adult who has a a motor, intellectual, speech, language, visual, auditory, or other sensory disability or an autism spectrum disorder.',\n                handicappedAccompagnator: 'I am a caregiver accompanying an adult who has a a motor, intellectual, speech, language, visual, auditory, or other sensory disability or an autism spectrum disorder.',\n                pregnantWoman: 'I am pregnant.',\n                publicHealthWorker: 'I am a private or public health and social services worker',\n                schoolWorker: 'I am a worker in a school',\n                dayCampWorker: 'I am a worker in a summer or day camp',\n                seniorsResidence: 'I live in a CHSLD or seniors’ residence',\n                astra45: 'I have received 2 doses of AstraZeneca or Covishield',\n                nothing: 'I am part of an age group identified for vaccination',\n                nothing12: 'I am a person 12 years or older',\n                nothing14: 'I am a person 14 years or older',\n                nothing18: 'I am a person 18 years or older',\n                nothing25: 'I am a person 25 years or older',\n                nothing30: 'I am a person 30 years or older',\n                nothing35: 'I am a person 35 years or older',\n                nothing40: 'I am a person 40 years or older',\n                nothing45: 'I am a person 45 years or older',\n                nothing50: 'I am a person 50 years or older',\n                nothing55: 'I am a person 55 years or older',\n                nothing60: 'I am a person 60 years or older',\n                nothing65: 'I am a person 65 years or older',\n                nothing70: 'I am a person 70 years or older',\n                nothing75: 'I am a person 75 years or older',\n                nothing80: 'I am a person 80 years or older',\n                requiresConsent: 'I make an appointment for a 12 or 13 year old child',\n                immunocompromised: 'I am immunocompromised or on dialysis.',\n                rpa: 'I am living in a long-term health care centre (CHSLD) or a private senior\\'s residence',\n                title: 'Are you in one of the following situations:',\n                hint: 'Please validate your eligibility if you are a private sector healthcare worker, an essential worker or if you have a chronic illness.',\n                vaccineArn: 'I received 2 doses of Astra Zeneca or Covishield and 1 dose of mRNA vaccine (Moderna or Pfizer)',\n                none: 'None of the situation applies to me',\n                genericVaccine: {\n                    title: 'Select the category that applies to you:',\n                    ageGroupIdentified: 'I am a person %MIN_AGE_FOR_BOOKING% years of age or older',\n                    immunocompromised: 'I am an immunocompromised person 18 years of age or older',\n                },\n            },\n            influenza: {\n                healthStatus: 'Do any of the following apply to you:' +\n                    '<div class=\"pl-4 pb-0\">A. You have noticed a recent change in your health.' +\n                    '<br/>B. You have asthma.' +\n                    '<br/>C. You have heavy nasal secretions.' +\n                    '<br/>D. You are taking a medication that treats or prevents strokes that occur due to blood clots.</div>',\n                isImmunosuppressive: 'Does one of the following situation apply to you?' + '' +\n                    '<div class=\"pl-4 pb-0\">A. You are taking immunosuppressive medications.' +\n                    '<br/>B. You have a disease that weakens your immune system, such as cancer.</div>',\n                hasSevereReaction: 'Have you ever had a severe reaction after receiving a vaccine or other product that required a hospital visit?',\n                isPregnant: 'If you are a woman, are you currently pregnant?',\n                receivedVaccineLastMonth: 'Have you received a vaccine during the last month?',\n                hasImmunocompromisedContact: 'Are you in close contact with an immunocompromised person?',\n                peopleWhoLiveWithMe: 'Do you live with? ' +\n                    '<div class=\"pl-4 pb-0\">A. An infant under 6 months of age.' +\n                    '<br/>B. A person 75 years of age or older.' +\n                    '<br/>C. A pregnant woman in her 2nd or 3rd trimester.' +\n                    '<br/>D. A person with a chronic illness?</div>',\n                hasBloodTransfusion: 'Have you received a blood transfusion or immunoglobulin in the past 11 months? ',\n                receivedPneumococcalVaccine: 'Have you received a Pneumococcal vaccine in the past?',\n                isHealthCareWorker: 'Are you a health care worker?',\n                receivedShinglesVaccine: 'Have you received a Shingles vaccine in the past?',\n            },\n            vaccineApprehension: {\n                title: 'Please indicate which situation applies to you:',\n                yes: 'I’m worried about getting vaccinated (example: I’m scared of needles)',\n                no: 'I don\\'t have any apprehension about vaccination',\n            },\n            coveredRamq: {\n                title: 'Select the category that applies to you:',\n                child6MonthTo17Years: 'Children aged 6 months to 17 years with chronic disease',\n                adultChronicDisease: 'Adults with chronic disease, including pregnant women in any trimester',\n                pregnant: 'Pregnant women in their 2nd and 3rd trimester (14th week and older)',\n                person75AndMore: 'Person 75 years of age and older',\n                child6MonthTo23Month: 'Children between 6 and 23 months of age',\n                person60To74: 'Person between 60 and 74 years of age',\n                caregiver: 'Caregiver or person living in the same household as a child under 6 months of age or a person at high risk of hospitalization or death',\n                healthCareWorker: 'Health care worker',\n                none: 'I don\\'t know or none of these categories apply to the patient',\n            },\n            civilStatusLabel: {\n                single: 'Single',\n                divorced: 'Divorced',\n                married: 'Married',\n                'common-law': 'Common-law',\n                separated: 'Separated',\n                widowed: 'Widowed',\n            },\n            coadminInjection: {\n                title: 'Which vaccines would you like to receive at your appointment?',\n                option1: 'COVID-19 and flu vaccines',\n                option2: 'COVID-19 vaccine only',\n                option3: 'Flu vaccine only',\n            },\n            relationshipListLabel: {\n                father2: 'Father2',\n                friend: 'Friend',\n                other: 'Other',\n                'brother-in-law': 'Brother in law',\n                stepmother: 'Stepmother',\n                stepfather: 'Stepfather',\n                'sister-in-law': 'Sister in law',\n                joint: 'Joint',\n                daughter: 'Daughter',\n                son: 'Son',\n                brother: 'Brother',\n                grandmother: 'Grandmother',\n                grandfather: 'Grandfather',\n                mother: 'Mother',\n                nephew: 'Nephew',\n                niece: 'Niece',\n                'little-girl': 'Little girl',\n                grandson: 'Grandson',\n                dad: 'Dad',\n                sister: 'Sister',\n                mother2: 'Mother2',\n            },\n            establishment: {\n                type: {\n                    pharmacie: 'Pharmacy',\n                    clinique_privee: 'Private Clinic',\n                    etablissement_de_sante: 'Health Establishment',\n                    demo: 'Demo',\n                },\n            },\n        },\n        coupon: {\n            title: 'Thank you for booking an appointment',\n            thanks: 'Thank you for booking an appointment!',\n            number: 'Appointment # : ',\n            service: 'Service : ',\n            resource: 'With :',\n            date: 'Date : ',\n            hour: 'Hour : ',\n            price: 'Cost : ',\n            place: 'Location : ',\n            address: 'Address : ',\n            placeInstructions: 'Important message:',\n            instructions: 'Instructions :',\n            additionalInformation: 'Additional information:',\n            sendByEmail: 'Send by email',\n            sendBySMS: 'Send by SMS',\n            confirmEmail: 'You will receive this confirmation by email at',\n            confirmSMS: 'You will receive this confirmation by SMS at',\n            reminderEmail: 'prior to your appointment you will receive a reminder email at',\n            reminderSMS: 'prior to your appointment you will receive a reminder text message at',\n            virtualReminder: 'prior to your appointment, you will receive a reminder email with the link to the virtual waiting room.',\n            smsSent: 'The SMS was sent',\n            backToApptBooking: 'Back to Home',\n            scannedRequest: 'Scanned document:',\n            totalApptBooked: 'Number of appointments booked:',\n            nextApptBookNotif: 'On {date}, you will receive a reminder to book your next appointment for: {service}',\n            cancelCouponTitle: 'Previous appointment cancelled with success!',\n            takeAnotherAppt: {\n                title: 'Book another appointment',\n                text: 'To book an appointment for a companion or a family member living in the same residence, click on the button below to quickly complete the booking process.',\n                btn: 'Book another appointment',\n            },\n            createProfile: 'Create a Clic Santé profile',\n            whyCreateProfile: 'Why should I create a profile?',\n        },\n        profileAdvantage: {\n            title: 'Enhance your experience: Create your Clic Santé profile!',\n            subtitle: 'Enjoy many exclusive benefits:',\n            actionBtn: 'Create an account for free',\n            advantage1: 'View the history of your past appointments',\n            advantage2: 'Keep an eye on your upcoming appointments',\n            advantage3: 'Modify your personal data and contact information in one place',\n        },\n        reminder: {\n            title: 'Remind me of booking the next appointment',\n            reminderInfo: 'Reminder Information',\n            remindersInfo: 'Reminders Information',\n            maxDate: 'Maximum Date: ',\n            addChild: 'Add a reminder',\n            submitSuccess: 'Reminders added successfully',\n        },\n        cancel: {\n            cancelTitle: 'Enter your appointment confirmation number in the text field below and click on the \"Cancel my appointment\" button.',\n            cancelSingleTitle: 'Appointment information:',\n            cancelMultipleTitle: 'We detected the following appointments were booked at the same time. Check the appointments you want to cancel: ',\n            couponLostTitle: 'Did you lose your confirmation number? You can find upcoming appointments from your email.',\n            unableToCancel: 'Unable to cancel your appointment? Please call your health center for assistance.',\n            couponNumber: 'Coupon number',\n            appointmentDate: 'Appointment date',\n            appointmentDateRequired: 'Appointment date required',\n            groupUuidFromEmail: 'Identification number',\n            couponNumberRequired: 'The coupon number is required',\n            cancelMyAppointment: 'Cancel my appointment',\n            cancelMyAppointments: 'Cancel my appointments',\n            getMyAppointment: 'Send me a reminder of my appointments',\n            keepMyAppointments: 'Keep my appointments',\n            keepMyAppointment: 'Keep my appointment',\n            cancelSuccess: 'Appointment successfully cancelled',\n            couponLostSuccess: 'Email sent successfully',\n            couponLostSuccessNoContent: 'No appointments were found for this email',\n            errors: {\n                invalidCouponNumber: 'Invalid coupon number',\n                appointmentDateInvalid: 'Invalid appointment date',\n                couponNotAssociated: 'No appointment associated to this coupon',\n            },\n            accessibility: {\n                prefilledCouponNumber: 'The coupon number has been pre-filled from your appointment email.',\n                prefilledAppointmentDate: 'The appointment date has been pre-filled from your appointment email.',\n                apptToBeCancelled: 'Click to cancel the appointment on {0} at {1} for the {2} service',\n            },\n        },\n        confirm: {\n            confirmSuccess: 'Appointment successfully confirmed',\n        },\n        joinUs: {\n            title: 'Contact Us',\n            byPhone: 'By phone:',\n            byMail: 'By email: Please fill the form below',\n            send: 'Send',\n        },\n        form: {\n            required: 'required',\n            optional: 'optional',\n            fieldIsRequired: 'The field {0} is required',\n            ownerTermsText: '* I understand and accept the <a href=\"{0}\" target=\"_blank\">Terms and Conditions of Use</a> and confirm that I am {1} years of age or older.',\n            otherTermsText: '* The patient (or the guardian if the patient is under {1} years old or is incapacitated) understands and agrees to the <a href=\"{0}\" target=\"_blank\">Terms and Conditions of Use</a>.',\n            ownerConsentCollectData: '* I understand and agree that my personal information may be disclosed in accordance with the <a href=\"{0}\" target=\"_blank\">Privacy Policy</a>.',\n            otherConsentCollectData: '* The patient (or the guardian if the patient is under 14 years old or is incapacitated) understands and agrees that their personal information may be shared in accordance with the <a href=\"{0}\" target=\"_blank\">Privacy Policy</a>.',\n            ownerConsentReceiveMarketing: 'I consent to receiving electronic commercial communications from Trimoz by SMS and email. These communications may include the addition of new services in your area. I understand that I may unsubscribe at any time.  Trimoz reserves the right to send operational emails regarding their services.',\n            otherConsentReceiveMarketing: 'The patient consents to receiving electronic commercial communications from Trimoz by SMS and email. These communications may include the addition of new services in your area. I understand that I may unsubscribe at any time.  Trimoz reserves the right to send operational emails regarding their services.',\n            preTermsText: '* I am {0} years-old or over and I agree with the',\n            prePolicyText: 'and the',\n            terms: 'Terms of Services',\n            policy: 'Privacy Policy',\n            termsLink: '/terms',\n            policyLink: '/privacy',\n            optinNewServiceList: 'Notify me when new services are available in my region',\n            birthDate: 'Patient\\'s birth date',\n            vaccine: 'Vaccine',\n            reminderDate: 'Reminder Date',\n            firstName: 'Patient\\'s first name',\n            lastName: 'Patient\\'s last name',\n            phone: 'Phone',\n            email: 'Email',\n            message: 'Your message',\n            age: 'Age',\n            status: 'Status',\n            ramq: 'RAMQ',\n            adult: 'Adult',\n            child: 'Child',\n            receiveSMSConfirmation: 'Receive the confirmation by SMS',\n            selectNam: 'Select patient',\n            consentHints: {\n                warning: 'FOLLOW THE INSTRUCTIONS BELOW UNTIL THE END TO GET YOUR FLU VACCINE CONSENT FORM CONFIRMATION CODE.',\n                bullet1: '<strong class=\"font-weight-black\"><a href=\"https://access.eforms.pharmaprix.ca/flu\" target=\"_blank\" class=\"consent-form-link\"><span style=\"color: #cc0a00;\">Complete your consent form</span></a>.</strong> The code will be sent to you by email or text message/SMS immediately after completing the form.',\n                bullet2: 'Use the same phone number in your appointment request and when filling the consent form.',\n                bullet3: 'After retrieving your confirmation code (email or SMS), come back to this window to enter the code in the field above.',\n                thanks: '<strong class=\"font-weight-black\">Thank you for completing the form. This will allow us to ensure your safety when receiving your flu shot.</strong>',\n            },\n            delegatedPiConsent: '* I am legally authorized to provide this personal information or I have obtained the authorization of the person concerned.',\n            travelerCount: 'The configuration allows exactly %traveler% traveler(s) per appointment',\n            confirmEmail: 'Email Confirmation',\n            multiApptLabel: 'Number of appointments desired',\n            firstVirtualAppointment: 'This is my first virtual appointment',\n            hasntVirtualAccount: 'Click here if you don\\'t have a React\\'s account',\n            appointmentOnReacts: 'The virtual appointment will take place on the ',\n            appointmentOnReacts2: '\\' platform. You will receive details by email in order to prepare for your virtual appointment.',\n            warningNamExpired: 'Beware: You are about to submit an expired health card',\n            virtualAccountSelect: {\n                label: 'Choose an option for your Reacts\\' account',\n                items: {\n                    true: 'I have a Reacts account',\n                    false: 'I do not have a Reacts account',\n                },\n            },\n            reactsRegisterMailInfo: 'Reacts will send you an email to complete the registration of your new account.',\n            covid195To11ConfirmConsentToVaccine: {\n                title: 'PARENT/GUARDIAN CONSENT (DECISION)',\n                text: '<p class=\"mb-2\">As the parent or guardian of a child under the age of 14, you are in charge of vaccination decisions for this child.</p>' +\n                    '<p class=\"mb-2\">Explanations for making an informed decision have been provided to you and are available in the email that was sent by your child\\'s school.' +\n                    '<p class=\"mb-2\">Your consent applies to 2 doses of COVID-19 messenger RNA vaccine (Pfizer) if applicable.</p>' +\n                    '<p class=\"mb-2\">If your child has already had positive test to COVID-19, the vaccinator will assess them and then administer the required number of doses; only one dose may be required.</p>' +\n                    '<p class=\"mb-2\"><strong>Indicate whether or not your child may be vaccinated against COVID-19 with Pfizer RNA COVID-19 vaccine.</strong></p>' +\n                    '<p class=\"mb-2\">You may change your consent at any time. To change your consent, you must contact the CISSS or CIUSSS in your region.</p>',\n                refuse: 'I DECLINE to have my child vaccinated against COVID-19',\n                refuseError: 'You must consent to have your child vaccinated to complete the booking.',\n            },\n            covid195To11ConfirmReadDocument: {\n                label: 'I have read the leaflet titled “' +\n                    '<a href=\"https://www.quebec.ca/en/health/health-issues/a-z/2019-coronavirus/progress-of-the-covid-19-vaccination/vaccination-children\" target=\"_blank\">' +\n                    'Vaccination against COVID-19 for children age 5 to 11' +\n                    '</a>” form provided by Ministère de la Santé et des Services sociaux and declare that I have fully ' +\n                    'understood the information it contains and have obtained appropriate information regarding the ' +\n                    'benefits and risks of COVID-19 vaccination as well as the risks of not being vaccinated.',\n            },\n            patientSelector: {\n                otherPatient: 'Other patient',\n            },\n            errors: {\n                piConsentRequired: 'Consent is required',\n                birthDate: 'Patient\\'s birth date is required',\n                birthDateFormat: 'Birth date is not valid',\n                dateFormat: 'Date is not valid',\n                vaccine: 'Vaccine is required',\n                reminderDate: 'Reminder Date is required',\n                reminderDateFormat: 'Reminder Date is not valid',\n                email: 'Email is required',\n                emailFormat: 'Email is not valid ',\n                firstName: 'Patient\\'s first name is required',\n                lastName: 'Patient\\'s last name is required',\n                phone: 'Phone is required',\n                phoneFormat: 'The phone number is incorrect',\n                message: 'The message is required',\n                virtual_account: 'Email associated to your Reacts account is required',\n            },\n            phxCovidScreeningReasonQuestion: 'Please indicate the reason for screening:',\n            phxCovidExperiencingSymptomQuestion: 'Are you currently experiencing any of the following symptoms?',\n            phxCovidAskedToGetAScreeningTestQuestion: 'Have you been asked to get a screening test by a doctor, health care provider, or public health unit?',\n            phxCovidTravelledAndAdvisedToQuarantineQuestion: 'In the last 14 days, have you travelled outside of Canada <strong>AND</strong> been advised to quarantine per the <a target=\"_blank\" href=\"%domain%\" class=\"link1\">federal quarantine requirements</a>',\n            phxCovidReceivedPositiveExposureNotificationQuestion: 'In the last 14 days, have you received an exposure notification through the <strong>COVID Alert</strong> application?<br/>If you already went for a PCR test and got a negative result, select “No.”',\n            phxCovidReceivedPositivePcrTestQuestion: 'Have you received a <strong>positive</strong> PCR test for COVID-19 in the last 90 days?',\n            phxCovidScreeningReason0: 'Travel',\n            phxCovidScreeningReason0Note: ' (Please read the statement in the grey box below)',\n            phxCovidScreeningReason1: 'As a precaution, but I confirm that I have no symptoms',\n            phxCovidScreeningReason2: 'Other reasons, but I confirm that I have no symptoms',\n            phxCovidScreeningReasonHint: 'It is the traveler\\'s responsibility to verify the requirements for the type of COVID-19 test with the country/state/province visited (including stopovers) and the airline. Some transit requirements are applicable.',\n            phxCovidExperiencingSymptom0: 'Fever',\n            phxCovidExperiencingSymptom1: 'Sudden loss of smell without nasal congestion (with or without loss of taste)',\n            phxCovidExperiencingSymptom2: 'Severe fatigue',\n            phxCovidExperiencingSymptom3: 'Severe loss of appetite',\n            phxCovidExperiencingSymptom4: 'Generalized muscle pain',\n            phxCovidExperiencingSymptom5: 'Headache',\n            phxCovidExperiencingSymptom6: 'Cough (new or worsened)',\n            phxCovidExperiencingSymptom7: 'Shortness of breath or breathing difficulty ',\n            phxCovidExperiencingSymptom8: 'Sore throat',\n            phxCovidExperiencingSymptom9: 'Runny nose associated with another COVID-19 symptom',\n            phxCovidExperiencingSymptom10: 'Nausea',\n            phxCovidExperiencingSymptom11: 'Vomiting',\n            phxCovidExperiencingSymptom12: 'Diarrhea',\n            phxCovidExperiencingSymptom13: 'Stomach pain',\n            phxCovidContactWithCovid19PositivePersonHint: 'Close contact is contact of more than 15 minutes, at a distance of less than 2 meters, without a mask (procedure mask).',\n            phxCovidScreeningConsentHint: 'Before proceeding with the rapid antigen screening, it is important to understand the following points:',\n            phxCovidScreeningConsentPoint1: 'The use of this screening method in symptom-free individuals is indicated by the manufacturer, although not approved by Health Canada.',\n            phxCovidScreeningConsentPoint2: 'A person who is not symptomatic and does not meet the criteria for PCR testing may decide to undergo antigen screening to meet a travel requirement or as a precautionary measure before adding people to their circle of contacts (to review situations where <a target=\"_blank\" href=\"%consentDomain%\" data-testid=\"link1\">testing at a government testing center</a> is recommended).',\n            phxCovidScreeningConsentPoint3: 'Rapid antigen screening is different from the PCR test. This screening test is less sensitive than the PCR test and provides preliminary results depending at the time it was performed.',\n            phxCovidScreeningConsentPoint4: 'A negative result does not rule out a COVID-19 infection.',\n            phxCovidScreeningConsentPoint5: 'If you get a preliminary positive result from your screening test, you should isolate yourself at home and follow instructions described on the <a target=\"_blank\" href=\"%consentDomain%\" data-testid=\"link2\">government website</a>',\n            phxCovidScreeningConsentLabel: 'By checking this box, I acknowledge that I have read and understood the information above',\n            phxCovidScreeningDetailsConsentHint: 'By giving my consent, I confirm that:',\n            phxCovidScreeningDetailsConsentPoint1: 'The answers that have been provided to the assessment questions are true to the best of my knowledge, and I acknowledge that if any of these answers are false, I may be held responsible for any harm caused.',\n            phxCovidScreeningDetailsConsentPoint2: 'I agree that the answers provided to the assessment questions may be used to evaluate the need for COVID-19 testing; if it is concluded that COVID-19 testing is not warranted, I will accept this recommendation.',\n            phxCovidScreeningDetailsConsentPoint3: 'I am aware that no representations or warranties are made as to when the rapid antigen test for COVID-19 is performed. No representation or warranty is made that a negative result on the rapid antigen test for COVID-19 will result in my admission or my agent\\'s admission to the jurisdiction to which he/she wishes to travel.',\n            phxCovidScreeningDetailsConsentLabel: 'By checking this box, I acknowledge that I have read and understood the above information and give my consent to receive the rapid antigen test for COVID-19 performed by a health care professional employed by a pharmacist owner.<strong> I acknowledge and agree that a pharmacy owner, Pharmaprix, its affiliates, directors, officers, employees, or agents shall not be liable in any way for any loss resulting from my or my agent\\'s inability to be admitted, or to be admitted late, to the jurisdiction to which he/she intends to travel.</strong>',\n            phxCovidAcceptRiskLabel: 'By checking this box, I acknowledge to have read and understood the information and accept <a target=\"_blank\" href=\"%consentDomain%\">the limitations and risks associated with the rapid screening</a>.  I understand that the pharmacist-owner, Pharmaprix Inc. or Loblaw Inc. does not guarantee or represent the accuracy, efficacy or suitability of the rapid screening. I hereby accept and acknowledge these limitations of the rapid screening and waive any future claims against the pharmacist-owner, Pharmaprix Inc. or Loblaw Inc. regarding the accuracy, efficacy and suitability of the rapid screening.',\n            traveler: {\n                title: 'Travelers information',\n                cardTitle: 'Traveler',\n                label: 'Traveler',\n                firstName: 'First name',\n                lastName: 'Last name',\n            },\n        },\n        errorPage: {\n            title: 'Booking appointments online',\n            content: 'An error has occurred, contact your administrator to inform them of the situation.',\n        },\n        notFound: {\n            title: 'Page not found (Error 404)',\n            content1: 'We are sorry. The search could not be completed.',\n            content2: 'The link you entered has been moved or changed',\n            thanks: 'Thank you for your understanding.',\n            linkToPortal: 'Return to home page',\n        },\n        sheddingPage: {\n            title: 'Appointment booking is temporarily unavailable.',\n            content1: 'We invite you to come back in a few minutes.',\n            thanks: 'Thank you for your understanding.',\n            team: 'The Clic Santé team.',\n        },\n        appointmentBookedButErrorDisplayingCoupon: {\n            title: 'Appointment booked but...',\n            message: '<p>A communication error is preventing us from showing you the details of your appointment. You can rest assured that your <strong>appointment has been booked successfully</strong>. Your appointment number is {appointment_number}.</p><p>Please <strong>DO NOT</strong> try to book another copy of this appointment.</p>',\n        },\n        closestAvailsModal: {\n            title: 'Your selection is no longer available',\n            timeNoLongerAvail: 'The selected time is no longer available.',\n            chooseAnotherAvail: 'Please select another time:',\n            returnToCalendar: 'If you need more choices, please return to the calendar. Your personal information will be saved.',\n            noClosestAvail: 'There is no more availability for the day you have selected.',\n            noClosestAvailGotoCalendar: 'Please return to the calendar to select another day. Your personal information will be saved.',\n            toCalendarBtn: 'Return to calendar',\n        },\n        errors: {\n            validation: {\n                'invalid-start': {\n                    'custom-validator-failure': {\n                        title: 'Appointment time unavailable',\n                        message: 'The appointment time you selected is not available.<br /><br />' +\n                            'Please refresh the page to retrieve up-to-date availabilities.',\n                    },\n                },\n                birthday: {\n                    min_age_to_book: {\n                        title: 'Important message',\n                        message: 'You do not meet the minimum age criteria required to book an appointment.',\n                    },\n                    max_age_to_book: {\n                        title: 'Important message',\n                        message: 'You do not meet the maximum age criteria required to book an appointment.',\n                    },\n                },\n            },\n            generic: {\n                title: 'Error',\n                message: 'An error occurred. Please reload the page and try again.',\n            },\n            forms: {\n                expiredToken: {\n                    title: 'Error',\n                    message: 'The delay for completing the form has expired. However, your appointment remains booked.',\n                },\n            },\n            'service-unavailable': {\n                'shedding-page': {\n                    title: 'Appointment booking temporarily unavailable',\n                    message: 'Booking is temporarily closed due to high traffic. Please come back in a few minutes.',\n                },\n            },\n            invalid: {\n                nam: {\n                    title: 'Error',\n                    message: 'The health insurance number is invalid',\n                },\n            },\n            cancel: {\n                couponNotAssociated: {\n                    title: 'Not found',\n                    message: 'No appointment associated to this coupon',\n                },\n                couponNotFound: {\n                    title: 'Important',\n                    message: 'An error has occurred. Your appointment could not be identified for one of the following reasons:' +\n                        '<ul class=\"error-list\" style=\"list-style: disc; margin: 15px 0 15px 15px;\">' +\n                        '<li>Your confirmation number is incorrect</li>' +\n                        '<li>Your confirmation number does not correspond to any future appointment</li>' +\n                        '<li>The search operation failed</li>' +\n                        '</ul>' +\n                        'For more information, please contact your health centre.',\n                },\n            },\n            appointment: {\n                forbidden_cancellation_date: {\n                    title: 'Cancellation of the appointment',\n                    message: 'Your appointment can\\'t be cancelled if the appointment date is in the past.',\n                },\n                forbidden_cancellation_client_state: {\n                    title: 'Cancellation of the appointment',\n                    message: 'Your appointment can\\'t be cancelled because it is already marked as present or absent.',\n                },\n                unable_to_obtain_lock: {\n                    title: 'System overloaded',\n                    message: 'A large number of users are currently booking their appointments. Please try again in a few minutes. <br><br>We are sorry for the inconvenience.<br><br>The Clic Santé Team',\n                },\n                unavailable_availability: {\n                    title: 'Oops...',\n                    message: 'The date and time of the appointment you selected is no longer available. Please return to the calendar to choose a new date and time.',\n                },\n                forbidden_confirm_already_cancelled: {\n                    title: 'Confirmation of the appointment',\n                    message: 'Your appointment can\\'t be confirmed because it is already marked as cancelled.',\n                },\n                forbidden_confirm_past: {\n                    title: 'Confirmation of the appointment',\n                    message: 'Your appointment can\\'t be confirmed because it is in the past.',\n                },\n            },\n            appointments: {\n                'duplicate-detected': {\n                    title: 'Please note!',\n                    message: 'You have already booked an appointment for this service. Be sure to cancel the previous appointment before proceeding with this reservation. Thank you for your time!',\n                },\n            },\n            reacts: {\n                errors: {\n                    title: 'Communication error',\n                    message: 'A communication error with the virtual appointment platform has occurred. Please contact your health care provider.',\n                },\n            },\n            request: {\n                timeout: {\n                    title: 'Timeout',\n                    message: 'The attempted operation could not be resolved in time by the server. Please note that the operation may still have completed in the background. Refresh your browser to validate if the changes applied.',\n                },\n            },\n            availabilities: {\n                public: {\n                    'nothing-for-day': {\n                        title: 'No availability',\n                        message: 'No availabilities were found for the selected day',\n                    },\n                },\n            },\n            recaptcha: {\n                response: {\n                    error: {\n                        title: 'Error',\n                        message: 'The recaptcha validation has expired, please reload the page and try again.',\n                    },\n                },\n            },\n            birthdayAndNamAreInvalid: {\n                title: 'Error',\n                message: 'Your date of birth or your health insurance number is incorrect.',\n            },\n            validateMinAge: {\n                title: 'Error',\n                message: 'You\\'re not eligible yet to book your appointment.<br /><br />' +\n                    'You have selected a vaccine service which does not match your age. Please return to the <a href=\"https://portal3.clicsante.ca/\">Clic Santé</a> homepage and select the correct service.',\n            },\n            validateMinAgeApp: {\n                title: 'Error',\n                message: 'In accordance with the Privacy Policy, personal information regarding a minor under the age of 14 will not be collected from them without the consent of the holder of parental authority or the guardian.<br /><br />For more information or assistance, please contact your healthcare facility directly.',\n            },\n            patient: {\n                appointment: {\n                    'cannot-link-patient-using-current-user': {\n                        title: 'Error',\n                        message: 'Please check that you are still connected to your profile account.',\n                    },\n                },\n            },\n            screening: {\n                preferredCommunicationEmail: {\n                    title: 'Important message',\n                    message: 'Important! You have indicated that you would like to receive the results of your collection by email. However, one or both of the following fields are incorrect:<br/><br/>' +\n                        '<ul style=\"list-style: circle\"><li>The \"Email\" field has no entry. Please add an email address.</li>' +\n                        '<li>The \"Communication Preference\" field is set to \"Phone Call\". Please change to \"Email\".</li></ul>',\n                    error: 'You have indicated that you would like to receive the results of your collection by email.',\n                },\n            },\n        },\n        metadataScreeningFeesAcknowledged: {\n            label: '{0}I understand that I am making an appointment for a private, pharmacy-based testing service and that a fee will be charged on site. This service is different from the government\\'s free self-testing program and the free NAAT (PCR) test offered at the testing center. If you have symptoms of COVID-19, we invite you to complete the {1} self-assessment.',\n            linkText: 'symptom',\n        },\n        metadataCovidScreeningEmailConsent: {\n            label: 'I have read the declaration of consent and I CONSENT to the center that will handle my COVID-19 screening test sending me the result by email, with the option, depending on my selected preference, of receiving a text message notifying me that the test result was sent by email. If the information concerns my child under 14 years of age, I CONSENT to the center that will handle my child\\'s COVID-19 screening test sending me the result by email, with the option, depending on my selected preference, of receiving a text message notifying me that the test result was sent by email.',\n        },\n        metadataCovidScreeningSecurityConsent: {\n            label: '{0}I understand that in choosing to receive the test result by email, with the option of receiving a text message notifying me that the test result will be sent by email, part of my information will leave this secure computer platform and might not benefit from the same security measures or be accessed by third parties.{1}' +\n                'I acknowledge that if my email address or telephone number is wrong, my test result could be sent to the wrong email address and that my first and last names could be sent to a wrong telephone number.{2}' +\n                'By not consenting to the test result being sent by email, I understand that the transmission of the test result will be sent by telephone.{3}' +\n                '{4}',\n            linkText: 'Declaration of consent',\n        },\n        banner: {\n            promptLogin: {\n                ctaMessage: 'to your Clic Santé account in order to automatically fill in the identification form for each appointment',\n                login: 'Login',\n                subscribe: 'subscribe',\n                or: 'or',\n            },\n            promptCompleteRegistration: {\n                ctaMessage1: 'In order to pre-fill the reservation form, you must ',\n                login: 'complete your Clic Santé account registration.',\n                ctaMessage2: ' You may also enter your personal information manually. <br /> Once you have completed your account, you can ',\n                getUpdatedPatients: 'refresh the reservation form.',\n            },\n        },\n        covidScreeningMetadataLang: {\n            ...CovidScreeningMetadataLang.en,\n        },\n        regionMetadataLang: {\n            ...RegionMetadataLang.en,\n        },\n        coAdministrationFluCovid: {\n            metadata: {\n                flu: {\n                    title: 'I would like to receive the flu (influenza) and COVID-19 vaccines at the same time.',\n                    description: 'Flu shots are now available free of charge to the general public. For more information, visit the <a href=\"https://www.quebec.ca/en/health/advice-and-prevention/vaccination/flu-vaccination-program\" target=\"_blank\">Flu Vaccination Program website</a>',\n                },\n                covid: {\n                    title: 'I would like to receive the COVID-19 and flu (influenza) vaccines at the same time.',\n                    description: 'Flu shots are now available free of charge to the general public. For more information, visit the <a href=\"https://www.quebec.ca/en/health/advice-and-prevention/vaccination/flu-vaccination-program\" target=\"_blank\">Flu Vaccination Program website</a>',\n                },\n            },\n            couponReminder: '<b class=\"font-weight-black\">Reminder:</b> you have chosen to receive a <u>COVID-19</u> and a <u>flu vaccine</u>. Both vaccines will be administered on the same appointment. No further action is required.',\n        },\n        accessibility: {\n            loadingGeneric: 'Loading results',\n        },\n        inputValidationAccessibilityLang: {\n            ...InputValidationAccessibilityLang.en,\n        },\n        privacy: {\n            title: 'Data Confidentiality',\n            text: 'The information you provide here will be treated confidentially and will only be accessible to your pharmacy staff.'\n        },\n    },\n};\n","const state = {\n    loading: false,\n    message: 'Loading...please wait',\n    homeLoading: false,\n};\n\nconst mutations = {\n    // loading must be true/false\n    TOGGLE_LOADING(state, payload) {\n        state.loading = payload.set;\n        state.message = payload.message;\n    },\n    TOGGLE_HOME_LOADING(state, payload) {\n        state.homeLoading = payload.set;\n    },\n};\n\n// getters\nconst getters = {\n    isLoading: (state) => {\n        return Boolean(state.loading);\n    },\n    isHomeLoading: (state) => {\n        return Boolean(state.homeLoading);\n    },\n};\n\nconst actions = {\n    toggleLoading({ commit }, payload) {\n        commit('TOGGLE_LOADING', payload);\n    },\n    toggleHomeLoading({ commit }, payload) {\n        commit('TOGGLE_HOME_LOADING', payload);\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import humps from 'lodash-humps';\nimport { map, uniq } from 'lodash';\n\nconst state = {\n    appointments: [],\n    nextAppointmentInfo: null,\n    gapFlag: false,\n};\nconst getters = {\n    getAppointments: state => {\n        return state.appointments;\n    },\n\n    getApptsNumber: state => {\n        return map(state.appointments, 'appointmentNumber');\n    },\n\n    getFirstAppointment: state => {\n        return state.appointments[0]\n            ? state.appointments[0]\n            : null;\n    },\n\n    getAppointmentsResourceIds: state => {\n        return uniq(map(state.appointments, 'resource'));\n    },\n\n    getNextAppointmentInfo: state => {\n        return state.nextAppointmentInfo;\n    },\n\n    getGapFlag: state => {\n        return state.gapFlag;\n    },\n};\nconst mutations = {\n    SET_APPOINTMENTS(state, payload) {\n        state.appointments = payload;\n    },\n\n    NEXT_APPOINTMENT_INFO(state) {\n        if (state.appointments && state.appointments[0]) {\n            state.nextAppointmentInfo = {\n                selectedDate: state.appointments[0].start,\n                selectedService: state.appointments[0].establishmentServiceTemplate,\n                selectedPlace: state.appointments[0].place,\n                secondAppointment: true,\n            };\n        }\n        else {\n            state.nextAppointmentInfo = null;\n        }\n    },\n\n    REMOVE_NEXT_APPOINTMENT_INFO(state) {\n        state.nextAppointmentInfo = null;\n    },\n\n    UPDATE_GAP_FLAG(state, payload) {\n        state.gapFlag = payload;\n    },\n};\n\nconst actions = {\n    /**\n     * @description Call to the API for creating a new appointment\n     * @param state\n     * @param commit\n     * @param rootGetters\n     * @param dispatch\n     * @param payload\n     * @returns {Q.Promise<never>}\n     */\n    async createAppt({ state, commit, rootGetters, dispatch }, payload) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        payload.establishment = establishmentId;\n\n        if (state.gapFlag) {\n            payload.gapFlag = 1;\n        }\n\n        const response = await this._vm.$api.appointments.create(establishmentId, payload);\n        commit('SET_APPOINTMENTS', response.data.appointments);\n\n        return response.data.appointments;\n    },\n\n    /**\n     * @description Fetch the API to get all appointment linked together by the uuid\n     * @param commit\n     * @param dispatch\n     * @param rootGetters\n     * @param payload\n     * @returns {Q.Promise<never>}\n     */\n    async fetchGroupOfAppointment({ commit, dispatch, rootGetters }, payload) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const [apptNumberOrGroupUuid, appointmentDate, uuid, recaptchaToken] = payload;\n\n        const response = await this._vm.$api.appointments.getGroupOfAppointment(\n            establishmentId, apptNumberOrGroupUuid, appointmentDate, uuid, recaptchaToken);\n        return humps(response.data);\n    },\n\n    async sendAppointmentMessage({ commit, dispatch, rootGetters }, payload) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const [ appointmentId, messageType, configurationMessage ] = payload;\n\n        await this._vm.$api.appointments.sendMessage(\n            establishmentId, appointmentId, messageType, configurationMessage\n        );\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import humps from 'lodash-humps';\nimport { addDays, isBefore, format, endOfMonth, parse, subDays, addMinutes } from 'date-fns';\nimport { formatToTimeZone } from 'date-fns-timezone';\nimport { assign, compact, filter, forEach, includes, map, reduce, union } from 'lodash';\n\nconst state = {\n    availabilities: [],\n    closestAvailabilities: [],\n    daysComplete: [],\n    upcomingAvailabilities: [],\n    pastAvailabilities: [],\n    dailyAvailabilities: [],\n};\n\nconst getters = {\n    getAvailabilities: (state) => state.availabilities,\n    getClosestAvailabilities: (state) => state.closestAvailabilities,\n    getDaysComplete: (state) => state.daysComplete,\n    getUpcomingAvailabilities: (state) => state.upcomingAvailabilities,\n    getPastAvailabilities: (state) => state.pastAvailabilities,\n    getDailyAvailabilities: (state) => state.dailyAvailabilities,\n\n    /**\n     * Build a sorted array of timeslot from an array of availabilities\n     * Warning, this getter return a function, it should be wrap into a computed function to get the caching performance\n     */\n    extractTimeSlots: (state) => (avails) => {\n        return reduce(avails, (result, avail) => {\n            // Force appts to be displayed on 5 minutes intervals\n            forEach(['start', 'stop'], prop => {\n                let timeValue = avail[prop];\n                const remainderToFive = +format(timeValue, 'mm') % 5;\n                if (remainderToFive !== 0) {\n                    // avail.start : add mins to be on 5 minutes interval || avail.stop: remove mins to be on 5 minutes interval\n                    const forceDiff = prop === 'start' ? 5 - remainderToFive : -remainderToFive;\n                    avail = {\n                        ...avail,\n                        [prop]: addMinutes(avail[prop], forceDiff).getTime(),\n                    };\n                }\n            });\n            const length = avail.length * 60 * 1000;\n            let time = avail.start;\n            const stop = avail.stop;\n\n            // loop only if availability duration is greater or equal than length\n            if ((stop - time) >= length) {\n                do {\n                    let date = format(time, 'YYYY-MM-DD HH:mm:ss');\n\n                    let formattedTime = format(time, 'HH:mm');\n                    if (!includes(state.pastAvailabilities, date)) {\n                        const obj = assign({}, {\n                            time: formattedTime,\n                            timeLabel: formattedTime + (avail.resourceCount > 1 ? ' (' + avail.resourceCount + ')' : ''),\n                            timeMS: time,\n                        }, { avail });\n                        result.push(obj);\n                    }\n                    time += length;\n                } while (stop - length >= time);\n            }\n            return result.sort((a, b) => a.timeMS - b.timeMS);\n        }, []);\n    },\n\n    isDateCompleteEvent: (state, getters) => date => {\n        return includes(getters.getDaysComplete, date);\n    },\n\n    isDatePastEvent: (state, getters) => date => {\n        return includes(getters.getPastAvailabilities, date);\n    },\n\n    isDateUpcomingEvent: (state, getters) => date => {\n        return includes(getters.getUpcomingAvailabilities, date);\n    },\n};\n\nconst mutations = {\n    UPDATE_AVAILABILITIES(state, payload) {\n        state.availabilities = payload.availabilities;\n        state.upcomingAvailabilities = payload.upcoming;\n        state.pastAvailabilities = payload.pastAvailabilities;\n    },\n    UPDATE_AVAILABILITIES_ONLY(state, payload) {\n        state.availabilities = payload.availabilities;\n    },\n    UPDATE_DAYS_COMPLETE(state, payload) {\n        state.daysComplete = payload.daysComplete;\n    },\n    UPDATE_UPCOMING_AVAILABILITIES(state, payload) {\n        state.upcomingAvailabilities = payload.upcomingAvailabilities;\n    },\n    UPDATE_PAST_AVAILABILITIES(state, payload) {\n        state.pastAvailabilities = payload.pastAvailabilities;\n    },\n    UPDATE_DAILY_AVAILABILITIES(state, payload) {\n        state.dailyAvailabilities = payload;\n    },\n    UPDATE_CLOSEST_AVAILABILITIES(state, payload) {\n        state.closestAvailabilities = payload;\n    },\n};\n\nconst actions = {\n    /**\n     * @description Fetch Availabilities from the api\n     * @param commit\n     * @param rootGetters\n     * @param dispatch\n     * @param dateStart\n     * @param dateStop\n     * @param serviceId\n     * @param placeId\n     * @param light\n     * @param filters\n     * @param clientTimeZone\n     * @returns {Promise<*>}\n     */\n    async getAvailabilities({ commit, rootGetters, dispatch }, [dateStart, dateStop, serviceId, placeId, filters = null, clientTimeZone = null]) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        dateStart = dateStart || format(new Date(), 'YYYY-MM-DD');\n        dateStop = dateStop || format(endOfMonth(new Date()), 'YYYY-MM-DD');\n        const gapMode = rootGetters['gap/isGapModeOn'];\n        const gapHeadOfficeId = rootGetters['gap/getGapHeadOfficeId'];\n\n        const response = await this._vm.$api.schedules.getPublicSchedule(establishmentId, dateStart, dateStop, serviceId, placeId, filters, clientTimeZone, gapMode, gapHeadOfficeId);\n        const data = humps(response.data);\n        commit('UPDATE_AVAILABILITIES', data);\n        commit('UPDATE_DAYS_COMPLETE', data);\n        commit('UPDATE_UPCOMING_AVAILABILITIES', data);\n        commit('UPDATE_PAST_AVAILABILITIES', data);\n    },\n\n    /**\n     * Fetch Closest Avails From the API by passing him a target Datetime\n     */\n    async fetchClosestAvails({ state, commit, rootGetters, dispatch }, [dateTarget, dateStart, dateStop, serviceId, placeId, filters = null, clientTimeZone = null, limit = null, minResourceCount = null]) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const service = rootGetters['services/getServiceByID'][serviceId][0];\n        const gapMode = rootGetters['gap/isGapModeOn'];\n        const gapHeadOfficeId = rootGetters['gap/getGapHeadOfficeId'];\n\n        const response = await this._vm.$api.schedules.getClosestSchedule(establishmentId, dateTarget, dateStart, dateStop, serviceId, placeId, filters, clientTimeZone, limit, minResourceCount, gapMode, gapHeadOfficeId);\n        const data = response.data;\n        const avails = await dispatch('formatAvail', { data, clientTimeZone, service });\n        commit('UPDATE_CLOSEST_AVAILABILITIES', avails);\n        commit('UPDATE_DAILY_AVAILABILITIES', union(getters.getDailyAvailabilities(state), avails));\n    },\n\n    async getCompleteAvailabilitiesBetweenPeriod({ commit, rootGetters, dispatch }, [dateStart, dateStop, serviceId, placeId, filters = null, clientTimeZone = null]) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const service = rootGetters['services/getServiceByID'][serviceId][0];\n        dateStart = dateStart || format(new Date(), 'YYYY-MM-DD');\n        dateStop = dateStop || format(endOfMonth(new Date()), 'YYYY-MM-DD');\n        const gapMode = rootGetters['gap/isGapModeOn'];\n        const gapHeadOfficeId = rootGetters['gap/getGapHeadOfficeId'];\n\n        try {\n            const response = await this._vm.$api.schedules.getCompletePublicPeriodSchedule(establishmentId, dateStart, dateStop, serviceId, placeId, filters, clientTimeZone, gapMode, gapHeadOfficeId);\n            const data = humps(response.data);\n            const avails = await dispatch('formatAvail', { data, clientTimeZone, service });\n            commit('UPDATE_DAILY_AVAILABILITIES', compact(avails));\n        }\n        catch(error) {\n            commit('UPDATE_DAILY_AVAILABILITIES', []);\n            commit('appointments/REMOVE_NEXT_APPOINTMENT_INFO', null, { root: true });\n            throw error;\n        }\n    },\n\n    /**\n     * @description Find The first availability for a place(s), a service, [filters], [timezone]\n     * @param rootGetters\n     * @param places\n     * @param service\n     * @param filters\n     * @param clientTimeZone\n     * @returns {Q.Promise<void>}\n     */\n    async getFirstAvailability({ rootGetters }, [places, service, filters, clientTimeZone = null, dateStart = '', dateStop = '']) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const gapMode = rootGetters['gap/isGapModeOn'];\n        const gapHeadOfficeId = rootGetters['gap/getGapHeadOfficeId'];\n\n        const response = await this._vm.$api.schedules.getFirstAvailabilityNextYear(establishmentId, places.join(','), service, filters, clientTimeZone, dateStart, dateStop, gapMode, gapHeadOfficeId);\n        return humps(response.data);\n    },\n\n    /**\n     * Get a specific PREST for one place, for one resource, for one EST\n     * @param commit\n     * @param rootGetters\n     * @param resourceId\n     * @param placeId\n     * @param serviceId\n     * @returns {Q.Promise<any>}\n     */\n    async getOnePrest({ commit, rootGetters }, { resourceId, placeId, serviceId }) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const response = await this._vm.$api.resources.getOnePrest(establishmentId, placeId, resourceId, serviceId);\n        return humps(response.data);\n    },\n\n    /**\n     * @description Format Availabilities receive from the API for frontend compatibilities\n     * @param commit\n     * @param data\n     * @param clientTimeZone\n     * @param allPrest\n     * @param service\n     * @returns {Array} => formated Avails\n     */\n    formatAvail({ commit }, { data, clientTimeZone, service }) {\n        const result = map(data.availabilities, avail => {\n            if (avail.status) {\n                let date, dateEnd, start, stop;\n\n                if (clientTimeZone) {\n                    const formatDate = 'YYYY-MM-DD HH:mm:ss';\n                    start = formatToTimeZone(avail.start, formatDate, { timeZone: clientTimeZone });\n                    stop = formatToTimeZone(avail.stop, formatDate, { timeZone: clientTimeZone });\n                    date = format(start, 'YYYY-MM-DD');\n                    dateEnd = format(stop, 'YYYY-MM-DD');\n                    start = parse(start).getTime();\n                    stop = parse(stop).getTime();\n                }\n                else {\n                    date = avail.start.substr(0, 10);\n                    dateEnd = avail.start.substr(0, 10);\n                    start = parse(avail.start).getTime();\n                    stop = parse(avail.stop).getTime();\n                }\n\n                return assign(avail, { date }, { dateEnd }, { start }, { stop }, { service });\n            }\n        });\n        return result;\n    },\n\n    /**\n     * @description Remove all dates outside the tolerance date range for Kids & Pregancy\n     * @param state\n     * @param commit\n     * @param dateMin\n     * @param dateMax\n     */\n    purgeAvailsPastDayUpcomingDaysAndDaysComplete({ state, commit }, { dateMin, dateMax }) {\n        const stateToPurge = {\n            'UPDATE_AVAILABILITIES_ONLY': 'availabilities',\n            'UPDATE_DAYS_COMPLETE': 'daysComplete',\n            'UPDATE_UPCOMING_AVAILABILITIES': 'upcomingAvailabilities',\n            'UPDATE_PAST_AVAILABILITIES': 'pastAvailabilities',\n        };\n\n        dateMin = subDays(dateMin, 1);\n        dateMax = addDays(dateMax, 1);\n\n        forEach(stateToPurge, (prop, mutation) => {\n            let acc = {};\n            acc[prop] = filter(state[prop], (date) => {\n                return isBefore(dateMin, date) && isBefore(date, dateMax);\n            });\n            commit(mutation, acc);\n        });\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","const state = {\n    error: undefined,\n};\n\nconst mutations = {\n    SET_ERROR(state, payload) {\n        state.error = payload;\n    },\n};\n\nconst getters = {\n    getError: (state) => {\n        return state.error;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    getters,\n};\n","import humps from 'lodash-humps';\nimport { find, findIndex, forEach, includes, toArray } from 'lodash';\nimport { EstablishmentSetting } from '@/enums';\n\nconst state = {\n    currentEstablishment: {},\n    settings: {},\n    communications: {},\n    establishmentModules: [],\n    allModules: [],\n    dynamicServiceFilters: [],\n};\n\nconst getters = {\n    getEstablishment: state => { return state.currentEstablishment; },\n    getEstablishmentId: state => { return state.currentEstablishment.id; },\n    getSettings: state => { return state.settings; },\n    getCommunications: state => { return state.communications; },\n    getEstablishmentModules: state => { return state.establishmentModules; },\n    getAllModules: state => { return state.allModules; },\n    getDynamicServiceFilters: (state) => { return state.dynamicServiceFilters; },\n    getEstablishmentHasModule: (state) => (moduleName) => {\n        const index = findIndex(state.allModules, ['name', moduleName]);\n        if (index !== -1) {\n            const moduleId = state.allModules[index].id;\n            return includes(state.establishmentModules, moduleId);\n        }\n        return false;\n    },\n    getUniqueModule: state => (moduleName) => {\n        const index = findIndex(state.allModules, ['name', moduleName]);\n        if (index !== -1) {\n            const moduleId = state.allModules[index].id;\n            return state.establishmentModules.length === 1 && includes(state.establishmentModules, moduleId);\n        }\n        return false;\n    },\n    getEstablishmentSettingById: state => id => {\n        return state.settings[id];\n    },\n    getDisableGoogleAnalyticsSetting: state => state.settings[EstablishmentSetting.DISABLE_GOOGLE_ANALYTICS],\n};\n\nconst mutations = {\n    SET_CURRENT_ESTABLISHMENT(state, payload) {\n        state.currentEstablishment = payload;\n    },\n    SET_SETTINGS(state, payload) {\n        state.settings = payload;\n    },\n    SET_COMMUNICATIONS(state, payload) {\n        state.communications = payload;\n    },\n    SET_ESTABLISHMENT_MODULES(state, payload) {\n        state.establishmentModules = payload[EstablishmentSetting.MODULES];\n    },\n    SET_ALL_MODULES(state, payload) {\n        state.allModules = payload;\n    },\n    SET_DYNAMIC_SERVICE_FILTERS(state, payload) {\n        state.dynamicServiceFilters = payload || [];\n    },\n};\n\nconst actions = {\n    /**\n     * @description Fetch an establishment with is Id\n     * @param state\n     * @param commit\n     * @param dispatch\n     * @param establishmentId\n     * @returns {Q.Promise<void>}\n     */\n    async getEstablishment({ commit, getters, rootGetters, dispatch }, establishmentId) {\n        try {\n            commit('SET_WAITING_FOR_THEME_OVERRIDE', true, { root: true });\n\n            const response = await this._vm.$api.establishment.getWithSettings(establishmentId);\n\n            const themingOverride = find(response.data.settings, ['setting', EstablishmentSetting.THEMING_OVERRIDE]);\n            if (themingOverride) {\n                const themeColors = themingOverride.value.theme_color_override;\n                if (themeColors) {\n                    dispatch('overrideCurrentTheme', themeColors, { root: true });\n                }\n            }\n\n            const product = response.data.head_office.product;\n            if (product && product !== 'clicsante') {\n                this._vm.$api.setOptions.product(product);\n                commit('UPDATE_STYLE', product, { root: true });\n                dispatch('changeCurrentTheme', product, { root: true });\n            }\n\n            commit('SET_WAITING_FOR_THEME_OVERRIDE', false, { root: true });\n\n            let settings = [];\n            forEach(response.data.settings, s => {\n                settings[s.setting] = s.value;\n            });\n            commit('SET_CURRENT_ESTABLISHMENT', humps(response.data));\n            commit('SET_SETTINGS', settings);\n            commit('SET_ESTABLISHMENT_MODULES', settings);\n\n            if (!getters['getSettings'][EstablishmentSetting.DISABLE_GOOGLE_ANALYTICS]) {\n                await dispatch('analytics/useAnalytics', null, { root: true });\n            }\n\n            return response.data.id;\n        }\n        catch (error) {\n            commit('SET_WAITING_FOR_THEME_OVERRIDE', false, { root: true });\n            throw error;\n        }\n    },\n\n    /**\n     * @description Fetch the configs of communication for an establishment\n     * @param commit\n     * @param getters\n     * @returns {Q.Promise<void>}\n     */\n    getCommunications({ commit, getters }) {\n        const estabId = getters.getEstablishmentId;\n        return this._vm.$api.communications.getMessageConfigurationsByEstablishment(estabId)\n            .then((response) => {\n                commit('SET_COMMUNICATIONS', humps(response.data));\n            });\n    },\n\n    /**\n     * @description Fetch the list of all existing modules from the API\n     * @param commit\n     * @returns {Q.Promise<void>}\n     */\n    getAllModules({ commit }) {\n        return this._vm.$api.modules.getModules()\n            .then(response => {\n                const arr = toArray(humps(response.data));\n                if (!arr.length) { throw new Error('No modules found'); }\n                commit('SET_ALL_MODULES', arr);\n            });\n    },\n    getDynamicServiceFilters({ commit, getters }, { establishmentId }) {\n        return this._vm.$api.services.getServiceTemplatesFilters(establishmentId, null, true)\n            .then((response) => {\n                const data = humps(response.data);\n                commit('SET_DYNAMIC_SERVICE_FILTERS', data);\n                return getters.getDynamicServiceFilters;\n            });\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import { find, keyBy, map, round, sortBy } from 'lodash';\nimport humps from 'lodash-humps';\nimport { distanceBetweenLocation } from '@/utils';\n\nconst state = {\n    places: [],\n    postalCode: '',\n    postalCodeIsValid: false,\n    postalCodeFromPortal: false,\n    selectedPlacePanel: '',\n    selectedPlaceId: '',\n    isSelectedPlace: false,\n    lat: null,\n    lng: null,\n};\n\nconst getters = {\n    getPlaceById: state => {\n        return keyBy(state.places, 'id');\n    },\n    getPlaces: state => {\n        return state.places;\n    },\n    getPlaceIds: state => {\n        return map(state.places, 'id');\n    },\n\n    getPlace: state => id => {\n        return find(state.places, ['id', id]);\n    },\n    getPostalCode: state => {\n        return state.postalCode;\n    },\n    getPostalCodeIsValid: state => {\n        return state.postalCodeIsValid;\n    },\n    getPostalCodeFromPortal: state => {\n        return state.postalCodeFromPortal;\n    },\n    getSelectedPlacePanel: state => {\n        return state.selectedPlacePanel;\n    },\n    getIsSelectedPlace: state => {\n        return state.isSelectedPlace;\n    },\n    getSelectedPlaceId: state => {\n        return state.selectedPlaceId;\n    },\n\n    getPlacesOrderByDistance: (state, getters) => {\n        if (getters.getPlacesWithDistance) {\n            return sortBy(getters.getPlacesWithDistance, ['distance']);\n        }\n        return null;\n    },\n\n    getPlacesWithDistance: state => {\n        if (state.lat && state.lng) {\n            return map(state.places, place => {\n                place.distance = round(distanceBetweenLocation(state.lat, state.lng, place.latitude, place.longitude));\n                return place;\n            });\n        }\n        return null;\n    },\n};\n\nconst mutations = {\n    SET_PLACES(state, payload) {\n        state.places = payload;\n    },\n    SET_POSTAL_CODE(state, payload) {\n        state.postalCode = payload;\n    },\n    SET_POSTAL_CODE_IS_VALID(state, payload) {\n        state.postalCodeIsValid = payload;\n    },\n    SET_POSTAL_CODE_FROM_PORTAL(state, payload) {\n        state.postalCodeFromPortal = payload;\n    },\n    SET_SELECTED_PLACE_PANEL(state, payload) {\n        state.selectedPlacePanel = payload;\n    },\n    SET_IS_SELECTED_PLACE(state, payload) {\n        state.isSelectedPlace = payload;\n    },\n    SET_SELECTED_PLACE_ID(state, payload) {\n        state.selectedPlaceId = payload;\n    },\n    SET_LAT(state, payload) {\n        state.lat = payload;\n    },\n    SET_LNG(state, payload) {\n        state.lng = payload;\n    },\n};\n\nconst actions = {\n    /**\n     * @description Get the list of all place for an establishment\n     * @param commit\n     * @param state\n     * @param rootGetters\n     * @returns {Q.Promise<void>}\n     */\n    getPlaces({ commit, state, rootGetters }) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        return this._vm.$api.places.getAll(establishmentId)\n            .then(response => {\n                const places = map(humps(response.data), (place) => {\n                    const postalCodeFormatted = place.postalCode.slice(0, 3) + ' ' + place.postalCode.slice(3);\n                    place.formattedAddress = place.address + ', ' + place.city + ', ' + postalCodeFormatted + ', ' + place.country;\n                    return place;\n                });\n                commit('SET_PLACES', places);\n            });\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import { map } from 'lodash';\nconst actions = {\n    /**\n     * @description Save the reminders for kids vaccines\n     * @param commit\n     * @param rootGetters\n     * @param payload\n     * @returns {Promise}\n     */\n    sendReminders({ commit, rootGetters }, payload) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        return this._vm.$api.other.sendReminders(establishmentId, payload);\n    },\n\n    /**\n     * @description Confirm an appointment with the token\n     * @param commit\n     * @param payload\n     * @returns {Promise}\n     */\n    confirmAppointment({ commit }, payload) {\n        return this._vm.$api.other.confirmAppointment(payload);\n    },\n\n    /**\n     * @description Cancel an appointment with the ticket number\n     * @param commit\n     * @param payload\n     * @returns {Promise}\n     */\n    cancelAppointment({ commit }, payload) {\n        return this._vm.$api.other.cancelAppointment(payload);\n    },\n\n    /**\n     * @description Send an email to an establishment by the Join Us page\n     * @param commit\n     * @param payload\n     * @returns {Promise}\n     */\n    sendJoinUsMail({ commit }, payload) {\n        return this._vm.$api.other.sendJoinUsMail(payload);\n    },\n\n    /**\n     * @description Fetch the Api to retriveve a lost coupon by mail\n     * @param commit\n     * @param payload\n     * @returns {Promise}\n     */\n    async sendCouponLostMail({ commit, rootGetters }, payload) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        return this._vm.$api.other.sendCouponLostMail(establishmentId, payload);\n    },\n\n    async geocode({ commit }, payload) {\n        let addressComponents = {\n            isAddressNotFound: true,\n            address: null,\n            latitude: null,\n            longitude: null,\n        };\n\n        const response = await this._vm.$api.other.geocode(payload);\n        const data = response.data;\n        const address = map(data.results, 'formatted_address');\n\n        if(address.length === 1) {\n            const geometry = map(data.results, 'geometry');\n            addressComponents = {\n                isAddressNotFound: false,\n                address: address[0],\n                latitude: geometry[0].location.lat,\n                longitude: geometry[0].location.lng,\n            };\n        }\n        return addressComponents;\n    },\n\n    async geocoder({ commit }, payload) {\n        const response = await this._vm.$api.other.geocoder(payload);\n        return response.data;\n    },\n};\n\nexport default {\n    namespaced: true,\n    actions,\n};\n","import humps from 'lodash-humps';\n\nconst state = {\n    resources: {},\n};\n\nconst getters = {\n    getResource: state => id => { return state.resources[id] || null; },\n};\n\nconst mutations = {\n};\n\nconst actions = {\n    async getOnePrest({ commit, rootGetters }, payload) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const { resourceId, placeId, serviceId } = payload;\n        const response = await this._vm.$api.resources.getOnePrest(establishmentId, placeId, resourceId, serviceId);\n\n        return humps(response.data);\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import humps from 'lodash-humps';\nimport { flatten, cloneDeep, find, findIndex, filter, forEach, groupBy, includes, map, toArray, size, remove, concat, keys, get, split } from 'lodash';\nimport{ UnifiedService, ServiceTemplateUnderFluUnifiedService, MetadataRequiredOverridable, ServiceSettings, GlobalSettings } from '@/enums';\nimport Vue from 'vue';\n\nconst state = {\n    instantiateServices: [],\n    associatedEst: [],\n    dynamicServiceFilter: [],\n    allMetaData: {},\n    selectedServiceMetadataValues: {},\n    selectedService: '',\n    isSelectedService: false,\n    isFirstServiceLoad: false,\n    unifiedService: null,\n    currentEstMetas: {},\n    currentEstSettings: {},\n    selectedServiceConfigurationMessages: {},\n    serviceHasDynamicFilter: false,\n    dynamicFilterMetadataValues: [],\n    serviceHasDataCollectionFormId: null,\n    clientFiltersIsAdmissible: true,\n    portalEst: null,\n    serviceHasServiceTemplateFilterIds: false,\n    servicesFilteredByServiceTemplateIds: [],\n};\n\nconst getters = {\n    getPortalEst: state => {\n        return state.portalEst;\n    },\n\n    getDynamicFilterMetadataValues: state => {\n        return state.dynamicFilterMetadataValues;\n    },\n\n    getInstantiateServiceById: state => id => {\n        return find(state.instantiateServices, { id: parseInt(id) });\n    },\n\n    getServiceByID: state => {\n        return groupBy(state.instantiateServices, 'id');\n    },\n\n    getInstantiateServices: (state) => {\n        return state.instantiateServices || [];\n    },\n\n    getInstantiateServiceTemplatesIds: (state) => {\n        return map(state.instantiateServices, s => {\n            return s.serviceTemplate.id;\n        });\n    },\n\n    getUnifiedServices: (state) => state.unifiedService,\n    getCurrentEstMetas: (state) => state.currentEstMetas,\n    getCurrentEstSettings: (state) => state.currentEstSettings,\n\n    getInstantiatedService: state => id => {\n        return find(state.instantiateServices, ['id', id]);\n    },\n\n    getActivatedServices: (state) => {\n        return filter(state.instantiateServices, ['status', 1]);\n    },\n\n    getAssociatedEst: (state) => {\n        return state.associatedEst;\n    },\n\n    getFirstServiceLoad: (state) => {\n        return state.isFirstServiceLoad;\n    },\n\n    getBaseMetadataById: state => id => {\n        return state.allMetaData[id];\n    },\n\n    getCopySelectedServiceMetadataValues: state => {\n        return cloneDeep(state.selectedServiceMetadataValues);\n    },\n\n    getCopySelectedServiceMetadataValuesOverrideApplied: (state, getters, rootState, rootGetters) => {\n        const metadataValues = cloneDeep(getters.getCopySelectedServiceMetadataValues);\n\n        forEach(metadataValues, (m) => {\n            // Retrieve base metadata object\n            const baseMetadata = getters.getBaseMetadataById(m.metadata);\n\n            // Set the isOverride prop to false by default\n            m.isOverride = false;\n\n            // Can metadata be overridden in public ?\n            const metadataOverridable = baseMetadata.requiredOverridable === MetadataRequiredOverridable.OVERRIDABLE_PUBLIC_ADMIN;\n\n            // If user can override, set required to false and isOverride to true, else leave it intact\n            if (metadataOverridable && m.required) {\n                m.required = false;\n                m.isOverride = true;\n            }\n        });\n\n        return metadataValues;\n    },\n\n    getOrderredCopySelectedServiceMetadataValuesOverrideAppliedKeys: (state, getters, rootState, rootGetters) => {\n        let baseMetadatas = getters.getCopySelectedServiceMetadataValuesOverrideApplied;\n        let baseMetadatasKeys = keys(baseMetadatas);\n        let orderedMetadataKeys = [];\n        const customDisplayOrderFlag = get(rootGetters['globalSettings/getGlobalSettings'], GlobalSettings.METADATA_DISPLAY_ORDER_FEATURE_FLAG);\n        let customDisplayOrder = customDisplayOrderFlag && customDisplayOrderFlag.value ? find(getters.getCurrentEstSettings, ['setting', ServiceSettings.METADATA_DISPLAY_ORDER]) : [];\n\n        // Order from EST settings.\n        forEach(customDisplayOrder.value, serviceId => {\n            // I prefer recreating a new array of keys from the baseMetadatasKeys in case customDisplayOrder have id's that we haven't received.\n            orderedMetadataKeys = concat(orderedMetadataKeys, remove(baseMetadatasKeys, (key) => key === serviceId.toString()));\n        });\n\n        // All the rest that didn't have order.\n        orderedMetadataKeys = concat(orderedMetadataKeys, baseMetadatasKeys);\n\n        return orderedMetadataKeys;\n    },\n\n    getOrderredCopySelectedServiceMetadataValuesOverrideApplied: (state, getters, rootState, rootGetters) => {\n        let baseMetadatas = getters.getCopySelectedServiceMetadataValuesOverrideApplied;\n        let orderedMetadataKeys = getters.getOrderredCopySelectedServiceMetadataValuesOverrideAppliedKeys;\n        let arrayMetaOrdered = [];\n        for (let i = 0; i < orderedMetadataKeys.length; i++) {\n            let currentMetadata = baseMetadatas[orderedMetadataKeys[i]];\n            if(currentMetadata) {\n                arrayMetaOrdered.push(baseMetadatas[orderedMetadataKeys[i]]);\n            }\n        }\n\n        return arrayMetaOrdered;\n    },\n\n    getDynamicServiceFilters: (state) => {\n        return state.dynamicServiceFilters || [];\n    },\n\n    serviceHasDynamicFilter: (state, getters, rootState, rootGetters) => {\n        return size(rootGetters['services/getDynamicServiceFilters']);\n    },\n\n    getServiceHasModule: (state, getters, rootState, rootGetters) => (payload) => {\n        const [moduleName, serviceModuleId] = payload;\n        if (serviceModuleId) {\n            const allModules = rootGetters['establishment/getAllModules'];\n            const index = findIndex(allModules, ['name', moduleName]);\n            const moduleId = index + 1 && allModules[index] ? allModules[index].id : null;\n            return serviceModuleId === moduleId;\n        }\n        return false;\n    },\n\n    getSelectedService: state => {\n        return state.selectedService;\n    },\n\n    getSelectedServiceId: state => {\n        return state.selectedService\n            ? state.selectedService.id\n            : null;\n    },\n\n    getIsSelectedService: state => {\n        return state.isSelectedService;\n    },\n\n    getSelectedServiceConfigurationMessageById: state => id => {\n        return state.selectedServiceConfigurationMessages[id];\n    },\n\n    getIsFluService: state => {\n        return state.isFluService;\n    },\n\n    getServiceHasDataCollectionFormId: state => {\n        return state.serviceHasDataCollectionFormId;\n    },\n\n    getClientFiltersIsAdmissible: state => {\n        return state.clientFiltersIsAdmissible;\n    },\n\n    getServiceHasServiceTemplateFilterIds: state => {\n        return state.serviceHasServiceTemplateFilterIds;\n    },\n\n    getServicesFilteredByServiceTemplateIds: state => {\n        return state.servicesFilteredByServiceTemplateIds;\n    },\n};\n\nconst mutations = {\n    SET_PORTAL_EST(state, payload) {\n        state.portalEst = parseInt(payload);\n    },\n    SET_DYNAMIC_FILTER_METADATA_VALUES(state, payload) {\n        state.dynamicFilterMetadataValues = payload || [];\n    },\n    SET_INSTANTIATE_SERVICES(state, payload) {\n        state.instantiateServices = payload || [];\n    },\n    SET_ASSOCIATED_EST(state, payload) {\n        state.associatedEst = payload || [];\n    },\n    SET_UNIFIED_SERVICE(state, payload) {\n        state.unifiedService = payload;\n    },\n    SET_CURRENT_EST_METAS(state, payload) {\n        state.currentEstMetas = payload;\n    },\n    SET_CURRENT_EST_SETTINGS(state, payload) {\n        state.currentEstSettings = payload;\n    },\n    SET_DYNAMIC_SERVICE_FILTERS(state, payload) {\n        state.dynamicServiceFilters = payload || [];\n    },\n    SET_ALL_METADATA(state, payload) {\n        state.allMetaData = {};\n        forEach(payload, (m) => { Vue.set(state.allMetaData, m.id, m); });\n    },\n    SET_SELECTED_SERVICE_METADATA_VALUES(state, payload) {\n        state.selectedServiceMetadataValues = {};\n        forEach(payload, (m) => { Vue.set(state.selectedServiceMetadataValues, m.metadata, m); });\n    },\n    SET_SELECTED_SERVICE(state, payload) {\n        state.selectedService = payload;\n    },\n    SET_IS_SELECTED_SERVICE(state, payload) {\n        state.isSelectedService = payload;\n    },\n    SET_SELECTED_SERVICE_CONFIGURATION_MESSAGES(state, payload) {\n        state.selectedServiceConfigurationMessages = {};\n        forEach(payload, (cm) => { Vue.set(state.selectedServiceConfigurationMessages, cm.configurationMessage, cm); });\n    },\n    SET_FIRST_SERVICE_LOAD(state, payload) {\n        state.isFirstServiceLoad = payload;\n    },\n    SET_SERVICE_HAS_DATA_COLLECTION_FORM_ID(state) {\n        if (get(state.selectedService, 'settings')) {\n            const dataCollectionFormId = find(state.selectedService.settings, ['setting', ServiceSettings.ENABLE_ESTABLISHMENT_SERVICE_TEMPLATES_FORMS], 0);\n            state.serviceHasDataCollectionFormId = get(dataCollectionFormId, 'value', null);\n        }\n        else {\n            state.serviceHasDataCollectionFormId = null;\n        }\n    },\n\n    SET_CLIENT_FILTERS_IS_ADMISSIBLE(state, payload) {\n        state.clientFiltersIsAdmissible = payload;\n    },\n\n    SET_SERVICE_HAS_SERVICE_TEMPLATE_FILTER_IDS(state, payload) {\n        state.serviceHasServiceTemplateFilterIds = payload;\n    },\n\n    SET_SERVICES_FILTERED_BY_SERVICE_TEMPLATE_IDS(state, payload) {\n        state.servicesFilteredByServiceTemplateIds = payload;\n    },\n\n    RESET_SERVICES_FILTERED_BY_SERVICE_TEMPLATE_IDS(state) {\n        state.serviceHasServiceTemplateFilterIds = false;\n        state.servicesFilteredByServiceTemplateIds = [];\n    },\n};\n\nconst actions = {\n    setServicesFilteredByServiceTemplateIds({ commit }, payload) {\n        let serviceTemplates = split(payload, ',');\n        const servicesTemplatesFiltered = flatten(map(serviceTemplates, s => {\n            return filter(state.instantiateServices, ['serviceTemplate.id', parseInt(s)]);\n        }));\n        if (servicesTemplatesFiltered.length > 0) {\n            commit('SET_SERVICE_HAS_SERVICE_TEMPLATE_FILTER_IDS', true);\n        }\n        commit('SET_SERVICES_FILTERED_BY_SERVICE_TEMPLATE_IDS', servicesTemplatesFiltered);\n        commit('SET_FIRST_SERVICE_LOAD', true);\n    },\n\n    setPortalEst({ commit }, payload) {\n        commit('SET_PORTAL_EST', payload);\n    },\n    /**\n     * @description Fetch All Metas from the API\n     * @param commit\n     * @returns {Q.Promise<any>}\n     */\n    getAllMetaData({ commit }) {\n        return this._vm.$api.services.getAllMetaData()\n            .then(response => {\n                const arr = toArray(humps(response.data));\n\n                if (!arr.length) {\n                    throw new Error('No meta data found');\n                }\n                commit('SET_ALL_METADATA', humps(arr));\n            });\n    },\n\n    /**\n     * @description Fetch Establishment Service Template metas from the API\n     * @param commit\n     * @param getters\n     * @param rootGetters\n     * @returns {Q.Promise<any>}\n     */\n    async getEstMetaData({ commit, getters, rootGetters }) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const estId = getters.getSelectedServiceId;\n        if(estId) {\n            const response = await this._vm.$api.services.getEstMetadata(establishmentId, estId);\n            const data = humps(response.data);\n            commit('SET_CURRENT_EST_METAS', data);\n        }\n    },\n\n    async fetchEstMetadataValues({ commit, rootGetters }, estId) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const response = await this._vm.$api.services.getEstMetadata(establishmentId, estId);\n        commit('SET_SELECTED_SERVICE_METADATA_VALUES', humps(response.data));\n    },\n\n    /**\n     * @description Fetch Establishment Service Template settings from the API\n     * @param commit\n     * @param getters\n     * @param rootGetters\n     * @returns {Q.Promise<any>}\n     */\n    async getEstSettings({ commit, getters, rootGetters }) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const estId = getters.getSelectedServiceId;\n        if(estId) {\n            const response = await this._vm.$api.services.getEstSettings(establishmentId, estId);\n            const data = humps(response.data);\n            commit('SET_CURRENT_EST_SETTINGS', data);\n        }\n    },\n\n    /**\n     * @description Fetch Instanciated service from the API\n     * @param commit\n     * @param dispatch\n     * @param getters\n     * @param rootGetters\n     * @param rootDispatch\n     * @returns {Q.Promise<any>}\n     */\n    async getInstantiateServices({ commit, dispatch, getters, rootGetters }) {\n        const estabId = rootGetters['establishment/getEstablishmentId'];\n        const response = await this._vm.$api.services.getAllByEstablishment(estabId, null, false, true);\n        const data = humps(response.data);\n        commit('SET_INSTANTIATE_SERVICES', data);\n\n        // Auto-select a service when the service_unified is flu\n        if(getters.getUnifiedServices === UnifiedService.FLU) {\n            const serviceFlu = find(getters.getActivatedServices, d => {\n                return d && d.serviceTemplate &&\n                includes(ServiceTemplateUnderFluUnifiedService, d.serviceTemplate.id);\n            });\n\n            if(serviceFlu) {\n                commit('SET_SELECTED_SERVICE', serviceFlu);\n                await Promise.all([\n                    dispatch('getEstMetaData'),\n                    dispatch('getEstSettings'),\n                ]);\n            }\n        }\n\n        // Auto-select a service when there is only one service available\n        else if(getters.getActivatedServices.length === 1) {\n            commit('SET_SELECTED_SERVICE', getters.getActivatedServices[0]);\n            await Promise.all([\n                dispatch('getEstMetaData'),\n                dispatch('getEstSettings'),\n            ]);\n        }\n    },\n\n    async getEstServiceUnifiedAssociationsByServiceUnified({ commit, rootGetters }, { establishmentId, serviceUnifiedId }) {\n        const response = await this._vm.$api.services.getEstServiceUnifiedAssociationsByServiceUnified(establishmentId, serviceUnifiedId);\n        const data = humps(response.data);\n        commit('SET_ASSOCIATED_EST', data);\n        commit('SET_FIRST_SERVICE_LOAD', true);\n    },\n\n    /**\n     * @description Fetch a service Filter from the API\n     * @param commit\n     * @param rootGetters\n     * @param establishmentId\n     * @param unifiedServiceId\n     * @param ignoreUnifiedServiceSet\n     * @returns {Q.Promise<any>}\n     */\n    getDynamicServiceFilters({ commit, rootGetters }, { establishmentId, unifiedServiceId, ignoreUnifiedServiceSet = false }) {\n        if(!ignoreUnifiedServiceSet) commit('SET_UNIFIED_SERVICE', parseInt(unifiedServiceId));\n        return this._vm.$api.services.getServiceTemplatesFilters(establishmentId, unifiedServiceId)\n            .then((response) => {\n                commit('SET_DYNAMIC_SERVICE_FILTERS', humps(response.data));\n            });\n    },\n\n    /**\n     * @description Fetch configuration messages for an establishment service template\n     * @param commit\n     * @param rootGetters\n     * @param estId\n     * @returns {Promise<void>}\n     */\n    async fetchEstConfigurationMessages({ commit, rootGetters }, estId) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const response = await this._vm.$api.services.getEstConfigurationMessages(establishmentId, estId);\n        commit('SET_SELECTED_SERVICE_CONFIGURATION_MESSAGES', humps(response.data));\n    },\n\n    async removeInstantiateServiceWithServiceTemplateIds({ getters, commit }, serviceTemplateIds) {\n        const services = getters.getInstantiateServices;\n        const filteredServices = filter(services, s => {\n            return !includes(serviceTemplateIds, s.serviceTemplate.id);\n        });\n        commit('SET_INSTANTIATE_SERVICES', filteredServices);\n    },\n\n    async filterInstantiateServiceWithServiceTemplateIds({ getters, commit }, serviceTemplateIds) {\n        const services = getters.getInstantiateServices;\n        const filteredServices = filter(services, s => {\n            return includes(serviceTemplateIds, s.serviceTemplateTag);\n        });\n        commit('SET_INSTANTIATE_SERVICES', filteredServices);\n    },\n\n    async setInstantiateServices({ getters, commit }, serviceTemplateIds) {\n        commit('SET_INSTANTIATE_SERVICES', serviceTemplateIds);\n    },\n\n    async setSelectedPortalEST({ getters, commit }) {\n        commit(\n            'SET_SELECTED_SERVICE',\n            find(getters.getActivatedServices, ['id', getters.getPortalEst])\n        );\n    }\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","const state = {\n    data: [],\n    layout: [],\n    section: [],\n    configVersionNumber: null,\n    formsList: [],\n};\n\nconst getters = {\n    getData: state => { return state.data; },\n    getConfig: state => { return { config: { section: state.section, layout: state.layout } }; },\n    getConfigVersionNumber: state => { return state.configVersionNumber; },\n};\n\nconst mutations = {\n    SET_FORM(state, payload) {\n        const { data: { data, layout, section }, configVersionNumber } = payload;\n        state.data = data;\n        state.layout = layout;\n        state.section = section;\n        state.configVersionNumber = configVersionNumber;\n    },\n\n    SET_FORMS_LIST(state, payload) {\n        state.formsList = payload.data;\n    },\n};\n\nconst actions = {\n    async getFormById({ commit }, payload) {\n        const { formId } = payload;\n        const form = state.formsList.find(f => f.id === formId);\n\n        commit('SET_FORM', {\n            data: form.config,\n            configVersionNumber: form.configVersionNumber\n        });\n        return form;\n    },\n\n    async createFormFromPublic({ commit }, payload) {\n        const { appointmentId, establishmentId } = payload;\n        await this._vm.$api.forms.createFormFromPublic(establishmentId, appointmentId, payload);\n    },\n\n    async getFormListByEstablishment({ commit }, payload) {\n        const { establishmentId } = payload;\n        const response = await this._vm.$api.forms.getAvailableForms(establishmentId);\n\n        commit('SET_FORMS_LIST', {\n            data: response.data,\n        });\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","const state = {\n    snack: {\n        message: '',\n        color: '',\n        timeout: -1,\n    },\n};\n\nconst getters = {\n    getSnackbar: (state) => {\n        return state.snack;\n    },\n};\n\nconst mutations = {\n    SET_SNACK(state, snackBar) {\n        state.snack = snackBar;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    getters,\n};\n","import { forEach } from 'lodash';\nimport humps from 'lodash-humps';\n\nconst state = {\n    fr: {\n        appointmentCancelledText: '',\n        appointmentReminderText: '',\n        isPopupActivated: false,\n        lang: 'fr',\n        popupText: '',\n        popupTitle: '',\n        presentationText: '',\n        presentationTitle: '',\n        privacyText: '',\n        publicSiteDeactivatedText: '',\n        publicPageFooter: '',\n    },\n    en: {\n        appointmentCancelledText: '',\n        appointmentReminderText: '',\n        isPopupActivated: false,\n        lang: 'en',\n        popupText: '',\n        popupTitle: '',\n        presentationText: '',\n        presentationTitle: '',\n        privacyText: '',\n        publicSiteDeactivatedText: '',\n        publicPageFooter: '',\n    },\n};\n\nconst getters = {\n    getTexts: (state) => {\n        return state;\n    },\n};\n\nconst mutations = {\n    UPDATE_TEXTS(state, data) {\n        state[data.lang] = data;\n    },\n};\n\nconst actions = {\n    /**\n     * @description Fetch all texts for an establishment\n     * @param commit\n     * @param rootGetters\n     * @param establishmentId\n     * @returns {Q.Promise<any>}\n     */\n    getTexts({ commit, rootGetters }, establishmentId) {\n        return this._vm.$api.texts.get(establishmentId)\n            .then(res => {\n                forEach(res.data, d => { commit('UPDATE_TEXTS', humps(d)); });\n            });\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import Vue from 'vue';\nimport { getGoogleTagManager, setProduct } from '@/utils';\nimport VueGtm from '@gtm-support/vue2-gtm';\nimport Router from '@/router';\n\nconst state = {\n    analyticsEnabled: false,\n};\n\nconst getters = {\n    getAnalyticsEnabled: (state) => state.analyticsEnabled,\n};\n\nconst mutations = {\n    SET_ANALYTICS_ENABLED(state, payload) {\n        state.analyticsEnabled = payload;\n    },\n};\n\nconst actions = {\n    async useAnalytics({ commit }) {\n        try {\n            commit('SET_ANALYTICS_ENABLED', true);\n            if (getGoogleTagManager(setProduct(window.location.hostname))) {\n                Vue.use(VueGtm, {\n                    id: getGoogleTagManager(setProduct(window.location.hostname)),\n                    vueRouter: Router,\n                });\n            }\n        }\n        catch (e) {\n            console.warn('Google Tag Manager instance not initiated');\n            console.error(e);\n            commit('SET_ANALYTICS_ENABLED', false);\n        }\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    getters,\n    actions,\n};\n","const state = { };\n\nconst getters = { };\n\nconst mutations = { };\n\nconst actions = {\n    async incrementPublicVisits({ rootGetters }) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const gapFlag = !!rootGetters['appointments/getGapFlag'];\n        await this._vm.$api.stats.incrementPublicVisitsForEstablishment(establishmentId, gapFlag);\n    },\n\n    async insertKPIStatistic({ rootGetters }, payload) {\n        const establishmentId = rootGetters['establishment/getEstablishmentId'];\n        const gapFlag = !!rootGetters['appointments/getGapFlag'];\n        const [service, place, firstAvailabilityDate] = payload;\n\n        await this._vm.$api.stats.insertKPIStatisticForEstablishment(\n            establishmentId, service, place, firstAvailabilityDate, gapFlag\n        );\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    getters,\n    actions,\n};\n","const state = {\n    confirmEmail: '',\n    sendByEmail: false,\n    sendBySMS: false,\n    profileIdentityState: '',\n    patientDataToFillMetadataForm: undefined,\n};\n\nconst getters = {\n    getSendByEmail: (state) => {\n        return state.sendByEmail;\n    },\n    getSendBySMS: (state) => {\n        return state.sendBySMS;\n    },\n    getConfirmEmail: (state) => {\n        return state.confirmEmail;\n    },\n    getProfileIdentityState: (state) => {\n        return state.profileIdentityState;\n    },\n    getPatientDataToFillMetadataForm: (state) => {\n        return state.patientDataToFillMetadataForm;\n    },\n};\n\nconst mutations = {\n    SET_PATIENT_DATA_TO_FILL_METADATA_FORM(state, patient) {\n        state.patientDataToFillMetadataForm = patient;\n    },\n    SET_CONFIRM_EMAIL(state, confirmEmail) {\n        state.confirmEmail = confirmEmail;\n    },\n    SET_SEND_BY_EMAIL(state, sendByEmail) {\n        state.sendByEmail = sendByEmail;\n    },\n    SET_SEND_BY_SMS(state, sendBySMS) {\n        state.sendBySMS = sendBySMS;\n    },\n    SET_PROFILE_IDENTITY_STATE(state, profileIdentityState) {\n        state.profileIdentityState = profileIdentityState;\n    },\n};\n\nconst actions = {};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    getters,\n    actions,\n};\n","import { EstablishmentSetting, CovidModules, ServiceVisibility } from '@/enums';\nimport { intersection } from 'lodash';\n\nconst state = {\n};\n\nconst getters = {\n    hasEstablishmentsAdminServicesEnabled: (state, getters, rootState, rootGetters) => {\n        const establishmentsSettings = rootGetters['establishment/getSettings'];\n        return establishmentsSettings[EstablishmentSetting.ENABLE_ADMIN_SERVICES];\n    },\n\n    getSelectedServiceVisibility: (state, getters, rootState, rootGetters) => {\n        const selectedService = rootGetters['services/getSelectedService'];\n        return selectedService.visibility;\n    },\n\n    getIsCovidModule: (state, getters, rootState, rootGetters) => {\n        const establishmentModules = rootGetters['establishment/getEstablishmentModules'];\n        return intersection(establishmentModules, CovidModules).length > 0;\n    },\n\n    showCalendar: (state, getters) => {\n        if (getters.getIsCovidModule) {\n            return true;\n        }\n        return !getters.hasEstablishmentsAdminServicesEnabled ||\n            getters.getSelectedServiceVisibility !== ServiceVisibility.CAN_BOOKED_ADMIN_ONLY_BUT_SHOW_PUBLIC;\n    },\n};\n\nconst mutations = {\n};\n\nconst actions = {};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","const state = {\n    gapMode: null,\n    gapHeadOfficeId: null,\n};\nconst getters = {\n    isGapModeOn: (state) => {\n        return !!Number(state.gapMode);\n    },\n    getGapHeadOfficeId: (state) => {\n        return state.gapHeadOfficeId;\n    },\n};\n\nconst mutations = {\n    SET_GAP_MODE(state, value) {\n        state.gapMode = value;\n    },\n    SET_GAP_HEAD_OFFICE_ID(state, value) {\n        state.gapHeadOfficeId = value;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    getters,\n};\n","const state = {\n    isOpen: false,\n};\n\nconst mutations = {\n    SET_IS_OPEN(state, payload) {\n        state.isOpen = payload;\n    },\n};\n\nconst getters = {\n    getIsOpen: state => state.isOpen,\n};\n\nconst actions = {};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import { isString } from 'lodash';\nlet windowOpts = 'toolbar=0,scrollbars=1,status=1,resizable=1,location=1,menuBar=0,';\nexport const buildAuthWindow = (url) => {\n    const windowArea = {\n        width: window.outerWidth < 440 ? window.outerWidth : 440,\n        height: Math.floor(window.outerHeight * 0.8),\n    };\n\n    if (windowArea.width < 360) { windowArea.width = 360; }\n    if (windowArea.height < 630) { windowArea.height = 630; }\n    windowArea.left = Math.floor(window.screenX + ((window.outerWidth - windowArea.width) / 2));\n    windowArea.top = Math.floor(window.screenY + ((window.outerHeight - windowArea.height) / 8));\n\n    windowOpts += `width=${windowArea.width},`;\n    windowOpts += `height=${windowArea.height},`;\n    windowOpts += `left=${windowArea.left},`;\n    windowOpts += `top=${windowArea.top},`;\n\n    return window.open(url, 'profileLogin', windowOpts);\n};\n\nexport const sanitizeDoubleSlashOnUrl = (url) => {\n    if (!isString(url)) return '';\n    return url.replace(/(https?:\\/\\/)|(\\/)+/g, '$1$2');\n};\n","import { buildAuthWindow, sanitizeDoubleSlashOnUrl } from '@/store/modules/kcLogin/helpers';\nimport { keycloakAdapter } from '@trimoz/trimoz-api-wrapper';\nimport { get, includes } from 'lodash';\n\nlet authWindow = null;\nlet searchInterval = null;\n\nconst state = {};\n\nconst actions = {\n    async signInWindow({ commit, dispatch, rootGetters }, url) {\n        let searchIntervalCounter = 0;\n        const isRegister = includes(url, 'registrations');\n        authWindow = buildAuthWindow(url);\n\n        if (searchInterval) {\n            clearInterval(searchInterval);\n        }\n\n        // This following setInterval approach can be avoided if we can have the keycloak template to send a window.postMessage when the login process has finished (not sure if this has security concerns).\n        searchInterval = setInterval(async() => {\n            searchIntervalCounter++;\n\n            if (keycloakAdapter.validateCookieTs(document.cookie)) {\n                if (!isRegister) {\n                    authWindow.close();\n                }\n\n                clearInterval(searchInterval);\n\n                // To do : find a way to know if user has already started  take appt process so we dont refresh page after login\n                const shouldTrySilentSso = true;\n                const establishmentId = get(rootGetters['establishment/getEstablishment'], 'id', '');\n                let initOptions = {\n                    onLoad: 'check-sso',\n                    redirectUri: process.env.VUE_APP_KEYCLOAK_LOGIN_REDIRECT_URI + `${establishmentId}/take-appt`,\n                };\n\n                // If user has not yet filled any data we do an ordinary 'check-sso' that will refresh the page.\n                // If the user has already selected a service category; we do a silentCheckSso login to persist the data by not making a page refresh.\n                // NOTE: silentCheckSso has two main issues : it calls keycloak server 3 times AND uses cookies. We will need to find a better solution for this.\n                if (shouldTrySilentSso) {\n                    initOptions = {\n                        ...initOptions,\n                        checkLoginIframe: true,\n                    };\n                }\n\n                const isAuth = await keycloakAdapter.init(initOptions);\n                if (isAuth) {\n                    dispatch('kcAuth/onLoginSuccess', true, { root: true });\n                }\n                else {\n                    keycloakAdapter.deleteAuthTsCookie();\n                }\n            }\n\n            if (searchIntervalCounter === 180) {\n                if (!isRegister) {\n                    authWindow.close();\n                }\n                clearInterval(searchInterval);\n            }\n        }, 1000);\n    },\n    async openSignInWindow({ dispatch, rootGetters }) {\n        const locale = rootGetters['locale'];\n        const isRegister = false;\n        const establishmentId = get(rootGetters['establishment/getEstablishment'], 'id', '');\n        await dispatch('signInWindow', keycloakAdapter.createKeycloakServerUrl({\n            redirectUri: sanitizeDoubleSlashOnUrl(process.env.VUE_APP_KEYCLOAK_LOGIN_REDIRECT_URI) + `${establishmentId}/take-appt`, locale, isRegister,\n        }));\n    },\n\n    async openRegisterWindow({ dispatch, rootGetters }) {\n        const locale = rootGetters['locale'];\n        const isRegister = true;\n        await dispatch('signInWindow', keycloakAdapter.createKeycloakServerUrl({\n            redirectUri: sanitizeDoubleSlashOnUrl(process.env.VUE_APP_KEYCLOAK_REGISTER_REDIRECT_URI), urlSuffix: locale, isRegister,\n        }));\n    },\n\n    async logout({ rootGetters }) {\n        const establishmentId = get(rootGetters['establishment/getEstablishment'], 'id', '');\n        return keycloakAdapter.logout(establishmentId);\n    },\n};\n\nexport default {\n    namespaced: true,\n    actions,\n    getters: {},\n    mutations: {},\n    state,\n};\n","const state = {\n    globalSettings: [],\n};\n\nconst getters = {\n    getGlobalSettings: state => {\n        return state.globalSettings;\n    },\n};\n\nconst mutations = {\n    SET_GLOBAL_SETTINGS(state, payload) {\n        state.globalSettings = payload;\n    },\n};\n\nconst actions = {\n    async fetchGlobalSettings({ commit, getters }) {\n        const response = await this._vm.$api.settings.getGlobalSettings();\n        const globalSettings = response.data;\n        commit('SET_GLOBAL_SETTINGS', globalSettings);\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    mutations,\n    actions,\n    getters,\n};\n","import Vue from 'vue';\nimport VuEx from 'vuex';\nimport loading from './modules/loading';\nimport appointments from './modules/appointments';\nimport availabilities from './modules/availabilities';\nimport error from './modules/error';\nimport establishment from './modules/establishment';\nimport places from './modules/places';\nimport other from './modules/other';\nimport resources from './modules/resources';\nimport services from './modules/services';\nimport forms from './modules/forms';\nimport snackbar from './modules/snackbar';\nimport texts from './modules/texts';\nimport analytics from './modules/analytics';\nimport stats from './modules/stats';\nimport { forEach, isObject, toLower, upperFirst } from 'lodash';\nimport router from '@/router';\nimport config from './../config.js';\nimport metadataForm from './modules/metadataForm';\nimport calendarDisplaySettings from './modules/calendar/calendarDisplaySettings';\nimport { errorHandling } from '@trimoz/trimoz-vue-error-handling';\nimport { jwt, kcAuth } from '@trimoz/trimoz-api-wrapper';\nimport gap from './modules/gap';\nimport mobileDialogMenu from '@/store/modules/mobileDialogMenu';\nimport kcLogin from '@/store/modules/kcLogin/kcLogin';\nimport globalSettings from '@/store/modules/globalSettings';\nimport { mergeLocales } from '@trimoz/forms-library';\n\nVue.use(VuEx);\n\nconst Store = new VuEx.Store({\n    state: {\n        locale: 'fr',\n        localeString: 'fr-CA',\n        currency: 'CAD',\n        dynamicService: null,\n        style: process.env.product,\n        staticFilesUrl: '',\n        isErrorRoute: false,\n        captchaKey: process.env.VUE_APP_CAPTCHAKEY,\n        theme: {},\n        lastError: undefined,\n        checkGA: false,\n        appVersion: process.env.VUE_APP_VERSION,\n        appVersionDate: process.env.VUE_APP_VERSION_DATE,\n        whitelistingIp: null,\n        publicPageBlocked: false,\n        waitingForThemeOverride: false,\n    },\n\n    mutations: {\n        UPDATE_DYNAMIC_SERVICE: (state, payload) => {\n            state.dynamicService = payload;\n        },\n        UPDATE_STYLE: (state, product) => {\n            state.style = product;\n            state.staticFilesUrl = `https://static.trimoz.com/${product}`;\n        },\n        UPDATE_THEME: (state, payload) => {\n            state.theme = payload;\n        },\n        UPDATE_LOCALE: (state, locale) => {\n            state.locale = locale;\n        },\n        UPDATE_IS_ERROR_ROUTE: (state, payload) => {\n            state.isErrorRoute = payload;\n        },\n        UPDATE_LAST_ERROR: (state, payload) => {\n            state.lastError = payload;\n        },\n        UPDATE_API_SECURITY_WHITELISTING_IP: (state, payload) => {\n            state.whitelistingIp = payload;\n        },\n        SET_PUBLIC_PAGE_BLOCKED: (state, payload) => {\n            state.publicPageBlocked = payload;\n        },\n        SET_WAITING_FOR_THEME_OVERRIDE: (state, payload) => {\n            state.waitingForThemeOverride = payload;\n        },\n    },\n\n    getters: {\n        getAppVersion: state => state.appVersion,\n        getAppVersionDate: state => state.appVersionDate,\n        captchaKey: state => state.captchaKey,\n        getLastError: state => state.lastError,\n        getEstablishmentModules: state => state.establishmentModules,\n        getDynamicService: state => state.dynamicService,\n        getStyle: state => state.style,\n        getStaticFilesUrl: state => state.staticFilesUrl,\n        locale: state => state.locale,\n        invertLocale: state => state.locale === 'fr' ? 'En' : 'Fr',\n        invertLocaleLong: state => state.locale === 'fr' ? 'English' : 'Français',\n        isClicSante: state => state.style === 'clicsante',\n        getIsErrorRoute: state => state.isErrorRoute,\n        getTheme: state => state.theme,\n        upperLocale: state => upperFirst(state.locale),\n        getLocaleString: state => state.locale === 'fr' ? 'fr-CA' : 'en-CA',\n        getCurrency: state => state.currency,\n        getShowCalendar: state => state.showCalendar,\n        isIpWhitelisted: state => !!state.whitelistingIp,\n        getPublicPageBlocked: state => state.publicPageBlocked,\n        getWaitingForThemeOverride: state => state.waitingForThemeOverride,\n        getLogoUrl: state => {\n            return `${state.staticFilesUrl}/images/logo-clicsante-header-v1.png`;\n        },\n        getAlternateLogoUrl: (state) => {\n            return `${state.staticFilesUrl}/images/logo_clicsante_header_noel.png`;\n        },\n    },\n\n    actions: {\n        setLocale: ({ commit, state }, { i18n, locale }) => {\n            const lang = toLower(locale);\n            if (!lang || (lang !== 'fr' && lang !== 'en')) {\n                return;\n            }\n            document.documentElement.setAttribute('lang', lang);\n            import('@/lang/' + lang)\n                .then(messages => {\n                    localStorage.setItem('tmz_public_lang', lang);\n                    i18n.setLocaleMessage(lang, messages.default[lang]);\n                    i18n.locale = lang;\n                    commit('UPDATE_LOCALE', lang);\n                    mergeLocales(i18n);\n\n                    if (isObject(router.currentRoute.meta.title)) {\n                        document.title = router.currentRoute.meta.title[lang] + ' | ' + (lang === 'fr' ? 'Page publique' : 'Public page');\n                    }\n                });\n        },\n        setStyle: ({ commit }, theme) => {\n            commit('UPDATE_STYLE', theme);\n        },\n\n        /**\n         * @deprecated : To remove when we drop pharmaservices - use overrideCurrentTheme instead\n         */\n        changeCurrentTheme({ commit, getters }, product) {\n            commit('UPDATE_THEME', config[product]);\n            forEach(this._vm.$vuetify.theme, (value, key) => {\n                this._vm.$vuetify.theme[key] = getters.getTheme[key] ? getters.getTheme[key] : value;\n            });\n        },\n\n        overrideCurrentTheme({ commit, getters }, theme) {\n            commit('UPDATE_THEME', theme);\n            forEach(this._vm.$vuetify.theme, (value, key) => {\n                this._vm.$vuetify.theme[key] = getters.getTheme[key] ? getters.getTheme[key] : value;\n            });\n        },\n\n        setApiSecurityWhitelistingIp({ commit }) {\n            commit('UPDATE_API_SECURITY_WHITELISTING_IP', this._vm.$api.apiSecurityWhitelistingIp());\n        },\n    },\n\n    modules: {\n        loading,\n        appointments,\n        availabilities,\n        establishment,\n        error,\n        other,\n        places,\n        resources,\n        services,\n        snackbar,\n        stats,\n        texts,\n        analytics,\n        metadataForm,\n        calendarDisplaySettings,\n        errorHandling,\n        jwt,\n        kcAuth,\n        kcLogin,\n        gap,\n        mobileDialogMenu,\n        globalSettings,\n        forms,\n    },\n    strict: true,\n});\n\nexport default Store;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoHeader.vue?vue&type=style&index=0&id=178a2067&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.getWaitingForThemeOverride)?_c('v-app',{class:(\"\" + (_vm.$vuetify.breakpoint.smAndDown ? 'mobile-app': '')),attrs:{\"id\":\"app\"}},[_c('v-layout',{attrs:{\"column\":\"\"}},[_c('v-main',[_c('VueSkipTo',{attrs:{\"tabindex\":\"0\",\"to\":\"\",\"label\":_vm.$t('header.accessibilitySkipToContentLink'),\"id\":\"skip-to\"}}),_c('title-bar'),_c('div',{class:(\"app-wrapper \" + (_vm.$route.path.includes('coupon') ? 'coupon' : '') + \" tz-content-wrapper pb-0\")},[_c('establishment-header'),(_vm.isPublicPageBlocked)?[_c('shedding-page')]:[_c('tz-loading',{attrs:{\"value\":_vm.isHomeLoading}}),_c('v-flex',[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('router-view',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isHomeLoading),expression:\"!isHomeLoading\"}]})],1)],1)]],2)],1),_c('app-footer'),_c('trimoz-snackbar'),_c('trimoz-error-dialog'),_c('cookie-consent',{attrs:{\"message\":_vm.cookieConsentMessage,\"link-label\":_vm.cookieConsentLinkLabel,\"href\":_vm.consentLink,\"button-label\":_vm.cookieConsentButtonLabel,\"cookie-name\":\"privacyConsent\",\"cookie-path\":\"/\",\"cookie-domain\":_vm.tld,\"cookie-expiry-days\":365}},[_c('template',{slot:\"button\"},[_c('button',{staticClass:\"v-btn btn-info\"},[_vm._v(\"\\n                    Ok\\n                \")])])],2)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"titlebar\"}},[(_vm.$vuetify.breakpoint.mdAndUp)?_c('top-menu'):_vm._e(),_c('v-app-bar',{staticClass:\"header-menu-background-color top-bar\",attrs:{\"elevation\":_vm.$vuetify.breakpoint.smAndDown ? 3 : 0,\"fixed\":_vm.$vuetify.breakpoint.smAndDown,\"app\":_vm.$vuetify.breakpoint.smAndDown,\"height\":_vm.$vuetify.breakpoint.mdAndUp ? '138' : '60'}},[_c('v-row',{},[(_vm.$vuetify.breakpoint.smAndDown)?_c('v-col',{staticClass:\"pa-0 ma-0 tz-content-wrapper\"},[_c('mobile-menu',{staticClass:\"mobile-menu\",attrs:{\"data-testid\":\"mobile-menu\"},on:{\"setToggleHomeLoading\":_vm.setToggleHomeLoading}})],1):_vm._e(),(_vm.$vuetify.breakpoint.mdAndUp)?_c('v-col',{staticClass:\"pa-0 tz-content-wrapper\",attrs:{\"cols\":\"12\"}},[_c('standard-menu',{staticClass:\"standard-menu\",attrs:{\"data-testid\":\"standard-menu\"},on:{\"setToggleHomeLoading\":_vm.setToggleHomeLoading}})],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"mx-2 mt-3 mobile-header-menu\"},[_c('v-col',{staticClass:\"ma-0 pa-0 pt-3\",attrs:{\"cols\":\"4\"}},[_c('logo-header')],1),_c('v-col',{staticClass:\"text-right ma-0 pa-0 pt-1\",attrs:{\"cols\":\"8\"}},[_c('v-btn',{staticClass:\"hamburger-menu\",attrs:{\"fab\":\"\",\"data-testid\":\"hamburger-menu-button\",\"height\":\"50px\",\"width\":\"50px\"},on:{\"click\":_vm.openMobileDialogMenu}},[_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"\\n                fas fa-bars\\n            \")])],1),_c('mobile-dialog-menu')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"slide-x-reverse-transition\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeDialog}},[_c('v-icon',[_vm._v(\"fas fa-arrow-left\")])],1)],1),_c('v-card-text',{staticClass:\"py-1 px-1 d-flex flex-column justify-space-between\"},[(_vm.displayProfileFeatures)?_c('standard-login-button',{attrs:{\"data-testid\":\"standard-login-button\"}}):_vm._e(),_c('menu-items'),_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('a',{staticClass:\"logo-container\",attrs:{\"href\":_vm.getPortalLink()}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":_vm.getLogoUrl,\"alt\":\"logo-clicsante-footer\"}})])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[(!_vm.isLogged)?_c('v-col',{staticClass:\"d-flex justify-end profile-buttons py-0\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"create-my-account-btn rounded-pill font-weight-bold mx-md-2 my-1\",attrs:{\"large\":\"\",\"loading\":_vm.loadingAuth},on:{\"click\":_vm.register}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('header.profile.createMyAccount'))+\"\\n        \")]),_c('v-btn',{staticClass:\"button-secondary-color rounded-pill font-weight-bold mx-md-2 my-1\",attrs:{\"large\":\"\",\"loading\":_vm.loadingAuth},on:{\"click\":_vm.login}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('header.profile.loginText'))+\"\\n        \")])],1):_c('v-col',{staticClass:\"d-flex text-center profile-buttons connected justify-end py-0\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"create-my-account-btn rounded-pill font-weight-bold mx-md-2 py-0\",attrs:{\"large\":\"\",\"loading\":_vm.loadingAuth,\"href\":(_vm.getProfileUrl + \"/dashboard?locale=\" + _vm.getLocale),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"white\",\"dense\":_vm.$vuetify.breakpoint.lgAndUp,\"small\":_vm.$vuetify.breakpoint.md}},[_vm._v(\"\\n                fa-solid fa-user\\n            \")]),_vm._v(\"\\n            \"+_vm._s(_vm.$t('header.profile.loggedText'))+\"\\n        \")],1),_c('v-btn',{staticClass:\"button-secondary-color rounded-pill font-weight-bold mx-md-2 logout py-0\",attrs:{\"large\":\"\",\"loading\":_vm.loadingAuth},on:{\"click\":_vm.showLogoutConfirmationModal}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"black\",\"dense\":_vm.$vuetify.breakpoint.lgAndUp,\"small\":_vm.$vuetify.breakpoint.md}},[_vm._v(\"\\n                fas fa-sign-out-alt\\n            \")]),_vm._v(\"\\n            \"+_vm._s(_vm.$t('header.profile.menu.disconnect'))+\"\\n        \")],1)],1),_c('logout-confirmation-modal')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"632\",\"transition\":\"slide-x-reverse-transition\",\"content-class\":\"elevation-0\",\"data-testid\":\"logout-confirmation-modal\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-card',{staticClass:\"rounded-lg\"},[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeDialog}},[_c('v-icon',[_vm._v(\"fas fa-times\")])],1)],1),_c('v-card-text',{staticClass:\"px-1\"},[_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{class:{'text-center': _vm.$vuetify.breakpoint.smAndDown, 'text-right': _vm.$vuetify.breakpoint.mdAndUp },attrs:{\"md\":\"3\",\"cols\":\"12\"}},[_c('v-chip',{staticClass:\"ma-2 logout-icon rounded-circle\",attrs:{\"text-color\":\"white\"}},[_c('v-icon',{staticStyle:{\"font-size\":\"50px\"},attrs:{\"color\":\"white\"}},[_vm._v(\"\\n                            fas fa-sign-out-alt\\n                        \")])],1)],1),_c('v-col',{class:{'text-center': _vm.$vuetify.breakpoint.smAndDown, 'text-left': _vm.$vuetify.breakpoint.mdAndUp },attrs:{\"md\":\"9\",\"cols\":\"12\"}},[_c('div',{staticClass:\"text-md-h6 subtitle-1 font-weight-bold ml-md-4 mt-4\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('header.logoutConfirmationModal.title'))+\"\\n                    \")]),_c('div',{staticClass:\"subtitle-1 ml-4\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('header.logoutConfirmationModal.text'))+\"\\n                    \")])])],1)],1),_c('v-card-actions',{staticClass:\"pb-8\"},[_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"logout-button d-flex justify-center px-md-16\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"button-cancel-logout rounded-pill px-5 px-sm-10\",attrs:{\"elevation\":\"3\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('header.logoutConfirmationModal.cancel'))+\"\\n                    \")]),(_vm.$vuetify.breakpoint.mdAndUp)?_c('v-spacer'):_vm._e(),_c('v-btn',{staticClass:\"button-secondary-color rounded-pill font-weight-bold px-5 mb-5 mb-md-0 logout\",attrs:{\"elevation\":\"3\"},on:{\"click\":_vm.logoutAccount}},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('header.logoutConfirmationModal.logout'))+\"\\n                    \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-dialog\n        v-model=\"isOpen\"\n        max-width=\"632\"\n        transition=\"slide-x-reverse-transition\"\n        content-class=\"elevation-0\"\n        data-testid=\"logout-confirmation-modal\"\n    >\n        <v-card class=\"rounded-lg\">\n            <v-toolbar flat>\n                <v-spacer />\n                <v-btn\n                    icon\n                    @click=\"closeDialog\"\n                >\n                    <v-icon>fas fa-times</v-icon>\n                </v-btn>\n            </v-toolbar>\n            <v-card-text class=\"px-1\">\n                <v-row class=\"ma-0\">\n                    <v-col\n                        md=\"3\"\n                        cols=\"12\"\n                        :class=\"{'text-center': $vuetify.breakpoint.smAndDown, 'text-right': $vuetify.breakpoint.mdAndUp }\"\n                    >\n                        <v-chip\n                            class=\"ma-2 logout-icon rounded-circle\"\n                            text-color=\"white\"\n                        >\n                            <v-icon style=\"font-size: 50px;\" color=\"white\">\n                                fas fa-sign-out-alt\n                            </v-icon>\n                        </v-chip>\n                    </v-col>\n                    <v-col\n                        md=\"9\"\n                        cols=\"12\"\n                        :class=\"{'text-center': $vuetify.breakpoint.smAndDown, 'text-left': $vuetify.breakpoint.mdAndUp }\"\n                    >\n                        <div class=\"text-md-h6 subtitle-1 font-weight-bold ml-md-4 mt-4\">\n                            {{ $t('header.logoutConfirmationModal.title') }}\n                        </div>\n                        <div class=\"subtitle-1 ml-4\">\n                            {{ $t('header.logoutConfirmationModal.text') }}\n                        </div>\n                    </v-col>\n                </v-row>\n            </v-card-text>\n            <v-card-actions class=\"pb-8\">\n                <v-row class=\"ma-0\">\n                    <v-col cols=\"12\" class=\"logout-button d-flex justify-center px-md-16\">\n                        <v-btn\n                            class=\"button-cancel-logout rounded-pill px-5 px-sm-10\"\n                            elevation=\"3\"\n                            @click=\"closeDialog\"\n                        >\n                            {{ $t('header.logoutConfirmationModal.cancel') }}\n                        </v-btn>\n                        <v-spacer v-if=\"$vuetify.breakpoint.mdAndUp\" />\n                        <v-btn\n                            elevation=\"3\"\n                            class=\"button-secondary-color rounded-pill font-weight-bold px-5 mb-5 mb-md-0 logout\"\n                            @click=\"logoutAccount\"\n                        >\n                            {{ $t('header.logoutConfirmationModal.logout') }}\n                        </v-btn>\n                    </v-col>\n                </v-row>\n            </v-card-actions>\n        </v-card>\n    </v-dialog>\n</template>\n\n<script>\nimport { mapMutations, mapGetters, mapActions } from 'vuex';\nimport { isUsingKc } from '@/utils';\n\nexport default {\n    name: 'logout-confirmation-modal',\n    computed: {\n        ...mapGetters({\n            getLogoutConfirmationModal: 'jwt/getLogoutConfirmationModal',\n        }),\n        isOpen: {\n            get: function() {\n                return this.getLogoutConfirmationModal;\n            },\n            set: function(value) {\n                this.setCloseLogoutConfirmationDialog(value);\n            },\n        },\n    },\n    methods: {\n        ...mapMutations({\n            setCloseLogoutConfirmationDialog: 'jwt/SET_LOGOUT_CONFIRMATION_MODAL',\n        }),\n        ...mapActions({\n            logout: 'jwt/logout',\n            kcLogout: 'kcLogin/logout',\n        }),\n        closeDialog() {\n            this.setCloseLogoutConfirmationDialog();\n        },\n        async logoutAccount() {\n            this.setCloseLogoutConfirmationDialog();\n            if (isUsingKc) {\n                return this.kcLogout();\n            }\n            await this.logout();\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import './src/assets/scss/variables';\n\n::v-deep.v-alert--text:before {\n    background-color: transparent !important;\n}\n\n.logout-icon {\n    background-color: $cs-color-secondary !important;\n    color: white !important;\n    -webkit-box-shadow: 0px 0px 0px 12px $shadow-logout-icon-color !important;\n    box-shadow: 0px 0px 0px 12px $shadow-logout-icon-color !important;\n    width: 80px !important;\n    height: 80px !important;\n}\n\n.logout-icon.v-chip {\n    padding: 0 20px !important;\n}\n\n.logout-button {\n    .v-btn {\n        height: 50px !important;\n    }\n    @media only screen and (max-width: 959px) {\n        flex-direction: column-reverse;\n        .v-btn {\n            font-size: 0.8rem!important;\n            width: calc(80% - 30px) !important;\n            margin: 10px 15%!important;\n        }\n    }\n    @media only screen and (max-width: 320px) {\n        .v-btn {\n            font-size: 0.6rem !important;\n        }\n    }\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoutConfirmationModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoutConfirmationModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LogoutConfirmationModal.vue?vue&type=template&id=12010258&scoped=true&\"\nimport script from \"./LogoutConfirmationModal.vue?vue&type=script&lang=js&\"\nexport * from \"./LogoutConfirmationModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LogoutConfirmationModal.vue?vue&type=style&index=0&id=12010258&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"12010258\",\n  null\n  \n)\n\nexport default component.exports","<template>\n    <v-row>\n        <v-col v-if=\"!isLogged\" cols=\"12\" class=\"d-flex justify-end profile-buttons py-0\">\n            <v-btn\n                large\n                class=\"create-my-account-btn rounded-pill font-weight-bold mx-md-2 my-1\"\n                :loading=\"loadingAuth\"\n                @click=\"register\"\n            >\n                {{ $t('header.profile.createMyAccount') }}\n            </v-btn>\n            <v-btn\n                large\n                class=\"button-secondary-color rounded-pill font-weight-bold mx-md-2 my-1\"\n                :loading=\"loadingAuth\"\n                @click=\"login\"\n            >\n                {{ $t('header.profile.loginText') }}\n            </v-btn>\n        </v-col>\n        <v-col v-else cols=\"12\" class=\"d-flex text-center profile-buttons connected justify-end py-0\">\n            <v-btn\n                large\n                class=\"create-my-account-btn rounded-pill font-weight-bold mx-md-2 py-0\"\n                :loading=\"loadingAuth\"\n                :href=\"`${getProfileUrl}/dashboard?locale=${getLocale}`\"\n                target=\"_blank\"\n            >\n                <v-icon\n                    class=\"mr-2\"\n                    color=\"white\"\n                    :dense=\"$vuetify.breakpoint.lgAndUp\"\n                    :small=\"$vuetify.breakpoint.md\">\n                    fa-solid fa-user\n                </v-icon>\n                {{ $t('header.profile.loggedText') }}\n            </v-btn>\n            <v-btn\n                large\n                class=\"button-secondary-color rounded-pill font-weight-bold mx-md-2 logout py-0\"\n                :loading=\"loadingAuth\"\n                @click=\"showLogoutConfirmationModal\"\n            >\n                <v-icon\n                    class=\"mr-2\"\n                    color=\"black\"\n                    :dense=\"$vuetify.breakpoint.lgAndUp\"\n                    :small=\"$vuetify.breakpoint.md\"\n                >\n                    fas fa-sign-out-alt\n                </v-icon>\n                {{ $t('header.profile.menu.disconnect') }}\n            </v-btn>\n        </v-col>\n        <logout-confirmation-modal />\n    </v-row>\n</template>\n\n<script>\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\nimport LogoutConfirmationModal from '@/components/bars/logoutConfirmationModal/LogoutConfirmationModal';\nimport { authModule, isUsingKc } from '@/utils';\n\nexport default {\n    name: 'standard-login-button',\n    components: {\n        LogoutConfirmationModal,\n    },\n    computed: {\n        ...mapGetters({\n            getLoggedUser: `${authModule}/getLoggedUser`,\n            getOwnerPatient: `${authModule}/getOwnerPatient`,\n            getProfileUrl: `${authModule}/getProfileUrl`,\n            loadingAuth: `${authModule}/getLoading`,\n            getLocale: 'locale',\n            getEstablishmentId: 'establishment/getEstablishmentId',\n        }),\n\n        isLogged() {\n            if (isUsingKc) {\n                return !!this.getLoggedUser;\n            }\n            return !!this.getLoggedUser && this.getOwnerPatient.uuid;\n        },\n    },\n    methods: {\n        ...mapActions({\n            openSignInWindow: 'jwt/openSignInWindow',\n            openRegisterWindow: 'jwt/openRegisterWindow',\n            openKcSignInWindow: 'kcLogin/openSignInWindow',\n            openKcRegisterWindow: 'kcLogin/openRegisterWindow',\n        }),\n\n        ...mapMutations({\n            setOpenLogoutConfirmationDialog: 'jwt/SET_LOGOUT_CONFIRMATION_MODAL',\n        }),\n\n        async login() {\n            if (isUsingKc) {\n                return this.openKcSignInWindow();\n            }\n            return this.openSignInWindow(false);\n        },\n\n        async register() {\n            if (isUsingKc) {\n                return this.openKcRegisterWindow();\n            }\n            return this.openRegisterWindow({\n                clientDataForUrl: { locale: this.getLocale },\n            });\n        },\n\n        showLogoutConfirmationModal() {\n            this.setOpenLogoutConfirmationDialog(true);\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import './src/assets/scss/variables';\n\n.create-my-account-btn::v-deep {\n    background-color: $cs-color-secondary !important;\n    color: white !important;\n}\n\n.create-my-account-btn:before {\n    background-color: $cs-color-secondary !important;\n}\n\n.profile-buttons::v-deep {\n    position: relative;\n    @media only screen and (max-width: 1386px) {\n        .v-btn {\n            width: 200px!important;\n            font-size: 0.85rem!important;\n        }\n    }\n    @media only screen and (max-width: 1301px) {\n        .v-btn {\n            width: 195px !important;\n            font-size: 0.9rem!important;\n        }\n    }\n    @media only screen and (max-width: 1264px) {\n        .v-btn {\n            width: 175px!important;\n            font-size: 0.75rem!important;\n        }\n    }\n    @media only screen and (max-width: 1024px) {\n        .v-btn {\n            width: 155px!important;\n            font-size: 0.65rem!important;\n        }\n    }\n    @media only screen and (max-width: 959px) {\n        flex-direction: column;\n        .v-btn {\n            font-size: 1rem!important;\n            width: 70%!important;\n            margin: 10px 15%!important;\n        }\n    }\n\n    button.v-btn {\n        margin: 0;\n    }\n}\n\n.v-btn.button-secondary-color {\n    color: black!important;\n}\n\n.logo {\n    top: -20px;\n    position: relative;\n    width: 100%;\n    min-width: 175px;\n    max-width: 155px;\n    filter: drop-shadow(0px 3px 6px #00000029);\n    @media only screen and (max-width: 1246px) {\n        max-width: 80px;\n        min-width: 80px;\n        top: 5px;\n    }\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profileButtons.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profileButtons.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./profileButtons.vue?vue&type=template&id=dc41a698&scoped=true&\"\nimport script from \"./profileButtons.vue?vue&type=script&lang=js&\"\nexport * from \"./profileButtons.vue?vue&type=script&lang=js&\"\nimport style0 from \"./profileButtons.vue?vue&type=style&index=0&id=dc41a698&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"dc41a698\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{staticClass:\"pa-0 mt-1\",attrs:{\"dense\":\"\",\"flat\":\"\",\"data-testid\":\"menu-items\"}},_vm._l((_vm.getMenuItems),function(menu){return _c('v-list-item',{key:menu.title,staticClass:\"py-2\",class:_vm.menuListClasses,attrs:{\"dense\":_vm.$vuetify.breakpoint.mdAndUp,\"light\":\"\",\"href\":menu.href,\"to\":menu.to,\"target\":menu.target,\"active-class\":\"top-menu-active\",\"tabindex\":\"-1\"},on:{\"click\":_vm.closeMobileDialogMenu}},[(menu.name !== 'locale')?[_c('v-list-item-content',{class:menu.name},[_c('v-list-item-title',{class:_vm.menuTitleClasses},[_c('span',{staticClass:\"menu-text\"},[_vm._v(\"\\n                        \"+_vm._s(menu.title)+\"\\n                    \")]),(menu.icon)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"size\":\"15\",\"color\":\"black\"}},[_vm._v(\"\\n                        \"+_vm._s(menu.icon)+\"\\n                    \")]):_vm._e()],1)],1),(_vm.$vuetify.breakpoint.mdAndUp)?_c('v-list-item-action',{staticClass:\"mx-1 px-1 my-0 separator\"},[_vm._v(\"\\n                |\\n            \")]):_vm._e()]:_vm._e(),(menu.name === 'locale')?[_c('v-row',[_c('v-col',{staticClass:\"ma-0 pl-0 py-0\"},[_c('v-btn',{class:_vm.localeButtonClasses,attrs:{\"depressed\":\"\",\"data-testid\":\"change-locale-button\",\"aria-label\":_vm.localeToToggleLabel()},on:{\"click\":function($event){return _vm.setLocale({ i18n: _vm.$i18n, locale:_vm.invertLocale})}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"color\":\"black\"}},[_vm._v(\"\\n                            fa-solid fa-globe\\n                        \")]),_c('span',{domProps:{\"textContent\":_vm._s(_vm.localeToToggle())}})],1)],1)],1)]:_vm._e()],2)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-list dense flat data-testid=\"menu-items\" class=\"pa-0 mt-1\">\n        <v-list-item\n            v-for=\"menu in getMenuItems\"\n            :dense=\"$vuetify.breakpoint.mdAndUp\"\n            light\n            :href=\"menu.href\"\n            :to=\"menu.to\"\n            :target=\"menu.target\"\n            :class=\"menuListClasses\"\n            class=\"py-2\"\n            active-class=\"top-menu-active\"\n            tabindex=\"-1\"\n            :key=\"menu.title\"\n            @click=\"closeMobileDialogMenu\"\n        >\n            <template v-if=\"menu.name !== 'locale'\">\n                <v-list-item-content :class=\"menu.name\">\n                    <v-list-item-title :class=\"menuTitleClasses\">\n                        <span class=\"menu-text\">\n                            {{ menu.title }}\n                        </span>\n                        <v-icon v-if=\"menu.icon\" size=\"15\" class=\"ml-2\" color=\"black\">\n                            {{ menu.icon }}\n                        </v-icon>\n                    </v-list-item-title>\n                </v-list-item-content>\n\n                <v-list-item-action\n                    v-if=\"$vuetify.breakpoint.mdAndUp\"\n                    class=\"mx-1 px-1 my-0 separator\"\n                >\n                    |\n                </v-list-item-action>\n            </template>\n            <template v-if=\"menu.name === 'locale'\">\n                <v-row>\n                    <v-col class=\"ma-0 pl-0 py-0\">\n                        <v-btn\n                            depressed\n                            data-testid=\"change-locale-button\"\n                            :class=\"localeButtonClasses\"\n                            :aria-label=\"localeToToggleLabel()\"\n                            @click=\"setLocale({ i18n: $i18n, locale:invertLocale})\"\n                        >\n                            <v-icon size=\"15\" class=\"mr-2\" color=\"black\">\n                                fa-solid fa-globe\n                            </v-icon>\n                            <span v-text=\"localeToToggle()\" />\n                        </v-btn>\n                    </v-col>\n                </v-row>\n            </template>\n        </v-list-item>\n    </v-list>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapMutations } from 'vuex';\nimport { get, map, assign, includes, filter } from 'lodash';\nimport { inferPortalUrl } from '@/helpers/env';\nimport { EstablishmentSetting } from '@/enums';\n\nexport default {\n    name: 'menu-items',\n    data() {\n        return {\n            menuItems: [\n                { name: 'join', to: 'join', target: '_self', icon: '' },\n                { name: 'faq', href: inferPortalUrl('/questions-reponses'), target: '_blank', icon: '' },\n                { name: 'job', to: '', href: 'https://trimoz.freshteam.com/jobs', icon: 'fas fa-external-link-alt', target: '_blank' },\n                { name: 'terms', href: inferPortalUrl(this.locale === 'fr' ? '/termes-et-conditions' : '/terms'), icon: '', target: '_blank' },\n                { name: 'policy', href: inferPortalUrl(this.locale === 'fr' ? '/confidentialite' : 'privacy'), icon: '', target: '_blank' },\n                { name: 'cookiePolicy', href: inferPortalUrl(this.locale === 'fr' ? '/politique-temoins-connexion' : 'cookie-policy'), icon: '', target: '_blank' },\n                { name: 'locale', to: '', icon: '', target: '' },\n            ],\n            menuWeb: ['faq', 'job'],\n            iconSize: 15,\n        };\n    },\n    computed: {\n        ...mapGetters({\n            locale: 'locale',\n            invertLocale: 'invertLocale',\n            getEstablishment: 'establishment/getEstablishment',\n            getEstablishmentSettingById: 'establishment/getEstablishmentSettingById',\n        }),\n        getMenuItems() {\n            const i18n = this.$i18n;\n            return map(filter(this.menuItems, (item) => { return this.showMenu(item); }), items => {\n                return assign({}, items, { title: i18n.t('header.clicsante.menu.' + items.name) });\n            });\n        },\n        menuListClasses() {\n            const className = 'pa-0';\n            return this.$vuetify.breakpoint.mdAndUp\n                ? `top-menu-list ${className}`\n                : `text-center mobile-menu-list py-1 ${className}`;\n        },\n        menuTitleClasses() {\n            const className = 'font-weight-bold';\n            return this.$vuetify.breakpoint.mdAndUp\n                ? `caption ${className}`\n                : `body-1 menu-title-mobile ${className}`;\n        },\n        localeButtonClasses() {\n            const className = 'white font-weight-bold locale-toggle my-0';\n            return this.$vuetify.breakpoint.mdAndUp\n                ? `caption ${className}`\n                : `body-1 menu-button-mobile ${className}`;\n        },\n    },\n    methods: {\n        ...mapActions({\n            setLocale: 'setLocale',\n        }),\n        ...mapMutations({\n            setOpenMobileDialogMenu: 'mobileDialogMenu/SET_IS_OPEN',\n        }),\n        localeToToggle() {\n            return this.locale === 'fr' ? 'EN' : 'FR';\n        },\n        localeToToggleLabel() {\n            return this.locale === 'fr' ? 'Switch language to english' : 'Changer la langue en français';\n        },\n        showMenu(menu) {\n            if (menu.name === 'locale') {\n                return true;\n            }\n            if (menu.name === 'join') {\n                return !!(get(this.getEstablishment, 'email', false) && this.getEstablishmentSettingById(EstablishmentSetting.SHOW_CONTACT_US_PUBLIC_PAGE));\n            }\n            if (this.$vuetify.breakpoint.mdAndUp && includes(this.menuWeb, menu.name)) {\n                return true;\n            }\n            if (this.$vuetify.breakpoint.smAndDown) {\n                return true;\n            }\n            return false;\n        },\n        closeMobileDialogMenu() {\n            if (this.$vuetify.breakpoint.smAndDown) {\n                this.setOpenMobileDialogMenu(false);\n            }\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import './src/assets/scss/variables';\n.top-menu-list::v-deep {\n    float: left;\n}\n\n.top-menu-list::v-deep .v-ripple__container, .mobile-menu-list::v-deep .v-ripple__container  {\n    display:none !important;\n}\n\n.top-menu-active {\n    text-decoration: underline !important;\n    text-decoration-color: $cs-color-secondary;\n}\n\n.theme--light.v-list-item--active:before, .theme--light.v-list-item--active:hover:before, .theme--light.v-list-item:focus:before {\n    opacity: 0;\n}\n\n.separator {\n    min-width: 12px;\n}\n\n.locale-toggle {\n    margin-left: -5px;\n    margin-top: 5px;\n}\n\n.menu-title-mobile {\n    text-transform: uppercase;\n    white-space: normal;\n}\n.policy div {\n    font-size: 95% !important;\n    line-height: 140% !important;\n}\n.menu-text {\n    font-size: 1rem !important\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuItems.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuItems.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MenuItems.vue?vue&type=template&id=f6ed1910&scoped=true&\"\nimport script from \"./MenuItems.vue?vue&type=script&lang=js&\"\nexport * from \"./MenuItems.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MenuItems.vue?vue&type=style&index=0&id=f6ed1910&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"f6ed1910\",\n  null\n  \n)\n\nexport default component.exports","<template>\n    <v-dialog\n        v-model=\"isOpen\"\n        fullscreen\n        hide-overlay\n        transition=\"slide-x-reverse-transition\"\n    >\n        <v-card>\n            <v-toolbar flat>\n                <v-btn\n                    icon\n                    @click=\"closeDialog\"\n                >\n                    <v-icon>fas fa-arrow-left</v-icon>\n                </v-btn>\n            </v-toolbar>\n            <v-card-text class=\"py-1 px-1 d-flex flex-column justify-space-between\">\n                <standard-login-button\n                    v-if=\"displayProfileFeatures\"\n                    data-testid=\"standard-login-button\"\n                />\n                <menu-items />\n                <v-row>\n                    <v-col class=\"d-flex justify-center\">\n                        <a :href=\"getPortalLink()\" class=\"logo-container\">\n                            <img :src=\"getLogoUrl\" class=\"logo\" alt=\"logo-clicsante-footer\" />\n                        </a>\n                    </v-col>\n                </v-row>\n            </v-card-text>\n        </v-card>\n    </v-dialog>\n</template>\n\n<script>\nimport { mapMutations, mapGetters } from 'vuex';\nimport StandardLoginButton from '@/components/bars/profileButtons/profileButtons';\nimport menuItems from '@/components/bars/topHeaderMenu/MenuItems';\nimport { inferPortalUrl } from '@/helpers/env';\n\nexport default {\n    name: 'dialog-menu',\n    components: {\n        StandardLoginButton,\n        menuItems,\n    },\n    computed: {\n        ...mapGetters({\n            getIsOpen: 'mobileDialogMenu/getIsOpen',\n            getAccessToken: 'jwt/getAccessToken',\n            isClicSante: 'isClicSante',\n            getLogoUrl: 'getLogoUrl',\n        }),\n        isOpen: {\n            get: function() {\n                return this.getIsOpen;\n            },\n            set: function(value) {\n                this.setCloseMobileDialogMenu(value);\n            },\n        },\n        displayProfileFeatures() {\n            return this.isClicSante;\n        },\n    },\n    methods: {\n        ...mapMutations({\n            setCloseMobileDialogMenu: 'mobileDialogMenu/SET_IS_OPEN',\n        }),\n        closeDialog() {\n            this.setCloseMobileDialogMenu();\n        },\n        getPortalLink() {\n            return inferPortalUrl();\n        },\n    },\n};\n</script>\n<style lang=\"scss\" scoped>\n.logo {\n    position: relative;\n    width: 100%;\n    max-width: 100px;\n    min-width: 100px;\n    filter: drop-shadow(0px 3px 6px #00000029);\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileDialogMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileDialogMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MobileDialogMenu.vue?vue&type=template&id=7763a64a&scoped=true&\"\nimport script from \"./MobileDialogMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MobileDialogMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MobileDialogMenu.vue?vue&type=style&index=0&id=7763a64a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7763a64a\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"data-testId\":\"logo-header\"}},[(_vm.showAlternateLogo)?_c('a',{staticClass:\"logo-container alternate-logo-container gtm-public-logo-noel\",attrs:{\"href\":_vm.getPortalLink(),\"target\":\"_blank\"}},[_c('img',{class:_vm.getLogoClasses,attrs:{\"data-testid\":\"mobile-header-logo\",\"src\":_vm.getAlternateLogoUrl,\"alt\":\"logo-clicsante-header\"}})]):_c('a',{staticClass:\"logo-container\",attrs:{\"href\":_vm.getPortalLink()}},[_c('img',{class:_vm.getLogoClasses,attrs:{\"data-testid\":\"mobile-header-logo\",\"src\":_vm.getLogoUrl,\"alt\":\"logo-clicsante-header\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <div data-testId=\"logo-header\">\n        <a\n            v-if=\"showAlternateLogo\"\n            :href=\"getPortalLink()\"\n            target=\"_blank\"\n            class=\"logo-container alternate-logo-container gtm-public-logo-noel\"\n        >\n            <img\n                data-testid=\"mobile-header-logo\"\n                :src=\"getAlternateLogoUrl\"\n                :class=\"getLogoClasses\"\n                alt=\"logo-clicsante-header\"\n            />\n        </a>\n        <a v-else :href=\"getPortalLink()\" class=\"logo-container\">\n            <img\n                data-testid=\"mobile-header-logo\"\n                :src=\"getLogoUrl\"\n                :class=\"getLogoClasses\"\n                alt=\"logo-clicsante-header\"\n            />\n        </a>\n    </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport { inferPortalUrl } from '@/helpers/env';\n\nexport default {\n    name: 'logo-header',\n    computed: {\n        ...mapGetters({\n            getLogoUrl: 'getLogoUrl',\n            getAlternateLogoUrl: 'getAlternateLogoUrl',\n            getLocale: 'locale',\n            getStaticFilesUrl: 'getStaticFilesUrl',\n        }),\n        showAlternateLogo() {\n            const now = new Date();\n            const expirationDate = new Date('2024-01-08 00:00:00');\n            return now < expirationDate;\n        },\n        getLogoClasses() {\n            return this.$vuetify.breakpoint.smAndDown ? 'mobile-header-logo' : 'logo';\n        },\n    },\n    methods: {\n        getPortalLink() {\n            return inferPortalUrl();\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.alternate-logo-container .logo {\n    top: -15px;\n}\n\n.logo {\n    top: 8px;\n    position: absolute;\n    width: 100%;\n    min-width: 175px;\n    max-width: 155px;\n    filter: drop-shadow(0px 3px 6px #00000029);\n    @media only screen and (max-width: 1246px) {\n        max-width: 80px;\n        min-width: 80px;\n        top: calc(50% - 40px);\n    }\n}\n\n.mobile-header-logo {\n  width: 75px;\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LogoHeader.vue?vue&type=template&id=178a2067&scoped=true&\"\nimport script from \"./LogoHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./LogoHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LogoHeader.vue?vue&type=style&index=0&id=178a2067&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"178a2067\",\n  null\n  \n)\n\nexport default component.exports","<template>\n    <v-row class=\"mx-2 mt-3 mobile-header-menu\">\n        <v-col cols=\"4\" class=\"ma-0 pa-0 pt-3\">\n            <logo-header />\n        </v-col>\n        <v-col\n            cols=\"8\"\n            class=\"text-right ma-0 pa-0 pt-1\"\n        >\n            <v-btn\n                fab\n                data-testid=\"hamburger-menu-button\"\n                class=\"hamburger-menu\"\n                height=\"50px\"\n                width=\"50px\"\n                @click=\"openMobileDialogMenu\"\n            >\n                <v-icon color=\"white\">\n                    fas fa-bars\n                </v-icon>\n            </v-btn>\n            <mobile-dialog-menu />\n        </v-col>\n    </v-row>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapMutations } from 'vuex';\nimport MobileDialogMenu from './MobileDialogMenu';\nimport LogoHeader from '@/components/bars/logoHeader/LogoHeader';\n\nexport default {\n    name: 'mobile-header-menu',\n    components: {\n        MobileDialogMenu,\n        LogoHeader,\n    },\n    computed: {\n        ...mapGetters({\n            getLogoUrl: 'getLogoUrl',\n        }),\n    },\n    methods: {\n        ...mapActions({\n            setLocale: 'setLocale',\n        }),\n        ...mapMutations({\n            setOpenMobileDialogMenu: 'mobileDialogMenu/SET_IS_OPEN',\n        }),\n        openMobileDialogMenu() {\n            this.setOpenMobileDialogMenu(true);\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import './src/assets/scss/variables';\n.hamburger-menu{\n    background-color: $cs-color-primary !important;\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileHeaderMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileHeaderMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MobileHeaderMenu.vue?vue&type=template&id=5d8149d8&scoped=true&\"\nimport script from \"./MobileHeaderMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MobileHeaderMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MobileHeaderMenu.vue?vue&type=style&index=0&id=5d8149d8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5d8149d8\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"8\",\"data-testid\":\"standard-header-menu\",\"id\":\"menubar\"}},[_c('logo-header'),_c('div',{staticClass:\"menu-header-wrapp\"},[_c('div',{staticClass:\"menu-header-tab d-flex justify-space-around\",attrs:{\"role\":\"tablist\"}},[_vm._l((_vm.headerMenus),function(menu){return [_c('v-tab',{key:menu.title,attrs:{\"active-class\":\"active\",\"to\":menu.href,\"target\":menu.target}},[_c('div',[_c('span',{staticClass:\"align-self-center menu-title font-weight-bold\",domProps:{\"textContent\":_vm._s(menu.title.toUpperCase())}})])])]})],2)])],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[(_vm.displayProfileFeatures)?_c('standard-login-button',{attrs:{\"data-testid\":\"standard-login-button\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-row>\n        <v-col\n            cols=\"8\"\n            data-testid=\"standard-header-menu\"\n            class=\"d-flex\"\n            id=\"menubar\">\n            <logo-header />\n            <div class=\"menu-header-wrapp\">\n                <div class=\"menu-header-tab d-flex justify-space-around\" role=\"tablist\">\n                    <template v-for=\"menu in headerMenus\">\n                        <v-tab\n                            active-class=\"active\"\n                            :to=\"menu.href\"\n                            :target=\"menu.target\"\n                            :key=\"menu.title\"\n                        >\n                            <div>\n                                <span class=\"align-self-center menu-title font-weight-bold\" v-text=\"menu.title.toUpperCase()\" />\n                            </div>\n                        </v-tab>\n                    </template>\n                </div>\n            </div>\n        </v-col>\n        <v-col cols=\"4\">\n            <standard-login-button\n                v-if=\"displayProfileFeatures\"\n                data-testid=\"standard-login-button\"\n            />\n        </v-col>\n    </v-row>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport StandardLoginButton from '@/components/bars/profileButtons/profileButtons';\nimport LogoHeader from '@/components/bars/logoHeader/LogoHeader';\n\nexport default {\n    name: 'standard-menu',\n    components: {\n        StandardLoginButton,\n        LogoHeader,\n    },\n    computed: {\n        ...mapGetters({\n            getLogoUrl: 'getLogoUrl',\n            getAccessToken: 'jwt/getAccessToken',\n            isClicSante: 'isClicSante',\n        }),\n        headerMenus() {\n            return [\n                {\n                    'title': this.$i18n.t('header.clicsante.menu.takeAppt'),\n                    'icon': false,\n                    'iconImg': 'fas fa-home',\n                    'href': 'take-appt',\n                    'target': '_self',\n                },\n                {\n                    'title': this.$i18n.t('header.clicsante.menu.cancelAppt'),\n                    'icon': false,\n                    'iconImg': 'fas fa-calendar-minus',\n                    'href': 'cancel-appt',\n                    'target': '_self',\n                },\n            ];\n        },\n        displayProfileFeatures() {\n            return this.isClicSante;\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import './src/assets/scss/variables';\n\n.menu-header-wrapp {\n    position: relative;\n    min-width: 500px;\n    width: 100%;\n    margin-left: 20%;\n    @media only screen and (max-width: 1350px) {\n        width: 75%;\n    }\n    @media only screen and (max-width: 1246px) {\n        margin-left: 15%;\n        width: 80%;\n    }\n}\n\n.menu-header-tab {\n    background: white;\n    padding: 1rem;\n    border-radius: 50px;\n    @media only screen and (max-width: 1386px) {\n        position: relative;\n    }\n    a {\n        text-decoration: none;\n        font-size: 16px!important;\n        padding: 0 0!important;\n        border-bottom: 3px solid white;\n        @media only screen and (max-width: 1465px) {\n            ont-size: 15px!important;\n        }\n        @media only screen and (max-width: 1264px) {\n            font-size: 0.825rem!important;\n        }\n\n    }\n    a.active {\n        border-bottom: 3px solid $cs-color-secondary !important;\n    }\n    a:hover {\n        cursor: pointer !important;\n    }\n}\n\n.v-tab:before {\n    background-color: transparent !important;\n    transition: none !important;\n    opacity: unset !important;\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StandardHeaderMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StandardHeaderMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StandardHeaderMenu.vue?vue&type=template&id=34473c76&scoped=true&\"\nimport script from \"./StandardHeaderMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./StandardHeaderMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StandardHeaderMenu.vue?vue&type=style&index=0&id=34473c76&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"34473c76\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"data-testid\":\"top-header-menu\"}},[_c('v-toolbar',{staticClass:\"pa-0\",attrs:{\"flat\":\"\",\"short\":\"\",\"tile\":\"\",\"height\":\"30px\"}},[_c('v-toolbar-title'),_c('v-spacer'),_c('menu-items')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-card flat tile data-testid=\"top-header-menu\">\n        <v-toolbar\n            flat\n            short\n            tile\n            height=\"30px\"\n            class=\"pa-0\"\n        >\n            <v-toolbar-title />\n            <v-spacer />\n            <menu-items />\n        </v-toolbar>\n    </v-card>\n</template>\n\n<script>\nimport menuItems from './MenuItems';\n\nexport default {\n    name: 'top-header-menu',\n    components: {\n        menuItems,\n    },\n};\n</script>\n<style scoped lang=\"scss\">\n\n.v-toolbar::v-deep .v-toolbar__content {\n    max-width: 1510px;\n    margin: auto;\n    @media only screen and (max-width: 1264px) {\n        width: 100%;\n    }\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopHeaderMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopHeaderMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopHeaderMenu.vue?vue&type=template&id=8892a856&scoped=true&\"\nimport script from \"./TopHeaderMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./TopHeaderMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TopHeaderMenu.vue?vue&type=style&index=0&id=8892a856&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"8892a856\",\n  null\n  \n)\n\nexport default component.exports","<template>\n    <div id=\"titlebar\">\n        <top-menu v-if=\"$vuetify.breakpoint.mdAndUp\" />\n        <v-app-bar\n            :elevation=\"$vuetify.breakpoint.smAndDown ? 3 : 0\"\n            :fixed=\"$vuetify.breakpoint.smAndDown\"\n            :app=\"$vuetify.breakpoint.smAndDown\"\n            :height=\"$vuetify.breakpoint.mdAndUp ? '138' : '60'\"\n            class=\"header-menu-background-color top-bar\"\n        >\n            <v-row class=\"\">\n                <v-col v-if=\"$vuetify.breakpoint.smAndDown\" class=\"pa-0 ma-0 tz-content-wrapper\">\n                    <!-- menu XS et  SM -->\n                    <mobile-menu\n                        class=\"mobile-menu\"\n                        data-testid=\"mobile-menu\"\n                        @setToggleHomeLoading=\"setToggleHomeLoading\"\n                    />\n                </v-col>\n\n                <v-col v-if=\"$vuetify.breakpoint.mdAndUp\" cols=\"12\" class=\"pa-0 tz-content-wrapper\">\n                    <!-- menu MD et + -->\n                    <standard-menu\n                        data-testid=\"standard-menu\"\n                        class=\"standard-menu\"\n                        @setToggleHomeLoading=\"setToggleHomeLoading\"\n                    />\n                </v-col>\n            </v-row>\n        </v-app-bar>\n    </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex';\nimport MobileMenu from '@/components/bars/mobileHeaderMenu/MobileHeaderMenu';\nimport StandardMenu from '@/components/bars/standardHeaderMenu/StandardHeaderMenu.vue';\nimport TopMenu from './bars/topHeaderMenu/TopHeaderMenu';\nimport { includes } from 'lodash';\n\nexport default {\n    name: 'title-bar',\n    components: {\n        MobileMenu,\n        StandardMenu,\n        TopMenu,\n    },\n    computed: {\n        ...mapGetters({\n            getStyle: 'getStyle',\n            getEstablishment: 'establishment/getEstablishment',\n        }),\n    },\n    methods: {\n        ...mapActions({\n            toggleHomeLoading: 'loading/toggleHomeLoading',\n        }),\n        setToggleHomeLoading(currentPage) {\n            this.toggleHomeLoading({ set: true });\n            const page = this.$route.fullPath;\n            if (includes(page, currentPage)) {\n                setTimeout(() => {\n                    this.toggleHomeLoading({ set: false });\n                }, 1000);\n            }\n        },\n    },\n};\n</script>\n\n<style scoped lang=\"scss\">\n.top-bar {\n    border: 1px solid #000;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TitleBar.vue?vue&type=template&id=23de1a2d&scoped=true&\"\nimport script from \"./TitleBar.vue?vue&type=script&lang=js&\"\nexport * from \"./TitleBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TitleBar.vue?vue&type=style&index=0&id=23de1a2d&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"23de1a2d\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-snackbar',{staticClass:\"pb-md-2\",attrs:{\"bottom\":\"\",\"color\":_vm.snack.color,\"timeout\":_vm.snack.timeout,\"max-width\":this.$vuetify.breakpoint.mdAndUp ? '700px' : '',\"vertical\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return undefined},proxy:true}]),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-btn',{staticClass:\"float-right ma-0 pa-0\",attrs:{\"dark\":\"\",\"text\":\"\"},nativeOn:{\"click\":function($event){_vm.show = false}}},[_c('v-icon',[_vm._v(\"close\")])],1),_c('div',{staticClass:\"pa-md-2 text-center\",class:this.$vuetify.breakpoint.mdAndUp ? 'largerSnackBar' : 'normalSnackBar',attrs:{\"role\":\"alert\",\"tabindex\":\"0\",\"aria-label\":_vm.snack.message}},[_c('span',{staticClass:\"text-decoration-underline\"},[_vm._v(\"\\n            \"+_vm._s(_vm.snack.message)+\"\\n        \")]),_c('br'),_c('span',[_vm._v(\"\\n            \"+_vm._s(_vm.getLowerMessage)+\"\\n        \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-snackbar\n        v-model=\"show\"\n        bottom\n        :color=\"snack.color\"\n        :timeout=\"snack.timeout\"\n        :max-width=\"this.$vuetify.breakpoint.mdAndUp ? '700px' : ''\"\n        class=\"pb-md-2\"\n        vertical\n    >\n        <template v-slot:action />\n        <v-btn\n            dark\n            text\n            class=\"float-right ma-0 pa-0\"\n            @click.native=\"show = false\">\n            <v-icon>close</v-icon>\n        </v-btn>\n        <div\n            class=\"pa-md-2 text-center\"\n            :class=\"this.$vuetify.breakpoint.mdAndUp ? 'largerSnackBar' : 'normalSnackBar'\"\n            role=\"alert\"\n            tabindex=\"0\"\n            :aria-label=\"snack.message\"\n        >\n            <span class=\"text-decoration-underline\">\n                {{ snack.message }}\n            </span>\n            <br />\n            <span>\n                {{ getLowerMessage }}\n            </span>\n        </div>\n    </v-snackbar>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nexport default {\n    name: 'trimoz-new-snackbar',\n    data() {\n        return {\n            show: false,\n        };\n    },\n    computed: {\n        ...mapGetters({\n            snack: 'snackbar/getSnackbar',\n        }),\n        getLowerMessage() {\n            return this.snack.lowerMessage !== undefined ? this.snack.lowerMessage : '';\n        },\n    },\n    watch: {\n        snack: {\n            handler() {\n                this.show = true;\n            },\n            deep: true,\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.largerSnackBar {\n    font-size: 20px;\n}\n.normalSnackBar {\n    font-size: 15px;\n}\n.v-btn {\n    min-width: 0;\n}\n.v-btn__content {\n    padding: 0;\n}\n.v-snack__content {\n    padding: 0;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrimozSnackbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrimozSnackbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TrimozSnackbar.vue?vue&type=template&id=1100ffe6&scoped=true&\"\nimport script from \"./TrimozSnackbar.vue?vue&type=script&lang=js&\"\nexport * from \"./TrimozSnackbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TrimozSnackbar.vue?vue&type=style&index=0&id=1100ffe6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1100ffe6\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":600},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[(_vm.lastError)?_c('v-card',[_c('v-card-title',{staticClass:\"title white--text error\",attrs:{\"dense\":\"\"}},[_c('span',[_vm._v(_vm._s(_vm.$t(_vm.lastError.textKey)['title']))]),_c('v-spacer'),_c('v-btn',{staticClass:\"ma-0\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.show=false}}},[_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"\\n                    close\\n                \")])],1)],1),_c('v-card-text',[_c('v-layout',[_c('v-flex',{attrs:{\"pr-6\":\"\",\"shrink\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"\\n                        fas fa-exclamation-triangle\\n                    \")])],1),_c('v-flex',{staticClass:\"text-left\",domProps:{\"innerHTML\":_vm._s(_vm.$t(((_vm.lastError.textKey) + \".message\"), _vm.lastError.textParams))}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"error\",on:{\"click\":function($event){_vm.show=false}}},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('base.close'))+\"\\n            \")])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-dialog\n        v-model=\"show\"\n        :max-width=\"600\"\n    >\n        <v-card v-if=\"lastError\">\n            <v-card-title class=\"title white--text error\" dense>\n                <span>{{ $t(lastError.textKey)['title'] }}</span>\n                <v-spacer />\n                <v-btn icon class=\"ma-0\" @click=\"show=false\">\n                    <v-icon color=\"white\">\n                        close\n                    </v-icon>\n                </v-btn>\n            </v-card-title>\n            <v-card-text>\n                <v-layout>\n                    <v-flex pr-6 shrink>\n                        <v-icon color=\"error\">\n                            fas fa-exclamation-triangle\n                        </v-icon>\n                    </v-flex>\n                    <v-flex class=\"text-left\" v-html=\"$t(`${lastError.textKey}.message`, lastError.textParams)\" />\n                </v-layout>\n            </v-card-text>\n            <!-- Actions -->\n            <v-card-actions>\n                <v-spacer />\n                <!--Close-->\n                <v-btn class=\"error\" @click=\"show=false\">\n                    {{ $t('base.close') }}\n                </v-btn>\n            </v-card-actions>\n        </v-card>\n    </v-dialog>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nexport default {\n    name: 'trimoz-error-dialog',\n    data() {\n        return {\n            show: false,\n        };\n    },\n    computed: {\n        ...mapGetters({\n            lastError: 'errorHandling/getLastError',\n        }),\n    },\n    watch: {\n        lastError: {\n            handler(val) {\n                if(!this.lastError) {\n                    return;\n                }\n                this.show = true;\n            },\n            deep: true,\n        },\n    },\n};\n\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrimozErrorDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrimozErrorDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TrimozErrorDialog.vue?vue&type=template&id=19601527&scoped=true&\"\nimport script from \"./TrimozErrorDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./TrimozErrorDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"19601527\",\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{class:{'pa-0' : _vm.$vuetify.breakpoint.xsOnly}},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"mt-4\":\"\",\"xs12\":\"\",\"text-center\":\"\"}},[_c('div',{staticClass:\"headline\"},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('sheddingPage.title'))+\"\\n            \")]),_c('div',{staticClass:\"subheading my-4\"},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('sheddingPage.content1'))+\"\\n            \")]),_c('div',{staticClass:\"subheading mt-4 mb-0\"},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('sheddingPage.thanks'))+\"\\n            \")]),_c('div',{staticClass:\"subheading\"},[_vm._v(\"\\n                \"+_vm._s(_vm.$t('sheddingPage.team'))+\"\\n            \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-container :class=\"{'pa-0' : $vuetify.breakpoint.xsOnly}\">\n        <v-layout row wrap>\n            <v-flex mt-4 xs12 text-center>\n                <div class=\"headline\">\n                    {{ $t('sheddingPage.title') }}\n                </div>\n                <div class=\"subheading my-4\">\n                    {{ $t('sheddingPage.content1') }}\n                </div>\n                <div class=\"subheading mt-4 mb-0\">\n                    {{ $t('sheddingPage.thanks') }}\n                </div>\n                <div class=\"subheading\">\n                    {{ $t('sheddingPage.team') }}\n                </div>\n            </v-flex>\n        </v-layout>\n    </v-container>\n</template>\n\n<script>\n\nexport default {\n    name: 'shedding-page',\n    data() {\n        return {\n            timer: null,\n        };\n    },\n};\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SheddingPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SheddingPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SheddingPage.vue?vue&type=template&id=e4acd1cc&\"\nimport script from \"./SheddingPage.vue?vue&type=script&lang=js&\"\nexport * from \"./SheddingPage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"py-5 mt-5\",attrs:{\"id\":\"clientHeader\"}},[(!_vm.$route.path.includes('coupon'))?[_c('v-layout',{staticClass:\"hidden-sm-and-down justify-space-between\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"pl-4\":\"\",\"sm6\":\"\"}},[_c('h1',{staticClass:\"mb-2 mr-4 display-1\",attrs:{\"tabindex\":\"0\",\"id\":\"establishmentName\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.getEstablishment.name)+\"\\n                    \"),(_vm.isGapModeOn)?_c('v-chip',{staticClass:\"white--text red\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('base.gapMode'))+\"\\n                    \")]):_vm._e()],1)]),_c('v-flex',{attrs:{\"pr-4\":\"\",\"sm4\":\"\"}},[_c('v-img',{attrs:{\"src\":_vm.getClientLogo,\"contain\":\"\",\"max-height\":\"70px\",\"max-width\":\"480px\"}})],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[(_vm.getClientLogo)?_c('v-flex',{attrs:{\"px-4\":\"\",\"xs12\":\"\"}},[_c('v-img',{staticClass:\"mx-auto\",attrs:{\"src\":_vm.getClientLogo,\"max-width\":\"360px\"}})],1):_vm._e(),_c('v-flex',{attrs:{\"my-6\":\"\",\"px-4\":\"\",\"xs12\":\"\"}},[_c('h1',{staticClass:\"title text-center\",attrs:{\"tabindex\":\"0\",\"id\":\"establishmentNameMobile\"}},[_vm._v(\"\\n                    \"+_vm._s(_vm.getEstablishment.name)+\"\\n                    \"),(_vm.isGapModeOn)?_c('v-chip',{staticClass:\"white--text red\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.$t('base.gapMode'))+\"\\n                    \")]):_vm._e()],1)])],1)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <div class=\"py-5 mt-5\" id=\"clientHeader\">\n        <template v-if=\"!$route.path.includes('coupon')\">\n            <!-- MD et +  -->\n            <v-layout class=\"hidden-sm-and-down justify-space-between\" row wrap>\n                <v-flex pl-4 sm6>\n                    <h1 tabindex=\"0\" class=\"mb-2 mr-4 display-1\" id=\"establishmentName\">\n                        {{ getEstablishment.name }}\n                        <v-chip v-if=\"isGapModeOn\" class=\"white--text red\">\n                            {{ $t('base.gapMode') }}\n                        </v-chip>\n                    </h1>\n                </v-flex>\n                <v-flex pr-4 sm4>\n                    <v-img :src=\"getClientLogo\" contain max-height=\"70px\" max-width=\"480px\" />\n                </v-flex>\n            </v-layout>\n            <!-- SM et -  -->\n            <v-layout class=\"hidden-md-and-up\" row wrap>\n                <v-flex v-if=\"getClientLogo\" px-4 xs12>\n                    <v-img :src=\"getClientLogo\" class=\"mx-auto\" max-width=\"360px\" />\n                </v-flex>\n                <v-flex my-6 px-4 xs12>\n                    <h1 tabindex=\"0\" class=\"title text-center\" id=\"establishmentNameMobile\">\n                        {{ getEstablishment.name }}\n                        <v-chip v-if=\"isGapModeOn\" class=\"white--text red\">\n                            {{ $t('base.gapMode') }}\n                        </v-chip>\n                    </h1>\n                </v-flex>\n            </v-layout>\n        </template>\n    </div>\n</template>\n<script>\nimport { mapGetters } from 'vuex';\nimport { EstablishmentSetting } from '@/enums';\n\nexport default {\n    name: 'establishment-header',\n    components: {},\n    computed: {\n        ...mapGetters({\n            getEstablishment: 'establishment/getEstablishment',\n            getEstablishmentSettingById: 'establishment/getEstablishmentSettingById',\n            isGapModeOn: 'gap/isGapModeOn',\n        }),\n        getClientLogo() {\n            return this.getEstablishmentSettingById(EstablishmentSetting['USE_CLIENT_LOGO'])\n                ? this.getEstablishmentSettingById(EstablishmentSetting['CLIENT_LOGO']) : '';\n        },\n    },\n    mounted() {\n        const skipTo = document.querySelector('#skip-to .vue-skip-to__link');\n        if(skipTo) {\n            skipTo.addEventListener('click', this.onSkipToClick);\n        }\n    },\n    methods: {\n        onSkipToClick() {\n            const element = document.getElementById(this.$vuetify.breakpoint.smAndDown ? 'establishmentNameMobile' : 'establishmentName');\n            element.focus();\n        },\n    },\n\n};\n</script>\n\n<style lang=\"scss\">\n@import './src/assets/scss/variables';\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EstablishmentHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EstablishmentHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EstablishmentHeader.vue?vue&type=template&id=90f6a460&\"\nimport script from \"./EstablishmentHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./EstablishmentHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EstablishmentHeader.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',[_c('v-container',{staticClass:\"hidden-md-and-up mb-10\",attrs:{\"fluid\":\"\"}},[(_vm.getFooterInfo)?_c('v-flex',{attrs:{\"xs12\":\"\",\"py-4\":\"\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"sm1\":\"\",\"xs2\":\"\"}},[_c('img',{staticStyle:{\"max-width\":\"48px\"},attrs:{\"src\":_vm.getClientLogomark ? _vm.getClientLogomark : _vm.getLogoUrl,\"alt\":\"Logo\"}})]),_c('v-flex',{attrs:{\"xs10\":\"\",\"sm11\":\"\"}},[(_vm.getEstablishment.name)?_c('p',{staticClass:\"title\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.getEstablishment.name)+\"\\n                    \")]):_vm._e(),(_vm.getEstablishment.address)?_c('p',{staticClass:\"subheading\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.getEstablishment.address)+\"\\n                    \")]):_vm._e(),(_vm.getEstablishment.phone)?_c('p',{staticClass:\"subheading\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.formatNanpPhoneNumber(_vm.getEstablishment.phone))+\"\\n                    \")]):_vm._e(),(_vm.getEstablishment.fax)?_c('p',{staticClass:\"subheading\"},[_vm._v(\"\\n                        \"+_vm._s(_vm.formatNanpPhoneNumber(_vm.getEstablishment.fax))+\"\\n                    \")]):_vm._e(),(_vm.getEstablishment.website)?_c('p',{staticClass:\"subheading\"},[_c('a',{attrs:{\"href\":_vm.getEstablishment.website,\"target\":\"_blank\"}},[_vm._v(\"\\n                            \"+_vm._s(_vm.$t('footer.website'))+\"\\n                        \")])]):_vm._e()])],1)],1):_vm._e(),(_vm.publicPageFooterText)?_c('v-flex',{staticClass:\"pb-4 xs12 text-center caption wysiwyg-output\",domProps:{\"innerHTML\":_vm._s(_vm.publicPageFooterText)}}):_vm._e(),_c('v-flex',{staticClass:\"xs12 text-center caption\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('footer.trimoz.clicsante'))+\"\\n        \")])],1),_c('v-container',{staticClass:\"hidden-sm-and-down\",attrs:{\"fluid\":\"\"}},[_c('v-flex',{attrs:{\"sm12\":\"\",\"pb-12\":\"\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[(_vm.getFooterInfo)?_c('v-flex',{attrs:{\"sm12\":\"\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"justify-space-between\":\"\"}},[_c('v-flex',{staticClass:\"text-right\",attrs:{\"sm2\":\"\",\"my-auto\":\"\"}},[_c('img',{staticClass:\"logo-footer mr-4\",staticStyle:{\"max-width\":\"96px\"},attrs:{\"width\":\"150px\",\"src\":_vm.getClientLogomark ? _vm.getClientLogomark : _vm.getLogoUrl,\"alt\":\"Logo\"}})]),_c('v-flex',{attrs:{\"sm6\":\"\",\"my-auto\":\"\"}},[(_vm.getEstablishment.name)?_c('p',{staticClass:\"title\"},[_vm._v(\"\\n                                \"+_vm._s(_vm.getEstablishment.name)+\"\\n                            \")]):_vm._e(),(_vm.getEstablishment.address)?_c('p',{staticClass:\"subheading\"},[_vm._v(\"\\n                                \"+_vm._s(_vm.getEstablishment.address)+\"\\n                            \")]):_vm._e(),(_vm.getEstablishment.phone)?_c('p',{staticClass:\"subheading\"},[_vm._v(\"\\n                                \"+_vm._s(_vm.$t('base.phonePrefix'))+\" \"+_vm._s(_vm.formatNanpPhoneNumber(_vm.getEstablishment.phone))+\"\\n                            \")]):_vm._e(),(_vm.getEstablishment.fax)?_c('p',{staticClass:\"subheading\"},[_vm._v(\"\\n                                \"+_vm._s(_vm.$t('base.faxPrefix'))+\" \"+_vm._s(_vm.formatNanpPhoneNumber(_vm.getEstablishment.fax))+\"\\n                            \")]):_vm._e(),(_vm.getEstablishment.website)?_c('p',{staticClass:\"subheading\"},[_c('a',{attrs:{\"href\":_vm.getEstablishment.website,\"target\":\"_blank\"}},[_vm._v(\"\\n                                    \"+_vm._s(_vm.$t('footer.website'))+\"\\n                                \")])]):_vm._e()]),_c('v-flex',{attrs:{\"sm4\":\"\",\"my-auto\":\"\",\"text-right\":\"\"}},[(_vm.getStyle === 'pharmaservices')?_c('img',{staticClass:\"logo-footer\",staticStyle:{\"max-width\":\"96px\"},attrs:{\"alt\":\"Logo\",\"src\":_vm.getFooterProductLogo}}):_vm._e()])],1)],1):_c('v-flex',{attrs:{\"sm6\":\"\"}})],1)],1),(_vm.publicPageFooterText)?_c('v-flex',{staticClass:\"pb-4 sm12 text-center caption wysiwyg-output\",domProps:{\"innerHTML\":_vm._s(_vm.publicPageFooterText)}}):_vm._e(),_c('v-flex',{staticClass:\"sm12 text-center caption\"},[(_vm.getStyle === 'pharmaservices')?_c('span',[_vm._v(\"\\n                \"+_vm._s(_vm.$t('footer.trimoz.pharmaservices'))+\"\\n            \")]):(_vm.getStyle === 'pharmaprix')?_c('span',[_vm._v(\"\\n                \"+_vm._s(_vm.$t('footer.trimoz.pharmaprix'))+\"\\n            \")]):(_vm.getStyle === 'uniprix')?_c('span',[_vm._v(\"\\n                \"+_vm._s(_vm.$t('footer.trimoz.uniprix'))+\"\\n            \")]):_c('span',[_vm._v(\"\\n                \"+_vm._s(_vm.$t('footer.trimoz.clicsante'))+\"\\n            \")])])],1),_c('v-layout',{staticClass:\"grey darken-3 bottom-footer\",attrs:{\"row\":\"\",\"wrap\":\"\",\"justify-center\":\"\"}},[_c('v-flex',{attrs:{\"flex\":\"\",\"xs12\":\"\",\"text-center\":\"\",\"d-flex\":\"\",\"align-center\":\"\",\"justify-center\":\"\",\"white--text\":\"\",\"body-2\":\"\"}},[_c('ul',{attrs:{\"id\":\"usersMenus\"}},_vm._l((_vm.usersMenus),function(menu,index){return _c('li',{key:index,staticClass:\"py-2 d-inline\"},[_c('a',{staticClass:\"white--text\",attrs:{\"href\":menu.href,\"target\":menu.target},domProps:{\"textContent\":_vm._s(menu.title)}}),(index !== _vm.usersMenus.length - 1)?_c('span',{staticClass:\"px-3 white--text\"},[_vm._v(\"\\n                        |\\n                    \")]):_vm._e()])}),0)])],1),_c('v-layout',{staticClass:\"grey darken-3 bottom-footer\",attrs:{\"row\":\"\",\"wrap\":\"\",\"justify-center\":\"\"}},[_c('v-flex',{attrs:{\"flex\":\"\",\"xs12\":\"\",\"text-center\":\"\",\"d-flex\":\"\",\"align-center\":\"\",\"justify-center\":\"\",\"white--text\":\"\",\"body-2\":\"\"}},[_c('span',{staticClass:\"mx-auto\"},[_vm._v(\"\\n                © \"+_vm._s(_vm.getCurrentYear)+\" - Trimoz Technologies - \"+_vm._s(_vm.$t('footer.trimoz.allRightsReserved'))+\"\\n            \")]),(_vm.isClicSante)?_c('v-img',{staticStyle:{\"float\":\"right\",\"max-width\":\"40px\",\"max-height\":\"40px\",\"margin-right\":\"10px\"},attrs:{\"src\":_vm.getFooterProductLogo}}):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function format(rawPhone, lang) {\n    if (isNaN(rawPhone) || rawPhone.length < 10 || rawPhone.length > 18) {\n        return '';\n    }\n    let phoneMask;\n    let phoneExtensionMask;\n    if (lang === 'fr') {\n        phoneMask = '$areaCode $exchangeCode-$subscriberLine';\n        phoneExtensionMask = ', poste $extension';\n    }\n    else {\n        phoneMask = '$areaCode-$exchangeCode-$subscriberLine';\n        phoneExtensionMask = ' ext. $extension';\n    }\n    const areaCode = rawPhone.substring(0, 3);\n    const exchangeCode = rawPhone.substring(3, 6);\n    const subscriberLine = rawPhone.substring(6, 10);\n    const extension = rawPhone.substring(10, 18);\n    let formattedPhone = phoneMask.replace('$areaCode', areaCode)\n        .replace('$exchangeCode', exchangeCode)\n        .replace('$subscriberLine', subscriberLine);\n    if (extension !== '') {\n        formattedPhone += phoneExtensionMask.replace('$extension', extension);\n    }\n    return formattedPhone;\n}\n","<template>\n    <footer>\n        <!--SM et - -->\n        <v-container fluid class=\"hidden-md-and-up mb-10\">\n            <!--            <mobile-footer-menu data-testid=\"mobile-footer-menu\" />-->\n            <v-flex v-if=\"getFooterInfo\" xs12 py-4>\n                <v-layout row wrap>\n                    <v-flex sm1 xs2>\n                        <img\n                            :src=\"getClientLogomark ? getClientLogomark : getLogoUrl\"\n                            alt=\"Logo\"\n                            style=\"max-width: 48px;\" />\n                    </v-flex>\n                    <v-flex xs10 sm11 class=\"\">\n                        <p v-if=\"getEstablishment.name\" class=\"title\">\n                            {{ getEstablishment.name }}\n                        </p>\n                        <p v-if=\"getEstablishment.address\" class=\"subheading\">\n                            {{ getEstablishment.address }}\n                        </p>\n                        <p v-if=\"getEstablishment.phone\" class=\"subheading\">\n                            {{ formatNanpPhoneNumber(getEstablishment.phone) }}\n                        </p>\n                        <p v-if=\"getEstablishment.fax\" class=\"subheading\">\n                            {{ formatNanpPhoneNumber(getEstablishment.fax) }}\n                        </p>\n                        <p v-if=\"getEstablishment.website\" class=\"subheading\">\n                            <a :href=\"getEstablishment.website\" target=\"_blank\">\n                                {{ $t('footer.website') }}\n                            </a>\n                        </p>\n                    </v-flex>\n                </v-layout>\n            </v-flex>\n            <v-flex v-if=\"publicPageFooterText\" class=\"pb-4 xs12 text-center caption wysiwyg-output\" v-html=\"publicPageFooterText\" />\n            <v-flex class=\"xs12 text-center caption\">\n                {{ $t('footer.trimoz.clicsante') }}\n            </v-flex>\n        </v-container>\n        <!-- MD et + -->\n        <v-container fluid class=\"hidden-sm-and-down\">\n            <v-flex sm12 pb-12>\n                <v-layout row wrap>\n                    <v-flex v-if=\"getFooterInfo\" sm12>\n                        <v-layout row justify-space-between>\n                            <v-flex sm2 my-auto class=\"text-right\">\n                                <img\n                                    class=\"logo-footer mr-4\"\n                                    width=\"150px\"\n                                    style=\"max-width: 96px;\"\n                                    :src=\"getClientLogomark ? getClientLogomark : getLogoUrl\"\n                                    alt=\"Logo\" />\n                            </v-flex>\n\n                            <v-flex sm6 my-auto>\n                                <p v-if=\"getEstablishment.name\" class=\"title\">\n                                    {{ getEstablishment.name }}\n                                </p>\n                                <p v-if=\"getEstablishment.address\" class=\"subheading\">\n                                    {{ getEstablishment.address }}\n                                </p>\n                                <p v-if=\"getEstablishment.phone\" class=\"subheading\">\n                                    {{ $t('base.phonePrefix') }} {{ formatNanpPhoneNumber(getEstablishment.phone) }}\n                                </p>\n                                <p v-if=\"getEstablishment.fax\" class=\"subheading\">\n                                    {{ $t('base.faxPrefix') }} {{ formatNanpPhoneNumber(getEstablishment.fax) }}\n                                </p>\n                                <p v-if=\"getEstablishment.website\" class=\"subheading\">\n                                    <a :href=\"getEstablishment.website\" target=\"_blank\">\n                                        {{ $t('footer.website') }}\n                                    </a>\n                                </p>\n                            </v-flex>\n                            <v-flex sm4 my-auto text-right>\n                                <img\n                                    v-if=\"getStyle === 'pharmaservices'\"\n                                    class=\"logo-footer\"\n                                    alt=\"Logo\"\n                                    style=\"max-width: 96px;\"\n                                    :src=\"getFooterProductLogo\" />\n                            </v-flex>\n                        </v-layout>\n                    </v-flex>\n                    <v-flex v-else sm6 />\n                </v-layout>\n            </v-flex>\n            <v-flex v-if=\"publicPageFooterText\" class=\"pb-4 sm12 text-center caption wysiwyg-output\" v-html=\"publicPageFooterText\" />\n            <v-flex class=\"sm12 text-center caption\">\n                <span v-if=\"getStyle === 'pharmaservices'\">\n                    {{ $t('footer.trimoz.pharmaservices') }}\n                </span>\n                <span v-else-if=\"getStyle === 'pharmaprix'\">\n                    {{ $t('footer.trimoz.pharmaprix') }}\n                </span>\n                <span v-else-if=\"getStyle === 'uniprix'\">\n                    {{ $t('footer.trimoz.uniprix') }}\n                </span>\n                <span v-else>\n                    {{ $t('footer.trimoz.clicsante') }}\n                </span>\n            </v-flex>\n        </v-container>\n        <v-layout row wrap justify-center class=\"grey darken-3 bottom-footer\">\n            <v-flex\n                flex\n                xs12\n                text-center\n                d-flex\n                align-center\n                justify-center\n                white--text\n                body-2\n            >\n                <ul id=\"usersMenus\">\n                    <li v-for=\"(menu, index) in usersMenus\" class=\"py-2 d-inline\" :key=\"index\">\n                        <a :href=\"menu.href\" :target=\"menu.target\" class=\"white--text\" v-text=\"menu.title\" />\n                        <span v-if=\"index !== usersMenus.length - 1\" class=\"px-3 white--text\">\n                            |\n                        </span>\n                    </li>\n                </ul>\n            </v-flex>\n        </v-layout>\n        <v-layout row wrap justify-center class=\"grey darken-3 bottom-footer\">\n            <v-flex\n                flex\n                xs12\n                text-center\n                d-flex\n                align-center\n                justify-center\n                white--text\n                body-2\n            >\n                <span class=\"mx-auto\">\n                    &copy; {{ getCurrentYear }} - Trimoz Technologies - {{ $t('footer.trimoz.allRightsReserved') }}\n                </span>\n                <v-img\n                    v-if=\"isClicSante\"\n                    :src=\"getFooterProductLogo\"\n                    style=\"float: right;  max-width: 40px; max-height: 40px; margin-right: 10px;\" />\n            </v-flex>\n        </v-layout>\n    </footer>\n</template>\n\n<script>\n// import MobileFooterMenu from '@/components/bars/mobileFooterMenu/MobileFooterMenu';\nimport { format } from 'date-fns';\nimport { formatPhoneNumber } from '@/utils';\nimport { format as formatNanpPhoneNumber } from '@/formatters/phone/nanp';\nimport { EstablishmentSetting } from '@/enums';\nimport { mapGetters } from 'vuex';\nimport { inferPortalUrl } from '@/helpers/env';\nexport default {\n    name: 'app-footer',\n    components: {\n        // MobileFooterMenu,\n    },\n    computed: {\n        ...mapGetters({\n            locale: 'locale',\n            getStyle: 'getStyle',\n            isClicSante: 'isClicSante',\n            getStaticFilesUrl: 'getStaticFilesUrl',\n            getEstablishmentSettingById: 'establishment/getEstablishmentSettingById',\n            getEstablishment: 'establishment/getEstablishment',\n            getTexts: 'texts/getTexts',\n            getLogoUrl: 'getLogoUrl',\n        }),\n        publicPageFooterText() {\n            const texts = this.getTexts;\n            if (texts[this.locale].publicPageFooter) {\n                return texts[this.locale].publicPageFooter;\n            }\n            return '';\n        },\n        getCurrentYear() {\n            return format(new Date(), 'YYYY');\n        },\n        getClientLogomark() {\n            if (this.getEstablishmentSettingById(EstablishmentSetting['USE_CLIENT_LOGO']) &&\n                this.getEstablishmentSettingById(EstablishmentSetting['CLIENT_LOGOMARK'])) {\n                return this.getEstablishmentSettingById(EstablishmentSetting['CLIENT_LOGOMARK']);\n            }\n            return false;\n        },\n        getFooterInfo() {\n            return this.getEstablishmentSettingById(EstablishmentSetting['ENABLE_FOOTER_INFO']);\n        },\n        getFooterProductLogo() {\n            return this.getStaticFilesUrl + `/images/logo_footer.png`;\n        },\n        usersMenus() {\n            return [\n                {\n                    title: this.$t('footer.terms.name'),\n                    href: inferPortalUrl() + '/' + this.$t('footer.terms.path'),\n                    target: '_blank'\n                },\n                {\n                    title: this.$t('footer.policy.name'),\n                    href: inferPortalUrl() + '/' + this.$t('footer.policy.path'),\n                    target: '_blank'\n                },\n                {\n                    title: this.$t('footer.cookiePolicy.name'),\n                    href: inferPortalUrl() + '/' + this.$t('footer.cookiePolicy.path'),\n                    target: '_blank'\n                }\n            ];\n        }\n    },\n    methods: {\n        formatPhoneNumber(val) {\n            return formatPhoneNumber(val);\n        },\n        formatNanpPhoneNumber(val) {\n            return formatNanpPhoneNumber(val, this.locale);\n        },\n    },\n};\n</script>\n\n<style lang=\"scss\">\nfooter {\n    font-size: 12px;\n\n    .footer-banner {\n        min-height: auto;\n        background-size: cover;\n        background: #FFF url(\"../../../public/img/footer-background.png\") center center no-repeat;\n\n    }\n\n    .bottom-footer {\n        height: 50px;\n    }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppFooter.vue?vue&type=template&id=bb90ac9e&\"\nimport script from \"./AppFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./AppFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppFooter.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<template>\n    <v-app v-if=\"!getWaitingForThemeOverride\" :class=\"`${$vuetify.breakpoint.smAndDown ? 'mobile-app': ''}`\" id=\"app\">\n        <v-layout column>\n            <v-main>\n                <VueSkipTo tabindex=\"0\" to=\"\" :label=\"$t('header.accessibilitySkipToContentLink')\" id=\"skip-to\" />\n                <title-bar />\n                <div :class=\"`app-wrapper ${$route.path.includes('coupon') ? 'coupon' : ''} tz-content-wrapper pb-0`\">\n                    <establishment-header />\n                    <template v-if=\"isPublicPageBlocked\">\n                        <shedding-page />\n                    </template>\n                    <template v-else>\n                        <tz-loading :value=\"isHomeLoading\" />\n                        <v-flex>\n                            <transition name=\"fade\" mode=\"out-in\">\n                                <router-view v-show=\"!isHomeLoading\" />\n                            </transition>\n                        </v-flex>\n                    </template>\n                </div>\n            </v-main>\n            <app-footer />\n            <trimoz-snackbar />\n            <trimoz-error-dialog />\n\n            <!-- Displays a Cookie Consent form -->\n            <cookie-consent\n                :message=\"cookieConsentMessage\"\n                :link-label=\"cookieConsentLinkLabel\"\n                :href=\"consentLink\"\n                :button-label=\"cookieConsentButtonLabel\"\n                cookie-name=\"privacyConsent\"\n                cookie-path=\"/\"\n                :cookie-domain=\"tld\"\n                :cookie-expiry-days=\"365\">\n                <template slot=\"button\">\n                    <button class=\"v-btn btn-info\">\n                        Ok\n                    </button>\n                </template>\n            </cookie-consent>\n        </v-layout>\n    </v-app>\n</template>\n\n<script>\nimport 'vue-recaptcha';\nimport { mapGetters } from 'vuex';\nimport { get, includes, isObject } from 'lodash';\nimport TitleBar from './components/TitleBar';\nimport TzLoading from './components/TzLoading';\nimport TrimozSnackbar from './components/trimozSnackBar/TrimozSnackbar';\nimport CookieConsent from 'vue-cookieconsent-component';\nimport { inferCookieDomain, inferConsentDomain } from '@/helpers/env';\nimport TrimozErrorDialog from './components/TrimozErrorDialog';\nimport SheddingPage from './components/SheddingPage';\nimport EstablishmentHeader from './components/establishmentHeader/EstablishmentHeader.vue';\nimport AppFooter from '@/components/appFooter/AppFooter';\n\nexport default {\n    name: 'app',\n    components: {\n        AppFooter,\n        TrimozErrorDialog,\n        TitleBar,\n        TrimozSnackbar,\n        TzLoading,\n        CookieConsent,\n        SheddingPage,\n        EstablishmentHeader,\n    },\n    data() {\n        return {\n            recaptchaScript: null,\n        };\n    },\n    mounted() {\n        // Otherwise it may cause an issue on page refresh (recaptcha taking other lg)\n        setTimeout(() => {\n            this.setRecaptchaScript();\n        }, 500);\n\n        if (includes(document.URL, 'gapFlag=1')) {\n            this.$store.commit(\n                'appointments/UPDATE_GAP_FLAG',\n                true\n            );\n        }\n    },\n    watch: {\n        locale(newLocale, oldLocale) {\n            if (newLocale && oldLocale &&\n                    newLocale !== oldLocale) {\n                this.setRecaptchaScript();\n            }\n        },\n        '$route'(to) {\n            if (isObject(to.meta.title)) {\n                document.title = to.meta.title[this.locale] + ' | ' + get(this.getEstablishment, 'name', '');\n            }\n        },\n    },\n    computed: {\n        ...mapGetters({\n            locale: 'locale',\n            getWaitingForThemeOverride: 'getWaitingForThemeOverride',\n            isHomeLoading: 'loading/isHomeLoading',\n            isPublicPageBlocked: 'getPublicPageBlocked',\n            getEstablishment: 'establishment/getEstablishment',\n        }),\n        tld() {\n            return inferCookieDomain();\n        },\n        consentLink() {\n            return '//' + inferConsentDomain() + this.$t('base.cookieConsent.urlPath');\n        },\n        cookieConsentMessage() {\n            return this.$t('base.cookieConsent.message');\n        },\n        cookieConsentLinkLabel() {\n            return this.$t('base.cookieConsent.linkLabel');\n        },\n        cookieConsentButtonLabel() {\n            return this.$t('base.cookieConsent.buttonLabel');\n        },\n    },\n    methods: {\n        setRecaptchaScript() {\n            const recaptcha = document.getElementById('recaptcha');\n            if (recaptcha) {\n                document.body.removeChild(recaptcha);\n            }\n\n            this.recaptchaScript = document.createElement('script');\n            this.recaptchaScript.id = 'recaptcha';\n            this.recaptchaScript.src = 'https://www.google.com/recaptcha/api.js?onload=vueRecaptchaApiLoaded&render=explicit';\n            this.recaptchaScript.src += `&hl=${this.locale}`;\n            this.recaptchaScript.async = true;\n            this.recaptchaScript.defer = true;\n\n            document.body.appendChild(this.recaptchaScript);\n        },\n    },\n\n};\n</script>\n\n<style lang=\"scss\">\n    @import './assets/scss/variables';\n\n    #app {\n        /*font-family: 'Avenir', Helvetica, Arial, sans-serif;*/\n        -webkit-font-smoothing: antialiased;\n        -moz-osx-font-smoothing: grayscale;\n        background: $whiteSmoke;\n\n        .app-wrapper {\n            padding: 6px;\n            background: $whiteSmoke;\n        }\n\n        @media only screen and (min-width: 955px) {\n            .app-wrapper.coupon {\n                padding: 6px 0;\n            }\n        }\n\n        & .v-application--wrap {\n            @media only screen and (max-width: 768px) {\n                margin-bottom: 80px;\n            }\n        }\n    }\n\n    .fade-enter-active, .fade-leave-active {\n        transition: opacity .5s;\n    }\n    .fade-enter, .fade-leave-to {\n        opacity: 0;\n    }\n\n    .g-recaptcha {\n        display: inline-block;\n    }\n\n    .wysiwyg-output {\n        b, strong {\n            font-weight: 800;\n        }\n    }\n    .screenreader-only:not(:focus) {\n        position: absolute;\n        left: -10000px;\n        top: auto;\n        width: 1px;\n        height: 1px;\n        overflow: hidden;\n    }\n\n    /* fix for accessibility : The \"Continue\" button loses focus when the Windows narrator is open  */\n    .screenreader-only:focus {\n      position: absolute;\n    }\n\n    .vue-skip-to {\n        z-index: 9999 !important;\n    }\n\n    /*\n    * For a11y. If not present, some focused element have a chance of being behind the bottom menu on a mobile view.\n    * Note: user partialy blind that required intensive zoom (e.g.: 300% zoom) often trigger the mobile environment.\n    *\n    * Unfortunately, setting the height value like so break the display of the vuetify autocomplete and select component.\n    * Therefore, we comment it until we have time to find a solution that won't break the scroll and satisfy accessibility demand above.\n    */\n    #app.mobile-app {\n        /* height: calc(100vh - 80px) !important; */\n        overflow-y: auto !important;\n\n        footer .v-btn:not(.v-btn--round).v-size--default {\n            height: inherit !important;\n        }\n    }\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=26dbaccd&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","export const registerSheddingHandling = (vue) => {\n    vue.$api.errorCallbacks.onSheddingError = () => {\n        vue.$store.commit('SET_PUBLIC_PAGE_BLOCKED', true);\n    };\n};\n","import Vue from 'vue';\nimport App from './App';\nimport Store from './store';\nimport { split, includes, get } from 'lodash';\nimport { i18n } from './i18n';\nimport Router from './router';\nimport Vuetify from 'vuetify';\nimport { sync } from 'vuex-router-sync';\nimport '@fortawesome/fontawesome-free/css/all.css';\nimport 'vuetify/dist/vuetify.min.css';\nimport './assets/scss/app.scss';\nimport scrollto from 'vue-scrollto';\nimport config from './config.js';\nimport { setProduct, setFavicon, isUsingKc } from '@/utils';\nimport { inferApiUrl } from '@/helpers/env';\nimport { registerSentryLogging } from '@trimoz/trimoz-vue-error-handling';\nimport { registerSheddingHandling } from './errors/errors';\nimport { Apiv2, keycloakAdapter } from '@trimoz/trimoz-api-wrapper';\nimport VueMask from 'v-mask';\nimport VueAxe from 'vue-axe';\nimport InputFacade from 'vue-input-facade';\nimport VueSkipTo from '@vue-a11y/skip-to';\n\nVue.use(InputFacade);\nVue.use(VueSkipTo);\nVue.use(VueMask);\n\nsync(Store, Router);\n\nconst product = setProduct(window.location.hostname);\nconst theme = config[product] ? config[product] : config.clicsante;\n\nVue.prototype.$api = Apiv2(inferApiUrl(), true, product, Store);\n\nVue.use(Vuetify);\n\nVue.config.errorHandler = (err) => {\n    if (process.env.VUE_APP_ENV === 'development') {\n        console.log(err);\n    }\n\n    Store.dispatch('errorHandling/handleError', err);\n};\n\nVue.use(scrollto);\n\nlet langMixin = {\n    created: function() {\n        const localeKey = 'tmz_public_lang';\n        const item = localStorage.getItem(localeKey);\n        const decodedUrl = decodeURIComponent(window.location.href);\n        const urlObj = new URL(decodedUrl);\n        const urlParams = new URLSearchParams(urlObj.search);\n        const localeOnUrl = urlParams.get('locale') || '';\n\n        if (/^(fr|en)$/.test(localeOnUrl)) {\n            localStorage.setItem('tmz_public_lang', localeOnUrl);\n        }\n        else {\n            let queryLang = (window.location.search.match(/lang=(fr|en)/) || [])[1] || null;\n            if (!includes(['en', 'fr'], item) || queryLang) {\n                let language = queryLang || 'fr';\n                for (let i = 0; i < navigator.languages.length && queryLang === null; i++) {\n                    const browserLanguage = split(navigator.languages[i], '-')[0];\n                    if (includes(['en', 'fr'], browserLanguage)) {\n                        language = browserLanguage;\n                        break;\n                    }\n                }\n                localStorage.setItem(localeKey, language);\n            }\n        }\n        this.$store.dispatch('setLocale', { i18n: this.$i18n, locale: localStorage.getItem(localeKey) });\n    },\n};\n\n/* Clear the warning in the console related to the v-calendar component\n* ref : https://github.com/vuetifyjs/vuetify/issues/9999\n**/\nconst ignoreWarnMessage = 'The .native modifier for v-on is only valid on components but it was used on <div>.';\nVue.config.warnHandler = function(msg, vm, trace) {\n    // `trace` is the component hierarchy trace\n    if (msg === ignoreWarnMessage) {\n        msg = null;\n        vm = null;\n        trace = null;\n    }\n};\n\n// Axe a11y tests\nif (process.env.VUE_APP_ENV === 'development') {\n    Vue.use(VueAxe, {\n        auto: true,\n        allowConsoleClears: false,\n        clearConsoleOnUpdate: false,\n    });\n}\n\n(async() => {\n    let isUserAuth = false;\n    let isKeycloakInitError = false;\n    try {\n        if (isUsingKc) {\n            const shouldCheckLogin = includes(window.location.href, 'session_state') ||\n                keycloakAdapter.validateCookieTs(document.cookie);\n\n            if (shouldCheckLogin) {\n                const establishmentId = get(split(window.location.pathname, '/'), '[1]', '');\n                const page = get(split(window.location.pathname, '/'), '[2]', 'take-appt');\n                isUserAuth = await keycloakAdapter.init({\n                    onLoad: 'check-sso',\n                    redirectUri: process.env.VUE_APP_KEYCLOAK_LOGIN_REDIRECT_URI + `${establishmentId}/${page}` + window.location.search,\n                });\n            }\n\n            if (!isUserAuth || (keycloakAdapter.hasCookieTs(document.cookie) && !keycloakAdapter.validateCookieTs(document.cookie))) {\n                keycloakAdapter.deleteAuthTsCookie();\n            }\n        }\n    }\n    catch (e) {\n        isKeycloakInitError = true;\n        console.warn('Keycloak instance not initiated');\n        console.error(e);\n        keycloakAdapter.deleteAuthTsCookie();\n    }\n    finally {\n        new Vue({\n            el: '#app',\n            i18n: i18n,\n            mixins: [langMixin],\n            store: Store,\n            router: Router,\n            vuetify: new Vuetify({\n                icons: {\n                    iconfont: 'fa',\n                },\n                options: {\n                    customProperties: true,\n                },\n                theme: {\n                    light: true,\n                    themes: {\n                        light: {\n                            primary: theme.primary,\n                            secondary: theme.secondary,\n                            accent: theme.accent,\n                            error: theme.error,\n                            info: theme.info,\n                            success: theme.success,\n                            warning: theme.warning,\n                            anchor: '#006ad4',\n                        },\n                    },\n                },\n            }),\n            mounted: () => document.dispatchEvent(new Event('x-app-rendered')),\n            render: h => h(App),\n            created: async function() {\n                /* Associer le produit avec le domaine avec window.location.hostname */\n                this.$store.commit('UPDATE_STYLE', product);\n                this.$store.commit('UPDATE_THEME', theme);\n                setFavicon();\n\n                registerSentryLogging(product);\n                registerSheddingHandling(this);\n                if (isUserAuth) {\n                    await this.$store.dispatch('kcAuth/onLoginSuccess');\n                }\n\n                if (isKeycloakInitError) {\n                    keycloakAdapter.isKcInstanceError = true;\n                    this.$store.commit('kcAuth/SET_IS_KC_INIT_ERROR', true);\n                }\n            },\n        }).$mount('#app');\n    }\n})();\n","var map = {\n\t\"./covid-screening-metadata/CovidScreeningMetadataLang\": \"216e\",\n\t\"./covid-screening-metadata/CovidScreeningMetadataLang.js\": \"216e\",\n\t\"./en\": \"3fab\",\n\t\"./en.js\": \"3fab\",\n\t\"./fr\": \"6d80\",\n\t\"./fr.js\": \"6d80\",\n\t\"./input-validation-accessibility/InputValidationAccessibilityLang\": \"dfd7\",\n\t\"./input-validation-accessibility/InputValidationAccessibilityLang.js\": \"dfd7\",\n\t\"./input-validation-accessibility/en\": \"7350\",\n\t\"./input-validation-accessibility/en.js\": \"7350\",\n\t\"./input-validation-accessibility/fr\": \"8d33\",\n\t\"./input-validation-accessibility/fr.js\": \"8d33\",\n\t\"./region/RegionLang\": \"3dfb\",\n\t\"./region/RegionLang.js\": \"3dfb\"\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"5892\";\nmodule.exports = webpackAsyncContext;","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EstablishmentHeader.vue?vue&type=style&index=0&lang=scss&\"","import CovidScreeningMetadataLang from '@/lang/covid-screening-metadata/CovidScreeningMetadataLang';\nimport RegionMetadataLang from '@/lang/region/RegionLang';\nimport InputValidationAccessibilityLang from '@/lang/input-validation-accessibility/InputValidationAccessibilityLang';\n\nexport default {\n    fr: {\n        base: {\n            home: 'Accueil',\n            joinUs: 'Nous joindre',\n            btnSubmit: 'Soumettre',\n            btnSubmitAriaLabel: 'Soumettre et prendre le rendez-vous.',\n            close: 'J\\'ai compris',\n            delete: 'Supprimer',\n            print: 'Imprimer',\n            noData: 'Aucune données disponibles',\n            continue: 'Suivant',\n            previous: 'Précédent',\n            cancel: 'Annuler',\n            between: 'Entre',\n            yes: 'Oui',\n            no: 'Non',\n            na: 'Ne s\\'applique pas ou Je ne sais pas',\n            iDontKnow: 'Je ne sais pas',\n            noAnswer: 'Je prèfere ne pas répondre',\n            choice: 'Veuillez choisir',\n            timezone: 'Mon fuseau horaire : ',\n            establishmentTimeZone: 'Fuseau horaire :',\n            easternTime: 'Heure de l\\'Est',\n            atlanticTime: 'Heure de l\\'Atlantique',\n            zipCode: 'Code postal',\n            male: 'Masculin',\n            female: 'Féminin',\n            undefined: 'Non défini',\n            changeVaccineType: 'Changer de vaccin',\n            backToResults: 'Rétour aux résultats',\n            previousPage: 'Page précédente',\n            distanceWarning: 'Les distances affichées sont calculées en ligne droite et non selon un itinéraire.',\n            showMore: 'Plus de détails',\n            showLess: 'Moins de détails',\n            phonePrefix: 'Tel.',\n            phoneMask: '(###) ### - ####',\n            namMask: 'AAAA #### ####',\n            dateMask: '####-##-##',\n            shortPostalCodeMask: 'A#A',\n            postalCodeMask: 'A#A #A#',\n            faxPrefix: 'Fax.',\n            gapMode: 'Mode GAP',\n            errors: {\n                requiredField: 'Le champ est requis',\n                requiredFieldWithLabel: 'Le champ \"{fieldLabel}\" est requis',\n                requiredFieldsErrorList: 'Liste des champs requis en erreur :',\n                requiredFieldConsentForm: 'Le code de confirmation est obligatoire',\n                requiredTermsAndConditions: 'Vous devez accepter les termes et conditions',\n                requiredRecaptchaToken: 'Vous devez cocher la case \"Je ne suis pas un robot\"',\n                failed: 'Une erreur est survenue. Veuillez réessayer.',\n                requiredFields: 'Veuillez remplir tous les champs obligatoires',\n                cellPhone2short: 'Le numéro du cellulaire est incorrect',\n                phone2short: 'Le numéro de téléphone est incorrect',\n                invalidEmail: 'Le format du courriel est invalide',\n                invalidNam: 'Le numéro d\\'assurance maladie est invalide',\n                temporaryNAM: 'Le numéro d\\'assurance maladie est un numéro temporaire',\n                invalidUrl: 'Le format du lien Internet est invalide',\n                invalidZipCode: 'Code postal invalide',\n                invalidBirthday: 'La date de naissance est invalide',\n                invalidDate: 'La date est invalide',\n                invalidMonth: 'Le mois est invalide',\n                invalidName: 'Ce nom est invalide',\n                invalidComment: 'Les caractères spéciaux ne sont pas supportés',\n                zipcodeError: 'Le code postal n\\'a pu être localisé',\n                geolocShortPostcodeFormat: 'Le format du code postal n\\'est pas valide',\n                invalidConfirmationCode: 'Le format du code de confirmation n\\'est pas valide',\n                errorDialogTitle: 'Une erreur est survenue',\n                invalidEmployeeNumber: 'Le format du numéro d\\'employé n\\'est pas valide',\n                formQuestion: 'Vous devez répondre à cette question en sélectionnant l\\'une des options plus haut.',\n                invalidExtension: 'Le poste est invalide',\n                scannedRequestMaxSize: 'La taille limite de votre fichier ne doit pas dépasser 8 mégaoctets (MO)',\n                invalidDateRange: 'La date doit être entre le {minDate} et le {maxDate}',\n                travelInvalidDateRange: 'La date de départ du voyage doit être entre le {minDate} et le {maxDate}',\n                dateFuture: 'La date doit être dans le future',\n                travelDateFuture: 'La date de départ du voyage doit être dans le future',\n                pregnancyDateFuture: 'La date d\\'accouchement doit être dans le future',\n                datePast: 'La date doit être dans le passée',\n                invalidPrematureBirthWeeks: 'Le nombre de semaines doit être 1 et 32',\n            },\n            cookieConsent: {\n                message: 'Ce site utilise des témoins (Cookies) afin de vous offrir la meilleure expérience possible. Pour plus d\\'information, visitez notre: ',\n                linkLabel: 'Politique de protection des renseignements personnels et confidentiels',\n                buttonLabel: 'Ok',\n                urlPath: '/confidentialite',\n            },\n            accessibility: {\n                nextStep: 'Continuer à la prochaine étape',\n            },\n        },\n        header: {\n            accessibilitySkipToContentLink: 'Passer au contenu principal',\n            subtitle: 'Prise de rendez-vous en ligne',\n            tabs: {\n                takeAppt: 'Prendre un rendez-vous',\n                reminder: 'Programmer un rappel',\n                cancelAppt: 'Annuler un rendez-vous',\n            },\n            profile: {\n                menu: {\n                    myProfile: 'Mon Profil',\n                    disconnect: 'DÉCONNEXION',\n                },\n                loginText: 'Se connecter',\n                loggedText: 'Mon compte',\n                createMyAccount: 'Créer mon compte',\n            },\n            clicsante: {\n                title1: 'Réservez votre rendez-vous',\n                title2: ' santé dès maintenant!',\n                menu: {\n                    takeAppt: 'Prendre un rendez-vous',\n                    solution: 'Solution de prise de rendez-vous',\n                    cancelAppt: 'Annuler un rendez-vous',\n                    faq: 'FAQ',\n                    join: 'Nous Joindre',\n                    job: 'Offres d\\'emploi',\n                    terms: \"Modalités et conditions d'utilisation\",\n                    policy: 'Politique de confidentialité',\n                    cookiePolicy: 'Politique relative aux témoins de connexion',\n                    locale: 'FR',\n                },\n            },\n            logoutConfirmationModal: {\n                title: 'Déconnexion de mon compte Clic Santé',\n                text: 'Êtes-vous certain de vouloir vous déconnecter?',\n                cancel: 'Annuler',\n                logout: 'Oui, déconnectez-moi',\n            },\n        },\n        footer: {\n            website: 'Visiter notre site Web',\n            trimoz: {\n                depistage: 'depistage.clicsante.ca est un système de réservation de rendez-vous par Internet qui permet à la population d\\'obtenir rapidement et sans déplacement un coupon de réservation de rendez-vous.',\n                clicsante: 'clicsante.ca est un système de réservation de rendez-vous par Internet qui permet à la population d\\'obtenir rapidement et sans déplacement un coupon de réservation de rendez-vous.',\n                pharmaservices: 'Pharmaservices.ca est un système de réservation de rendez-vous par Internet qui permet à la population d\\'obtenir rapidement et sans déplacement un coupon de réservation de rendez-vous.',\n                pharmaprix: 'Seul(es) responsable(s) d\\'exercer la pharmacie',\n                uniprix: 'Les services en pharmacie présentés sur cette page vous sont offerts par les pharmaciens propriétaires affiliés à Uniprix. Les pharmaciens sont les seuls responsables de l’exercice de la pharmacie.',\n                allRightsReserved: 'Tous droits réservés',\n            },\n            terms: {\n                name: \"Modalités et conditions d'utilisation\",\n                path: 'termes-et-conditions'\n            },\n            policy: {\n                name: 'Politique de confidentialité',\n                path: 'confidentialite'\n            },\n            cookiePolicy: {\n                name: 'Politique relative aux témoins de connexion',\n                path: 'politique-temoins-connexion'\n            },\n            clicsante: {\n                mobileMenus: {\n                    takeAppt: 'Prendre<br/>un RDV',\n                    cancelAppt: 'Annuler<br/>un RDV',\n                    loginText: 'Se connecter',\n                    loggedText: 'Mon compte',\n                },\n            },\n        },\n        appt: {\n            accessibility: {\n                selectPlace: `Sélectionner %{placeName} localisé au %{address}.`,\n                unknowPlaceAddress: 'unknow localisation',\n                selectService: `Sélectionner %{serviceName}. Description du service: %{serviceDescription}`,\n                unknowServiceDescription: 'Aucune description trouvée.',\n                dateDescription: {\n                    default: `Sélectionnez pour prendre un rendez-vous en date du %{date} pour le service %{serviceName}.`,\n                },\n                timeDescription: {\n                    default: `Sélectionnez pour prendre un rendez-vous à %{time} en date du %{date} pour le service %{serviceName}.`,\n                    alternate: `Sélectionnez plutôt le rendez-vous à %{time} en date du %{date} pour le service %{serviceName}.`,\n                },\n                timeDescriptionSelected: {\n                    default: `Vous avez choisi de sélectionner le rendez-vous à %{time} en date du %{date} pour le service %{serviceName}.`,\n                },\n                stepsIntroduction: {\n                    default: 'Début des étapes de prise de rendez-vous%{serviceName} du %{establishmentName} %{selectedPlaceName} (%{establishmentType})%{formattedPlaceAddress}.',\n                    serviceName: ' pour le service %{serviceName}',\n                    formattedPlaceAddress: \" à l­'adresse %{formattedPlaceAddress}\",\n                },\n                continueButtonLabel: 'Passer à la prochaine étape pour poursuivre la prise de rendez-vous en date du {0} à {1} pour le service {2}.',\n                registrationOption: 'Étape facultative: vous pouvez vous connecter ou vous inscrire gratuitement au compte Clic Santé pour automatiquement pré-remplir le formulaire d\\'identification à chaque rendez-vous.',\n                profileCompletionOption: 'Étape facultative: vous pouvez compléter la création de votre compte Clic Santé pour pré-remplir le formulaire d\\'identification à chaque rendez-vous.',\n                noAvailable: 'n\\'y a plus',\n                available: 'y a',\n                availsCheck: 'Il {0} des rendez-vous disponibles pour le mois sélectionné {1}. {2}',\n                availsForMonthPrev: 'Appuyez sur la touche tab pour continuer or appuyez sur la touche entrée pour aller au mois précédent {0}',\n                availsForMonthNext: 'Appuyez sur la touche tab pour sélectionner une date dans le calendrier ou appuyez sur la touche entrée pour aller au mois suivant {0}',\n                noAvailsForMonthNext: 'Appuyez sur la touche entrée pour aller au mois suivant {0}',\n                fillFormA11yDirective: 'Afin de compléter le formulaire de prise de rendez-vous sans embûche, la navigation par la tabulation est recommandé. Appuyez sur TAB pour avancer d\\'un élément à un autre. Appuyez sur SHIFT et TAB pour revenir vers l\\'élément précédent. Pour les éléments à choix multiples, la navigation avec les flèches permet de passer d\\'un choix à l\\'autre. Appuyez sur le ENTRER ou ESPACE pour sélectionner le choix.',\n            },\n            docTitle: 'Prendre un rendez-vous',\n            answerQuestions: 'Répondez aux questions',\n            answeredQuestions: 'Questions',\n            chooseService: 'Sélectionnez un service',\n            chooseServiceSub: 'Veuillez choisir un service',\n            answerServiceFilters: 'Répondez aux questions',\n            answeredServiceFilters: 'Questions',\n            zipCodeFilter: 'Veuillez entrer votre code postal',\n            answeredZipCodeFilter: 'Code postal',\n            enterZipCode: 'Entrez votre code postal: ',\n            choosePlace: 'Sélectionnez le lieu',\n            choosePlaceSub: 'Veuillez choisir un lieu',\n            chooseMoment: 'Sélectionnez le moment',\n            stepProgresss: 'Étape @num sur @total',\n            currentStep: 'Étape actuelle',\n            completedStep: 'Étape complétée',\n            dataCollectionForm: 'Informations complémentaires',\n            dataCollectionAriaDescription: 'Votre rendez-vous a bien été réservé. Cette étape est facultative et permet au professionnel de mieux préparer votre rendez-vous',\n            at: ' à ',\n            to: ' au ',\n            details: 'Détails',\n            full: 'Complet',\n            previousMonth: 'Mois précédent',\n            nextMonth: 'Mois suivant',\n            chooseMomentSub: 'Veuillez choisir le moment de votre rendez-vous',\n            chooseTime: 'Veuillez choisir l\\'heure de votre rendez-vous',\n            nominativeData: 'Complétez votre réservation',\n            nominativeDataSub: 'Veuillez entrer vos informations',\n            description: 'Description :',\n            document: 'Voir le document d\\'information du service',\n            apptTime: 'Heure du rendez-vous',\n            apptTimeTitle: 'Sélectionner l\\'heure du rendez-vous',\n            apptDateTitle: 'Sélectionner la date du rendez-vous',\n            loadingTimeSlotsAriaMessage: 'Chargement de l\\'horaire en cours',\n            noMetaToDisplay: 'Aucune donnée nominative requise...',\n            duration: 'Durée :',\n            minutes: ' minutes',\n            price: 'Prix : ',\n            feesWillApply: 'Des frais s\\'appliqueront',\n            priceOnDemand: 'Prix sur demande',\n            freeOfCharges: 'Ce service est sans frais',\n            upcoming: 'À venir',\n            complete: 'Complet',\n            selectMonth: 'Sélectionnez le mois',\n            serviceAvailable: 'Service disponible',\n            serviceNotAvailable: 'Pas de service disponible',\n            topOfStepperForm: 'Début du formulaire multi-étapes',\n            targetVaccine: 'La cible de vaccination recommandée pour votre enfant est du ',\n            targetPregnancy: 'La période cible recommandée pour prendre votre rendez-vous est du ',\n            scannedRequest: 'Prenez une photo en format JPG/PNG ou scannez votre demande au format PDF afin de l\\'envoyer avec votre rendez-vous. Taille limite acceptée: 8 mégaoctets (MO)',\n            skipNAM: 'Je confirme que je n\\'ai pas de Numéro d\\'assurance maladie du Québec. Je m\\'assure de fournir l\\'information complémentaire la plus juste possible pour qu\\'on puisse m\\'identifier correctement.',\n            tooltips: {\n                number: 'Vous pouvez prendre plus d\\'un rendez-vous à la fois',\n                time: 'Veuillez choisir l\\'heure du rendez-vous',\n                clickToSee: 'Cliquez pour voir les détails du service',\n                clickToSeePlaceDetails: 'Cliquez pour voir l\\'adresse du lieu',\n                scannedRequest: 'Il est de votre responsabilité de s\\'assurer de la qualité de l\\'image soumise.<br /><br />Conseils pour prendre la photo:<br />- Placez la requête à plat sur une surface foncée et non réfléchissante<br />- Assurez-vous qu\\'il y a suffisamment de lumière<br />- Assurez-vous que l\\'image est nette et que toute l\\'information apparaisse clairement<br /><br />Inspectez la qualité de l\\'image avant de la soumettre.',\n            },\n            dayStatus: {\n                availabilities: 'Disponibilités',\n                toCome: 'À venir',\n                complete: 'Complet',\n                kidsAvailabilitiesInsideDelay: 'Période cible',\n                kidsAvailabilitiesInsideTolerance: 'Période hors cible',\n                kidsAvailabilitiesOutsideTolerance: 'Disponibilités en dehors de la tolérance',\n            },\n            notifications: {\n                deleteSuccess: 'Le rendez-vous à été supprimé',\n                addSuccess: 'Le rendez-vous a été ajouté avec succès',\n                failed: 'Une erreur est survenue. Veuillez réessayer.',\n                dataCollectionForm: 'Veuillez compléter les informations complémentaires qui seront consultées par votre pharmacien.ne avant votre consultation. Cela permet de valider votre éligibilité aux soins et d\\'accélérer votre accès auprès du professionnel de la santé.'\n            },\n            placeholder: {\n                email: 'Inscrire votre courriel',\n                confirmEmail: 'Validation de votre courriel',\n                cellphone: 'Inscrire votre numéro de téléphone cellulaire',\n                firstName: 'Inscrire le prénom du patient',\n                lastName: 'Inscrire le nom de famille du patient',\n                phone: 'Inscrire votre numéro de téléphone',\n                birthday: 'Inscrire la date de naissance du patient',\n                requester_link_0: 'Moi-même',\n                requester_link_1: 'Une autre personne ou pour un autre patient',\n                requester_name: 'Entrez le nom de la personne qui complète la réservation',\n                consentFormConfirmationCode: 'Veuillez saisir le code de confirmation de votre formulaire de consentement',\n                address: 'Inscrire l\\'adresse du patient incluant la rue, le numéro d\\'appartement, la ville et le code postal',\n                employeeNumber: 'Numéro unique qui vous identifie chez votre employeur',\n                employerName: 'Entrez le nom de votre employeur',\n                workLocation: 'Entrez le lieu de votre travail',\n                jobTitle: 'Entrez le titre de votre emploi',\n                employeeRegion: 'Entrez la région de l\\'employeur (RSS)',\n                employeeEstablishment: 'Entrez l\\'établissement de l\\'employeur',\n                employeeCategory: 'Entrez la catégorie d\\'employé',\n            },\n            hints: {\n                cellphone: 'Entrez votre numéro de cellulaire si vous désirez recevoir des notifications par SMS (Des frais de messageries standard peuvent s\\'appliquer)',\n            },\n            labels: {\n                employerRegion: 'Region de l\\'employeur',\n            },\n            errors: {\n                apptDate: 'Vous devez saisir la date',\n                apptTime: 'L\\'heure du rendez-vous est obligatoire',\n                phone: 'Le téléphone est requis',\n                cellphone: 'Le téléphone cellulaire est requis',\n                email: 'Le courriel est requis',\n                confirmEmail: 'La confirmation du courriel est requise',\n                emailValid: 'Le format du courriel est non valide',\n                first_name: 'Le prénom est requis',\n                last_name: 'Le nom est requis',\n                birthday: 'La date de naissance est requise',\n                birthdayValid: 'La date de naissance est non valide',\n                sendByEmail: 'Le courriel est requis pour envoyer le message',\n                sendBySMS: 'Le téléphone cellulaire est requis pour envoyer le SMS',\n                invalidAppointmentCount: 'Vous dépassez le nombre de rendez-vous disponibles',\n                atLeastOneRequired: 'Vous devez prendre au moins un rendez-vous',\n                noAvailability: 'Il n\\'y a plus de disponibilité pour la recherche effectuée',\n                emailNoMatch: 'Les champs «Courriel» et «Confirmation du courriel» doivent être identiques',\n                dynamicServiceFilters: 'Aucun service correspondant trouvé',\n                pregnancy_dpa: 'La date prévue d\\'accouchement est requise',\n                optinNewServiceList: 'Veuillez entrer votre courriel pour recevoir nos notifications de service',\n                comments: 'Les commentaires sont requis',\n                resident_first_name: 'Le prénom du résident requis',\n                resident_last_name: 'Le nom de famille du résident requis',\n                resident_room_number: 'Numéro de chambre du résident requis',\n                resident_birthday: 'Date de naissance du résident requise',\n                scanned_request: 'Le document numérisé est requis',\n                requester_link: 'Vous devez indiquer pour qui est le rendez-vous',\n                requester_name: 'Vous devez entrer le nom de la personne qui effectue la réservation',\n                travelerCount: 'Le nombre de voyageur doit être compris entre %min% et %max%',\n                nam: 'Le champs est requis. Vous devez saisir un Numéro d\\'assurance maladie du Québec valide ou Cocher la case si vous ne détenez pas de numéro d\\'assurance maladie du Québec.',\n            },\n            ah635: {\n                healthProblems: 'Avez-vous eu la COVID-19, des symptômes de la COVID-19 ou avez-vous remarqué un changement récent dans votre état de santé?',\n                immunosuppression: 'Êtes-vous dans l’une des deux situations suivantes :' +\n                    '<div class=\"pl-4 pb-0\">A. Vous prenez des médicaments immunodépresseurs.' +\n                    '<br/>B. Vous souffrez d\\'une maladie qui affaiblit votre système immunitaire, comme un cancer.</div>',\n                allergicReactions: 'Avez-vous déjà fait une réaction allergique ayant nécessité une visite à l’hôpital?',\n                pregnancyQuestion: '<strong class=\"font-weight-black\">Si vous êtes une femme,</strong> êtes-vous présentement enceinte?',\n                bleedingDisorder: 'Avez-vous un problème de coagulation du sang ou prenez-vous des médicaments qui éclaircissent le sang?',\n                immunization: 'Êtes-vous dans la situation suivante ' +\n                    '<div class=\"pl-4 pb-0\">A. Vous avez été hospitalisé et avez reçu un traitement contre la COVID dans les 90 derniers jours?</div>',\n            },\n            as624: {\n                healthProblemsQuestion: 'Y-a-t-il des changements dans votre état de santé, par rapport à votre état habituel ?',\n                immunosuppressionQuestion: 'Avez-vous un affaiblissement du système immunitaire en raison d’une maladie ou d’un médicament pris actuellement ?',\n                allergicReactionsQuestion: 'Est-ce que l’<strong class=\"font-weight-black\">une</strong> des situations suivantes s’applique à vous ?' +\n                                '<br/>- Vous avez déjà eu une réaction allergique grave qui a nécessité des soins médicaux d’urgence' +\n                                '<br/>- Vous avez déjà eu, après l’administration d’un vaccin, une réaction assez grave qui a nécessité une consultation médicale',\n                bleedingDisorderQuestion: 'Avez-vous des troubles de la coagulation nécessitant un suivi médical ou la prise d’anticoagulants ?',\n                hasBloodTransfusionQuestion: 'Avez-vous reçu une transfusion sanguine ou une injection d’immunoglobulines au cours des 11 derniers mois ?',\n                pregnancyQuestion: '<strong class=\"font-weight-black\">Si vous êtes une femme</strong>, êtes-vous enceinte ?',\n                lessThanSixMonthsMotherTreatmentQuestion: 'Si le patient est un enfant âgé de moins de six mois, la mère a-t-elle pris, pendant la grossesse, un agent biologique (ex. : Enbrel, Remicade, Humira) pour le traitement d’une maladie auto-immune (ex. : maladie de Crohn, polyarthrite rhumatoïde, lupus ou psoriasis) ?',\n            },\n            priorityGroup: {\n                healthWorker: 'Je suis un professionnel de la santé (incluant les stagiaires) d’une clinique privée',\n                informalCaregiver: 'Je suis un proche aidant',\n                childcareWorker: 'Je suis un travailleur dans un service éducatif à la petite enfance reconnu ou dans un service de garde d\\'une école',\n                essentialHealthWorker: 'Je suis un employé travaillant dans un milieu à risque identifié par la santé publique',\n                chronicDisease: 'Je suis une personne atteinte d’une maladie chronique ou un problème de santé augmentant le risque de complications de la COVID-19',\n                handicapped: 'Je suis une personne présentant une incapacité motrice, intellectuelle, de la parole, du langage, visuelle, auditive ou associée à d’autres sens ou un trouble du spectre de l’autisme.',\n                handicappedAccompagnator: 'Je suis un proche aidant accompagnant une personne présentant une incapacité motrice, intellectuelle, de la parole, du langage, visuelle, auditive ou associée à d’autres sens ou un trouble du spectre de l’autisme.',\n                pregnantWoman: 'Je suis enceinte.',\n                dayCampWorker: 'Je suis un employé travaillant dans un camp de vacances ou dans un camp de jour',\n                seniorsResidence: 'Je suis résident d’un CHSLD ou d’une résidence pour personnes âgées',\n                publicHealthWorker: 'Je suis un travailleur de la santé et des services sociaux du réseau public ou du secteur privé',\n                schoolWorker: 'Je suis un travailleur dans un milieu scolaire',\n                astra45: 'Je suis une personne qui a reçu 2 doses d’Astra Zeneca ou de Covishield',\n                nothing: 'Je fais partie du groupe d\\'âge à vacciner',\n                nothing12: 'Je suis une personne âgée de 12 ans et plus',\n                nothing14: 'Je suis une personne âgée de 14 ans et plus',\n                nothing18: 'Je suis une personne âgée de 18 ans et plus',\n                nothing25: 'Je suis une personne âgée de 25 ans et plus',\n                nothing30: 'Je suis une personne âgée de 30 ans et plus',\n                nothing35: 'Je suis une personne âgée de 35 ans et plus',\n                nothing40: 'Je suis une personne âgée de 40 ans et plus',\n                nothing45: 'Je suis une personne âgée de 45 ans et plus',\n                nothing50: 'Je suis une personne âgée de 50 ans et plus',\n                nothing55: 'Je suis une personne âgée de 55 ans et plus',\n                nothing60: 'Je suis une personne âgée de 60 ans et plus',\n                nothing65: 'Je suis une personne âgée de 65 ans et plus',\n                nothing70: 'Je suis une personne âgée de 70 ans et plus',\n                nothing75: 'Je suis une personne âgée de 75 ans et plus',\n                nothing80: 'Je suis une personne âgée de 80 ans et plus',\n                requiresConsent: 'Je prends rendez-vous pour un enfant de 12 ou 13 ans',\n                immunocompromised: 'Je suis une personne immunodéprimée ou dialysée.',\n                rpa: 'Je suis une personne qui réside dans un CHSLD ou une résidence privée pour aînés.',\n                title: 'Êtes-vous dans l\\'une des situations suivantes :',\n                hint: 'Assurez-vous de valider votre éligibilité si vous êtes un travailleur de la santé du secteur privé, un travailleur essentiel ou si vous êtes atteint d’une maladie chronique.',\n                vaccineArn: 'J’ai reçu 2 doses d’Astra Zeneca ou de Covishield suivies d’un vaccin à ARN messager (Moderna ou Pfizer)',\n                none: 'Aucune des suivantes précédentes ne s’applique à moi',\n                genericVaccine: {\n                    title: 'Cochez la catégorie qui s’applique à vous :',\n                    ageGroupIdentified: 'Je suis une personne âgée de %MIN_AGE_FOR_BOOKING% ans et plus',\n                    immunocompromised: 'Je suis une personne immunodéprimée âgée de 18 ans ou plus',\n                },\n            },\n            influenza: {\n                healthStatus: 'Est-ce que l’une des situations suivantes s\\'applique à vous :' +\n                    '<div class=\"pl-4 pb-0\">A. Vous avez remarqué un changement récent dans votre état de santé.' +\n                    '<br/>B. Vous souffrez d’asthme.' +\n                    '<br/>C. Vous présentez des sécrétions nasales importantes.' +\n                    '<br/>D. Vous prenez un médicament qui traite ou prévient les accidents vasculaires cérébraux qui surviennent en raison de caillots de sang.</div>',\n                isImmunosuppressive: 'Êtes-vous dans l’une des deux situations suivantes :' +\n                    '<div class=\"pl-4 pb-0\">A. Vous prenez des médicaments immunodépresseurs.' +\n                    '<br/>B. Vous souffrez d\\'une maladie qui affaiblit votre système immunitaire, comme un cancer.',\n                hasSevereReaction: 'Avez-vous déjà fait une réaction importante après avoir reçu un vaccin ou un autre produit ayant nécessité une visite à l’hôpital?</div>',\n                isPregnant: 'Si vous êtes une femme, êtes-vous présentement enceinte?',\n                receivedVaccineLastMonth: 'Avez-vous reçu un vaccin au cours du dernier mois?',\n                hasImmunocompromisedContact: 'Êtes-vous en contact étroit avec une personne immunodéprimée?',\n                peopleWhoLiveWithMe: 'Vivez-vous avec ?' +\n                    '<div class=\"pl-4 pb-0\">A. Un enfant de moins de 6 mois.' +\n                    '<br/>B. Une personne de 75 ans et plus.' +\n                    '<br/>C. Une femme enceinte au 2e ou 3e trimestre.' +\n                    '<br/>D. Avec une personne atteinte d’une maladie chronique ?</div>',\n                hasBloodTransfusion: 'Avez-vous reçu une transfusion sanguine ou des immunoglobulines au cours des 11 derniers mois?',\n                receivedPneumococcalVaccine: 'Avez-vous déjà reçu un vaccin contre le pneumocoque ?',\n                isHealthCareWorker: 'Êtes-vous un travailleur de la santé ?',\n                receivedShinglesVaccine: 'Avez-vous déjà reçu un vaccin contre le zona ?',\n            },\n            vaccineApprehension: {\n                title: 'Veuillez indiquer quelle situation s\\'applique à vous : ',\n                yes: 'J’ai des appréhensions face à la vaccination (exemple : j’ai peur des aiguilles)',\n                no: 'Je n’ai pas d’appréhensions face à la vaccination',\n            },\n            coveredRamq: {\n                title: 'Cochez la catégorie qui s’applique à vous :',\n                child6MonthTo17Years: 'Enfant de 6 mois à 17 ans atteint de maladie chronique',\n                adultChronicDisease: 'Adulte atteint de maladie chronique, incluant les femmes enceintes quelque soit le trimestre',\n                pregnant: 'Femme enceinte au 2e et 3e trimestre (14e semaine et plus)',\n                person75AndMore: 'Personne âgée de 75 ans et plus',\n                child6MonthTo23Month: 'Enfant âgé entre 6 et 23 mois',\n                person60To74: 'Personne âgée de 60 à 74 ans',\n                caregiver: 'Aidant naturel ou personne qui habitant sous le même toit qu’un enfant de moins de 6 mois ou qu’une personne à risque élevé d\\'hospitalisation ou de décès',\n                healthCareWorker: 'Travailleur de la santé',\n                none: 'Je ne sais pas ou aucune de ces catégories ne s’applique au patient',\n            },\n            civilStatusLabel: {\n                single: 'Célibataire',\n                divorced: 'Divorcé(e)',\n                married: 'Marié(e)',\n                'common-law': 'Conjoint(e) de fait',\n                separated: 'Séparé(e)',\n                widowed: 'Veuf(ve)',\n            },\n            coadminInjection: {\n                title: 'Quels vaccins souhaitez-vous recevoir lors de votre rendez-vous?',\n                option1: 'Vaccins contre la COVID-19 et la grippe',\n                option2: 'Vaccin contre la COVID-19 uniquement',\n                option3: 'Vaccin contre la grippe uniquement',\n            },\n            relationshipListLabel: {\n                father2: 'Père2',\n                friend: 'Ami(e)',\n                other: 'Autre',\n                'brother-in-law': 'Beau-frère',\n                stepmother: 'Belle-mère',\n                stepfather: 'Beau-père',\n                'sister-in-law': 'Belle-soeur',\n                joint: 'Conjoint(e)',\n                daughter: 'Fille',\n                son: 'Fils',\n                brother: 'Frère',\n                grandmother: 'Grand-mère',\n                grandfather: 'Grand-père',\n                mother: 'Mère',\n                nephew: 'Neveu',\n                niece: 'Nièce',\n                'little-girl': 'Petite-fille',\n                grandson: 'Petit-fils',\n                dad: 'Père',\n                sister: 'Soeur',\n                mother2: 'Mère2',\n            },\n            establishment: {\n                type: {\n                    pharmacie: 'Pharmacie',\n                    clinique_privee: 'Clinique privée',\n                    etablissement_de_sante: 'Établissement de santé',\n                    demo: 'démo',\n                },\n            },\n        },\n        coupon: {\n            thanks: 'Merci d\\'avoir pris un rendez-vous !',\n            title: 'Confirmation de rendez-vous',\n            number: 'Rendez-vous : ',\n            service: 'Service : ',\n            resource: 'Avec : ',\n            date: 'Quand : ',\n            hour: 'Heure : ',\n            price: 'Prix : ',\n            place: 'Lieu : ',\n            address: 'Adresse : ',\n            placeInstructions: 'Message important :',\n            instructions: 'Consignes :',\n            additionalInformation: 'Informations supplémentaires :',\n            sendByEmail: 'Envoyer par courriel',\n            sendBySMS: 'Envoyer par SMS',\n            confirmEmail: 'Vous recevrez ce coupon de confirmation par courriel à',\n            confirmSMS: 'Vous recevrez une confirmation par SMS au',\n            reminderEmail: 'avant votre rendez-vous, vous recevrez un rappel par courriel à',\n            reminderSMS: 'avant votre rendez-vous, un rappel par texto sera envoyé au',\n            virtualReminder: ' avant le rendez-vous, vous recevrez un courriel qui contiendra l\\'hyperlien pour rejoindre la salle d\\'attente virtuelle.',\n            smsSent: 'Le SMS a été envoyé',\n            backToApptBooking: 'Retour à l\\'Accueil',\n            scannedRequest: 'Document numérisé :',\n            totalApptBooked: 'Nombre de rendez-vous réservés :',\n            nextApptBookNotif: 'Le {date}, vous receverez un rappel pour prendre un rendez-vous pour le service: {service}',\n            cancelCouponTitle: 'Précédent rendez-vous annulé avec succès !',\n            takeAnotherAppt: {\n                title: 'Réserver un autre rendez-vous',\n                text: 'Pour réserver un rendez-vous pour un accompagnateur ou un proche résidant au même lieu, cliquez sur ce bouton pour compléter la réservation rapidement.',\n                btn: 'Prendre un autre rendez-vous',\n            },\n            createProfile: 'Créez un profil Clic Santé',\n            whyCreateProfile: 'Pourquoi créer un profil ?',\n        },\n        profileAdvantage: {\n            title: 'Bonifiez votre expérience : Créez votre profil Clic Santé !',\n            subtitle: 'Profitez de plusieurs avantages exclusifs :',\n            actionBtn: 'Créer un compte gratuitement',\n            advantage1: 'Visualiser l’historique de vos rendez-vous passés',\n            advantage2: 'Gardez un oeil sur vos rendez-vous à venir',\n            advantage3: 'Modifiez vos données personnelles et coordonnées en un seul endroit',\n        },\n        reminder: {\n            title: 'Programmer un rappel pour vos prochains rendez-vous',\n            reminderInfo: 'Information sur le rappel',\n            remindersInfo: 'Information sur les rappels',\n            maxDate: 'Date maximale : ',\n            addChild: 'Ajouter un rappel',\n            submitSuccess: 'Rappels ajoutés avec succès',\n        },\n        cancel: {\n            cancelTitle: 'Entrez votre numéro de confirmation dans la zone de texte suivante et cliquez sur le bouton \"Annuler mon rendez-vous\".',\n            cancelSingleTitle: 'Informations sur votre rendez-vous :',\n            cancelMultipleTitle: 'Nous avons détecté que les rendez-vous suivants ont été pris en même temps. Cochez les coupons que vous désirez annuler:',\n            couponLostTitle: 'Vous avez perdu votre numéro de confirmation? Vous pouvez retrouver vos rendez-vous à venir à partir de votre courriel.',\n            unableToCancel: 'Vous ne parvenez pas à annuler votre rendez-vous? Merci d\\'appeler votre centre de santé afin d\\'obtenir une assistance.',\n            couponNumber: 'Numéro de coupon',\n            appointmentDate: 'Date du rendez-vous',\n            appointmentDateRequired: 'La date du rendez-vous est requise',\n            groupUuidFromEmail: 'Numéro d\\'identification',\n            couponNumberRequired: 'Le numéro de coupon est requis',\n            cancelMyAppointment: 'Annuler mon rendez-vous',\n            cancelMyAppointments: 'Annuler mes rendez-vous',\n            getMyAppointment: 'Envoyez-moi un rappel de mes rendez-vous',\n            keepMyAppointments: 'Conserver mes rendez-vous',\n            keepMyAppointment: 'Conserver mon rendez-vous',\n            cancelSuccess: 'Rendez-vous annulé avec succès',\n            couponLostSuccess: 'Courriel envoyé avec succès',\n            couponLostSuccessNoContent: 'Aucun rendez-vous relié à ce courriel',\n            errors: {\n                invalidCouponNumber: 'Numéro de coupon invalide',\n                appointmentDateInvalid: 'Date du rendez-vous invalide',\n                couponNotAssociated: 'Aucun rendez-vous associé à ce coupon',\n            },\n            accessibility: {\n                prefilledCouponNumber: 'Le numéro de coupon a été prérempli depuis votre courriel de rendez-vous',\n                prefilledAppointmentDate: 'La date du rendez-vous a été préremplie depuis votre courriel de rendez-vous',\n                apptToBeCancelled: 'Cliquez pour annuler le rendez-vous en date du {0} à {1} pour le service {2}.',\n            },\n        },\n        confirm: {\n            confirmSuccess: 'Rendez-vous confirmé avec succès',\n        },\n        joinUs: {\n            title: 'Nous Joindre',\n            byPhone: 'Par téléphone :',\n            byMail: 'Par courriel : Veuillez remplir le formulaire ci-dessous',\n            send: 'Envoyer',\n        },\n        form: {\n            fieldIsRequired: 'Le champ {0} est requis',\n            required: 'requis',\n            optional: 'optionnel',\n            ownerTermsText: '* Je comprends et accepte les <a href=\"{0}\" target=\"_blank\">Modalités et conditions d’utilisation</a> et confirme avoir {1} ans ou plus.',\n            otherTermsText: '* Le patient (ou le tuteur si le patient a moins de {1} ans ou est inapte) comprend et accepte les <a href=\"{0}\" target=\"_blank\">Modalités et conditions d’utilisation</a>.',\n            preTermsText: '* J\\'ai  ans ou plus et j\\'accepte les',\n            prePolicyText: 'et la',\n            terms: 'Termes et Conditions',\n            policy: 'Politique de Protection des Renseignements Privés',\n            termsLink: '/termes-et-conditions',\n            policyLink: '/confidentialite',\n            optinNewServiceList: 'Avertissez-moi lorsque de nouveaux services sont disponibles dans ma région',\n            ownerConsentCollectData: '* Je comprends et accepte que mes renseignements personnels soient communiqués en conformité avec la <a href=\"{0}\" target=\"_blank\">Politique de confidentialité</a>.',\n            otherConsentCollectData: '* Le patient (ou le tuteur si le patient a moins de 14 ans ou est inapte) comprend et accepte que ses renseignements personnels soient communiqués en conformité avec la <a href=\"{0}\" target=\"_blank\">Politique de confidentialité</a>.',\n            ownerConsentReceiveMarketing: 'Je consens à recevoir des communications commerciales électroniques de la part de Trimoz par SMS et par courriel. Ces communications peuvent notamment inclure l’ajout de nouveaux services dans votre région. Je comprends que je peux me désabonner à tout moment.  Trimoz se réserve le droit d’envoyer des courriels opérationnels concernant leurs services.',\n            otherConsentReceiveMarketing: 'Le patient consent à recevoir des communications commerciales électroniques de la part de Trimoz par SMS et par courriel. Ces communications peuvent notamment inclure l’ajout de nouveaux services dans votre région. Je comprends que je peux me désabonner à tout moment.  Trimoz se réserve le droit d’envoyer des courriels opérationnels concernant leurs services.',\n            birthDate: 'Date de naissance du patient',\n            vaccine: ' Vaccin',\n            reminderDate: 'Date du rappel',\n            firstName: 'Prénom du patient',\n            lastName: 'Nom du patient',\n            phone: 'Téléphone',\n            email: 'Courriel',\n            message: 'Votre message',\n            age: 'Âge',\n            status: 'Statut',\n            ramq: 'RAMQ',\n            adult: 'Adulte',\n            child: 'Enfant',\n            receiveSMSConfirmation: 'Recevoir la confirmation par SMS',\n            selectNam: 'Choisir le patient',\n            consentHints: {\n                warning: 'SUIVEZ LES INSTRUCTIONS CI-DESSOUS JUSQU\\'À LA FIN POUR OBTENIR VOTRE CODE DE CONFIRMATION DU FORMULAIRE DE CONSENTEMENT.',\n                bullet1: '<strong class=\"font-weight-black\"><a href=\"https://access.eforms.pharmaprix.ca/flu\" target=\"_blank\" class=\"consent-form-link\"><span style=\"color: #cc0a00;\">Remplir votre formulaire de consentement</span></a>.</strong> Le code vous sera envoyé par courriel ou message texte/SMS dès que vous aurez complété le formulaire.',\n                bullet2: 'Utilisez le même numéro de téléphone dans votre demande de rendez-vous et lorsque vous remplissez le formulaire de consentement.',\n                bullet3: 'Après avoir récupéré votre code de confirmation (courriel ou SMS), revenez dans cette fenêtre pour saisir le code dans le champ ci-dessus.',\n                thanks: '<strong class=\"font-weight-black\">Merci de remplir le formulaire. Cela nous permettra d’assurer votre sécurité lors de la réception de votre vaccin contre la grippe.</strong>',\n            },\n            delegatedPiConsent: '* Je confirme être autorisé légalement à fournir ces renseignements personnels ou avoir obtenu l\\'autorisation de la personne concernée.',\n            travelerCountHint: 'La configuration autorise exactement %traveler% voyageur(s) par rendez-vous',\n            confirmEmail: 'Confirmation du courriel',\n            multiApptLabel: 'Nombre de rendez-vous désiré',\n            firstVirtualAppointment: 'Il s\\'agit de mon premier rendez-vous virtuel',\n            hasntVirtualAccount: 'Cliquer ici si vous n\\'avez pas de compte Reacts',\n            appointmentOnReacts: 'Le rendez-vous virtuel aura lieu sur la plateforme ',\n            appointmentOnReacts2: '. Vous receverez par courriel les détails pour vous préparer au rendez-vous virtuel.',\n            warningNamExpired: \"Vous êtes sur le point de soumettre une carte d'assurance maladie expirée\",\n            virtualAccountSelect: {\n                label: 'Choisissez l\\'option pour votre compte Reacts',\n                items: {\n                    true: 'Je possède un compte Reacts',\n                    false: 'Je ne possède pas de compte Reacts',\n                },\n            },\n            reactsRegisterMailInfo: 'Un courriel vous sera envoyé par Reacts afin de compléter la création de votre compte.',\n            covid195To11ConfirmConsentToVaccine: {\n                title: 'CONSENTEMENT (DÉCISION) DU PARENT OU DU TUTEUR',\n                text: '<p class=\"mb-2\">Comme parent ou tuteur d\\'un enfant de moins de 14 ans, vous devez prendre les décisions relatives à sa vaccination.</p>' +\n                    '<p class=\"mb-2\">Les explications vous permettant de prendre une décision éclairée vous ont été fournies et son disponible dans le courriel qui a été envoyé par l\\'école de votre enfant.</p>' +\n                    '<p class=\"mb-2\">Lorsque vous donnez votre consentement, il s\\'applique également à la deuxième dose du vaccin à ARN messager contre la COVID-19 (Pfizer) si applicable.</p>' +\n                    '<p class=\"mb-2\">Si votre enfant a déjà eu un test positif à la COVID-19, le vaccinateur décidera du nombre de doses requises après évaluation. Dans ce cas, il est possible qu\\'une seule dose soit nécessaire.</p>' +\n                    '<p class=\"mb-2\"><strong>Indiquez si vous acceptez ou si vous refusez que votre enfant soit vacciné contre la COVID-19 avec le vaccin à ARN messager contre la COVID-19 (Pfizer).</strong></p>' +\n                    '<p>À tout moment, vous pouvez modifier votre consentement. Pour modifier votre consentement, vous devez contacter le CISSS ou CIUSSS de votre région.</p>',\n                refuse: 'JE REFUSE que mon enfant soit vacciné contre la COVID-19',\n                refuseError: 'Vous devez consentir à la vaccination de votre enfant pour compléter la réservation.',\n            },\n            covid195To11ConfirmReadDocument: {\n                label: 'J’ai pris connaissance du feuillet intitulé « ' +\n                    '<a href=\"https://www.quebec.ca/sante/problemes-de-sante/a-z/coronavirus-2019/deroulement-vaccination-contre-la-covid-19/vaccination-jeunes\" target=\"_blank\">' +\n                    'Vaccination contre la COVID-19 pour les jeunes âgés de 5 à 11 ans' +\n                    '</a>» qui est fourni par le ministère de la Santé et des Services sociaux et déclare avoir bien ' +\n                    'compris les renseignements qu’il contient et avoir obtenu les informations appropriées concernant' +\n                    'les avantages et les risques reliés à la vaccination contre la COVID-19 ainsi que les risques de ' +\n                    'ne pas se faire vacciner.',\n            },\n            patientSelector: {\n                otherPatient: 'Autre patient',\n            },\n            errors: {\n                piConsentRequired: 'Le consentement est requis',\n                birthDate: 'La date de naissance du patient est requise',\n                birthDateFormat: 'La date de naissance est invalide',\n                dateFormat: 'La date est invalide',\n                vaccine: 'Le vaccin est requis',\n                reminderDate: 'La date du rappel est requise',\n                reminderDateFormat: 'La date du rappel est invalide',\n                email: 'Le courriel est requis',\n                emailFormat: 'Le courriel est invalide ',\n                firstName: 'Le prénom du patient est requis',\n                lastName: 'Le nom de famille du patient est requis',\n                phone: 'Le téléphone est requis',\n                phoneFormat: 'Le téléphone est invalide',\n                message: 'Le message est requis',\n                virtual_account: 'Le courriel associé au compte Reacts est requis',\n            },\n            phxCovidScreeningReasonQuestion: 'Veuillez indiquer la raison du dépistage :',\n            phxCovidExperiencingSymptomQuestion: 'Présentez-vous actuellement l’un ou l’autre des symptômes suivants ?',\n            phxCovidAskedToGetAScreeningTestQuestion: 'Un médecin, un professionnel de la santé ou une autorité de santé publique vous a-t-il demandé de faire un test de dépistage ?',\n            phxCovidTravelledAndAdvisedToQuarantineQuestion: ' Au cours des 14 derniers jours, avez-vous voyagé à l’extérieur du Canada ET été avisé de vous mettre en quarantaine conformément aux exigences <a target=\"_blank\" href=\"%domain%\">fédérales en matière de quarantaine</a>?',\n            phxCovidReceivedPositiveExposureNotificationQuestion: 'Au cours des 14 derniers jours, avez-vous reçu une notification d’exposition par l’application <strong>Alerte COVID</strong> ou un avis d’un contact qui a testé positif? <br/>Si vous avez déjà fait un test PCR et que vous avez obtenu un résultat négatif, sélectionnez « Non ».',\n            phxCovidReceivedPositivePcrTestQuestion: 'Avez-vous reçu un résultat <strong>positif</strong> au test PCR pour la COVID-19 au cours des 90 derniers jours?',\n            phxCovidScreeningReason0: 'Voyage',\n            phxCovidScreeningReason0Note: ' (Veuillez lire l\\'énoncé dans l\\'encadré gris ci-dessous)',\n            phxCovidScreeningReason1: 'En guise de précaution, mais je confirme que je n’ai pas de symptômes',\n            phxCovidScreeningReason2: 'Autres raisons, mais je confirme que je n’ai pas de symptômes',\n            phxCovidScreeningReasonHint: 'Il est de la responsabilité du voyageur de vérifier les exigences en matière du type de test de dépistage de la COVID-19 avec les pays/états/provinces visités (incluant les escales) ainsi que la compagnie aérienne. Certaines exigences pour le transit sont applicables.',\n            phxCovidExperiencingSymptom0: 'fièvre',\n            phxCovidExperiencingSymptom1: 'perte soudaine de l’odorat sans congestion nasale (avec ou sans perte de goût)',\n            phxCovidExperiencingSymptom2: 'grande fatigue',\n            phxCovidExperiencingSymptom3: 'perte d’appétit importante',\n            phxCovidExperiencingSymptom4: 'douleurs musculaires généralisées',\n            phxCovidExperiencingSymptom5: 'mal de tête',\n            phxCovidExperiencingSymptom6: 'toux (nouvelle ou aggravée)',\n            phxCovidExperiencingSymptom7: 'essoufflement, difficulté à respirer',\n            phxCovidExperiencingSymptom8: 'mal de gorge',\n            phxCovidExperiencingSymptom9: 'écoulement nasal associé à un autre symptôme de la COVID-19',\n            phxCovidExperiencingSymptom10: 'nausées',\n            phxCovidExperiencingSymptom11: 'vomissements',\n            phxCovidExperiencingSymptom12: 'diarrhée',\n            phxCovidExperiencingSymptom13: 'maux de ventre',\n            phxCovidContactWithCovid19PositivePersonHint: 'Si vous avez déjà fait un test PCR et que vous avez obtenu un résultat négatif, sélectionnez « Non ».',\n            phxCovidScreeningConsentHint: 'Avant de procéder au test antigénique de dépistage rapide, il est important de comprendre les points suivants :',\n            phxCovidScreeningConsentPoint1: 'L’utilisation de cette méthode de dépistage chez les personnes ne présentant pas de symptômes est indiquée par le manufacturier, bien que pas approuvée par Santé Canada.',\n            phxCovidScreeningConsentPoint2: 'Une personne ne présentant pas de symptômes et ne rencontrant pas les critères pour passer un test PCR, pourra décider de passer ce type de test afin de rencontrer une exigence relative à un voyage ou en guise de précaution avant d\\'ajouter des gens dans son cercle de contacts (pour revoir les situations où il est plutôt recommandé de <a target=\"_blank\" href=\"%consentDomain%\" data-testid=\"link1\">faire un test de dépistage dans un centre de dépistage du gouvernement</a>).',\n            phxCovidScreeningConsentPoint3: 'Le test de dépistage rapide des antigènes est différent du test PCR. Ce test de dépistage est moins sensible que le test PCR et fournit des résultats préliminaires en fonction de l’heure à laquelle il a été effectué.',\n            phxCovidScreeningConsentPoint4: 'Un résultat négatif n’exclut pas une infection par la COVID-19.',\n            phxCovidScreeningConsentPoint5: 'Si vous obtenez un résultat préliminaire positif à votre test de dépistage, vous devez vous isoler à domicile et suivre les instructions sur le <a target=\"_blank\" href=\"%consentDomain%\" data-testid=\"link2\">site du gouvernement.</a>',\n            phxCovidScreeningConsentLabel: 'En cochant cette case, je reconnais avoir lu et compris les informations ci-dessus.',\n            phxCovidScreeningDetailsConsentHint: 'En donnant mon consentement, je confirme que :',\n            phxCovidScreeningDetailsConsentPoint1: 'Les réponses qui ont été fournies aux questions d’évaluation sont véridiques au mieux de ma connaissance, et je reconnais que si l’une de ces réponses est fausse, je peux être tenu responsable de tout préjudice causé.',\n            phxCovidScreeningDetailsConsentPoint2: 'J’accepte que les réponses fournies aux questions d’évaluation soient utilisées pour évaluer la nécessité d’un test de dépistage de la COVID-19; si l’on conclut qu’il n’y a pas lieu de faire passer un test de dépistage de la COVID-19, j’accepterai cette recommandation.',\n            phxCovidScreeningDetailsConsentPoint3: 'Je suis conscient qu’aucune déclaration ni garantie n’est formulée quant au moment où le test de dépistage rapide des antigènes pour la COVID-19 est effectué. Aucune déclaration ou garantie n’est formulée stipulant qu’un résultat négatif au test de dépistage rapide des antigènes pour la COVID-19 entraînera mon admission ou l’admission de mon mandataire dans la juridiction où il souhaite se rendre.',\n            phxCovidScreeningDetailsConsentLabel: 'En cochant cette case, je reconnais avoir lu et compris les informations ci-dessus et je donne mon consentement à recevoir le test antigénique de dépistage rapide de la COVID-19 effectué par un professionnel de la santé employé d\\'un pharmacien propriétaire. <strong>Je reconnais et accepte qu\\'un pharmacien propriétaire, Pharmaprix, ses sociétés affiliées, ses directeurs, ses dirigeants, ses employés, ou ses agents ne sauraient en aucun cas être tenus responsables des pertes entraînées par l’impossibilité que je sois admis ou que mon mandataire soit admis, ou d’être admis tardivement, dans la juridiction où il a l’intention de se rendre.</strong>',\n            phxCovidAcceptRiskLabel: 'En cochant cette case, je reconnais avoir lu et compris les informations et j’accepte <a target=\"_blank\" href=\"%consentDomain%\">les limites et les risques associés au test rapide</a>. J’accepte que le pharmacien propriétaire, Pharmaprix Inc. ou Loblaw Inc. ne garantissent ni ne représentent l’exactitude, l’efficacité ou la pertinence du test rapide. Par la présente, j’accepte et reconnais ces limites du test rapide et je renonce à toute réclamation future contre le pharmacien propriétaire, Pharmaprix Inc. ou Loblaw Inc. concernant l’exactitude, l’efficacité et la pertinence du test rapide.',\n            traveler: {\n                title: 'Informations sur les voyageurs',\n                cardTitle: 'Voyageur',\n                label: 'Voyageur',\n                firstName: 'Prénom',\n                lastName: 'Nom',\n            },\n        },\n        errorPage: {\n            title: 'Prise de Rendez-vous en ligne',\n            content: 'Une erreur s\\'est produite, contacter votre administrateur pour l\\'informer de la situation.',\n        },\n        notFound: {\n            title: 'Page introuvable (Erreur 404)',\n            content1: 'Nous sommes désolés. La recherche effectuée n’a pas pu être finalisée.',\n            content2: 'Le lien que vous avez inscrit a été déplacé ou modifié.',\n            thanks: 'Merci de votre compréhension.',\n            linkToPortal: 'Retourner à l\\'accueil',\n        },\n        sheddingPage: {\n            title: 'La prise de rendez-vous est temporairement indisponible.',\n            content1: 'Nous vous invitons à revenir dans quelques minutes.',\n            thanks: 'Merci de votre compréhension.',\n            team: 'L\\'équipe de ClicSanté.',\n        },\n        appointmentBookedButErrorDisplayingCoupon: {\n            title: 'Rendez-vous réservé mais...',\n            message: '<p>Une erreur de communication est survenue lors de l\\'affichage du coupon de votre rendez-vous. Il nous est impossible d\\'afficher les détails de votre rendez-vous mais soyez assuré <strong>qu\\'il est bien créé et réservé</strong>. Le numéro de rendez-vous est: {appointment_number}.</p><p>Merci <strong>DE NE PAS</strong> reprendre de copie de ce rendez-vous!</p>',\n        },\n        closestAvailsModal: {\n            title: 'Votre sélection n\\'est plus disponible',\n            timeNoLongerAvail: 'L\\'heure choisie n\\'est plus disponible.',\n            chooseAnotherAvail: 'Veuillez sélectionner une autre plage horaire : ',\n            returnToCalendar: 'Si vous désirez plus de choix, veuillez retourner au calendrier. Notez que vos renseignements personnels seront sauvegardés.',\n            noClosestAvail: 'Il n\\'y a plus de disponibilité pour la journée que vous avez sélectionnée.',\n            noClosestAvailGotoCalendar: 'Veuillez retourner au calendrier pour sélectionner une autre journée. Notez que vos renseignements personnels seront sauvegardés.',\n            toCalendarBtn: 'Retourner au calendrier',\n        },\n        errors: {\n            validation: {\n                'invalid-start': {\n                    'custom-validator-failure': {\n                        title: 'Plage horaire indisponible',\n                        message: 'La plage horaire que vous voulez n\\'est pas disponible.<br /><br />' +\n                            'Veuillez rafraichir la page pour obtenir des disponiblités à jour.',\n                    },\n                },\n                birthday: {\n                    min_age_to_book: {\n                        title: 'Message important',\n                        message: 'Vous ne répondez pas au critère d\\'âge minimum requis pour prendre un rendez-vous.',\n\n                    },\n                    max_age_to_book: {\n                        title: 'Message important',\n                        message: 'Vous ne répondez pas au critère d\\'âge maximum requis pour prendre un rendez-vous.',\n                    },\n                },\n            },\n            generic: {\n                title: 'Erreur',\n                message: 'Une erreur est survenue lors de l\\'opération, veuillez recharger la page et réessayer.',\n            },\n            forms: {\n                expiredToken: {\n                    title: 'Erreur',\n                    message: 'Le délai pour remplir le formulaire est expiré. Cependant, votre rendez-vous demeure réservé.',\n                },\n            },\n            'service-unavailable': {\n                'shedding-page': {\n                    title: 'Prise de rendez-vous temporairement indisponible',\n                    message: 'La prise de rendez-vous est temporairement fermée à cause d\\'un fort achalandage. Veuillez revenir dans quelques minutes.',\n                },\n            },\n            invalid: {\n                nam: {\n                    title: 'Erreur',\n                    message: 'Le numéro d\\'assurance maladie est invalide',\n                },\n            },\n            cancel: {\n                couponNotAssociated: {\n                    title: 'Introuvable',\n                    message: 'Aucun rendez-vous associé à ce coupon',\n                },\n                couponNotFound: {\n                    title: 'Message important',\n                    message: 'Une erreur est survenue. Votre rendez-vous n’a pu être identifié pour l’une des raisons suivantes :' +\n                        '<ul class=\"error-list\" style=\"list-style: disc inside; margin: 15px 0 15px 15px;\">' +\n                        '<li>Votre numéro de coupon est erroné</li>' +\n                        '<li>Votre numéro de coupon ne correspond à aucun rendez-vous futur</li>' +\n                        '<li>L\\'opération de recherche a échouée</li>' +\n                        '</ul>' +\n                        'Pour plus d\\'informations, veuillez contacter votre établissement de santé.',\n                },\n            },\n\n            appointment: {\n                forbidden_cancellation_date: {\n                    title: 'Annulation du rendez-vous',\n                    message: 'Impossible d\\'annuler le rendez-vous, le rendez-vous doit être dans le futur.',\n                },\n                forbidden_cancellation_client_state: {\n                    title: 'Annulation du rendez-vous',\n                    message: 'Votre rendez-vous n\\'a pas pu être annulé car il est marqué comme présent ou absent.',\n                },\n                unable_to_obtain_lock: {\n                    title: 'Surcharge du système',\n                    message: 'Une grande quantité de clients réservent leur rendez-vous présentement. Veuiller réessayer dans quelques minutes. <br><br>Nous sommes désolés pour les inconvénients.<br><br>L’équipe Clic Santé\\n',\n                },\n                unavailable_availability: {\n                    title: 'Oups...',\n                    message: 'La date et l\\'heure du rendez-vous que vous avez choisi n\\'est plus disponible. Retournez au calendrier afin de choisir une nouvelle date et heure.',\n                },\n                forbidden_confirm_already_cancelled: {\n                    title: 'Confirmation du rendez-vous',\n                    message: 'Votre rendez-vous ne peut être confirmé car, selon nos registres, il est annulé.',\n                },\n                forbidden_confirm_past: {\n                    title: 'Confirmation du rendez-vous',\n                    message: 'Vous ne pouvez confirmer ce rendez-vous car la date est déjà passée.',\n                },\n            },\n            appointments: {\n                'duplicate-detected': {\n                    title: 'Attention!',\n                    message: 'Vous avez déjà réservé un rendez-vous pour ce service. Assurez-vous d’annuler le rendez-vous précédent avant de procéder à cette réservation. Merci!',\n                },\n            },\n            reacts: {\n                errors: {\n                    title: 'Erreur de communication',\n                    message: 'Une erreur de communication avec la plateforme de rendez-vous virtuelle est survenue. Veuillez communiquer avec votre établissement de santé.',\n                },\n            },\n            request: {\n                timeout: {\n                    title: 'Délai expiré',\n                    message: 'L\\'opération tentée n\\'a pû être résolu à temps par le serveur. Prenez note qu\\'il se peut que l\\'opération se soit quand même complétée en arrière plan. Rafraîchissez votre navigateur afin de valider le tout.',\n                },\n            },\n            availabilities: {\n                public: {\n                    'nothing-for-day': {\n                        title: 'Aucune disponibilité',\n                        message: 'Aucune disponibilité trouvée pour la journée sélectionnée',\n                    },\n                },\n            },\n            recaptcha: {\n                response: {\n                    error: {\n                        title: 'Recaptcha Erreur',\n                        message: 'La validation du recaptcha a expiré, veuillez recharger la page et réessayer.',\n                    },\n                },\n            },\n            birthdayAndNamAreInvalid: {\n                title: 'Erreur',\n                message: 'Votre date de naissance ou votre numéro d\\'assurance maladie est incorrect.',\n            },\n            validateMinAge: {\n                title: 'Erreur',\n                message: 'Vous n\\'êtes pas encore autorisé à prendre votre rendez-vous.<br /><br />' +\n                    'Vous avez sélectionné un service qui ne correspond pas à votre tranche d\\'âge. Veuillez retourner à l\\'accueil de <a href=\"https://portal3.clicsante.ca/\">Clic Santé</a> et sélectionner le bon service.',\n            },\n            validateMinAgeApp: {\n                title: 'Erreur',\n                message: 'Conformément à la Politique de confidentialité, les renseignements personnels concernant un mineur de moins de 14 ans ne seront collectés auprès de celui-ci sans le consentement du titulaire de l\\'autorité parentale ou du tuteur.<br /><br />Pour plus d\\'information ou pour un accompagnement, veuillez contacter directement votre établissement de santé',\n            },\n            patient: {\n                appointment: {\n                    'cannot-link-patient-using-current-user': {\n                        title: 'Error',\n                        message: 'Assurez vous que vous êtes encore connecté à votre compte.',\n                    },\n                },\n            },\n            screening: {\n                preferredCommunicationEmail: {\n                    title: 'Message important',\n                    message: 'Important ! Vous avez indiqué vouloir recevoir le résultat de votre prélèvement par courriel. Toutefois, l\\'un ou les deux champs suivants sont incorrects :<br/><br/>' +\n                        '<ul style=\"list-style: circle\"><li>Le champ \"Courriel\" n\\'a aucune entrée. Veuillez svp ajouter une adresse courriel.</li>' +\n                        '<li>Le champ \"Préférence de communication\" est à \"Appel téléphonique\". Veuillez svp modifier pour \"Courriel\".</li></ul>',\n                    error: 'Vous avez indiqué vouloir recevoir le résultat de votre prélèvement par courriel.',\n                },\n            },\n        },\n        metadataScreeningFeesAcknowledged: {\n            label: '{0}Je comprends que je prends rendez-vous pour un service privé de dépistage offert en pharmacie et que des frais seront chargés sur place. Ce service diffère du programme de distribution gratuit d’autotests du gouvernement, et du test TAAN (PCR) offert gratuitement en centre de dépistage. Si vous avez des symptômes de la COVID-19, nous vous invitons à compléter l’auto évaluation des {1}.',\n            linkText: 'symptômes',\n        },\n        metadataCovidScreeningEmailConsent: {\n            label: 'J’ai lu la déclaration de consentement et JE CONSENS à ce que le centre de dépistage qui procédera à mon test de dépistage de la COVID-19 ou à celui de mon enfant de moins de 14 ans me transmette le résultat de test par courriel avec l’option, selon la préférence choisie, de recevoir ou non une notification par messagerie texte m’avisant de la transmission de celui-ci par courriel.',\n        },\n        metadataCovidScreeningSecurityConsent: {\n            label: '{0}Je reconnais qu’en recevant le résultat de test par courriel avec l’option, ou non, de recevoir une notification par messagerie texte m’avisant de la réception du courriel, certaines de mes informations sortiront de la présente plateforme informatique sécurisée et pourront ne pas bénéficier des mêmes mesures de sécurité ou pourront être accessibles à d’autres personnes.{1}' +\n                ' Je reconnais que si mon adresse courriel ou mon numéro de téléphone sont incorrects, mon résultat de test pourrait être transmis à une mauvaise adresse courriel et mes nom et prénom pourraient être transmis à un mauvais numéro de téléphone.{2}' +\n                'En ne consentant pas à ce que le résultat de test soit transmis par courriel, je comprends que la transmission du résultat de test sera effectuée par téléphone.{3}' +\n                'Pour plus d’informations, veuillez consulter la {4}.',\n            linkText: 'Déclaration de consentement',\n        },\n        banner: {\n            promptLogin: {\n                ctaMessage: 'gratuitement au compte Clic Santé pour automatiquement pré-remplir le formulaire d\\'identification à chaque rendez-vous',\n                login: 'Connectez-vous',\n                subscribe: 'inscrivez-vous',\n                or: 'ou',\n            },\n            promptCompleteRegistration: {\n                ctaMessage1: 'Afin de pré-remplir le formulaire de réservation, vous devez ',\n                login: 'compléter la création de votre compte Clic Santé.',\n                ctaMessage2: ' Vous pouvez également remplir le formulaire de réservation manuellement. <br /> Une fois votre compte complété, vouz pouvez ',\n                getUpdatedPatients: 'rafraîchir le formulaire',\n            },\n        },\n        covidScreeningMetadataLang: {\n            ...CovidScreeningMetadataLang.fr,\n        },\n        regionMetadataLang: {\n            ...RegionMetadataLang.fr,\n        },\n        coAdministrationFluCovid: {\n            metadata: {\n                flu: {\n                    title: 'Je souhaite recevoir les vaccins contre la grippe (influenza) et la COVID-19 en même temps.',\n                    description: 'Le vaccin contre la grippe est maintenant offert gratuitement à l’ensemble de la population. Pour plus d’information, consultez la page <a href=\"https://www.quebec.ca/sante/conseils-et-prevention/vaccination/programme-de-vaccination-contre-la-grippe\" target=\"_blank\">Vaccination</a>.',\n                },\n                covid: {\n                    title: 'Je souhaite recevoir les vaccins contre la COVID-19  et la grippe (influenza) en même temps.',\n                    description: 'Le vaccin contre la grippe est maintenant offert gratuitement à l’ensemble de la population. Pour plus d’information, consultez la page <a href=\"https://www.quebec.ca/sante/conseils-et-prevention/vaccination/programme-de-vaccination-contre-la-grippe\" target=\"_blank\">Vaccination</a>.',\n                },\n            },\n            couponReminder: '<b class=\"font-weight-black\">Rappel:</b> Vous avez choisi de recevoir le vaccin contre la <u>COVID-19</u> et le vaccin contre la <u>grippe</u>. Les deux vaccins seront administrés lors du même rendez-vous. Aucune autre action n\\'est requise.',\n        },\n        accessibility: {\n            loadingGeneric: 'Chargement du contenu',\n        },\n        inputValidationAccessibilityLang: {\n            ...InputValidationAccessibilityLang.fr,\n        },\n        privacy: {\n            title: 'Confidentialité des données',\n            text: 'Les informations que vous fournissez ici seront traitées de manière confidentielle et ne seront accessibles qu\\'au personnel de votre pharmacie.'\n        },\n    },\n};\n","export default {\n    email: 'E-mail address',\n    phone: 'Phone number',\n    cellphone: 'Mobile phone number',\n    virtual_account: 'Username for the video event',\n    reacts_event_url: 'Link to the video event',\n    reacts_event_id: 'Video event number',\n    resident_room_number: 'If known, room number of the person to contact',\n    ah635_health_problems_question: 'Current Health Problems',\n    ah635_immunosuppression_question: 'Immunosuppression',\n    ah635_allergic_reactions_question: 'Allergic Reactions',\n    ah635_pregnancy_question: 'Pregnancy',\n    ah635_bleeding_disorder_question: 'Bleeding Disorder',\n    ah635_immunization_question: 'Immunization or Blood Products',\n    influenza_health_status: 'Do any of the following apply to you?',\n    influenza_is_immunosuppressive: 'Does one of the following situation apply to you?',\n    influenza_has_severe_reaction: 'Have you ever had a severe reaction after receiving a vaccine or other product that required a hospital visit?',\n    influenza_is_pregnant: 'If you are a woman, are you currently pregnant?',\n    influenza_received_vaccine_last_month: 'Have you received a vaccine during the last month?',\n    influenza_has_immunocompromised_contact: 'Are you in close contact with an immunocompromised person?',\n    influenza_people_who_live_with_me: 'Do you live with an infant under 6 months of age, a person 75 years of age or older, a pregnant woman in her 2nd or 3rd trimester, or a person with a chronic illness?',\n    influenza_has_blood_transfusion: 'Have you received a blood transfusion or immunoglobulin in the past 11 months?',\n    influenza_received_pneumococcal_vaccine: 'Have you received a Pneumococcal vaccine in the past?',\n    influenza_is_health_care_worker: 'Are you a health care worker?',\n    influenza_received_shingles_vaccine: 'Have you received a Shingles vaccine in the past?',\n    phx_covid_screening_reason: 'COVID-19 screening reason',\n    phx_covid_screening_details_consent: 'I consent to the details of the COVID-19 screening test',\n    phx_covid_screening_consent: 'I consent to the COVID-19 screening test',\n    phx_covid_accept_risk: 'By checking this box, I acknowledge to have read and understood the information and accept the limitations and risks associated with the rapid screening.',\n    covid_screening_student_level: 'Educational level',\n    as624_health_problems_question: 'Current health problems',\n    as624_immunosuppression_question: 'Immunosuppression',\n    as624_allergic_reactions_question: 'Allergic reactions',\n    as624_bleeding_disorder_question: 'Bleeding disorder',\n    as624_has_blood_transfusion_question: 'Blood transfusion or immunoglobulin injection',\n    as624_pregnancy_question: 'Pregnancy',\n    as624_less_than_six_months_mother_treatment_question: 'Patient less than six months mother treatment during pregnancy',\n    phone_extension: 'Phone extension',\n    sendConfirmationSms: 'Send Confirmation SMS',\n    confirmEmail: 'Confirm Email',\n    traveler_ramq: 'Traveler RAMQ',\n    traveler_birthdate: 'Traveler birthdate',\n    travel_departure_date: 'Travel departure date',\n    traveler_first_name: 'Traveler\\'s first name',\n    traveler_last_name: 'Traveler\\'s last name',\n    traveler_age: 'Traveler\\'s age',\n    traveler_status: 'Traveler\\'s status',\n    recaptcha: 'I am not a robot',\n    terms_agreement: 'Terms and conditions',\n    privacy_policy_agreement: 'Privacy policy',\n    'nam-expiration-date': 'Expiration date of the health insurance card',\n    'nam-sequential': 'Sequential number of the health insurance card',\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileHeaderMenu.vue?vue&type=style&index=0&id=5d8149d8&lang=scss&scoped=true&\"","export const EstablishmentSetting = {\n    HIDE_CALENDARS_PUBLIC_PAGE: 8,\n    ACTIVATE_SEARCH_IN_ALL_SCHEDULES: 10,\n    KPI_AVAILABILITY_DELAY: 15,\n    ENABLE_OPEN_TO_PUBLIC: 16,\n    ENABLE_FOOTER_INFO: 17,\n    USE_CLIENT_LOGO: 20,\n    CLIENT_LOGO: 21,\n    PUBLISH_NEW_DAYS: 22,\n    AMOUNT_SAVED_PUBLIC_APPOINTMENT: 23,\n    USE_CUSTOM_TIMEZONE: 24,\n    DEFAULT_TIMEZONE: 25,\n    ENABLE_VIRTUAL_SERVICES: 26,\n    ENABLE_REMINDER_REPORT: 27,\n    ENABLE_RELAUNCH_REPORT: 28,\n    ENABLE_ZIP_CODE_FILTER: 29,\n    MODULES: 32,\n    DISABLE_COMMUNICATIONS: 35,\n    PRIVATE: 36,\n    ALLOW_PREST_OVERRIDE: 37,\n    ENABLE_ADMIN_SERVICES: 38,\n    ENABLE_PRIVATE_ADMIN_SERVICES: 39,\n    ENABLE_CUSTOM_TIMEZONE: 53,\n    DISABLE_GOOGLE_ANALYTICS: 60,\n    ENABLE_SMS: 78,\n    THEMING_OVERRIDE: 153,\n    CLIENT_LOGOMARK: 154,\n    CO_ADMINISTRATION_FLU_COVID: 188,\n    ESTABLISHMENT_TYPE: 193,\n    SHOW_CONTACT_US_PUBLIC_PAGE: 201,\n    ENABLE_DATA_COLLECTION_FORMS: 203,\n};\n\nexport const ServiceTemplateEnum = {\n    VACCINATION_GRIPPE: 195,\n    VACCINATION_COVID_19: 204,\n    PRISE_DE_SANG: 227,\n    SHINGLES_VACCINE: 275,\n};\n\nexport const ServiceSettings = {\n    VACCINE_DELAY_MIN: 42,\n    VACCINE_DELAY_MAX: 43,\n    VACCINE_DELAY_MIN_MONTHS: 44,\n    VACCINE_DELAY_MAX_MONTHS: 45,\n    VACCINE_TOLERANCE_BEFORE: 46,\n    VACCINE_TOLERANCE_AFTER: 47,\n    IS_VIRTUAL_SERVICE: 48,\n    VIRTUAL_SERVICE_APP: 49,\n    ENABLE_FILTER_QUESTIONS: 50,\n    FILTER_QUESTIONS: 51,\n    FILTER_MESSAGES: 52,\n    VIRTUAL_SERVICE_MESSAGE_DELAY: 52,\n    IS_ADMIN_SERVICE: 54,\n    IS_PRIVATE_ADMIN_SERVICE: 55,\n    SUBMODULES: 56,\n    ENABLE_NEXT_SERVICE_TO_BOOK_FOLLOW_UP: 58,\n    NEXT_SERVICE_TO_BOOK: 59,\n    PREGNANCY_DELAY_MIN: 62,\n    PREGNANCY_DELAY_MAX: 63,\n    PREGNANCY_DELAY_MIN_DAYS: 64,\n    PREGNANCY_DELAY_MAX_DAYS: 65,\n    PREGNANCY_TOLERANCE_BEFORE: 66,\n    PREGNANCY_TOLERANCE_AFTER: 67,\n    TRAVEL_MIN_TRAVELER_COUNT: 116,\n    TRAVEL_MAX_TRAVELER_COUNT: 117,\n    TRAVEL_COUNTRY_LIST: 118,\n    TRAVEL_MAX_DAYS_AHEAD: 119,\n    DRUG_INJECTION_LIST: 120,\n    WORK_LOCATION_LIST: 123,\n    EMPLOYER_NAME_LIST: 124,\n    JOB_TITLE_LIST: 125,\n    EMPLOYEE_ESTABLISHMENT_LIST: 128,\n    EMPLOYEE_CATEGORY_LIST: 129,\n    MIN_AGE_TO_BOOK_PATIENT: 132,\n    MIN_AGE_TO_BOOK_ACCOMPANYING_PERSON: 133,\n    MIN_AGE_TO_BOOK_HEALTH_WORKER: 137,\n    MIN_AGE_TO_BOOK_ESSENTIAL_HEALTH_WORKER: 138,\n    MIN_AGE_TO_BOOK_CHRONIC_DISEASE: 139,\n    PRIORITY_GROUP_OPTIONS: 140,\n    DISALLOW_PUBLIC_CANCELLATION: 141,\n    MIN_AGE_TO_BOOK_HANDICAPPED: 142,\n    MIN_AGE_TO_BOOK_HANDICAPPED_ACCOMPAGNATOR: 143,\n    MIN_AGE_TO_BOOK_PREGNANT_WOMAN: 144,\n    MIN_AGE_TO_BOOK_DAY_CAMP_WORKER: 145,\n    MIN_AGE_TO_BOOK_REQUIRES_CONSENT: 146,\n    COVID_2ND_DELAY_MIN_DAYS: 147,\n    COVID_2ND_DELAY_MAX_DAYS: 148,\n    FLU_TARIFICATION_MODE_VALUE: 158,\n    SPECIFIC_SERVICE: 184,\n    OTHER_SERVICE: 185,\n    CIVIL_STATUS_LIST: 190,\n    EMERGENCY_CONTACT_RELATIONSHIP: 191,\n    MAX_AGE_TO_BOOK_PATIENT: 192,\n    MIN_AGE_TO_BOOK_IMMUNOCOMPROMISED: 179,\n    METADATA_DISPLAY_ORDER: 200,\n    ENABLE_ESTABLISHMENT_SERVICE_TEMPLATES_FORMS: 204,\n};\n\nexport const ConfigurationMessageEnum = {\n    ABSENT_CLIENT_REMINDER: 1,\n    APPOINTMENT_CONFIRMATION_REQUEST: 2,\n    APPOINTMENT_CONFIRMATION_REQUEST_LAST_MINUTE: 3,\n    CANCELLED_APPOINTMENT: 4,\n    CANCELLED_APPOINTMENT_REMINDER: 5,\n    FUTURE_APPOINTMENTS: 6,\n    LAST_MINUTE_CANCELLATION_APPOINTMENT: 7,\n    LAST_MINUTE_NEW_APPOINTMENT: 8,\n    NEW_APPOINTMENT: 9,\n    SCHEDULED_APPOINTMENT_BOOK_REMINDER: 10,\n    SCHEDULED_APPOINTMENT_CONFIRMATION_REQUEST: 11,\n    VIRTUAL_APPOINTMENT_REMINDER: 12,\n    NEW_MULTIPLE_APPOINTMENT: 13,\n    NEXT_SERVICE_TO_BOOK_FOLLOW_UP: 14,\n};\n\nexport const MessageTypeEnum = {\n    MAIL: 1,\n    SMS: 2,\n};\n\nexport const GlobalSettings = {\n    METADATA_DISPLAY_ORDER_FEATURE_FLAG: 199,\n};\n\nexport const MetadataEnumCovidScreening = {\n    COVID_SCREENING_HEALTHCARE_WORKER: 106,\n    COVID_SCREENING_HEALTHCARE_WORKER_TYPE: 107,\n    COVID_SCREENING_HEALTHCARE_INSTITUTION: 108,\n    COVID_SCREENING_HEALTHCARE_INSTITUTION_TYPE: 109,\n    COVID_SCREENING_HEALTHCARE_SHARING_RESULT: 110,\n    COVID_SCREENING_CONSENT_SHARING_INFORMATIONS: 112,\n    COVID_SCREENING_CONSENT_RECEIVE_RESULT_BY_EMAIL_SMS: 113,\n    COVID_SCREENING_PREFERRED_COMMUNICATION: 114,\n    COVID_SCREENING_TRAVELLED_OUTSIDE_QUEBEC: 115,\n    COVID_SCREENING_COUNTRY: 116,\n    COVID_SCREENING_CATEGORY: 117,\n    COVID_SCREENING_STUDENT_SCHOOL_REGION: 118,\n    COVID_SCREENING_STUDENT_LEVEL: 119,\n    COVID_SCREENING_STUDENT_INSTITUTION: 120,\n    COVID_SCREENING_WORKING_QUEBEC: 121,\n    COVID_SCREENING_EMPLOYER_NAME: 122,\n    COVID_SCREENING_CHILD_NAME_OF_NURSERY: 123,\n    COVID_SCREENING_OUTBREAK_NUMBER: 124,\n};\n\nexport const MetadataEnumSampling = {\n    HAVE_YOU_BEEN_TO_HOSPITAL_IN_THE_LAST_THREE_MONTHS: 126,\n    CIVIL_STATUS: 127,\n    SPOUSE_FIRST_NAME: 128,\n    SPOUSE_LAST_NAME: 129,\n    EMERGENCY_CONTACT_FIRST_NAME: 130,\n    EMERGENCY_CONTACT_LAST_NAME: 131,\n    EMERGENCY_CONTACT_RELATIONSHIP: 132,\n    EMERGENCY_CONTACT_PHONE_NUMBER: 133,\n};\n\nexport const MetadataEnumAs624 = {\n    AS624_HEALTH_PROBLEMS_QUESTION: 136,\n    AS624_IMMUNOSUPPRESSION_QUESTION: 137,\n    AS624_ALLERGIC_REACTIONS_QUESTION: 138,\n    AS624_BLEEDING_DISORDER_QUESTION: 139,\n    AS624_HAS_BLOOD_TRANSFUSION_QUESTION: 140,\n    AS624_PREGNANCY_QUESTION: 141,\n    AS624_LESS_THAN_SIX_MONTHS_MOTHER_TREATMENT_QUESTION: 142,\n};\n\nexport const EstablishmentTypeEnum =\n{\n    PHARMACY: 'pharmacie',\n    PRIVATE_CLINIC: 'clinique_privee',\n    HEALTH_ESTABLISHMENT: 'etablissement_de_sante',\n    DEMO: 'demo',\n};\n\nexport const MetadataEnum = {\n    FIRST_NAME: 1,\n    LAST_NAME: 2,\n    EMAIL: 3,\n    BIRTHDAY: 4,\n    PHONE: 5,\n    CELLPHONE: 6,\n    COMMENTS: 7,\n    CONFIRMATION_URL: 8,\n    CANCELLATION_URL: 9,\n    VIRTUAL_ACCOUNT: 10,\n    REACTS_EVENT_URL: 11,\n    REACTS_EVENT_ID: 12,\n    PREGNANCY_DPA: 16,\n    RESIDENT_FIRST_NAME_INITIAL: 17,\n    RESIDENT_LAST_NAME: 18,\n    RESIDENT_ROOM_NUMBER: 19,\n    RESIDENT_BIRTHDAY_MONTH: 20,\n    RESIDENT_CONTACT_ALLOW_ZOOM: 21,\n    RESIDENT_CONTACT_ALTERNATIVE: 22,\n    RESIDENT_MULTIPLE_USERS: 23,\n    NAM: 24,\n    SCANNED_REQUEST: 25,\n    DOCTOR_NAME: 26,\n    DRUG_NAME: 27,\n    TRAVEL_TRAVELER_COUNT: 28,\n    TRAVEL_TRAVELERS_INFO: 29,\n    TRAVEL_DESTINATION_COUNTRY: 30,\n    TRAVEL_DEPARTURE_DATE: 31,\n    ADDRESS: 32,\n    OCCUPATION: 33,\n    BIRTH_PREMATURE: 34,\n    BIRTH_PREMATURE_WEEK_COUNT: 35,\n    TUTOR_FIRST_NAME: 36,\n    TUTOR_LAST_NAME: 37,\n    TUTOR_OCCUPATION: 38,\n    UNKNOWN_MOTHER: 39,\n    MOTHER_FIRST_NAME: 40,\n    MOTHER_LAST_NAME: 41,\n    UNKNOWN_FATHER: 42,\n    FATHER_FIRST_NAME: 43,\n    FATHER_LAST_NAME: 44,\n    GENDER: 45,\n    PROFILE_NUMBER: 46,\n    SCHOOL_NAME: 47,\n    VACCINE_TARGET: 48,\n    REQUESTER_LINK: 49,\n    REQUESTER_NAME: 50,\n    GEOLOC_SHORT_POSTCODE: 51,\n    COMM_PHONE_ONLY: 52,\n    CONSENT_FORM_CONFIRMATION_CODE: 53,\n    VACCINE_SECURITY_ACCEPTANCE: 54,\n    EMPLOYEE_NUMBER: 55,\n    EMPLOYER_NAME: 56,\n    WORK_LOCATION: 57,\n    JOB_TITLE: 58,\n    EMPLOYEE_ESTABLISHMENT: 60,\n    EMPLOYEE_CATEGORY: 61,\n    AH635_HEALTH_PROBLEMS_QUESTION: 62,\n    AH635_IMMUNOSUPPRESSION_QUESTION: 63,\n    AH635_ALLERGIC_REACTIONS_QUESTION: 64,\n    AH635_PREGNANCY_QUESTION: 65,\n    AH635_BLEEDING_DISORDER_QUESTION: 66,\n    AH635_IMMUNIZATION_QUESTION: 67,\n    ACCOMPANYING_PERSON: 68,\n    PRIORITY_GROUP: 69,\n    P_CODE: 70,\n    INFLUENZA_HEALTH_STATUS: 71,\n    INFLUENZA_IS_IMMUNOSUPPRESSIVE: 72,\n    INFLUENZA_HAS_SEVERE_REACTION: 73,\n    INFLUENZA_IS_PREGNANT: 74,\n    INFLUENZA_RECEIVED_VACCINE_LAST_MONTH: 75,\n    INFLUENZA_HAS_IMMUNOCOMPROMISED_CONTACT: 76,\n    INFLUENZA_PEOPLE_WHO_LIVE_WITH_ME: 77,\n    INFLUENZA_HAS_BLOOD_TRANSFUSION: 78,\n    INFLUENZA_RECEIVED_PNEUMOCOCCAL_VACCINE: 79,\n    INFLUENZA_IS_HEALTH_CARE_WORKER: 80,\n    INFLUENZA_RECEIVED_SHINGLES_VACCINE: 81,\n    COVERED_RAMQ: 82,\n    VACCINE_APPREHENSION: 83,\n    SCHOOL_CLASS: 84,\n    POSTAL_CODE: 85,\n    COVID_5_11_CONFIRM_READ_DOCUMENT: 86,\n    COVID_5_11_CONFIRM_I_AM_PARENT: 87,\n    COVID_5_11_CONFIRM_CONSENT_TO_VACCINE: 88,\n    SCREENING_FEES_ACKNOWLEDGED: 89,\n    COVID_SCREENING_EMAIL_CONSENT: 90,\n    COVID_SCREENING_SECURITY_CONSENT: 91,\n    PHX_COVID_SCREENING_REASON: 92,\n    PHX_COVID_EXPERIENCING_SYMPTOMS: 93,\n    PHX_COVID_TRAVELLED_AND_ADVISED_TO_QUARANTINE: 94,\n    PHX_COVID_RECEIVED_POSITIVE_PCR_TEST: 96,\n    PHX_COVID_RECEIVED_POSITIVE_EXPOSURE_NOTIFICATION: 97,\n    PHX_COVID_ASKED_TO_GET_A_SCREENING_TEST: 98,\n    PHX_COVID_SCREENING_DETAILS_CONSENT: 99,\n    PHX_COVID_SCREENING_CONSENT: 100,\n    PHX_COVID_ACCEPT_RISK: 101,\n    SPECIFIC_SERVICE: 102,\n    OTHER_SERVICE: 103,\n    NAM_EXPIRATION_DATE: 104,\n    NAM_SEQUENTIAL_NUMBER: 105,\n    REGION: 111,\n    ...MetadataEnumCovidScreening,\n    ...MetadataEnumSampling,\n    PHONE_EXTENSION: 143,\n    ...MetadataEnumAs624,\n    PQDCS_ELIGIBILITY_DATE: 147,\n    PQDCS_PRESCRIPTION_DATE: 148,\n    LEGAL_FIRST_MIDDLE_LAST_NAME: 149,\n    OFFER_LETTER_SENT_DATE: 150,\n    PLANNED_START_DATE: 151,\n    WORKED_FOR_NSHA: 152,\n    NAME_USED_PREVIOUSLY: 153,\n    COADMIN_INJECTION: 154,\n};\n\nexport const SubModulesEnum = {\n    DEFAULT: null,\n    VACCINE: 1,\n    PREGNANCY: 2,\n    VIRTUAL: 3,\n    VIRTUAL_REACTS: 4,\n    PREGNANCY_DELAY: 5,\n    TRAVEL: 6,\n    DRUG_INJECTION: 7,\n    EMPLOYER: 8,\n};\n\nexport const AppModulesEnum = {\n    ESTABLISHMENT: 1,\n    PLACE: 2,\n    RESOURCE: 3,\n    SERVICE: 4,\n};\n\nexport const MetadataRequiredOverridable = {\n    NO_OVERRIDE: 0,\n    OVERRIDABLE_PUBLIC: 1,\n    OVERRIDABLE_ADMIN: 2,\n    OVERRIDABLE_PUBLIC_ADMIN: 3,\n};\n\nexport const UnifiedService = {\n    FLU: 65,\n};\n\nexport const ServiceTemplateUnderFluUnifiedService = [ServiceTemplateEnum.PRISE_DE_SANG, ServiceTemplateEnum.VACCINATION_GRIPPE];\n\nexport const CovidModules = [17, 18, 19, 20, 21, 22, 23];\n\nexport const ServiceVisibility = {\n    CAN_BOOKED_PUBLIC_AND_ADMIN: 0,\n    CAN_BOOKED_ADMIN_ONLY_BUT_SHOW_PUBLIC: 1,\n    CAN_BOOKED_ADMIN_ONLY_AND_HIDE_PUBLIC: 2,\n};\n\nexport const ProfileIdentityState = {\n    VALIDATED: 'validated',\n    UNVALIDATED: 'unvalidated',\n};\n\nexport const CoAdministrationServiceTemplateIds = {\n    FLU: ServiceTemplateEnum.VACCINATION_GRIPPE,\n    COVID: ServiceTemplateEnum.VACCINATION_COVID_19,\n};\n\nexport const DynamicFilterMetadataAssociation = [\n    MetadataEnum.FIRST_NAME,\n    MetadataEnum.LAST_NAME,\n    MetadataEnum.BIRTHDAY,\n];\n\nexport const GenericVaccineServiceTemplateIds = {\n    SHINGLES_VACCINE: ServiceTemplateEnum.SHINGLES_VACCINE,\n};\n\nexport const CovidScreeningDateFormats = {\n    CREATED_OR_RESULT_TRANSMITED: 'yyyy-MM-dd HH \\'h\\' mm',\n    SAMPLING_DATE: 'yyyy-MM-dd HH:mm',\n    SHORT_DATE: 'yyyy-MM-dd',\n    COMMENTS: 'yyyy MMM dd HH:mm',\n};\n\nexport const ReferenceDateEnum = {\n    APPT_START: 'appt_start',\n    APPT_STOP: 'appt_stop',\n    APPT_STATE_LAST_MODIFIED: 'appt_state_last_modified',\n    APPT_CLIENT_STATE_LAST_MODIFIED: 'appt_client_state_last_modified',\n    APPT_CLIENT_BIRTHDAY: 'client_birthday',\n};\n\nexport const AvailableForms = {\n    AH650: 1,\n    MEMORY_AID: 2,\n    PHX_SCREENING: 3,\n    AS624: 4,\n    DATA_COLLECTION: 5,\n};\n\nexport const FormStatusCustom = {\n    NEW: 'new',\n    IN_PROGRESS: 'in_progress',\n    COMPLETE: 'completed',\n};\n\nexport const FormRoleId = {\n    PUBLIC: 1,\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileDialogMenu.vue?vue&type=style&index=0&id=7763a64a&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.value)?_c('v-flex',{staticClass:\"center-loading-circle\",style:((\"min-height: \" + _vm.minHeight + \"vh;\")),attrs:{\"xs12\":\"\",\"text-center\":\"\"}},[_c('span',[_c('v-progress-circular',{staticClass:\"screen-center main-loading\",attrs:{\"indeterminate\":\"\",\"size\":70,\"width\":7,\"aria-label\":_vm.$t('accessibility.loadingGeneric'),\"color\":_vm.color}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <v-flex\n        v-if=\"value\"\n        xs12\n        text-center\n        class=\"center-loading-circle\"\n        :style=\"`min-height: ${minHeight}vh;`\">\n        <span>\n            <v-progress-circular\n                indeterminate\n                :size=\"70\"\n                :width=\"7\"\n                class=\"screen-center main-loading\"\n                :aria-label=\"$t('accessibility.loadingGeneric')\"\n                :color=\"color\"\n            />\n        </span>\n    </v-flex>\n</template>\n\n<script>\nexport default {\n    name: 'tz-loading',\n    props: {\n        color: { type: String, required: false, default: 'primary' },\n        minHeight: { type: Number, required: false, default: 90 },\n        value: { type: Boolean, required: true },\n    },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n    .center-loading-circle {\n        min-height: 90vh;\n        padding: 0 !important;\n        margin: 0 !important;\n\n        .main-loading {\n            margin-top: 100px;\n        }\n    }\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TzLoading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TzLoading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TzLoading.vue?vue&type=template&id=559c21a0&scoped=true&\"\nimport script from \"./TzLoading.vue?vue&type=script&lang=js&\"\nexport * from \"./TzLoading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TzLoading.vue?vue&type=style&index=0&id=559c21a0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"559c21a0\",\n  null\n  \n)\n\nexport default component.exports","export default {\n    email: 'Adresse courriel',\n    phone: 'Numéro de téléphone',\n    cellphone: 'Numéro de téléphone mobile',\n    virtual_account: 'Nom d\\'utilisateur lors de l\\'évènement vidéo',\n    reacts_event_url: 'Lien de l\\'évènement vidéo',\n    reacts_event_id: 'Numéro de l\\'évènement vidéo',\n    resident_room_number: 'Si connu, numéro de la chambre de la personne à contacter',\n    ah635_health_problems_question: 'Problèmes de santé actuels',\n    ah635_immunosuppression_question: 'Immunodépression',\n    ah635_allergic_reactions_question: 'Réaction allergique',\n    ah635_pregnancy_question: 'Grossesse',\n    ah635_bleeding_disorder_question: 'Trouble de la coagulation',\n    ah635_immunization_question: 'Produits immunisants ou sanguins',\n    influenza_health_status: 'Est-ce que l’une des situations suivantes s\\'applique à vous ?',\n    influenza_is_immunosuppressive: 'Êtes-vous dans l’une des deux situations suivantes ?',\n    influenza_has_severe_reaction: 'Avez-vous déjà fait une réaction importante après avoir reçu un vaccin ou un autre produit ayant nécessité une visite à l’hôpital ?',\n    influenza_is_pregnant: 'Si vous êtes une femme, êtes-vous présentement enceinte ?',\n    influenza_received_vaccine_last_month: 'Avez-vous reçu un vaccin au cours du dernier mois ?',\n    influenza_has_immunocompromised_contact: 'Êtes-vous en contact étroit avec une personne immunodéprimée ?',\n    influenza_people_who_live_with_me: 'Vivez-vous avec un enfant de moins de 6 mois, une personne de 75 ans et plus, une femme enceinte au 2e ou 3e trimestre ou avec une personne atteinte d’une maladie chronique ?',\n    influenza_has_blood_transfusion: 'Avez-vous reçu une transfusion sanguine ou des immunoglobulines au cours des 11 derniers mois ?',\n    influenza_received_pneumococcal_vaccine: 'Avez-vous déjà reçu un vaccin contre le pneumocoque ?',\n    influenza_is_health_care_worker: 'Êtes-vous un travailleur de la santé ?',\n    influenza_received_shingles_vaccine: 'Avez-vous déjà reçu un vaccin contre le zona ?',\n    phx_covid_screening_reason: 'Raison du dépistage de la COVID-19',\n    phx_covid_screening_details_consent: 'Je consens aux détails du test de dépistage contre la COVID-19',\n    phx_covid_screening_consent: 'Je consens au test de dépistage contre la COVID-19',\n    phx_covid_accept_risk: 'En cochant cette case, je reconnais avoir lu et compris les informations et j’accepte les limites et les risques associés au test rapide.',\n    covid_screening_student_level: 'Niveau scolaire',\n    as624_health_problems_question: 'Problèmes de santé actuels',\n    as624_immunosuppression_question: 'Immunodépression',\n    as624_allergic_reactions_question: 'Réaction allergique',\n    as624_bleeding_disorder_question: 'Trouble de la coagulation',\n    as624_has_blood_transfusion_question: 'Transfusion sanguine ou une injection d’immunoglobulines',\n    as624_pregnancy_question: 'Grossesse',\n    as624_less_than_six_months_mother_treatment_question: 'Patient de moins de six mois mère de traitement pendant la grossesse',\n    phone_extension: 'Extension téléphonique',\n    sendConfirmationSms: 'Confirmation SMS',\n    confirmEmail: 'Confirmation courriel',\n    traveler_ramq: 'RAMQ du voyageur',\n    traveler_birthdate: 'Date de naissance du voyageur',\n    travel_departure_date: 'Date prévue du voyage',\n    traveler_first_name: 'Prénom du voyageur',\n    traveler_last_name: 'Nom du voyageur',\n    traveler_age: 'Âge du voyageur ',\n    traveler_status: 'Statut du voyageur',\n    recaptcha: 'Je ne suis pas un robot',\n    terms_agreement: 'Termes et conditions',\n    privacy_policy_agreement: 'Politique de confidentialité',\n    'nam-expiration-date': 'Date d\\'expiration de la carte d\\'assurance maladie',\n    'nam-sequential': 'Numéro séquentiel de la carte d\\'assurance maladie',\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuItems.vue?vue&type=style&index=0&id=f6ed1910&lang=scss&scoped=true&\"","import fr from './lang/fr';\nimport en from './lang/en';\nimport Vue from 'vue';\nimport VueI18n from 'vue-i18n';\n\nVue.use(VueI18n);\nconst translations = {\n    'fr': fr,\n    'en': en,\n};\nconst locale = localStorage.getItem('tmz_public_lang') || 'fr';\nexport const vueI18nOptions = {\n    locale: locale,\n    messages: translations[locale],\n    silentTranslationWarn: false,\n};\nexport const i18n = new VueI18n(vueI18nOptions);\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleBar.vue?vue&type=style&index=0&id=23de1a2d&scoped=true&lang=scss&\"","import Store from '../store/index.js';\nimport { includes, get, every, head } from 'lodash';\nimport { isUsingKc } from '../utils';\n\nexport function useRouter() {\n    async function beforeEnter(to, from, next) {\n        const establishmentId = to.params.establishmentId;\n        Store.commit('gap/SET_GAP_MODE', to.query.gapMode);\n        Store.commit('gap/SET_GAP_HEAD_OFFICE_ID', to.query.gapHeadOfficeId);\n\n        // validate establishment id in the url\n        if (parseInt(establishmentId)) {\n            try {\n                if (!isUsingKc) {\n                    await Store.dispatch('jwt/fetchAccessToken');\n                    await Promise.all([\n                        Store.dispatch('jwt/getLoggedUser'),\n                        Store.dispatch('jwt/getLoggedUserCommunication'),\n                        Store.dispatch('jwt/getPatients'),\n                    ]);\n                }\n            }\n            catch(error) {\n                // Silent refresh token error\n            }\n\n            try {\n                // get establishment infos\n                await Store.dispatch('establishment/getEstablishment', establishmentId);\n                await Promise.all([\n                    Store.dispatch('texts/getTexts', establishmentId),\n                    Store.dispatch('establishment/getAllModules'),\n                    Store.dispatch('services/getInstantiateServices'),\n                    Store.dispatch('places/getPlaces'),\n                ]);\n\n                if (to.query.unifiedService) {\n                    const unifiedServiceId = to.query.unifiedService;\n                    await Store.dispatch('services/getDynamicServiceFilters', { establishmentId, unifiedServiceId });\n                }\n                else if (parseInt(get(to, 'query.category')) && !parseInt(get(to, 'query.portalEst'))) {\n                    await Store.dispatch(\n                        'services/getEstServiceUnifiedAssociationsByServiceUnified', {\n                            establishmentId: to.params.establishmentId,\n                            serviceUnifiedId: to.query.category,\n                        });\n                }\n                else if (parseInt(get(to, 'query.serviceTemplate')) && !parseInt(get(to, 'query.portalEst'))) {\n                    await Store.dispatch('services/setServicesFilteredByServiceTemplateIds', to.query.serviceTemplate);\n                }\n                else {\n                    if(to.path === `/${establishmentId}/take-appt`) {\n                        let dynamicFilters = await Store.dispatch('establishment/getDynamicServiceFilters', { establishmentId });\n\n                        if(dynamicFilters && dynamicFilters.length > 0 && every(dynamicFilters, ['id', head(dynamicFilters).id])) {\n                            if(to.query.portalServicesUnified?.split(',').some(id =>\n                                dynamicFilters.some(filter => filter.serviceUnified === parseInt(id))\n                            )) {\n                                const unifiedServiceId = dynamicFilters[0].serviceUnified;\n                                await Store.dispatch('services/getDynamicServiceFilters', { establishmentId, unifiedServiceId, ignoreUnifiedServiceSet: true });\n                            }\n                        }\n                        else {\n                            // TODO : we can't handle this case and will be a task to do later after the visibility project\n                        }\n                    }\n                }\n\n                // Unset page blocked if it's true\n                // @ts-ignore\n                if (Store.getters['getPublicPageBlocked']) {\n                    await Store.commit('SET_PUBLIC_PAGE_BLOCKED', false);\n                }\n\n                next();\n                return;\n            }\n            catch(e) {\n                if (get(e, 'internalCode') === 'service_unified.not_found') {\n                    next(`${establishmentId}/take-appt`);\n                    return;\n                }\n                if (get(e, 'internalCode', '') === 'service-unavailable.shedding-page') {\n                    await Store.commit('SET_PUBLIC_PAGE_BLOCKED', true);\n                    next();\n                    return;\n                }\n            }\n        }\n        next('/not-found');\n    }\n\n    async function beforeEach(to, from, next) {\n        const host = window.location.hostname;\n\n        await Store.dispatch('loading/toggleHomeLoading', { set: true });\n\n        // set product style\n        if (includes(host, 'localhost') >= 0 && to.query.style != null) {\n            Store.commit('UPDATE_STYLE', to.query.style);\n        }\n        else if (includes(host, 'pharmaprix')) {\n            Store.commit('UPDATE_STYLE', 'pharmaprix');\n        }\n        if (to.query.portalEst) {\n            await Store.dispatch('services/setPortalEst', to.query.portalEst);\n        }\n        next();\n    }\n\n    return {\n        beforeEnter,\n        beforeEach\n    };\n}\n","import Vue from 'vue';\nimport VueRouter from 'vue-router';\nimport Store from '../store/index.js';\nimport { EstablishmentSetting } from '@/enums';\nimport { useRouter } from './useRouter.js';\n\nconst utils = useRouter();\n\nVue.use(VueRouter);\n\nconst Router = new VueRouter({\n    // The order of the route is important: the earlier a route is defined, the higher priority it gets\n    routes: [\n        {\n            path: '/not-found',\n            name: 'not-found',\n            component: () => import('../pages/NotFound.vue'),\n        },\n        {\n            path: '*',\n            redirect: '/not-found',\n        },\n        {\n            path: '/:establishmentId',\n            name: 'home',\n            redirect: '/take-appt',\n            component: () => import('../pages/Home.vue'),\n\n            beforeEnter: utils.beforeEnter,\n            children: [\n                {\n                    path: '/:establishmentId',\n                    redirect: 'take-appt',\n                },\n                {\n                    path: 'take-appt',\n                    name: 'take-appt',\n                    meta: { title: { fr: 'Prendre un rendez-vous', en: 'Appointment booking' } },\n                    component: () => import('../pages/TakeAppt.vue'),\n                    beforeEnter: async(to, from, next) => {\n                        await Promise.all([\n                            Store.dispatch('services/getAllMetaData'),\n                            Store.dispatch('globalSettings/fetchGlobalSettings'),\n                        ]);\n\n                        next();\n                    },\n                },\n                {\n                    path: 'cancel-appt',\n                    name: 'cancel-appt',\n                    meta: { title: { fr: 'Annuler un rendez-vous', en: 'Cancel an appointment' } },\n                    component: () => import('../pages/CancelAppt.vue'),\n                },\n                {\n                    path: 'join',\n                    name: 'join',\n                    meta: { title: { fr: 'Nous joindre', en: 'Contact us' } },\n                    component: () => import('../pages/Join.vue'),\n                    beforeEnter: async(to, from, next) => {\n                        const establishment = Store.getters['establishment/getEstablishment'];\n                        const showContactSetting = Store.getters['establishment/getEstablishmentSettingById'](EstablishmentSetting.SHOW_CONTACT_US_PUBLIC_PAGE);\n                        if (showContactSetting && establishment.email) {\n                            next();\n                        }\n                        else {\n                            next('/' + establishment.id);\n                        }\n                    },\n                },\n                {\n                    path: 'confirm-appt',\n                    name: 'confirm-appt',\n                    meta: { title: { fr: 'Confirmation de rendez-vous', en: 'Appointment confirmation' } },\n                    component: () => import('../pages/ConfirmAppt.vue'),\n                },\n                {\n                    path: 'coupon',\n                    name: 'coupon',\n                    meta: { title: { fr: 'Coupon de rendez-vous', en: 'Appointment ticket' } },\n                    component: () => import('../pages/Coupon.vue'),\n                },\n            ],\n        },\n    ],\n    mode: 'history',\n});\n\n// Validate auth before accessing routes\nRouter.beforeEach(utils.beforeEach);\n\nRouter.afterEach(async(to, from) => {\n    // remove loading\n    if (Store.getters['loading/isHomeLoading']) {\n        await Store.dispatch('loading/toggleHomeLoading', { set: false });\n    }\n});\n\nexport default Router;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrimozSnackbar.vue?vue&type=style&index=0&id=1100ffe6&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./profileButtons.vue?vue&type=style&index=0&id=dc41a698&lang=scss&scoped=true&\"","/**\n * @deprecated : Theme should be defined within the THEMING_OVERRIDE setting\n * This file should be drop once we drop pharmaservices\n */\nexport default {\n    pharmaservices: {\n        primary: '#00A84E',\n        secondary: '#4ac380',\n        accent: '#badfbf',\n        error: '#cc0a00',\n        info: '#badfbf',\n        success: '#006830',\n        warning: '#ff8500',\n        GTM: 'GTM-M78T652',\n    },\n    uniprix: {\n        primary: '#0c4da2',\n        secondary: '#ff8500',\n        accent: '#7396c4',\n        error: '#cc0a00',\n        info: '#eaf4ff',\n        success: '#4ea835',\n        warning: '#ff8500',\n        GTM: 'GTM-M78T652',\n    },\n    pharmaprix: {\n        primary: '#45add6',\n        secondary: '#66c8f2',\n        accent: '#85e4ff',\n        error: '#cc0a00',\n        info: '#45add6',\n        success: '#00799f',\n        warning: '#ff8500',\n        GTM: 'GTM-M78T652',\n    },\n    clicsante: {\n        primary: '#00CCF2',\n        secondary: '#0026F1',\n        accent: '#6fa7fc',\n        error: '#cc0a00',\n        info: '#eaf4ff',\n        success: '#033E5E',\n        warning: '#ff8500',\n        GTM: 'GTM-M78T652',\n    },\n    'reacts': {\n        primary: '#7ABACA',\n        secondary: '#4D93A3',\n        accent: '#ABDAE5',\n        error: '#cc0a00',\n        info: '#FFEABA',\n        success: '#00863E',\n        warning: '#DF9449',\n        GTM: 'GTM-M78T652',\n    },\n};\n\n/**\n * To comply with https://www.cai.gouv.qc.ca/espace-evolutif-modernisation-lois/thematiques/mineurs/\n */\nexport const MIN_AGE_TO_BOOK_IN_APP = 14;\n\n/**\n * Reference:\n * - src/components/metadata/inputs/RequesterLink/RequesterLink.vue\n * - src/lang/en|fr.js::appt.placeholder.requester_link_0|1\n */\nexport const APPOINTMENT_FOR_MYSELF = 0;\nexport const APPOINTMENT_FOR_SOMEONE_ELSE = 1;\n","import InputValidationAccessibilityFr from './fr';\nimport InputValidationAccessibilityEn from './en';\n\nconst InputValidationAccessibilityLang = {\n    fr: { ...InputValidationAccessibilityFr },\n    en: { ...InputValidationAccessibilityEn },\n};\n\nexport default InputValidationAccessibilityLang;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopHeaderMenu.vue?vue&type=style&index=0&id=8892a856&scoped=true&lang=scss&\""],"sourceRoot":""}