{"version":3,"sources":["utills/utils.js","httpServices/httpService.js","components/Header.js","components/Info.js","components/RowFlexContainer.js","components/PrimaryButton.js","components/SecondaryButton.js","containers/UserDetails.js","components/Loader.js","containers/Slots.js","components/MapMarker.js","components/CustomRadio/CustomRadio.js","containers/Branch.js","containers/Category.js","containers/Confirm.js","containers/Main.js","components/Journey/Phase.js","components/Journey/Journey.js","containers/Checkin.js","components/DetailsRow.js","containers/ModifyAppointment.js","containers/AppInfo.js","App.js","reportWebVitals.js","index.js"],"names":["WIZARD_URLs","API_URLs","MESSAGING_SERVER_URLs","CENTRAL_SERVER_IPs","QR_TICKET_URLs","Header","window","THEME","HEADER","LOGO","BACKGROUND_COLOR","LOGO_WIDTH","className","role","style","backgroundColor","src","process","alt","width","queryString","require","APPLICATION_PROPERTIES","DEFAULT_LANGUAGE","TIME_HOUR_FORMAT","REDIRECT_TO_CURRENT_PAGE","TICKET_CALL","AUDIOS","URLs","WIZARD_URL","MAP_CENTER","LAT","LNG","SLOTS_SCREEN","DATE_FONT_COLOR","SLOTS_FONT_COLOR","SELECTED_SLOT_BG_COLOR","SELECTED_SLOT_FONT_COLOR","SELECTED_DATE_BG_COLOR","SELECTED_DATE_BORDER_COLOR","SELECTED_DATE_FONT_COLOR","DAYS_MONTH_NAME_FONT_COLOR","validation","str","test","formatDate","d","Date","month","getMonth","day","getDate","year","getFullYear","length","join","setTranslations","urlLang","parse","location","search","lang","languages","langs","Object","keys","translations","i","undefined","SetConfig","data","a","timeFormat","time","moment","format","redirect","href","urls","MODIFY_APPOINTMENT","origin","CHECK_IN","showErrMsg","title","message","okBtnText","url","swal","buttons","ok","text","value","console","log","showErrorMessage","redirectUrl","showAlertMeg","removeKeyFromUrl","path","key","otherQueryString","urlObject","appointmentnumber","validateEmail","email","showSuccessMessage","closeOnClickOutside","closeOnEsc","notify","Audio","play","CENTRAL_SERVER_COMMUNICATION","REQUEST_TIMEOUT","REGION_ID","IS_LOBBY_LEADER","HttpService","API_URL","MESSAGING_SERVER_URL","CENTRAL_SERVER_IP","QR_TICKET_URL","queryStringBranchCode","branchCode","this","queryStringlang","qsSqn","sqn","getDeviceDetails","axios","post","payload","centralServerIp","body","timeout","response","get","getAllCategories","getCategoriesByBranchId","branchId","getAllBranches","getSingleBranchDetails","getBranchesByCategory","categoryId","cancelAppointment","AppointmentNumber","BranchId","Email","issueTicket","priority","deviceType","language","Payload1","Payload2","Payload3","Payload4","Payload7","P1","P2","P3","P4","P7","issueTicketQR","prefix","payload1","payload2","payload3","payload4","payload5","payload7","payload8","payload9","payload10","cancelQrTicket","ticketId","issueTicketSpectra","postObject","cancelTicket","ticketNumber","SQN","phoneNumber","markAppointmentUsedAfterTicketIssue","appointmentNumber","emailAddress","verifyAppointmentInfo","branchIp","getNearByBranches","Sqn","Latitude","Longitude","getDisabledAppointmentDates","BranchID","CategoryID","FutureDaysForAppointment","getDateTimeSlots","AppointmentDate","AppointmentAheadDays","AppointmentAHeadDays","issueAppointment","BranchTitle","BranchAddress","BranchContactNo","SlotID","DeviceType","UserID","Flag","IsReschedule","Payloads","Lang","SlotTime","categoryid","branchid","branchTitle","branchAddress","branchPhoneNumber","slotid","appointmentDate","userId","flag","isReschedule","payloads","slotTime","rescheduleAppointment","PrevAppointmentNumber","PreviousApptCategoryId","prevAppointmentNumber","previousApptCategoryId","getTicketStatus","branch_id","ticket_id","ticket_number","category_id","is_lobby_leader","getAppointmentInfo","appointment_number","cell_number","getEstimatedWaitTime","USER_DETAILS_SCREEN","FONT_COLOR","INFO_HEADING_COLOR","Info","slot","branch","category","getTranslations","color","YouChosen","fontWeight","Address","marginBottom","RowFlexContainer","children","display","flexDirection","justifyContent","height","marginTop","PrimaryButton","bgColor","fontColor","onClick","btnText","disabled","showLoader","fontSize","outline","border","borderRadius","SecondaryButton","LABEL_COLOR","BTN_COLOR","BTN_TEXT_COLOR","RETURN_BTN_COLOR","BTN_DISABLED_COLOR","BTN_DISABLED_TEXT_COLOR","CLEAR_BTN_COLOR","CLEAR_BTN_TEXT_COLOR","FIELDS_BORDER_COLOR","CHECKBOX_LABEL_COLOR","httpService","qsLanguage","DEFAULT_PHONE_PREFIX","controls","CONTROLS","primaryControls","secondaryControls","filter","c","isEnabled","sc","UserDetails","state","isValidFields","isValidSecondaryControls","dataLoaded","dateOf","getFieldValue","split","setState","props","utils","timeSlot","ContactNo","getAppointmentPayloads","localStorage","getItem","error","Error","ServerNotResponding","Ok","setAPIResponseForParent","userDetails","resp_status","AppointmentAlreadyExists","YouAlreadyHaveAnAppointment","icon","keepPreviousOne","KeepPrevious","reschedule","Reschedule","closeModal","then","previous_appointment_info","hadleAppointmentIssue","resp_message","TimeSlotQuotaExceed","SomeThingWentWrong","includes","ShowDateOfBirthAlert","apiReponse","close","AppointmentAlreadyCanceled","AppointmentExpired","CantRescheduleApptTcktIssued","AlreadyServed","ApptCanceledAutomatically","handleControlChange","e","control","find","id","target","index","indexOf","regex","maxLength","preventDefault","validate","isMandatory","isValid","handleCheckBoxChange","checked","isChecked","fieldName","getPayloads","filteredPayloads","ctrls","object","push","forEach","o","x","fieldValue","arr","removeItem","isAllValidValues","isAllValidSecondaryControls","setItem","CategoryTitle","margin","UserDetailsInfoText","map","type","padding","labelName","defaultValue","onChange","options","name","rows","columns","placeholder","minLength","boxShadow","min","max","isdisabled","ClearForm","defaultChecked","ScheduleAppointmentBtnText","Return","Component","COLOR","LOADER","override","css","Loader","loading","size","DISABLED_SLOT_OPTION","SLOTS_BG_COLOR","disabledDate","MIN_DATE_ARRAY","DISABLED_DATES","SLOTS_TO_SHOW","DEFAULT_CATEGORY","DEFAULT_AHEAD_DAYS","Slots","selectedDate","timeSlots","selectedTimeSlot","minDate","maxDate","onDateSelection","curr","$","document","ready","datepicker","startDate","maxViewMode","minViewMode","datesDisabled","disabledDates","endDate","on","getDisabledDateFromLocalStorage","newDisable","JSON","disabledDatedCheck","setTimeout","getAppointmentSlots","onTimeSlotSelect","setSlotForParent","date","dateGiven","DAY","Number","appointmentSlots","slice","slots","slotDetail","DayID","prevProps","prevState","click","each","borderTop","Time","SelectAvailableSchedule","StartTime","MAP_MARKER","BRANCH_SCREEN","MapMarker","transform","RADIO_BTN","BORDER_COLOR","SELECTED_INNER_COLOR","CustomRadio","selected","label","description","MAP_ZOOM","MODE","ENABLE_MAP","GET_NEAREST_BRANCHES","GET_TOP_BRANCHES","lat","lng","enableMap","getNearestBranches","Branch","branches","filteredBranches","locationAllowed","allowedLocation","selectedBranch","showMap","disableDates","getCurrentLatLong","defaultLat","defaultLng","Bowser","getParser","navigator","userAgent","getBrowserName","geolocation","getCurrentPosition","pos","coords","latitude","longitude","setLocationAllowed","setAllowedLocation","stringify","watchPosition","code","PERMISSION_DENIED","clearWatch","permissions","query","status","onchange","Attention","LocationServiceDisabled","handleApiLoaded","streetViewControl","getBranches","branchList","filterBranch","filteredBranch","b","toLowerCase","BranchCode","onBranchSelect","setBranchForParent","onMapMarkerClick","yes","Next","no","Close","onSuccess","onError","defaultLocation","position","err","maximumAge","enableHighAccuracy","reload","BranchInfoText","SearchBranchPlaceHolder","bootstrapURLKeys","defaultCenter","initialCenter","defaultZoom","yesIWantToUseGoogleMapApiInternals","onGoogleApiLoaded","maps","draggable","overflowY","Fragment","borderColor","CATEGORY_SCREEN","Category","categories","selectedCategory","getCategories","categoryList","onCategorySelect","offDates","MinDate","MaxDate","setCategoryForParent","CategoryInfoText","overflow","CONFIRM_SCREEN","MODIFY_BTN_COLOR","CALENDAR_BTN_COLOR","PRIMARY_FONT_COLOR","OK_ICON","ICONS","ICS_FILE_URL","Confirm","rescheduleOrCancelAppointment","modifyAppointment","DoYouWantToRescheduleOrCancel","CancelAppointment","email_id","cancelAptResponse","AppointmentInfoNotValidToCancel","CantCancelApptTcktIssued","redirectToWizard","appointment_date","FullName","YourAppointmentIsBooked","EmailSentMsg","GoToBranch","AtThe","appointment_time","ConfirmDirectionMsg","ToTheBranchExec","Operation","category_title","BranchOffice","ConfirmEmailLabel","ConfirmMobileNumber","mobile_number","Note","wordBreak","ModifyOrCancel","Finalize","NAV_TABS","SHOW_TAB_SELECTED_DATA","APP_ROUTE","TABS","BODY_BG_COLOR","HEADER_BG_COLOR","CHEV_DOWN_ICON","CALENDAR_ICON","MAIN_SCREEN","qsBranchCode","qsLqn","lqn","tabs","service","t","isEnable","Main","isSingleBranchLoaded","activeTabKey","passedAccordians","appointmentIssued","getBranchFromChild","expandNextAccordian","getCategoryFromChild","getTimeSlotFromChild","getApiResponse","renderAccordionBody","renderAccordianCollapse","tab","tabKey","Accordion","Collapse","Card","Body","eventKey","renderAccordianText","float","currId","passedAccord","trigger","setActiveTabKey","dates","days","daysShort","daysMin","months","monthsShort","today","monthsTitle","clear","weekStart","rtl","ScheduleAppointmentHeading","Container","defaultActiveKey","Toggle","as","TICKET_JOURNEY","PHASE_FILL_COLOR","PHASE_COLOR","Phase","DOT_COLOR","COUNTER_COLOR","onPhase","viewBox","fill","xmlns","fillRule","Journey","phase","greaterPhase","phaseChange","parseInt","phases","phaseReplica","newPhase","marginLeft","ENABLE_CHECKIN","REFRESH_INTERVAL","CHECKIN_SCREEN","CHECKIN_BTN_COLOR","CANCEL_TICKET_BTN_COLOR","BTN_FONT_COLOR","REFRESH_ICON","Checkin","isSuccessfullyCheckedIn","verifyAppointmentResponse","issueTicketResponse","enableBtn","isTicketCalled","response_code","appointment_info","LateIssueTicket","AppointmentIsValid","appt_state","TicketAlreadyIssued","AppointmentNotFound","EarlyIssueTicket","branch_code","user_id","escapedPhoneNumber","replace","firstName","surName","additionalInformation","ticket_info","toDate","toDateString","markAppointmentUsed","TicketNotIssued","UrlNotFound","InternetConnectionError","CancelTicketConfirmation","No","Yes","ticket_no","cancelTicketResponse","TicketNotFound","est_wait_time","position_in_queue","popupExpiry","renderTicketInfo","IssueTicketConfirmedMessage","ThereArePeople","ticket_in_wait","TicketInWait","TicketNumber","TicketIssuedTime","issued_on","ModifyOrCancelTicket","setInterval","callback","performance","getEntriesByType","AppointmentNumberPlaceholder","EmailAddress","EmailAddressPlaceHolder","PhoneNumber","PhoneNumberPlaceholder","CheckIn","DetailsRow","MODIFY_APPT_SCREEN","SUBMIT_BTN_COLOR","ModifyAppointment","isInfoDataLoaded","ModifyOrCancelAptMsg","AppointmentCancelledSuccessfully","renderAppointmentInfo","AppointmentInfo","branch_name","SeeYouOn","start_time","BookingRef","ModifyOrCancelApt","Submit","VERSION","AppInfo","ENABLE_PROD_RESTRICTIONS","App","useClearCache","isLatestVersion","emptyCacheStorage","useEffect","onkeydown","keyCode","ctrlKey","shiftKey","charCodeAt","addEventListener","AppTitle","useState","Data","setData","Path","fetch","json","catch","basename","component","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.cd707ed6.chunk.js","sourcesContent":["import swal from \"sweetalert\";\r\nimport moment from \"moment\";\r\nimport * as $ from \"jquery\";\r\nimport { isIOS } from \"mobile-device-detect\";\r\n\r\nconst queryString = require(\"query-string\");\r\n\r\nconst {\r\n DEFAULT_LANGUAGE,\r\n TIME_HOUR_FORMAT,\r\n REDIRECT_TO_CURRENT_PAGE,\r\n AUDIOS: { TICKET_CALL },\r\n URLs: { WIZARD_URL },\r\n MAP_CENTER: { LAT, LNG },\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\n\r\nvar WIZARD_URLs;\r\nconst {\r\n SLOTS_SCREEN: {\r\n DATE_FONT_COLOR,\r\n SLOTS_FONT_COLOR,\r\n SELECTED_SLOT_BG_COLOR,\r\n SELECTED_SLOT_FONT_COLOR,\r\n SELECTED_DATE_BG_COLOR,\r\n SELECTED_DATE_BORDER_COLOR,\r\n SELECTED_DATE_FONT_COLOR,\r\n DAYS_MONTH_NAME_FONT_COLOR,\r\n },\r\n} = window[\"theme\"].THEME;\r\n\r\nexport const validation = {\r\n isEmailAddress: function (str) {\r\n var pattern = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n return pattern.test(str); // returns a boolean\r\n },\r\n isNotEmpty: function (str) {\r\n var pattern = /\\S+/;\r\n return pattern.test(str); // returns a boolean\r\n },\r\n isNumber: function (str) {\r\n var pattern = /^\\d+$/;\r\n return pattern.test(str); // returns a boolean\r\n },\r\n isSame: function (str1, str2) {\r\n return str1 === str2;\r\n },\r\n};\r\n\r\nexport const formatDate = () => {\r\n var d = new Date(),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2) \r\n month = '0' + month;\r\n if (day.length < 2) \r\n day = '0' + day;\r\n\r\n return [year, month, day].join('-');\r\n}\r\n\r\nexport const setTranslations = () => {\r\n const urlLang = queryString.parse(window.location.search).lang;\r\n let languages = window[\"localization\"];\r\n var langs = Object.keys(languages);\r\n var translations = {};\r\n\r\n for (let i = 0; i < langs.length; i++) {\r\n if (urlLang === undefined) {\r\n translations = languages[DEFAULT_LANGUAGE];\r\n break;\r\n }\r\n\r\n if (urlLang !== \"\" && langs[i] === urlLang) {\r\n let key = langs[i];\r\n translations = languages[key];\r\n break;\r\n }\r\n }\r\n return translations;\r\n};\r\n\r\nexport const setAppLanguageToLocalStorge = () => {\r\n const language = queryString.parse(window.location.search).lang;\r\n document.title = setTranslations().AppTitle;\r\n if (language === undefined || language === \"\") {\r\n localStorage.setItem(\"lang\", DEFAULT_LANGUAGE);\r\n } else if (language.toLowerCase() === \"sp\") {\r\n localStorage.setItem(\"lang\", \"es\");\r\n } else {\r\n localStorage.setItem(\"lang\", language);\r\n }\r\n};\r\n\r\nexport const applicationMode = () => {\r\n if (!process.env.NODE_ENV || process.env.NODE_ENV === \"development\") {\r\n console.log(\"DEVELOPMENT MODE\");\r\n } else if (!process.env.NODE_ENV || process.env.NODE_ENV === \"production\") {\r\n console.log = () => {};\r\n document.onkeydown = (e) => {\r\n if (e.keyCode == 123) {\r\n return false;\r\n }\r\n if (e.ctrlKey && e.shiftKey && e.keyCode == \"I\".charCodeAt(0)) {\r\n return false;\r\n }\r\n\r\n if (e.ctrlKey && e.shiftKey && e.keyCode == \"J\".charCodeAt(0)) {\r\n return false;\r\n }\r\n if (e.ctrlKey && e.keyCode == \"U\".charCodeAt(0)) {\r\n return false;\r\n }\r\n };\r\n\r\n document.addEventListener(\"contextmenu\", function (e) {\r\n e.preventDefault();\r\n });\r\n }\r\n};\r\nexport const SetConfig = async (data) => {\r\n WIZARD_URLs = data?.data?.APPLICATION_PROPERTIES?.URLs?.WIZARD_URL;\r\n};\r\nexport const setDateTimeSlotTheme = (data) => {\r\n $(document).ready(function () {\r\n $(\".datepicker-switch\").css({ color: DAYS_MONTH_NAME_FONT_COLOR });\r\n $(\".dow\").css({ color: DAYS_MONTH_NAME_FONT_COLOR });\r\n $(\".timeslot\").click(function () {\r\n $(\".timeslot\").each((i, d) => {\r\n $(d).css(\"background-color\", `#fff`);\r\n\r\n $(d).css(\"color\", SLOTS_FONT_COLOR);\r\n });\r\n\r\n $(this).css(\"background-color\", `${SELECTED_SLOT_BG_COLOR}`);\r\n $(this).css(\"color\", `${SELECTED_SLOT_FONT_COLOR}`);\r\n });\r\n\r\n $(\".day\").css({ color: DATE_FONT_COLOR });\r\n $(\".active\").css({\r\n color: `${SELECTED_DATE_FONT_COLOR}`,\r\n backgroundColor: SELECTED_DATE_BG_COLOR,\r\n borderTop: `1px solid ${SELECTED_DATE_BORDER_COLOR}`,\r\n });\r\n });\r\n};\r\n\r\nexport const getOs = () => {\r\n const os = [\"Windows\", \"Linux\", \"Mac\"]; // add your OS values\r\n return os.find((v) => navigator.appVersion.indexOf(v) >= 0);\r\n};\r\n\r\nexport const iosLocationPermission = {\r\n options: {\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 0,\r\n },\r\n\r\n success: function success(pos) {\r\n console.log(\"Your current position is:\");\r\n console.log(`Latitude : ${pos.coords.latitude}`);\r\n console.log(`Longitude: ${pos.coords.longitude}`);\r\n console.log(`More or less ${pos.coords.accuracy} meters.`);\r\n return { lat: pos.coords.latitude, lng: pos.coords.longitude };\r\n },\r\n\r\n error: function error(err) {\r\n return { lat: LAT, lng: LNG };\r\n },\r\n};\r\n\r\n// Simulate a location service\r\nexport const getUserLocation = function (onSuccess, onError) {\r\n let defaultLocation = { lat: LAT, lng: LNG };\r\n\r\n navigator.geolocation.getCurrentPosition(\r\n function (position) {\r\n console.log(\"POS: \", position);\r\n let allowedLocation = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n };\r\n\r\n localStorage.setItem(\"location\", JSON.stringify(allowedLocation));\r\n },\r\n function (err) {\r\n console.log(\"DENIED: \", err);\r\n localStorage.setItem(\"location\", JSON.stringify(defaultLocation));\r\n },\r\n { maximumAge: 60000, timeout: 5000, enableHighAccuracy: true }\r\n );\r\n\r\n (async () => {\r\n if (navigator.permissions && navigator.permissions.query) {\r\n const result = await navigator.permissions.query({\r\n name: \"geolocation\",\r\n });\r\n\r\n result.onchange = (state) => {\r\n console.log(\"IN CHANGE: \", state);\r\n setTimeout(function () {\r\n window.location.reload(true);\r\n }, 2000);\r\n };\r\n }\r\n })();\r\n};\r\n\r\nexport const setDatePickerLanguage = () => {\r\n $.fn.datepicker.dates[\"es\"] = {\r\n days: [\r\n \"Domingo\",\r\n \"Lunes\",\r\n \"Martes\",\r\n \"Miércoles\",\r\n \"Jueves\",\r\n \"Viernes\",\r\n \"Sábado\",\r\n ],\r\n daysShort: [\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\"],\r\n daysMin: [\"Do\", \"Lu\", \"Ma\", \"Mi\", \"Ju\", \"Vi\", \"Sa\"],\r\n months: [\r\n \"Enero\",\r\n \"Febrero\",\r\n \"Marzo\",\r\n \"Abril\",\r\n \"Mayo\",\r\n \"Junio\",\r\n \"Julio\",\r\n \"Agosto\",\r\n \"Septiembre\",\r\n \"Octubre\",\r\n \"Noviembre\",\r\n \"Diciembre\",\r\n ],\r\n monthsShort: [\r\n \"Ene\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Abr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Ago\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dic\",\r\n ],\r\n today: \"Hoy\",\r\n monthsTitle: \"Meses\",\r\n clear: \"Borrar\",\r\n weekStart: 0,\r\n format: \"dd/mm/yyyy\",\r\n };\r\n\r\n $.fn.datepicker.dates[\"ar\"] = {\r\n days: [\r\n \"الأحد\",\r\n \"الاثنين\",\r\n \"الثلاثاء\",\r\n \"الأربعاء\",\r\n \"الخميس\",\r\n \"الجمعة\",\r\n \"السبت\",\r\n \"الأحد\",\r\n ],\r\n daysShort: [\r\n \"أحد\",\r\n \"اثنين\",\r\n \"ثلاثاء\",\r\n \"أربعاء\",\r\n \"خميس\",\r\n \"جمعة\",\r\n \"سبت\",\r\n \"أحد\",\r\n ],\r\n daysMin: [\"ح\", \"ن\", \"ث\", \"ع\", \"خ\", \"ج\", \"س\", \"ح\"],\r\n months: [\r\n \"يناير\",\r\n \"فبراير\",\r\n \"مارس\",\r\n \"أبريل\",\r\n \"مايو\",\r\n \"يونيو\",\r\n \"يوليو\",\r\n \"أغسطس\",\r\n \"سبتمبر\",\r\n \"أكتوبر\",\r\n \"نوفمبر\",\r\n \"ديسمبر\",\r\n ],\r\n monthsShort: [\r\n \"يناير\",\r\n \"فبراير\",\r\n \"مارس\",\r\n \"أبريل\",\r\n \"مايو\",\r\n \"يونيو\",\r\n \"يوليو\",\r\n \"أغسطس\",\r\n \"سبتمبر\",\r\n \"أكتوبر\",\r\n \"نوفمبر\",\r\n \"ديسمبر\",\r\n ],\r\n today: \"هذا اليوم\",\r\n rtl: !0,\r\n };\r\n\r\n $.fn.datepicker.dates[\"fr\"] = {\r\n days: [\r\n \"dimanche\",\r\n \"lundi\",\r\n \"mardi\",\r\n \"mercredi\",\r\n \"jeudi\",\r\n \"vendredi\",\r\n \"samedi\",\r\n ],\r\n daysShort: [\"dim.\", \"lun.\", \"mar.\", \"mer.\", \"jeu.\", \"ven.\", \"sam.\"],\r\n daysMin: [\"d\", \"l\", \"ma\", \"me\", \"j\", \"v\", \"s\"],\r\n months: [\r\n \"janvier\",\r\n \"février\",\r\n \"mars\",\r\n \"avril\",\r\n \"mai\",\r\n \"juin\",\r\n \"juillet\",\r\n \"août\",\r\n \"septembre\",\r\n \"octobre\",\r\n \"novembre\",\r\n \"décembre\",\r\n ],\r\n monthsShort: [\r\n \"janv.\",\r\n \"févr.\",\r\n \"mars\",\r\n \"avril\",\r\n \"mai\",\r\n \"juin\",\r\n \"juil.\",\r\n \"août\",\r\n \"sept.\",\r\n \"oct.\",\r\n \"nov.\",\r\n \"déc.\",\r\n ],\r\n today: \"Aujourd'hui\",\r\n monthsTitle: \"Mois\",\r\n clear: \"Effacer\",\r\n weekStart: 1,\r\n format: \"dd/mm/yyyy\",\r\n };\r\n};\r\n\r\nexport const timeFormat = (time) => {\r\n if (TIME_HOUR_FORMAT === \"12\") {\r\n return moment(time, \"hh:mm\").format(\"hh:mm A\");\r\n } else {\r\n return time;\r\n }\r\n};\r\n\r\nexport const redirect = () => {\r\n window.location.href = WIZARD_URLs;\r\n};\r\n\r\nexport const urls = {\r\n MODIFY_APPOINTMENT: `${window.location.origin}/modifyappointment?appointmentnumber={{appointment_number}}&lang=`,\r\n CHECK_IN: `${window.location.origin}/checkin`,\r\n};\r\n\r\nexport const showErrMsg = async (title, message, okBtnText, url) => {\r\n try {\r\n let resp = await swal(title, message, \"error\", {\r\n buttons: {\r\n ok: {\r\n text: okBtnText,\r\n value: \"ok\",\r\n },\r\n },\r\n });\r\n if (resp === \"ok\") {\r\n redirect(url);\r\n }\r\n } catch (error) {\r\n console.log(\"ERROR: \", error.message);\r\n }\r\n};\r\n\r\nexport const showErrorMessage = async (\r\n title,\r\n message,\r\n okBtnText,\r\n redirectUrl\r\n) => {\r\n let resp = await swal(title, message, \"error\", {\r\n buttons: {\r\n ok: {\r\n text: okBtnText,\r\n value: \"ok\",\r\n },\r\n },\r\n });\r\n if (resp === \"ok\") {\r\n redirect(WIZARD_URLs !== undefined ? WIZARD_URLs : window.location.href);\r\n }\r\n};\r\n\r\nexport const showAlertMeg = async (\r\n title,\r\n message,\r\n okBtnText,\r\n redirectUrl\r\n) => {\r\n let resp = await swal(title, message, \"error\", {\r\n buttons: {\r\n ok: {\r\n text: okBtnText,\r\n value: \"ok\",\r\n },\r\n },\r\n });\r\n};\r\n\r\nexport const removeKeyFromUrl = (path, key, otherQueryString) => {\r\n let urlObject = queryString.parse(window.location.search);\r\n if (urlObject.appointmentnumber !== undefined) {\r\n delete urlObject[key];\r\n }\r\n let url = `${window.location.origin}/${path}?lang=${\r\n urlObject.lang === undefined ? DEFAULT_LANGUAGE : urlObject.lang\r\n }${otherQueryString !== undefined ? otherQueryString : \"\"}`;\r\n return REDIRECT_TO_CURRENT_PAGE ? url : WIZARD_URLs;\r\n};\r\n\r\nexport const validateEmail = (email) => {\r\n var emailReg = /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$/;\r\n return emailReg.test(email);\r\n};\r\n\r\nexport const showSuccessMessage = async (message, okBtnText, redirectUrl) => {\r\n try {\r\n let resp = await swal(\"\", message, \"success\", {\r\n buttons: {\r\n ok: {\r\n text: okBtnText,\r\n value: \"ok\",\r\n },\r\n },\r\n closeOnClickOutside: false,\r\n closeOnEsc: false,\r\n });\r\n if (resp === \"ok\") {\r\n window.location.href = redirectUrl;\r\n }\r\n } catch (error) {\r\n console.log(\"ERR: \", error);\r\n }\r\n};\r\n\r\nexport const notify = () => {\r\n var audio = new Audio(`${process.env.PUBLIC_URL + `/audio/${TICKET_CALL}`}`);\r\n audio.play();\r\n};\r\n\r\nexport const onBrowserReload = (callback) => {\r\n var type;\r\n if (window.performance.getEntriesByType(\"navigation\")) {\r\n type = window.performance.getEntriesByType(\"navigation\")[0].type;\r\n\r\n if (type == \"navigate\") {\r\n console.log(\"TYPE_NAVIGATE\");\r\n }\r\n if (type == \"reload\") {\r\n callback();\r\n }\r\n if (type == \"back_forward\") {\r\n console.log(\"BACK_FORWARD\");\r\n }\r\n if (type == \"prerender\") {\r\n console.log(\"PRE_RENDER\");\r\n }\r\n }\r\n};\r\n","import axios from \"axios\";\r\nconst queryString = require(\"query-string\");\r\n\r\nlet {\r\n DEFAULT_LANGUAGE,\r\n CENTRAL_SERVER_COMMUNICATION,\r\n REQUEST_TIMEOUT,\r\n REGION_ID,\r\n IS_LOBBY_LEADER,\r\n URLs: { API_URL, MESSAGING_SERVER_URL, CENTRAL_SERVER_IP, QR_TICKET_URL },\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\nlet API_URLs;\r\nlet MESSAGING_SERVER_URLs;\r\nlet CENTRAL_SERVER_IPs;\r\nlet QR_TICKET_URLs;\r\nexport class HttpService {\r\n queryStringBranchCode = queryString.parse(window.location.search);\r\n branchCode = this.queryStringBranchCode.branchCode;\r\n\r\n queryStringlang = queryString.parse(window.location.search);\r\n qsSqn = queryString.parse(window.location.search).sqn;\r\n lang =\r\n this.queryStringlang.lang === undefined\r\n ? DEFAULT_LANGUAGE\r\n : this.queryStringlang.lang;\r\n\r\n /* GET REQUEST */\r\n getDeviceDetails = async () => {\r\n \r\n let url = `${API_URLs}PhoneCustomInfo`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n SetConfig = (data) => {\r\n API_URLs = data?.data?.APPLICATION_PROPERTIES?.URLs?.API_URL;\r\n MESSAGING_SERVER_URLs =\r\n data?.data?.APPLICATION_PROPERTIES?.URLs?.MESSAGING_SERVER_URL;\r\n CENTRAL_SERVER_IPs =\r\n data?.data?.APPLICATION_PROPERTIES?.URLs?.CENTRAL_SERVER_IP;\r\n QR_TICKET_URLs = data?.data?.APPLICATION_PROPERTIES?.URLs?.QR_TICKET_URL;\r\n };\r\n getAllCategories = async () => {\r\n let url = `${API_URLs}GetCategories`;\r\n if (this.qsSqn === undefined) {\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n }\r\n };\r\n\r\n getCategoriesByBranchId = async (branchId) => {\r\n let url = `${API_URLs}Categories/${branchId}|${\r\n this.lang === \"es\" ? \"Sp\" : this.lang\r\n }`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n getAllBranches = async () => {\r\n let url = `${API_URLs}/GetBranchList/2|${\r\n this.lang === \"es\" ? \"Sp\" : this.lang\r\n }|${REGION_ID}`;\r\n if (\r\n CENTRAL_SERVER_COMMUNICATION === false &&\r\n this.branchCode === undefined\r\n ) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else if (this.branchCode === undefined) {\r\n let response = axios.get(url, { timeout: REQUEST_TIMEOUT });\r\n return response;\r\n }\r\n };\r\n\r\n getSingleBranchDetails = async () => {\r\n let url = `${API_URLs}GetSingleBranchDetails/2|${\r\n this.lang === \"es\" ? \"Sp\" : this.lang\r\n }|branch_code=${this.branchCode}`;\r\n\r\n if (\r\n CENTRAL_SERVER_COMMUNICATION === false &&\r\n this.branchCode !== undefined\r\n ) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else if (this.branchCode !== undefined) {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n getBranchesByCategory = async (categoryId) => {\r\n let url = `${API_URLs}/GetBranchListByCategory/2|${categoryId}|${\r\n this.lang === \"es\" ? \"Sp\" : this.lang\r\n }|${REGION_ID}`;\r\n\r\n if (\r\n CENTRAL_SERVER_COMMUNICATION === false &&\r\n this.branchCode === undefined\r\n ) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url, { timeout: REQUEST_TIMEOUT });\r\n return response;\r\n }\r\n };\r\n\r\n cancelAppointment = async (\r\n AppointmentNumber,\r\n categoryId,\r\n BranchId,\r\n Email\r\n ) => {\r\n let url = `${API_URLs}CancelAppointmentTicket/${AppointmentNumber}|${categoryId}|${BranchId}|${Email}|${\r\n this.lang === \"es\" ? \"Sp\" : this.lang\r\n }`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n console.log(\r\n \"APPT NO: \",\r\n AppointmentNumber,\r\n \" Category: \",\r\n categoryId,\r\n \" Branch: \",\r\n BranchId,\r\n \" Email: \",\r\n Email\r\n );\r\n return response;\r\n }\r\n };\r\n\r\n issueTicket = async (\r\n branchId,\r\n categoryId,\r\n priority,\r\n email,\r\n deviceType,\r\n language,\r\n Payload1,\r\n Payload2,\r\n Payload3,\r\n Payload4,\r\n Payload7\r\n ) => {\r\n let url = `${API_URLs}issueTicket/${branchId}|${categoryId}|${priority}|${email}|${deviceType}|-|-|${language}|-|${Payload1}|${Payload2}|${Payload3}|${Payload4}|-|${language}|${Payload7}`;\r\n console.log(\r\n \"DATA : \",\r\n branchId,\r\n categoryId,\r\n priority,\r\n email,\r\n deviceType,\r\n \" PAYLOADS : \",\r\n {\r\n P1: Payload1,\r\n P2: Payload2,\r\n P3: Payload3,\r\n P4: Payload4,\r\n P7: Payload7,\r\n }\r\n );\r\n console.log(\"ISSUE TICKET URL\", url);\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n\r\n console.log(branchId, categoryId, priority, email, deviceType);\r\n return response;\r\n }\r\n };\r\n\r\n issueTicketQR = async (\r\n branchId,\r\n categoryId,\r\n prefix,\r\n priority,\r\n payload1,\r\n payload2,\r\n payload3,\r\n payload4,\r\n payload5,\r\n language,\r\n payload7,\r\n payload8,\r\n payload9,\r\n payload10\r\n ) => {\r\n let url = `${QR_TICKET_URLs}IssueTicketFromWebTicketing?BranchId=${branchId}&SQN=${categoryId}&prefix=${prefix}&Payload1=${payload1}&Payload2=${payload2}&Payload3=${payload3}&Payload4=${payload4}&Payload5=${payload5}&Payload6=${language}&Payload7=${payload7}&Payload8=${payload8}&Payload9=${payload9}&Payload10=${payload10}&priority=${priority}`;\r\n console.log(\"ISSUE QR TICKET URL\", url);\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n cancelQrTicket = async (branchId, branchCode, ticketId) => {\r\n let url = `${QR_TICKET_URLs}CancelTicketFromWebTicketing?BranchId=${branchId}&BranchCode=${branchCode}&TicketId=${ticketId}&CancelReason=Cancel`;\r\n\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n console.log(\"CANCEL QR TICKET URL\", url);\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n issueTicketSpectra = (postObject) => {\r\n let url = \"\";\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = axios.post(url, postObject);\r\n return response;\r\n }\r\n };\r\n\r\n cancelTicket = async (\r\n email,\r\n ticketId,\r\n branchId,\r\n language,\r\n ticketNumber,\r\n SQN,\r\n phoneNumber\r\n ) => {\r\n let url = `${API_URLs}cancelTicket/${email}|${ticketId}|${branchId}|${language}|${ticketNumber}|${SQN}|${phoneNumber}`;\r\n console.log(\"CANCEL TICKET URL: \", url);\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n markAppointmentUsedAfterTicketIssue = async (\r\n appointmentNumber,\r\n emailAddress,\r\n ticketNumber\r\n ) => {\r\n let url = `${API_URLs}TicketIssuedForAppointment/${appointmentNumber}|${emailAddress}|${ticketNumber}`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n verifyAppointmentInfo = async (\r\n email,\r\n phoneNumber,\r\n appointmentNumber,\r\n branchIp\r\n ) => {\r\n let url = `${API_URLs}VerifyAppointmentInfo_Json/||${email}|${phoneNumber}|${appointmentNumber}||${branchIp}|`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n console.log(\"VERIFY APPOINTMENT URL\", url);\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n getNearByBranches = async (Sqn, Latitude, Longitude) => {\r\n let url = `${API_URLs}GetNearestBranches/${Latitude}|${Longitude}|${Sqn}|${this.lang}|${REGION_ID}`;\r\n\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: null,\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n /* POST REQUEST */\r\n\r\n getDisabledAppointmentDates = async (\r\n BranchID,\r\n CategoryID,\r\n FutureDaysForAppointment\r\n ) => {\r\n let url = `${API_URLs}GetDisabledDates/${BranchID}|${CategoryID}|${FutureDaysForAppointment}`;\r\n\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: {\r\n BranchID: BranchID,\r\n CategoryID: CategoryID,\r\n },\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.get(url);\r\n return response;\r\n }\r\n };\r\n\r\n getDateTimeSlots = async (\r\n BranchID,\r\n CategoryID,\r\n AppointmentDate,\r\n AppointmentAheadDays\r\n ) => {\r\n let url = `${API_URLs}GetAllDaysSlotsOfBranch`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: {\r\n BranchID: BranchID,\r\n CategoryID: CategoryID,\r\n AppointmentDate: AppointmentDate,\r\n AppointmentAHeadDays: AppointmentAheadDays,\r\n },\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.post(url, {\r\n BranchID: BranchID,\r\n CategoryID: CategoryID,\r\n AppointmentDate: AppointmentDate,\r\n AppointmentAHeadDays: AppointmentAheadDays,\r\n });\r\n return response;\r\n }\r\n };\r\n\r\n issueAppointment = async (\r\n CategoryID,\r\n BranchID,\r\n BranchTitle,\r\n BranchAddress,\r\n BranchContactNo,\r\n SlotID,\r\n DeviceType,\r\n AppointmentDate,\r\n UserID,\r\n Flag,\r\n IsReschedule,\r\n Payloads,\r\n Lang,\r\n SlotTime\r\n ) => {\r\n let url = `${API_URLs}IssueAppointmentTicket`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: {\r\n categoryid: CategoryID,\r\n branchid: BranchID,\r\n branchTitle: BranchTitle,\r\n branchAddress: BranchAddress,\r\n branchPhoneNumber: BranchContactNo,\r\n slotid: SlotID,\r\n deviceType: DeviceType,\r\n appointmentDate: AppointmentDate,\r\n userId: UserID,\r\n flag: Flag,\r\n isReschedule: IsReschedule,\r\n payloads: Payloads,\r\n lang: Lang,\r\n slotTime: SlotTime,\r\n },\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.post(url, {\r\n categoryid: CategoryID,\r\n branchid: BranchID,\r\n branchTitle: BranchTitle,\r\n branchAddress: BranchAddress,\r\n branchPhoneNumber: BranchContactNo,\r\n slotid: SlotID,\r\n deviceType: DeviceType,\r\n appointmentDate: AppointmentDate,\r\n userId: UserID,\r\n flag: Flag,\r\n isReschedule: IsReschedule,\r\n payloads: Payloads,\r\n lang: Lang,\r\n slotTime: SlotTime,\r\n });\r\n return response;\r\n }\r\n };\r\n\r\n rescheduleAppointment = async (\r\n PrevAppointmentNumber,\r\n PreviousApptCategoryId,\r\n CategoryID,\r\n BranchID,\r\n BranchTitle,\r\n BranchAddress,\r\n BranchContactNo,\r\n SlotID,\r\n DeviceType,\r\n AppointmentDate,\r\n UserID,\r\n Flag,\r\n IsReschedule,\r\n Payloads,\r\n Lang,\r\n SlotTime\r\n ) => {\r\n let url = `${API_URLs}RescheduleAppointmentTicket`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: {\r\n prevAppointmentNumber: PrevAppointmentNumber,\r\n previousApptCategoryId: PreviousApptCategoryId,\r\n categoryid: CategoryID,\r\n branchid: BranchID,\r\n branchTitle: BranchTitle,\r\n branchAddress: BranchAddress,\r\n branchPhoneNumber: BranchContactNo,\r\n slotid: SlotID,\r\n deviceType: DeviceType,\r\n appointmentDate: AppointmentDate,\r\n userId: UserID,\r\n flag: Flag,\r\n isReschedule: IsReschedule,\r\n payloads: Payloads,\r\n lang: Lang,\r\n slotTime: SlotTime,\r\n },\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.post(url, {\r\n prevAppointmentNumber: PrevAppointmentNumber,\r\n previousApptCategoryId: PreviousApptCategoryId,\r\n categoryid: CategoryID,\r\n branchid: BranchID,\r\n branchTitle: BranchTitle,\r\n branchAddress: BranchAddress,\r\n branchPhoneNumber: BranchContactNo,\r\n slotid: SlotID,\r\n deviceType: DeviceType,\r\n appointmentDate: AppointmentDate,\r\n userId: UserID,\r\n flag: Flag,\r\n isReschedule: IsReschedule,\r\n payloads: Payloads,\r\n lang: Lang,\r\n slotTime: SlotTime,\r\n });\r\n return response;\r\n }\r\n };\r\n\r\n getTicketStatus = async (branchId, ticketId, ticketNumber, categoryId) => {\r\n let url = `${API_URLs}GetTicketStatus`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: {\r\n branch_id: branchId,\r\n ticket_id: ticketId,\r\n ticket_number: ticketNumber,\r\n category_id: categoryId,\r\n is_lobby_leader: IS_LOBBY_LEADER,\r\n },\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.post(url, {\r\n branch_id: branchId,\r\n ticket_id: ticketId,\r\n ticket_number: ticketNumber,\r\n category_id: categoryId,\r\n is_lobby_leader: IS_LOBBY_LEADER,\r\n });\r\n\r\n return response;\r\n }\r\n };\r\n\r\n getAppointmentInfo = async (appointmentNumber, email, phoneNumber) => {\r\n let url = `${API_URLs}GetAppointmentInfo`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: {\r\n appointment_number: appointmentNumber,\r\n email: email,\r\n cell_number: phoneNumber,\r\n },\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.post(url, {\r\n appointment_number: appointmentNumber,\r\n email: email,\r\n cell_number: phoneNumber,\r\n });\r\n return response;\r\n }\r\n };\r\n\r\n getEstimatedWaitTime = async (branchId, Sqn) => {\r\n let url = `${API_URLs}GetEstWaitTime`;\r\n if (CENTRAL_SERVER_COMMUNICATION === false) {\r\n let response = await axios.post(\r\n MESSAGING_SERVER_URLs,\r\n {\r\n payload: url,\r\n centralServerIp: CENTRAL_SERVER_IPs,\r\n body: {\r\n BranchId: branchId,\r\n SQN: Sqn,\r\n },\r\n },\r\n { timeout: REQUEST_TIMEOUT }\r\n );\r\n return response.data;\r\n } else {\r\n let response = axios.post(url, {\r\n BranchId: branchId,\r\n SQN: Sqn,\r\n });\r\n return response;\r\n }\r\n };\r\n}\r\n","import React from \"react\";\r\n\r\nconst Header = () => {\r\n let {\r\n HEADER: { LOGO, BACKGROUND_COLOR, LOGO_WIDTH },\r\n } = window[\"theme\"].THEME;\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\n\r\nconst { FONT_COLOR, INFO_HEADING_COLOR } =\r\n window[\"theme\"].THEME.USER_DETAILS_SCREEN;\r\n\r\nconst Info = ({\r\n slot = \"\",\r\n branch = \"\",\r\n category = \"\",\r\n getTranslations = {},\r\n}) => {\r\n return (\r\n
\r\n
\r\n {getTranslations.YouChosen}\r\n
\r\n \r\n {category}\r\n
\r\n \r\n {branch.BranchTitle}\r\n \r\n
\r\n {branch.Address}\r\n
\r\n \r\n {slot}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Info;\r\n","import React from \"react\";\r\n\r\nconst RowFlexContainer = ({ children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default RowFlexContainer;\r\n","import React from \"react\";\r\n\r\nconst PrimaryButton = ({\r\n bgColor,\r\n fontColor,\r\n onClick,\r\n btnText,\r\n disabled = false,\r\n showLoader = false,\r\n}) => {\r\n return (\r\n <>\r\n \r\n {showLoader ? : null}  \r\n {btnText}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PrimaryButton;\r\n","import React from \"react\";\r\n\r\nconst SecondaryButton = ({ color, bgColor, onClick, btnText }) => {\r\n return (\r\n \r\n {btnText}\r\n \r\n );\r\n};\r\n\r\nexport default SecondaryButton;\r\n","import React, { Component } from \"react\";\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\nimport Info from \"./../components/Info\";\r\nimport RowFlexContainer from \"./../components/RowFlexContainer\";\r\nimport * as utils from \"../utills/utils\";\r\nimport $ from \"jquery\";\r\nimport moment from \"moment\";\r\nimport swal from \"sweetalert\";\r\nimport PrimaryButton from \"../components/PrimaryButton\";\r\nimport SecondaryButton from \"./../components/SecondaryButton\";\r\n\r\nconst {\r\n FONT_COLOR,\r\n LABEL_COLOR,\r\n BTN_COLOR,\r\n BTN_TEXT_COLOR,\r\n RETURN_BTN_COLOR,\r\n BTN_DISABLED_COLOR,\r\n BTN_DISABLED_TEXT_COLOR,\r\n CLEAR_BTN_COLOR,\r\n CLEAR_BTN_TEXT_COLOR,\r\n FIELDS_BORDER_COLOR,\r\n CHECKBOX_LABEL_COLOR,\r\n} = window[\"theme\"].THEME.USER_DETAILS_SCREEN;\r\nconst queryString = require(\"query-string\");\r\n\r\nlet httpService = new HttpService();\r\nlet qsLanguage = queryString.parse(window.location.search).lang;\r\n\r\nlet {\r\n DEFAULT_LANGUAGE,\r\n URLs: { WIZARD_URL },\r\n DEFAULT_PHONE_PREFIX,\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\nlet language =\r\n window[\"localization\"][qsLanguage] !== undefined\r\n ? window[\"localization\"][qsLanguage]\r\n : window[\"localization\"][DEFAULT_LANGUAGE];\r\n\r\nlet { USER_DETAILS_SCREEN } = window[\"theme\"].THEME;\r\n\r\nlet controls = USER_DETAILS_SCREEN.CONTROLS.primaryControls(language);\r\nlet secondaryControls =\r\n USER_DETAILS_SCREEN.CONTROLS.secondaryControls(language);\r\n\r\ncontrols = controls.filter((c) => {\r\n return c.isEnabled === true;\r\n});\r\n\r\nsecondaryControls = secondaryControls.filter((sc) => {\r\n return sc.isEnabled === true;\r\n});\r\n\r\nclass UserDetails extends Component {\r\n state = {\r\n isValidFields: false,\r\n isValidSecondaryControls: undefined,\r\n controls: controls,\r\n secondaryControls: secondaryControls,\r\n response: null,\r\n dataLoaded: true,\r\n payloads: {},\r\n };\r\n\r\n componentDidMount() {\r\n localStorage.removeItem(\"FullName\");\r\n let controls = this.state.controls;\r\n let isAllValidValues = true;\r\n let isAllValidSecondaryControls = true;\r\n for (let i = 0; i < controls.length; i++) {\r\n if (controls[i].validate === true && controls[i].isValid === false) {\r\n isAllValidValues = false;\r\n break;\r\n } else if (\r\n controls[i].value === null &&\r\n controls[i].isMandatory === true\r\n ) {\r\n isAllValidValues = false;\r\n break;\r\n }\r\n }\r\n for (let i = 0; i < secondaryControls.length; i++) {\r\n if (\r\n secondaryControls[i].isMandatory === true &&\r\n secondaryControls[i].isChecked === false\r\n ) {\r\n isAllValidSecondaryControls = false;\r\n break;\r\n }\r\n }\r\n\r\n this.setState({\r\n isValidFields: isAllValidValues,\r\n isValidSecondaryControls: isAllValidSecondaryControls,\r\n });\r\n }\r\n\r\n issueAppointment = async () => {\r\n\r\n const dateOf = this.getFieldValue(\"dateofBirth\").split(',');\r\n\r\n this.setState({ dataLoaded: false });\r\n var {translations} = this.props;\r\n if(dateOf[0]<=utils.formatDate()){\r\n try {\r\n var { category, branch, timeSlot } = this.props;\r\n \r\n let { data } = await httpService.issueAppointment(\r\n category.CategoryID,\r\n branch.BranchID,\r\n branch.BranchTitle,\r\n branch.Address,\r\n branch.ContactNo,\r\n timeSlot.split(\"|\")[2],\r\n 2,\r\n moment(timeSlot.split(\"|\")[0], \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\r\n \r\n this.getFieldValue(\"EmailId\"),\r\n 1,\r\n 0,\r\n //this.getPayloads(),\r\n this.getAppointmentPayloads(),\r\n localStorage.getItem(\"lang\") === \"es\"\r\n ? \"Sp\"\r\n : localStorage.getItem(\"lang\"),\r\n timeSlot.split(\"|\")[1]\r\n );\r\n \r\n if (data.error !== undefined && data.error === true) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.ServerNotResponding,\r\n translations.Ok\r\n );\r\n } else {\r\n this.setState({ response: data, dataLoaded: true });\r\n this.props.setAPIResponseForParent({\r\n response: data,\r\n userDetails: this.state.controls,\r\n });\r\n if (data.issueAppointment.resp_status === -6) {\r\n swal(\r\n translations.AppointmentAlreadyExists,\r\n translations.YouAlreadyHaveAnAppointment,\r\n \r\n {\r\n icon: \"warning\",\r\n buttons: {\r\n keepPreviousOne: {\r\n text: translations.KeepPrevious,\r\n value: \"keepPreviousOne\",\r\n },\r\n reschedule: {\r\n text: translations.Reschedule,\r\n value: \"reschedule\",\r\n closeModal: false,\r\n },\r\n },\r\n }\r\n ).then(async (value) => {\r\n switch (value) {\r\n case \"keepPreviousOne\":\r\n if (data.previous_appointment_info != null) {\r\n this.props.hadleAppointmentIssue();\r\n }\r\n break;\r\n \r\n case \"reschedule\":\r\n this.rescheduleAppointment();\r\n \r\n break;\r\n \r\n default:\r\n }\r\n });\r\n } else if (data.issueAppointment.resp_status === 1) {\r\n this.props.hadleAppointmentIssue();\r\n } else if (\r\n data.issueAppointment.resp_message ===\r\n \"Appointment quota for this time slot has reached to its maximum value. Try selecting different time slot.\"\r\n ) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.TimeSlotQuotaExceed,\r\n translations.Ok\r\n );\r\n } else {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.SomeThingWentWrong,\r\n translations.Ok\r\n );\r\n }\r\n }\r\n } catch (error) {\r\n // console.log(\"ERROR: \", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.ServerNotResponding,\r\n translations.Ok\r\n );\r\n } else {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.SomeThingWentWrong,\r\n translations.Ok\r\n );\r\n }\r\n }\r\n }else{\r\n this.setState({ dataLoaded: true });\r\n utils.showAlertMeg(\r\n translations.Error,\r\n translations.ShowDateOfBirthAlert,\r\n translations.Ok\r\n );\r\n }\r\n };\r\n\r\n rescheduleAppointment = async () => {\r\n\r\n const dateOf = this.getFieldValue(\"dateofBirth\").split(',');\r\n\r\n this.setState({ dataLoaded: false });\r\n var {translations} = this.props;\r\n if(dateOf[0]<=utils.formatDate()){\r\n try {\r\n var { category, branch, timeSlot, apiReponse } = this.props;\r\n let { data } = await httpService.rescheduleAppointment(\r\n apiReponse.previous_appointment_info === null\r\n ? apiReponse.issueAppointment.appointment_number\r\n : apiReponse.previous_appointment_info.appointment_number,\r\n apiReponse.previous_appointment_info === null\r\n ? category.CategoryID\r\n : apiReponse.previous_appointment_info.category_id,\r\n category.CategoryID,\r\n branch.BranchID,\r\n branch.BranchTitle,\r\n branch.Address,\r\n branch.ContactNo,\r\n timeSlot.split(\"|\")[2],\r\n 2,\r\n moment(timeSlot.split(\"|\")[0], \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\r\n \r\n this.getFieldValue(\"EmailId\"),\r\n 1,\r\n 0,\r\n //this.getPayloads(),\r\n this.getAppointmentPayloads(),\r\n localStorage.getItem(\"lang\") === \"es\"\r\n ? \"Sp\"\r\n : localStorage.getItem(\"lang\"),\r\n timeSlot.split(\"|\")[1]\r\n );\r\n if (data.error !== undefined && data.error === true) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.SomeThingWentWrong,\r\n translations.Ok\r\n );\r\n } else {\r\n if (data.issueAppointment.resp_message === \"success\") {\r\n this.setState({\r\n response: data,\r\n dataLoaded: true,\r\n });\r\n this.props.setAPIResponseForParent({\r\n response: data,\r\n userDetails: this.state.controls,\r\n });\r\n swal.close();\r\n this.props.hadleAppointmentIssue();\r\n } else if (\r\n data.issueAppointment.resp_message ===\r\n \"Appointment quota for this time slot has reached to its maximum value. Try selecting different time slot.\"\r\n ) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.TimeSlotQuotaExceed,\r\n translations.Ok\r\n );\r\n } else if (data.issueAppointment.resp_status === 6) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.AppointmentAlreadyCanceled,\r\n translations.Ok\r\n );\r\n } else if (data.issueAppointment.resp_status === 7) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.AppointmentExpired,\r\n translations.Ok\r\n );\r\n } else if (data.issueAppointment.resp_status === 3) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.CantRescheduleApptTcktIssued,\r\n translations.Ok\r\n );\r\n } else if (data.issueAppointment.resp_status === -2) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.AlreadyServed,\r\n translations.Ok\r\n );\r\n } else if (data.issueAppointment.resp_status === -3) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.ApptCanceledAutomatically,\r\n translations.Ok\r\n );\r\n } else if (data.issueAppointment.resp_status === -6) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.YouAlreadyHaveAnAppointment,\r\n translations.Ok\r\n );\r\n } else {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.SomeThingWentWrong,\r\n translations.Ok\r\n );\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"IN CATCH OF RA: \", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.ServerNotResponding,\r\n translations.Ok\r\n );\r\n } else {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.SomeThingWentWrong,\r\n translations.Ok\r\n );\r\n }\r\n }\r\n }else{\r\n this.setState({ dataLoaded: true });\r\n utils.showAlertMeg(\r\n translations.Error,\r\n translations.ShowDateOfBirthAlert,\r\n translations.Ok\r\n );\r\n }\r\n };\r\n\r\n handleControlChange = (e) => {\r\n let control = controls.find((c) => {\r\n return c.id === e.target.id;\r\n });\r\n let index = controls.indexOf(control);\r\n control.value = e.target.value;\r\n controls[index] = control;\r\n var regex = control.regex;\r\n\r\n if (e.target.value.length > control.maxLength) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n if (\r\n control.validate === true &&\r\n regex !== null &&\r\n !regex.test(e.target.value)\r\n ) {\r\n control.isValid = false;\r\n } else if (\r\n control.isMandatory === true &&\r\n (control.value === null || control.value === \"\")\r\n ) {\r\n control.isValid = false;\r\n } else {\r\n control.isValid = true;\r\n }\r\n\r\n for (let i = 0; i < controls.length; i++) {\r\n let c = controls[i];\r\n if (c.isMandatory === true && (c.value === null || c.value === \"\")) {\r\n this.setState({ isValidFields: false, controls: controls });\r\n break;\r\n } else if (c.validate === true && c.isValid === false) {\r\n this.setState({ isValidFields: false, controls: controls });\r\n break;\r\n } else {\r\n this.setState({ isValidFields: true, controls: controls });\r\n }\r\n }\r\n };\r\n\r\n handleCheckBoxChange = (e) => {\r\n let control = secondaryControls.find((sc) => {\r\n return sc.id === e.target.id;\r\n });\r\n if (control.isMandatory === true && e.target.checked === true) {\r\n this.setState({ isValidSecondaryControls: true });\r\n // console.log(\"IN IF TRUE\");\r\n } else if (control.isMandatory === true && e.target.checked === false) {\r\n this.setState({ isValidSecondaryControls: false });\r\n }\r\n\r\n let index = secondaryControls.indexOf(control);\r\n control.isChecked = e.target.checked;\r\n secondaryControls[index] = control;\r\n // console.log(\"PRI: \", this.state.isValidFields);\r\n // console.log(\"SEC: \", this.state.isValidSecondaryControls);\r\n };\r\n\r\n getFieldValue = (fieldName) => {\r\n let control = this.state.controls.find((c) => c.fieldName === fieldName);\r\n // console.log(\"control :\",control);\r\n if (control === undefined || control.value === null || control.value == \"\") {\r\n return \"\";\r\n } else {\r\n if((fieldName == \"additionalInfo\" ||fieldName == \"dateofBirth\" || fieldName == \"PassportNumber\") && control.value !== \" \" ){\r\n return control.value + \",\";\r\n }\r\n else{\r\n return control.value\r\n }\r\n \r\n }\r\n \r\n \r\n\r\n \r\n };\r\n \r\n getPayloads = () => {\r\n var filteredPayloads = [];\r\n var payloads = [];\r\n let ctrls = controls;\r\n for (let i = 0; i < ctrls.length; i++) {\r\n var object = {};\r\n object[\"fieldName\"] = ctrls[i].fieldName;\r\n object[\"fieldValue\"] = ctrls[i].value;\r\n\r\n filteredPayloads.push(object);\r\n }\r\n\r\n filteredPayloads.forEach((o) => {\r\n let temp = payloads.find((x) => {\r\n if (x && x.fieldName === o.fieldName) {\r\n x.fieldValue += \", \" + o.fieldValue;\r\n return true;\r\n }\r\n });\r\n if (!temp) payloads.push(o);\r\n });\r\n let arr = [...payloads];\r\n arr.push({\r\n fieldName: \"AppUrl\",\r\n fieldValue: `${utils.urls.MODIFY_APPOINTMENT}${localStorage.getItem(\r\n \"lang\"\r\n )}`,\r\n });\r\n return arr;\r\n };\r\n\r\n getAppointmentPayloads = () => {\r\n let paylaods = [\r\n {\r\n fieldName: \"EmailId\",\r\n fieldValue:\r\n this.getFieldValue(\"EmailId\") !== \"\"\r\n ? this.getFieldValue(\"EmailId\")\r\n : this.getFieldValue(\"MobileNumber\") !== \"\"\r\n ? this.getFieldValue(\"MobileNumber\")\r\n : \"\",\r\n },\r\n {\r\n fieldName: \"MobileNumber\",\r\n fieldValue: `${DEFAULT_PHONE_PREFIX}${this.getFieldValue(\r\n \"MobileNumber\"\r\n )}`,\r\n },\r\n {\r\n fieldName: \"PhoneModel\",\r\n fieldValue: \"\",\r\n },\r\n {\r\n fieldName: \"PhoneColor\",\r\n fieldValue: \"\",\r\n },\r\n {\r\n fieldName: \"PhoneService\",\r\n fieldValue: \"\",\r\n },\r\n {\r\n fieldName: \"IMEINumber\",\r\n fieldValue: \"\",\r\n },\r\n {\r\n fieldName: \"DeviceHealth\",\r\n fieldValue:\r\n this.getFieldValue(\"additionalInfo\") +\r\n \r\n this.getFieldValue(\"dateofBirth\") +\r\n \r\n this.getFieldValue(\"PassportNumber\")\r\n },\r\n {\r\n fieldName: \"FirstName\",\r\n fieldValue: this.getFieldValue(\"FirstName\"),\r\n },\r\n {\r\n fieldName: \"Surname\",\r\n fieldValue: this.getFieldValue(\"Surname\"),\r\n },\r\n {\r\n fieldName: \"AppUrl\",\r\n fieldValue: `${utils.urls.MODIFY_APPOINTMENT}${localStorage.getItem(\r\n \"lang\"\r\n )}`,\r\n },\r\n ];\r\n return paylaods;\r\n };\r\n render() {\r\n localStorage.setItem(\r\n \"FullName\",\r\n this.getFieldValue(\"FirstName\") + \" \" + this.getFieldValue(\"Surname\")\r\n );\r\n var { category, branch, timeSlot, translations } = this.props;\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n {translations.UserDetailsInfoText}\r\n

\r\n
\r\n
\r\n
\r\n {controls.map((c, i) => {\r\n if (c.type === \"select\") {\r\n return (\r\n
\r\n \r\n {c.labelName}\r\n \r\n\r\n \r\n \r\n {c.labelName}\r\n \r\n\r\n {c.options.map((data, i) => (\r\n \r\n {data.text}\r\n \r\n ))}\r\n \r\n
\r\n );\r\n } else if (c.type === \"textarea\") {\r\n return (\r\n
\r\n \r\n {c.labelName}\r\n {c.isMandatory === true ? \"*\" : \"\"}\r\n \r\n \r\n {c.value}\r\n \r\n
\r\n );\r\n } else if (c.type === \"date\") {\r\n return (\r\n
\r\n \r\n {c.labelName}\r\n {c.isMandatory === true ? \"*\" : \"\"}\r\n \r\n \r\n
\r\n );\r\n }else {\r\n return (\r\n
\r\n \r\n {c.labelName}\r\n {c.isMandatory === true ? \"*\" : \"\"}\r\n \r\n \r\n
\r\n );\r\n }\r\n })}\r\n
\r\n \r\n utils.redirect(window.location.href)}\r\n />\r\n \r\n {secondaryControls.map((sc, i) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n\r\n \r\n \r\n \r\n \r\n utils.redirect()}\r\n disabled={false}\r\n showLoader={false}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default UserDetails;\r\n","import React from \"react\";\nimport { css } from \"@emotion/core\";\nimport FadeLoader from \"react-spinners/FadeLoader\";\n\nlet {\n LOADER: { COLOR },\n} = window[\"theme\"].THEME;\n\nconst override = css`\n display: block;\n margin: 0 auto;\n height: 200;\n`;\nconst Loader = ({ loading = true }) => {\n return (\n \n \n \n );\n};\n\nexport default Loader;\n","import React, { useState, useEffect, Component } from \"react\";\r\n\r\nimport $ from \"jquery\";\r\nimport moment from \"moment\";\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\nimport Loader from \"./../components/Loader\";\r\nimport * as utils from \"../utills/utils\";\r\nimport { Scrollbars } from \"react-custom-scrollbars\";\r\nconst queryString = require(\"query-string\");\r\nlet qsSqn = queryString.parse(window.location.search).sqn;\r\nvar {\r\n SLOTS_SCREEN: {\r\n SLOTS_BG_COLOR,\r\n DISABLED_SLOT_OPTION,\r\n SLOTS_FONT_COLOR,\r\n MIN_DATE_ARRAY,\r\n DISABLED_DATES,\r\n },\r\n} = window[\"theme\"].THEME;\r\n\r\nvar MIN_DATE = \"\";\r\nvar disabledDate = false\r\nlet { SLOTS_TO_SHOW, DEFAULT_CATEGORY, DEFAULT_AHEAD_DAYS } =\r\n window[\"app-config\"].APPLICATION_PROPERTIES;\r\nvar httpService = new HttpService();\r\n\r\nclass Slots extends Component {\r\n state = {\r\n dataLoaded: false,\r\n selectedDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n timeSlots: [],\r\n selectedTimeSlot: null,\r\n minDate: this.props.minDate,\r\n maxDate: this.props.maxDate,\r\n };\r\n\r\n componentDidMount() {\r\n this.onDateSelection();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (\r\n prevProps.branch.BranchID !== this.props.branch.BranchID ||\r\n prevProps.category !== this.props.category\r\n ) {\r\n var curr = this;\r\n $(document).ready(function () {\r\n $(\"#calendar\").datepicker();\r\n $(\"#calendar\").datepicker(\"setDatesDisabled\", curr.props.disabledDates);\r\n $(\"#calendar\").datepicker(\"setStartDate\", curr.props.minDate);\r\n $(\"#calendar\").datepicker(\"setEndDate\", curr.props.maxDate);\r\n $(\"#calendar\").datepicker(\"setDate\", curr.props.minDate);\r\n });\r\n }\r\n }\r\n\r\n onDateSelection = () => {\r\n // console.log(\"DATES DIS: \", this.props.disabledDates);\r\n // console.log(\"MIN DATE: \", this.props.minDate);\r\n var curr = this;\r\n $(document).ready(function () {\r\n $(\"#calendar\").datepicker();\r\n $(\"#calendar\").datepicker(\"setStartDate\", curr.props.minDate);\r\n $(\"#calendar\").datepicker(\"setEndDate\", curr.props.maxDate);\r\n $(\"#calendar\").datepicker(\"setDate\", curr.props.minDate);\r\n });\r\n\r\n $(\"#calendar\")\r\n .datepicker({\r\n format: \"yyyy/mm/dd\",\r\n startDate: new Date(),\r\n maxViewMode: 0,\r\n minViewMode: 0,\r\n datesDisabled: this.props.disabledDates,\r\n endDate: this.props.maxDate,\r\n\r\n language: localStorage.getItem(\"lang\"),\r\n })\r\n .on(\"changeDate\", function (e) {\r\n \r\n let getDisabledDateFromLocalStorage = localStorage.getItem(\"offDatesDisabledDate\");\r\n const newDisable = JSON.parse(getDisabledDateFromLocalStorage)\r\n let disabledDatedCheck = null\r\n if(newDisable!=null){\r\n disabledDatedCheck = newDisable\r\n }\r\n\r\n if(disabledDatedCheck!=null){\r\n disabledDate = disabledDatedCheck.includes(e.format(0, \"yyyy-mm-dd\"));\r\n }\r\n\r\n if(disabledDate){\r\n curr.setState({\r\n selectedDate: e.format(0, \"dd/mm/yyyy\"),\r\n dataLoaded: false,\r\n });\r\n setTimeout(() => {\r\n curr.setState({\r\n dataLoaded: true\r\n });\r\n }, 500);\r\n }\r\n else{\r\n\r\n curr.setState({\r\n selectedDate: e.format(0, \"dd/mm/yyyy\"),\r\n dataLoaded: false,\r\n });\r\n\r\n curr.getAppointmentSlots(e.format(0, \"yyyy/mm/dd\"));\r\n }\r\n });\r\n };\r\n\r\n onTimeSlotSelect = (value) => {\r\n this.setState({ selectedTimeSlot: value });\r\n this.props.setSlotForParent(`${value.target.value}`);\r\n };\r\n\r\n getAppointmentSlots = async (date) => {\r\n var dateGiven = moment(date);\r\n var DAY = dateGiven.day();\r\n\r\n DAY = DAY == 0 ? 7 : DAY;\r\n\r\n try {\r\n var { branch, category } = this.props;\r\n var { data } = await httpService.getDateTimeSlots(\r\n branch !== null && branch.BranchID,\r\n category === null\r\n ? qsSqn !== undefined\r\n ? qsSqn\r\n : DEFAULT_CATEGORY\r\n : category.CategoryID,\r\n date === \"\" ? moment(new Date()).format(\"YYYY-MM-DD\") : date,\r\n branch !== null &&\r\n (branch.FutureDaysForAppointment === null ||\r\n branch.FutureDaysForAppointment === \"\")\r\n ? DEFAULT_AHEAD_DAYS\r\n : Number(branch.FutureDaysForAppointment)\r\n );\r\n\r\n if (data.error !== undefined) {\r\n this.setState({ timeSlots: [] });\r\n } else if (data.appointmentSlots !== null) {\r\n var appointmentSlots = data.appointmentSlots.slice(\r\n 0,\r\n SLOTS_TO_SHOW < 0 || SLOTS_TO_SHOW > 7 ? 7 : SLOTS_TO_SHOW\r\n );\r\n let slots = appointmentSlots[0].slotDetail;\r\n\r\n if (slots.length > 0) {\r\n this.setState({ timeSlots: slots });\r\n } else {\r\n this.setState({ timeSlots: [], dataLoaded: true });\r\n }\r\n\r\n this.setState({ dataLoaded: true });\r\n } else {\r\n this.setState({ timeSlots: null, dataLoaded: true });\r\n }\r\n\r\n var slotValue = false;\r\n\r\n appointmentSlots !== undefined &&\r\n appointmentSlots.forEach(function (value, key) {\r\n if (value.DayID == DAY) {\r\n if (value.slotDetail.length == 0) {\r\n slotValue = true;\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.log(error.message);\r\n if (\r\n error.message.includes(\"timeout\") ||\r\n error.message.includes(\"ERR_CONNECTION\")\r\n ) {\r\n this.setState({ dataLoaded: true });\r\n } else {\r\n this.setState({ dataLoaded: false });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n utils.setDateTimeSlotTheme();\r\n var { getTranslations } = this.props;\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {!this.state.dataLoaded ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n
\r\n {\r\n disabledDate ? \r\n (\r\n
\r\n \r\n {getTranslations.Time}*\r\n \r\n\r\n \r\n \r\n {getTranslations.SelectAvailableSchedule}\r\n \r\n \r\n
\r\n )\r\n :\r\n (\r\n
\r\n \r\n {getTranslations.Time}*\r\n \r\n\r\n \r\n \r\n {getTranslations.SelectAvailableSchedule}\r\n \r\n\r\n {this.state.timeSlots !== null &&\r\n this.state.timeSlots.length > 0 &&\r\n this.state.timeSlots.map((data, i) => (\r\n \r\n {utils.timeFormat(data.StartTime)}\r\n \r\n ))}\r\n \r\n
\r\n )\r\n\r\n }\r\n\r\n
\r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Slots;\r\n","import React from \"react\";\r\n\r\nlet { MAP_MARKER } = window[\"theme\"].THEME.BRANCH_SCREEN;\r\nconst MapMarker = ({ height = \"30px\", onClick }) => {\r\n return (\r\n
\r\n \r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default MapMarker;\r\n","import React, { Component } from \"react\";\r\nimport \"./CustomRadio.css\";\r\n\r\nlet {\r\n RADIO_BTN: { BORDER_COLOR, SELECTED_INNER_COLOR },\r\n} = window[\"theme\"].THEME;\r\nexport class CustomRadio extends Component {\r\n state = {};\r\n\r\n render() {\r\n const { selected, onChange, label, value, fontColor, description } =\r\n this.props;\r\n return (\r\n {\r\n onChange(value);\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n

\r\n \r\n {label}\r\n \r\n
\r\n \r\n {description}\r\n \r\n

\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\n\r\nimport swal from \"@sweetalert/with-react\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport Bowser from \"bowser\";\r\nimport Loader from \"../components/Loader\";\r\nimport MapMarker from \"./../components/MapMarker\";\r\nimport * as utils from \"../utills/utils\";\r\n\r\nimport { CustomRadio } from \"./../components/CustomRadio/CustomRadio\";\r\n\r\nconst queryString = require(\"query-string\");\r\n\r\nconst {\r\n MAP_ZOOM,\r\n MODE,\r\n MAP_CENTER: { LAT, LNG },\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\nconst {\r\n BRANCH_SCREEN: {\r\n FONT_COLOR,\r\n BORDER_COLOR,\r\n ENABLE_MAP,\r\n GET_NEAREST_BRANCHES,\r\n GET_TOP_BRANCHES,\r\n },\r\n SLOTS_SCREEN: { MIN_DATE_ARRAY },\r\n} = window[\"theme\"].THEME;\r\n\r\n\r\nconst queryStringBranchCode = queryString.parse(\r\n window.location.search\r\n).branchCode;\r\n\r\nconst _LAT = queryString.parse(window.location.search).lat;\r\n\r\nconst _LNG = queryString.parse(window.location.search).lng;\r\n\r\nconst _ENABLEMAP = queryString.parse(window.location.search).enableMap;\r\n\r\nconst _GET_NEAREST_BRANCHES = queryString.parse(\r\n window.location.search\r\n).getNearestBranches;\r\n\r\nlet httpService = new HttpService();\r\n\r\nclass Branch extends Component {\r\n state = {\r\n branches: [],\r\n filteredBranches: [],\r\n dataLoaded: false,\r\n locationAllowed: false,\r\n allowedLocation: null,\r\n selectedBranch: null,\r\n location: { lat: LAT, lng: LNG },\r\n showMap: true,\r\n disableDates: [],\r\n minDate: \"\",\r\n };\r\n\r\n componentDidMount() {\r\n (GET_NEAREST_BRANCHES || ENABLE_MAP) && utils.getUserLocation();\r\n this.getBranches();\r\n console.log('run...1');\r\n }\r\n\r\n getCurrentLatLong = () => {\r\n let defaultLat = LAT;\r\n let defaultLng = LNG;\r\n\r\n let curr = this;\r\n\r\n let browser = Bowser.getParser(window.navigator.userAgent);\r\n\r\n if (\r\n browser.getBrowserName() !== \"Safari\" &&\r\n queryStringBranchCode === undefined\r\n ) {\r\n navigator.geolocation.getCurrentPosition((pos) => {\r\n let location = {\r\n lat:\r\n pos.coords.latitude === null || pos.coords.latitude === undefined\r\n ? LAT\r\n : pos.coords.latitude,\r\n lng:\r\n pos.coords.longitude === null || pos.coords.longitude === undefined\r\n ? LNG\r\n : pos.coords.longitude,\r\n };\r\n curr.setState({\r\n setLocationAllowed: true,\r\n setAllowedLocation: location,\r\n });\r\n\r\n localStorage.setItem(\"location\", JSON.stringify(location));\r\n });\r\n navigator.geolocation.watchPosition(function (error) {\r\n let location = {\r\n lat: defaultLat,\r\n lng: defaultLng,\r\n };\r\n\r\n if (error.code == error.PERMISSION_DENIED) {\r\n curr.setState({\r\n setLocationAllowed: false,\r\n setAllowedLocation: location,\r\n });\r\n localStorage.setItem(\"location\", JSON.stringify(location));\r\n navigator.geolocation.clearWatch();\r\n }\r\n });\r\n navigator.permissions\r\n .query({ name: \"geolocation\" })\r\n .then(async (status) => {\r\n status.onchange = function () {\r\n if (this.state === \"granted\") {\r\n console.log(\"GRANTED\");\r\n } else if (this.state === \"denied\") {\r\n console.log(\"DENIED\");\r\n let location = {\r\n lat: defaultLat,\r\n lng: defaultLng,\r\n };\r\n\r\n swal({\r\n title: curr.props.getTranslations.Attention,\r\n text: curr.props.getTranslations.LocationServiceDisabled,\r\n\r\n icon: \"info\",\r\n buttons: {\r\n ok: {\r\n text: curr.props.getTranslations.Ok,\r\n value: \"OK\",\r\n },\r\n },\r\n }).then(() => {\r\n localStorage.setItem(\"location\", JSON.stringify(location));\r\n });\r\n }\r\n console.log(\r\n \"geolocation permission state has changed to \",\r\n this.state\r\n );\r\n };\r\n });\r\n } else {\r\n console.log(\"IN ELSE\");\r\n let location = {\r\n lat: defaultLat,\r\n lng: defaultLng,\r\n };\r\n localStorage.setItem(\"location\", JSON.stringify(location));\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (\r\n MODE === \"sb\" &&\r\n prevProps?.category?.CategoryID !== this?.props?.category?.CategoryID\r\n ) {\r\n this.getBranches();\r\n }\r\n }\r\n\r\n handleApiLoaded = (map) => {\r\n map.streetViewControl = true;\r\n };\r\n\r\n getBranches = async () => {\r\n let { category } = this?.props;\r\n try {\r\n let response;\r\n if (MODE === \"bs\") {\r\n console.log(\"BS\");\r\n response = await httpService.getAllBranches();\r\n } else if (\r\n MODE === \"sb\" &&\r\n GET_NEAREST_BRANCHES === true &&\r\n localStorage.getItem(\"location\")\r\n ) {\r\n console.log(\"SB > NEAREST BRANCH > LOCATION\");\r\n response = await httpService.getNearByBranches(\r\n category?.CategoryID,\r\n JSON.parse(localStorage.getItem(\"location\")).lat,\r\n JSON.parse(localStorage.getItem(\"location\")).lng\r\n );\r\n } else if (MODE === \"sb\" && GET_NEAREST_BRANCHES === false ) {\r\n console.log(\"SB > !NEAREST BRANCH\");\r\n response = await httpService.getBranchesByCategory(category?.CategoryID) ;\r\n }\r\n if (response.data.error !== undefined && response.data.error === true) {\r\n this.setState({\r\n branches: undefined,\r\n filteredBranches: undefined,\r\n dataLoaded: true,\r\n });\r\n } else if (response.data.branchList === null) {\r\n this.setState({\r\n branches: [],\r\n filteredBranches: [],\r\n dataLoaded: true,\r\n });\r\n } else {\r\n this.setState({\r\n branches:\r\n GET_NEAREST_BRANCHES === true\r\n ? response.data.branchList.slice(0, GET_TOP_BRANCHES)\r\n : response.data.branchList,\r\n filteredBranches:\r\n GET_NEAREST_BRANCHES === true\r\n ? response.data.branchList.slice(0, GET_TOP_BRANCHES)\r\n : response.data.branchList,\r\n\r\n dataLoaded: true,\r\n });\r\n }\r\n } catch (error) {\r\n console.log(\"ERROR :\", error);\r\n if (error.message.includes(\"timeout\")) {\r\n this.setState({\r\n branches: undefined,\r\n filteredBranches: undefined,\r\n dataLoaded: true,\r\n });\r\n } else {\r\n this.setState({\r\n branches: [],\r\n filteredBranches: [],\r\n dataLoaded: true,\r\n });\r\n }\r\n }\r\n };\r\n\r\n filterBranch = (e) => {\r\n let filteredBranch = this.state.branches.filter(\r\n (b) =>\r\n b.BranchTitle.toLowerCase().includes(e.target.value.toLowerCase()) ||\r\n b.Address.toLowerCase().includes(e.target.value.toLowerCase()) ||\r\n b.BranchCode.toLowerCase().includes(e.target.value.toLowerCase())\r\n );\r\n\r\n if (!utils.validation.isNotEmpty(e.target.value)) {\r\n this.setState({ filteredBranches: this.state.branches, showMap: true });\r\n } else {\r\n this.setState({ filteredBranches: filteredBranch, showMap: false });\r\n }\r\n };\r\n\r\n onBranchSelect = (selectedBranch) => {\r\n console.log(\"SELECTED BRANCH: \", selectedBranch);\r\n\r\n this.setState({ selectedBranch });\r\n this.props.setBranchForParent(selectedBranch);\r\n };\r\n\r\n onMapMarkerClick = async (selectedBranch) => {\r\n console.log(\"SELECTED BRANCH MAP: \", selectedBranch);\r\n\r\n const action = await swal(\r\n
\r\n

{selectedBranch.BranchTitle}

\r\n \r\n {this.props.getTranslations.Address}\r\n \r\n

{selectedBranch.Address}

\r\n
,\r\n\r\n {\r\n icon: \"info\",\r\n\r\n buttons: {\r\n yes: {\r\n text: this.props.getTranslations.Next,\r\n value: \"Yes\",\r\n },\r\n no: {\r\n text: this.props.getTranslations.Close,\r\n value: \"No\",\r\n },\r\n },\r\n }\r\n );\r\n if (action === \"Yes\") {\r\n this.props.setBranchForParent(selectedBranch);\r\n }\r\n };\r\n\r\n render() {\r\n console.log('props...', this.props);\r\n return (\r\n <>\r\n
\r\n
\r\n

\r\n {this.props.getTranslations.BranchInfoText}\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n {!this.state.dataLoaded ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n <>\r\n {\r\n //_ENABLEMAP === \"true\"\r\n ENABLE_MAP === true && this.state.showMap && (\r\n
\r\n
\r\n \r\n \r\n this.handleApiLoaded(map, maps)\r\n }\r\n draggable={true}\r\n >\r\n {this?.state?.branches?.length > 0\r\n ? this?.state?.branches?.map((data, i) => {\r\n return (\r\n this.onMapMarkerClick(data)}\r\n />\r\n );\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n \r\n )\r\n }\r\n \r\n )}\r\n\r\n 0 &&\r\n `1px solid ${BORDER_COLOR}`,\r\n overflowY: \"scroll\",\r\n }}\r\n >\r\n {this?.state?.filteredBranches !== null &&\r\n this?.state?.filteredBranches.length > 0 &&\r\n this?.state?.filteredBranches.map((data, i) => (\r\n \r\n
\r\n this.onBranchSelect(data)}\r\n fontColor={FONT_COLOR}\r\n />\r\n
\r\n {this?.state.filteredBranches.length > 1 && (\r\n
\r\n )}\r\n
\r\n ))}{\" \"}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Branch;\r\n","import React, { Component } from \"react\";\r\n\r\nimport Loader from \"../components/Loader\";\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\nimport { Scrollbars } from \"react-custom-scrollbars\";\r\nimport ScrollToTop from \"react-scroll-to-top\";\r\n\r\nimport { CustomRadio } from \"./../components/CustomRadio/CustomRadio\";\r\nconst { MODE } = window[\"app-config\"].APPLICATION_PROPERTIES;\r\nconst {\r\n CATEGORY_SCREEN: { FONT_COLOR, BORDER_COLOR },\r\n} = window[\"theme\"].THEME;\r\n\r\nvar httpService = new HttpService();\r\n\r\nclass Category extends Component {\r\n state = {\r\n categories: [],\r\n dataLoaded: false,\r\n selectedCategory: null,\r\n };\r\n\r\n componentDidMount() {\r\n this.getCategories();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (\r\n MODE === \"bs\" &&\r\n prevProps.branch.BranchID !== this.props?.branch?.BranchID\r\n ) {\r\n this.getCategories();\r\n }\r\n }\r\n\r\n getCategories = async () => {\r\n var { branch } = this.props;\r\n try {\r\n let response;\r\n if (MODE === \"sb\") {\r\n response = await httpService.getAllCategories();\r\n if (response.data.error !== undefined && response.data.error === true) {\r\n this.setState({ categories: undefined, dataLoaded: true });\r\n } else if (response.data.Category === null) {\r\n this.setState({ categories: [], dataLoaded: true });\r\n } else {\r\n this.setState({\r\n categories: response.data.Category,\r\n dataLoaded: true,\r\n });\r\n }\r\n } else if (MODE === \"bs\") {\r\n response = await httpService.getCategoriesByBranchId(branch.BranchID);\r\n if (response.data.error !== undefined && response.data.error === true) {\r\n this.setState({ categories: undefined, dataLoaded: true });\r\n } else if (response.data.categoryList === null) {\r\n this.setState({ categories: [], dataLoaded: true });\r\n } else {\r\n this.setState({\r\n categories: response.data.categoryList,\r\n dataLoaded: true,\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n if (error.message.includes(\"timeout\")) {\r\n this.setState({\r\n categories: undefined,\r\n dataLoaded: true,\r\n });\r\n } else {\r\n this.setState({\r\n categories: [],\r\n dataLoaded: true,\r\n });\r\n }\r\n }\r\n };\r\n\r\n onCategorySelect = async (category) => {\r\n var response = await httpService.getDisabledAppointmentDates(\r\n this.props.branch.BranchID,\r\n category.CategoryID,\r\n this.props.branch.FutureDaysForAppointment\r\n );\r\n\r\n localStorage.setItem(\"offDatesDisabledDate\", JSON.stringify(response.data.offDates))\r\n this.setState({\r\n selectedCategory: category,\r\n minDate: response.data.MinDate,\r\n disableDates: response.data.offDates,\r\n maxDate: response.data.MaxDate,\r\n });\r\n this.props.setCategoryForParent(\r\n category,\r\n response.data.MinDate,\r\n response.data.offDates,\r\n response.data.MaxDate\r\n );\r\n\r\n console.log(this.props);\r\n };\r\n\r\n render() {\r\n var { getTranslations } = this.props;\r\n return (\r\n <>\r\n
\r\n
\r\n

\r\n {getTranslations.CategoryInfoText}\r\n

\r\n
\r\n
\r\n\r\n {!this.state.dataLoaded && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n
\r\n
\r\n {this.state.categories !== null &&\r\n this.state.categories.length > 0 ? (\r\n \r\n
\r\n {this.state.categories.map((data, i) => (\r\n \r\n \r\n this.onCategorySelect(data)}\r\n fontColor={FONT_COLOR}\r\n />\r\n
\r\n \r\n ))}\r\n
\r\n ) : null}\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Category;\r\n","import React, { Component } from \"react\";\r\n\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\nimport swal from \"sweetalert\";\r\nimport moment from \"moment\";\r\nimport * as utils from \"../utills/utils\";\r\nimport RowFlexContainer from \"./../components/RowFlexContainer\";\r\nimport PrimaryButton from \"./../components/PrimaryButton\";\r\n\r\nconst queryString = require(\"query-string\");\r\n\r\nlet {\r\n CONFIRM_SCREEN: {\r\n FONT_COLOR,\r\n MODIFY_BTN_COLOR,\r\n CALENDAR_BTN_COLOR,\r\n BTN_TEXT_COLOR,\r\n PRIMARY_FONT_COLOR,\r\n },\r\n ICONS: { OK_ICON },\r\n} = window[\"theme\"].THEME;\r\nlet {\r\n URLs: { ICS_FILE_URL, WIZARD_URL },\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\n\r\nlet httpService = new HttpService();\r\n\r\nclass Confirm extends Component {\r\n state = {};\r\n\r\n getFieldValue = (fieldName) => {\r\n let control = this.props?.userDetails.find(\r\n (c) => c.fieldName === fieldName\r\n );\r\n if (control === undefined || control.value === null) {\r\n return \"\";\r\n } else {\r\n return control.value;\r\n }\r\n };\r\n \r\n rescheduleOrCancelAppointment = async () => {\r\n var { translations, response, branch, category, modifyAppointment } =\r\n this.props;\r\n swal(\r\n translations.DoYouWantToRescheduleOrCancel,\r\n\r\n {\r\n icon: \"warning\",\r\n buttons: {\r\n reschedule: {\r\n text: translations.Reschedule,\r\n value: \"reschedule\",\r\n },\r\n cancelAppointment: {\r\n text: translations.CancelAppointment,\r\n value: \"cancelAppointment\",\r\n closeModal: false,\r\n },\r\n },\r\n }\r\n ).then(async (value) => {\r\n switch (value) {\r\n case \"cancelAppointment\":\r\n try {\r\n let cancelAptResponse = await httpService.cancelAppointment(\r\n response.previous_appointment_info !== null\r\n ? response.previous_appointment_info.appointment_number\r\n : response.issueAppointment.appointment_number,\r\n response.previous_appointment_info !== null\r\n ? response.previous_appointment_info.category_id\r\n : category.CategoryID,\r\n branch.BranchID,\r\n response.previous_appointment_info !== null\r\n ? response.previous_appointment_info.email_id\r\n : this.getFieldValue(\"EmailId\") !== \"\"\r\n ? this.getFieldValue(\"EmailId\")\r\n : this.getFieldValue(\"MobileNumber\") !== \"\"\r\n ? this.getFieldValue(\"MobileNumber\")\r\n : \"\"\r\n );\r\n swal.close();\r\n\r\n if (\r\n cancelAptResponse.data.error !== undefined &&\r\n cancelAptResponse.data.error === true\r\n ) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.ServerNotResponding,\r\n translations.Ok\r\n );\r\n } else {\r\n if (cancelAptResponse.data.response.resp_status === 1) {\r\n utils.redirect();\r\n } else if (cancelAptResponse.data.response.resp_status === 6) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.AppointmentAlreadyCanceled,\r\n translations.Ok,\r\n );\r\n } else if (cancelAptResponse.data.response.resp_status === -5) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.AppointmentInfoNotValidToCancel,\r\n translations.Ok,\r\n );\r\n } else if (cancelAptResponse.data.response.resp_status === 2) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.CantCancelApptTcktIssued,\r\n translations.Ok,\r\n );\r\n } else if (cancelAptResponse.data.response.resp_status === 7) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.AppointmentExpired,\r\n translations.Ok,\r\n \r\n );\r\n } else if (cancelAptResponse.data.response.resp_status === -2) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.AlreadyServed,\r\n translations.Ok,\r\n );\r\n } else if (cancelAptResponse.data.response.resp_status === -3) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.ApptCanceledAutomatically,\r\n translations.Ok,\r\n );\r\n } else {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.SomeThingWentWrong,\r\n translations.Ok,\r\n );\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"ERROR IN CANCEL APT: \", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.ServerNotResponding,\r\n translations.Ok\r\n );\r\n } else {\r\n utils.showErrorMessage(\r\n translations.Error,\r\n translations.SomeThingWentWrong,\r\n translations.Ok\r\n );\r\n }\r\n }\r\n break;\r\n\r\n case \"reschedule\":\r\n modifyAppointment();\r\n break;\r\n\r\n default:\r\n }\r\n });\r\n };\r\n redirectToWizard = async () => {\r\n //window.location.href = URLs.WIZARD_URLs;\r\n utils.redirect();\r\n };\r\n\r\n render() {\r\n var { response, translations, timeSlot, category, branch,userDetails } = this.props;\r\n let appointmentNumber = \"\";\r\n let appointmentDate = \"\";\r\n if (response.previous_appointment_info !== null) {\r\n appointmentNumber = response.previous_appointment_info.appointment_number;\r\n appointmentDate = moment(\r\n response.previous_appointment_info.appointment_date\r\n ).format(\"YYYY-MM-DD\");\r\n } else {\r\n appointmentNumber = response.issueAppointment.appointment_number;\r\n appointmentDate = moment(timeSlot.split(\"|\")[0], \"DD-MM-YYYY\").format(\r\n \"YYYY-MM-DD\"\r\n );\r\n }\r\n let FullName = localStorage.getItem(\"FullName\");\r\n \r\n \r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n {FullName}\r\n \r\n \r\n {translations.YourAppointmentIsBooked}\r\n \r\n\r\n \r\n {translations.EmailSentMsg}\r\n

\r\n\r\n \r\n {translations.GoToBranch}\r\n

\r\n\r\n \r\n {response.previous_appointment_info !== null\r\n ? `${moment(\r\n response.previous_appointment_info.appointment_date\r\n ).format(\"DD-MM-YYYY\")} ${\r\n translations.AtThe\r\n } ${utils.timeFormat(\r\n response.previous_appointment_info.appointment_time\r\n .split(\"-\")[0]\r\n .slice(0, 5)\r\n )}`\r\n : timeSlot !== null &&\r\n `${timeSlot.split(\"|\")[0]} ${\r\n translations.AtThe\r\n } ${utils.timeFormat(timeSlot.split(\"|\")[1])}`}\r\n \r\n\r\n \r\n {translations.ConfirmDirectionMsg}\r\n

\r\n\r\n \r\n {response.previous_appointment_info !== null\r\n ? response.previous_appointment_info.appointment_number\r\n : response.issueAppointment.appointment_number}\r\n \r\n\r\n

\r\n {translations.ToTheBranchExec}\r\n

\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n {translations.Operation}\r\n
\r\n
\r\n {response.previous_appointment_info !== null\r\n ? response.previous_appointment_info.category_title\r\n : category.CategoryTitle}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {translations.BranchOffice}\r\n
\r\n
\r\n {branch !== null && `${branch.BranchTitle}, ${branch.Address}`}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {translations.ConfirmEmailLabel}\r\n
\r\n
\r\n {response.previous_appointment_info !== null\r\n ? response.previous_appointment_info.email_id\r\n : this.getFieldValue(\"EmailId\") !== ''\r\n ? this.getFieldValue(\"EmailId\")\r\n :\"-\"}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {translations.ConfirmMobileNumber}\r\n
\r\n
\r\n {response.previous_appointment_info !== null\r\n ? response.previous_appointment_info.mobile_number\r\n : this.getFieldValue(\"MobileNumber\")}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {translations.Note}\r\n
\r\n \r\n {userDetails[6].value!== null \r\n ?userDetails[6].value\r\n :this.getFieldValue(\"DeviceHealth\") !== null &&\r\n this.getFieldValue(\"DeviceHealth\") !== \"\"\r\n ? this.getFieldValue(\"DeviceHealth\")\r\n : \"-\"}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n  \r\n \r\n \r\n {/* \r\n \r\n \r\n {translations.AddToCalendar}\r\n \r\n \r\n */}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Confirm;\r\n","import React, { Component } from \"react\";\r\nimport { Container, Card, Accordion } from \"react-bootstrap\";\r\n\r\nimport $ from \"jquery\";\r\n\r\nimport UserDetails from \"./UserDetails\";\r\nimport Slots from \"./Slots\";\r\nimport Branch from \"./Branch\";\r\nimport Category from \"./Category\";\r\n\r\nimport * as utils from \"../utills/utils\";\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\nimport Confirm from \"./Confirm\";\r\nimport Loader from \"./../components/Loader\";\r\nimport RowFlexContainer from \"../components/RowFlexContainer\";\r\nimport PrimaryButton from \"./../components/PrimaryButton\";\r\n\r\nvar queryString = require(\"query-string\");\r\n\r\nvar {\r\n DEFAULT_LANGUAGE,\r\n NAV_TABS,\r\n SHOW_TAB_SELECTED_DATA,\r\n APP_ROUTE,\r\n URLs: { WIZARD_URL },\r\n MODE,\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\nvar WIZARD_URLs;\r\n\r\nvar {\r\n TABS: { BODY_BG_COLOR, HEADER_BG_COLOR, FONT_COLOR, CHEV_DOWN_ICON },\r\n ICONS: { CALENDAR_ICON },\r\n MAIN_SCREEN: { BTN_TEXT_COLOR, RETURN_BTN_COLOR, FONT_COLOR },\r\n} = window[\"theme\"].THEME;\r\n\r\nvar qsLanguage = queryString.parse(window.location.search).lang;\r\nvar qsBranchCode = queryString.parse(window.location.search).branchCode;\r\nvar qsBranchId = queryString.parse(window.location.search).branchid;\r\nvar qsSqn = queryString.parse(window.location.search).sqn;\r\nvar qsLqn = queryString.parse(window.location.search).lqn;\r\nvar qsService = queryString.parse(window.location.search).service;\r\nvar language =\r\n window[\"localization\"][qsLanguage] !== undefined\r\n ? window[\"localization\"][qsLanguage]\r\n : window[\"localization\"][DEFAULT_LANGUAGE];\r\n\r\nlet tabs = NAV_TABS(language);\r\ntabs = tabs.filter((t) => {\r\n return t.isEnable === true;\r\n});\r\n\r\nvar httpService = new HttpService();\r\n\r\nclass Main extends Component {\r\n state = {\r\n translations: {},\r\n branch: null,\r\n category: null,\r\n timeSlot: null,\r\n response: null,\r\n userDetails: null,\r\n isSingleBranchLoaded: false,\r\n isReschedule: false,\r\n activeTabKey: \"0\",\r\n passedAccordians: [\"0\"],\r\n appointmentIssued: false,\r\n disabledDates: [],\r\n minDate: \"\",\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({ translations: utils.setTranslations() });\r\n utils.setDatePickerLanguage();\r\n\r\n if (MODE === \"sb\" && qsBranchCode !== undefined && qsSqn !== undefined) {\r\n this.expandNextAccordian(\"categorySelection\");\r\n this.setState({\r\n category: { CategoryID: qsSqn, CategoryTitle: qsLqn },\r\n });\r\n this.expandNextAccordian(\"branchSelection\");\r\n this.getSingleBranchDetails();\r\n } else if (\r\n MODE === \"bs\" &&\r\n qsBranchCode !== undefined &&\r\n qsSqn !== undefined\r\n ) {\r\n this.expandNextAccordian(\"branchSelection\");\r\n this.getSingleBranchDetails();\r\n\r\n this.expandNextAccordian(\"categorySelection\");\r\n this.setState({\r\n category: { CategoryID: qsSqn, CategoryTitle: qsLqn },\r\n });\r\n } else if (qsBranchCode !== undefined) {\r\n this.expandNextAccordian(\"branchSelection\");\r\n this.getSingleBranchDetails();\r\n } else if (qsSqn !== undefined) {\r\n this.expandNextAccordian(\"categorySelection\");\r\n this.setState({ category: { CategoryID: qsSqn, CategoryTitle: qsLqn } });\r\n }\r\n }\r\n\r\n \r\n getBranchFromChild = (branch) => {\r\n this.setState({ branch: branch });\r\n this.expandNextAccordian(\"branchSelection\");\r\n };\r\n\r\n getCategoryFromChild = (category, minDate, disabledDates, maxDate) => {\r\n this.setState({\r\n category: category,\r\n minDate: minDate,\r\n disabledDates: disabledDates,\r\n maxDate: maxDate,\r\n });\r\n\r\n this.expandNextAccordian(\"categorySelection\");\r\n };\r\n\r\n getTimeSlotFromChild = (timeSlot) => {\r\n this.setState({ timeSlot: timeSlot });\r\n this.expandNextAccordian(\"slotSelection\");\r\n };\r\n\r\n getApiResponse = (data) => {\r\n this.setState({ response: data.response, userDetails: data.userDetails });\r\n };\r\n\r\n getSingleBranchDetails = async () => {\r\n try {\r\n let response = await httpService.getSingleBranchDetails();\r\n this.setState({\r\n branch: response.data.branchList[0],\r\n isSingleBranchLoaded: true,\r\n });\r\n } catch (error) {\r\n this.setState({\r\n branch: null,\r\n isSingleBranchLoaded: false,\r\n });\r\n }\r\n };\r\n\r\n renderAccordionBody = (id) => {\r\n switch (id) {\r\n case \"slotSelection\":\r\n return (\r\n \r\n );\r\n\r\n case \"userInformation\":\r\n return (\r\n \r\n );\r\n\r\n case \"branchSelection\":\r\n return (\r\n \r\n );\r\n\r\n case \"categorySelection\":\r\n return (\r\n \r\n );\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n renderAccordianCollapse = (key, id) => {\r\n if (qsBranchCode !== undefined && id === \"branchSelection\") {\r\n let index = tabs.indexOf(\r\n tabs.find((tab) => tab.id === \"branchSelection\")\r\n );\r\n let nextTabKey = tabs[index + 1].tabKey;\r\n\r\n return (\r\n \r\n {this.renderAccordionBody(id)}\r\n \r\n );\r\n } else if (qsSqn !== undefined && id === \"categorySelection\") {\r\n let index = tabs.indexOf(\r\n tabs.find((tab) => tab.id === \"categorySelection\")\r\n );\r\n let nextTabKey = tabs[index + 1].tabKey;\r\n\r\n return (\r\n \r\n {this.renderAccordionBody(id)}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {this.renderAccordionBody(id)}\r\n \r\n );\r\n }\r\n };\r\n\r\n renderAccordianText = (tab) => {\r\n if (tab.id === \"branchSelection\") {\r\n return (\r\n <>\r\n
\r\n {tab.text}\r\n\r\n \r\n \r\n \r\n
\r\n\r\n {SHOW_TAB_SELECTED_DATA && this.state.branch !== null && (\r\n

\r\n {this.state.branch.BranchTitle}\r\n

\r\n )}\r\n \r\n );\r\n } else if (tab.id === \"categorySelection\") {\r\n return (\r\n <>\r\n
\r\n {tab.text}\r\n \r\n \r\n \r\n
\r\n {SHOW_TAB_SELECTED_DATA && this.state.category !== null && (\r\n

\r\n {this.state.category.CategoryTitle}\r\n

\r\n )}\r\n \r\n );\r\n } else if (tab.id === \"slotSelection\") {\r\n return (\r\n <>\r\n
\r\n {tab.text}\r\n\r\n \r\n \r\n \r\n
\r\n {SHOW_TAB_SELECTED_DATA && this.state.timeSlot !== null && (\r\n

\r\n {`${this.state.timeSlot.split(\"|\")[0]} ${utils.timeFormat(\r\n this.state.timeSlot.split(\"|\")[1]\r\n )}`}\r\n

\r\n )}\r\n \r\n );\r\n } else if (tab.id === \"userInformation\") {\r\n return (\r\n <>\r\n
\r\n {tab.text}\r\n\r\n \r\n \r\n \r\n
\r\n\r\n {SHOW_TAB_SELECTED_DATA && (\r\n

\r\n {\"\"}\r\n

\r\n )}\r\n \r\n );\r\n }\r\n };\r\n\r\n expandNextAccordian = (currId) => {\r\n let index = tabs.indexOf(tabs.find((tab) => tab.id === currId));\r\n this.setState({ activeTabKey: tabs[index + 1].tabKey });\r\n let passedAccord = [...this.state.passedAccordians];\r\n passedAccord.push(tabs[index + 1].tabKey);\r\n this.setState({ passedAccordians: passedAccord });\r\n $(`#${tabs[index + 1].id}`).trigger(\"click\");\r\n };\r\n\r\n hadleAppointmentIssue = () => {\r\n this.setState({ appointmentIssued: true });\r\n };\r\n\r\n modifyAppointment = () => {\r\n this.setState({ appointmentIssued: false, isReschedule: true });\r\n let index = tabs.indexOf(tabs.find((tab) => tab.id === \"slotSelection\"));\r\n this.setState({ passedAccordians: [tabs[index].tabKey] });\r\n $(`#slotSelection`).trigger(\"click\");\r\n };\r\n\r\n setActiveTabKey = (key) => {\r\n this.setState({ activeTabKey: key });\r\n };\r\n\r\n render() {\r\n if (qsBranchCode !== undefined && !this.state.isSingleBranchLoaded) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n if (this.state.appointmentIssued) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n

\r\n {this.state.translations.ScheduleAppointmentHeading}\r\n

\r\n
\r\n \r\n
\r\n \r\n {tabs.map((tab, i) => {\r\n if (\r\n (qsBranchCode !== undefined &&\r\n tab.id !== \"branchSelection\") ||\r\n (qsSqn !== undefined && tab.id !== \"categorySelection\")\r\n ) {\r\n return (\r\n \r\n {\r\n this.setActiveTabKey(tab.tabKey);\r\n }}\r\n style={{\r\n backgroundColor: HEADER_BG_COLOR,\r\n height: !SHOW_TAB_SELECTED_DATA ? \"47px\" : \"auto\",\r\n padding: !SHOW_TAB_SELECTED_DATA\r\n ? \"3px 24px 16px 24px\"\r\n : \"16px 24px 16px 24px\",\r\n }}\r\n >\r\n {this.renderAccordianText(tab)}\r\n \r\n {this.state.passedAccordians.includes(tab.tabKey)\r\n ? this.renderAccordianCollapse(tab.tabKey, tab.id)\r\n : \"\"}\r\n \r\n );\r\n } else if (\r\n qsBranchCode === undefined &&\r\n qsSqn === undefined\r\n ) {\r\n return (\r\n \r\n {\r\n this.setActiveTabKey(tab.tabKey);\r\n }}\r\n style={{\r\n backgroundColor: HEADER_BG_COLOR,\r\n height: !SHOW_TAB_SELECTED_DATA ? \"47px\" : \"auto\",\r\n padding: !SHOW_TAB_SELECTED_DATA\r\n ? \"3px 24px 16px 24px\"\r\n : \"16px 24px 16px 24px\",\r\n }}\r\n >\r\n {this.renderAccordianText(tab)}\r\n \r\n {this.state.passedAccordians.includes(tab.tabKey)\r\n ? this.renderAccordianCollapse(tab.tabKey, tab.id)\r\n : \"\"}\r\n \r\n );\r\n }\r\n })}\r\n \r\n
\r\n {this.state.activeTabKey !== \"3\" && (\r\n \r\n utils.redirect()}\r\n disabled={false}\r\n showLoader={false}\r\n />\r\n \r\n )}\r\n
\r\n \r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default Main;\r\n","import React, { Component } from \"react\";\r\n\r\nlet {\r\n TICKET_JOURNEY: { PHASE_FILL_COLOR, PHASE_COLOR, DOT_COLOR, COUNTER_COLOR },\r\n} = window[\"theme\"].THEME;\r\nclass Phase extends Component {\r\n state = {};\r\n\r\n onPhase = () => {\r\n return this.props.status ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n return {this.onPhase()};\r\n }\r\n}\r\n\r\nexport default Phase;\r\n","/*\r\n * @Author: Mufaddal Jamali\r\n * @Date: 2020-07-16 9:00:00\r\n * @Last Modified by: Mufaddal Jamali\r\n * @Last Modified time: 2020-09-01 17:45:05\r\n */\r\n\r\nimport React, { Component } from \"react\";\r\nimport Phase from \"./Phase\";\r\n\r\nlet {\r\n TICKET_JOURNEY: { DOT_COLOR, COUNTER_COLOR },\r\n} = window[\"theme\"].THEME;\r\nclass Journey extends Component {\r\n state = {\r\n phase: [\r\n { id: 4, value: false },\r\n { id: 3, value: false },\r\n { id: 2, value: false },\r\n { id: 1, value: false },\r\n { id: 0, value: false },\r\n ],\r\n greaterPhase: {\r\n id: 5,\r\n value: true,\r\n },\r\n };\r\n\r\n async componentDidMount() {\r\n this.phaseChange();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (parseInt(prevProps.position) !== parseInt(this.props.position)) {\r\n this.phaseChange();\r\n }\r\n }\r\n\r\n phaseChange = () => {\r\n if (parseInt(this.props.position) > 4) {\r\n this.setState({\r\n phase: [\r\n { id: 4, value: false },\r\n { id: 3, value: false },\r\n { id: 2, value: false },\r\n { id: 1, value: false },\r\n { id: 0, value: false },\r\n ],\r\n phases: [\r\n { id: 4, value: false },\r\n { id: 3, value: false },\r\n { id: 2, value: false },\r\n { id: 1, value: false },\r\n { id: 0, value: false },\r\n ],\r\n greaterPhase: {\r\n id: 5,\r\n value: true,\r\n },\r\n });\r\n } else {\r\n if (parseInt(this.props.position) !== -1) {\r\n let phaseReplica = this.state.phase;\r\n let newPhase = phaseReplica.find(\r\n (x) => x.id === parseInt(this.props.position)\r\n );\r\n\r\n newPhase.value = true;\r\n\r\n phaseReplica.forEach((x) => x.id === newPhase.id || x);\r\n phaseReplica.forEach((x) => {\r\n if (x.id !== newPhase.id) {\r\n x.value = false;\r\n }\r\n return x.value;\r\n });\r\n\r\n this.setState({\r\n phase: phaseReplica,\r\n greaterPhase: {\r\n id: 5,\r\n value: false,\r\n },\r\n });\r\n } else {\r\n this.setState({\r\n phase: [\r\n { id: 4, value: false },\r\n { id: 3, value: false },\r\n { id: 2, value: false },\r\n { id: 1, value: false },\r\n { id: 0, value: false },\r\n ],\r\n phases: [\r\n { id: 4, value: false },\r\n { id: 3, value: false },\r\n { id: 2, value: false },\r\n { id: 1, value: false },\r\n { id: 0, value: false },\r\n ],\r\n greaterPhase: {\r\n id: 5,\r\n value: false,\r\n },\r\n });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.state.phase.map((phase) => (\r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Journey;\r\n","import React, { Component } from \"react\";\r\nimport RowFlexContainer from \"./../components/RowFlexContainer\";\r\nimport * as utils from \"../utills/utils\";\r\nimport $ from \"jquery\";\r\nimport PrimaryButton from \"./../components/PrimaryButton\";\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\nimport swal from \"sweetalert\";\r\nimport moment from \"moment\";\r\nimport Journey from \"./../components/Journey/Journey\";\r\n\r\nconst queryString = require(\"query-string\");\r\n\r\nlet appointmentNumber = queryString.parse(\r\n window.location.search\r\n).appointmentnumber;\r\n\r\nlet {\r\n REDIRECT_TO_CURRENT_PAGE,\r\n APP_ROUTE,\r\n ENABLE_CHECKIN,\r\n REFRESH_INTERVAL,\r\n DEFAULT_PHONE_PREFIX,\r\n URLs: { WIZARD_URL },\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\n\r\nlet {\r\n CHECKIN_SCREEN: {\r\n FONT_COLOR,\r\n CHECKIN_BTN_COLOR,\r\n CANCEL_TICKET_BTN_COLOR,\r\n BTN_FONT_COLOR,\r\n },\r\n ICONS: { REFRESH_ICON },\r\n} = window[\"theme\"].THEME;\r\n\r\nlet httpService = new HttpService();\r\n\r\nclass Checkin extends Component {\r\n state = {\r\n isSuccessfullyCheckedIn: false,\r\n translations: {},\r\n appointmentNumber: null,\r\n phoneNumber: null,\r\n emailAddress: null,\r\n dataLoaded: true,\r\n verifyAppointmentResponse: \"\",\r\n issueTicketResponse: null,\r\n enableBtn: false,\r\n redirectUrl: \"\",\r\n isTicketCalled: false,\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({\r\n translations: utils.setTranslations(),\r\n redirectUrl: utils.removeKeyFromUrl(\r\n [REDIRECT_TO_CURRENT_PAGE ? \"checkin\" : APP_ROUTE],\r\n \"appointmentnumber\"\r\n ),\r\n });\r\n\r\n if (\r\n localStorage.getItem(\"checkedIn\") === \"true\" &&\r\n localStorage.getItem(\"checkedInDate\") == moment().toDate().toDateString()\r\n ) {\r\n this.setState(JSON.parse(localStorage.getItem(\"prevCheckedInData\")));\r\n setInterval(() => {\r\n this.getTicketStatus();\r\n }, REFRESH_INTERVAL);\r\n\r\n utils.onBrowserReload(this.getTicketStatus);\r\n } else {\r\n if (appointmentNumber !== undefined && appointmentNumber !== \"\") {\r\n this.verifyAppointmentInfo(\r\n this.state.emailAddress,\r\n this.state.phoneNumber,\r\n appointmentNumber,\r\n \"\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n onChange = (e) => {\r\n if (e.target.id === \"appointmentNumber\") {\r\n if (\r\n e.target.value !== \"\" &&\r\n e.target.value.length > 0 &&\r\n utils.validation.isNumber(e.target.value)\r\n ) {\r\n this.setState({\r\n enableBtn: true,\r\n appointmentNumber: e.target.value,\r\n });\r\n } else {\r\n this.setState({ enableBtn: false });\r\n }\r\n } else if (e.target.id === \"phoneNumber\") {\r\n if (\r\n (e.target.value.length === 0 && e.target.value === \"\") ||\r\n /\\s/.test(e.target.value) ||\r\n !/^[0-9+]+$/.test(e.target.value)\r\n ) {\r\n $(\"#phoneNumber\").css(\"border-color\", \"red\");\r\n this.setState({ enableBtn: false });\r\n } else {\r\n $(\"#phoneNumber\").css(\"border-color\", \"#dadada\");\r\n this.setState({ enableBtn: true, phoneNumber: e.target.value });\r\n }\r\n } else if (e.target.id === \"emailAddress\") {\r\n if (\r\n e.target.value !== \"\" &&\r\n e.target.value.length > 0 &&\r\n utils.validateEmail(e.target.value)\r\n ) {\r\n this.setState({ enableBtn: true, emailAddress: e.target.value });\r\n } else {\r\n $(\"#emailAddress\").css(\"border-color\", \"#dadada\");\r\n this.setState({ enableBtn: false });\r\n }\r\n }\r\n };\r\n\r\n // API CALLS\r\n\r\n verifyAppointmentInfo = async (\r\n email,\r\n phoneNumber,\r\n appointmentNumber,\r\n branchIp\r\n ) => {\r\n this.setState({ dataLoaded: false });\r\n try {\r\n let verifyAppointmentResponse = await httpService.verifyAppointmentInfo(\r\n email,\r\n phoneNumber,\r\n appointmentNumber,\r\n branchIp\r\n );\r\n console.log(\"VERIFY APPOINTMENT RESPONSE: \", verifyAppointmentResponse);\r\n if (\r\n verifyAppointmentResponse.data.error !== undefined &&\r\n verifyAppointmentResponse.data.error === true\r\n ) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (\r\n verifyAppointmentResponse.data.response_code === 100 &&\r\n ENABLE_CHECKIN === true &&\r\n verifyAppointmentResponse.data.appointment_info.state === \"ON_TIME\"\r\n ) {\r\n this.setState({\r\n verifyAppointmentResponse,\r\n dataLoaded: true,\r\n });\r\n\r\n this.issueTicket();\r\n } else if (\r\n (verifyAppointmentResponse.data.response_code === 100 ||\r\n verifyAppointmentResponse.data.response_code === 106) &&\r\n ENABLE_CHECKIN === true &&\r\n verifyAppointmentResponse.data.appointment_info.state === \"EARLY\"\r\n ) {\r\n this.setState({ dataLoaded: true });\r\n\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.EarlyIssueTicket,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (\r\n verifyAppointmentResponse.data.response_code === 100 &&\r\n ENABLE_CHECKIN === true &&\r\n verifyAppointmentResponse.data.appointment_info.state === \"LATE\"\r\n ) {\r\n this.setState({ dataLoaded: true });\r\n\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.LateIssueTicket,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (\r\n verifyAppointmentResponse.data.response_code === 100 &&\r\n ENABLE_CHECKIN === false\r\n ) {\r\n this.setState({ dataLoaded: true });\r\n utils.showSuccessMessage(\r\n this.state.translations.AppointmentIsValid,\r\n this.state.translations.Close\r\n );\r\n } else if (\r\n verifyAppointmentResponse.data.response_code === 103 &&\r\n verifyAppointmentResponse.data.appointment_info.appt_state ===\r\n \"TICKET_ISSUED\" &&\r\n ENABLE_CHECKIN === true\r\n ) {\r\n this.setState({ dataLoaded: true });\r\n console.log(\"ELSE IF 183\");\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.TicketAlreadyIssued,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (verifyAppointmentResponse.data.response_code === 102) {\r\n this.setState({ dataLoaded: true });\r\n\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.AppointmentNotFound,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n } catch (error) {\r\n console.log(\"ERROR IN VERIFY APPOINTMENT\", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.SomeThingWentWrong,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n this.setState({ dataLoaded: true });\r\n }\r\n };\r\n\r\n issueTicket = async () => {\r\n this.setState({ dataLoaded: false });\r\n if (this.state.verifyAppointmentResponse.data.response_code === 100) {\r\n try {\r\n var { appointment_info } = this.state.verifyAppointmentResponse.data;\r\n let branchId = appointment_info.branch_id;\r\n let branchCode = appointment_info.branch_code;\r\n let categoryId = appointment_info.category_id;\r\n let priority = appointment_info.priority;\r\n let emailAddress = appointment_info.user_id;\r\n let phoneNumber = appointment_info.payloads[1].fieldValue;\r\n let escapedPhoneNumber = phoneNumber.replace(\"+\", \"%2b\");\r\n let firstName = appointment_info.payloads[7].fieldValue;\r\n let surName = appointment_info.payloads[8].fieldValue;\r\n let additionalInformation = appointment_info.payloads[6].fieldValue;\r\n\r\n let issueTicketResponse = await httpService.issueTicket(\r\n branchId,\r\n categoryId,\r\n priority,\r\n emailAddress,\r\n 3,\r\n localStorage.getItem(\"lang\") === \"es\"\r\n ? \"Sp\"\r\n : localStorage.getItem(\"lang\"),\r\n firstName + \"%20\" + surName,\r\n escapedPhoneNumber,\r\n emailAddress,\r\n \"1\",\r\n additionalInformation\r\n );\r\n console.log(\"RESPONSE OF ISSUE TICKET : \", issueTicketResponse);\r\n\r\n if (\r\n issueTicketResponse.data.error !== undefined &&\r\n issueTicketResponse.data.error === true\r\n ) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ dataLoaded: true });\r\n } else if (\r\n issueTicketResponse.data.ticket_info !== undefined &&\r\n issueTicketResponse.data.ticket_info !== null\r\n ) {\r\n this.setState({\r\n issueTicketResponse: issueTicketResponse,\r\n isSuccessfullyCheckedIn: true,\r\n dataLoaded: true,\r\n });\r\n localStorage.setItem(\"checkedIn\", true);\r\n localStorage.setItem(\"prevCheckedInData\", JSON.stringify(this.state));\r\n localStorage.setItem(\r\n \"checkedInDate\",\r\n moment().toDate().toDateString()\r\n );\r\n\r\n this.markAppointmentUsed();\r\n } else if (issueTicketResponse.data.resp_status === \"-1\") {\r\n this.setState({ isSuccessfullyCheckedIn: false, dataLoaded: true });\r\n\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.TicketNotIssued,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (\r\n issueTicketResponse.data.resp_message ===\r\n \"You already have an issued ticket for the category, in the branch.\"\r\n ) {\r\n this.setState({ isSuccessfullyCheckedIn: false, dataLoaded: true });\r\n\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.TicketAlreadyIssued,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n } catch (error) {\r\n console.log(\"ERROR IN ISSUE TICKET \", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ dataLoaded: true });\r\n } else if (error.message.includes(\"404\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.UrlNotFound,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ dataLoaded: true });\r\n } else if (error.message.includes(\"Network Error\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.InternetConnectionError,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ dataLoaded: true });\r\n } else {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.SomeThingWentWrong,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ dataLoaded: true });\r\n }\r\n }\r\n }\r\n };\r\n\r\n cancelTicket = async () => {\r\n var { appointment_info } = this.state.verifyAppointmentResponse.data;\r\n swal(\r\n this.state.translations.CancelTicketConfirmation,\r\n\r\n {\r\n icon: \"warning\",\r\n buttons: {\r\n no: {\r\n text:\r\n this.state.translations.No === undefined\r\n ? \"No\"\r\n : this.state.translations.No,\r\n value: \"no\",\r\n },\r\n yes: {\r\n text:\r\n this.state.translations.Yes === undefined\r\n ? \"Yes\"\r\n : this.state.translations.Yes,\r\n value: \"yes\",\r\n closeModal: false,\r\n },\r\n },\r\n }\r\n ).then(async (value) => {\r\n switch (value) {\r\n case \"yes\":\r\n let branchId = appointment_info.branch_id;\r\n let ticketId =\r\n this.state.issueTicketResponse.data.ticket_info.ticket_id;\r\n let ticketNumber =\r\n this.state.issueTicketResponse.data.ticket_info.ticket_no;\r\n let sqn = this.state.issueTicketResponse.data.ticket_info.categoryid;\r\n let emailAddress = appointment_info.user_id;\r\n let phoneNumber = appointment_info.payloads[1].fieldValue;\r\n let language =\r\n localStorage.getItem(\"lang\") === \"es\"\r\n ? \"Sp\"\r\n : localStorage.getItem(\"lang\");\r\n try {\r\n let cancelTicketResponse = await httpService.cancelTicket(\r\n emailAddress,\r\n ticketId,\r\n branchId,\r\n language,\r\n ticketNumber,\r\n sqn,\r\n phoneNumber\r\n );\r\n console.log(\"CANCEL TICKET RESPONSE: \", cancelTicketResponse);\r\n if (cancelTicketResponse.data.resp_message === \"Ticket cancelled\") {\r\n swal.close();\r\n\r\n localStorage.removeItem(\"checkedIn\");\r\n localStorage.removeItem(\"checkedInDate\");\r\n localStorage.removeItem(\"prevCheckedInData\");\r\n\r\n utils.redirect(this.state.redirectUrl);\r\n } else if (\r\n cancelTicketResponse.data.resp_message === \"Ticket not found\" ||\r\n cancelTicketResponse.data.resp_message ===\r\n \"Operation not permitted\"\r\n ) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.TicketNotFound,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n localStorage.removeItem(\"checkedIn\");\r\n localStorage.removeItem(\"checkedInDate\");\r\n localStorage.removeItem(\"prevCheckedInData\");\r\n utils.redirect(this.state.redirectUrl);\r\n } else {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.SomeThingWentWrong,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n } catch (error) {\r\n if (error.message.includes(\"404\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.UrlNotFound,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (error.message.includes(\"Network Error\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.InternetConnectionError,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n }\r\n\r\n break;\r\n case \"no\":\r\n break;\r\n\r\n default:\r\n }\r\n });\r\n };\r\n\r\n markAppointmentUsed = async () => {\r\n var { appointment_info } = this.state.verifyAppointmentResponse.data;\r\n try {\r\n let appointmentNumber = appointment_info.appointment_number;\r\n let emailAddress = appointment_info.user_id;\r\n let ticketNumber =\r\n this.state.issueTicketResponse.data.ticket_info.ticket_no;\r\n\r\n let response = await httpService.markAppointmentUsedAfterTicketIssue(\r\n appointmentNumber,\r\n emailAddress,\r\n ticketNumber\r\n );\r\n if (response.data.error !== undefined && response.data.error === true) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n } catch (error) {\r\n console.log(\"ERROR IN MARKING APPOINTMENT USED: \", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (error.message.includes(\"404\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.UrlNotFound,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (error.message.includes(\"Network Error\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.InternetConnectionError,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.SomeThingWentWrong,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n }\r\n };\r\n\r\n getTicketStatus = async () => {\r\n let prevState = JSON.parse(localStorage.getItem(\"prevCheckedInData\"));\r\n let branchId =\r\n prevState.verifyAppointmentResponse.data.appointment_info.branch_id;\r\n let categoryId =\r\n prevState.verifyAppointmentResponse.data.appointment_info.category_id;\r\n let ticketId = prevState.issueTicketResponse.data.ticket_info.ticket_id;\r\n let ticketNumber = prevState.issueTicketResponse.data.ticket_info.ticket_no;\r\n try {\r\n let response = await httpService.getTicketStatus(\r\n branchId,\r\n ticketId,\r\n ticketNumber,\r\n categoryId\r\n );\r\n console.log(\"TICKET STATUS RESPONSE: \", response);\r\n if (response.data.error !== undefined && response.data.error) {\r\n utils.showErrMsg(\r\n prevState.translations.Error,\r\n prevState.translations.ServerNotResponding,\r\n prevState.translations.Ok,\r\n prevState.redirectUrl\r\n );\r\n } else {\r\n if (response.data.resp_status === 1) {\r\n let issueTicketResponse = {\r\n ...prevState.issueTicketResponse,\r\n };\r\n issueTicketResponse[\"data\"][\"ticket_info\"][\r\n \"category_approx_waittime\"\r\n ] = response.data.est_wait_time;\r\n issueTicketResponse[\"data\"][\"ticket_info\"][\"ticket_in_wait\"] =\r\n response.data.position_in_queue <= 0\r\n ? 0\r\n : parseInt(response.data.position_in_queue);\r\n this.setState({ issueTicketResponse: issueTicketResponse });\r\n localStorage.setItem(\"prevCheckedInData\", JSON.stringify(prevState));\r\n } else if (response.data.resp_status === 2) {\r\n utils.notify();\r\n this.setState({ isTicketCalled: true });\r\n } else if (response.data.resp_status === 3) {\r\n localStorage.clear();\r\n utils.showErrMsg(\r\n prevState.translations.Error,\r\n prevState.translations.TicketNotFound,\r\n prevState.translations.Ok,\r\n prevState.redirectUrl\r\n );\r\n setTimeout(() => {\r\n localStorage.clear();\r\n utils.redirect(prevState.redirectUrl);\r\n }, this.popupExpiry);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"ERR IN GET TICKET STATUS\", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrMsg(\r\n prevState.translations.Error,\r\n prevState.translations.ServerNotResponding,\r\n prevState.translations.Ok,\r\n prevState.redirectUrl\r\n );\r\n } else {\r\n utils.showErrMsg(\r\n prevState.translations.Error,\r\n prevState.translations.SomeThingWentWrong,\r\n prevState.translations.Ok,\r\n prevState.redirectUrl\r\n );\r\n }\r\n }\r\n };\r\n\r\n // END OF API CALLS\r\n\r\n renderTicketInfo = () => {\r\n var { ticket_info } = this.state.issueTicketResponse.data;\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n {this.state.translations.IssueTicketConfirmedMessage}\r\n

\r\n
\r\n {/*

\r\n {`${\r\n this.state.translations.EstimatedWaitTimeMessage\r\n } ${Math.floor(ticket_info.category_approx_waittime / 60)} ${\r\n this.state.translations.Minutes\r\n }`}\r\n

*/}\r\n\r\n {`${this.state.translations.ThereArePeople} ${ticket_info.ticket_in_wait} ${this.state.translations.TicketInWait}`}

\r\n
\r\n \r\n\r\n

{this.state.translations.TicketNumber}

\r\n\r\n \r\n {ticket_info.ticket_no}\r\n

\r\n\r\n

\r\n {this.state.translations.TicketIssuedTime}\r\n

\r\n

\r\n {ticket_info.issued_on}\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n {this.state.isSuccessfullyCheckedIn ? (\r\n this.renderTicketInfo()\r\n ) : (\r\n \r\n
\r\n
\r\n
\r\n \r\n {this.state.translations.AppointmentNumber}\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {this.state.translations.EmailAddress}\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {this.state.translations.PhoneNumber}\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {this.state.enableBtn && (\r\n \r\n this.verifyAppointmentInfo(\r\n this.state.emailAddress,\r\n `${\r\n this.state.phoneNumber !== null\r\n ? DEFAULT_PHONE_PREFIX + this.state.phoneNumber\r\n : this.state.phoneNumber\r\n }`,\r\n this.state.appointmentNumber,\r\n \"\"\r\n )\r\n }\r\n showLoader={!this.state.dataLoaded}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Checkin;\r\n","import React from \"react\";\r\n\r\nconst DetailsRow = ({ label = \"\", data = \"\", fontColor = \"#000\" }) => {\r\n return (\r\n \r\n
\r\n
\r\n {label}\r\n
\r\n
\r\n {data}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default DetailsRow;\r\n","import React, { Component } from \"react\";\r\nimport RowFlexContainer from \"./../components/RowFlexContainer\";\r\nimport * as utils from \"../utills/utils\";\r\nimport { HttpService } from \"./../httpServices/httpService\";\r\nimport $ from \"jquery\";\r\nimport swal from \"sweetalert\";\r\nimport DetailsRow from \"../components/DetailsRow\";\r\nimport PrimaryButton from \"./../components/PrimaryButton\";\r\n\r\nconst queryString = require(\"query-string\");\r\n\r\nvar appointmentNumber = queryString.parse(\r\n window.location.search\r\n).appointmentnumber;\r\n\r\nvar {\r\n REDIRECT_TO_CURRENT_PAGE,\r\n APP_ROUTE,\r\n DEFAULT_PHONE_PREFIX,\r\n URLs: { WIZARD_URL },\r\n} = window[\"app-config\"].APPLICATION_PROPERTIES;\r\nvar {\r\n MODIFY_APPT_SCREEN: {\r\n FONT_COLOR,\r\n BTN_FONT_COLOR,\r\n MODIFY_BTN_COLOR,\r\n SUBMIT_BTN_COLOR,\r\n },\r\n} = window[\"theme\"].THEME;\r\n\r\nlet httpService = new HttpService();\r\n\r\nclass ModifyAppointment extends Component {\r\n state = {\r\n translations: {},\r\n enableBtn: false,\r\n isInfoDataLoaded: false,\r\n dataLoaded: true,\r\n response: null,\r\n\r\n redirectUrl: \"\",\r\n\r\n email: null,\r\n appointmentNumber: null,\r\n phoneNumber: null,\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({\r\n translations: utils.setTranslations(),\r\n redirectUrl: utils.removeKeyFromUrl(\r\n [REDIRECT_TO_CURRENT_PAGE ? \"modifyappointment\" : APP_ROUTE],\r\n \"appointmentnumber\"\r\n ),\r\n });\r\n if (appointmentNumber !== undefined && appointmentNumber !== \"\") {\r\n this.getAppointmentInfo(appointmentNumber);\r\n }\r\n }\r\n\r\n onChange = (e) => {\r\n if (e.target.id === \"appointmentNumber\") {\r\n if (\r\n e.target.value !== \"\" &&\r\n e.target.value.length > 0 &&\r\n utils.validation.isNumber(e.target.value)\r\n ) {\r\n this.setState({\r\n enableBtn: true,\r\n appointmentNumber: e.target.value,\r\n });\r\n } else {\r\n this.setState({ enableBtn: false });\r\n }\r\n } else if (e.target.id === \"phoneNumber\") {\r\n if (\r\n (e.target.value.length === 0 && e.target.value === \"\") ||\r\n /\\s/.test(e.target.value) ||\r\n !/^[0-9+]+$/.test(e.target.value)\r\n ) {\r\n $(\"#phoneNumber\").css(\"border-color\", \"red\");\r\n this.setState({ enableBtn: false });\r\n } else {\r\n $(\"#phoneNumber\").css(\"border-color\", \"#dadada\");\r\n this.setState({ enableBtn: true, phoneNumber: e.target.value });\r\n }\r\n } else if (e.target.id === \"emailAddress\") {\r\n if (\r\n e.target.value !== \"\" &&\r\n e.target.value.length > 0 &&\r\n utils.validateEmail(e.target.value)\r\n ) {\r\n this.setState({ enableBtn: true, email: e.target.value });\r\n } else {\r\n $(\"#emailAddress\").css(\"border-color\", \"#dadada\");\r\n this.setState({ enableBtn: false });\r\n }\r\n }\r\n };\r\n\r\n getAppointmentInfo = async (appointmentNumber) => {\r\n this.setState({ dataLoaded: false });\r\n try {\r\n let response = await httpService.getAppointmentInfo(\r\n appointmentNumber,\r\n this.state.email,\r\n `${\r\n this.state.phoneNumber !== null\r\n ? DEFAULT_PHONE_PREFIX + this.state.phoneNumber\r\n : this.state.phoneNumber\r\n }`\r\n );\r\n\r\n if (response.data.error !== undefined && response.data.error === true) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ isInfoDataLoaded: false, dataLoaded: true });\r\n } else if (\r\n response.data.response_code === 100 ||\r\n response.data.response_code === 106\r\n ) {\r\n this.setState({\r\n response: response.data.appointment_info,\r\n isInfoDataLoaded: true,\r\n dataLoaded: true,\r\n });\r\n } else if (\r\n response.data.response_code === 102 &&\r\n response.data.message === \"no appointment found.\"\r\n ) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.AppointmentNotFound,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n\r\n this.setState({ isInfoDataLoaded: false, dataLoaded: true });\r\n } else if (response.data.response_code === 103) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.TicketAlreadyIssued,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ isInfoDataLoaded: false, dataLoaded: true });\r\n } else {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.SomeThingWentWrong,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n this.setState({ isInfoDataLoaded: false, dataLoaded: true });\r\n }\r\n } catch (error) {\r\n this.setState({ isInfoDataLoaded: false, dataLoaded: true });\r\n console.log(\"ERROR: \", error.message);\r\n }\r\n };\r\n\r\n modifyAppointment = async () => {\r\n swal(\r\n this.state.translations.ModifyOrCancelAptMsg,\r\n\r\n {\r\n icon: \"warning\",\r\n buttons: {\r\n reschedule: {\r\n text: this.state.translations.Close,\r\n value: \"reschedule\",\r\n },\r\n cancelAppointment: {\r\n text: this.state.translations.CancelAppointment,\r\n value: \"cancelAppointment\",\r\n closeModal: false,\r\n },\r\n },\r\n }\r\n ).then(async (value) => {\r\n switch (value) {\r\n case \"cancelAppointment\":\r\n try {\r\n let response = await httpService.cancelAppointment(\r\n this.state.response.appointment_number,\r\n this.state.response.category_id,\r\n this.state.response.branch_id,\r\n this.state.response.user_id\r\n );\r\n swal.close();\r\n\r\n if (\r\n response.data.error !== undefined &&\r\n response.data.error === true\r\n ) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else {\r\n if (response.data.response.resp_status === 1) {\r\n utils.showSuccessMessage(\r\n this.state.translations.AppointmentCancelledSuccessfully,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (response.data.response.resp_status === 6) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.AppointmentAlreadyCanceled,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (response.data.response.resp_status === -5) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.AppointmentInfoNotValidToCancel,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (response.data.response.resp_status === 2) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.CantCancelApptTcktIssued,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (response.data.response.resp_status === 7) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.AppointmentExpired,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (response.data.response.resp_status === -2) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.AlreadyServed,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else if (response.data.response.resp_status === -3) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ApptCanceledAutomatically,\r\n this.state.translations.Close\r\n );\r\n } else {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.SomeThingWentWrong,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"ERR IN CANCEL APPT: \", error.message);\r\n if (error.message.includes(\"timeout\")) {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.ServerNotResponding,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n } else {\r\n utils.showErrMsg(\r\n this.state.translations.Error,\r\n this.state.translations.SomeThingWentWrong,\r\n this.state.translations.Close,\r\n this.state.redirectUrl\r\n );\r\n }\r\n }\r\n break;\r\n\r\n case \"reschedule\":\r\n break;\r\n\r\n default:\r\n }\r\n });\r\n };\r\n\r\n renderAppointmentInfo = () => {\r\n return (\r\n <>\r\n
\r\n

\r\n {this.state.translations.AppointmentInfo}\r\n

\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n <>\r\n
\r\n {this.state.isInfoDataLoaded ? (\r\n this.renderAppointmentInfo()\r\n ) : (\r\n \r\n
\r\n
\r\n
\r\n \r\n {this.state.translations.AppointmentNumber}\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {this.state.translations.EmailAddress}\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {this.state.translations.PhoneNumber}\r\n \r\n
\r\n \r\n
\r\n
\r\n {this.state.enableBtn && (\r\n \r\n \r\n !this.state.dataLoaded\r\n ? null\r\n : this.getAppointmentInfo(this.state.appointmentNumber)\r\n }\r\n showLoader={!this.state.dataLoaded}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ModifyAppointment;\r\n","import React, { Component } from \"react\";\r\nimport moment from \"moment\";\r\n\r\nconst { VERSION } = window[\"app-config\"].APPLICATION_PROPERTIES;\r\nclass AppInfo extends Component {\r\n state = {};\r\n render() {\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n {\" \"}\r\n
\r\n

{`APPLICATION VERSION: ${VERSION}`}

\r\n\r\n

{`DATE: ${moment(new Date()).format(\r\n \"DD-MMMM-YYYY hh:mm A\"\r\n )}`}

\r\n
{\" \"}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AppInfo;\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport { BrowserRouter as Router, Route } from \"react-router-dom\";\r\nimport Header from \"./components/Header\";\r\nimport * as utils from \"./utills/utils\";\r\nimport \"./App.css\";\r\nimport Main from \"./containers/Main\";\r\nimport Checkin from \"./containers/Checkin\";\r\nimport ModifyAppointment from \"./containers/ModifyAppointment\";\r\nimport { isIE } from \"react-device-detect\";\r\nimport AppInfo from \"./containers/AppInfo\";\r\nimport { useState } from \"react\";\r\nimport { HttpService } from \"./httpServices/httpService\";\r\nimport Confirm from \"./containers/Confirm\";\r\nimport UserDetails from \"./containers/UserDetails\";\r\nimport Branch from \"./containers/Branch\";\r\nimport { useClearCache } from 'react-clear-cache';\r\n\r\nlet { APP_ROUTE, ENABLE_PROD_RESTRICTIONS, VERSION } =\r\n window[\"app-config\"].APPLICATION_PROPERTIES;\r\n\r\nconst App = () => {\r\n const { isLatestVersion, emptyCacheStorage } = useClearCache();\r\n useEffect(() => {\r\n // Hard Reloading ...\r\n if (!isLatestVersion || localStorage.getItem(\"version\") != VERSION || localStorage.getItem(\"version\") === null || localStorage.getItem(\"version\") === undefined) {\r\n localStorage.setItem(\"version\", VERSION);\r\n emptyCacheStorage();\r\n }\r\n\r\n }, [])\r\n ENABLE_PROD_RESTRICTIONS && utils.applicationMode();\r\n utils.setAppLanguageToLocalStorge();\r\n const [Data, setData] = useState();\r\n const httpService = new HttpService();\r\n\r\n\r\n\r\n var {\r\n URLs: { Path },\r\n } = window[\"app-config\"].APPLICATION_PROPERTIES;\r\n useEffect(() => {\r\n fetch(Path)\r\n .then((response) => response.json())\r\n .then((data) => {\r\n if (data !== null && data !== undefined) {\r\n httpService.SetConfig(data);\r\n utils.SetConfig(data);\r\n setData(data);\r\n }\r\n })\r\n .catch((err) => console.log(\"err\", err));\r\n }, []);\r\n console.log(\"Data\", Data);\r\n // if (isIE) return <>;\r\n return (\r\n <>\r\n {Data !== undefined ? (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import \"react-app-polyfill/ie9\";\nimport \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nimport \"bootstrap/dist/css/bootstrap.min.css\";\nimport \"bootstrap/dist/js/bootstrap.js\";\n\nimport \"bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js\";\nimport \"bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}