{"version":3,"sources":["lib/generalUtils/routes.js","components/ui/general/LoadingComponent.js","api/BaseURL.js","components/ui/subComponents/modals/responseModals.js","api/qualificationApi.js","store/redux/actions/partner/partnerActions.js","lib/generalUtils/functions.js","api/requestWrapper.js","api/designerAdminApi.js","store/redux/actions/designerAdmin/designerAdminActions.js","assets/customIcons.js","api/loginApi.js","store/redux/actions/accountManagement/loginActions.js","api/partnerApi.js","store/redux/actions/layout/headerMenuActions.js","api/adviserApi.js","store/redux/actions/adviser/adviserActions.js","assets/logoWhite.png","assets/sounds/canceledNotification.mp3","assets/logo.png","assets/backgroundImage.jpg","components/ui/partner/scheduleMeeting/checkMeeting.js","assets/sounds/qualificationNotification.mp3","components/ui/partner/qualifyMeeting/regretsMeeting.js","components/ui/partner/waitingRoom/CanceledMeeting.js","components/ui/partner/scheduleMeeting/RedirectScheduleMeeting.js","components/ui/partner/meetingRequest/meetingRequestModal.js","components/ui/partner/meetingRequest/countriesList.js","components/ui/partner/meetingRequest/meetingRequestWeb.js","components/ui/partner/meetingRequest/meetingRequestMobile.js","components/ui/partner/meetingRequest/meetingRequest.js","components/ui/partner/meetingRequest/index.js","components/ui/partner/qualifyMeeting/subcomponents/Star.js","components/ui/partner/qualifyMeeting/subcomponents/StarsRating.js","components/ui/partner/qualifyMeeting/subcomponents/QualificationNotification.js","components/ui/partner/qualifyMeeting/gradeMeeting.js","components/ui/partner/waitingRoom/Content.js","components/ui/partner/waitingRoom/CancelMeetingModal.js","components/ui/partner/waitingRoom/index.js","components/ui/partner/scheduleMeeting/ScheduleMeetingModal.js","components/ui/partner/scheduleMeeting/ExitOfScheduleMeetingModal.js","components/ui/partner/scheduleMeeting/index.js","api/profilerApi.js","components/ui/profiler/subcomponents/CanceledMessageNotification.js","store/redux/actions/profiler/profilerHomeActions.js","components/ui/profiler/home/wait/WaitPanel.js","components/ui/general/EmptyMessageAlert.js","components/ui/profiler/home/wait/waitTableColumns.js","components/ui/profiler/home/wait/AssignAdviserModal.js","components/ui/profiler/home/wait/WaitTable.js","components/ui/profiler/home/wait/Wait.js","components/ui/profiler/home/attention/attentionTableColumns.js","components/ui/profiler/home/attention/Attention.js","components/ui/profiler/home/zoomKeys/zoomKeysColumns.js","components/ui/profiler/home/zoomKeys/ZoomKeys.js","components/ui/profiler/home/Home.js","store/redux/actions/profiler/profilerScheduleActions.js","components/ui/profiler/schedule/AddOrEditScheduleModal.js","components/ui/profiler/schedule/scheduleDetailColumns.js","components/ui/profiler/schedule/ShowInfoModal.js","components/ui/profiler/schedule/Schedule.js","components/ui/adviser/home/subcomponents/ClientInfoForm.js","components/ui/adviser/home/subcomponents/MeetingElement.js","components/ui/adviser/subcomponents/RequestServicesModal.js","components/ui/adviser/home/Home.js","components/ui/shared/history/subcomponents/Filter.js","api/historyApi.js","components/ui/shared/history/subcomponents/historyColumns.js","components/ui/shared/history/History.js","store/redux/actions/shared/historyActions.js","api/adminApi.js","store/redux/actions/admin/parameterization/parameterizationActions.js","components/ui/admin/parameterization/LogoTypes.js","components/ui/admin/parameterization/WaitingText.js","lib/adminUtils/adminUtils.js","components/ui/admin/parameterization/Multimedia.js","components/ui/admin/parameterization/subcomponents/SocialTableButtons.js","components/ui/admin/parameterization/SocialNetworks.js","components/ui/admin/parameterization/Agenda.js","components/ui/admin/parameterization/subcomponents/ServiceTableButtons.js","components/ui/admin/parameterization/Services.js","components/ui/admin/parameterization/Timeout.js","components/ui/admin/parameterization/index.js","store/redux/actions/admin/zoomkeys/zoomKeysActions.js","components/ui/admin/zoomkeys/ZoomKeysTableButtons.js","components/ui/admin/zoomkeys/urlConfigModal.js","components/ui/admin/zoomkeys/index.js","components/ui/profiler/history/subcomponents/Filter.js","components/ui/profiler/history/subcomponents/historyColumns.js","components/ui/profiler/history/RequestsHistory.js","store/redux/actions/profiler/profilerRequestsHistoryActions.js","components/ui/profiler/history/History.js","components/ui/designerAdmin/TextAdministrator.js","components/ui/designerAdmin/subComponents/buttonsTableColumns.js","components/ui/designerAdmin/subComponents/AddButtonModal.js","components/ui/designerAdmin/subComponents/EditButtonModal.js","components/ui/designerAdmin/ButtonsTable.js","components/ui/designerAdmin/subComponents/AddContactModal.js","components/ui/designerAdmin/subComponents/EditContactModal.js","components/ui/designerAdmin/ContactUsTable.js","components/ui/designerAdmin/HomePopup.js","components/ui/designerAdmin/DesignerAdminIndex.js","components/ui/general/Router.js","components/ui/partner/guestRoom/GuestRoom.js","App.js"],"names":["home","login","waiting_room","guest_room","forgotPassword","meeting_request","schedule_request","schedule_meeting","check_meeting","canceled_meeting","meeting_qualification","meeting_thanks","join_schedule_meeting","match","profilerWaitingCustomers","profilerAttendingCustomers","profilerSchedule","profilerMeetingsHistory","profilerRequestsHistory","parameterization","adviserHome","adviserHistory","adviserMeeting","designerLogin","designParameter","LoadingComponent","isLoading","loadingText","className","data-percent","alt","src","logo","width","height","cx","cy","r","transform","style","paddingTop","BaseURL","SUCCESS_MODAL","title","err_message","Modal","success","content","keyboard","SUCCESS_MODAL_ON_OK","onOkFunction","onOk","store","dispatch","ERROR_MODAL","error","WARNING_MODAL","warn_message","warning","WARNING_MESSAGE","msg","message","SUCCESS_MESSAGE","qualificationApi","getQualificationParams","request","url","method","addOrUpdateQualification","qualificationInfo","data","getRenderView","clearValues","type","C","RESET_PARTNER_VALUES","resetValues","getRequestInfo","partnerServices","then","response","GET_REQUEST_INFO","payload","catch","err","getTermsInfo","GET_TERMS_INFO","requestMeeting","user_name","last_name","name","lastName","sessionStorage","setItem","logOperation","JSON","stringify","role","REQUEST_MEETING","cancelMeeting","CANCEL_MEETING","leaveMeeting","clear","LEAVE_MEETING","askForMeetingRequest","meetingRequestId","askForMeeting","ASK_FOR_MEETING","finishedMeeting","meetingId","FINISHED_MEETING","getScheduleAvailability","GET_SCHEDULE_AVAILABILITY","isFetching","scheduleAvailabilityList","minTime","maxTime","rangeInMinutes","weekEvents","times","forEach","time","k","endRecur","Date","setDate","getDate","endRecurSplit","toLocaleDateString","year","month","day","replace","split","length","timeSplit","addHourToTime","parseInt","substring","dayDate","endDate","getDateFromString","startDate","eventDate","today","setHours","getTime","eventOnTime","eventOnWeek","currentTime","getHours","eventToPush","id","start","end","startTime","endTime","allDay","startRecur","editable","push","minTimeValue","computeTime","maxTimeValue","i","actualTimeValue","scheduleMeeting","SCHEDULE_MEETING","exitScheduleMeeting","scheduleMeetingInfo","advisoryRatingJustifications","callRatingJustifications","SET_QUALIFICATION_PARAMS","performQualification","joinById","JOIN_SCHEDULE_MEETING_BY_ID","requestError","potentialClientName","GET_RENDER_VIEW","requestCancelInfo","MEETING_LOG_ID","meetingLogId","logId","localStorage","updateLogOperation","getLocationInfo","axios","get","GET_LOCALITATION_IP","countryCodeSelected","country","isSignedIn","undefined","access_token","expireTime","expires_on","expiresIsActive","getStateIconColor","state","emptyListMessage","elementName","getFormatDate","date","mode","newDate","getFullYear","getMonth","monthNames","getUTCDate","monthIndex","getUTCMonth","getUTCFullYear","getDisabledHours","minHour","maxHour","intMinHour","intMaxHour","disabledHours","j","stringTime","timeArray","stringDate","dayDateArray","setMeetingLog","dataId","callBack","dataIds","meetingLogJson","parse","getItem","moment","meetingIdTime","format","getVoxeetKeys","createMeetingTime","devicesList","hasWebcam","hasMicrophone","isMicrophoneAlreadyCaptured","isWebcamAlreadyCaptured","client","initializeClient","create","baseURL","headers","options","console","config","status","Promise","reject","designerAdminService","loginDesignAccount","getBannerConfig","addBannerConfig","bannerFormData","FormData","mobileBanner","append","originFileObj","generalBanner","tooltipText","bannerText","updateBannerConfig","Object","keys","key","getButtons","addButton","bodyFormData","color","link","isWebinarButton","icon","updateButton","customButtonId","isActive","deleteButton","params","updateContactNotAvailableText","getCountriesInfo","addCountryInfo","updateCountryInfo","deleteCountryInfo","getCurtainViewConfig","getCountriesInfoCurtain","getModalInfo","updateModalInfo","setLoading","SET_LOADING","designerAdminServices","personId","userInfo","roleId","accessToken","expiresOn","A","LOGGING","GET_BANNER_CONFIG","bannerConfig","bannerInfo","setBannerConfig","GET_BUTTONS","buttonsList","buttons","GET_COUNTRIES_INFO","countriesList","countries","contactNotAvailableText","GET_CURTAIN_VIEW_CONFIG","curtainViewConfig","GET_MODAL_INFO","modalInfo","ConnectionStatusIcon","fill","size","viewBox","verticalAlign","border","backgroundColor","borderRadius","marginBottom","marginRight","d","WhatsappIcon","xmlns","fillRule","clipRule","loginService","email","password","logout","loginServices","user_info","Roles","Adviser","redirect","LOGOUT","window","location","routes","RESET_VALUES","AdviserTypes","MEETING_ADVISER_LOG_ID","partnerService","setCurrentKeyActive","route","headerMenuTypes","CURRENT_KEY_ACTIVE","currentKey","getAllMeetingsSummary","getHistory","getParamsByMeetingId","saveClientInformation","clientInformation","startMeeting","meetingInformation","finishMeeting","updateConnectedStatus","updateAdviserStatus","value","setMeetings","meetings","services","SET_ADVISER_MEETINGS","SET_IS_LOADING","setToggleModal","flag","TOGGLE_SERVICES_MODAL","fetchMeetings","firstTime","AdviserApi","meetingSummaryItems","getDetailedMeeting","detailedMeeting","SET_DETAILED_MEETING","setDetailedMeeting","meetingInfo","START_MEETING","meetingUrl","advisorUrl","isEmbeddedMeeting","open","removeItem","beforeVoxeetMeeting","toggleServicesModal","storageAdviserStatus","module","exports","CheckMeeting","props","exit","returnHome","bind","this","text","setState","xxl","lg","md","sm","xs","homeLogoUrl","dangerouslySetInnerHTML","__html","onClick","to","Component","connect","partner","Regrets","waitingRoom","mobileSize","returnToWaitingRoom","addEventListener","resize","innerWidth","firstLogo","requestInfo","finishedMeetingResponse","redirected","pathname","body","CanceledMeeting","smallSize","toSchedule","requestAskForMeeting","buttonsClass","waitingLogo","RedirectScheduleMeeting","isMounted","history","withRouter","MeetingRequestModal","visible","requestMeetingResponse","sendResponse","onCancel","hideMeetingRequestModal","closable","maskClosable","footer","loading","frequentCountries","FormItem","Form","Item","Option","Select","OptGroup","gutter","xl","textNormalize","normalize","MeetingRequestWeb","meetingRequestModalVisible","onChangeCountry","countryCode","toLowerCase","onChangeService","service","citiesEnabled","form","setFieldsValue","city","adviser","advisorsEnabled","advisers","serviceId","adviserHasService","includes","adviserIsDuplicated","onRequestMeeting","validateFieldsAndScroll","values","formError","servicesList","names","lastNames","phone","cities","getCitiesObject","externalPartner","person_id","channel","matchChannel","servicesIds","adviserId","citiesOfInterest","defineChannel","externalPartnerId","saveInSessionStore","whatsappNumber","scheduleMeet","advancedClick","advanced","termsIsAccepted","rule","callback","prevProps","prevState","snapshot","scriptElement","document","getElementsByClassName","display","getFieldDecorator","onClickLogout","modeOfContact","meetingFormInfo","scheduleFormInfo","homeInfoColClass","homeInfoContainerClass","href","logoWhite","xxs","placement","getHomeInfoMessage","tooltip","label","rules","required","prefix","placeholder","initialValue","onChange","showSearch","notFoundContent","defaultActiveFirstOption","showArrow","filterOption","input","option","children","indexOf","map","iso2","nombre","countryCodeEditable","disableDropdown","allowClear","validator","target","rel","WrappedHome","MeetingRequestMobile","onVisiblePopOver","popOverVisible","userAgent","navigator","chromeAgent","safariAgent","operaAgent","getElementsByTagName","classList","add","remove","justify","align","trigger","suffix","min","inputClass","buttonClass","MeetingRequestForm","closePopoverMobile","cityArray","keyBursting","scheduleLoading","zopimElement","checkScriptsElements","permanentRequest","setInterval","scriptElement3","selectedServices","serviceName","ref","el","instance","MeetingRequest","onSignOut","requestTermsInfo","isNotLogged","loginBackground","onClickLogin","terms","okText","cancelText","reload","Star","selected","f","onMouseEnter","StarsRating","totalStars","selectedStars","onRate","Array","n","defaultProps","interval","audio","configureInterval","playNotificationSound","Audio","sound","play","stopNotificationSound","pause","clearInterval","QualificationNotification","notification","description","theme","duration","onClose","GradeMeeting","currentStep","qualificationSteps","questions","qualifications","redirectToHome","nextStep","rate","performRate","step","getFieldValue","recommend","callRating","callRatingJustValue","callRatingJustificationId","callRatingComment","advisoryRating","advisoryRatingJust","advisoryRatingJustificationId","advisoryRatingComment","generalRating","current","qualification","Step","TextArea","rows","e","checked","defaultChecked","disabled","wrappedComponent","Content","carousel","React","createRef","images_content","advertisingImages","video_content","advertisingVideo","isVideo","video","node","autoplay","autoplaySpeed","image","BaseUrl","controls","autoPlay","muted","loop","CancelMeetingModal","closeModal","destroyOnClose","RadioGroup","Radio","Group","meetingStarted","eventLeaveMeeting","event","preventDefault","returnValue","WaitingRoom","openCancelModal","valueText","permanentFinishedRequest","redirectGrade","ableUrl","showCancelDialog","notYetShowCancelDialog","showButtons","makeMeeting","clearFirstInterval","clearSecondInterval","canceledMeetingRequest","showHomeLogo","onChangeRadio","handleCancelMeeting","onChangeReasonCancel","checkDisabled","askForMeetingFinished","redirectToGrade","s","createElement","async","setAttribute","innerHTML","appendChild","allowCamAndMic","finished","canceled","mediaDevices","enumerateDevices","MediaDevices","canEnumerate","isHTTPs","protocol","MediaStreamTrack","devices","device","deviceId","kind","getSources","_device","skip","justification","removeEventListener","waitingText1","waitingText2","isVideoSelected","isDisabledButtons","hasMeetingUrl","getElementById","click","textAlign","allow","requestLeaveInfo","Steps","ScheduleMeetingModal","radioValue","onChangePhone","onChangeEmail","saveScheduleMeeting","meetingDateTime","scheduleDate","addMeetingRequestVm","contactPreference","offset","getTimezoneOffset","toggleScheduleMeetingModalVisible","dateStringFormat","scheduleMeetingModalVisible","steps","whatsappIsDisabled","emailIsDisabled","marginLeft","prev","next","item","dropdownClass","ExitOfScheduleMeetingModal","onConfirmButton","toggleExitModal","ScheduleMeeting","calendarComponentRef","availabilityServiceId","weekStartDay","weekEndDay","exitModalVisible","availabilityList","onChangeAvailabilityServiceId","myData","updateTimeLimits","prevContext","dayLimitsChanged","availabilityChanged","servicesChanged","toDateFormat","dateRange","isVisible","dateTime","rangeMinutes","getMinutes","toString","defaultView","plugins","timeGridPlugin","interactionPlugin","titleFormat","weekends","allDaySlot","columnHeader","navLinks","selectable","handleWindowResize","slotDuration","locale","esLocale","firstDay","validRange","events","eventClick","info","dayRender","setCurrentWeek","view","dateProfile","activeRange","profilerApi","getAll","getToAssign","deleteMeetingRequest","assign","getAllAssignedMeeting","getParamsByDay","addAll","getSchedulingByDatesRange","updateAll","getSummaryByScheduleId","getParams","activateAutomaticProfiler","getAllInAMeeting","freeMeeting","CanceledMessageNotification","messageList","messages","setIsFetching","getAllToAssign","canceledMessages","profilerTypes","GET_ALL_TO_ASSIGN","waitingCustomersList","meetingRequestTableVm","canceledMessage","availableKeys","idleTimeout","SET_IDLE_TIMEOUT","GET_ALL_IN_A_MEETING","inMeetingList","Panel","Collapse","WaitPanel","intervalId","activeKeys","updateAdvisersList","advisersList","adviserElement","adviserConnectionStatusVm","changeCollapsed","isCollapsed","collapseActiveKeys","bordered","defaultActiveKey","header","connectionStatus","queue","timeInMeeting","profilerHome","GET_ALL_ADVISERS","EmptyMessageAlert","showIcon","waitTableColumns","dataIndex","sorter","a","b","clientName","localeCompare","render","waitTime","requiredServices","adviserName","stateRequest","fixed","waitTableDirectorColumns","AssignAdviserModal","selectedAdviser","onAssignAdviser","onChangeAdviser","toggleModalToAssign","meetingRequestIdToAssign","isReadyToSave","adviserServiceId","ASSIGN","Search","Input","WaitTable","kBk","filterText","filteredData","modalToAssignVisible","handleFilterData","updateWaitingCustomersList","tableData","customer","elementToPush","customerActions","onConfirm","element","valueFormat","clientNameFormat","requiredServicesFormat","isFilterTextEmpty","setTableData","emptyData","onSearch","scroll","x","dataSource","columns","Profiler","rowKey","pagination","pageSize","emptyText","DELETE_MEETING_REQUEST","Sider","Layout","Wait","collapsible","collapsed","breakpoint","collapsedWidth","onCollapse","attentionTableColumns","assignedTime","stateMeeting","Attention","updateAttendingCustomersList","attendingCustomersList","GET_ALL_ASSIGNED_MEETING","zoomKeysColumns","ZoomKeys","actions","fontSize","FREE_MEETING","Header","Home","onChangeMenuOption","checkIdle","IDLE_LIMIT","lastActivity","now","activityChecker","log","currentRoute","isWaitingCustomers","Routes","isAttendingCustomers","selectedKeys","headerMenu","GET_SCHEDULE","eventsSchedule","morningId","afternoonId","AddOrEditScheduleModal","keyName","nextKeys","concat","morningKeys","afternoonKeys","filter","readyMorningEventsToEdit","readyAfternoonEventsToEdit","morningStartHour","morningEndHour","morningAdvisorsQuantityList","afternoonStartHour","afternoonEndHour","afternoonAdvisorsQuantityList","recur","formHasErrors","onChangeMorningStartHour","onChangeMorningEndHour","onChangeAfternoonStartHour","onChangeAfternoonEndHour","onChangeMorningAdvisorQuantity","onChangeAfternoonAdvisorQuantity","onChangeRecur","onSaveSchedule","onUpdateSchedule","applyTransformationToHour","setFormMorningValuesToEdit","setFormAfternoonValuesToEdit","morningEvents","afternoonEvents","utc","startHour","tz","endHour","advisorsQuantities","quantity","validateFields","dateSplit","getDay","currentDate","morningSchedule","startHourToSet","endHourToSet","afternoonSchedule","toggleAddScheduleModal","currentWeek","hourToTransform","hour","minutes","dateToAddSchedule","isDefault","addScheduleModalVisible","morningFormItems","whitespace","advisor","afternoonFormItems","isReadyToRender","dateStringFormatSplit","isWeekend","getUTCDay","isReadyToUpdate","WrappedElement","GET_SCHEDULE_PARAMS","isMorning","ADD_SCHEDULE","UPDATE_SCHEDULE","scheduleDetailColumns","TabPane","Tabs","ShowInfoModal","hourSelected","hoursList","onChangeHour","eventToShow","startMinutes","endMinutes","scheduleId","showInfoModalVisible","toggleShowInfoModal","summary","onSelect","tab","schedules","GET_SCHEDULE_SUMMARY","Schedule","eventInfo","eventRender","startHours","endHours","ReactDOM","navLinkDayClick","ClientForm","potentialClientLastName","defaultCountry","potentialClientCountry","optionFilterProp","EmptyListMessage","potentialClientNationality","clientInfo","MeetingElement","showAddPartner","toggleAttendantInfo","getDetailedMeetingInformation","setClientFormInformation","rejectMeeting","stopNotificationSoundFunction","changeInMeetingStatus","inMeeting","clientLastName","clientEmail","clientPhone","clientCountry","clientNationality","partnerName","partnerLastName","partnerEmail","partnerPhone","partnerCountry","partnerNationality","stopPropagation","saveClientInfoPromise","resolve","handleCallEnding","interestCities","extraContent","REQUEST_STATUS_IDs","assigned","isSales","serviceInList","SERVICES","sales","expandIconPosition","extra","layout","float","nextProps","RequestServicesModal","isTransfer","servicesToTransfer","handleSubmit","handleSelectServices","handleTransferServices","servicesInfo","servicesAttended","isRedirected","newRequiredServices","handleOk","handleCancel","AdviserHome","meetingsList","interval2","finishingMeetingRequest","fullScreenWhereBy","showInteractionModal","getMeetings","setFinishingMeetingRequest","notificationPermission","handleFinishCall","addOnBeforeUnload","equalMeetingsLists","Notification","permission","requestPermission","alert","ev","servicesModalVisible","meetingUrlSplit","currentMeet","find","meeting","clipboard","writeText","origin","fontFamily","grid","xm","position","hideOnSinglePage","alignment","renderItem","potentialClient","RangePicker","DatePicker","HistoryFilter","onChangeDate","onChangeField","onClickSearch","onRemoveFilters","momentDate","textFilter","dateMoment","dateString","historyApi","getReportByUser","getReportParams","generateReportPerUser","getRequestsReportParams","getRequestsReport","generateRequestsReport","historyColumns","minWidth","requiredService","attentionTime","meetingAdviserName","profilerHistoryColumns","adviserHistoryColumns","AdviserHistory","reportFilterVm","finalDate","initialDate","paginationVm","page","orderFieldId","ascendant","filterValue","newData","filters","reportParams","orderField","field","charAt","toUpperCase","slice","order","record","tableReadyToRender","collection","lastExportDate","generateFile","Director","showSizeChanger","pageSizeOptions","total","rowCount","c","historyTypes","GET_REPORT","GET_REPORT_PARAMS","GENERATE_REPORT","adminService","getLogoTypes","updateLogoTypes","multimediaId","file","getWaitingTextParams","updateTextParams","getMultimediaParams","updateMultimediaParams","set","videoIsActive","modifyImages","modifyVideos","images","videos","getTermsTextParams","getSocialData","addSocialData","deleteSocialData","getServices","addServices","editServices","deleteServices","getScheduleValues","updateScheduleValues","getTimesOut","updateTimesOut","getEmbeddedMeetingMode","updateEmbeddedMeetingMode","getVideoCallUrls","getUrlById","addVideoCallUrl","updateVideoCallUrl","deleteVideoCallUrl","getParamsVideoCallUrl","getTextParams","adminServices","GET_PARAMS_TEXT","GET_MULTIMEDIA","GET_LINKS","GET_SERVICES","GET_TIMEOUT","getBase64","img","reader","FileReader","result","readAsDataURL","LogoTypes","handlePreview","thumbUrl","preview","previewImage","previewVisible","firstimageUrl","secondimageUrl","firstLoading","secondLoading","changeFirstFile","changeSecondFile","firstList","secondList","onMultimediaChange","handleFirstChange","handleSecondChange","saveFirstLogo","saveSecondLogo","handleCancelModal","fileToAdd","uid","lastModified","lastModifiedDate","onloadend","fileList","firstimageId","setLogoTypes","secondimageId","getLogosResponse","imageRender","imageURL","list_name","uploadButton","listType","beforeUpload","showUploadList","showPreviewIcon","showRemoveIcon","onPreview","multiple","admin","updateLogosResponse","GET_LOGOS","firstFile","SET_LOGOS","WaitingText","firstText","secondText","thirdText","fourthText","fifthText","sixthText","inputFirstText","inputSecondText","inputThirdText","inputFourthText","inputFifthText","inputSixthText","saveFirstText","saveSecondText","saveThirdText","saveFourthText","saveFifthText","saveSixthText","textId","setTextParams","getFirstParamsTextResponse","firstObject","secondObject","thirdObject","fourthObject","fifthObject","sixthObject","defaultValue","updateParamsTextResponse","SET_PARAMS_TEXT","mapFilesData","filesData","new_list","mapFilesIds","new_object","maxSizeMb","multimediaTypeId","sectionId","mapToDataResponse","isImages","contentList","response_list","mapScheduleData","defineServiceQuantity","week_services","contentListValues","defaultScheduleValues","servicesNames","advisorsByServices","createDataResponse","week_information","defaultScheduleValuesId","new_array","onload","onerror","Multimedia","imagesIsActive","imagesList","loadedList","videosList","onChangeVideoIsActiveState","onChangeImagesIsActiveState","handleImagesChange","handleVideoChange","saveMultimediaChanges","getMultimediaParamsResponse","responseVideoIsActive","videoIsActiveProps","updateMultimediaParamsResponse","UPDATE_MULTIMEDIA","TableButtons","editUserModal","keyBurstingKey","visibleEditModal","handleDelete","linkId","linkName","linkUrl","section","span","DELETE_LINKS","table","itemRender","originalElement","Social","firstTextLength","setData","inputLinkName","inputLinkUrl","saveLink","linkList","row","getLinksResponse","ADD_LINKS","requestMeetingInfo","Agenda","week_morning","week_morning_services","week_evening","week_evening_services","weekend_morning","weekend_morning_services","weekend_evening","weekend_evening_services","changedValues","onChangeScheduleValue","onChangeScheduleService","saveWeekChanges","typeWeek","auxObj","_d","auxArray","responseData","getScheduleValuesResponse","max","inputServiceName","inputServiceTime","handleEdit","meetingRangeInMinutes","updateServices","hasExclusiveId","cursor","UPDATE_SERVICES","DELETE_SERVICES","serviceState","Services","saveServices","getServicesResponse","ADD_SERVICES","Timeout","idleTimeOut","assignTimeOut","onChangeFirst","onChangeSecond","onChangeThird","getTimesoutResponse","saveChanges","UPDATE_TIMEOUT","Parametrization","GET_EMBEDDED_MODE","GET_VIDEOCALL_URLS","urlsList","modalVisible","newUrl","onChangeUrl","videoCallUrlId","urlByIdInfo","showEditModal","employeeName","GET_URL_BY_ID","UPDATE_VIDEOCALL_URL","UrlConfigModal","adviserSelected","employeeId","videoCallParams","onSubmit","param","GET_PARAMS_VIDEOCALL_URL","toggleModal","visibleModal","dataTable","keysAreNull","margin","UPDATE_EMBEDDED_MODE","requestsHistoryColumns","RequestsHistory","requestsReportParams","fields","generateReport","requestsRecord","GET_REQUESTS_REPORT","GET_REQUESTS_REPORT_PARAMS","History","isMeetingsHistory","marginTop","dummyRequest","onSuccess","setTimeout","isJpgOrPng","isLt2M","TextAdministrator","handleChangeImageWeb","imgWebUrl","imgFileWeb","handleChangeImageMobile","imgMobileUrl","imgFileMobile","changeBannerText","changeTooltipText","changeTooltipTextFooter","footerTooltip","changeContactUsText","contactText","changeHelpTextForm","meetingHelpText","changeScheduleHelpTextForm","scheduleHelpText","changeMeetingTitle","meetingTitle","changeScheduleTitle","scheduleTitle","changeMeetingContent","meetingContentText","changeScheduleContent","scheduleContentText","bannerId","filesWeb","Map","filesMobile","generalBannerUrl","mobileBannerUrl","accordion","modalOk","modalCancel","modalTitle","aspect","customRequest","top","autosize","minRows","maxRows","mapDispatchToProps","designerAdmin","buttonsTableColumns","hasIcon","contactTableColumns","customText","AddButtonModal","handleChangeImage","imageUrl","imageFile","errors","toggleAddButtonModal","imgUpload","validateForm","valuePropName","autoFocus","autoComplete","EditButtonModal","buttonInfo","iconUrl","toggleEditButtonModal","ButtonsTable","showAddButtonModal","showEditButtonModal","button","AddContactModal","toggleAddContactModal","EditContactModal","contactInfo","toggleEditContactModal","contactCountryId","ContactUsTable","showAddContactModal","showEditContactModal","containerDiv","handleChangeText","HomePopup","handleUpdateInfo","urlText","formData","modalImageUrl","redirectModalUrl","modalInfoIsActive","uploadProps","enableButton","modalWidth","Dragger","DesignerAdminIndex","minHeight","Router","Partner","path","component","ThanksMeeting","ProfilerHome","ProfilerSchedule","Admin","DesignerAdmin","exact","GuestRoom","search","urlParams","URLSearchParams","guestUrl","lazy","Login","HeaderMenu","App","handleRender","currentPathname","parent","postMessage","fallback","userName"],"mappings":"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","file":"static/js/5.91d01161.chunk.js","sourcesContent":["export default {\r\n home: '/inicio',\r\n login: '/ejecutivo',\r\n waiting_room: '/sala-de-espera/',\r\n guest_room: '/sala-de-invitado/',\r\n forgotPassword: 'https://casapropiacolombia.azurewebsites.net/forgotPassword',\r\n meeting_request: '/solicitar-reunion/:channel?',\r\n schedule_request: '/agendar-contacto',\r\n schedule_meeting: '/agendar-reunion/',\r\n check_meeting: '/verificar-reunion/',\r\n canceled_meeting: '/reunion-finalizada/',\r\n meeting_qualification: '/calificar-reunion',\r\n meeting_thanks: '/informacion-reunion',\r\n join_schedule_meeting: '/agenda/meetingRequestId='.match(/\\d+$/),\r\n profilerWaitingCustomers: '/perfilador/clientes-en-espera',\r\n profilerAttendingCustomers: '/perfilador/clientes-en-atencion',\r\n // profilerKeys: '/perfilador/keys',\r\n profilerSchedule: \"/perfilador/agenda\",\r\n profilerMeetingsHistory: \"/perfilador/historial-reuniones\",\r\n profilerRequestsHistory: \"/perfilador/historial-solicitudes\",\r\n parameterization: \"/parametrización\",\r\n // keys: \"/keys\",\r\n adviserHome: '/asesor',\r\n adviserHistory: '/asesor/historial',\r\n adviserMeeting: '/asesor/meeting',\r\n\r\n designerLogin: '/diseño',\r\n designParameter: \"/diseño-parametrización\"\r\n};","import logo from \"../../../../src/assets/logo.png\";\r\nimport React from \"react\";\r\nimport '../../../styles/general/loadingComponent.css';\r\n\r\nconst LoadingComponent = ( {isLoading, loadingText} ) => {\r\n return (\r\n
\r\n
\r\n
\r\n logo\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {loadingText}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LoadingComponent;","// const BaseURL = \"https://cpcmeetings.azurewebsites.net/\";\r\nconst BaseURL = \"https://meetings-services.azurewebsites.net/\";\r\n// const BaseURL = \"https://localhost:44341/\";\r\n\r\nexport default BaseURL;","import { Modal, message } from 'antd';\r\nimport store from '../../../../store/store';\r\n\r\nexport function SUCCESS_MODAL(title, err_message) {\r\n Modal.success({\r\n title: title,\r\n content: err_message,\r\n keyboard: false\r\n });\r\n};\r\n\r\nexport function SUCCESS_MODAL_ON_OK(title, err_message, onOkFunction) {\r\n Modal.success({\r\n title: title,\r\n content: err_message,\r\n keyboard: false,\r\n onOk () {\r\n store.dispatch(onOkFunction)\r\n }\r\n });\r\n};\r\n\r\nexport function ERROR_MODAL(title, err_message) {\r\n Modal.error({\r\n title: title,\r\n content: err_message,\r\n keyboard: false\r\n });\r\n};\r\n\r\nexport function WARNING_MODAL(title, warn_message) {\r\n Modal.warning({\r\n title: title,\r\n content: warn_message,\r\n });\r\n};\r\n\r\nexport function CONFIRM_MODAL(title, err_message) {\r\n Modal.success({\r\n title: title,\r\n content: err_message,\r\n onOk() {\r\n window.location.reload();\r\n },\r\n });\r\n};\r\n\r\nexport function EMERGING_WINDOWS_MODAL() {\r\n Modal.warning({\r\n title: 'Ventanas emergentes',\r\n content: 'Por favor habilite las ventanas emergentes de acuerdo con su navegador',\r\n });\r\n};\r\n\r\nexport function INFO_MESSAGE(msg){\r\n message.info(msg);\r\n}\r\n\r\nexport function WARNING_MESSAGE(msg){\r\n message.warning(msg);\r\n}\r\n\r\nexport function ERROR_MESSAGE(msg){\r\n message.error(msg);\r\n}\r\n\r\nexport function SUCCESS_MESSAGE(msg){\r\n message.success(msg);\r\n}","import request from './requestWrapper';\r\n\r\nfunction getQualificationParams(){\r\n return request({\r\n url: '/Qualification/GetParams',\r\n method: 'GET'\r\n });\r\n}\r\n\r\nfunction addOrUpdateQualification(qualificationInfo){\r\n return request({\r\n url: '/Qualification/AddOrUpdate',\r\n method: 'PUT',\r\n data: qualificationInfo\r\n });\r\n}\r\n\r\nfunction getRenderView(){\r\n return request({\r\n url: '/Qualification/GetRenderView',\r\n method: 'GET'\r\n });\r\n}\r\n\r\nconst qualificationApi = {\r\n getQualificationParams, addOrUpdateQualification, getRenderView\r\n};\r\n\r\nexport default qualificationApi;","//Libraries\r\nimport axios from 'axios';\r\n\r\n//Subcomponents\r\nimport {ERROR_MODAL, WARNING_MODAL} from \"../../../../components/ui/subComponents/modals/responseModals\";\r\n\r\n//Services\r\nimport partnerServices from '../../../../api/partnerApi';\r\nimport qualificationApi from '../../../../api/qualificationApi';\r\n\r\n//Constants\r\nimport {partnerTypes as C} from '../../types';\r\n\r\nimport { computeTime, getDateFromString } from \"../../../../lib/generalUtils/functions\";\r\n\r\nfunction saveLocalStorage(user_name, last_name){\r\n sessionStorage.setItem('user_name', user_name);\r\n sessionStorage.setItem('last_name', last_name);\r\n};\r\n\r\nexport const clearValues = () => {\r\n return{\r\n type: C.RESET_PARTNER_VALUES,\r\n }\r\n};\r\n\r\nconst resetValues = () => {\r\n return {\r\n type: C.RESET_PARTNER_VALUES,\r\n }\r\n};\r\n\r\nconst setQualificationParams = (advisoryRatingJustifications, callRatingJustifications) => {\r\n return{\r\n type: C.SET_QUALIFICATION_PARAMS,\r\n advisoryRatingJustifications,\r\n callRatingJustifications\r\n };\r\n};\r\n\r\nexport const getRequestInfo = () => {\r\n return dispatch => {\r\n return partnerServices.getRequestInfo()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_REQUEST_INFO,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al traer la información', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getTermsInfo = () => {\r\n return dispatch => {\r\n return partnerServices.getTermsInfo()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_TERMS_INFO,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al traer la información', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const requestMeeting = (data) => {\r\n return dispatch => {\r\n return partnerServices.requestMeeting(data)\r\n .then(response => {\r\n resetValues();\r\n saveLocalStorage(data.name, data.lastName);\r\n\r\n dispatch(logOperation(JSON.stringify( { role: \"Cliente\" } )));\r\n dispatch({\r\n type: C.REQUEST_MEETING,\r\n payload: response.data,\r\n error: false,\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al solicitar la reunión', err.data);\r\n dispatch({\r\n type: C.REQUEST_MEETING,\r\n error: true,\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport const cancelMeeting = (data) => {\r\n return dispatch => {\r\n return partnerServices.cancelMeeting(data)\r\n .then(response => {\r\n resetValues();\r\n dispatch({\r\n type: C.CANCEL_MEETING,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al cancelar la reunión', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const leaveMeeting = (data) => {\r\n return dispatch => {\r\n return partnerServices.leaveMeeting(data)\r\n .then(response => {\r\n sessionStorage.clear();\r\n resetValues();\r\n dispatch({\r\n type: C.LEAVE_MEETING,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al abandonar la reunión', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const askForMeetingRequest = (meetingRequestId) => {\r\n return dispatch => {\r\n return partnerServices.askForMeeting(meetingRequestId)\r\n .then(response => {\r\n resetValues();\r\n dispatch({\r\n type: C.ASK_FOR_MEETING,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al solicitar información de la reunión', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const finishedMeeting = (meetingId) => {\r\n return dispatch => {\r\n return partnerServices.finishedMeeting(meetingId)\r\n .then(response => {\r\n resetValues();\r\n dispatch({\r\n type: C.FINISHED_MEETING,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al solicitar finalización de la reunión', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getScheduleAvailability = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.GET_SCHEDULE_AVAILABILITY,\r\n isFetching: true,\r\n scheduleAvailabilityList: [],\r\n minTime: \"00:00:00\",\r\n maxTime: \"24:00:00\",\r\n rangeInMinutes: 60\r\n });\r\n\r\n return partnerServices.getScheduleAvailability(data)\r\n .then(response => {\r\n let weekEvents = [];\r\n\r\n response.data.times.forEach((time, k) => {\r\n let endRecur = new Date(time);\r\n endRecur.setDate(endRecur.getDate() + 1);\r\n endRecur = endRecur.toLocaleDateString(\"es\", { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\\//g, \"-\");\r\n let endRecurSplit = endRecur.split(\"-\");\r\n endRecur = endRecurSplit[2] + \"-\" + (endRecurSplit[1].length === 1 ? \"0\":\"\") + endRecurSplit[1] + \"-\" +\r\n (endRecurSplit[0].length === 1 ? \"0\":\"\") + endRecurSplit[0];\r\n let timeSplit = time.split(\"T\");\r\n let addHourToTime = response.data.rangeInMinutes === 60\r\n ? (parseInt(timeSplit[1].substring(0,2)) + 1) === 25\r\n ? \"00:\" + parseInt(timeSplit[1].substring(3,5))\r\n : ((parseInt(timeSplit[1].substring(0,2)) + 1) < 10 ? \"0\":\"\") + (parseInt(timeSplit[1].substring(0,2)) + 1) + \":\" + parseInt(timeSplit[1].substring(3,5))\r\n : (parseInt(timeSplit[1].substring(3,5)) + 30) === 60\r\n ? (parseInt(timeSplit[1].substring(0,2)) + 1) === 25\r\n ? \"00:00\"\r\n : ((parseInt(timeSplit[1].substring(0,2)) + 1) < 10 ? \"0\":\"\") + (parseInt(timeSplit[1].substring(0,2)) + 1) + \":00\"\r\n : (parseInt(timeSplit[1].substring(0,2))) + \":30\";\r\n\r\n let dayDate = timeSplit[0];\r\n let endDate = getDateFromString(data.endDate);\r\n let startDate = getDateFromString(data.startDate);\r\n let eventDate = getDateFromString(dayDate);\r\n\r\n let today = new Date();\r\n today.setHours(0,0,0,0);\r\n\r\n if (startDate.getTime() < today.getTime()){\r\n startDate = today;\r\n }\r\n\r\n let eventOnWeek = eventDate.getTime() >= startDate.getTime() \r\n && eventDate.getTime() <= endDate.getTime();\r\n\r\n let currentTime = new Date();\r\n let eventOnTime;\r\n if(parseInt(dayDate.split(\"-\")[2]) === currentTime.getDate()){\r\n eventOnTime = currentTime.getHours() < parseInt(timeSplit[1].substring(0, 2));\r\n }else\r\n eventOnTime = true;\r\n\r\n if (eventOnWeek && eventOnTime) {\r\n let eventToPush = {\r\n id: k,\r\n title: \"Disponible\",\r\n start: dayDate,\r\n end: dayDate,\r\n startTime: timeSplit[1],\r\n endTime: addHourToTime + \":00\",\r\n allDay: false,\r\n startRecur: dayDate,\r\n endRecur: endRecur,\r\n editable: false\r\n };\r\n\r\n weekEvents.push(eventToPush);\r\n }\r\n });\r\n\r\n let minTime = \"23:59:59\";\r\n let maxTime = \"00:00:00\";\r\n let minTimeValue = computeTime(minTime);\r\n let maxTimeValue = computeTime(maxTime);\r\n\r\n for (let i = 0; i < weekEvents.length; i++) {\r\n let actualTimeValue = computeTime(weekEvents[i].startTime);\r\n\r\n if (minTimeValue >= actualTimeValue) {\r\n minTime = weekEvents[i].startTime;\r\n minTimeValue = actualTimeValue;\r\n }\r\n\r\n if (maxTimeValue <= actualTimeValue) {\r\n maxTime = weekEvents[i].startTime;\r\n maxTimeValue = actualTimeValue;\r\n }\r\n }\r\n\r\n if (minTimeValue >= maxTimeValue) {\r\n minTime = \"00:00:00\";\r\n maxTime = \"24:00:00\";\r\n }\r\n\r\n dispatch({\r\n type: C.GET_SCHEDULE_AVAILABILITY,\r\n isFetching: false,\r\n scheduleAvailabilityList: weekEvents,\r\n minTime: minTime,\r\n maxTime: maxTime,\r\n rangeInMinutes: response.data.rangeInMinutes\r\n });\r\n }).catch(() => {\r\n dispatch({\r\n type: C.GET_SCHEDULE_AVAILABILITY,\r\n isFetching: false,\r\n scheduleAvailabilityList: [],\r\n minTime: \"00:00:00\",\r\n maxTime: \"24:00:00\",\r\n rangeInMinutes: 60\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport const scheduleMeeting = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.SCHEDULE_MEETING,\r\n isFetching: true,\r\n exitScheduleMeeting: false,\r\n scheduleMeetingInfo: {}\r\n });\r\n return partnerServices.scheduleMeeting(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.SCHEDULE_MEETING,\r\n isFetching: false,\r\n exitScheduleMeeting: true,\r\n scheduleMeetingInfo: response.data\r\n });\r\n }).catch(err => {\r\n dispatch({\r\n type: C.SCHEDULE_MEETING,\r\n isFetching: false,\r\n exitScheduleMeeting: false,\r\n scheduleMeetingInfo: {}\r\n });\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getQualificationParams = () => {\r\n return dispatch => {\r\n qualificationApi.getQualificationParams()\r\n .then(response => {\r\n dispatch( setQualificationParams(response.data.advisoryRatingJustifications,\r\n response.data.callRatingJustifications)\r\n );\r\n })\r\n .catch(err => {\r\n\r\n });\r\n };\r\n};\r\n\r\nexport const performQualification = (qualificationInfo) => {\r\n return dispatch => {\r\n qualificationApi.addOrUpdateQualification(qualificationInfo)\r\n .then(() => {\r\n\r\n })\r\n .catch(err => {\r\n ERROR_MODAL(err.data);\r\n });\r\n };\r\n};\r\n\r\nexport const joinById = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.JOIN_SCHEDULE_MEETING_BY_ID,\r\n isFetching: true,\r\n payload: {},\r\n requestError: false\r\n });\r\n return partnerServices.joinById(data)\r\n .then(response => {\r\n sessionStorage.setItem('user_name', response.data.potentialClientName);\r\n dispatch({\r\n type: C.JOIN_SCHEDULE_MEETING_BY_ID,\r\n isFetching: false,\r\n payload: response.data,\r\n requestError: false\r\n });\r\n }).catch(err => {\r\n dispatch({\r\n type: C.JOIN_SCHEDULE_MEETING_BY_ID,\r\n isFetching: false,\r\n payload: {},\r\n requestError: true\r\n });\r\n WARNING_MODAL('Acción incorrecta', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getRenderView = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.GET_RENDER_VIEW,\r\n requestCancelInfo: {}\r\n });\r\n return qualificationApi.getRenderView()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_RENDER_VIEW,\r\n requestCancelInfo: response.data\r\n });\r\n }).catch(err => {\r\n dispatch({\r\n type: C.GET_RENDER_VIEW,\r\n requestCancelInfo: {}\r\n });\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const logOperation = (data) => {\r\n return dispatch => {\r\n return partnerServices.logOperation({ content: data })\r\n .then(response => {\r\n dispatch({\r\n type: C.MEETING_LOG_ID,\r\n meetingLogId: response.data.logId\r\n });\r\n localStorage.setItem('meetingLogId', response.data.logId);\r\n localStorage.setItem('meetingLog', data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n }\r\n};\r\nexport const updateLogOperation = (data) => {\r\n return dispatch => {\r\n return partnerServices.updateLogOperation(data)\r\n .then(response => {\r\n localStorage.setItem('meetingLog', data.content);\r\n }).catch(err => {\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getLocationInfo = () => {\r\n return dispatch =>{\r\n axios.get('https://ipapi.co/json/')\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_LOCALITATION_IP,\r\n countryCodeSelected: `\"${response.data.country}\"`\r\n })\r\n })\r\n }\r\n};\r\n","import moment from \"moment\";\r\n\r\nexport function isSignedIn() {\r\n if (localStorage.access_token !== undefined && localStorage.access_token !== null\r\n && localStorage.access_token !== 'null' && localStorage.access_token) {\r\n let expireTime = new Date(localStorage.expires_on);\r\n let today = new Date();\r\n if (today < expireTime) {\r\n return true;\r\n } else {\r\n localStorage.clear();\r\n return false;\r\n }\r\n }\r\n return false;\r\n}\r\nexport function expiresIsActive() {\r\n let expireTime = new Date(localStorage.expires_on);\r\n let today = new Date();\r\n \r\n return today < expireTime;\r\n}\r\n\r\nexport function getStateIconColor(state){\r\n if(state === \"Conectado\")\r\n return \"#48dd11\";\r\n if(state === \"Desconectado\")\r\n return \"red\";\r\n if(state === \"En reunión\")\r\n return \"#ffe800\";\r\n};\r\n\r\nexport function emptyListMessage(elementName){\r\n return `No hay ${elementName} para mostrar.`;\r\n};\r\n\r\nexport function getFormatDate(date, mode){\r\n let newDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n let monthNames = [\r\n \"Enero\", \"Febrero\", \"Marzo\",\r\n \"Abril\", \"Mayo\", \"Junio\", \"Julio\",\r\n \"Agosto\", \"Septiembre\", \"Octubre\",\r\n \"Noviembre\", \"Diciembre\"\r\n ];\r\n let day = newDate.getUTCDate();\r\n let monthIndex = newDate.getUTCMonth();\r\n let year = newDate.getUTCFullYear();\r\n\r\n if(mode === 1)\r\n return day + ' de ' + monthNames[monthIndex] + ' de ' + year;\r\n else if(mode === 2)\r\n return year + \"-\" + (monthIndex + 1 < 10 ? '0' : '') + (monthIndex + 1) + \"-\" + (day < 10 ? '0' : '') + (day);\r\n else if(mode === 3) {\r\n return (newDate.getDate() < 10 ? '0' : '') + (newDate.getDate()) + \" de \" + monthNames[monthIndex] + \" de \" + year + \" - \";\r\n }\r\n}\r\n\r\nexport function getDisabledHours(minHour, maxHour){\r\n let intMinHour = parseInt(minHour);\r\n let intMaxHour = parseInt(maxHour);\r\n\r\n let disabledHours = [];\r\n for(let i = intMinHour - 1; i >= 0; i--){\r\n disabledHours.push(i);\r\n }\r\n for(let j = intMaxHour + 1; j <= 23; j++){\r\n disabledHours.push(j);\r\n }\r\n return disabledHours;\r\n}\r\n\r\nexport function computeTime(stringTime){\r\n let timeArray = stringTime.split(\":\");\r\n let hoursToSeconds = parseInt(timeArray[0]) * 3600;\r\n let minutesToSeconds = parseInt(timeArray[1]) * 60;\r\n let seconds = parseInt(timeArray[2]);\r\n\r\n return hoursToSeconds + minutesToSeconds + seconds;\r\n};\r\n\r\nexport function getDateFromString(stringDate){\r\n let dayDateArray = stringDate.split(\"-\");\r\n\r\n let year = parseInt(dayDateArray[0]);\r\n let month = parseInt(dayDateArray[1]) - 1;\r\n let day = parseInt(dayDateArray[2]);\r\n\r\n return new Date(year, month, day);\r\n};\r\n\r\nexport function setMeetingLog(dataId, data, callBack, meetingLogId, role = \"Partner\"){\r\n let dataIds = {\r\n \"1\": \"createMeetingTime\",\r\n \"2\": \"meetingRequestId\",\r\n \"3\": \"meetingId\",\r\n \"4\": \"meetingIdTime\",\r\n \"5\": \"canceled\",\r\n \"6\": \"getVoxeetKeys\",\r\n \"7\": \"beforeVoxeetMeeting\",\r\n \"8\": \"toStartVoxeetMeeting\",\r\n \"9\": \"redirected\",\r\n \"10\": \"finishMeeting\"\r\n };\r\n let meetingLogJson = JSON.parse(localStorage.getItem(\"meetingLog\"));\r\n let logId = meetingLogId === null ? localStorage.getItem('meetingLogId') : meetingLogId;\r\n\r\n if(meetingLogJson === null)\r\n meetingLogJson = {};\r\n\r\n switch (dataId) {\r\n case \"5\":\r\n if (!meetingLogJson[dataIds[\"5\"]]){\r\n meetingLogJson[dataIds[dataId]] = data;\r\n callBack({ logId: logId, content: JSON.stringify(meetingLogJson) });\r\n }\r\n break;\r\n case \"6\":\r\n if (!meetingLogJson[dataIds[\"6\"]]){\r\n meetingLogJson[dataIds[\"3\"]] = data.meetingId;\r\n meetingLogJson[dataIds[\"4\"]] = moment(data.meetingIdTime).format('H:mm:ss');\r\n meetingLogJson[dataIds[dataId]] = data.getVoxeetKeys;\r\n callBack({ logId: logId, content: JSON.stringify(meetingLogJson) });\r\n }\r\n break;\r\n case \"7\":\r\n if (!meetingLogJson[dataIds[\"7\"]]) {\r\n if(role === \"Partner\"){\r\n meetingLogJson[dataIds[\"1\"]] = moment(data.createMeetingTime).format('H:mm:ss');\r\n meetingLogJson[dataIds[\"2\"]] = data.meetingRequestId;\r\n }\r\n meetingLogJson[dataIds[dataId]] = {\r\n devicesList: data.devicesList,\r\n hasWebcam: data.hasWebcam,\r\n hasMicrophone: data.hasMicrophone,\r\n isMicrophoneAlreadyCaptured: data.isMicrophoneAlreadyCaptured,\r\n isWebcamAlreadyCaptured: data.isWebcamAlreadyCaptured\r\n };\r\n callBack({ logId: logId, content: JSON.stringify(meetingLogJson) });\r\n }\r\n break;\r\n case \"8\":\r\n if (!meetingLogJson[dataIds[\"8\"]]){\r\n meetingLogJson[dataIds[dataId]] = data;\r\n callBack({ logId: logId, content: JSON.stringify(meetingLogJson) });\r\n }\r\n break;\r\n case \"9\":\r\n if (!meetingLogJson[dataIds[\"9\"]]){\r\n meetingLogJson[dataIds[dataId]] = data;\r\n callBack({ logId: logId, content: JSON.stringify(meetingLogJson) });\r\n }\r\n break;\r\n case \"10\":\r\n if (!meetingLogJson[dataIds[\"10\"]]){\r\n meetingLogJson[dataIds[dataId]] = data;\r\n callBack({ logId: logId, content: JSON.stringify(meetingLogJson) });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n}","//Libraries\r\nimport axios from 'axios';\r\n\r\n//Subcomponents\r\nimport BaseURL from \"./BaseURL\";\r\n\r\n/*** Create an Axios Client with defaults ***/\r\nlet client = null;\r\n\r\nexport const initializeClient = function () {\r\n client = axios.create({\r\n baseURL: BaseURL,\r\n headers: { 'Authorization': 'Bearer ' + localStorage.getItem('access_token') }\r\n });\r\n};\r\n\r\ninitializeClient();\r\n\r\n/*** Request Wrapper with default success/error actions ***/\r\nconst request = function (options) {\r\n\r\n const onSuccess = function (response) {\r\n //console.info('Request Successful: response: ', response);\r\n return response;\r\n };\r\n\r\n const onError = function (error) {\r\n console.error('Request Failed: Config Sent:', error.config);\r\n\r\n if (error.response) {\r\n console.error('Status:', error.response.status);\r\n console.error('Data:', error.response.data);\r\n console.error('Headers:', error.response.headers);\r\n\r\n if(error.response.status === 500){\r\n error.response.data = \"Error en el servidor\";\r\n }\r\n } else {\r\n console.error('Error Message:', error.message);\r\n }\r\n return Promise.reject(error.response || error.message);\r\n };\r\n\r\n return client(options).then(onSuccess).catch(onError);\r\n};\r\n\r\nexport default request;","import request from './requestWrapper';\r\n\r\n//------------ Session ------------\r\nfunction loginDesignAccount(data) {\r\n return request({\r\n url: '/DesignAccount/Token',\r\n method: 'POST',\r\n data: data\r\n });\r\n}\r\n\r\n//------------ Banner ------------\r\n\r\nfunction getBannerConfig() {\r\n return request({\r\n url: '/DesignAdmin/GetBannerConfig',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction addBannerConfig(data) {\r\n let bannerFormData = new FormData();\r\n\r\n data.mobileBanner && bannerFormData.append('mobileBanner', data.mobileBanner.originFileObj, data.mobileBanner.name);\r\n data.generalBanner && bannerFormData.append('generalBanner', data.generalBanner.originFileObj, data.generalBanner.name);\r\n bannerFormData.append('tooltipText', data.tooltipText);\r\n bannerFormData.append('bannerText', data.bannerText);\r\n\r\n return request({\r\n url: '/DesignAdmin/AddBannerConfig',\r\n method: 'POST',\r\n data: bannerFormData\r\n });\r\n};\r\n\r\nfunction updateBannerConfig(data) {\r\n let bannerFormData = new FormData();\r\n Object.keys(data).forEach(key => {\r\n if (key === \"generalBanner\" && data.generalBanner)\r\n bannerFormData.append('generalBanner', data.generalBanner.originFileObj, data.generalBanner.name);\r\n else if (key === \"mobileBanner\" && data.mobileBanner)\r\n bannerFormData.append('mobileBanner', data.mobileBanner.originFileObj, data.mobileBanner.name);\r\n else { bannerFormData.append(key, data[key]) }\r\n });\r\n return request({\r\n url: '/DesignAdmin/UpdateBannerConfig',\r\n method: 'PUT',\r\n data: bannerFormData\r\n });\r\n};\r\n\r\n// ---------- Buttons -------------\r\nfunction getButtons() {\r\n return request({\r\n url: '/DesignAdmin/GetButtons',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction addButton(data) {\r\n let bodyFormData = new FormData();\r\n\r\n bodyFormData.append('name', data.name);\r\n bodyFormData.append('tooltipText', data.tooltipText);\r\n bodyFormData.append('color', data.color);\r\n bodyFormData.append('link', data.link);\r\n bodyFormData.append('isWebinarButton', data.isWebinarButton);\r\n data.icon && bodyFormData.append('icon', data.icon.originFileObj, data.icon.name);\r\n\r\n return request({\r\n url: '/DesignAdmin/AddButton',\r\n method: 'POST',\r\n data: bodyFormData\r\n });\r\n};\r\n\r\nfunction updateButton(data) {\r\n let bodyFormData = new FormData();\r\n\r\n bodyFormData.append('customButtonId', data.customButtonId);\r\n bodyFormData.append('name', data.name);\r\n bodyFormData.append('tooltipText', data.tooltipText);\r\n bodyFormData.append('color', data.color);\r\n bodyFormData.append('link', data.link);\r\n bodyFormData.append('isWebinarButton', data.isWebinarButton);\r\n bodyFormData.append('isActive', data.isActive);\r\n data.icon && bodyFormData.append('icon', data.icon.originFileObj, data.icon.name);\r\n\r\n return request({\r\n url: '/DesignAdmin/UpdateButton',\r\n method: 'PUT',\r\n data: bodyFormData\r\n });\r\n};\r\n\r\nfunction deleteButton(data) {\r\n return request({\r\n url: '/DesignAdmin/DeleteButton',\r\n method: 'DELETE',\r\n params: data\r\n });\r\n};\r\n\r\nfunction updateContactNotAvailableText(data) {\r\n return request({\r\n url: '/DesignAdmin/UpdateContactNotAvailableText',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\nfunction getCountriesInfo() {\r\n return request({\r\n url: '/DesignAdmin/GetCountriesInfo',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction addCountryInfo(data) {\r\n return request({\r\n url: '/DesignAdmin/AddCountryInfo',\r\n method: 'POST',\r\n data: data\r\n });\r\n};\r\n\r\nfunction updateCountryInfo(data) {\r\n return request({\r\n url: '/DesignAdmin/UpdateCountryInfo',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\nfunction deleteCountryInfo(data) {\r\n return request({\r\n url: '/DesignAdmin/DeleteCountryInfo',\r\n method: 'DELETE',\r\n params: data\r\n });\r\n};\r\n\r\n// ---------- Curtain -------------\r\nfunction getCurtainViewConfig() {\r\n return request({\r\n url: '/CurtainView/GetCurtainViewConfig',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction getCountriesInfoCurtain() {\r\n return request({\r\n url: '/CurtainView/GetCountriesInfo',\r\n method: 'GET'\r\n });\r\n};\r\n\r\n// ---------- Popup -------------\r\nfunction getModalInfo() {\r\n return request({\r\n url: '/DesignAdmin/GetModalInfo',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction updateModalInfo(data) {\r\n return request({\r\n url: '/DesignAdmin/UpdateModalInfo',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\nconst designerAdminService = {\r\n //Session\r\n loginDesignAccount,\r\n\r\n //Banner\r\n getBannerConfig,\r\n addBannerConfig,\r\n updateBannerConfig,\r\n\r\n //Buttons\r\n getButtons, addButton, updateButton, deleteButton,\r\n updateContactNotAvailableText, getCountriesInfo, addCountryInfo, updateCountryInfo, deleteCountryInfo,\r\n\r\n //Curtain\r\n getCurtainViewConfig, getCountriesInfoCurtain,\r\n\r\n //Popup\r\n getModalInfo, updateModalInfo\r\n};\r\n\r\nexport default designerAdminService;","import { designerAdminTypes as C } from \"../../types\";\r\nimport { authenticationTypes as A } from \"../../types\";\r\nimport { ERROR_MODAL, SUCCESS_MODAL } from \"../../../../components/ui/subComponents/modals/responseModals\";\r\nimport designerAdminServices from \"../../../../api/designerAdminApi\";\r\nimport { initializeClient } from \"../../../../api/requestWrapper\";\r\n\r\nconst setLoading = (isLoading) => {\r\n return {\r\n type: C.SET_LOADING,\r\n isLoading\r\n }\r\n};\r\nfunction saveLocalStorage(user_name, last_name, role, personId, access_token, expires_on) {\r\n localStorage.setItem('user_name', user_name);\r\n localStorage.setItem('last_name', last_name);\r\n localStorage.setItem('role', role);\r\n localStorage.setItem('access_token', access_token);\r\n localStorage.setItem('expires_on', expires_on);\r\n localStorage.setItem('person_id', personId);\r\n initializeClient();\r\n};\r\n\r\n// ------------------------- Session -------------------------------\r\nexport const loginDesignAccount = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n return designerAdminServices.loginDesignAccount(data)\r\n .then(response => {\r\n let data = response.data;\r\n let userInfo = response.data.userInfo;\r\n\r\n saveLocalStorage(userInfo.name, userInfo.lastName, userInfo.roleId, userInfo.personId,\r\n data.accessToken, data.expiresOn);\r\n dispatch({\r\n type: A.LOGGING,\r\n payload: true\r\n });\r\n }).catch(err => {\r\n dispatch(setLoading(false));\r\n ERROR_MODAL('Error iniciando sesión', err.data);\r\n });\r\n }\r\n};\r\n\r\n// ------------------------- Banner -------------------------------\r\n\r\nexport const getBannerConfig = () => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.getBannerConfig()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_BANNER_CONFIG,\r\n bannerConfig: response.data.bannerInfo\r\n });\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const setBannerConfig = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.updateBannerConfig(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\n// ------------------------- Buttons -------------------------------\r\nexport const getButtons = () => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.getButtons()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_BUTTONS,\r\n buttonsList: response.data.buttons\r\n });\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const addButton = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.addButton(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(getButtons());\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const updateButton = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.updateButton(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(getButtons());\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const deleteButton = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.deleteButton(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(getButtons());\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const updateContactNotAvailableText = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.updateContactNotAvailableText(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const getCountriesInfo = () => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.getCountriesInfo()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_COUNTRIES_INFO,\r\n countriesList: response.data.countries,\r\n contactNotAvailableText: response.data.contactNotAvailableText\r\n });\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const addCountryInfo = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.addCountryInfo(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(getCountriesInfo());\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const updateCountryInfo = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.updateCountryInfo(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(getCountriesInfo());\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const deleteCountryInfo = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.deleteCountryInfo(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(getCountriesInfo());\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\n// ------------------------- Curtain -------------------------------\r\nexport const getCurtainViewConfig = () => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.getCurtainViewConfig()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_CURTAIN_VIEW_CONFIG,\r\n curtainViewConfig: response.data\r\n });\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const getCountriesInfoCurtain = () => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.getCountriesInfoCurtain()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_COUNTRIES_INFO,\r\n countriesList: response.data.countries\r\n });\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\n// ------------------------- Curtain -------------------------------\r\nexport const getModalInfo = () => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.getModalInfo()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_MODAL_INFO,\r\n modalInfo: response.data\r\n });\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const updateModalInfo = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n designerAdminServices.updateModalInfo(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data.message);\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data.message);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};","// Libraries\r\nimport React from 'react';\r\n\r\nexport const ConnectionStatusIcon = ({ fill, size }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const ChatIcon = ({ fill, size }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const WhatsappIcon = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);","//Subcomponents\r\nimport request from './requestWrapper';\r\n\r\nfunction login(email, password) {\r\n \r\n let data = {\r\n email: email,\r\n password: password \r\n };\r\n\r\n return request({\r\n url: '/Account/Token',\r\n method: 'POST',\r\n data: data\r\n });\r\n}\r\n\r\nfunction logout(){\r\n return request({\r\n url: '/Account/Logout',\r\n method: 'PUT',\r\n });\r\n};\r\n\r\nconst loginService = {\r\n login, logout\r\n};\r\n\r\nexport default loginService;","//Subcomponents\r\nimport {ERROR_MODAL} from \"../../../../components/ui/subComponents/modals/responseModals\";\r\n\r\n//Services\r\nimport { initializeClient } from '../../../../api/requestWrapper';\r\nimport loginServices from '../../../../api/loginApi';\r\n\r\n//Constants\r\nimport {authenticationTypes as C, AdviserTypes} from '../../types';\r\nimport partnerServices from \"../../../../api/partnerApi\";\r\nimport {Roles} from \"../../../../lib/generalUtils/constants\";\r\nimport routes from \"../../../../lib/generalUtils/routes\";\r\n\r\nfunction saveLocalStorage(user_name, last_name, role, personId, access_token, expires_on){\r\n localStorage.setItem('user_name', user_name);\r\n localStorage.setItem('last_name', last_name);\r\n localStorage.setItem('role', role);\r\n localStorage.setItem('access_token', access_token);\r\n localStorage.setItem('expires_on', expires_on);\r\n localStorage.setItem('person_id', personId);\r\n initializeClient();\r\n};\r\n\r\nexport const login = (email, password) => {\r\n return dispatch => {\r\n return loginServices.login(email, password)\r\n .then(response => {\r\n let data = response.data;\r\n let user_info = response.data.user_info;\r\n\r\n if(user_info.roleId === Roles.Adviser)\r\n dispatch(logOperation(JSON.stringify( { role: \"Asesor\", name: user_info.name + \" \" + user_info.lastName } )));\r\n\r\n saveLocalStorage(user_info.name, user_info.lastName, user_info.roleId, user_info.personId,\r\n data.access_token, data.expires_on);\r\n dispatch({\r\n type: C.LOGGING,\r\n payload: true\r\n });\r\n }).catch(err => {\r\n dispatch({\r\n type: C.LOGGING,\r\n payload: false,\r\n });\r\n ERROR_MODAL('Error iniciando sesión', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const logout = (redirect = false) => {\r\n return dispatch => {\r\n return loginServices.logout()\r\n .then(response => {\r\n dispatch({\r\n type: C.LOGOUT,\r\n payload: false, \r\n });\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n resetValues();\r\n if(redirect)\r\n window.location.replace(routes.login);\r\n }).catch(err => {\r\n dispatch({\r\n type: C.LOGGING,\r\n payload: false,\r\n });\r\n ERROR_MODAL('Error cerrando sesión', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const resetValues = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.RESET_VALUES,\r\n });\r\n }\r\n};\r\n\r\nexport const logOperation = (data) => {\r\n return dispatch => {\r\n return partnerServices.logOperation({ content: data })\r\n .then(response => {\r\n dispatch({\r\n type: AdviserTypes.MEETING_ADVISER_LOG_ID,\r\n meetingLogId: response.data.logId\r\n });\r\n localStorage.setItem('meetingLogId', response.data.logId);\r\n localStorage.setItem('meetingLog', data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n }\r\n};","//Subcomponents\r\nimport request from './requestWrapper';\r\n\r\nfunction getRequestInfo() {\r\n return request({\r\n url: '/home/GetParams',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction getTermsInfo(){\r\n return request({\r\n url: '/home/GetTermsAndConditions',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction requestMeeting(data){\r\n return request({\r\n url: '/MeetingRequest/Add',\r\n method: 'POST',\r\n data: data,\r\n });\r\n};\r\n\r\nfunction cancelMeeting(data){\r\n return request({\r\n url: '/MeetingRequest/Cancel',\r\n method: 'PUT',\r\n data: data,\r\n });\r\n};\r\n\r\nfunction leaveMeeting(data){\r\n return request({\r\n url: '/MeetingRequest/Leave',\r\n method: 'PUT',\r\n data: data,\r\n });\r\n};\r\n\r\nfunction askForMeeting(meetingRequestId){\r\n return request({\r\n url: '/Meeting/GetByMeetingRequestId',\r\n method: 'GET',\r\n headers: {\r\n meetingRequestId: meetingRequestId,\r\n },\r\n });\r\n};\r\n\r\nfunction finishedMeeting(meetingId){\r\n return request({\r\n url: '/Meeting/CheckWhetherFinishedMeeting',\r\n method: 'GET',\r\n headers: {\r\n meetingId: meetingId,\r\n }\r\n });\r\n}\r\n\r\nfunction getScheduleAvailability(data){\r\n return request({\r\n url: '/Schedule/GetScheduleAvailability',\r\n method: 'GET',\r\n headers: data,\r\n });\r\n};\r\n\r\nfunction scheduleMeeting(data){\r\n return request({\r\n url: '/Schedule/ScheduleMeeting',\r\n method: 'POST',\r\n data: data,\r\n });\r\n};\r\n\r\nfunction joinById(data){\r\n return request({\r\n url: '/MeetingRequest/JoinById',\r\n method: 'GET',\r\n headers: data,\r\n });\r\n}\r\n\r\nfunction logOperation(data){\r\n return request({\r\n url: '/Log/LogOperation',\r\n method: 'POST',\r\n data: data,\r\n });\r\n};\r\nfunction updateLogOperation(data){\r\n return request({\r\n url: '/Log/UpdateLogOperation',\r\n method: 'PUT',\r\n data: data,\r\n });\r\n};\r\n\r\nconst partnerService = {\r\n getRequestInfo, getTermsInfo, requestMeeting, cancelMeeting, leaveMeeting, askForMeeting, finishedMeeting,\r\n getScheduleAvailability, scheduleMeeting, joinById,\r\n logOperation, updateLogOperation\r\n};\r\n\r\nexport default partnerService;","import { headerMenuTypes } from '../../types';\r\n\r\nexport const setCurrentKeyActive = (route) => {\r\n return dispatch => {\r\n dispatch({\r\n type: headerMenuTypes.CURRENT_KEY_ACTIVE,\r\n currentKey: route\r\n });\r\n }\r\n};","import request from './requestWrapper';\r\n\r\nfunction getHistory(){\r\n return request({\r\n url: '',\r\n method: 'GET'\r\n });\r\n}\r\n\r\nfunction getAllMeetingsSummary(){\r\n return request({\r\n url: '/Meeting/GetAllMeetingSummary',\r\n method: 'GET'\r\n });\r\n}\r\n\r\nfunction getParamsByMeetingId(meetingId){\r\n return request({\r\n url: '/Meeting/GetParamsByMeetingId',\r\n method: 'GET',\r\n headers: {meetingId}\r\n });\r\n}\r\n\r\nfunction saveClientInformation(clientInformation){\r\n return request({\r\n url: '/Meeting/SaveClientInfo',\r\n method: 'POST',\r\n data: clientInformation\r\n });\r\n}\r\n\r\nfunction startMeeting(meetingInformation){\r\n return request({\r\n url: '/Meeting/Start',\r\n method: 'POST',\r\n data: meetingInformation\r\n });\r\n}\r\n\r\nfunction finishMeeting(meetingInformation){\r\n return request({\r\n url: '/Meeting/Finalize',\r\n method: 'PUT',\r\n data: meetingInformation\r\n });\r\n}\r\n\r\nfunction callBack(data){\r\n return request({\r\n url: '/Meeting/CallBack',\r\n method: 'PUT',\r\n headers: data\r\n });\r\n}\r\n\r\nfunction updateConnectedStatus(){\r\n return request({\r\n url: '/Connection/UpdateConnectedStatus',\r\n method: 'PUT'\r\n });\r\n}\r\nfunction updateAdviserStatus(value){\r\n return request({\r\n url: '/Connection/UpdateStatus',\r\n method: 'PUT',\r\n params: { status: value === true ? \"1\" : \"3\" }\r\n });\r\n}\r\n\r\nexport default {\r\n getAllMeetingsSummary, getHistory,\r\n getParamsByMeetingId, saveClientInformation,\r\n startMeeting, finishMeeting, callBack, updateConnectedStatus, updateAdviserStatus\r\n};","import {AdviserTypes as C} from \"../../types\";\r\nimport AdviserApi from '../../../../api/adviserApi';\r\nimport {\r\n ERROR_MODAL,\r\n SUCCESS_MESSAGE,\r\n SUCCESS_MODAL,\r\n WARNING_MESSAGE\r\n} from \"../../../../components/ui/subComponents/modals/responseModals\";\r\nimport partnerServices from \"../../../../api/partnerApi\";\r\nimport { logout } from \"../accountManagement/loginActions\";\r\nimport { expiresIsActive, setMeetingLog } from \"../../../../lib/generalUtils/functions\";\r\n\r\nconst setMeetings = (meetings, services) => {\r\n return {\r\n type: C.SET_ADVISER_MEETINGS,\r\n meetings,\r\n services\r\n }\r\n};\r\n\r\nconst setDetailedMeeting = (detailedMeeting, meetingId) => {\r\n return {\r\n type: C.SET_DETAILED_MEETING,\r\n detailedMeeting,\r\n meetingId\r\n };\r\n};\r\n\r\nconst setLoading = (isLoading) => {\r\n return {\r\n type: C.SET_IS_LOADING,\r\n isLoading\r\n }\r\n};\r\n\r\nconst setToggleModal = (flag) => {\r\n return {\r\n type: C.TOGGLE_SERVICES_MODAL,\r\n flag\r\n }\r\n};\r\n\r\nexport const fetchMeetings = (firstTime = false) => {\r\n return dispatch => {\r\n if(firstTime === true){\r\n dispatch(setLoading(true));\r\n }\r\n AdviserApi.getAllMeetingsSummary()\r\n .then(response => {\r\n dispatch( setMeetings(response.data.meetingSummaryItems, response.data.services) );\r\n if(firstTime === true){\r\n dispatch(setLoading(false));\r\n }\r\n if(!expiresIsActive()) {\r\n dispatch(logout(true));\r\n }\r\n })\r\n .catch(error => {\r\n WARNING_MESSAGE(error.data);\r\n if(firstTime === true){\r\n dispatch(setLoading(false));\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const getDetailedMeeting = (meetingId) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n AdviserApi.getParamsByMeetingId(meetingId)\r\n .then(response => {\r\n dispatch(setDetailedMeeting(response.data, meetingId));\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n ERROR_MODAL(error.data);\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const saveClientInformation = (clientInformation) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n\r\n AdviserApi.saveClientInformation(clientInformation)\r\n .then(response => {\r\n SUCCESS_MESSAGE(response.data);\r\n dispatch(setLoading(false));\r\n })\r\n .catch(error => {\r\n dispatch(setLoading(false));\r\n });\r\n };\r\n};\r\n\r\nexport const startMeeting = (meetingInfo) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.START_MEETING,\r\n isLoading: true,\r\n meetingUrl: null\r\n });\r\n AdviserApi.startMeeting(meetingInfo)\r\n .then(response => {\r\n sessionStorage.setItem('meetingUrl', response.data.advisorUrl);\r\n sessionStorage.setItem('isEmbeddedMeeting', response.data.isEmbeddedMeeting);\r\n if(!response.data.isEmbeddedMeeting){\r\n window.open(response.data.advisorUrl);\r\n }\r\n\r\n dispatch({\r\n type: C.START_MEETING,\r\n isLoading: false,\r\n meetingUrl: response.data.advisorUrl\r\n });\r\n SUCCESS_MESSAGE('Iniciando llamada');\r\n })\r\n .catch(error => {\r\n dispatch({\r\n type: C.START_MEETING,\r\n isLoading: false,\r\n meetingUrl: null\r\n });\r\n ERROR_MODAL(error.data);\r\n });\r\n };\r\n};\r\n\r\nexport const finishMeeting = (meetingInfo) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n AdviserApi.finishMeeting(meetingInfo)\r\n .then(response => {\r\n sessionStorage.removeItem('meetingUrl');\r\n sessionStorage.removeItem('isEmbeddedMeeting');\r\n\r\n setMeetingLog(\"10\", true, (data) => updateLogOperation(data), null);\r\n dispatch(\r\n logOperation(JSON.stringify( {\r\n role: \"Asesor\", name: localStorage.getItem('user_name') + \" \" + localStorage.getItem('last_name'),\r\n beforeVoxeetMeeting: localStorage.getItem('meetingLog')[\"beforeVoxeetMeeting\"]\r\n } ))\r\n );\r\n\r\n SUCCESS_MESSAGE(response.data);\r\n dispatch(setLoading(false));\r\n dispatch(setToggleModal(false));\r\n dispatch(fetchMeetings());\r\n })\r\n .catch(err => {\r\n ERROR_MODAL(err.data);\r\n dispatch(setLoading(false))\r\n });\r\n };\r\n};\r\n\r\nexport const toggleServicesModal = (flag) => {\r\n return dispatch => {\r\n dispatch(setToggleModal(flag));\r\n };\r\n};\r\n\r\nexport const callBack = (data) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n AdviserApi.callBack(data)\r\n .then(response => {\r\n SUCCESS_MODAL(response.data);\r\n dispatch(setLoading(false));\r\n dispatch(fetchMeetings());\r\n })\r\n .catch(err => {\r\n ERROR_MODAL(err.data);\r\n dispatch(setLoading(false))\r\n });\r\n };\r\n};\r\n\r\nexport const updateConnectedStatus = () => {\r\n let storageAdviserStatus = localStorage.getItem('adviserStatus') === \"true\";\r\n return dispatch => {\r\n if(storageAdviserStatus || localStorage.getItem('adviserStatus') === null){\r\n AdviserApi.updateConnectedStatus()\r\n .then(response => { })\r\n .catch(err => { });\r\n }\r\n };\r\n};\r\nexport const updateAdviserStatus = (status) => {\r\n return dispatch => {\r\n dispatch(setLoading(true));\r\n AdviserApi.updateAdviserStatus(status)\r\n .then(() => {\r\n dispatch(setLoading(false));\r\n localStorage.setItem(\"adviserStatus\", status);\r\n })\r\n .catch(err => {\r\n ERROR_MODAL(err.data);\r\n dispatch(setLoading(false))\r\n });\r\n };\r\n};\r\n\r\nexport const logOperation = (data) => {\r\n return dispatch => {\r\n return partnerServices.logOperation({ content: data })\r\n .then(response => {\r\n dispatch({\r\n type: C.MEETING_ADVISER_LOG_ID,\r\n meetingLogId: response.data.logId\r\n });\r\n localStorage.setItem('meetingLogId', response.data.logId);\r\n localStorage.setItem('meetingLog', data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n }\r\n};\r\nexport const updateLogOperation = (data) => {\r\n return dispatch => {\r\n return partnerServices.updateLogOperation(data)\r\n .then(response => {\r\n localStorage.setItem('meetingLog', data.content);\r\n }).catch(err => {\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n }\r\n};","module.exports = __webpack_public_path__ + \"static/media/logoWhite.bea804f8.png\";","module.exports = __webpack_public_path__ + \"static/media/canceledNotification.de714e7a.mp3\";","module.exports = __webpack_public_path__ + \"static/media/logo.fe95533b.png\";","module.exports = __webpack_public_path__ + \"static/media/backgroundImage.5a641a81.jpg\";","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Button} from 'antd';\r\nimport {Redirect} from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Styles\r\nimport '../../../../styles/partner/scheduleMeeting/checkMeeting.css';\r\n\r\n//Assets\r\nimport routes from '../../../../lib/generalUtils/routes';\r\nimport BaseURL from '../../../../api/BaseURL';\r\nimport {\r\n clearValues\r\n} from \"../../../../store/redux/actions/partner/partnerActions\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\nclass CheckMeeting extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n exit: null\r\n };\r\n\r\n this.returnHome = this.returnHome.bind(this);\r\n\r\n };\r\n componentDidMount(){\r\n if(!this.props.scheduleMeetingInfo.text){\r\n this.returnHome();\r\n }\r\n }\r\n returnHome(){\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.setState({\r\n exit: true\r\n });\r\n this.props.clearValues();\r\n };\r\n\r\n render() {\r\n\r\n let {exit} = this.state;\r\n let { scheduleMeetingInfo } = this.props;\r\n let user_name = sessionStorage.user_name === undefined ? \"cliente\" : sessionStorage.user_name;\r\n let date = this.props.location.state.date;\r\n\r\n return (\r\n
\r\n {!scheduleMeetingInfo.text\r\n ? \r\n :
\r\n \r\n \r\n \"foto\"\r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \"foto\"/\r\n */}\r\n \r\n

\r\n }\r\n {\r\n exit &&\r\n \r\n }\r\n
\r\n );\r\n };\r\n\r\n}\r\n\r\nCheckMeeting.propTypes = {\r\n scheduleMeetingInfo: PropTypes.object,\r\n clearValues: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n scheduleMeetingInfo: state.partner.scheduleMeetingInfo\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n clearValues: () => dispatch(clearValues())\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CheckMeeting);","module.exports = __webpack_public_path__ + \"static/media/qualificationNotification.d7c8c9e5.mp3\";","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Button} from 'antd';\r\nimport {Redirect} from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\n//Subcomponents\r\nimport LoadingComponent from '../../general/LoadingComponent';\r\n\r\n//Styles\r\nimport '../../../../styles/partner/scheduleMeeting/checkMeeting.css';\r\n\r\n//Actions\r\nimport {clearValues, getRequestInfo} from \"../../../../store/redux/actions/partner/partnerActions\";\r\n\r\n//Assets\r\nimport routes from '../../../../lib/generalUtils/routes';\r\nimport BaseURL from '../../../../api/BaseURL';\r\n\r\nclass Regrets extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n exit: null,\r\n waitingRoom: null,\r\n mobileSize: false\r\n };\r\n\r\n this.returnHome = this.returnHome.bind(this);\r\n this.returnToWaitingRoom = this.returnToWaitingRoom.bind(this);\r\n this.props.getRequestInfo();\r\n };\r\n\r\n componentDidMount(){\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.resize();\r\n }\r\n\r\n resize(){\r\n this.setState({mobileSize: window.innerWidth <= 575});\r\n }\r\n\r\n returnHome(){\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.setState({\r\n exit: true\r\n });\r\n };\r\n\r\n returnToWaitingRoom(){\r\n this.setState({\r\n waitingRoom: true\r\n });\r\n };\r\n\r\n render(){\r\n let firstLogo = null;\r\n let {exit, waitingRoom, mobileSize} = this.state;\r\n let {requestInfo, requestCancelInfo} = this.props;\r\n let {finishedMeetingResponse} = this.props.location.state;\r\n\r\n let user_name = sessionStorage.user_name === undefined\r\n ? \"cliente\"\r\n : sessionStorage.user_name;\r\n\r\n if (JSON.stringify(requestInfo) !== '{}') {\r\n firstLogo = this.props.requestInfo.logo;\r\n }\r\n\r\n if (firstLogo === null || JSON.stringify(requestInfo) === '{}') {\r\n return(\r\n \r\n );\r\n }\r\n\r\n return(\r\n
\r\n {requestCancelInfo.text === undefined\r\n ? \r\n :
\r\n \r\n \r\n \"thanks-logo\"\r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n {finishedMeetingResponse === undefined\r\n ? \r\n : finishedMeetingResponse.redirected !== true\r\n ? \r\n : \r\n }\r\n \r\n \r\n

\r\n }\r\n {exit && \r\n \r\n }\r\n {waitingRoom &&\r\n \r\n }\r\n
\r\n );\r\n };\r\n}\r\n\r\nRegrets.propTypes = {\r\n requestInfo: PropTypes.object,\r\n getRequestInfo: PropTypes.func,\r\n clearValues: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requestInfo: state.partner.requestInfo,\r\n requestCancelInfo: state.partner.requestCancelInfo\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getRequestInfo: () => dispatch(getRequestInfo()),\r\n clearValues: () => dispatch(clearValues())\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Regrets);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Button} from 'antd';\r\nimport {Redirect} from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Styles\r\nimport '../../../../styles/partner/scheduleMeeting/checkMeeting.css';\r\n\r\n//Assets\r\nimport routes from '../../../../lib/generalUtils/routes';\r\nimport BaseURL from '../../../../api/BaseURL';\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport {clearValues} from \"../../../../store/redux/actions/partner/partnerActions\";\r\n\r\nclass CanceledMeeting extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n exit: null,\r\n smallSize: false,\r\n scheduleMeeting: null\r\n };\r\n\r\n this.returnHome = this.returnHome.bind(this);\r\n this.toSchedule = this.toSchedule.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.resize();\r\n if(!this.props.requestAskForMeeting){\r\n this.returnHome();\r\n }\r\n }\r\n\r\n resize = () => {\r\n this.setState({smallSize: window.innerWidth <= 767});\r\n };\r\n\r\n returnHome(){\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.setState({\r\n exit: true\r\n });\r\n };\r\n\r\n toSchedule(){\r\n this.setState({\r\n scheduleMeeting: true\r\n });\r\n }\r\n\r\n render(){\r\n let { requestAskForMeeting } = this.props;\r\n let { exit, scheduleMeeting, smallSize } = this.state;\r\n let user_name = sessionStorage.user_name === undefined ? \"cliente\" : sessionStorage.user_name;\r\n let buttonsClass = smallSize ? \"cancel-button-container-mobile\" : \"cancel-button-container\";\r\n\r\n return (\r\n
\r\n {!requestAskForMeeting\r\n ? \r\n :
\r\n \r\n \r\n \"foto\"\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 \"foto\"/\r\n */}\r\n
\r\n
\r\n }\r\n {exit &&\r\n \r\n }\r\n {scheduleMeeting &&\r\n \r\n }\r\n
\r\n );\r\n };\r\n}\r\n\r\nCanceledMeeting.propTypes = {\r\n requestAskForMeeting: PropTypes.object,\r\n clearValues: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requestAskForMeeting: state.partner.requestAskForMeeting\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n clearValues: () => dispatch(clearValues())\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CanceledMeeting);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Redirect, withRouter} from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport connect from \"react-redux/es/connect/connect\";\r\n\r\n//Subcomponents\r\n\r\n//Styles\r\nimport '../../../../styles/partner/scheduleMeeting/scheduleMeeting.css';\r\n\r\n//Assets\r\nimport routes from '../../../../lib/generalUtils/routes';\r\nimport { joinById } from \"../../../../store/redux/actions/partner/partnerActions\";\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Constants\r\n\r\nclass RedirectScheduleMeeting extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false\r\n };\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n let data = {\r\n meetingRequestId: this.props.history.location.pathname.split('=')[1]\r\n };\r\n this.props.joinById(data);\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n const { isFetching, requestError, scheduleMeetingInfo } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {\r\n (scheduleMeetingInfo.potentialClientName !== undefined && !requestError) &&\r\n \r\n }\r\n {\r\n requestError &&\r\n \r\n }\r\n
\r\n );\r\n };\r\n}\r\n\r\nRedirectScheduleMeeting.propTypes = {\r\n isFetching: PropTypes.bool,\r\n scheduleMeetingInfo: PropTypes.object,\r\n requestError: PropTypes.bool,\r\n joinById: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.partner.isFetching,\r\n scheduleMeetingInfo: state.partner.scheduleMeetingInfo,\r\n requestError: state.partner.requestError\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n joinById: (data) => dispatch(joinById(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(RedirectScheduleMeeting));","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Button, Modal} from \"antd\";\r\n\r\n//Styles\r\nimport 'react-phone-input-2/lib/style.css'\r\nimport '../../../../styles/partner/meetingRequest/meetingRequest.css';\r\n\r\nclass MeetingRequestModal extends Component{\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false\r\n };\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({isMounted: false});\r\n }\r\n })\r\n }\r\n\r\n render () {\r\n const { } = this.state;\r\n const { visible, requestMeetingResponse, sendResponse, requestError } = this.props;\r\n\r\n return(\r\n this.props.hideMeetingRequestModal()}\r\n closable={false} maskClosable={false} keyboard={false}\r\n title={\"Solicitar reunión\"} visible={visible}\r\n footer={[\r\n ,\r\n \r\n ]}>\r\n
\r\n

\r\n Si está usando un dispositivo móvil, le recomendamos utilizar \r\n una conexión wifi para una mejor experiencia.\r\n

\r\n

\r\n Para poder iniciar la videollamada con nuestros asesores,\r\n recuerde aceptar los permisos de activación de cámara y micrófono.\r\n

\r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nexport default MeetingRequestModal;\r\n","export const countriesList = [\r\n {\"nombre\": \"\\\"Afganistán\\\"\", \"name\": \"\\\"Afghanistan\\\"\", \"nom\": \"\\\"Afghanistan\\\"\", \"iso2\": \"\\\"AF\\\"\", \"iso3\": \"\\\"AFG\\\"\", \"phone_code\": \"\\\"93\\\"\"},\r\n {\"nombre\": \"\\\"Albania\\\"\", \"name\": \"\\\"Albania\\\"\", \"nom\": \"\\\"Albanie\\\"\", \"iso2\": \"\\\"AL\\\"\", \"iso3\": \"\\\"ALB\\\"\", \"phone_code\": \"\\\"355\\\"\"},\r\n {\"nombre\": \"\\\"Alemania\\\"\", \"name\": \"\\\"Germany\\\"\", \"nom\": \"\\\"Allemagne\\\"\", \"iso2\": \"\\\"DE\\\"\", \"iso3\": \"\\\"DEU\\\"\", \"phone_code\": \"\\\"49\\\"\"},\r\n {\"nombre\": \"\\\"Algeria\\\"\", \"name\": \"\\\"Algeria\\\"\", \"nom\": \"\\\"Algérie\\\"\", \"iso2\": \"\\\"DZ\\\"\", \"iso3\": \"\\\"DZA\\\"\", \"phone_code\": \"\\\"213\\\"\"},\r\n {\"nombre\": \"\\\"Andorra\\\"\", \"name\": \"\\\"Andorra\\\"\", \"nom\": \"\\\"Andorra\\\"\", \"iso2\": \"\\\"AD\\\"\", \"iso3\": \"\\\"AND\\\"\", \"phone_code\": \"\\\"376\\\"\"},\r\n {\"nombre\": \"\\\"Angola\\\"\", \"name\": \"\\\"Angola\\\"\", \"nom\": \"\\\"Angola\\\"\", \"iso2\": \"\\\"AO\\\"\", \"iso3\": \"\\\"AGO\\\"\", \"phone_code\": \"\\\"244\\\"\"},\r\n {\"nombre\": \"\\\"Anguila\\\"\", \"name\": \"\\\"Anguilla\\\"\", \"nom\": \"\\\"Anguilla\\\"\", \"iso2\": \"\\\"AI\\\"\", \"iso3\": \"\\\"AIA\\\"\", \"phone_code\": \"\\\"1 264\\\"\"},\r\n {\"nombre\": \"\\\"Antártida\\\"\", \"name\": \"\\\"Antarctica\\\"\", \"nom\": \"\\\"L'Antarctique\\\"\", \"iso2\": \"\\\"AQ\\\"\", \"iso3\": \"\\\"ATA\\\"\", \"phone_code\": \"\\\"672\\\"\"},\r\n {\"nombre\": \"\\\"Antigua y Barbuda\\\"\", \"name\": \"\\\"Antigua and Barbuda\\\"\", \"nom\": \"\\\"Antigua et Barbuda\\\"\", \"iso2\": \"\\\"AG\\\"\", \"iso3\": \"\\\"ATG\\\"\", \"phone_code\": \"\\\"1 268\\\"\"},\r\n {\"nombre\": \"\\\"Antillas Neerlandesas\\\"\", \"name\": \"\\\"Netherlands Antilles\\\"\", \"nom\": \"\\\"Antilles Néerlandaises\\\"\", \"iso2\": \"\\\"AN\\\"\", \"iso3\": \"\\\"ANT\\\"\", \"phone_code\": \"\\\"599\\\"\"},\r\n {\"nombre\": \"\\\"Arabia Saudita\\\"\", \"name\": \"\\\"Saudi Arabia\\\"\", \"nom\": \"\\\"Arabie Saoudite\\\"\", \"iso2\": \"\\\"SA\\\"\", \"iso3\": \"\\\"SAU\\\"\", \"phone_code\": \"\\\"966\\\"\"},\r\n {\"nombre\": \"\\\"Argentina\\\"\", \"name\": \"\\\"Argentina\\\"\", \"nom\": \"\\\"Argentine\\\"\", \"iso2\": \"\\\"AR\\\"\", \"iso3\": \"\\\"ARG\\\"\", \"phone_code\": \"\\\"54\\\"\"},\r\n {\"nombre\": \"\\\"Armenia\\\"\", \"name\": \"\\\"Armenia\\\"\", \"nom\": \"\\\"L'Arménie\\\"\", \"iso2\": \"\\\"AM\\\"\", \"iso3\": \"\\\"ARM\\\"\", \"phone_code\": \"\\\"374\\\"\"},\r\n {\"nombre\": \"\\\"Aruba\\\"\", \"name\": \"\\\"Aruba\\\"\", \"nom\": \"\\\"Aruba\\\"\", \"iso2\": \"\\\"AW\\\"\", \"iso3\": \"\\\"ABW\\\"\", \"phone_code\": \"\\\"297\\\"\"},\r\n {\"nombre\": \"\\\"Australia\\\"\", \"name\": \"\\\"Australia\\\"\", \"nom\": \"\\\"Australie\\\"\", \"iso2\": \"\\\"AU\\\"\", \"iso3\": \"\\\"AUS\\\"\", \"phone_code\": \"\\\"61\\\"\"},\r\n {\"nombre\": \"\\\"Austria\\\"\", \"name\": \"\\\"Austria\\\"\", \"nom\": \"\\\"Autriche\\\"\", \"iso2\": \"\\\"AT\\\"\", \"iso3\": \"\\\"AUT\\\"\", \"phone_code\": \"\\\"43\\\"\"},\r\n {\"nombre\": \"\\\"Azerbayán\\\"\", \"name\": \"\\\"Azerbaijan\\\"\", \"nom\": \"\\\"L'Azerbaïdjan\\\"\", \"iso2\": \"\\\"AZ\\\"\", \"iso3\": \"\\\"AZE\\\"\", \"phone_code\": \"\\\"994\\\"\"},\r\n {\"nombre\": \"\\\"Bélgica\\\"\", \"name\": \"\\\"Belgium\\\"\", \"nom\": \"\\\"Belgique\\\"\", \"iso2\": \"\\\"BE\\\"\", \"iso3\": \"\\\"BEL\\\"\", \"phone_code\": \"\\\"32\\\"\"},\r\n {\"nombre\": \"\\\"Bahamas\\\"\", \"name\": \"\\\"Bahamas\\\"\", \"nom\": \"\\\"Bahamas\\\"\", \"iso2\": \"\\\"BS\\\"\", \"iso3\": \"\\\"BHS\\\"\", \"phone_code\": \"\\\"1 242\\\"\"},\r\n {\"nombre\": \"\\\"Bahrein\\\"\", \"name\": \"\\\"Bahrain\\\"\", \"nom\": \"\\\"Bahreïn\\\"\", \"iso2\": \"\\\"BH\\\"\", \"iso3\": \"\\\"BHR\\\"\", \"phone_code\": \"\\\"973\\\"\"},\r\n {\"nombre\": \"\\\"Bangladesh\\\"\", \"name\": \"\\\"Bangladesh\\\"\", \"nom\": \"\\\"Bangladesh\\\"\", \"iso2\": \"\\\"BD\\\"\", \"iso3\": \"\\\"BGD\\\"\", \"phone_code\": \"\\\"880\\\"\"},\r\n {\"nombre\": \"\\\"Barbados\\\"\", \"name\": \"\\\"Barbados\\\"\", \"nom\": \"\\\"Barbade\\\"\", \"iso2\": \"\\\"BB\\\"\", \"iso3\": \"\\\"BRB\\\"\", \"phone_code\": \"\\\"1 246\\\"\"},\r\n {\"nombre\": \"\\\"Belice\\\"\", \"name\": \"\\\"Belize\\\"\", \"nom\": \"\\\"Belize\\\"\", \"iso2\": \"\\\"BZ\\\"\", \"iso3\": \"\\\"BLZ\\\"\", \"phone_code\": \"\\\"501\\\"\"},\r\n {\"nombre\": \"\\\"Benín\\\"\", \"name\": \"\\\"Benin\\\"\", \"nom\": \"\\\"Bénin\\\"\", \"iso2\": \"\\\"BJ\\\"\", \"iso3\": \"\\\"BEN\\\"\", \"phone_code\": \"\\\"229\\\"\"},\r\n {\"nombre\": \"\\\"Bhután\\\"\", \"name\": \"\\\"Bhutan\\\"\", \"nom\": \"\\\"Le Bhoutan\\\"\", \"iso2\": \"\\\"BT\\\"\", \"iso3\": \"\\\"BTN\\\"\", \"phone_code\": \"\\\"975\\\"\"},\r\n {\"nombre\": \"\\\"Bielorrusia\\\"\", \"name\": \"\\\"Belarus\\\"\", \"nom\": \"\\\"Biélorussie\\\"\", \"iso2\": \"\\\"BY\\\"\", \"iso3\": \"\\\"BLR\\\"\", \"phone_code\": \"\\\"375\\\"\"},\r\n {\"nombre\": \"\\\"Birmania\\\"\", \"name\": \"\\\"Myanmar\\\"\", \"nom\": \"\\\"Myanmar\\\"\", \"iso2\": \"\\\"MM\\\"\", \"iso3\": \"\\\"MMR\\\"\", \"phone_code\": \"\\\"95\\\"\"},\r\n {\"nombre\": \"\\\"Bolivia\\\"\", \"name\": \"\\\"Bolivia\\\"\", \"nom\": \"\\\"Bolivie\\\"\", \"iso2\": \"\\\"BO\\\"\", \"iso3\": \"\\\"BOL\\\"\", \"phone_code\": \"\\\"591\\\"\"},\r\n {\"nombre\": \"\\\"Bosnia y Herzegovina\\\"\", \"name\": \"\\\"Bosnia and Herzegovina\\\"\", \"nom\": \"\\\"Bosnie-Herzégovine\\\"\", \"iso2\": \"\\\"BA\\\"\", \"iso3\": \"\\\"BIH\\\"\", \"phone_code\": \"\\\"387\\\"\"},\r\n {\"nombre\": \"\\\"Botsuana\\\"\", \"name\": \"\\\"Botswana\\\"\", \"nom\": \"\\\"Botswana\\\"\", \"iso2\": \"\\\"BW\\\"\", \"iso3\": \"\\\"BWA\\\"\", \"phone_code\": \"\\\"267\\\"\"},\r\n {\"nombre\": \"\\\"Brasil\\\"\", \"name\": \"\\\"Brazil\\\"\", \"nom\": \"\\\"Brésil\\\"\", \"iso2\": \"\\\"BR\\\"\", \"iso3\": \"\\\"BRA\\\"\", \"phone_code\": \"\\\"55\\\"\"},\r\n {\"nombre\": \"\\\"Brunéi\\\"\", \"name\": \"\\\"Brunei\\\"\", \"nom\": \"\\\"Brunei\\\"\", \"iso2\": \"\\\"BN\\\"\", \"iso3\": \"\\\"BRN\\\"\", \"phone_code\": \"\\\"673\\\"\"},\r\n {\"nombre\": \"\\\"Bulgaria\\\"\", \"name\": \"\\\"Bulgaria\\\"\", \"nom\": \"\\\"Bulgarie\\\"\", \"iso2\": \"\\\"BG\\\"\", \"iso3\": \"\\\"BGR\\\"\", \"phone_code\": \"\\\"359\\\"\"},\r\n {\"nombre\": \"\\\"Burkina Faso\\\"\", \"name\": \"\\\"Burkina Faso\\\"\", \"nom\": \"\\\"Burkina Faso\\\"\", \"iso2\": \"\\\"BF\\\"\", \"iso3\": \"\\\"BFA\\\"\", \"phone_code\": \"\\\"226\\\"\"},\r\n {\"nombre\": \"\\\"Burundi\\\"\", \"name\": \"\\\"Burundi\\\"\", \"nom\": \"\\\"Burundi\\\"\", \"iso2\": \"\\\"BI\\\"\", \"iso3\": \"\\\"BDI\\\"\", \"phone_code\": \"\\\"257\\\"\"},\r\n {\"nombre\": \"\\\"Cabo Verde\\\"\", \"name\": \"\\\"Cape Verde\\\"\", \"nom\": \"\\\"Cap-Vert\\\"\", \"iso2\": \"\\\"CV\\\"\", \"iso3\": \"\\\"CPV\\\"\", \"phone_code\": \"\\\"238\\\"\"},\r\n {\"nombre\": \"\\\"Camboya\\\"\", \"name\": \"\\\"Cambodia\\\"\", \"nom\": \"\\\"Cambodge\\\"\", \"iso2\": \"\\\"KH\\\"\", \"iso3\": \"\\\"KHM\\\"\", \"phone_code\": \"\\\"855\\\"\"},\r\n {\"nombre\": \"\\\"Camerún\\\"\", \"name\": \"\\\"Cameroon\\\"\", \"nom\": \"\\\"Cameroun\\\"\", \"iso2\": \"\\\"CM\\\"\", \"iso3\": \"\\\"CMR\\\"\", \"phone_code\": \"\\\"237\\\"\"},\r\n {\"nombre\": \"\\\"Canadá\\\"\", \"name\": \"\\\"Canada\\\"\", \"nom\": \"\\\"Canada\\\"\", \"iso2\": \"\\\"CA\\\"\", \"iso3\": \"\\\"CAN\\\"\", \"phone_code\": \"\\\"1\\\"\"},\r\n {\"nombre\": \"\\\"Chad\\\"\", \"name\": \"\\\"Chad\\\"\", \"nom\": \"\\\"Tchad\\\"\", \"iso2\": \"\\\"TD\\\"\", \"iso3\": \"\\\"TCD\\\"\", \"phone_code\": \"\\\"235\\\"\"},\r\n {\"nombre\": \"\\\"Chile\\\"\", \"name\": \"\\\"Chile\\\"\", \"nom\": \"\\\"Chili\\\"\", \"iso2\": \"\\\"CL\\\"\", \"iso3\": \"\\\"CHL\\\"\", \"phone_code\": \"\\\"56\\\"\"},\r\n {\"nombre\": \"\\\"China\\\"\", \"name\": \"\\\"China\\\"\", \"nom\": \"\\\"Chine\\\"\", \"iso2\": \"\\\"CN\\\"\", \"iso3\": \"\\\"CHN\\\"\", \"phone_code\": \"\\\"86\\\"\"},\r\n {\"nombre\": \"\\\"Chipre\\\"\", \"name\": \"\\\"Cyprus\\\"\", \"nom\": \"\\\"Chypre\\\"\", \"iso2\": \"\\\"CY\\\"\", \"iso3\": \"\\\"CYP\\\"\", \"phone_code\": \"\\\"357\\\"\"},\r\n {\"nombre\": \"\\\"Ciudad del Vaticano\\\"\", \"name\": \"\\\"Vatican City State\\\"\", \"nom\": \"\\\"Cité du Vatican\\\"\", \"iso2\": \"\\\"VA\\\"\", \"iso3\": \"\\\"VAT\\\"\", \"phone_code\": \"\\\"39\\\"\"},\r\n {\"nombre\": \"\\\"Colombia\\\"\", \"name\": \"\\\"Colombia\\\"\", \"nom\": \"\\\"Colombie\\\"\", \"iso2\": \"\\\"CO\\\"\", \"iso3\": \"\\\"COL\\\"\", \"phone_code\": \"\\\"57\\\"\"},\r\n {\"nombre\": \"\\\"Comoras\\\"\", \"name\": \"\\\"Comoros\\\"\", \"nom\": \"\\\"Comores\\\"\", \"iso2\": \"\\\"KM\\\"\", \"iso3\": \"\\\"COM\\\"\", \"phone_code\": \"\\\"269\\\"\"},\r\n {\"nombre\": \"\\\"Congo\\\"\", \"name\": \"\\\"Congo\\\"\", \"nom\": \"\\\"Congo\\\"\", \"iso2\": \"\\\"CG\\\"\", \"iso3\": \"\\\"COG\\\"\", \"phone_code\": \"\\\"242\\\"\"},\r\n {\"nombre\": \"\\\"Congo\\\"\", \"name\": \"\\\"Congo\\\"\", \"nom\": \"\\\"Congo\\\"\", \"iso2\": \"\\\"CD\\\"\", \"iso3\": \"\\\"COD\\\"\", \"phone_code\": \"\\\"243\\\"\"},\r\n {\"nombre\": \"\\\"Corea del Norte\\\"\", \"name\": \"\\\"North Korea\\\"\", \"nom\": \"\\\"Corée du Nord\\\"\", \"iso2\": \"\\\"KP\\\"\", \"iso3\": \"\\\"PRK\\\"\", \"phone_code\": \"\\\"850\\\"\"},\r\n {\"nombre\": \"\\\"Corea del Sur\\\"\", \"name\": \"\\\"South Korea\\\"\", \"nom\": \"\\\"Corée du Sud\\\"\", \"iso2\": \"\\\"KR\\\"\", \"iso3\": \"\\\"KOR\\\"\", \"phone_code\": \"\\\"82\\\"\"},\r\n {\"nombre\": \"\\\"Costa de Marfil\\\"\", \"name\": \"\\\"Ivory Coast\\\"\", \"nom\": \"\\\"Côte-d'Ivoire\\\"\", \"iso2\": \"\\\"CI\\\"\", \"iso3\": \"\\\"CIV\\\"\", \"phone_code\": \"\\\"225\\\"\"},\r\n {\"nombre\": \"\\\"Costa Rica\\\"\", \"name\": \"\\\"Costa Rica\\\"\", \"nom\": \"\\\"Costa Rica\\\"\", \"iso2\": \"\\\"CR\\\"\", \"iso3\": \"\\\"CRI\\\"\", \"phone_code\": \"\\\"506\\\"\"},\r\n {\"nombre\": \"\\\"Croacia\\\"\", \"name\": \"\\\"Croatia\\\"\", \"nom\": \"\\\"Croatie\\\"\", \"iso2\": \"\\\"HR\\\"\", \"iso3\": \"\\\"HRV\\\"\", \"phone_code\": \"\\\"385\\\"\"},\r\n {\"nombre\": \"\\\"Cuba\\\"\", \"name\": \"\\\"Cuba\\\"\", \"nom\": \"\\\"Cuba\\\"\", \"iso2\": \"\\\"CU\\\"\", \"iso3\": \"\\\"CUB\\\"\", \"phone_code\": \"\\\"53\\\"\"},\r\n {\"nombre\": \"\\\"Dinamarca\\\"\", \"name\": \"\\\"Denmark\\\"\", \"nom\": \"\\\"Danemark\\\"\", \"iso2\": \"\\\"DK\\\"\", \"iso3\": \"\\\"DNK\\\"\", \"phone_code\": \"\\\"45\\\"\"},\r\n {\"nombre\": \"\\\"Dominica\\\"\", \"name\": \"\\\"Dominica\\\"\", \"nom\": \"\\\"Dominique\\\"\", \"iso2\": \"\\\"DM\\\"\", \"iso3\": \"\\\"DMA\\\"\", \"phone_code\": \"\\\"1 767\\\"\"},\r\n {\"nombre\": \"\\\"Ecuador\\\"\", \"name\": \"\\\"Ecuador\\\"\", \"nom\": \"\\\"Equateur\\\"\", \"iso2\": \"\\\"EC\\\"\", \"iso3\": \"\\\"ECU\\\"\", \"phone_code\": \"\\\"593\\\"\"},\r\n {\"nombre\": \"\\\"Egipto\\\"\", \"name\": \"\\\"Egypt\\\"\", \"nom\": \"\\\"Egypte\\\"\", \"iso2\": \"\\\"EG\\\"\", \"iso3\": \"\\\"EGY\\\"\", \"phone_code\": \"\\\"20\\\"\"},\r\n {\"nombre\": \"\\\"El Salvador\\\"\", \"name\": \"\\\"El Salvador\\\"\", \"nom\": \"\\\"El Salvador\\\"\", \"iso2\": \"\\\"SV\\\"\", \"iso3\": \"\\\"SLV\\\"\", \"phone_code\": \"\\\"503\\\"\"},\r\n {\"nombre\": \"\\\"Emiratos Árabes Unidos\\\"\", \"name\": \"\\\"United Arab Emirates\\\"\", \"nom\": \"\\\"Emirats Arabes Unis\\\"\", \"iso2\": \"\\\"AE\\\"\", \"iso3\": \"\\\"ARE\\\"\", \"phone_code\": \"\\\"971\\\"\"},\r\n {\"nombre\": \"\\\"Eritrea\\\"\", \"name\": \"\\\"Eritrea\\\"\", \"nom\": \"\\\"Erythrée\\\"\", \"iso2\": \"\\\"ER\\\"\", \"iso3\": \"\\\"ERI\\\"\", \"phone_code\": \"\\\"291\\\"\"},\r\n {\"nombre\": \"\\\"Eslovaquia\\\"\", \"name\": \"\\\"Slovakia\\\"\", \"nom\": \"\\\"Slovaquie\\\"\", \"iso2\": \"\\\"SK\\\"\", \"iso3\": \"\\\"SVK\\\"\", \"phone_code\": \"\\\"421\\\"\"},\r\n {\"nombre\": \"\\\"Eslovenia\\\"\", \"name\": \"\\\"Slovenia\\\"\", \"nom\": \"\\\"Slovénie\\\"\", \"iso2\": \"\\\"SI\\\"\", \"iso3\": \"\\\"SVN\\\"\", \"phone_code\": \"\\\"386\\\"\"},\r\n {\"nombre\": \"\\\"España\\\"\", \"name\": \"\\\"Spain\\\"\", \"nom\": \"\\\"Espagne\\\"\", \"iso2\": \"\\\"ES\\\"\", \"iso3\": \"\\\"ESP\\\"\", \"phone_code\": \"\\\"34\\\"\"},\r\n {\"nombre\": \"\\\"Estados Unidos de América\\\"\", \"name\": \"\\\"United States of America\\\"\", \"nom\": \"\\\"États-Unis d'Amérique\\\"\", \"iso2\": \"\\\"US\\\"\", \"iso3\": \"\\\"USA\\\"\", \"phone_code\": \"\\\"1\\\"\"},\r\n {\"nombre\": \"\\\"Estonia\\\"\", \"name\": \"\\\"Estonia\\\"\", \"nom\": \"\\\"L'Estonie\\\"\", \"iso2\": \"\\\"EE\\\"\", \"iso3\": \"\\\"EST\\\"\", \"phone_code\": \"\\\"372\\\"\"},\r\n {\"nombre\": \"\\\"Etiopía\\\"\", \"name\": \"\\\"Ethiopia\\\"\", \"nom\": \"\\\"Ethiopie\\\"\", \"iso2\": \"\\\"ET\\\"\", \"iso3\": \"\\\"ETH\\\"\", \"phone_code\": \"\\\"251\\\"\"},\r\n {\"nombre\": \"\\\"Filipinas\\\"\", \"name\": \"\\\"Philippines\\\"\", \"nom\": \"\\\"Philippines\\\"\", \"iso2\": \"\\\"PH\\\"\", \"iso3\": \"\\\"PHL\\\"\", \"phone_code\": \"\\\"63\\\"\"},\r\n {\"nombre\": \"\\\"Finlandia\\\"\", \"name\": \"\\\"Finland\\\"\", \"nom\": \"\\\"Finlande\\\"\", \"iso2\": \"\\\"FI\\\"\", \"iso3\": \"\\\"FIN\\\"\", \"phone_code\": \"\\\"358\\\"\"},\r\n {\"nombre\": \"\\\"Fiyi\\\"\", \"name\": \"\\\"Fiji\\\"\", \"nom\": \"\\\"Fidji\\\"\", \"iso2\": \"\\\"FJ\\\"\", \"iso3\": \"\\\"FJI\\\"\", \"phone_code\": \"\\\"679\\\"\"},\r\n {\"nombre\": \"\\\"Francia\\\"\", \"name\": \"\\\"France\\\"\", \"nom\": \"\\\"France\\\"\", \"iso2\": \"\\\"FR\\\"\", \"iso3\": \"\\\"FRA\\\"\", \"phone_code\": \"\\\"33\\\"\"},\r\n {\"nombre\": \"\\\"Gabón\\\"\", \"name\": \"\\\"Gabon\\\"\", \"nom\": \"\\\"Gabon\\\"\", \"iso2\": \"\\\"GA\\\"\", \"iso3\": \"\\\"GAB\\\"\", \"phone_code\": \"\\\"241\\\"\"},\r\n {\"nombre\": \"\\\"Gambia\\\"\", \"name\": \"\\\"Gambia\\\"\", \"nom\": \"\\\"Gambie\\\"\", \"iso2\": \"\\\"GM\\\"\", \"iso3\": \"\\\"GMB\\\"\", \"phone_code\": \"\\\"220\\\"\"},\r\n {\"nombre\": \"\\\"Georgia\\\"\", \"name\": \"\\\"Georgia\\\"\", \"nom\": \"\\\"Géorgie\\\"\", \"iso2\": \"\\\"GE\\\"\", \"iso3\": \"\\\"GEO\\\"\", \"phone_code\": \"\\\"995\\\"\"},\r\n {\"nombre\": \"\\\"Ghana\\\"\", \"name\": \"\\\"Ghana\\\"\", \"nom\": \"\\\"Ghana\\\"\", \"iso2\": \"\\\"GH\\\"\", \"iso3\": \"\\\"GHA\\\"\", \"phone_code\": \"\\\"233\\\"\"},\r\n {\"nombre\": \"\\\"Gibraltar\\\"\", \"name\": \"\\\"Gibraltar\\\"\", \"nom\": \"\\\"Gibraltar\\\"\", \"iso2\": \"\\\"GI\\\"\", \"iso3\": \"\\\"GIB\\\"\", \"phone_code\": \"\\\"350\\\"\"},\r\n {\"nombre\": \"\\\"Granada\\\"\", \"name\": \"\\\"Grenada\\\"\", \"nom\": \"\\\"Grenade\\\"\", \"iso2\": \"\\\"GD\\\"\", \"iso3\": \"\\\"GRD\\\"\", \"phone_code\": \"\\\"1 473\\\"\"},\r\n {\"nombre\": \"\\\"Grecia\\\"\", \"name\": \"\\\"Greece\\\"\", \"nom\": \"\\\"Grèce\\\"\", \"iso2\": \"\\\"GR\\\"\", \"iso3\": \"\\\"GRC\\\"\", \"phone_code\": \"\\\"30\\\"\"},\r\n {\"nombre\": \"\\\"Groenlandia\\\"\", \"name\": \"\\\"Greenland\\\"\", \"nom\": \"\\\"Groenland\\\"\", \"iso2\": \"\\\"GL\\\"\", \"iso3\": \"\\\"GRL\\\"\", \"phone_code\": \"\\\"299\\\"\"},\r\n {\"nombre\": \"\\\"Guadalupe\\\"\", \"name\": \"\\\"Guadeloupe\\\"\", \"nom\": \"\\\"Guadeloupe\\\"\", \"iso2\": \"\\\"GP\\\"\", \"iso3\": \"\\\"GLP\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Guam\\\"\", \"name\": \"\\\"Guam\\\"\", \"nom\": \"\\\"Guam\\\"\", \"iso2\": \"\\\"GU\\\"\", \"iso3\": \"\\\"GUM\\\"\", \"phone_code\": \"\\\"1 671\\\"\"},\r\n {\"nombre\": \"\\\"Guatemala\\\"\", \"name\": \"\\\"Guatemala\\\"\", \"nom\": \"\\\"Guatemala\\\"\", \"iso2\": \"\\\"GT\\\"\", \"iso3\": \"\\\"GTM\\\"\", \"phone_code\": \"\\\"502\\\"\"},\r\n {\"nombre\": \"\\\"Guayana Francesa\\\"\", \"name\": \"\\\"French Guiana\\\"\", \"nom\": \"\\\"Guyane française\\\"\", \"iso2\": \"\\\"GF\\\"\", \"iso3\": \"\\\"GUF\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Guernsey\\\"\", \"name\": \"\\\"Guernsey\\\"\", \"nom\": \"\\\"Guernesey\\\"\", \"iso2\": \"\\\"GG\\\"\", \"iso3\": \"\\\"GGY\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Guinea\\\"\", \"name\": \"\\\"Guinea\\\"\", \"nom\": \"\\\"Guinée\\\"\", \"iso2\": \"\\\"GN\\\"\", \"iso3\": \"\\\"GIN\\\"\", \"phone_code\": \"\\\"224\\\"\"},\r\n {\"nombre\": \"\\\"Guinea Ecuatorial\\\"\", \"name\": \"\\\"Equatorial Guinea\\\"\", \"nom\": \"\\\"Guinée Equatoriale\\\"\", \"iso2\": \"\\\"GQ\\\"\", \"iso3\": \"\\\"GNQ\\\"\", \"phone_code\": \"\\\"240\\\"\"},\r\n {\"nombre\": \"\\\"Guinea-Bissau\\\"\", \"name\": \"\\\"Guinea-Bissau\\\"\", \"nom\": \"\\\"Guinée-Bissau\\\"\", \"iso2\": \"\\\"GW\\\"\", \"iso3\": \"\\\"GNB\\\"\", \"phone_code\": \"\\\"245\\\"\"},\r\n {\"nombre\": \"\\\"Guyana\\\"\", \"name\": \"\\\"Guyana\\\"\", \"nom\": \"\\\"Guyane\\\"\", \"iso2\": \"\\\"GY\\\"\", \"iso3\": \"\\\"GUY\\\"\", \"phone_code\": \"\\\"592\\\"\"},\r\n {\"nombre\": \"\\\"Haití\\\"\", \"name\": \"\\\"Haiti\\\"\", \"nom\": \"\\\"Haïti\\\"\", \"iso2\": \"\\\"HT\\\"\", \"iso3\": \"\\\"HTI\\\"\", \"phone_code\": \"\\\"509\\\"\"},\r\n {\"nombre\": \"\\\"Honduras\\\"\", \"name\": \"\\\"Honduras\\\"\", \"nom\": \"\\\"Honduras\\\"\", \"iso2\": \"\\\"HN\\\"\", \"iso3\": \"\\\"HND\\\"\", \"phone_code\": \"\\\"504\\\"\"},\r\n {\"nombre\": \"\\\"Hong kong\\\"\", \"name\": \"\\\"Hong Kong\\\"\", \"nom\": \"\\\"Hong Kong\\\"\", \"iso2\": \"\\\"HK\\\"\", \"iso3\": \"\\\"HKG\\\"\", \"phone_code\": \"\\\"852\\\"\"},\r\n {\"nombre\": \"\\\"Hungría\\\"\", \"name\": \"\\\"Hungary\\\"\", \"nom\": \"\\\"Hongrie\\\"\", \"iso2\": \"\\\"HU\\\"\", \"iso3\": \"\\\"HUN\\\"\", \"phone_code\": \"\\\"36\\\"\"},\r\n {\"nombre\": \"\\\"India\\\"\", \"name\": \"\\\"India\\\"\", \"nom\": \"\\\"Inde\\\"\", \"iso2\": \"\\\"IN\\\"\", \"iso3\": \"\\\"IND\\\"\", \"phone_code\": \"\\\"91\\\"\"},\r\n {\"nombre\": \"\\\"Indonesia\\\"\", \"name\": \"\\\"Indonesia\\\"\", \"nom\": \"\\\"Indonésie\\\"\", \"iso2\": \"\\\"ID\\\"\", \"iso3\": \"\\\"IDN\\\"\", \"phone_code\": \"\\\"62\\\"\"},\r\n {\"nombre\": \"\\\"Irán\\\"\", \"name\": \"\\\"Iran\\\"\", \"nom\": \"\\\"Iran\\\"\", \"iso2\": \"\\\"IR\\\"\", \"iso3\": \"\\\"IRN\\\"\", \"phone_code\": \"\\\"98\\\"\"},\r\n {\"nombre\": \"\\\"Irak\\\"\", \"name\": \"\\\"Iraq\\\"\", \"nom\": \"\\\"Irak\\\"\", \"iso2\": \"\\\"IQ\\\"\", \"iso3\": \"\\\"IRQ\\\"\", \"phone_code\": \"\\\"964\\\"\"},\r\n {\"nombre\": \"\\\"Irlanda\\\"\", \"name\": \"\\\"Ireland\\\"\", \"nom\": \"\\\"Irlande\\\"\", \"iso2\": \"\\\"IE\\\"\", \"iso3\": \"\\\"IRL\\\"\", \"phone_code\": \"\\\"353\\\"\"},\r\n {\"nombre\": \"\\\"Isla Bouvet\\\"\", \"name\": \"\\\"Bouvet Island\\\"\", \"nom\": \"\\\"Bouvet Island\\\"\", \"iso2\": \"\\\"BV\\\"\", \"iso3\": \"\\\"BVT\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Isla de Man\\\"\", \"name\": \"\\\"Isle of Man\\\"\", \"nom\": \"\\\"Ile de Man\\\"\", \"iso2\": \"\\\"IM\\\"\", \"iso3\": \"\\\"IMN\\\"\", \"phone_code\": \"\\\"44\\\"\"},\r\n {\"nombre\": \"\\\"Isla de Navidad\\\"\", \"name\": \"\\\"Christmas Island\\\"\", \"nom\": \"\\\"Christmas Island\\\"\", \"iso2\": \"\\\"CX\\\"\", \"iso3\": \"\\\"CXR\\\"\", \"phone_code\": \"\\\"61\\\"\"},\r\n {\"nombre\": \"\\\"Isla Norfolk\\\"\", \"name\": \"\\\"Norfolk Island\\\"\", \"nom\": \"\\\"Île de Norfolk\\\"\", \"iso2\": \"\\\"NF\\\"\", \"iso3\": \"\\\"NFK\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Islandia\\\"\", \"name\": \"\\\"Iceland\\\"\", \"nom\": \"\\\"Islande\\\"\", \"iso2\": \"\\\"IS\\\"\", \"iso3\": \"\\\"ISL\\\"\", \"phone_code\": \"\\\"354\\\"\"},\r\n {\"nombre\": \"\\\"Islas Bermudas\\\"\", \"name\": \"\\\"Bermuda Islands\\\"\", \"nom\": \"\\\"Bermudes\\\"\", \"iso2\": \"\\\"BM\\\"\", \"iso3\": \"\\\"BMU\\\"\", \"phone_code\": \"\\\"1 441\\\"\"},\r\n {\"nombre\": \"\\\"Islas Caimán\\\"\", \"name\": \"\\\"Cayman Islands\\\"\", \"nom\": \"\\\"Iles Caïmans\\\"\", \"iso2\": \"\\\"KY\\\"\", \"iso3\": \"\\\"CYM\\\"\", \"phone_code\": \"\\\"1 345\\\"\"},\r\n {\"nombre\": \"\\\"Islas Cocos (Keeling)\\\"\", \"name\": \"\\\"Cocos (Keeling) Islands\\\"\", \"nom\": \"\\\"Cocos (Keeling\\\"\", \"iso2\": \"\\\"CC\\\"\", \"iso3\": \"\\\"CCK\\\"\", \"phone_code\": \"\\\"61\\\"\"},\r\n {\"nombre\": \"\\\"Islas Cook\\\"\", \"name\": \"\\\"Cook Islands\\\"\", \"nom\": \"\\\"Iles Cook\\\"\", \"iso2\": \"\\\"CK\\\"\", \"iso3\": \"\\\"COK\\\"\", \"phone_code\": \"\\\"682\\\"\"},\r\n {\"nombre\": \"\\\"Islas de Åland\\\"\", \"name\": \"\\\"Åland Islands\\\"\", \"nom\": \"\\\"Îles Åland\\\"\", \"iso2\": \"\\\"AX\\\"\", \"iso3\": \"\\\"ALA\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Islas Feroe\\\"\", \"name\": \"\\\"Faroe Islands\\\"\", \"nom\": \"\\\"Iles Féro\\\"\", \"iso2\": \"\\\"FO\\\"\", \"iso3\": \"\\\"FRO\\\"\", \"phone_code\": \"\\\"298\\\"\"},\r\n {\"nombre\": \"\\\"Islas Georgias del Sur y Sandwich del Sur\\\"\", \"name\": \"\\\"South Georgia and the South Sandwich Islands\\\"\", \"nom\": \"\\\"Géorgie du Sud et les Îles Sandwich du Sud\\\"\", \"iso2\": \"\\\"GS\\\"\", \"iso3\": \"\\\"SGS\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Islas Heard y McDonald\\\"\", \"name\": \"\\\"Heard Island and McDonald Islands\\\"\", \"nom\": \"\\\"Les îles Heard et McDonald\\\"\", \"iso2\": \"\\\"HM\\\"\", \"iso3\": \"\\\"HMD\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Islas Maldivas\\\"\", \"name\": \"\\\"Maldives\\\"\", \"nom\": \"\\\"Maldives\\\"\", \"iso2\": \"\\\"MV\\\"\", \"iso3\": \"\\\"MDV\\\"\", \"phone_code\": \"\\\"960\\\"\"},\r\n {\"nombre\": \"\\\"Islas Malvinas\\\"\", \"name\": \"\\\"Falkland Islands (Malvinas)\\\"\", \"nom\": \"\\\"Iles Falkland (Malvinas\\\"\", \"iso2\": \"\\\"FK\\\"\", \"iso3\": \"\\\"FLK\\\"\", \"phone_code\": \"\\\"500\\\"\"},\r\n {\"nombre\": \"\\\"Islas Marianas del Norte\\\"\", \"name\": \"\\\"Northern Mariana Islands\\\"\", \"nom\": \"\\\"Iles Mariannes du Nord\\\"\", \"iso2\": \"\\\"MP\\\"\", \"iso3\": \"\\\"MNP\\\"\", \"phone_code\": \"\\\"1 670\\\"\"},\r\n {\"nombre\": \"\\\"Islas Marshall\\\"\", \"name\": \"\\\"Marshall Islands\\\"\", \"nom\": \"\\\"Iles Marshall\\\"\", \"iso2\": \"\\\"MH\\\"\", \"iso3\": \"\\\"MHL\\\"\", \"phone_code\": \"\\\"692\\\"\"},\r\n {\"nombre\": \"\\\"Islas Pitcairn\\\"\", \"name\": \"\\\"Pitcairn Islands\\\"\", \"nom\": \"\\\"Iles Pitcairn\\\"\", \"iso2\": \"\\\"PN\\\"\", \"iso3\": \"\\\"PCN\\\"\", \"phone_code\": \"\\\"870\\\"\"},\r\n {\"nombre\": \"\\\"Islas Salomón\\\"\", \"name\": \"\\\"Solomon Islands\\\"\", \"nom\": \"\\\"Iles Salomon\\\"\", \"iso2\": \"\\\"SB\\\"\", \"iso3\": \"\\\"SLB\\\"\", \"phone_code\": \"\\\"677\\\"\"},\r\n {\"nombre\": \"\\\"Islas Turcas y Caicos\\\"\", \"name\": \"\\\"Turks and Caicos Islands\\\"\", \"nom\": \"\\\"Iles Turques et Caïques\\\"\", \"iso2\": \"\\\"TC\\\"\", \"iso3\": \"\\\"TCA\\\"\", \"phone_code\": \"\\\"1 649\\\"\"},\r\n {\"nombre\": \"\\\"Islas Ultramarinas Menores de Estados Unidos\\\"\", \"name\": \"\\\"United States Minor Outlying Islands\\\"\", \"nom\": \"\\\"États-Unis Îles mineures éloignées\\\"\", \"iso2\": \"\\\"UM\\\"\", \"iso3\": \"\\\"UMI\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Islas Vírgenes Británicas\\\"\", \"name\": \"\\\"Virgin Islands\\\"\", \"nom\": \"\\\"Iles Vierges\\\"\", \"iso2\": \"\\\"VG\\\"\", \"iso3\": \"\\\"VG\\\"\", \"phone_code\": \"\\\"1 284\\\"\"},\r\n {\"nombre\": \"\\\"Islas Vírgenes de los Estados Unidos\\\"\", \"name\": \"\\\"United States Virgin Islands\\\"\", \"nom\": \"\\\"Îles Vierges américaines\\\"\", \"iso2\": \"\\\"VI\\\"\", \"iso3\": \"\\\"VIR\\\"\", \"phone_code\": \"\\\"1 340\\\"\"},\r\n {\"nombre\": \"\\\"Israel\\\"\", \"name\": \"\\\"Israel\\\"\", \"nom\": \"\\\"Israël\\\"\", \"iso2\": \"\\\"IL\\\"\", \"iso3\": \"\\\"ISR\\\"\", \"phone_code\": \"\\\"972\\\"\"},\r\n {\"nombre\": \"\\\"Italia\\\"\", \"name\": \"\\\"Italy\\\"\", \"nom\": \"\\\"Italie\\\"\", \"iso2\": \"\\\"IT\\\"\", \"iso3\": \"\\\"ITA\\\"\", \"phone_code\": \"\\\"39\\\"\"},\r\n {\"nombre\": \"\\\"Jamaica\\\"\", \"name\": \"\\\"Jamaica\\\"\", \"nom\": \"\\\"Jamaïque\\\"\", \"iso2\": \"\\\"JM\\\"\", \"iso3\": \"\\\"JAM\\\"\", \"phone_code\": \"\\\"1 876\\\"\"},\r\n {\"nombre\": \"\\\"Japón\\\"\", \"name\": \"\\\"Japan\\\"\", \"nom\": \"\\\"Japon\\\"\", \"iso2\": \"\\\"JP\\\"\", \"iso3\": \"\\\"JPN\\\"\", \"phone_code\": \"\\\"81\\\"\"},\r\n {\"nombre\": \"\\\"Jersey\\\"\", \"name\": \"\\\"Jersey\\\"\", \"nom\": \"\\\"Maillot\\\"\", \"iso2\": \"\\\"JE\\\"\", \"iso3\": \"\\\"JEY\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Jordania\\\"\", \"name\": \"\\\"Jordan\\\"\", \"nom\": \"\\\"Jordan\\\"\", \"iso2\": \"\\\"JO\\\"\", \"iso3\": \"\\\"JOR\\\"\", \"phone_code\": \"\\\"962\\\"\"},\r\n {\"nombre\": \"\\\"Kazajistán\\\"\", \"name\": \"\\\"Kazakhstan\\\"\", \"nom\": \"\\\"Le Kazakhstan\\\"\", \"iso2\": \"\\\"KZ\\\"\", \"iso3\": \"\\\"KAZ\\\"\", \"phone_code\": \"\\\"7\\\"\"},\r\n {\"nombre\": \"\\\"Kenia\\\"\", \"name\": \"\\\"Kenya\\\"\", \"nom\": \"\\\"Kenya\\\"\", \"iso2\": \"\\\"KE\\\"\", \"iso3\": \"\\\"KEN\\\"\", \"phone_code\": \"\\\"254\\\"\"},\r\n {\"nombre\": \"\\\"Kirgizstán\\\"\", \"name\": \"\\\"Kyrgyzstan\\\"\", \"nom\": \"\\\"Kirghizstan\\\"\", \"iso2\": \"\\\"KG\\\"\", \"iso3\": \"\\\"KGZ\\\"\", \"phone_code\": \"\\\"996\\\"\"},\r\n {\"nombre\": \"\\\"Kiribati\\\"\", \"name\": \"\\\"Kiribati\\\"\", \"nom\": \"\\\"Kiribati\\\"\", \"iso2\": \"\\\"KI\\\"\", \"iso3\": \"\\\"KIR\\\"\", \"phone_code\": \"\\\"686\\\"\"},\r\n {\"nombre\": \"\\\"Kuwait\\\"\", \"name\": \"\\\"Kuwait\\\"\", \"nom\": \"\\\"Koweït\\\"\", \"iso2\": \"\\\"KW\\\"\", \"iso3\": \"\\\"KWT\\\"\", \"phone_code\": \"\\\"965\\\"\"},\r\n {\"nombre\": \"\\\"Líbano\\\"\", \"name\": \"\\\"Lebanon\\\"\", \"nom\": \"\\\"Liban\\\"\", \"iso2\": \"\\\"LB\\\"\", \"iso3\": \"\\\"LBN\\\"\", \"phone_code\": \"\\\"961\\\"\"},\r\n {\"nombre\": \"\\\"Laos\\\"\", \"name\": \"\\\"Laos\\\"\", \"nom\": \"\\\"Laos\\\"\", \"iso2\": \"\\\"LA\\\"\", \"iso3\": \"\\\"LAO\\\"\", \"phone_code\": \"\\\"856\\\"\"},\r\n {\"nombre\": \"\\\"Lesoto\\\"\", \"name\": \"\\\"Lesotho\\\"\", \"nom\": \"\\\"Lesotho\\\"\", \"iso2\": \"\\\"LS\\\"\", \"iso3\": \"\\\"LSO\\\"\", \"phone_code\": \"\\\"266\\\"\"},\r\n {\"nombre\": \"\\\"Letonia\\\"\", \"name\": \"\\\"Latvia\\\"\", \"nom\": \"\\\"La Lettonie\\\"\", \"iso2\": \"\\\"LV\\\"\", \"iso3\": \"\\\"LVA\\\"\", \"phone_code\": \"\\\"371\\\"\"},\r\n {\"nombre\": \"\\\"Liberia\\\"\", \"name\": \"\\\"Liberia\\\"\", \"nom\": \"\\\"Liberia\\\"\", \"iso2\": \"\\\"LR\\\"\", \"iso3\": \"\\\"LBR\\\"\", \"phone_code\": \"\\\"231\\\"\"},\r\n {\"nombre\": \"\\\"Libia\\\"\", \"name\": \"\\\"Libya\\\"\", \"nom\": \"\\\"Libye\\\"\", \"iso2\": \"\\\"LY\\\"\", \"iso3\": \"\\\"LBY\\\"\", \"phone_code\": \"\\\"218\\\"\"},\r\n {\"nombre\": \"\\\"Liechtenstein\\\"\", \"name\": \"\\\"Liechtenstein\\\"\", \"nom\": \"\\\"Liechtenstein\\\"\", \"iso2\": \"\\\"LI\\\"\", \"iso3\": \"\\\"LIE\\\"\", \"phone_code\": \"\\\"423\\\"\"},\r\n {\"nombre\": \"\\\"Lituania\\\"\", \"name\": \"\\\"Lithuania\\\"\", \"nom\": \"\\\"La Lituanie\\\"\", \"iso2\": \"\\\"LT\\\"\", \"iso3\": \"\\\"LTU\\\"\", \"phone_code\": \"\\\"370\\\"\"},\r\n {\"nombre\": \"\\\"Luxemburgo\\\"\", \"name\": \"\\\"Luxembourg\\\"\", \"nom\": \"\\\"Luxembourg\\\"\", \"iso2\": \"\\\"LU\\\"\", \"iso3\": \"\\\"LUX\\\"\", \"phone_code\": \"\\\"352\\\"\"},\r\n {\"nombre\": \"\\\"México\\\"\", \"name\": \"\\\"Mexico\\\"\", \"nom\": \"\\\"Mexique\\\"\", \"iso2\": \"\\\"MX\\\"\", \"iso3\": \"\\\"MEX\\\"\", \"phone_code\": \"\\\"52\\\"\"},\r\n {\"nombre\": \"\\\"Mónaco\\\"\", \"name\": \"\\\"Monaco\\\"\", \"nom\": \"\\\"Monaco\\\"\", \"iso2\": \"\\\"MC\\\"\", \"iso3\": \"\\\"MCO\\\"\", \"phone_code\": \"\\\"377\\\"\"},\r\n {\"nombre\": \"\\\"Macao\\\"\", \"name\": \"\\\"Macao\\\"\", \"nom\": \"\\\"Macao\\\"\", \"iso2\": \"\\\"MO\\\"\", \"iso3\": \"\\\"MAC\\\"\", \"phone_code\": \"\\\"853\\\"\"},\r\n {\"nombre\": \"\\\"Macedônia\\\"\", \"name\": \"\\\"Macedonia\\\"\", \"nom\": \"\\\"Macédoine\\\"\", \"iso2\": \"\\\"MK\\\"\", \"iso3\": \"\\\"MKD\\\"\", \"phone_code\": \"\\\"389\\\"\"},\r\n {\"nombre\": \"\\\"Madagascar\\\"\", \"name\": \"\\\"Madagascar\\\"\", \"nom\": \"\\\"Madagascar\\\"\", \"iso2\": \"\\\"MG\\\"\", \"iso3\": \"\\\"MDG\\\"\", \"phone_code\": \"\\\"261\\\"\"},\r\n {\"nombre\": \"\\\"Malasia\\\"\", \"name\": \"\\\"Malaysia\\\"\", \"nom\": \"\\\"Malaisie\\\"\", \"iso2\": \"\\\"MY\\\"\", \"iso3\": \"\\\"MYS\\\"\", \"phone_code\": \"\\\"60\\\"\"},\r\n {\"nombre\": \"\\\"Malawi\\\"\", \"name\": \"\\\"Malawi\\\"\", \"nom\": \"\\\"Malawi\\\"\", \"iso2\": \"\\\"MW\\\"\", \"iso3\": \"\\\"MWI\\\"\", \"phone_code\": \"\\\"265\\\"\"},\r\n {\"nombre\": \"\\\"Mali\\\"\", \"name\": \"\\\"Mali\\\"\", \"nom\": \"\\\"Mali\\\"\", \"iso2\": \"\\\"ML\\\"\", \"iso3\": \"\\\"MLI\\\"\", \"phone_code\": \"\\\"223\\\"\"},\r\n {\"nombre\": \"\\\"Malta\\\"\", \"name\": \"\\\"Malta\\\"\", \"nom\": \"\\\"Malte\\\"\", \"iso2\": \"\\\"MT\\\"\", \"iso3\": \"\\\"MLT\\\"\", \"phone_code\": \"\\\"356\\\"\"},\r\n {\"nombre\": \"\\\"Marruecos\\\"\", \"name\": \"\\\"Morocco\\\"\", \"nom\": \"\\\"Maroc\\\"\", \"iso2\": \"\\\"MA\\\"\", \"iso3\": \"\\\"MAR\\\"\", \"phone_code\": \"\\\"212\\\"\"},\r\n {\"nombre\": \"\\\"Martinica\\\"\", \"name\": \"\\\"Martinique\\\"\", \"nom\": \"\\\"Martinique\\\"\", \"iso2\": \"\\\"MQ\\\"\", \"iso3\": \"\\\"MTQ\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Mauricio\\\"\", \"name\": \"\\\"Mauritius\\\"\", \"nom\": \"\\\"Iles Maurice\\\"\", \"iso2\": \"\\\"MU\\\"\", \"iso3\": \"\\\"MUS\\\"\", \"phone_code\": \"\\\"230\\\"\"},\r\n {\"nombre\": \"\\\"Mauritania\\\"\", \"name\": \"\\\"Mauritania\\\"\", \"nom\": \"\\\"Mauritanie\\\"\", \"iso2\": \"\\\"MR\\\"\", \"iso3\": \"\\\"MRT\\\"\", \"phone_code\": \"\\\"222\\\"\"},\r\n {\"nombre\": \"\\\"Mayotte\\\"\", \"name\": \"\\\"Mayotte\\\"\", \"nom\": \"\\\"Mayotte\\\"\", \"iso2\": \"\\\"YT\\\"\", \"iso3\": \"\\\"MYT\\\"\", \"phone_code\": \"\\\"262\\\"\"},\r\n {\"nombre\": \"\\\"Micronesia\\\"\", \"name\": \"\\\"Estados Federados de\\\"\", \"nom\": \"\\\"Federados Estados de\\\"\", \"iso2\": \"\\\"FM\\\"\", \"iso3\": \"\\\"FSM\\\"\", \"phone_code\": \"\\\"691\\\"\"},\r\n {\"nombre\": \"\\\"Moldavia\\\"\", \"name\": \"\\\"Moldova\\\"\", \"nom\": \"\\\"Moldavie\\\"\", \"iso2\": \"\\\"MD\\\"\", \"iso3\": \"\\\"MDA\\\"\", \"phone_code\": \"\\\"373\\\"\"},\r\n {\"nombre\": \"\\\"Mongolia\\\"\", \"name\": \"\\\"Mongolia\\\"\", \"nom\": \"\\\"Mongolie\\\"\", \"iso2\": \"\\\"MN\\\"\", \"iso3\": \"\\\"MNG\\\"\", \"phone_code\": \"\\\"976\\\"\"},\r\n {\"nombre\": \"\\\"Montenegro\\\"\", \"name\": \"\\\"Montenegro\\\"\", \"nom\": \"\\\"Monténégro\\\"\", \"iso2\": \"\\\"ME\\\"\", \"iso3\": \"\\\"MNE\\\"\", \"phone_code\": \"\\\"382\\\"\"},\r\n {\"nombre\": \"\\\"Montserrat\\\"\", \"name\": \"\\\"Montserrat\\\"\", \"nom\": \"\\\"Montserrat\\\"\", \"iso2\": \"\\\"MS\\\"\", \"iso3\": \"\\\"MSR\\\"\", \"phone_code\": \"\\\"1 664\\\"\"},\r\n {\"nombre\": \"\\\"Mozambique\\\"\", \"name\": \"\\\"Mozambique\\\"\", \"nom\": \"\\\"Mozambique\\\"\", \"iso2\": \"\\\"MZ\\\"\", \"iso3\": \"\\\"MOZ\\\"\", \"phone_code\": \"\\\"258\\\"\"},\r\n {\"nombre\": \"\\\"Namibia\\\"\", \"name\": \"\\\"Namibia\\\"\", \"nom\": \"\\\"Namibie\\\"\", \"iso2\": \"\\\"NA\\\"\", \"iso3\": \"\\\"NAM\\\"\", \"phone_code\": \"\\\"264\\\"\"},\r\n {\"nombre\": \"\\\"Nauru\\\"\", \"name\": \"\\\"Nauru\\\"\", \"nom\": \"\\\"Nauru\\\"\", \"iso2\": \"\\\"NR\\\"\", \"iso3\": \"\\\"NRU\\\"\", \"phone_code\": \"\\\"674\\\"\"},\r\n {\"nombre\": \"\\\"Nepal\\\"\", \"name\": \"\\\"Nepal\\\"\", \"nom\": \"\\\"Népal\\\"\", \"iso2\": \"\\\"NP\\\"\", \"iso3\": \"\\\"NPL\\\"\", \"phone_code\": \"\\\"977\\\"\"},\r\n {\"nombre\": \"\\\"Nicaragua\\\"\", \"name\": \"\\\"Nicaragua\\\"\", \"nom\": \"\\\"Nicaragua\\\"\", \"iso2\": \"\\\"NI\\\"\", \"iso3\": \"\\\"NIC\\\"\", \"phone_code\": \"\\\"505\\\"\"},\r\n {\"nombre\": \"\\\"Niger\\\"\", \"name\": \"\\\"Niger\\\"\", \"nom\": \"\\\"Niger\\\"\", \"iso2\": \"\\\"NE\\\"\", \"iso3\": \"\\\"NER\\\"\", \"phone_code\": \"\\\"227\\\"\"},\r\n {\"nombre\": \"\\\"Nigeria\\\"\", \"name\": \"\\\"Nigeria\\\"\", \"nom\": \"\\\"Nigeria\\\"\", \"iso2\": \"\\\"NG\\\"\", \"iso3\": \"\\\"NGA\\\"\", \"phone_code\": \"\\\"234\\\"\"},\r\n {\"nombre\": \"\\\"Niue\\\"\", \"name\": \"\\\"Niue\\\"\", \"nom\": \"\\\"Niou\\\"\", \"iso2\": \"\\\"NU\\\"\", \"iso3\": \"\\\"NIU\\\"\", \"phone_code\": \"\\\"683\\\"\"},\r\n {\"nombre\": \"\\\"Noruega\\\"\", \"name\": \"\\\"Norway\\\"\", \"nom\": \"\\\"Norvège\\\"\", \"iso2\": \"\\\"NO\\\"\", \"iso3\": \"\\\"NOR\\\"\", \"phone_code\": \"\\\"47\\\"\"},\r\n {\"nombre\": \"\\\"Nueva Caledonia\\\"\", \"name\": \"\\\"New Caledonia\\\"\", \"nom\": \"\\\"Nouvelle-Calédonie\\\"\", \"iso2\": \"\\\"NC\\\"\", \"iso3\": \"\\\"NCL\\\"\", \"phone_code\": \"\\\"687\\\"\"},\r\n {\"nombre\": \"\\\"Nueva Zelanda\\\"\", \"name\": \"\\\"New Zealand\\\"\", \"nom\": \"\\\"Nouvelle-Zélande\\\"\", \"iso2\": \"\\\"NZ\\\"\", \"iso3\": \"\\\"NZL\\\"\", \"phone_code\": \"\\\"64\\\"\"},\r\n {\"nombre\": \"\\\"Omán\\\"\", \"name\": \"\\\"Oman\\\"\", \"nom\": \"\\\"Oman\\\"\", \"iso2\": \"\\\"OM\\\"\", \"iso3\": \"\\\"OMN\\\"\", \"phone_code\": \"\\\"968\\\"\"},\r\n {\"nombre\": \"\\\"Países Bajos\\\"\", \"name\": \"\\\"Netherlands\\\"\", \"nom\": \"\\\"Pays-Bas\\\"\", \"iso2\": \"\\\"NL\\\"\", \"iso3\": \"\\\"NLD\\\"\", \"phone_code\": \"\\\"31\\\"\"},\r\n {\"nombre\": \"\\\"Pakistán\\\"\", \"name\": \"\\\"Pakistan\\\"\", \"nom\": \"\\\"Pakistan\\\"\", \"iso2\": \"\\\"PK\\\"\", \"iso3\": \"\\\"PAK\\\"\", \"phone_code\": \"\\\"92\\\"\"},\r\n {\"nombre\": \"\\\"Palau\\\"\", \"name\": \"\\\"Palau\\\"\", \"nom\": \"\\\"Palau\\\"\", \"iso2\": \"\\\"PW\\\"\", \"iso3\": \"\\\"PLW\\\"\", \"phone_code\": \"\\\"680\\\"\"},\r\n {\"nombre\": \"\\\"Palestina\\\"\", \"name\": \"\\\"Palestine\\\"\", \"nom\": \"\\\"La Palestine\\\"\", \"iso2\": \"\\\"PS\\\"\", \"iso3\": \"\\\"PSE\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Panamá\\\"\", \"name\": \"\\\"Panama\\\"\", \"nom\": \"\\\"Panama\\\"\", \"iso2\": \"\\\"PA\\\"\", \"iso3\": \"\\\"PAN\\\"\", \"phone_code\": \"\\\"507\\\"\"},\r\n {\"nombre\": \"\\\"Papúa Nueva Guinea\\\"\", \"name\": \"\\\"Papua New Guinea\\\"\", \"nom\": \"\\\"Papouasie-Nouvelle-Guinée\\\"\", \"iso2\": \"\\\"PG\\\"\", \"iso3\": \"\\\"PNG\\\"\", \"phone_code\": \"\\\"675\\\"\"},\r\n {\"nombre\": \"\\\"Paraguay\\\"\", \"name\": \"\\\"Paraguay\\\"\", \"nom\": \"\\\"Paraguay\\\"\", \"iso2\": \"\\\"PY\\\"\", \"iso3\": \"\\\"PRY\\\"\", \"phone_code\": \"\\\"595\\\"\"},\r\n {\"nombre\": \"\\\"Perú\\\"\", \"name\": \"\\\"Peru\\\"\", \"nom\": \"\\\"Pérou\\\"\", \"iso2\": \"\\\"PE\\\"\", \"iso3\": \"\\\"PER\\\"\", \"phone_code\": \"\\\"51\\\"\"},\r\n {\"nombre\": \"\\\"Polinesia Francesa\\\"\", \"name\": \"\\\"French Polynesia\\\"\", \"nom\": \"\\\"Polynésie française\\\"\", \"iso2\": \"\\\"PF\\\"\", \"iso3\": \"\\\"PYF\\\"\", \"phone_code\": \"\\\"689\\\"\"},\r\n {\"nombre\": \"\\\"Polonia\\\"\", \"name\": \"\\\"Poland\\\"\", \"nom\": \"\\\"Pologne\\\"\", \"iso2\": \"\\\"PL\\\"\", \"iso3\": \"\\\"POL\\\"\", \"phone_code\": \"\\\"48\\\"\"},\r\n {\"nombre\": \"\\\"Portugal\\\"\", \"name\": \"\\\"Portugal\\\"\", \"nom\": \"\\\"Portugal\\\"\", \"iso2\": \"\\\"PT\\\"\", \"iso3\": \"\\\"PRT\\\"\", \"phone_code\": \"\\\"351\\\"\"},\r\n {\"nombre\": \"\\\"Puerto Rico\\\"\", \"name\": \"\\\"Puerto Rico\\\"\", \"nom\": \"\\\"Porto Rico\\\"\", \"iso2\": \"\\\"PR\\\"\", \"iso3\": \"\\\"PRI\\\"\", \"phone_code\": \"\\\"1\\\"\"},\r\n {\"nombre\": \"\\\"Qatar\\\"\", \"name\": \"\\\"Qatar\\\"\", \"nom\": \"\\\"Qatar\\\"\", \"iso2\": \"\\\"QA\\\"\", \"iso3\": \"\\\"QAT\\\"\", \"phone_code\": \"\\\"974\\\"\"},\r\n {\"nombre\": \"\\\"Reino Unido\\\"\", \"name\": \"\\\"United Kingdom\\\"\", \"nom\": \"\\\"Royaume-Uni\\\"\", \"iso2\": \"\\\"GB\\\"\", \"iso3\": \"\\\"GBR\\\"\", \"phone_code\": \"\\\"44\\\"\"},\r\n {\"nombre\": \"\\\"República Centroafricana\\\"\", \"name\": \"\\\"Central African Republic\\\"\", \"nom\": \"\\\"République Centrafricaine\\\"\", \"iso2\": \"\\\"CF\\\"\", \"iso3\": \"\\\"CAF\\\"\", \"phone_code\": \"\\\"236\\\"\"},\r\n {\"nombre\": \"\\\"República Checa\\\"\", \"name\": \"\\\"Czech Republic\\\"\", \"nom\": \"\\\"République Tchèque\\\"\", \"iso2\": \"\\\"CZ\\\"\", \"iso3\": \"\\\"CZE\\\"\", \"phone_code\": \"\\\"420\\\"\"},\r\n {\"nombre\": \"\\\"República Dominicana\\\"\", \"name\": \"\\\"Dominican Republic\\\"\", \"nom\": \"\\\"République Dominicaine\\\"\", \"iso2\": \"\\\"DO\\\"\", \"iso3\": \"\\\"DOM\\\"\", \"phone_code\": \"\\\"1 809\\\"\"},\r\n {\"nombre\": \"\\\"Reunión\\\"\", \"name\": \"\\\"Réunion\\\"\", \"nom\": \"\\\"Réunion\\\"\", \"iso2\": \"\\\"RE\\\"\", \"iso3\": \"\\\"REU\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Ruanda\\\"\", \"name\": \"\\\"Rwanda\\\"\", \"nom\": \"\\\"Rwanda\\\"\", \"iso2\": \"\\\"RW\\\"\", \"iso3\": \"\\\"RWA\\\"\", \"phone_code\": \"\\\"250\\\"\"},\r\n {\"nombre\": \"\\\"Rumanía\\\"\", \"name\": \"\\\"Romania\\\"\", \"nom\": \"\\\"Roumanie\\\"\", \"iso2\": \"\\\"RO\\\"\", \"iso3\": \"\\\"ROU\\\"\", \"phone_code\": \"\\\"40\\\"\"},\r\n {\"nombre\": \"\\\"Rusia\\\"\", \"name\": \"\\\"Russia\\\"\", \"nom\": \"\\\"La Russie\\\"\", \"iso2\": \"\\\"RU\\\"\", \"iso3\": \"\\\"RUS\\\"\", \"phone_code\": \"\\\"7\\\"\"},\r\n {\"nombre\": \"\\\"Sahara Occidental\\\"\", \"name\": \"\\\"Western Sahara\\\"\", \"nom\": \"\\\"Sahara Occidental\\\"\", \"iso2\": \"\\\"EH\\\"\", \"iso3\": \"\\\"ESH\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Samoa\\\"\", \"name\": \"\\\"Samoa\\\"\", \"nom\": \"\\\"Samoa\\\"\", \"iso2\": \"\\\"WS\\\"\", \"iso3\": \"\\\"WSM\\\"\", \"phone_code\": \"\\\"685\\\"\"},\r\n {\"nombre\": \"\\\"Samoa Americana\\\"\", \"name\": \"\\\"American Samoa\\\"\", \"nom\": \"\\\"Les Samoa américaines\\\"\", \"iso2\": \"\\\"AS\\\"\", \"iso3\": \"\\\"ASM\\\"\", \"phone_code\": \"\\\"1 684\\\"\"},\r\n {\"nombre\": \"\\\"San Bartolomé\\\"\", \"name\": \"\\\"Saint Barthélemy\\\"\", \"nom\": \"\\\"Saint-Barthélemy\\\"\", \"iso2\": \"\\\"BL\\\"\", \"iso3\": \"\\\"BLM\\\"\", \"phone_code\": \"\\\"590\\\"\"},\r\n {\"nombre\": \"\\\"San Cristóbal y Nieves\\\"\", \"name\": \"\\\"Saint Kitts and Nevis\\\"\", \"nom\": \"\\\"Saint Kitts et Nevis\\\"\", \"iso2\": \"\\\"KN\\\"\", \"iso3\": \"\\\"KNA\\\"\", \"phone_code\": \"\\\"1 869\\\"\"},\r\n {\"nombre\": \"\\\"San Marino\\\"\", \"name\": \"\\\"San Marino\\\"\", \"nom\": \"\\\"San Marino\\\"\", \"iso2\": \"\\\"SM\\\"\", \"iso3\": \"\\\"SMR\\\"\", \"phone_code\": \"\\\"378\\\"\"},\r\n {\"nombre\": \"\\\"San Martín (Francia)\\\"\", \"name\": \"\\\"Saint Martin (French part)\\\"\", \"nom\": \"\\\"Saint-Martin (partie française)\\\"\", \"iso2\": \"\\\"MF\\\"\", \"iso3\": \"\\\"MAF\\\"\", \"phone_code\": \"\\\"1 599\\\"\"},\r\n {\"nombre\": \"\\\"San Pedro y Miquelón\\\"\", \"name\": \"\\\"Saint Pierre and Miquelon\\\"\", \"nom\": \"\\\"Saint-Pierre-et-Miquelon\\\"\", \"iso2\": \"\\\"PM\\\"\", \"iso3\": \"\\\"SPM\\\"\", \"phone_code\": \"\\\"508\\\"\"},\r\n {\"nombre\": \"\\\"San Vicente y las Granadinas\\\"\", \"name\": \"\\\"Saint Vincent and the Grenadines\\\"\", \"nom\": \"\\\"Saint-Vincent et Grenadines\\\"\", \"iso2\": \"\\\"VC\\\"\", \"iso3\": \"\\\"VCT\\\"\", \"phone_code\": \"\\\"1 784\\\"\"},\r\n {\"nombre\": \"\\\"Santa Elena\\\"\", \"name\": \"\\\"Ascensión y Tristán de Acuña\\\"\", \"nom\": \"\\\"Ascensión y Tristan de Acuña\\\"\", \"iso2\": \"\\\"SH\\\"\", \"iso3\": \"\\\"SHN\\\"\", \"phone_code\": \"\\\"290\\\"\"},\r\n {\"nombre\": \"\\\"Santa Lucía\\\"\", \"name\": \"\\\"Saint Lucia\\\"\", \"nom\": \"\\\"Sainte-Lucie\\\"\", \"iso2\": \"\\\"LC\\\"\", \"iso3\": \"\\\"LCA\\\"\", \"phone_code\": \"\\\"1 758\\\"\"},\r\n {\"nombre\": \"\\\"Santo Tomé y Príncipe\\\"\", \"name\": \"\\\"Sao Tome and Principe\\\"\", \"nom\": \"\\\"Sao Tomé et Principe\\\"\", \"iso2\": \"\\\"ST\\\"\", \"iso3\": \"\\\"STP\\\"\", \"phone_code\": \"\\\"239\\\"\"},\r\n {\"nombre\": \"\\\"Senegal\\\"\", \"name\": \"\\\"Senegal\\\"\", \"nom\": \"\\\"Sénégal\\\"\", \"iso2\": \"\\\"SN\\\"\", \"iso3\": \"\\\"SEN\\\"\", \"phone_code\": \"\\\"221\\\"\"},\r\n {\"nombre\": \"\\\"Serbia\\\"\", \"name\": \"\\\"Serbia\\\"\", \"nom\": \"\\\"Serbie\\\"\", \"iso2\": \"\\\"RS\\\"\", \"iso3\": \"\\\"SRB\\\"\", \"phone_code\": \"\\\"381\\\"\"},\r\n {\"nombre\": \"\\\"Seychelles\\\"\", \"name\": \"\\\"Seychelles\\\"\", \"nom\": \"\\\"Les Seychelles\\\"\", \"iso2\": \"\\\"SC\\\"\", \"iso3\": \"\\\"SYC\\\"\", \"phone_code\": \"\\\"248\\\"\"},\r\n {\"nombre\": \"\\\"Sierra Leona\\\"\", \"name\": \"\\\"Sierra Leone\\\"\", \"nom\": \"\\\"Sierra Leone\\\"\", \"iso2\": \"\\\"SL\\\"\", \"iso3\": \"\\\"SLE\\\"\", \"phone_code\": \"\\\"232\\\"\"},\r\n {\"nombre\": \"\\\"Singapur\\\"\", \"name\": \"\\\"Singapore\\\"\", \"nom\": \"\\\"Singapour\\\"\", \"iso2\": \"\\\"SG\\\"\", \"iso3\": \"\\\"SGP\\\"\", \"phone_code\": \"\\\"65\\\"\"},\r\n {\"nombre\": \"\\\"Siria\\\"\", \"name\": \"\\\"Syria\\\"\", \"nom\": \"\\\"Syrie\\\"\", \"iso2\": \"\\\"SY\\\"\", \"iso3\": \"\\\"SYR\\\"\", \"phone_code\": \"\\\"963\\\"\"},\r\n {\"nombre\": \"\\\"Somalia\\\"\", \"name\": \"\\\"Somalia\\\"\", \"nom\": \"\\\"Somalie\\\"\", \"iso2\": \"\\\"SO\\\"\", \"iso3\": \"\\\"SOM\\\"\", \"phone_code\": \"\\\"252\\\"\"},\r\n {\"nombre\": \"\\\"Sri lanka\\\"\", \"name\": \"\\\"Sri Lanka\\\"\", \"nom\": \"\\\"Sri Lanka\\\"\", \"iso2\": \"\\\"LK\\\"\", \"iso3\": \"\\\"LKA\\\"\", \"phone_code\": \"\\\"94\\\"\"},\r\n {\"nombre\": \"\\\"Sudáfrica\\\"\", \"name\": \"\\\"South Africa\\\"\", \"nom\": \"\\\"Afrique du Sud\\\"\", \"iso2\": \"\\\"ZA\\\"\", \"iso3\": \"\\\"ZAF\\\"\", \"phone_code\": \"\\\"27\\\"\"},\r\n {\"nombre\": \"\\\"Sudán\\\"\", \"name\": \"\\\"Sudan\\\"\", \"nom\": \"\\\"Soudan\\\"\", \"iso2\": \"\\\"SD\\\"\", \"iso3\": \"\\\"SDN\\\"\", \"phone_code\": \"\\\"249\\\"\"},\r\n {\"nombre\": \"\\\"Suecia\\\"\", \"name\": \"\\\"Sweden\\\"\", \"nom\": \"\\\"Suède\\\"\", \"iso2\": \"\\\"SE\\\"\", \"iso3\": \"\\\"SWE\\\"\", \"phone_code\": \"\\\"46\\\"\"},\r\n {\"nombre\": \"\\\"Suiza\\\"\", \"name\": \"\\\"Switzerland\\\"\", \"nom\": \"\\\"Suisse\\\"\", \"iso2\": \"\\\"CH\\\"\", \"iso3\": \"\\\"CHE\\\"\", \"phone_code\": \"\\\"41\\\"\"},\r\n {\"nombre\": \"\\\"Surinám\\\"\", \"name\": \"\\\"Suriname\\\"\", \"nom\": \"\\\"Surinam\\\"\", \"iso2\": \"\\\"SR\\\"\", \"iso3\": \"\\\"SUR\\\"\", \"phone_code\": \"\\\"597\\\"\"},\r\n {\"nombre\": \"\\\"Svalbard y Jan Mayen\\\"\", \"name\": \"\\\"Svalbard and Jan Mayen\\\"\", \"nom\": \"\\\"Svalbard et Jan Mayen\\\"\", \"iso2\": \"\\\"SJ\\\"\", \"iso3\": \"\\\"SJM\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Swazilandia\\\"\", \"name\": \"\\\"Swaziland\\\"\", \"nom\": \"\\\"Swaziland\\\"\", \"iso2\": \"\\\"SZ\\\"\", \"iso3\": \"\\\"SWZ\\\"\", \"phone_code\": \"\\\"268\\\"\"},\r\n {\"nombre\": \"\\\"Tadjikistán\\\"\", \"name\": \"\\\"Tajikistan\\\"\", \"nom\": \"\\\"Le Tadjikistan\\\"\", \"iso2\": \"\\\"TJ\\\"\", \"iso3\": \"\\\"TJK\\\"\", \"phone_code\": \"\\\"992\\\"\"},\r\n {\"nombre\": \"\\\"Tailandia\\\"\", \"name\": \"\\\"Thailand\\\"\", \"nom\": \"\\\"Thaïlande\\\"\", \"iso2\": \"\\\"TH\\\"\", \"iso3\": \"\\\"THA\\\"\", \"phone_code\": \"\\\"66\\\"\"},\r\n {\"nombre\": \"\\\"Taiwán\\\"\", \"name\": \"\\\"Taiwan\\\"\", \"nom\": \"\\\"Taiwan\\\"\", \"iso2\": \"\\\"TW\\\"\", \"iso3\": \"\\\"TWN\\\"\", \"phone_code\": \"\\\"886\\\"\"},\r\n {\"nombre\": \"\\\"Tanzania\\\"\", \"name\": \"\\\"Tanzania\\\"\", \"nom\": \"\\\"Tanzanie\\\"\", \"iso2\": \"\\\"TZ\\\"\", \"iso3\": \"\\\"TZA\\\"\", \"phone_code\": \"\\\"255\\\"\"},\r\n {\"nombre\": \"\\\"Territorio Británico del Océano Índico\\\"\", \"name\": \"\\\"British Indian Ocean Territory\\\"\", \"nom\": \"\\\"Territoire britannique de l'océan Indien\\\"\", \"iso2\": \"\\\"IO\\\"\", \"iso3\": \"\\\"IOT\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Territorios Australes y Antárticas Franceses\\\"\", \"name\": \"\\\"French Southern Territories\\\"\", \"nom\": \"\\\"Terres australes françaises\\\"\", \"iso2\": \"\\\"TF\\\"\", \"iso3\": \"\\\"ATF\\\"\", \"phone_code\": \"\\\"\\\"\"},\r\n {\"nombre\": \"\\\"Timor Oriental\\\"\", \"name\": \"\\\"East Timor\\\"\", \"nom\": \"\\\"Timor-Oriental\\\"\", \"iso2\": \"\\\"TL\\\"\", \"iso3\": \"\\\"TLS\\\"\", \"phone_code\": \"\\\"670\\\"\"},\r\n {\"nombre\": \"\\\"Togo\\\"\", \"name\": \"\\\"Togo\\\"\", \"nom\": \"\\\"Togo\\\"\", \"iso2\": \"\\\"TG\\\"\", \"iso3\": \"\\\"TGO\\\"\", \"phone_code\": \"\\\"228\\\"\"},\r\n {\"nombre\": \"\\\"Tokelau\\\"\", \"name\": \"\\\"Tokelau\\\"\", \"nom\": \"\\\"Tokélaou\\\"\", \"iso2\": \"\\\"TK\\\"\", \"iso3\": \"\\\"TKL\\\"\", \"phone_code\": \"\\\"690\\\"\"},\r\n {\"nombre\": \"\\\"Tonga\\\"\", \"name\": \"\\\"Tonga\\\"\", \"nom\": \"\\\"Tonga\\\"\", \"iso2\": \"\\\"TO\\\"\", \"iso3\": \"\\\"TON\\\"\", \"phone_code\": \"\\\"676\\\"\"},\r\n {\"nombre\": \"\\\"Trinidad y Tobago\\\"\", \"name\": \"\\\"Trinidad and Tobago\\\"\", \"nom\": \"\\\"Trinidad et Tobago\\\"\", \"iso2\": \"\\\"TT\\\"\", \"iso3\": \"\\\"TTO\\\"\", \"phone_code\": \"\\\"1 868\\\"\"},\r\n {\"nombre\": \"\\\"Tunez\\\"\", \"name\": \"\\\"Tunisia\\\"\", \"nom\": \"\\\"Tunisie\\\"\", \"iso2\": \"\\\"TN\\\"\", \"iso3\": \"\\\"TUN\\\"\", \"phone_code\": \"\\\"216\\\"\"},\r\n {\"nombre\": \"\\\"Turkmenistán\\\"\", \"name\": \"\\\"Turkmenistan\\\"\", \"nom\": \"\\\"Le Turkménistan\\\"\", \"iso2\": \"\\\"TM\\\"\", \"iso3\": \"\\\"TKM\\\"\", \"phone_code\": \"\\\"993\\\"\"},\r\n {\"nombre\": \"\\\"Turquía\\\"\", \"name\": \"\\\"Turkey\\\"\", \"nom\": \"\\\"Turquie\\\"\", \"iso2\": \"\\\"TR\\\"\", \"iso3\": \"\\\"TUR\\\"\", \"phone_code\": \"\\\"90\\\"\"},\r\n {\"nombre\": \"\\\"Tuvalu\\\"\", \"name\": \"\\\"Tuvalu\\\"\", \"nom\": \"\\\"Tuvalu\\\"\", \"iso2\": \"\\\"TV\\\"\", \"iso3\": \"\\\"TUV\\\"\", \"phone_code\": \"\\\"688\\\"\"},\r\n {\"nombre\": \"\\\"Ucrania\\\"\", \"name\": \"\\\"Ukraine\\\"\", \"nom\": \"\\\"L'Ukraine\\\"\", \"iso2\": \"\\\"UA\\\"\", \"iso3\": \"\\\"UKR\\\"\", \"phone_code\": \"\\\"380\\\"\"},\r\n {\"nombre\": \"\\\"Uganda\\\"\", \"name\": \"\\\"Uganda\\\"\", \"nom\": \"\\\"Ouganda\\\"\", \"iso2\": \"\\\"UG\\\"\", \"iso3\": \"\\\"UGA\\\"\", \"phone_code\": \"\\\"256\\\"\"},\r\n {\"nombre\": \"\\\"Uruguay\\\"\", \"name\": \"\\\"Uruguay\\\"\", \"nom\": \"\\\"Uruguay\\\"\", \"iso2\": \"\\\"UY\\\"\", \"iso3\": \"\\\"URY\\\"\", \"phone_code\": \"\\\"598\\\"\"},\r\n {\"nombre\": \"\\\"Uzbekistán\\\"\", \"name\": \"\\\"Uzbekistan\\\"\", \"nom\": \"\\\"L'Ouzbékistan\\\"\", \"iso2\": \"\\\"UZ\\\"\", \"iso3\": \"\\\"UZB\\\"\", \"phone_code\": \"\\\"998\\\"\"},\r\n {\"nombre\": \"\\\"Vanuatu\\\"\", \"name\": \"\\\"Vanuatu\\\"\", \"nom\": \"\\\"Vanuatu\\\"\", \"iso2\": \"\\\"VU\\\"\", \"iso3\": \"\\\"VUT\\\"\", \"phone_code\": \"\\\"678\\\"\"},\r\n {\"nombre\": \"\\\"Venezuela\\\"\", \"name\": \"\\\"Venezuela\\\"\", \"nom\": \"\\\"Venezuela\\\"\", \"iso2\": \"\\\"VE\\\"\", \"iso3\": \"\\\"VEN\\\"\", \"phone_code\": \"\\\"58\\\"\"},\r\n {\"nombre\": \"\\\"Vietnam\\\"\", \"name\": \"\\\"Vietnam\\\"\", \"nom\": \"\\\"Vietnam\\\"\", \"iso2\": \"\\\"VN\\\"\", \"iso3\": \"\\\"VNM\\\"\", \"phone_code\": \"\\\"84\\\"\"},\r\n {\"nombre\": \"\\\"Wallis y Futuna\\\"\", \"name\": \"\\\"Wallis and Futuna\\\"\", \"nom\": \"\\\"Wallis et Futuna\\\"\", \"iso2\": \"\\\"WF\\\"\", \"iso3\": \"\\\"WLF\\\"\", \"phone_code\": \"\\\"681\\\"\"},\r\n {\"nombre\": \"\\\"Yemen\\\"\", \"name\": \"\\\"Yemen\\\"\", \"nom\": \"\\\"Yémen\\\"\", \"iso2\": \"\\\"YE\\\"\", \"iso3\": \"\\\"YEM\\\"\", \"phone_code\": \"\\\"967\\\"\"},\r\n {\"nombre\": \"\\\"Yibuti\\\"\", \"name\": \"\\\"Djibouti\\\"\", \"nom\": \"\\\"Djibouti\\\"\", \"iso2\": \"\\\"DJ\\\"\", \"iso3\": \"\\\"DJI\\\"\", \"phone_code\": \"\\\"253\\\"\"},\r\n {\"nombre\": \"\\\"Zambia\\\"\", \"name\": \"\\\"Zambia\\\"\", \"nom\": \"\\\"Zambie\\\"\", \"iso2\": \"\\\"ZM\\\"\", \"iso3\": \"\\\"ZMB\\\"\", \"phone_code\": \"\\\"260\\\"\"},\r\n {\"nombre\": \"\\\"Zimbabue\\\"\", \"name\": \"\\\"Zimbabwe\\\"\", \"nom\": \"\\\"Zimbabwe\\\"\", \"iso2\": \"\\\"ZW\\\"\", \"iso3\": \"\\\"ZWE\\\"\", \"phone_code\": \"\\\"263\\\"\"}\r\n];\r\n\r\nexport const frequentCountries = [\r\n {\"nombre\": \"\\\"Estados Unidos de América\\\"\", \"name\": \"\\\"United States of America\\\"\", \"nom\": \"\\\"États-Unis d'Amérique\\\"\", \"iso2\": \"\\\"US\\\"\", \"iso3\": \"\\\"USA\\\"\", \"phone_code\": \"\\\"1\\\"\"},\r\n {\"nombre\": \"\\\"Australia\\\"\", \"name\": \"\\\"Australia\\\"\", \"nom\": \"\\\"Australie\\\"\", \"iso2\": \"\\\"AU\\\"\", \"iso3\": \"\\\"AUS\\\"\", \"phone_code\": \"\\\"61\\\"\"},\r\n {\"nombre\": \"\\\"Canadá\\\"\", \"name\": \"\\\"Canada\\\"\", \"nom\": \"\\\"Canada\\\"\", \"iso2\": \"\\\"CA\\\"\", \"iso3\": \"\\\"CAN\\\"\", \"phone_code\": \"\\\"1\\\"\"},\r\n {\"nombre\": \"\\\"España\\\"\", \"name\": \"\\\"Spain\\\"\", \"nom\": \"\\\"Espagne\\\"\", \"iso2\": \"\\\"ES\\\"\", \"iso3\": \"\\\"ESP\\\"\", \"phone_code\": \"\\\"34\\\"\"},\r\n {\"nombre\": \"\\\"Chile\\\"\", \"name\": \"\\\"Chile\\\"\", \"nom\": \"\\\"Chili\\\"\", \"iso2\": \"\\\"CL\\\"\", \"iso3\": \"\\\"CHL\\\"\", \"phone_code\": \"\\\"56\\\"\"},\r\n {\"nombre\": \"\\\"Reino Unido\\\"\", \"name\": \"\\\"United Kingdom\\\"\", \"nom\": \"\\\"Royaume-Uni\\\"\", \"iso2\": \"\\\"GB\\\"\", \"iso3\": \"\\\"GBR\\\"\", \"phone_code\": \"\\\"44\\\"\"},\r\n];","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Button, Form, Icon, Input, Checkbox, Select, Row, Col, Popover } from \"antd\";\r\nimport { withRouter, Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport ReactPhoneInput from 'react-phone-input-2';\r\n\r\n//Subcomponents\r\nimport MeetingRequestModal from './meetingRequestModal';\r\nimport routes from '../../../../lib/generalUtils/routes';\r\n\r\nimport logoWhite from '../../../../assets/logoWhite.png';\r\n\r\n//Actions\r\nimport { requestMeeting } from \"../../../../store/redux/actions/partner/partnerActions\";\r\n\r\n//Styles\r\nimport 'react-phone-input-2/lib/style.css'\r\nimport '../../../../styles/partner/meetingRequest/meetingRequest.css';\r\nimport {countriesList, frequentCountries} from \"./countriesList\";\r\n\r\n//Constants\r\nconst FormItem = Form.Item;\r\nconst { Option, OptGroup } = Select;\r\n\r\nconst policiesUrl = \"https://casapropiacolombia.com/politicas\";\r\nconst termsUrl = \"https://casapropiacolombia.com/es/terminos-condiciones\";\r\n\r\nconst gutter = { xs: 4, sm: 8, lg: 12, xl: 16 };\r\n\r\nfunction textNormalize(text) {\r\n return text.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n}\r\n\r\nclass MeetingRequestWeb extends Component {\r\n constructor (props){\r\n\r\n super(props);\r\n\r\n this.state = {\r\n partner: {\r\n names: null,\r\n lastNames: null,\r\n email: null,\r\n phone: '',\r\n adviserId: 0,\r\n cities: [],\r\n services: [],\r\n },\r\n countryCode: null,\r\n advisorsEnabled: [],\r\n citiesEnabled: false,\r\n meetingRequestModalVisible: false,\r\n sendResponse: null,\r\n advanced: false,\r\n formError: false\r\n };\r\n\r\n this.onRequestMeeting = this.onRequestMeeting.bind(this);\r\n this.askForMeeting = this.askForMeeting.bind(this);\r\n this.scheduleMeeting = this.scheduleMeeting.bind(this);\r\n this.onChangeCountry = this.onChangeCountry.bind(this);\r\n };\r\n componentDidUpdate(prevProps, prevState, snapshot){\r\n if(prevProps.countryCodeSelected !== this.props.countryCodeSelected){\r\n this.setState({countryCode: this.props.countryCodeSelected.replace(/\"/g, \"\").toLowerCase()});\r\n }\r\n \r\n /* ------------ Chat Zoho --------------------- */\r\n let scriptElement = document.getElementsByClassName('zsiq_floatmain');\r\n let existZohoChat = scriptElement !== undefined && scriptElement.length > 0;\r\n if(existZohoChat){\r\n for (let i = 0; i < scriptElement.length; i++){\r\n document.getElementsByClassName('zsiq_floatmain')[i].style.display = \"none\";\r\n }\r\n }\r\n }\r\n componentWillUnmount(){\r\n this.setState({\r\n sendResponse: null,\r\n scheduleMeet: null\r\n });\r\n };\r\n \r\n hideMeetingRequestModal = () => {\r\n this.setState({\r\n meetingRequestModalVisible: false\r\n });\r\n };\r\n onChangeCountry = (value) => {\r\n this.setState({ countryCode: value.replace(/\"/g, \"\").toLowerCase() });\r\n }\r\n\r\n onChangeService = (service) => {\r\n this.setState({ citiesEnabled: false });\r\n this.props.form.setFieldsValue({ city: null, adviser: 0 });\r\n\r\n let advisorsEnabled = [];\r\n\r\n if (service == null) {\r\n this.props.form.setFieldsValue({ city: null });\r\n this.setState({ advisorsEnabled });\r\n return;\r\n }\r\n\r\n let advisers = this.props.advisers;\r\n let serviceId = parseInt(service.split(\":\")[1]);\r\n\r\n for (let k = 0; k < advisers.length; k++) {\r\n let adviserHasService = advisers[k].services.includes(serviceId);\r\n let adviserIsDuplicated = advisorsEnabled.includes(advisers[k]);\r\n\r\n if (adviserHasService && !adviserIsDuplicated) {\r\n advisorsEnabled.push(advisers[k]);\r\n }\r\n }\r\n\r\n this.setState({\r\n advisorsEnabled,\r\n citiesEnabled: serviceId === 1\r\n });\r\n };\r\n\r\n onRequestMeeting = () => {\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n\r\n if (err) {\r\n this.setState({ formError: true });\r\n return;\r\n }\r\n\r\n this.setState({\r\n meetingRequestModalVisible: true,\r\n formError: false\r\n });\r\n });\r\n };\r\n\r\n askForMeeting = () => {\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n if (err) {\r\n this.setState({ formError: true, meetingRequestModalVisible: false });\r\n return;\r\n }\r\n\r\n this.setState({ sendResponse: true, formError: false });\r\n const servicesList = this.props.services;\r\n\r\n let { names, lastNames, email, service, adviser, phone, city } = values;\r\n\r\n adviser = adviser == null ? 0 : adviser;\r\n let cities = this.props.getCitiesObject(city);\r\n let services = service != null\r\n ? [parseInt(service.split(':')[1])]\r\n : [servicesList[0].id];\r\n\r\n let externalPartner = localStorage.person_id !== undefined\r\n ? localStorage.person_id\r\n : 0;\r\n\r\n let channel = this.props.channel;\r\n let matchChannel = this.props.match.params.channel;\r\n\r\n let data = {\r\n name: names, lastName: lastNames, email: email, phone: phone,\r\n servicesIds: services, adviserId: adviser, citiesOfInterest: cities,\r\n channel: this.props.defineChannel(channel, matchChannel),\r\n externalPartnerId: externalPartner,\r\n };\r\n\r\n this.props.saveInSessionStore(servicesList, names, lastNames, email, phone, services,\r\n adviser, cities, this.props.whatsappNumber);\r\n this.props.requestMeeting(data);\r\n });\r\n };\r\n\r\n scheduleMeeting = () => {\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n\r\n if (err) {\r\n this.setState({ formError: true });\r\n return;\r\n }\r\n\r\n const servicesList = this.props.services;\r\n let { names, lastNames, service, email, phone, adviser, city } = values;\r\n\r\n adviser = adviser == null ? 0 : adviser;\r\n let cities = this.props.getCitiesObject(city);\r\n let services = service != null\r\n ? [parseInt(service.split(':')[1])]\r\n : [servicesList[0].id];\r\n\r\n this.props.saveInSessionStore(servicesList, names, lastNames, email, phone,\r\n services, adviser, cities, this.props.whatsappNumber);\r\n\r\n this.setState({\r\n partner: {\r\n names: names,\r\n lastNames: lastNames,\r\n email: email,\r\n phone: phone,\r\n adviserId: adviser,\r\n cities: cities,\r\n services: services\r\n },\r\n scheduleMeet: true,\r\n formError: false\r\n });\r\n\r\n });\r\n };\r\n\r\n advancedClick = () => {\r\n var advanced = !this.state.advanced;\r\n this.setState({ advanced });\r\n };\r\n\r\n termsIsAccepted = (rule, value, callback) => {\r\n if (!value) {\r\n callback(\"Por favor acepte los Términos y Condiciones.\");\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n render () {\r\n const { getFieldDecorator } = this.props.form;\r\n let { services, cities, requestMeetingResponse, requestError, onClickLogout, modeOfContact,\r\n meetingFormInfo, scheduleFormInfo, countryCodeSelected } = this.props;\r\n\r\n let {\r\n citiesEnabled, sendResponse, scheduleMeet, meetingRequestModalVisible,\r\n advisorsEnabled, advanced, formError, countryCode\r\n } = this.state;\r\n\r\n let homeInfoColClass = advanced || formError\r\n ? citiesEnabled ? \"home-info-col advanced cities\" : \"home-info-col advanced\"\r\n : \"home-info-col\";\r\n\r\n let homeInfoContainerClass = advanced || formError\r\n ? citiesEnabled ? \"home-info-container advanced cities\" : \"home-info-container advanced\"\r\n : \"home-info-container\";\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\n background\r\n

SOMOS EXPERTOS

\r\n

\r\n EN BRINDAR ASESORÍA INTEGRAL\r\n

\r\n

A COLOMBIANOS

\r\n

Y EXTRANJEROS RESIDENTES EN EL EXTERIOR

\r\n

PARA LA VENTA Y FINANCIACIÓN

\r\n

DE VIVIENDA EN COLOMBIA

\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n {localStorage.user_name &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n
\r\n \r\n Ayuda\r\n \r\n
\r\n\r\n
\r\n

\r\n {modeOfContact === \"schedule\"\r\n ? scheduleFormInfo.title : meetingFormInfo.title\r\n }\r\n

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

\r\n {modeOfContact === \"schedule\"\r\n ? scheduleFormInfo.content : meetingFormInfo.content\r\n }\r\n

\r\n \r\n
\r\n \r\n \r\n \r\n {getFieldDecorator('names',\r\n {\r\n rules: [\r\n { required: true, message: 'Por favor, ingrese su(s) nombre(s).' }\r\n ],\r\n }\r\n )(\r\n }\r\n placeholder=\"Nombres\"/>\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator('lastNames',\r\n {\r\n rules: [\r\n { required: true, message: 'Por favor, ingrese su(s) apellido(s).' }\r\n ],\r\n }\r\n )(\r\n }\r\n placeholder=\"Apellidos\"/>\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {getFieldDecorator('email',\r\n {\r\n rules: [\r\n {\r\n type: 'email',\r\n message: 'Por favor, ingrese un correo electrónico válido.'\r\n },\r\n {\r\n required: true,\r\n message: 'Por favor, ingrese su correo electrónico.'\r\n }\r\n ],\r\n }\r\n )(\r\n }\r\n placeholder=\"Correo electrónico\" type={\"email\"} />\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator('residenceCountry',\r\n { initialValue: countryCodeSelected,\r\n rules: [\r\n {\r\n required: true,\r\n message: 'Por favor, ingrese su país de residencia.'\r\n }\r\n ],\r\n onChange: this.onChangeCountry\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 {getFieldDecorator('phone',\r\n {\r\n rules: [\r\n { required: true, message: 'Por favor, ingrese su Teléfono.' }\r\n ],\r\n }\r\n )(\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator('service',\r\n {\r\n rules: [\r\n { required: true, message: 'Por favor, elija un servicio.' }\r\n ],\r\n onChange: this.onChangeService\r\n }\r\n )(\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n
\r\n
\r\n ¿Ya nos conoce? \r\n this.advancedClick()}>\r\n Avanzado \r\n \r\n
\r\n {advanced &&\r\n
\r\n \r\n \r\n \r\n {getFieldDecorator('adviser',\r\n {\r\n initialValue: \"Cualquier asesor\",\r\n }\r\n )(\r\n \r\n )\r\n }\r\n \r\n \r\n {citiesEnabled &&\r\n \r\n \r\n {getFieldDecorator('city', {})(\r\n \r\n )}\r\n \r\n \r\n }\r\n \r\n
\r\n }\r\n
\r\n \r\n {getFieldDecorator('terms', {\r\n rules: [{ validator: this.termsIsAccepted }],\r\n })(\r\n \r\n \r\n \r\n \r\n Acepto las \r\n \r\n Políticas de uso de tratamientos de datos\r\n \r\n  y \r\n \r\n Términos y Condiciones\r\n \r\n  de Casa Propia Colombia.\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n {modeOfContact\r\n ?\r\n \r\n {modeOfContact === \"videocall\" &&\r\n \r\n \r\n \r\n }\r\n {modeOfContact === \"schedule\" &&\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 \r\n
\r\n
\r\n \r\n
\r\n\r\n {meetingRequestModalVisible &&\r\n \r\n }\r\n\r\n {requestMeetingResponse !== null && sendResponse === true &&\r\n \r\n }\r\n {scheduleMeet &&\r\n \r\n }\r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nlet WrappedHome = Form.create()(MeetingRequestWeb);\r\n\r\nMeetingRequestWeb.propTypes = {\r\n requestError: PropTypes.bool,\r\n requestMeetingResponse: PropTypes.object,\r\n requestMeeting: PropTypes.func,\r\n onClickLogin: PropTypes.func,\r\n onClickLogout: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requestMeetingResponse: state.partner.requestMeetingResponse,\r\n requestError: state.partner.requestError,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n requestMeeting: (data) => dispatch(requestMeeting(data)),\r\n\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(WrappedHome));","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Button, Form, Icon, Input, Select, Row, Col, Popover, Checkbox} from \"antd\";\r\nimport {withRouter, Redirect} from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport ReactPhoneInput from 'react-phone-input-2';\r\n\r\n//Subcomponents\r\nimport MeetingRequestModal from './meetingRequestModal';\r\nimport routes from '../../../../lib/generalUtils/routes';\r\nimport logoWhite from '../../../../assets/logoWhite.png';\r\n\r\n//Actions\r\nimport { requestMeeting } from \"../../../../store/redux/actions/partner/partnerActions\";\r\n\r\n//Styles\r\nimport 'react-phone-input-2/lib/style.css'\r\nimport '../../../../styles/partner/meetingRequest/meetingRequest.css';\r\nimport {countriesList, frequentCountries} from \"./countriesList\";\r\n\r\n//Constants\r\nconst FormItem = Form.Item;\r\nconst { Option, OptGroup } = Select;\r\n\r\nconst policiesUrl = \"https://casapropiacolombia.com/politicas\";\r\nconst termsUrl = \"https://casapropiacolombia.com/es/terminos-condiciones\";\r\n\r\nfunction textNormalize(text) {\r\n return text.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n}\r\n\r\nclass MeetingRequestMobile extends Component{\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n partner: {\r\n names: null,\r\n lastNames: null,\r\n email: null,\r\n phone: '',\r\n adviserId: 0,\r\n cities: [],\r\n services: [],\r\n },\r\n isMounted: false,\r\n countryCode: null,\r\n advisorsEnabled: [],\r\n citiesEnabled: false,\r\n meetingRequestModalVisible: false,\r\n sendResponse: null,\r\n advanced: false,\r\n popOverVisible: null\r\n };\r\n\r\n this.onRequestMeeting = this.onRequestMeeting.bind(this);\r\n this.askForMeeting = this.askForMeeting.bind(this);\r\n this.scheduleMeeting = this.scheduleMeeting.bind(this);\r\n this.onChangeCountry = this.onChangeCountry.bind(this);\r\n };\r\n\r\n hideMeetingRequestModal = () => {\r\n this.setState({\r\n meetingRequestModalVisible: false\r\n });\r\n };\r\n componentDidUpdate(prevProps, prevState, snapshot){\r\n if(prevProps.countryCodeSelected !== this.props.countryCodeSelected){\r\n this.setState({countryCode: this.props.countryCodeSelected.replace(/\"/g, \"\").toLowerCase()});\r\n }\r\n \r\n const userAgent = navigator.userAgent;\r\n let chromeAgent = userAgent.indexOf(\"Chrome\") > -1;\r\n let safariAgent = userAgent.indexOf(\"Safari\") > -1;\r\n if (chromeAgent && safariAgent) safariAgent = false;\r\n let operaAgent = userAgent.indexOf(\"OP\") > -1;\r\n\r\n if(safariAgent || operaAgent){\r\n document.getElementsByTagName(\"body\")[0].classList.add(\"scrollable\");\r\n }\r\n\r\n /* ------------ Chat Zoho --------------------- */\r\n let scriptElement = document.getElementsByClassName('zsiq_floatmain');\r\n let existZohoChat = scriptElement !== undefined && scriptElement.length > 0;\r\n if(existZohoChat){\r\n for (let i = 0; i < scriptElement.length; i++){\r\n document.getElementsByClassName('zsiq_floatmain')[i].style.display = \"none\";\r\n }\r\n }\r\n }\r\n componentWillUnmount(){\r\n this.setState({\r\n sendResponse: null,\r\n scheduleMeet: null\r\n });\r\n document.getElementsByTagName(\"body\")[0].classList.remove(\"scrollable\");\r\n };\r\n\r\n onChangeCountry = (value) => {\r\n this.setState({ countryCode: value.replace(/\"/g, \"\").toLowerCase() });\r\n }\r\n\r\n onChangeService = (service) => {\r\n this.setState({ citiesEnabled: false });\r\n this.props.form.setFieldsValue({ city: null, adviser: 0 });\r\n\r\n let advisorsEnabled = [];\r\n\r\n if (service == null) {\r\n this.props.form.setFieldsValue({ city: null });\r\n this.setState({ advisorsEnabled });\r\n return;\r\n }\r\n\r\n let advisers = this.props.advisers;\r\n let serviceId = parseInt(service.split(\":\")[1]);\r\n\r\n for (let k = 0; k < advisers.length; k++) {\r\n let adviserHasService = advisers[k].services.includes(serviceId);\r\n let adviserIsDuplicated = advisorsEnabled.includes(advisers[k]);\r\n\r\n if (adviserHasService && !adviserIsDuplicated) {\r\n advisorsEnabled.push(advisers[k]);\r\n }\r\n }\r\n\r\n this.setState({\r\n advisorsEnabled,\r\n citiesEnabled: serviceId === 1\r\n });\r\n };\r\n\r\n askForMeeting = () => {\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n if (err) {\r\n this.setState({ meetingRequestModalVisible: false });\r\n return;\r\n }\r\n\r\n this.setState({ sendResponse: true });\r\n const servicesList = this.props.services;\r\n\r\n let { names, lastNames, email, service, adviser, phone, city } = values;\r\n\r\n adviser = adviser == null ? 0 : adviser;\r\n let cities = this.props.getCitiesObject(city);\r\n let services = service != null\r\n ? [parseInt(service.split(':')[1])]\r\n : [servicesList[0].id];\r\n\r\n let externalPartner = localStorage.person_id !== undefined\r\n ? localStorage.person_id\r\n : 0;\r\n\r\n let channel = this.props.channel;\r\n let matchChannel = this.props.match.params.channel;\r\n\r\n let data = {\r\n name: names, lastName: lastNames, email: email, phone: phone,\r\n servicesIds: services, adviserId: adviser, citiesOfInterest: cities,\r\n channel: this.props.defineChannel(channel, matchChannel),\r\n externalPartnerId: externalPartner,\r\n };\r\n\r\n this.props.saveInSessionStore(servicesList, names, lastNames, email, phone,\r\n services, adviser, cities, this.props.whatsappNumber);\r\n this.props.requestMeeting(data);\r\n });\r\n };\r\n\r\n onRequestMeeting = () => {\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n\r\n if (err) return;\r\n\r\n this.setState({\r\n meetingRequestModalVisible: true\r\n });\r\n });\r\n };\r\n\r\n scheduleMeeting = () => {\r\n this.props.form.validateFieldsAndScroll((err, values) => {\r\n\r\n if (err) return;\r\n\r\n const servicesList = this.props.services;\r\n let { names, lastNames, service, email, phone, adviser, city } = values;\r\n\r\n adviser = adviser == null ? 0 : adviser;\r\n let cities = this.props.getCitiesObject(city);\r\n let services = service != null\r\n ? [parseInt(service.split(':')[1])]\r\n : [servicesList[0].id];\r\n\r\n this.props.saveInSessionStore(servicesList, names, lastNames, email, phone,\r\n services, adviser, cities, this.props.whatsappNumber);\r\n\r\n this.setState({\r\n partner: {\r\n names: names,\r\n lastNames: lastNames,\r\n email: email,\r\n phone: phone,\r\n adviserId: adviser,\r\n cities: cities,\r\n services: services\r\n },\r\n scheduleMeet: true\r\n });\r\n\r\n });\r\n };\r\n\r\n advancedClick = () => {\r\n var advanced = !this.state.advanced;\r\n this.setState({ advanced });\r\n };\r\n\r\n onVisiblePopOver = (visible) =>{\r\n this.setState({popOverVisible: visible})\r\n }\r\n\r\n termsIsAccepted = (rule, value, callback) => {\r\n if (!value) {\r\n callback(\"Por favor acepte los Términos y Condiciones.\");\r\n } else {\r\n callback();\r\n }\r\n };\r\n\r\n render () {\r\n const { getFieldDecorator } = this.props.form;\r\n let { services, cities, requestMeetingResponse, requestError, onClickLogout, modeOfContact,\r\n meetingFormInfo, scheduleFormInfo, countryCodeSelected} = this.props;\r\n\r\n let {\r\n citiesEnabled, sendResponse, scheduleMeet, meetingRequestModalVisible,\r\n advisorsEnabled, advanced, popOverVisible, countryCode\r\n } = this.state;\r\n\r\n return(\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n background\r\n \r\n \r\n
\r\n

EXPERTOS EN VENTA

\r\n

\r\n Y FINANCIACIÓN\r\n

\r\n

\r\n \r\n DE\r\n VIVIENDA EN\r\n

\r\n

COLOMBIA

\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {localStorage.user_name &&\r\n
\r\n \r\n
\r\n }\r\n \r\n \r\n \r\n Volver a canales de atención\r\n \r\n \r\n \r\n

\r\n {modeOfContact === \"schedule\"\r\n ? scheduleFormInfo.title : meetingFormInfo.title\r\n }\r\n

\r\n \r\n \r\n \r\n \r\n {this.props.getHomeInfoMessage(modeOfContact === \"schedule\" ? \r\n scheduleFormInfo.tooltip : meetingFormInfo.tooltip)}\r\n {}\r\n \r\n }\r\n trigger=\"click\"\r\n visible={popOverVisible}>\r\n this.onVisiblePopOver(true)} className=\"home-help-button-mobile\">Ayuda\r\n \r\n \r\n \r\n
\r\n\r\n

\r\n Está a un paso de iniciar su asesoría, registre sus datos e inicie su\r\n videollamada o prográmela para otro momento en la opción de agendar.\r\n

\r\n
\r\n\r\n
\r\n \r\n {getFieldDecorator('names',\r\n {\r\n initialValue: \"\",\r\n rules: [\r\n { required: true, message: 'Por favor, ingrese su(s) nombre(s).' }\r\n ]\r\n }\r\n )(\r\n }\r\n placeholder=\"Nombres\" size=\"large\"/>\r\n )\r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n {getFieldDecorator('lastNames',\r\n {\r\n initialValue: \"\",\r\n rules: [\r\n { required: true, message: 'Por favor, ingrese su(s) apellido(s).' }\r\n ],\r\n }\r\n )(\r\n }\r\n placeholder=\"Apellidos\" size=\"large\"/>\r\n )\r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n {getFieldDecorator('email',\r\n {\r\n rules: [\r\n {type: 'email', message: 'Por favor, ingrese un correo electrónico válido.'},\r\n {required: true, message: 'Por favor, ingrese su correo electrónico.' }\r\n ],\r\n }\r\n )(\r\n }\r\n placeholder=\"Correo electrónico\" type=\"email\"\r\n size=\"large\"/>\r\n )\r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n {getFieldDecorator('residenceCountry',\r\n { initialValue: countryCodeSelected,\r\n rules: [\r\n { required: true, message: 'Por favor, ingrese su país de residencia.' }\r\n ],\r\n onChange: this.onChangeCountry\r\n }\r\n )(\r\n \r\n )\r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n {getFieldDecorator('phone',\r\n {\r\n rules: [\r\n { required: true, message: 'Por favor, ingrese su teléfono.' },\r\n { min: 10, message: 'Por favor, ingrese un número de teléfono válido.' }\r\n ]\r\n }\r\n )(\r\n \r\n )\r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n {getFieldDecorator('service',\r\n {\r\n rules: [\r\n { required: true, message: 'Por favor, elija un servicio.' }\r\n ],\r\n onChange: this.onChangeService\r\n }\r\n )(\r\n \r\n )}\r\n \r\n
\r\n\r\n
\r\n ¿Ya nos conoce? \r\n this.advancedClick()}>\r\n Avanzado \r\n \r\n
\r\n\r\n {advanced &&\r\n
\r\n
\r\n \r\n {getFieldDecorator('adviser',\r\n {\r\n initialValue: \"Cualquier asesor\"\r\n }\r\n )(\r\n \r\n )\r\n }\r\n \r\n
\r\n {citiesEnabled &&\r\n
\r\n \r\n {getFieldDecorator('city', {})(\r\n \r\n )}\r\n \r\n
\r\n }\r\n
\r\n }\r\n
\r\n \r\n \r\n {getFieldDecorator('terms', {\r\n rules: [{ validator: this.termsIsAccepted }],\r\n })(\r\n \r\n \r\n \r\n \r\n \r\n \r\n Acepto las \r\n \r\n Políticas de uso de tratamientos de datos\r\n \r\n  y \r\n \r\n Términos y Condiciones\r\n \r\n  de Casa Propia Colombia.\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n {modeOfContact\r\n ?\r\n
\r\n {modeOfContact === \"videocall\" &&\r\n
\r\n \r\n
\r\n }\r\n {modeOfContact === \"schedule\" &&\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 \r\n
\r\n\r\n {meetingRequestModalVisible &&\r\n \r\n }\r\n\r\n {requestMeetingResponse !== null && sendResponse === true &&\r\n \r\n }\r\n {scheduleMeet &&\r\n \r\n }\r\n
\r\n );\r\n };\r\n}\r\n\r\nlet WrappedHome = Form.create()(MeetingRequestMobile);\r\n\r\nMeetingRequestMobile.propTypes = {\r\n requestError: PropTypes.bool,\r\n requestMeetingResponse: PropTypes.object,\r\n requestMeeting: PropTypes.func,\r\n onClickLogin: PropTypes.func,\r\n onClickLogout: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requestMeetingResponse: state.partner.requestMeetingResponse,\r\n requestError: state.partner.requestError,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n requestMeeting: (data) => dispatch(requestMeeting(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(WrappedHome));"," //Libraries\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Subcomponents\r\nimport MeetingRequestWeb from \"./meetingRequestWeb\";\r\nimport MeetingRequestMobile from \"./meetingRequestMobile\";\r\n\r\n//Styles\r\nimport 'react-phone-input-2/lib/style.css'\r\nimport '../../../../styles/partner/meetingRequest/meetingRequest.css';\r\nimport {withRouter} from \"react-router-dom\";\r\nimport routes from \"../../../../lib/generalUtils/routes\";\r\n\r\n//Services\r\nimport { getLocationInfo } from '../../../../store/redux/actions/partner/partnerActions';\r\n\r\nclass MeetingRequestForm extends Component{\r\n constructor (props){\r\n\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n sendResponse: null,\r\n keyBursting: 0,\r\n scheduleLoading: null,\r\n smallSize: false,\r\n advanced: false,\r\n zopimElement: !!document.getElementsByClassName(\"zopim\")[0],\r\n };\r\n this.checkScriptsElements = this.checkScriptsElements.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n const { getLocationInfo } = this.props;\r\n this.setState({ isMounted: false });\r\n getLocationInfo();\r\n }\r\n });\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.resize();\r\n\r\n let permanentRequest = setInterval(() => this.checkScriptsElements(), 1000);\r\n this.setState({\r\n permanentRequest: permanentRequest,\r\n });\r\n }\r\n checkScriptsElements(){\r\n /* ------------ Chat Zoho and Chat Whatsapp --------------------- */\r\n let scriptElement = document.getElementsByClassName('zsiq_floatmain');\r\n let existZohoChat = scriptElement !== undefined && scriptElement.length > 0;\r\n if(existZohoChat){\r\n for (let i = 0; i < scriptElement.length; i++){\r\n document.getElementsByClassName('zsiq_floatmain')[i].style.display = \"none\";\r\n }\r\n }\r\n let scriptElement3 = document.getElementsByClassName('zls-sptwndw');\r\n let existScriptElement3 = scriptElement3 !== undefined && scriptElement3.length > 0;\r\n if(existScriptElement3){\r\n scriptElement3[0].style.display = \"none\";\r\n }\r\n }\r\n closePopoverMobile = () =>{\r\n this.setState({popOverVisible: false})\r\n }\r\n\r\n resize = () => {\r\n this.setState({smallSize: window.innerWidth <= 767});\r\n };\r\n\r\n defineChannel = (channel, matchChannel) => {\r\n if (channel === \"ae\") return \"/ae\";\r\n if (matchChannel === \":channel\") return \"/page\";\r\n \r\n return \"/\" + matchChannel;\r\n };\r\n\r\n saveInSessionStore(servicesList, names, lastNames, email, phone, services, adviserId, cities,\r\n whatsappNumber){\r\n let selectedServices = [];\r\n\r\n for (let i = 0; i < servicesList.length; i++) {\r\n if (servicesList[i].id !== services[0]) continue;\r\n\r\n let serviceId = servicesList[i].id;\r\n let serviceName = servicesList[i].name;\r\n\r\n selectedServices.push({ serviceName, serviceId });\r\n break;\r\n }\r\n \r\n let externalPartner = localStorage.person_id !== undefined\r\n ? localStorage.person_id\r\n : 0;\r\n\r\n sessionStorage.setItem('user_name', names);\r\n sessionStorage.setItem('last_name', lastNames);\r\n sessionStorage.setItem('selectedServices', JSON.stringify(selectedServices));\r\n sessionStorage.setItem('email', email);\r\n sessionStorage.setItem('phone', phone);\r\n sessionStorage.setItem('adviserId', adviserId);\r\n sessionStorage.setItem('citiesOfInterest', JSON.stringify(cities));\r\n sessionStorage.setItem('channel', this.defineChannel());\r\n sessionStorage.setItem('externalPartnerId', externalPartner);\r\n sessionStorage.setItem('whatsappNumber', whatsappNumber);\r\n };\r\n\r\n getHomeInfoMessage = (text) => {\r\n const { smallSize } = this.state.smallSize;\r\n\r\n return (\r\n
\r\n

\r\n

\r\n );\r\n };\r\n\r\n getCitiesObject = (city) => {\r\n let cityArray = city != null ? city.split(\"¨\") : [];\r\n\r\n if (cityArray.length === 0) {\r\n return [this.props.cities[0]];\r\n }\r\n\r\n return [{\r\n id: parseInt(cityArray[1]),\r\n name: cityArray[0]\r\n }];\r\n };\r\n\r\n advancedClick = () => {\r\n var advanced = !this.state.advanced;\r\n this.setState({ advanced });\r\n };\r\n\r\n render () {\r\n let { smallSize } = this.state;\r\n let { meetingFormInfo, scheduleFormInfo, countryCodeSelected } = this.props;\r\n let { services, cities, requestMeetingResponse, requestError, onClickLogout,\r\n advisers, channel, whatsappNumber } = this.props;\r\n let modeOfContact;\r\n if(this.props.location.pathname.includes(routes.schedule_request)){\r\n modeOfContact = \"schedule\";\r\n }else if(this.props.location.pathname.includes(routes.meeting_request.replace('?', ''))){\r\n modeOfContact = \"videocall\";\r\n }\r\n\r\n return(\r\n
(this.instance = el)} className=\"home-container\">\r\n {smallSize\r\n ? \r\n : \r\n }\r\n
\r\n );\r\n };\r\n}\r\n\r\nMeetingRequestForm.propTypes = {\r\n countryCodeSelected: PropTypes.any,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n countryCodeSelected: state.partner.countryCodeSelected,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getLocationInfo: () => dispatch(getLocationInfo()),\r\n }\r\n};\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(MeetingRequestForm));","//Libraries\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Redirect} from 'react-router-dom';\r\nimport {Modal} from \"antd\";\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Components\r\nimport MeetingRequestForm from \"./meetingRequest\";\r\n\r\n//Subcomponents\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport routes from '../../../../lib/generalUtils/routes';\r\n\r\n//Assets\r\nimport loginBackground from \"../../../../assets/backgroundImage.jpg\";\r\n\r\n//Actions\r\nimport { getRequestInfo, getTermsInfo } from \"../../../../store/redux/actions/partner/partnerActions\";\r\nimport { logout } from \"../../../../store/redux/actions/accountManagement/loginActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/partner/meetingRequest/meetingRequest.css';\r\nimport '../../../../styles/accountManagement/login.css';\r\n\r\n\r\nclass MeetingRequest extends Component {\r\n \r\n constructor(props){\r\n\r\n super(props);\r\n\r\n this.state = {\r\n loading: false,\r\n visible: null,\r\n login: null,\r\n };\r\n\r\n this.onSignOut = this.onSignOut.bind(this);\r\n this.props.getRequestInfo();\r\n this.props.getTermsInfo();\r\n\r\n };\r\n\r\n onSignOut(){\r\n this.props.logout();\r\n };\r\n\r\n render (){\r\n let cities = [];\r\n let advisers = [];\r\n let services = [];\r\n let logo = \"\";\r\n let whatsappNumber = \"\";\r\n let meetingFormInfo = {};\r\n let scheduleFormInfo = {};\r\n\r\n let { requestInfo, requestTermsInfo, isNotLogged } = this.props;\r\n let { login } = this.state;\r\n\r\n if (JSON.stringify(requestInfo) !== '{}') {\r\n scheduleFormInfo = requestInfo.scheduleFormInfo;\r\n meetingFormInfo = requestInfo.meetingFormInfo;\r\n logo = requestInfo.logo;\r\n cities = requestInfo.cities;\r\n advisers = requestInfo.advisers;\r\n services = requestInfo.services;\r\n whatsappNumber = requestInfo.whatsappNumber;\r\n }\r\n\r\n if (JSON.stringify(requestInfo) === '{}') {\r\n return(\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n return(\r\n
\r\n
\r\n background\r\n
\r\n\r\n this.setState({login: true})} terms={requestTermsInfo}\r\n onClickLogout={() => this.setState({visible: true})} logo={logo}\r\n whatsappNumber={whatsappNumber} channel={this.props.channel}/>\r\n \r\n this.setState({visible: false})}\r\n cancelText={\"Cancelar\"}\r\n width={400}\r\n className={\"log-out-modal\"}>\r\n

\r\n ¿Confirma que desea cerrar sesión?\r\n

\r\n \r\n {isNotLogged === false && window.location.reload()}\r\n {login && }\r\n
\r\n );\r\n }\r\n };\r\n\r\n}\r\n\r\nMeetingRequest.propTypes = {\r\n requestInfo: PropTypes.object,\r\n requestTermsInfo: PropTypes.string,\r\n getRequestInfo: PropTypes.func,\r\n getTermsInfo: PropTypes.func,\r\n logout: PropTypes.func,\r\n isNotLogged: PropTypes.bool,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requestInfo: state.partner.requestInfo,\r\n requestTermsInfo: state.partner.requestTermsInfo,\r\n isNotLogged: state.login.isNotLogged,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n logout: () => dispatch(logout()),\r\n getRequestInfo: () => dispatch(getRequestInfo()),\r\n getTermsInfo: () => dispatch(getTermsInfo()),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MeetingRequest);","//Libraries\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Styles\r\nimport '../../../../../styles/partner/qualifyMeeting/qualifyMeeting.css'\r\n\r\nconst Star = ({ selected=false, onClick=f=>f, onMouseEnter=f=>f }) =>\r\n
\r\n
\r\n\r\nStar.propTypes = {\r\n selected: PropTypes.bool,\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default Star;","//Libraries\r\nimport React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Components\r\nimport Star from './Star';\r\n\r\nclass StarsRating extends Component{\r\n render(){\r\n const {totalStars, selectedStars, onRate} = this.props;\r\n\r\n return(\r\n
\r\n {[...Array(totalStars)].map((n, i) =>\r\n onRate(i+1)}\r\n onMouseEnter={() => onRate(i+1)}\r\n />\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nStarsRating.propTypes = {\r\n totalStars: PropTypes.number,\r\n selectedStars: PropTypes.number,\r\n onRate: PropTypes.func\r\n};\r\n\r\nStarsRating.defaultProps = {\r\n totalStars: 5,\r\n selectedStars: 0,\r\n onRate: f => f\r\n};\r\n\r\nexport default StarsRating;","//Libraries\r\nimport React from 'react';\r\nimport {notification, Icon} from 'antd';\r\n\r\n//Styles\r\nimport sound from '../../../../../assets/sounds/qualificationNotification.mp3';\r\n\r\nlet interval = undefined;\r\nlet audio = undefined;\r\n\r\nconst QualificationNotification = () =>{\r\n configureInterval();\r\n notification.open({\r\n message: 'Por favor completa la calificación de la llamada',\r\n description: '',\r\n icon: ,\r\n duration: 0,\r\n onClose: () => stopNotificationSound()\r\n });\r\n};\r\n\r\nconst configureInterval = () => {\r\n playNotificationSound();\r\n interval = setInterval( playNotificationSound, 3000);\r\n};\r\n\r\nconst playNotificationSound = () => {\r\n audio = new Audio(sound);\r\n audio.play();\r\n};\r\n\r\nconst stopNotificationSound = () => {\r\n audio.pause();\r\n clearInterval(interval);\r\n};\r\n\r\nexport default QualificationNotification;","//Libraries\r\nimport React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {Row, Col, Divider, Button, Icon, Input, Steps, Card, Checkbox, Select, Form} from 'antd';\r\nimport {Redirect} from 'react-router-dom';\r\n\r\n//Subcomponents\r\nimport routes from \"../../../../lib/generalUtils/routes\";\r\nimport StarsRating from './subcomponents/StarsRating';\r\n\r\n//Actions\r\nimport {\r\n getQualificationParams,\r\n getRenderView,\r\n performQualification\r\n} from \"../../../../store/redux/actions/partner/partnerActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/partner/waitingRoom/waitingRoom.css';\r\nimport QualificationNotification from \"./subcomponents/QualificationNotification\";\r\n\r\nclass GradeMeeting extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n loading: true,\r\n currentStep: 0,\r\n qualificationSteps:[\r\n {\r\n title: 'General',\r\n key: 'general'\r\n },\r\n {\r\n title: 'Atención asesoría',\r\n key: 'advisory'\r\n },\r\n {\r\n title: 'Llamada',\r\n key: 'call'\r\n },\r\n {\r\n title: 'Recomendación',\r\n key: 'recommendation'\r\n }\r\n ],\r\n questions: {\r\n 'general': '¿Qué tan satisfecho se encuentra con el servicio prestado el día de hoy?',\r\n 'advisory': '¿Cómo fue la atención brindada por nuestro Asesor?',\r\n 'call': '¿Cómo califica la calidad de la llamada y tiempo de espera?',\r\n 'recommendation': '¿Recomendaría a Casa Propia Colombia a un amigo o familiar?'\r\n },\r\n qualifications: {\r\n 'general': 0,\r\n 'advisory': 0,\r\n 'call': 0,\r\n 'recommendation': true\r\n },\r\n redirectToHome: false,\r\n mobileSize: false\r\n };\r\n\r\n this.nextStep = this.nextStep.bind(this);\r\n this.rate = this.rate.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.props.getQualificationParams();\r\n QualificationNotification();\r\n\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.resize();\r\n }\r\n\r\n resize(){\r\n this.setState({mobileSize: window.innerWidth <= 575});\r\n }\r\n\r\n nextStep(){\r\n const {currentStep} = this.state;\r\n this.setState({currentStep: currentStep+1});\r\n this.performRate(this.state.qualificationSteps[currentStep].key);\r\n }\r\n\r\n rate(step, value){\r\n const {qualifications} = this.state;\r\n this.setState({\r\n qualifications: {\r\n ...qualifications,\r\n [step]: value\r\n }\r\n });\r\n }\r\n\r\n performRate(step){\r\n const {qualifications} = this.state;\r\n const {form} = this.props;\r\n const {getFieldValue} = form;\r\n let qualificationInfo = {};\r\n if(step === 'recommendation'){\r\n qualificationInfo.recommend = qualifications[step];\r\n }\r\n if(step === 'call'){\r\n qualificationInfo.callRating = qualifications[step];\r\n const callRatingJustValue = getFieldValue('callRatingJustification');\r\n qualificationInfo.callRatingJustificationId = callRatingJustValue !== undefined && callRatingJustValue !== null\r\n ? callRatingJustValue\r\n : '';\r\n const callRatingComment = getFieldValue('callRatingComment');\r\n qualificationInfo.callRatingComment = callRatingComment !== undefined && callRatingComment !== null\r\n ? callRatingComment\r\n : '';\r\n }\r\n if(step === 'advisory'){\r\n qualificationInfo.advisoryRating = qualifications[step];\r\n const advisoryRatingJust = getFieldValue('advisoryRatingJustification');\r\n qualificationInfo.advisoryRatingJustificationId = advisoryRatingJust !== undefined && advisoryRatingJust !== null\r\n ? advisoryRatingJust\r\n : '';\r\n const advisoryRatingComment = getFieldValue('advisoryRatingComment');\r\n qualificationInfo.advisoryRatingComment = advisoryRatingComment !== undefined && advisoryRatingComment !== null\r\n ? advisoryRatingComment\r\n : '';\r\n }\r\n if(step === 'general'){\r\n qualificationInfo.generalRating = qualifications[step];\r\n }\r\n\r\n qualificationInfo.meetingId = this.props.meetingId;\r\n\r\n //TODO: Call Service for rate call in each step advance\r\n this.props.performQualification(qualificationInfo);\r\n\r\n if(step === 'recommendation'){\r\n this.props.getRenderView();\r\n this.setState({redirectToHome: true});\r\n }\r\n }\r\n\r\n render() {\r\n const {qualificationSteps, currentStep, questions, qualifications, redirectToHome, mobileSize} = this.state;\r\n const {advisoryRatingJustifications, callRatingJustifications, form } = this.props;\r\n let logo = this.props.location.state.logo;\r\n const step = qualificationSteps[currentStep].key;\r\n const {getFieldDecorator} = form;\r\n\r\n return (\r\n
\r\n
\r\n {redirectToHome === true &&\r\n \r\n }\r\n\r\n

Calificación de reunión

\r\n {!mobileSize &&\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n {qualificationSteps.map((qualification, i) => (\r\n \r\n ))}\r\n \r\n
\r\n {questions[step]}\r\n {step !== 'recommendation' &&\r\n \r\n this.rate(step, value)}\r\n selectedStars={qualifications[step]}\r\n />\r\n \r\n }\r\n {(step === 'call' || step === 'advisory') &&\r\n
\r\n \r\n \r\n {step === 'call' &&\r\n \r\n {getFieldDecorator('callRatingJustification')(\r\n \r\n )}\r\n \r\n }\r\n {step === 'advisory' &&\r\n \r\n {getFieldDecorator('advisoryRatingJustification')(\r\n \r\n )}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {getFieldDecorator(`${step}RatingComment`)(\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n }\r\n {step === 'recommendation' &&\r\n \r\n \r\n
\r\n this.rate(step, e.target.checked)} defaultChecked={true}>\r\n {`${qualifications[step] === true ? 'Si ' : 'No '}recomendaría Casa Propia Colombia`\r\n }\r\n \r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n \r\n {currentStep < (qualificationSteps.length -1) &&\r\n \r\n }\r\n {currentStep === (qualificationSteps.length - 1) &&\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\nGradeMeeting.propTypes = {\r\n advisoryRatingJustifications: PropTypes.array,\r\n callRatingJustifications: PropTypes.array,\r\n getRenderView: PropTypes.func\r\n};\r\n\r\nGradeMeeting.defaultProps = {\r\n advisoryRatingJustifications: [],\r\n callRatingJustifications: []\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n advisoryRatingJustifications: state.partner.advisoryRatingJustifications,\r\n callRatingJustifications: state.partner.callRatingJustifications,\r\n meetingId: state.partner.requestAskForMeeting.meetingId\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getQualificationParams: () => dispatch(getQualificationParams()),\r\n performQualification: (qualificationInfo) => dispatch(performQualification(qualificationInfo)),\r\n getRenderView: () => dispatch(getRenderView())\r\n };\r\n};\r\n\r\nconst wrappedComponent = Form.create()(GradeMeeting);\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(wrappedComponent);\r\n\r\n\r\n","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Carousel} from 'antd';\r\n\r\n//Subcomponents\r\nimport BaseUrl from \"../../../../api/BaseURL\";\r\n\r\n//Styles\r\nimport '../../../../styles/partner/waitingRoom/waitingRoom.css';\r\n\r\nclass Content extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n value: null,\r\n };\r\n\r\n this.carousel = React.createRef();\r\n };\r\n\r\n render() {\r\n\r\n const propsImage = { autoplay: true, autoplaySpeed:5000 };\r\n let images_content = this.props.content.advertisingImages;\r\n let video_content = this.props.content.advertisingVideo;\r\n let isVideo = this.props.video;\r\n\r\n return (\r\n
\r\n {!isVideo &&\r\n (this.carousel = node)} {...propsImage}>\r\n {\r\n images_content.map((image,i) => (\r\n
\r\n {\"Slider\r\n
\r\n ))\r\n }\r\n
\r\n }\r\n {isVideo &&\r\n \r\n {\r\n video_content.map((video,i) => (\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 Content;","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport {Modal, Button} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Subcomponents\r\n\r\n//Styles\r\n\r\n//Constants\r\n\r\nclass CancelMeetingModal extends Component {\r\n constructor (props) {\r\n super(props);\r\n this.state = {\r\n };\r\n\r\n }\r\n\r\n render () {\r\n const { visible, closeModal, scheduleMeeting } = this.props;\r\n\r\n return (\r\n Esperar videollamada,\r\n \r\n ]}>\r\n
\r\n \r\n Estimado/a {sessionStorage.user_name}, en este momento todos nuestros asesores se encuentran ocupados.\r\n
\r\n
\r\n Si desea seguir esperando, por favor de clic en el botón Esperar. De lo contrario, lo invitamos a agendar una reunión que con gusto será atendida en la fecha agendada.\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nCancelMeetingModal.propTypes = {\r\n visible: PropTypes.bool,\r\n closeModal: PropTypes.func,\r\n scheduleMeeting: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(CancelMeetingModal));","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Button, Radio, Modal, Input} from 'antd';\r\nimport {Redirect} from 'react-router-dom';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from 'react-router-dom';\r\n\r\n//Components\r\nimport Content from \"./Content\";\r\n\r\n//Subcomponents\r\nimport routes from \"../../../../lib/generalUtils/routes\";\r\nimport {setMeetingLog} from \"../../../../lib/generalUtils/functions\";\r\n\r\n//Actions\r\nimport { cancelMeeting, leaveMeeting, askForMeetingRequest, finishedMeeting,\r\n clearValues, updateLogOperation\r\n} from \"../../../../store/redux/actions/partner/partnerActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/partner/waitingRoom/waitingRoom.css';\r\nimport CancelMeetingModal from \"./CancelMeetingModal\";\r\n\r\n//Constants\r\nconst RadioGroup = Radio.Group;\r\nlet meetingStarted = false;\r\n\r\nfunction eventLeaveMeeting(event, data){\r\n event.preventDefault();\r\n event.returnValue = \"-\";\r\n};\r\n\r\nclass WaitingRoom extends Component {\r\n constructor(props){\r\n\r\n super(props);\r\n\r\n this.state = {\r\n openCancelModal: false,\r\n value: null,\r\n valueText: \"\",\r\n scheduleMeeting: null,\r\n exit: null,\r\n permanentRequest: null,\r\n permanentFinishedRequest: null,\r\n redirectGrade: null,\r\n ableUrl: null,\r\n meetingId: 0,\r\n showCancelDialog: null,\r\n notYetShowCancelDialog: true,\r\n showButtons: false,\r\n makeMeeting: false,\r\n clearFirstInterval: null,\r\n clearSecondInterval: null,\r\n canceledMeetingRequest: false,\r\n showHomeLogo: false,\r\n smallSize: false,\r\n };\r\n\r\n this.cancelMeeting = this.cancelMeeting.bind(this);\r\n this.onChangeRadio = this.onChangeRadio.bind(this);\r\n this.scheduleMeeting = this.scheduleMeeting.bind(this);\r\n this.handleCancelMeeting = this.handleCancelMeeting.bind(this);\r\n this.onChangeReasonCancel = this.onChangeReasonCancel.bind(this);\r\n this.checkDisabled = this.checkDisabled.bind(this);\r\n this.askForMeeting = this.askForMeeting.bind(this);\r\n this.askForMeetingFinished = this.askForMeetingFinished.bind(this);\r\n this.redirectToGrade = this.redirectToGrade.bind(this);\r\n this.props.clearValues();\r\n };\r\n\r\n componentDidMount(){\r\n meetingStarted = false;\r\n\r\n let data = {\r\n meetingRequestId: this.props.location.state.body.meetingRequestId,\r\n };\r\n\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.resize();\r\n\r\n if(this.state.ableUrl === null){\r\n window.addEventListener('beforeunload', (event) => eventLeaveMeeting(event, data));\r\n }\r\n\r\n let permanentRequest = setInterval(() => this.askForMeeting(), 2000);\r\n this.setState({\r\n permanentRequest: permanentRequest,\r\n });\r\n\r\n let permanentFinishedRequest = setInterval(() => this.askForMeetingFinished(this.state.meetingId), 5000);\r\n this.setState({\r\n permanentFinishedRequest: permanentFinishedRequest,\r\n });\r\n\r\n if(document.getElementsByClassName(\"initial-waiting-div\").length > 0){\r\n let scriptElement = document.getElementsByClassName('zsiq_floatmain');\r\n let existZohoChat = scriptElement !== undefined && scriptElement.length > 0;\r\n if(existZohoChat){\r\n document.getElementsByClassName('zsiq_floatmain')[0].style.display = \"block\";\r\n }else{\r\n const s = document.createElement('script');\r\n s.type = 'text/javascript';\r\n s.async = true;\r\n s.setAttribute('id', \"zohoChat\");\r\n s.innerHTML = \"var $zoho=$zoho || {};\\n\" +\r\n \" $zoho.salesiq = $zoho.salesiq || {\\n\" +\r\n \" widgetcode:\\\"6caafaa6140cee18ab76a410c4e66a105c3074ad6d41b14772fdd2deacc67a42aa74c49f5672a0ecc66e84eef7777680\\\",\\n\" +\r\n \" values: {},\\n\" +\r\n \" ready: function(){}\\n\" +\r\n \" };\\n\" +\r\n \" var d = document;\\n\" +\r\n \" s = d.createElement(\\\"script\\\");\\n\" +\r\n \" s.type=\\\"text/javascript\\\";\\n\" +\r\n \" s.id=\\\"zsiqscript\\\";\\n\" +\r\n \" s.defer=true;\\n\" +\r\n \" s.src=\\\"https://salesiq.zoho.com/widget\\\";\\n\" +\r\n \" t=d.getElementsByClassName(\\\"initial-waiting-div\\\")[0];\\n\" +\r\n \" t.parentNode.insertBefore(s, t);\" +\r\n \" t.parentNode.insertBefore(s, t);\";\r\n this.instance.appendChild(s);\r\n }\r\n }\r\n };\r\n componentDidUpdate(prevProps, prevState, snapshot){\r\n if(this.props.meetingLogId !== null && this.props.meetingLogId !== prevProps.meetingLogId){\r\n this.allowCamAndMic();\r\n }\r\n\r\n if(this.props.requestAskForMeeting !== null && this.state.makeMeeting === false){\r\n if(this.props.requestAskForMeeting.meetingUrl !== \"\" && this.props.requestAskForMeeting.meetingUrl !== null){\r\n this.setState({\r\n makeMeeting: true,\r\n meetingId: this.props.requestAskForMeeting.meetingId,\r\n });\r\n sessionStorage.setItem('meetingRequestId', this.props.requestAskForMeeting.meetingId);\r\n }\r\n\r\n if(this.props.requestAskForMeeting.showCancelDialog !== this.state.showCancelDialog){\r\n if(this.props.requestAskForMeeting.showCancelDialog && this.state.notYetShowCancelDialog){\r\n this.setState({\r\n showCancelDialog: true,\r\n notYetShowCancelDialog: false,\r\n showButtons: true\r\n })\r\n }\r\n if(!this.props.requestAskForMeeting.showCancelDialog){\r\n this.setState({\r\n showCancelDialog: false,\r\n notYetShowCancelDialog: true,\r\n })\r\n }\r\n }\r\n }\r\n if(this.state.makeMeeting === true && this.state.clearFirstInterval === null){\r\n clearInterval(this.state.permanentRequest);\r\n this.setState({\r\n clearFirstInterval: true,\r\n });\r\n }\r\n if(this.props.finishedMeetingResponse !== null){\r\n if(this.props.finishedMeetingResponse.finished === true){\r\n if(this.state.clearFirstInterval !== null && this.state.clearSecondInterval === null){\r\n clearInterval(this.state.permanentFinishedRequest);\r\n this.setState({\r\n clearSecondInterval: true,\r\n });\r\n this.redirectToGrade();\r\n }\r\n }\r\n }\r\n if(this.props.requestAskForMeeting !== null && this.props.requestAskForMeeting.canceled){\r\n if(!this.state.canceledMeetingRequest){\r\n this.setState({ canceledMeetingRequest: true });\r\n setMeetingLog(\"5\", true, (data) => this.props.updateLogOperation(data), this.props.meetingLogId);\r\n }\r\n }\r\n };\r\n\r\n allowCamAndMic(){\r\n const { updateLogOperation, meetingLogId, location } = this.props;\r\n\r\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\r\n navigator.enumerateDevices = function(callback) {\r\n navigator.mediaDevices.enumerateDevices().then(callback);\r\n };\r\n }\r\n\r\n let MediaDevices = [];\r\n let canEnumerate = false;\r\n let isHTTPs = window.location.protocol === 'https:';\r\n\r\n if (typeof MediaStreamTrack !== 'undefined' && 'getSources' in MediaStreamTrack)\r\n canEnumerate = true;\r\n else if (navigator.mediaDevices && !!navigator.mediaDevices.enumerateDevices)\r\n canEnumerate = true;\r\n\r\n let hasWebcam = false;\r\n let hasMicrophone = false;\r\n let isMicrophoneAlreadyCaptured = false;\r\n let isWebcamAlreadyCaptured = false;\r\n\r\n function checkDeviceSupport(callback) {\r\n if (!canEnumerate)\r\n return;\r\n\r\n if (!navigator.enumerateDevices && window.MediaStreamTrack && window.MediaStreamTrack.getSources)\r\n navigator.enumerateDevices = window.MediaStreamTrack.getSources.bind(window.MediaStreamTrack);\r\n\r\n if (!navigator.enumerateDevices && navigator.enumerateDevices)\r\n navigator.enumerateDevices = navigator.enumerateDevices.bind(navigator);\r\n\r\n if (!navigator.enumerateDevices) {\r\n if (callback)\r\n callback();\r\n return;\r\n }\r\n\r\n MediaDevices = [];\r\n navigator.enumerateDevices(function(devices) {\r\n devices.forEach(function(_device) {\r\n let device = {};\r\n for (let d in _device) {\r\n device[d] = _device[d];\r\n }\r\n\r\n if (device.kind === 'audio')\r\n device.kind = 'audioinput';\r\n\r\n if (device.kind === 'video')\r\n device.kind = 'videoinput';\r\n\r\n let skip;\r\n MediaDevices.forEach(function(d) {\r\n if (d.id === device.id && d.kind === device.kind)\r\n skip = true;\r\n });\r\n\r\n if (skip)\r\n return;\r\n\r\n if (!device.deviceId)\r\n device.deviceId = device.id;\r\n\r\n if (!device.id)\r\n device.id = device.deviceId;\r\n\r\n if (!device.label) {\r\n device.label = 'Please invoke getUserMedia once.';\r\n if (!isHTTPs)\r\n device.label = 'HTTPs is required to get label of this ' + device.kind + ' device.';\r\n } else {\r\n if (device.kind === 'videoinput' && !isWebcamAlreadyCaptured)\r\n isWebcamAlreadyCaptured = true;\r\n\r\n if (device.kind === 'audioinput' && !isMicrophoneAlreadyCaptured)\r\n isMicrophoneAlreadyCaptured = true;\r\n }\r\n\r\n if (device.kind === 'audioinput')\r\n hasMicrophone = true;\r\n\r\n if (device.kind === 'videoinput')\r\n hasWebcam = true;\r\n\r\n MediaDevices.push(device);\r\n });\r\n\r\n if (callback)\r\n callback();\r\n });\r\n }\r\n\r\n checkDeviceSupport(function() {\r\n let devicesList = [];\r\n\r\n if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {\r\n setMeetingLog('7',\r\n {\r\n createMeetingTime: new Date(),\r\n meetingRequestId: location.state.body.meetingRequestId,\r\n devicesList: [\"enumerateDevices() not supported.\"],\r\n hasWebcam, hasMicrophone, isMicrophoneAlreadyCaptured, isWebcamAlreadyCaptured\r\n },\r\n (data) => updateLogOperation(data), meetingLogId);\r\n }\r\n else{\r\n navigator.mediaDevices.enumerateDevices()\r\n .then(function(devices) {\r\n devices.forEach(function(device) {\r\n devicesList.push({\r\n deviceId: device.deviceId,\r\n kind: device.kind,\r\n label: device.label\r\n });\r\n });\r\n\r\n setMeetingLog('7',\r\n {\r\n createMeetingTime: new Date(),\r\n meetingRequestId: location.state.body.meetingRequestId,\r\n devicesList,\r\n hasWebcam, hasMicrophone, isMicrophoneAlreadyCaptured, isWebcamAlreadyCaptured\r\n },\r\n (data) => updateLogOperation(data), meetingLogId);\r\n })\r\n .catch(function(err) {\r\n setMeetingLog('7',\r\n {\r\n createMeetingTime: new Date(),\r\n meetingRequestId: location.state.body.meetingRequestId,\r\n devicesList: [err.name + \": \" + err.message],\r\n hasWebcam, hasMicrophone, isMicrophoneAlreadyCaptured, isWebcamAlreadyCaptured\r\n },\r\n (data) => updateLogOperation(data), meetingLogId);\r\n });\r\n }\r\n });\r\n }\r\n resize() {\r\n this.setState({smallSize: window.innerWidth <= 575});\r\n }\r\n askForMeeting(){\r\n this.props.askForMeetingRequest(this.props.location.state.body.meetingRequestId);\r\n };\r\n askForMeetingFinished(meetingId){\r\n this.props.finishedMeeting(meetingId);\r\n };\r\n redirectToGrade(){\r\n setMeetingLog(\"9\", this.props.finishedMeetingResponse.redirected === true,\r\n (data) => this.props.updateLogOperation(data), this.props.meetingLogId);\r\n this.setState({\r\n redirectGrade: true,\r\n });\r\n }\r\n cancelMeeting(){\r\n this.setState({\r\n openCancelModal: true,\r\n });\r\n };\r\n onChangeRadio(e){\r\n this.setState({\r\n value: e.target.value,\r\n });\r\n };\r\n scheduleMeeting(){\r\n let data = {\r\n meetingRequestId: this.props.location.state.body.meetingRequestId,\r\n justification: \"Voy a agendar\",\r\n };\r\n this.props.cancelMeeting(data);\r\n this.setState({\r\n scheduleMeeting: true\r\n });\r\n };\r\n handleCancelMeeting(){\r\n let data = {\r\n meetingRequestId: this.props.location.state.body.meetingRequestId,\r\n justification: this.state.value === 3 ? this.state.valueText : this.state.value,\r\n };\r\n this.props.cancelMeeting(data);\r\n this.setState({\r\n openCancelModal: false,\r\n exit: true,\r\n });\r\n };\r\n onChangeReasonCancel(e){\r\n this.setState({\r\n valueText: e.target.value,\r\n });\r\n };\r\n checkDisabled(){\r\n if (this.state.value === null) return true;\r\n if (this.state.value === 3 && this.state.valueText === \"\") return true;\r\n\r\n return false;\r\n };\r\n\r\n componentWillUnmount(){\r\n meetingStarted = false;\r\n\r\n let scriptElement = document.getElementsByClassName('zsiq_floatmain');\r\n let existZohoChat = scriptElement !== undefined && scriptElement.length > 0;\r\n if(existZohoChat){\r\n document.getElementsByClassName('zsiq_floatmain')[0].style.display = \"none\";\r\n }\r\n\r\n let data = {\r\n meetingRequestId: this.props.location.state.body.meetingRequestId,\r\n }; \r\n window.removeEventListener('beforeunload', (event) => eventLeaveMeeting(event, data));\r\n clearInterval(this.state.permanentRequest);\r\n clearInterval(this.state.permanentFinishedRequest);\r\n };\r\n\r\n render() {\r\n const { smallSize, scheduleMeeting, value, exit, redirectGrade, canceledMeetingRequest, showCancelDialog,\r\n showButtons } = this.state;\r\n const { requestAskForMeeting } = this.props;\r\n let checkDisabled = this.checkDisabled();\r\n let { waitingLogo, waitingText1, waitingText2,\r\n isVideoSelected, meetingRequestId } = this.props.location.state ? this.props.location.state.body : {};\r\n\r\n let isDisabledButtons = requestAskForMeeting !== null\r\n ? requestAskForMeeting.meetingUrl !== \"\"\r\n : false;\r\n let hasMeetingUrl = requestAskForMeeting !== null\r\n ? requestAskForMeeting.meetingUrl !== \"\"\r\n : false;\r\n let isEmbeddedMeeting = requestAskForMeeting !== null\r\n ? requestAskForMeeting.isEmbeddedMeeting\r\n : false;\r\n\r\n if(hasMeetingUrl && isEmbeddedMeeting && document.getElementsByClassName('zsiq_floatmain').length > 0){\r\n meetingStarted = true;\r\n document.getElementsByClassName('zsiq_floatmain')[0].style.display = \"none\";\r\n }\r\n if(hasMeetingUrl && !isEmbeddedMeeting && !meetingStarted && document.getElementById('meetingButton')){\r\n meetingStarted = true;\r\n document.getElementById('meetingButton').click();\r\n }\r\n\r\n return (\r\n
(this.instance = el)} className=\"initial-waiting-div\">\r\n
\r\n \r\n \r\n

Sala de espera

\r\n \r\n
\r\n\r\n \r\n\r\n {!hasMeetingUrl &&\r\n \r\n \r\n
\r\n
\r\n

Asignando

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

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

\r\n
\r\n

Asignando

\r\n
\r\n \r\n \r\n }\r\n\r\n {!hasMeetingUrl &&\r\n \r\n \r\n \r\n }\r\n\r\n {hasMeetingUrl &&\r\n
\r\n

\r\n Por favor permanezca en línea.\r\n

\r\n
\r\n {isEmbeddedMeeting\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 {smallSize \r\n ? isDisabledButtons\r\n ?
\r\n {showButtons &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n :
\r\n {showButtons &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n : isDisabledButtons\r\n ?
\r\n {showButtons &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n :
\r\n {showButtons &&\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.setState({openCancelModal: false})}\r\n footer={\r\n
\r\n \r\n \r\n
\r\n }>\r\n
\r\n {\"Por favor, indique la razón por la cual cancela la reunión. Esta información nos permite mejorar:\"}\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Demora en la atención\r\n \r\n \r\n \r\n \r\n Elección de otra área\r\n \r\n \r\n \r\n \r\n Otra, ¿cuál? \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n this.setState({ showCancelDialog: false })}\r\n scheduleMeeting={this.scheduleMeeting}/>\r\n\r\n {canceledMeetingRequest &&\r\n \r\n }\r\n {scheduleMeeting !== null &&\r\n \r\n }\r\n {exit &&\r\n \r\n }\r\n {redirectGrade &&\r\n \r\n }\r\n
\r\n );\r\n };\r\n\r\n}\r\n\r\nWaitingRoom.propTypes = {\r\n requestCancelInfo: PropTypes.string,\r\n meetingLogId: PropTypes.number,\r\n requestLeaveInfo: PropTypes.object,\r\n requestAskForMeeting: PropTypes.object,\r\n finishedMeetingResponse: PropTypes.object,\r\n askForMeetingRequest: PropTypes.func,\r\n leaveMeeting: PropTypes.func,\r\n cancelMeeting: PropTypes.func,\r\n finishedMeeting: PropTypes.func,\r\n updateLogOperation: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requestCancelInfo: state.partner.requestCancelInfo,\r\n requestLeaveInfo: state.partner.requestLeaveInfo,\r\n requestAskForMeeting: state.partner.requestAskForMeeting,\r\n finishedMeetingResponse: state.partner.finishedMeetingResponse,\r\n meetingLogId: state.partner.meetingLogId\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n clearValues: () => dispatch(clearValues()),\r\n cancelMeeting: (data) => dispatch(cancelMeeting(data)),\r\n leaveMeeting: (data) => dispatch(leaveMeeting(data)),\r\n askForMeetingRequest: (meetingRequestId) => dispatch(askForMeetingRequest(meetingRequestId)),\r\n finishedMeeting: (data) => dispatch(finishedMeeting(data)),\r\n updateLogOperation: (data) => dispatch(updateLogOperation(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(WaitingRoom));","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Modal, Button, Steps, Input, Row, Col, Radio, Icon} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport { scheduleMeeting } from \"../../../../store/redux/actions/partner/partnerActions\";\r\nimport * as moment from \"moment\";\r\nimport ReactPhoneInput from 'react-phone-input-2';\r\n\r\nconst { Step } = Steps;\r\nconst RadioGroup = Radio.Group;\r\n\r\nclass ScheduleMeetingModal extends Component {\r\n constructor (props) {\r\n super(props);\r\n let phone = sessionStorage.getItem('phone');\r\n let email = sessionStorage.getItem('email');\r\n\r\n this.state = {\r\n currentStep: 0,\r\n phone,\r\n email,\r\n radioValue: null,\r\n mobileSize: false\r\n };\r\n this.onChangePhone = this.onChangePhone.bind(this);\r\n this.onChangeEmail = this.onChangeEmail.bind(this);\r\n this.onChangeRadio = this.onChangeRadio.bind(this);\r\n this.saveScheduleMeeting = this.saveScheduleMeeting.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.resize();\r\n }\r\n\r\n resize(){\r\n this.setState({mobileSize: window.innerWidth <= 575});\r\n }\r\n\r\n next() {\r\n const currentStep = this.state.currentStep + 1;\r\n this.setState({ currentStep });\r\n }\r\n prev() {\r\n const currentStep = this.state.currentStep - 1;\r\n this.setState({ currentStep });\r\n }\r\n onChangePhone(phone){\r\n if(phone[0] === \"+\"){\r\n this.setState({ phone: phone });\r\n }else{\r\n this.setState({ phone: \"+\" + phone });\r\n }\r\n }\r\n onChangeEmail(email){\r\n this.setState({ email: email });\r\n }\r\n onChangeRadio(e){\r\n this.setState({\r\n radioValue: e.target.value,\r\n });\r\n };\r\n saveScheduleMeeting(){\r\n const { phone, email, radioValue } = this.state;\r\n let selectedServices = JSON.parse(sessionStorage.getItem('selectedServices'));\r\n let servicesIds = [];\r\n let meetingDateTime = moment(this.props.scheduleDate).format('YYYY-MM-DD[T]HH:mm:ss');\r\n\r\n selectedServices.forEach(service =>\r\n servicesIds.push(service.serviceId)\r\n );\r\n\r\n let data = {\r\n addMeetingRequestVm: {\r\n name: sessionStorage.getItem('user_name'),\r\n lastName: sessionStorage.getItem('last_name'),\r\n email: email === null || email === \"null\" ? \"\" : email,\r\n phone: phone === null || phone === \"null\" ? \"\" : phone,\r\n servicesIds: servicesIds,\r\n adviserId: parseInt(sessionStorage.getItem('adviserId')),\r\n citiesOfInterest: JSON.parse(sessionStorage.getItem('citiesOfInterest')),\r\n channel: sessionStorage.getItem('channel'),\r\n externalPartnerId: parseInt(sessionStorage.getItem('externalPartnerId'))\r\n },\r\n contactPreference: radioValue,\r\n meetingDateTime: meetingDateTime,\r\n offset: new Date().getTimezoneOffset() / -60\r\n };\r\n\r\n this.props.toggleScheduleMeetingModalVisible(false, \"none\");\r\n this.props.scheduleMeeting(data);\r\n }\r\n\r\n render () {\r\n const { currentStep, phone, email, radioValue, mobileSize } = this.state;\r\n const { dateStringFormat, scheduleMeetingModalVisible, toggleScheduleMeetingModalVisible } = this.props;\r\n const steps = [\r\n {\r\n id: 0,\r\n title: 'Contacto',\r\n content: 'Contacto',\r\n icon: 'contacts'\r\n },\r\n {\r\n id: 1,\r\n title: 'Confirmación',\r\n content: 'Confirmación',\r\n icon: 'check-circle'\r\n }\r\n ];\r\n let whatsappIsDisabled = phone === \"null\" || phone.replace(/ /g, '') === \"\";\r\n let emailIsDisabled = email === \"null\" || email.replace(/ /g, '') === \"\";\r\n \r\n return (\r\n toggleScheduleMeetingModalVisible(false, \"none\")}>Cancelar,\r\n currentStep === 1\r\n && ,\r\n currentStep === 0\r\n ? radioValue === null\r\n ? \r\n : \r\n : ,\r\n ]}\r\n keyboard={false}\r\n closable={false}\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n {steps.map(item =>\r\n \r\n )}\r\n \r\n
\r\n {steps[currentStep].content === \"Contacto\"\r\n ?
\r\n

Por favor seleccione el medio de contacto de su preferencia.

\r\n this.onChangePhone(value)}\r\n />\r\n this.onChangeEmail(value.target.value)}/>\r\n \r\n \r\n \r\n \r\n {\" Whatsapp\"}\r\n \r\n \r\n \r\n \r\n {\" Llamada\"}\r\n \r\n \r\n \r\n \r\n {\" Correo electrónico\"}\r\n \r\n \r\n \r\n \r\n {\" Videollamada\"}\r\n \r\n \r\n \r\n \r\n
\r\n :
\r\n

\r\n La reunión será agendada para el {dateStringFormat} y el medio de contacto \r\n será {radioValue.toLowerCase()}\r\n {radioValue === \"Videollamada\" && \"\"}\r\n {radioValue !== \"Videollamada\" &&\r\n ({radioValue === \"Correo electrónico\"\r\n ? email : phone})\r\n }.\r\n

\r\n
{\"¿Desea confirmar?\"}\r\n
\r\n }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nScheduleMeetingModal.propTypes = {\r\n scheduleMeetingModalVisible: PropTypes.bool,\r\n toggleScheduleMeetingModalVisible: PropTypes.func,\r\n dateStringFormat: PropTypes.string,\r\n scheduleDate: PropTypes.string\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n scheduleMeeting: (data) => dispatch(scheduleMeeting(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ScheduleMeetingModal);","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport {Modal, Button} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Subcomponents\r\n\r\n//Styles\r\n\r\n//Constants\r\n\r\nclass ExitOfScheduleMeetingModal extends Component {\r\n constructor (props) {\r\n super(props);\r\n this.state = {\r\n };\r\n\r\n this.onConfirmButton = this.onConfirmButton.bind(this);\r\n }\r\n\r\n onConfirmButton(){\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.props.history.push(\"/\");\r\n }\r\n\r\n render () {\r\n const { visible, toggleExitModal } = this.props;\r\n\r\n return (\r\n toggleExitModal(false)}>Cancelar,\r\n \r\n ]}\r\n keyboard={false}\r\n closable={false}\r\n maskClosable={false}\r\n >\r\n
\r\n ¿Confirma que desea salir de Agendar reunión? Será dirigido al formulario del inicio y la información que ingresó se borrará.\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nExitOfScheduleMeetingModal.propTypes = {\r\n visible: PropTypes.bool,\r\n toggleExitModal: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(ExitOfScheduleMeetingModal));","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Select, Button} from 'antd';\r\nimport {Redirect} from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport esLocale from '../../../../../node_modules/@fullcalendar/core/locales/es-us';\r\n\r\n//Subcomponents\r\n\r\n//Styles\r\nimport '../../../../styles/partner/scheduleMeeting/scheduleMeeting.css';\r\n\r\n//Assets\r\nimport routes from '../../../../lib/generalUtils/routes';\r\nimport {getScheduleAvailability} from \"../../../../store/redux/actions/partner/partnerActions\";\r\nimport timeGridPlugin from \"../../../../../node_modules/@fullcalendar/timegrid\";\r\nimport interactionPlugin from \"../../../../../node_modules/@fullcalendar/interaction\";\r\nimport FullCalendar from \"../../../../../node_modules/@fullcalendar/react\";\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport ScheduleMeetingModal from \"./ScheduleMeetingModal\";\r\nimport {getFormatDate} from \"../../../../lib/generalUtils/functions\";\r\nimport ExitOfScheduleMeetingModal from \"./ExitOfScheduleMeetingModal\";\r\n\r\n//Constants\r\nclass ScheduleMeeting extends Component {\r\n\r\n calendarComponentRef = React.createRef();\r\n\r\n constructor(props){\r\n super(props);\r\n \r\n let selectedServices = JSON.parse(sessionStorage.getItem('selectedServices'));\r\n let availabilityServiceId = selectedServices[0].serviceId;\r\n\r\n this.state = {\r\n availabilityServiceId,\r\n selectedServices,\r\n loading: true,\r\n openCancelModal: false,\r\n valueText: null,\r\n exit: null,\r\n scheduleMeetingModalVisible: false,\r\n weekStartDay: null,\r\n weekEndDay: null,\r\n eventDate: null,\r\n exitModalVisible: false,\r\n mobileSize: false,\r\n availabilityList: []\r\n };\r\n\r\n this.cancelMeeting = this.cancelMeeting.bind(this);\r\n this.onChangeAvailabilityServiceId = this.onChangeAvailabilityServiceId.bind(this);\r\n this.toggleScheduleMeetingModalVisible = this.toggleScheduleMeetingModalVisible.bind(this);\r\n this.toggleExitModal = this.toggleExitModal.bind(this);\r\n };\r\n\r\n previousClicked(){\r\n this.setState({\r\n myData: \"previous\"\r\n });\r\n };\r\n\r\n nextClicked(){\r\n this.setState({\r\n myData: \"next\"\r\n });\r\n\r\n this.updateTimeLimits();\r\n };\r\n\r\n componentDidMount(){\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.resize();\r\n };\r\n\r\n resize(){\r\n this.setState({mobileSize: window.innerWidth <= 575});\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, prevContext){\r\n let dayLimitsChanged = prevState.weekStartDay == null ||\r\n prevState.weekEndDay == null ||\r\n prevState.weekStartDay.getTime() !== this.state.weekStartDay.getTime() ||\r\n prevState.weekEndDay.getTime() !== this.state.weekEndDay.getTime();\r\n \r\n let availabilityChanged = prevState.availabilityServiceId !== \r\n this.state.availabilityServiceId;\r\n\r\n let servicesChanged = prevState.selectedServices !== this.state.selectedServices;\r\n let optionsChanged = dayLimitsChanged || availabilityChanged || servicesChanged \r\n\r\n if (!optionsChanged) return;\r\n\r\n const { weekStartDay, weekEndDay, availabilityServiceId } = this.state;\r\n let serviceId = availabilityServiceId;\r\n let startDate = weekStartDay;\r\n let endDate = weekEndDay;\r\n let offset = new Date().getTimezoneOffset() / -60;\r\n startDate = this.toDateFormat(startDate);\r\n endDate = this.toDateFormat(endDate);\r\n\r\n this.props.getScheduleAvailability({ serviceId, startDate, endDate, offset });\r\n };\r\n\r\n cancelMeeting(){\r\n this.setState({\r\n openCancelModal: true,\r\n });\r\n };\r\n\r\n onChangeAvailabilityServiceId(serviceId){\r\n this.setState({ availabilityServiceId: serviceId })\r\n }\r\n\r\n toggleScheduleMeetingModalVisible(visible, eventDate){\r\n if (eventDate === \"none\") {\r\n this.setState({ scheduleMeetingModalVisible: visible });\r\n } else if (eventDate !== undefined) {\r\n this.setState({ eventDate, scheduleMeetingModalVisible: visible });\r\n }\r\n };\r\n\r\n setCurrentWeek(dateRange){\r\n const { weekStartDay, weekEndDay } = this.state;\r\n let startDate = dateRange.start;\r\n let endDate = dateRange.end;\r\n\r\n if (weekStartDay !== startDate && weekEndDay !== endDate) {\r\n this.setState({ weekStartDay: startDate, weekEndDay: endDate });\r\n }\r\n };\r\n\r\n toggleExitModal(isVisible){\r\n this.setState({ exitModalVisible: isVisible });\r\n };\r\n\r\n toDateFormat(dateTime){\r\n return dateTime.getFullYear() + \"-\" +\r\n (dateTime.getMonth() + 1 < 10 ? \"0\" : \"\") + (dateTime.getMonth() + 1) + \"-\" +\r\n (dateTime.getDate() < 10 ? \"0\" : \"\") + dateTime.getDate();\r\n }\r\n\r\n render(){\r\n const { scheduleAvailabilityList, rangeInMinutes, isFetching,\r\n exitScheduleMeeting, minTime, maxTime } = this.props;\r\n \r\n let { selectedServices, availabilityServiceId, scheduleMeetingModalVisible,\r\n eventDate, exitModalVisible, mobileSize } = this.state;\r\n \r\n let user_name = sessionStorage.user_name === undefined\r\n ? \"cliente\"\r\n : sessionStorage.user_name;\r\n \r\n let rangeMinutes = rangeInMinutes > 0 ? rangeInMinutes : 60;\r\n let dateStringFormat = scheduleMeetingModalVisible ? getFormatDate(eventDate, 3) +\r\n (eventDate.getHours() < 10 ? \"0\":\"\") + eventDate.getHours() + \":\" +\r\n (eventDate.getMinutes() < 10 ? \"0\":\"\") + eventDate.getMinutes() : \"\";\r\n\r\n let today = new Date();\r\n today.setHours(0,0,0,0);\r\n\r\n return(\r\n
\r\n {exitModalVisible && \r\n this.toggleExitModal(visible)}/>\r\n }\r\n {scheduleMeetingModalVisible &&\r\n this.toggleScheduleMeetingModalVisible(flag, date)}\r\n scheduleMeetingModalVisible={scheduleMeetingModalVisible}\r\n dateStringFormat={dateStringFormat} scheduleDate={eventDate.toString()}/>\r\n }\r\n {isFetching && \r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n

Agendar reunión

\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n Apreciado/a {user_name}, por favor escoja el horario que desea agendar haciendo clic en una de los espacios disponibles.\r\n \r\n \r\n \r\n \r\n \r\n\r\n {mobileSize\r\n ? \r\n this.toggleScheduleMeetingModalVisible(true, info.event.start)\r\n }\r\n dayRender={info =>\r\n this.setCurrentWeek(info.view.props.dateProfile.activeRange)\r\n }\r\n />\r\n : \r\n this.toggleScheduleMeetingModalVisible(true, info.event.start)\r\n }\r\n dayRender={info =>\r\n this.setCurrentWeek(info.view.props.dateProfile.activeRange)\r\n }\r\n />\r\n }\r\n\r\n \r\n
\r\n {\r\n (exitScheduleMeeting && eventDate !== null) &&\r\n \r\n }\r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nScheduleMeeting.propTypes = {\r\n getScheduleAvailability: PropTypes.func,\r\n scheduleAvailabilityList: PropTypes.array,\r\n rangeInMinutes: PropTypes.number,\r\n minTime: PropTypes.string,\r\n maxTime: PropTypes.string,\r\n logo: PropTypes.array\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.partner.isFetching,\r\n logo: state.partner.logo,\r\n exitScheduleMeeting: state.partner.exitScheduleMeeting,\r\n scheduleAvailabilityList: state.partner.scheduleAvailabilityList,\r\n minTime: state.partner.minTime,\r\n maxTime: state.partner.maxTime,\r\n rangeInMinutes: state.partner.rangeInMinutes\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getScheduleAvailability: (data) => dispatch(getScheduleAvailability(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ScheduleMeeting);","//Subcomponents\r\nimport request from './requestWrapper';\r\n\r\nfunction getAll() {\r\n return request({\r\n url: '/Connection/GetAll',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction getToAssign() {\r\n return request({\r\n url: '/MeetingRequest/GetAllToAssign',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction deleteMeetingRequest(data) {\r\n return request({\r\n url: '/MeetingRequest/Delete',\r\n method: 'DELETE',\r\n headers: data\r\n });\r\n};\r\n\r\nfunction assign(data) {\r\n return request({\r\n url: '/MeetingRequest/Assign',\r\n method: 'POST',\r\n data: data\r\n });\r\n};\r\n\r\nfunction getAllAssignedMeeting() {\r\n return request({\r\n url: '/Meeting/GetAllAssignedMeeting',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction getParamsByDay(data) {\r\n return request({\r\n url: '/Schedule/GetParamsByDay',\r\n method: 'GET',\r\n headers: data\r\n });\r\n};\r\n\r\nfunction addAll(data) {\r\n return request({\r\n url: '/Schedule/AddAll',\r\n method: 'POST',\r\n data: data\r\n });\r\n};\r\n\r\nfunction getSchedulingByDatesRange(data) {\r\n return request({\r\n url: '/Schedule/GetSchedulingByDatesRange',\r\n method: 'GET',\r\n headers: data\r\n });\r\n};\r\n\r\nfunction updateAll(data) {\r\n return request({\r\n url: '/Schedule/UpdateAll',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\nfunction getSummaryByScheduleId(data) {\r\n return request({\r\n url: '/Schedule/GetSummaryByScheduleId',\r\n method: 'GET',\r\n headers: data\r\n });\r\n};\r\n\r\nfunction getParams(){\r\n return request({\r\n url: '/Profiler/GetParams',\r\n method: 'GET'\r\n });\r\n}\r\n\r\nfunction activateAutomaticProfiler(){\r\n return request({\r\n url: '/Profiler/ActivateAutomaticProfiler',\r\n method: 'POST'\r\n });\r\n}\r\n\r\nfunction getAllInAMeeting(){\r\n return request({\r\n url: '/Meeting/GetAllInAMeeting',\r\n method: 'GET'\r\n });\r\n}\r\n\r\nfunction freeMeeting(data){\r\n return request({\r\n url: '/Meeting/FinalizeInAMeeting',\r\n method: 'PUT',\r\n headers: data\r\n });\r\n}\r\n\r\nconst profilerApi = {\r\n getAll, getToAssign, deleteMeetingRequest, assign, getAllAssignedMeeting, getParamsByDay, addAll, getSchedulingByDatesRange,\r\n updateAll, getSummaryByScheduleId, getParams, activateAutomaticProfiler, getAllInAMeeting, freeMeeting\r\n};\r\n\r\nexport default profilerApi;","//Libraries\r\nimport React from 'react';\r\nimport {notification, Icon} from 'antd';\r\n\r\n//Styles\r\nimport '../../../../styles/adviser/adviser.css';\r\nimport sound from '../../../../assets/sounds/canceledNotification.mp3';\r\n\r\nlet audio = undefined;\r\n\r\nconst CanceledMessageNotification = (messageList) =>{\r\n if(messageList.length > 0) playNotificationSound();\r\n let messages = [];\r\n messageList.forEach(message => {\r\n if (!messages.includes(messages)) {\r\n messages.push(message);\r\n notification.open({\r\n message: 'Se ha cancelado una reunión',\r\n description: message,\r\n icon: ,\r\n duration: 0,\r\n onClose: () => stopNotificationSound()\r\n })\r\n }\r\n });\r\n};\r\n\r\nconst playNotificationSound = () => {\r\n audio = new Audio(sound);\r\n audio.play();\r\n};\r\n\r\nconst stopNotificationSound = () => {\r\n audio.pause();\r\n};\r\n\r\nexport default CanceledMessageNotification;","import { profilerTypes } from '../../types';\r\nimport profilerApi from '../../../../api/profilerApi';\r\nimport {\r\n ERROR_MODAL,\r\n SUCCESS_MODAL_ON_OK\r\n} from \"../../../../components/ui/subComponents/modals/responseModals\";\r\nimport CanceledMessageNotification from \"../../../../components/ui/profiler/subcomponents/CanceledMessageNotification\";\r\n\r\n\r\nconst setIdleTimeout =(idleTimeout) => {\r\n return {\r\n type: profilerTypes.SET_IDLE_TIMEOUT,\r\n idleTimeout\r\n };\r\n};\r\n\r\nconst setIsFetching = (flag) => {\r\n return {\r\n type: '',\r\n flag\r\n };\r\n};\r\n\r\nexport const getAll = () => {\r\n return dispatch => {\r\n return profilerApi.getAll()\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_ADVISERS,\r\n isFetching: false,\r\n advisersList: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_ADVISERS,\r\n isFetching: false,\r\n advisersList: []\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const getAllToAssign = () => {\r\n return dispatch => {\r\n return profilerApi.getToAssign()\r\n .then(response => {\r\n CanceledMessageNotification(response.data.canceledMessages);\r\n dispatch({\r\n type: profilerTypes.GET_ALL_TO_ASSIGN,\r\n isFetching: false,\r\n waitingCustomersList: response.data.meetingRequestTableVm,\r\n canceledMessage: response.data.canceledMessages,\r\n availableKeys: response.data.availableKeys\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_TO_ASSIGN,\r\n isFetching: false,\r\n waitingCustomersList: [],\r\n availableKeys: true\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const deleteMeetingRequest = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.DELETE_MEETING_REQUEST,\r\n isFetching: true\r\n });\r\n return profilerApi.deleteMeetingRequest(data)\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.DELETE_MEETING_REQUEST,\r\n isFetching: false\r\n });\r\n SUCCESS_MODAL_ON_OK('Acción realizada correctamente', response.data, getAllToAssign());\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.DELETE_MEETING_REQUEST,\r\n isFetching: false\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const assign = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.ASSIGN,\r\n isFetching: true\r\n });\r\n return profilerApi.assign(data)\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.ASSIGN,\r\n isFetching: false\r\n });\r\n SUCCESS_MODAL_ON_OK('Acción realizada correctamente', response.data, getAllToAssign());\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.ASSIGN,\r\n isFetching: false\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const getAllAssignedMeeting = () => {\r\n return dispatch => {\r\n return profilerApi.getAllAssignedMeeting()\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_ASSIGNED_MEETING,\r\n isFetching: false,\r\n attendingCustomersList: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_ASSIGNED_MEETING,\r\n isFetching: false,\r\n attendingCustomersList: []\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const getParams = () => {\r\n return dispatch => {\r\n dispatch(setIsFetching(true));\r\n profilerApi.getParams()\r\n .then(response => {\r\n dispatch(setIdleTimeout(response.data.idleTimeout));\r\n dispatch(setIsFetching(false));\r\n })\r\n .catch(err => {\r\n dispatch(setIsFetching(false));\r\n });\r\n };\r\n};\r\n\r\nexport const getAllInAMeeting = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_IN_A_MEETING,\r\n isFetching: true,\r\n inMeetingList: []\r\n });\r\n profilerApi.getAllInAMeeting()\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_IN_A_MEETING,\r\n isFetching: false,\r\n inMeetingList: response.data\r\n });\r\n })\r\n .catch(err => {\r\n dispatch({\r\n type: profilerTypes.GET_ALL_IN_A_MEETING,\r\n isFetching: false,\r\n inMeetingList: []\r\n });\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n };\r\n};\r\n\r\nexport const freeMeeting = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.FREE_MEETING,\r\n isFetching: true\r\n });\r\n profilerApi.freeMeeting(data)\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.FREE_MEETING,\r\n isFetching: false\r\n });\r\n SUCCESS_MODAL_ON_OK('Acción realizada correctamente', response.data, getAllInAMeeting());\r\n })\r\n .catch(err => {\r\n dispatch({\r\n type: profilerTypes.FREE_MEETING,\r\n isFetching: false\r\n });\r\n ERROR_MODAL('Error realizando la acción', err.data);\r\n });\r\n };\r\n};","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Icon, Divider, Collapse, Row, Col} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n// Json\r\nimport { ConnectionStatusIcon } from '../../../../../assets/customIcons';\r\nimport { getAll } from \"../../../../../store/redux/actions/profiler/profilerHomeActions\";\r\n\r\n// Functions\r\nimport { getStateIconColor } from '../../../../../lib/generalUtils/functions';\r\n\r\n//Constants\r\nconst Panel = Collapse.Panel;\r\n\r\nclass WaitPanel extends Component {\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n intervalId: 0,\r\n activeKeys: []\r\n };\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getAll();\r\n\r\n let intervalId = setInterval(() => this.updateAdvisersList(), 5000);\r\n this.setState({ intervalId: intervalId });\r\n }\r\n });\r\n }\r\n componentWillUnmount(){\r\n clearInterval(this.state.intervalId);\r\n }\r\n\r\n updateAdvisersList(){\r\n this.props.getAll();\r\n };\r\n collapseActiveKeys() {\r\n const {advisersList} = this.props;\r\n const activeKeys = [];\r\n\r\n advisersList.forEach(adviserElement => {\r\n if (adviserElement.adviserConnectionStatusVm.length > 0)\r\n activeKeys.push(adviserElement.service)\r\n });\r\n\r\n return activeKeys;\r\n }\r\n\r\n render () {\r\n const { changeCollapsed, isCollapsed, advisersList } = this.props;\r\n const activeKeys = this.collapseActiveKeys();\r\n\r\n return (\r\n
\r\n

Asesores en línea

\r\n changeCollapsed(!isCollapsed)}>\r\n \r\n \r\n \r\n {activeKeys.length > 0 && \r\n {advisersList.map(adviserElement =>\r\n {adviserElement.service}} key={adviserElement.service}>\r\n {adviserElement.adviserConnectionStatusVm.map(adviser =>\r\n
\r\n \r\n \r\n

\r\n \r\n {adviser.name}\r\n

\r\n \r\n \r\n {adviser.queue}\r\n \r\n \r\n {adviser.timeInMeeting}\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\nWaitPanel.propTypes = {\r\n isCollapsed: PropTypes.bool,\r\n\r\n advisersList: PropTypes.array,\r\n\r\n getAll: PropTypes.func,\r\n changeCollapsed: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n advisersList: state.profilerHome.advisersList\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getAll: () => dispatch(getAll())\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(WaitPanel);","//Libraries\r\nimport React from 'react';\r\nimport { Alert } from 'antd';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass EmptyMessageAlert extends React.Component{\r\n constructor (props) {\r\n super(props);\r\n this.state = {\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\nEmptyMessageAlert.propTypes = {\r\n message: PropTypes.string\r\n};\r\n\r\nexport default EmptyMessageAlert;","import React from 'react';\r\nimport {Tooltip} from \"antd\";\r\n\r\nexport const waitTableColumns = [\r\n {\r\n title: 'Nombre',\r\n dataIndex: 'clientName',\r\n key: 'clientName',\r\n width: '200px',\r\n sorter: (a, b) => { return a.clientName.localeCompare(b.clientName) },\r\n render: text =>

{text}

\r\n }, {\r\n title: 'Tiempo de espera',\r\n dataIndex: 'waitTime',\r\n key: 'waitTime',\r\n width: '200px',\r\n sorter: (a, b) => { return a.waitTime.localeCompare(b.waitTime) }\r\n }, {\r\n title: 'Servicios',\r\n dataIndex: 'requiredServices',\r\n key: 'requiredServices',\r\n width: '200px',\r\n sorter: (a, b) => { return a.requiredServices.localeCompare(b.requiredServices) }\r\n }, {\r\n title: 'Asesor',\r\n dataIndex: 'adviserName',\r\n key: 'adviserName',\r\n width: '200px',\r\n sorter: (a, b) => { return a.adviserName.localeCompare(b.adviserName) },\r\n render: text =>

{text}

\r\n }, {\r\n title: 'Origen',\r\n dataIndex: 'stateRequest',\r\n key: 'stateRequest',\r\n width: '150px',\r\n sorter: (a, b) => { return a.stateRequest.localeCompare(b.stateRequest) }\r\n }, {\r\n title: 'Canal',\r\n dataIndex: 'channel',\r\n key: 'channel',\r\n width: '200px',\r\n sorter: (a, b) => { return a.channel.localeCompare(b.channel) }\r\n }, {\r\n title: 'Ciudades',\r\n dataIndex: 'citiesOfInterest',\r\n key: 'citiesOfInterest',\r\n width: '200px',\r\n sorter: (a, b) => { return a.citiesOfInterest.localeCompare(b.citiesOfInterest) }\r\n }, {\r\n title: 'Acciones',\r\n dataIndex: 'customerActions',\r\n key: 'customerActions',\r\n width: '100px',\r\n fixed: 'right'\r\n }];\r\n\r\nexport const waitTableDirectorColumns = [\r\n {\r\n title: 'Nombre',\r\n dataIndex: 'clientName',\r\n key: 'clientName',\r\n width: '200px',\r\n sorter: (a, b) => { return a.clientName.localeCompare(b.clientName) },\r\n render: text =>

{text}

\r\n }, {\r\n title: 'Canal',\r\n dataIndex: 'channel',\r\n key: 'channel',\r\n width: '200px',\r\n sorter: (a, b) => { return a.channel.localeCompare(b.channel) }\r\n }, {\r\n title: 'Servicios',\r\n dataIndex: 'requiredServices',\r\n key: 'requiredServices',\r\n width: '200px',\r\n sorter: (a, b) => { return a.requiredServices.localeCompare(b.requiredServices) }\r\n }, {\r\n title: 'Ciudades',\r\n dataIndex: 'citiesOfInterest',\r\n key: 'citiesOfInterest',\r\n width: '200px',\r\n sorter: (a, b) => { return a.citiesOfInterest.localeCompare(b.citiesOfInterest) }\r\n }, {\r\n title: 'Tiempo de espera',\r\n dataIndex: 'waitTime',\r\n key: 'waitTime',\r\n width: '200px',\r\n sorter: (a, b) => { return a.waitTime.localeCompare(b.waitTime) }\r\n }, {\r\n title: 'Origen',\r\n dataIndex: 'stateRequest',\r\n key: 'stateRequest',\r\n width: '150px',\r\n sorter: (a, b) => { return a.stateRequest.localeCompare(b.stateRequest) }\r\n }, {\r\n title: 'Asesor',\r\n dataIndex: 'adviserName',\r\n key: 'adviserName',\r\n width: '200px',\r\n sorter: (a, b) => { return a.adviserName.localeCompare(b.adviserName) },\r\n render: text =>

{text}

\r\n }];","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Button, Modal, Row, Col, Select} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport {ConnectionStatusIcon} from \"../../../../../assets/customIcons\";\r\n\r\n//Functions\r\nimport { getStateIconColor } from '../../../../../lib/generalUtils/functions';\r\nimport { assign } from \"../../../../../store/redux/actions/profiler/profilerHomeActions\";\r\n\r\n//Services\r\n\r\n//Constants\r\nconst { Option, OptGroup } = Select;\r\n\r\n// Functions\r\n\r\nclass AssignAdviserModal extends Component {\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n selectedAdviser: null\r\n };\r\n this.onAssignAdviser = this.onAssignAdviser.bind(this);\r\n this.onChangeAdviser = this.onChangeAdviser.bind(this);\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, prevContext){\r\n if(prevProps.isFetching !== this.props.isFetching && !this.props.isFetching){\r\n this.props.toggleModalToAssign(null, false)\r\n }\r\n };\r\n\r\n onAssignAdviser(meetingRequestIdToAssign){\r\n const { selectedAdviser } = this.state;\r\n let data = {\r\n \"adviserId\": parseInt(selectedAdviser.split(\" - \")[1]),\r\n \"meetingRequestId\": meetingRequestIdToAssign\r\n };\r\n\r\n this.props.assign(data);\r\n };\r\n onChangeAdviser(value){\r\n this.setState({ selectedAdviser: value });\r\n }\r\n\r\n render () {\r\n const { selectedAdviser } = this.state;\r\n const { visible, toggleModalToAssign, meetingRequestIdToAssign, isFetching, advisersList } = this.props;\r\n const isReadyToSave = selectedAdviser !== null;\r\n\r\n return (\r\n toggleModalToAssign(null, false)} loading={isFetching}>Cancelar,\r\n isReadyToSave\r\n ? \r\n : \r\n ]}\r\n >\r\n \r\n \r\n

Por favor, seleccione el asesor a asignar:

\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nAssignAdviserModal.propTypes = {\r\n isFetching: PropTypes.bool,\r\n visible: PropTypes.bool,\r\n\r\n meetingRequestIdToAssign: PropTypes.number,\r\n\r\n advisersList: PropTypes.array,\r\n\r\n toggleModalToAssign: PropTypes.func,\r\n assign: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerHome.isFetching,\r\n advisersList: state.profilerHome.advisersList\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n assign: (data) => dispatch(assign(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AssignAdviserModal);","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Table, Input, Icon, Tooltip, Popconfirm, Col } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Services\r\nimport { getAllToAssign, deleteMeetingRequest } from \"../../../../../store/redux/actions/profiler/profilerHomeActions\";\r\n\r\n//Components\r\nimport EmptyMessageAlert from '../../../general/EmptyMessageAlert';\r\n\r\n//Constants\r\nimport { emptyListMessage} from '../../../../../lib/generalUtils/functions';\r\nimport {waitTableColumns, waitTableDirectorColumns} from './waitTableColumns';\r\nimport AssignAdviserModal from \"./AssignAdviserModal\";\r\nimport {Roles} from \"../../../../../lib/generalUtils/constants\";\r\n\r\nconst Search = Input.Search;\r\n\r\n// Functions\r\n\r\nclass WaitTable extends Component {\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n kBk: 0,\r\n intervalId: 0,\r\n filterText: null,\r\n filteredData: [],\r\n\r\n modalToAssignVisible: false,\r\n meetingRequestIdToAssign: null,\r\n };\r\n this.handleFilterData = this.handleFilterData.bind(this);\r\n this.deleteMeetingRequest = this.deleteMeetingRequest.bind(this);\r\n this.toggleModalToAssign = this.toggleModalToAssign.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getAllToAssign();\r\n\r\n let intervalId = setInterval(() => this.updateWaitingCustomersList(), 5000);\r\n this.setState({ intervalId: intervalId });\r\n }\r\n });\r\n };\r\n componentWillUnmount(){\r\n clearInterval(this.state.intervalId);\r\n }\r\n componentDidUpdate(prevProps, prevState, prevContext){\r\n if(prevProps.isFetching !== this.props.isFetching && !this.props.isFetching){\r\n this.setState({ kBk: this.state.kBk + 1 });\r\n }\r\n };\r\n\r\n updateWaitingCustomersList(){\r\n this.props.getAllToAssign();\r\n };\r\n setTableData(){\r\n const { waitingCustomersList } = this.props;\r\n let tableData = [];\r\n\r\n waitingCustomersList.forEach(customer => {\r\n let elementToPush = {\r\n meetingRequestId: customer.meetingRequestId,\r\n clientName: customer.clientName,\r\n channel: customer.channel,\r\n requiredServices: customer.requiredServices,\r\n citiesOfInterest: customer.citiesOfInterest,\r\n waitTime: customer.waitTime,\r\n stateRequest: customer.stateRequest,\r\n adviserName: customer.adviserName,\r\n customerActions:\r\n
\r\n {this.props.availableKeys\r\n ? \r\n this.toggleModalToAssign(customer.meetingRequestId, true)}/>\r\n \r\n : \r\n }\r\n   \r\n \r\n this.deleteMeetingRequest(customer.meetingRequestId)}>\r\n \r\n \r\n \r\n
\r\n };\r\n tableData.push(elementToPush);\r\n });\r\n return tableData;\r\n };\r\n handleFilterData(value){\r\n const { waitingCustomersList } = this.props;\r\n this.setState({ filterText: value.replace(/ /g, '') === '' ? null : value });\r\n let filteredData = [];\r\n\r\n waitingCustomersList.forEach(element => {\r\n let valueFormat = value.toLowerCase().replace(/á/g, 'a').replace(/é/g, 'e').replace(/í/g, 'i').replace(/ó/g, 'o').replace(/ú/g, 'u');\r\n let clientNameFormat = element.clientName.toLowerCase().replace(/á/g, 'a').replace(/é/g, 'e').replace(/í/g, 'i').replace(/ó/g, 'o').replace(/ú/g, 'u');\r\n let requiredServicesFormat = element.requiredServices.toLowerCase().replace(/á/g, 'a').replace(/é/g, 'e').replace(/í/g, 'i').replace(/ó/g, 'o').replace(/ú/g, 'u');\r\n if(clientNameFormat.includes(valueFormat) || requiredServicesFormat.includes(valueFormat)){\r\n filteredData.push(element)\r\n }}\r\n );\r\n this.setState({ filteredData: filteredData });\r\n };\r\n deleteMeetingRequest(meetingRequestId){\r\n let data = {\r\n \"meetingRequestId\": meetingRequestId\r\n };\r\n this.props.deleteMeetingRequest(data);\r\n }\r\n toggleModalToAssign(meetingRequestId, visible){\r\n this.setState({ modalToAssignVisible: visible, meetingRequestIdToAssign: meetingRequestId })\r\n }\r\n\r\n render () {\r\n const { filteredData, filterText, modalToAssignVisible, meetingRequestIdToAssign } = this.state;\r\n const { isCollapsed } = this.props;\r\n const isFilterTextEmpty = filterText === null;\r\n const waitingCustomersList = this.setTableData();\r\n const emptyData = isFilterTextEmpty ? waitingCustomersList.length === 0 : filteredData.length === 0;\r\n\r\n return (\r\n
\r\n {modalToAssignVisible && this.toggleModalToAssign()}\r\n meetingRequestIdToAssign={meetingRequestIdToAssign}/>}\r\n \r\n this.handleFilterData(value)} onChange={value => this.handleFilterData(value.target.value)}/>\r\n \r\n {emptyData ?\r\n \r\n : \r\n }\r\n \r\n );\r\n };\r\n}\r\n\r\nWaitTable.propTypes = {\r\n isCollapsed: PropTypes.bool,\r\n isFetching: PropTypes.bool,\r\n\r\n waitingCustomersList: PropTypes.array,\r\n availableKeys: PropTypes.bool,\r\n\r\n getAllToAssign: PropTypes.func,\r\n deleteMeetingRequest: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerHome.isFetching,\r\n waitingCustomersList: state.profilerHome.waitingCustomersList,\r\n availableKeys: state.profilerHome.availableKeys\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getAllToAssign: () => dispatch(getAllToAssign()),\r\n deleteMeetingRequest: (data) => dispatch(deleteMeetingRequest(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(WaitTable);","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Row, Col, Icon, Divider, Collapse, Layout} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from \"react-redux/es/connect/connect\";\r\n\r\n// Components\r\nimport WaitPanel from \"./WaitPanel\";\r\nimport WaitTable from \"./WaitTable\";\r\nimport {ConnectionStatusIcon} from \"../../../../../assets/customIcons\";\r\nimport { getStateIconColor } from \"../../../../../lib/generalUtils/functions\";\r\n\r\n//Constants\r\nconst { Sider } = Layout;\r\nconst Panel = Collapse.Panel;\r\n\r\n// Functions\r\n\r\nclass Wait extends Component {\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n isCollapsed: false\r\n };\r\n this.changeCollapsed = this.changeCollapsed.bind(this);\r\n };\r\n\r\n changeCollapsed(state){\r\n this.setState({ isCollapsed: state });\r\n }\r\n\r\n render () {\r\n const { isCollapsed } = this.state;\r\n const { advisersList } = this.props;\r\n\r\n return (\r\n \r\n \r\n this.changeCollapsed(!isCollapsed)}>\r\n \r\n \r\n \r\n \r\n this.changeCollapsed(state)}/>\r\n \r\n \r\n {!isCollapsed &&
}\r\n this.changeCollapsed(!isCollapsed)}>\r\n

Asesores en línea

\r\n \r\n {\r\n {advisersList.map(adviserElement =>\r\n {adviserElement.service}} key={adviserElement.service}>\r\n {adviserElement.adviserConnectionStatusVm.map(adviser =>\r\n
\r\n \r\n
\r\n

\r\n \r\n {adviser.name}\r\n

\r\n \r\n \r\n {adviser.queue}\r\n \r\n \r\n {adviser.timeInMeeting}\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\nWait.propTypes = {\r\n advisersList: PropTypes.array\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n advisersList: state.profilerHome.advisersList\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = () => {\r\n return {\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Wait);","export const attentionTableColumns = [\r\n {\r\n title: 'Nombre',\r\n dataIndex: 'clientName',\r\n key: 'clientName',\r\n width: '150px',\r\n sorter: (a, b) => { return a.clientName.localeCompare(b.clientName) }\r\n }, {\r\n title: 'Canal',\r\n dataIndex: 'channel',\r\n key: 'channel',\r\n width: '150px',\r\n sorter: (a, b) => { return a.channel.localeCompare(b.channel) }\r\n }, {\r\n title: 'Servicios',\r\n dataIndex: 'requiredServices',\r\n key: 'requiredServices',\r\n width: '150px',\r\n sorter: (a, b) => { return a.requiredServices.localeCompare(b.requiredServices) }\r\n }, {\r\n title: 'Tiempo de atención',\r\n dataIndex: 'assignedTime',\r\n key: 'assignedTime',\r\n width: '150px',\r\n sorter: (a, b) => { return a.assignedTime.localeCompare(b.assignedTime) }\r\n }, {\r\n title: 'Estado',\r\n dataIndex: 'stateMeeting',\r\n key: 'stateMeeting',\r\n width: '150px',\r\n sorter: (a, b) => { return a.stateMeeting.localeCompare(b.stateMeeting) }\r\n }, {\r\n title: 'Asesor',\r\n dataIndex: 'adviserName',\r\n key: 'adviserName',\r\n width: '150px',\r\n sorter: (a, b) => { return a.adviserName.localeCompare(b.adviserName) }\r\n }];","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Col, Input, Row, Table} from \"antd\";\r\nimport PropTypes from 'prop-types';\r\nimport connect from \"react-redux/es/connect/connect\";\r\n\r\n//Components\r\nimport { attentionTableColumns } from \"./attentionTableColumns\";\r\nimport {getAllAssignedMeeting} from \"../../../../../store/redux/actions/profiler/profilerHomeActions\";\r\nimport EmptyMessageAlert from \"../../../general/EmptyMessageAlert\";\r\n\r\n//Constants\r\nconst Search = Input.Search;\r\n\r\n\r\nclass Attention extends Component {\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n filterText: null,\r\n filteredData: [],\r\n intervalId: 0\r\n };\r\n };\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getAllAssignedMeeting();\r\n\r\n let intervalId = setInterval(() => this.updateAttendingCustomersList(), 10000);\r\n this.setState({ intervalId: intervalId });\r\n }\r\n });\r\n };\r\n componentWillUnmount(){\r\n clearInterval(this.state.intervalId);\r\n }\r\n updateAttendingCustomersList(){\r\n this.props.getAllAssignedMeeting();\r\n };\r\n handleFilterData(value){\r\n const { attendingCustomersList } = this.props;\r\n this.setState({ filterText: value.replace(/ /g, '') === '' ? null : value });\r\n let filteredData = [];\r\n\r\n attendingCustomersList.forEach(element => {\r\n let valueFormat = value.toLowerCase().replace(/á/g, 'a').replace(/é/g, 'e').replace(/í/g, 'i').replace(/ó/g, 'o').replace(/ú/g, 'u');\r\n let clientNameFormat = element.clientName.toLowerCase().replace(/á/g, 'a').replace(/é/g, 'e').replace(/í/g, 'i').replace(/ó/g, 'o').replace(/ú/g, 'u');\r\n let requiredServicesFormat = element.requiredServices.toLowerCase().replace(/á/g, 'a').replace(/é/g, 'e').replace(/í/g, 'i').replace(/ó/g, 'o').replace(/ú/g, 'u');\r\n if(clientNameFormat.includes(valueFormat) || requiredServicesFormat.includes(valueFormat)){\r\n filteredData.push(element)\r\n }}\r\n );\r\n this.setState({ filteredData: filteredData });\r\n };\r\n\r\n render () {\r\n const { attendingCustomersList } = this.props;\r\n const { filteredData, filterText } = this.state;\r\n const isFilterTextEmpty = filterText === null;\r\n const emptyData = isFilterTextEmpty ? attendingCustomersList.length === 0 : filteredData.length === 0;\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n this.handleFilterData(value)} onChange={value => this.handleFilterData(value.target.value)}/>\r\n \r\n {emptyData ?\r\n \r\n :
\r\n }\r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nAttention.propTypes = {\r\n isFetching: PropTypes.bool,\r\n\r\n attendingCustomersList: PropTypes.array,\r\n\r\n getAllAssignedMeeting: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerHome.isFetching,\r\n attendingCustomersList: state.profilerHome.attendingCustomersList\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getAllAssignedMeeting: () => dispatch(getAllAssignedMeeting())\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Attention);","export const zoomKeysColumns = [\r\n {\r\n title: 'Asesor',\r\n dataIndex: 'adviserName',\r\n key: 'adviserName',\r\n width: '200px',\r\n sorter: (a, b) => { return a.adviserName.localeCompare(b.adviserName) }\r\n }, {\r\n title: 'Cliente',\r\n dataIndex: 'clientName',\r\n key: 'clientName',\r\n width: '200px',\r\n sorter: (a, b) => { return a.clientName.localeCompare(b.clientName) }\r\n }, {\r\n title: 'Liberar',\r\n dataIndex: 'actions',\r\n key: 'actions',\r\n width: '200px'\r\n }];","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Col, Row, Table, Tooltip, Popconfirm, Icon} from \"antd\";\r\nimport PropTypes from 'prop-types';\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport { zoomKeysColumns } from \"../zoomKeys/zoomKeysColumns\";\r\nimport { getAllInAMeeting, freeMeeting } from \"../../../../../store/redux/actions/profiler/profilerHomeActions\";\r\nimport LoadingComponent from \"../../../general/LoadingComponent\";\r\nimport EmptyMessageAlert from \"../../../general/EmptyMessageAlert\";\r\n\r\n//Constants\r\n\r\n\r\nclass ZoomKeys extends Component {\r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n\r\n };\r\n };\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getAllInAMeeting();\r\n }\r\n });\r\n };\r\n\r\n freeMeeting(meetingId){\r\n let data = {\r\n meetingId\r\n };\r\n\r\n this.props.freeMeeting(data);\r\n }\r\n\r\n setTableData(){\r\n const { inMeetingList } = this.props;\r\n let tableData = [];\r\n\r\n inMeetingList.forEach(key => {\r\n let elementToPush = {\r\n meetingId: key.meetingId,\r\n adviserName: key.adviserName,\r\n clientName: key.clientName,\r\n actions:\r\n \r\n this.freeMeeting(key.meetingId)}>\r\n \r\n \r\n \r\n };\r\n tableData.push(elementToPush);\r\n });\r\n\r\n return tableData;\r\n };\r\n\r\n render () {\r\n let { isFetching } = this.props;\r\n const inMeetingList = this.setTableData();\r\n const emptyData = inMeetingList.length === 0;\r\n\r\n return (\r\n \r\n {isFetching && }\r\n\r\n \r\n
\r\n {emptyData ?\r\n \r\n :
\r\n }\r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nZoomKeys.propTypes = {\r\n isFetching: PropTypes.bool,\r\n inMeetingList: PropTypes.array,\r\n getAllSharedBusy: PropTypes.func,\r\n freeMeeting: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerHome.isFetching,\r\n inMeetingList: state.profilerHome.inMeetingList\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getAllInAMeeting: () => dispatch(getAllInAMeeting()),\r\n freeMeeting: (data) => dispatch(freeMeeting(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ZoomKeys);","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Layout, Menu} from \"antd\";\r\nimport {NavLink, withRouter} from \"react-router-dom\";\r\nimport PropTypes from 'prop-types';\r\n\r\n//Styles\r\nimport '../../../../styles/profiler/profilerHome.css';\r\n\r\n//Subcomponents\r\nimport Routes from \"../../../../lib/generalUtils/routes\";\r\nimport Wait from \"./wait/Wait\";\r\nimport Attention from \"./attention/Attention\";\r\nimport ZoomKeys from \"./zoomKeys/ZoomKeys\";\r\nimport {setCurrentKeyActive} from \"../../../../store/redux/actions/layout/headerMenuActions\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\n\r\nimport { getParams } from \"../../../../store/redux/actions/profiler/profilerHomeActions\";\r\n\r\n//Constants\r\nconst { Header, Content } = Layout;\r\n\r\n\r\n\r\nclass Home extends Component {\r\n constructor (props){\r\n\r\n super(props);\r\n\r\n this.state = {};\r\n this.checkIdle = this.checkIdle.bind(this);\r\n this.IDLE_LIMIT = 300000; //5 minutes\r\n this.lastActivity = Date.now();\r\n };\r\n\r\n onChangeMenuOption = (route) => {\r\n this.props.setCurrentKeyActive(route.key);\r\n };\r\n\r\n componentDidMount() {\r\n this.activityChecker = setInterval(this.checkIdle, 300000);\r\n document.addEventListener('click', () => {\r\n this.lastActivity = Date.now();\r\n });\r\n //this.props.getParams();\r\n this.IDLE_LIMIT = this.props.idleTimeout;\r\n }\r\n\r\n checkIdle(){\r\n const currentTime = Date.now();\r\n if(currentTime - this.lastActivity > this.IDLE_LIMIT) {\r\n console.log(\"Profiler it's been iddle, gotta do something\");\r\n //TODO: Call service which activates automatic profiler\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(this.activityChecker);\r\n }\r\n\r\n\r\n render () {\r\n const { pathname } = this.props.location;\r\n const { currentRoute } = this.props;\r\n const isWaitingCustomers = pathname === Routes.profilerWaitingCustomers;\r\n const isAttendingCustomers = pathname === Routes.profilerAttendingCustomers;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n En espera\r\n \r\n \r\n \r\n \r\n En atención\r\n \r\n \r\n {/*\r\n \r\n Keys\r\n \r\n */}\r\n \r\n
\r\n \r\n {isWaitingCustomers\r\n ? \r\n : isAttendingCustomers\r\n ? \r\n : \r\n }\r\n \r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nHome.propTypes = {\r\n currentRoute: PropTypes.string,\r\n setCurrentKeyActive: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n currentRoute: state.headerMenu.currentRoute,\r\n idleTimeout: state.profilerHome.idleTimeout\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setCurrentKeyActive: (route) => dispatch(setCurrentKeyActive(route)),\r\n getParams: () => dispatch(getParams())\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(Home));","import { profilerTypes } from '../../types';\r\nimport profilerApi from '../../../../api/profilerApi';\r\nimport {\r\n ERROR_MODAL, SUCCESS_MODAL_ON_OK\r\n} from \"../../../../components/ui/subComponents/modals/responseModals\";\r\n\r\nexport const getParamsByDay = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE_PARAMS,\r\n isFetching: true,\r\n isDefault: true,\r\n morningEvents: [],\r\n afternoonEvents: [],\r\n });\r\n return profilerApi.getParamsByDay(data)\r\n .then(response => {\r\n let morningEvents = [];\r\n let afternoonEvents = [];\r\n\r\n response.data.events.forEach(event =>\r\n event.isMorning ?\r\n morningEvents.push(event)\r\n : afternoonEvents.push(event)\r\n );\r\n\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE_PARAMS,\r\n isFetching: false,\r\n isDefault: response.data.isDefault,\r\n morningEvents: morningEvents,\r\n afternoonEvents: afternoonEvents,\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE_PARAMS,\r\n isFetching: false,\r\n isDefault: true,\r\n morningEvents: [],\r\n afternoonEvents: [],\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const addAll = (data, currentWeek) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.ADD_SCHEDULE,\r\n isFetching: true\r\n });\r\n return profilerApi.addAll(data)\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.ADD_SCHEDULE,\r\n isFetching: false\r\n });\r\n SUCCESS_MODAL_ON_OK('Acción realizada correctamente', response.data, getSchedulingByDatesRange({ startDate: currentWeek[0], endDate: currentWeek[1] }))\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.ADD_SCHEDULE,\r\n isFetching: false\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const getSchedulingByDatesRange = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE,\r\n isFetching: true,\r\n eventsSchedule: []\r\n });\r\n return profilerApi.getSchedulingByDatesRange(data)\r\n .then(response => {\r\n let weekEvents = [];\r\n\r\n response.data.forEach(event => {\r\n let endRecur = new Date(event.date);\r\n endRecur.setDate(endRecur.getDate() + 1);\r\n endRecur = endRecur.toLocaleDateString(\"es\", { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\\//g, \"-\");\r\n let endRecurSplit = endRecur.split(\"-\");\r\n endRecur = endRecurSplit[2] + \"-\" + (endRecurSplit[1].length === 1 ? \"0\":\"\") + endRecurSplit[1] + \"-\" +\r\n (endRecurSplit[0].length === 1 ? \"0\":\"\") + endRecurSplit[0];\r\n\r\n let eventToPush = {\r\n id: event.id,\r\n title: event.title.replace('&', \"\\n\").replace(/ - /g, \"\\n\"),\r\n start: event.date.substring(0, 10),\r\n end: event.date.substring(0, 10),\r\n startTime: event.startTime + ':00',\r\n endTime: event.endTime + ':00',\r\n allDay: false,\r\n startRecur: event.date.substring(0, 10),\r\n endRecur: endRecur,\r\n editable: false\r\n };\r\n weekEvents.push(eventToPush);\r\n });\r\n\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE,\r\n isFetching: false,\r\n eventsSchedule: weekEvents\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE,\r\n isFetching: false,\r\n eventsSchedule: []\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const updateAll = (data, currentWeek) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.UPDATE_SCHEDULE,\r\n isFetching: true\r\n });\r\n return profilerApi.updateAll(data)\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.UPDATE_SCHEDULE,\r\n isFetching: false\r\n });\r\n SUCCESS_MODAL_ON_OK('Acción realizada correctamente', response.data, getSchedulingByDatesRange({ startDate: currentWeek[0], endDate: currentWeek[1] }))\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.UPDATE_SCHEDULE,\r\n isFetching: false\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const getSummaryByScheduleId = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE_SUMMARY,\r\n isFetching: true,\r\n summary: []\r\n });\r\n return profilerApi.getSummaryByScheduleId(data)\r\n .then(response => {\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE_SUMMARY,\r\n isFetching: false,\r\n summary: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: profilerTypes.GET_SCHEDULE_SUMMARY,\r\n isFetching: false,\r\n summary: []\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Modal, Button, TimePicker, Row, Col, InputNumber, Checkbox, Form, Icon} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport moment from \"moment-timezone/builds/moment-timezone-with-data\";\r\n\r\n//Subcomponents\r\nimport { getParamsByDay, addAll, updateAll } from \"../../../../store/redux/actions/profiler/profilerScheduleActions\";\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport {getDisabledHours} from \"../../../../lib/generalUtils/functions\";\r\n\r\n//Styles\r\n\r\n//Constants\r\nconst format = 'HH:mm';\r\nlet morningId = 1;\r\nlet afternoonId = 1;\r\n\r\nclass AddOrEditScheduleModal extends Component {\r\n constructor (props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n\r\n readyMorningEventsToEdit: null,\r\n readyAfternoonEventsToEdit: null,\r\n\r\n morningStartHour: null,\r\n morningEndHour: null,\r\n morningAdvisorsQuantityList: [],\r\n\r\n afternoonStartHour: null,\r\n afternoonEndHour: null,\r\n afternoonAdvisorsQuantityList: [],\r\n\r\n recur: false,\r\n formHasErrors: false\r\n };\r\n\r\n this.onChangeMorningStartHour = this.onChangeMorningStartHour.bind(this);\r\n this.onChangeMorningEndHour = this.onChangeMorningEndHour.bind(this);\r\n this.onChangeAfternoonStartHour = this.onChangeAfternoonStartHour.bind(this);\r\n this.onChangeAfternoonEndHour = this.onChangeAfternoonEndHour.bind(this);\r\n this.onChangeMorningAdvisorQuantity = this.onChangeMorningAdvisorQuantity.bind(this);\r\n this.onChangeAfternoonAdvisorQuantity = this.onChangeAfternoonAdvisorQuantity.bind(this);\r\n this.onChangeRecur = this.onChangeRecur.bind(this);\r\n this.onSaveSchedule = this.onSaveSchedule.bind(this);\r\n this.onUpdateSchedule = this.onUpdateSchedule.bind(this);\r\n this.applyTransformationToHour = this.applyTransformationToHour.bind(this);\r\n this.setFormMorningValuesToEdit = this.setFormMorningValuesToEdit.bind(this);\r\n this.setFormAfternoonValuesToEdit = this.setFormAfternoonValuesToEdit.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getParamsByDay({ \"dateTime\": this.props.dateStringFormat });\r\n }\r\n });\r\n }\r\n componentDidUpdate(prevProps, prevState, prevContext){\r\n if(prevProps.isFetching !== this.props.isFetching && !this.props.isFetching){\r\n for(let i = 1; i < this.props.morningEvents.length; i++){\r\n this.add('morningKeys');\r\n }\r\n for(let i = 1; i < this.props.afternoonEvents.length; i++){\r\n this.add('afternoonKeys');\r\n }\r\n this.setState({ readyMorningEventsToEdit: false, readyAfternoonEventsToEdit: false });\r\n }\r\n };\r\n\r\n setFormMorningValuesToEdit(morningKeys){\r\n const { dateStringFormat, morningEvents } = this.props;\r\n\r\n this.setState({ readyMorningEventsToEdit: true });\r\n morningKeys.forEach((key, k) => {\r\n this.props.form.setFieldsValue({\r\n [`morningSchedule[${key}].morningStartHour`]: moment(moment.utc(dateStringFormat + \" \" + morningEvents[k].startHour).tz(\"GMT\"), format),\r\n [`morningSchedule[${key}].morningEndHour`]: moment(moment.utc(dateStringFormat + \" \" + morningEvents[k].endHour).tz(\"GMT\"), format),\r\n });\r\n for(let j = 0; j < morningEvents[k].advisorsQuantities.length; j++){\r\n let service = morningEvents[k].advisorsQuantities[j].serviceId + \"-\" + morningEvents[k].advisorsQuantities[j].serviceName;\r\n this.props.form.setFieldsValue({\r\n [`morningSchedule[${key}].morningAdvisorsQuantityList.${service}`]: morningEvents[k].advisorsQuantities[j].quantity\r\n });\r\n }\r\n })\r\n }\r\n setFormAfternoonValuesToEdit(afternoonKeys){\r\n const { dateStringFormat, afternoonEvents } = this.props;\r\n\r\n this.setState({ readyAfternoonEventsToEdit: true });\r\n afternoonKeys.forEach((key, k) => {\r\n this.props.form.setFieldsValue({\r\n [`afternoonSchedule[${key}].afternoonStartHour`]: moment(moment.utc(dateStringFormat + \" \" + afternoonEvents[k].startHour).tz(\"GMT\"), format),\r\n [`afternoonSchedule[${key}].afternoonEndHour`]: moment(moment.utc(dateStringFormat + \" \" + afternoonEvents[k].endHour).tz(\"GMT\"), format),\r\n });\r\n for(let j = 0; j < afternoonEvents[k].advisorsQuantities.length; j++){\r\n let service = afternoonEvents[k].advisorsQuantities[j].serviceId + \"-\" + afternoonEvents[k].advisorsQuantities[j].serviceName;\r\n this.props.form.setFieldsValue({\r\n [`afternoonSchedule[${key}].afternoonAdvisorsQuantityList.${service}`]: afternoonEvents[k].advisorsQuantities[j].quantity\r\n });\r\n }\r\n })\r\n }\r\n onChangeMorningStartHour(value, key){\r\n this.props.form.setFieldsValue({\r\n [`morningSchedule[${key}].morningStartHour`] : value\r\n });\r\n }\r\n onChangeMorningEndHour(value, key){\r\n this.props.form.setFieldsValue({\r\n [`morningSchedule[${key}].morningEndHour`] : value\r\n });\r\n }\r\n onChangeAfternoonStartHour(value, key){\r\n this.props.form.setFieldsValue({\r\n [`afternoonSchedule[${key}].afternoonStartHour`] : value\r\n });\r\n }\r\n onChangeAfternoonEndHour(value, key){\r\n this.props.form.setFieldsValue({\r\n [`afternoonSchedule[${key}].afternoonEndHour`] : value\r\n });\r\n }\r\n onChangeMorningAdvisorQuantity(value, key, service){\r\n this.props.form.setFieldsValue({\r\n [`morningSchedule[${key}].morningAdvisorsQuantityList.${service}`]: value\r\n });\r\n }\r\n onChangeAfternoonAdvisorQuantity(value, key, service){\r\n this.props.form.setFieldsValue({\r\n [`afternoonSchedule[${key}].afternoonAdvisorsQuantityList.${service}`]: value\r\n });\r\n }\r\n onChangeRecur(value){\r\n this.setState({ recur: value })\r\n }\r\n onSaveSchedule(){\r\n let events = [];\r\n this.props.form.validateFields((err, values) => {\r\n if (!err) {\r\n const { dateStringFormat } = this.props;\r\n const { recur } = this.state;\r\n let dateSplit = dateStringFormat.split(\"-\");\r\n let newDate = new Date(dateSplit);\r\n\r\n if(recur && newDate.getDay() !== 0 && newDate.getDay() !== 6){\r\n let currentDate = newDate;\r\n\r\n for (let i = currentDate.getDay(); i <= 5; i++){\r\n let eventToPush;\r\n\r\n for(let i = 0; i < values.morningSchedule.length; i++){\r\n if(values.morningSchedule[i] !== undefined) {\r\n eventToPush = {};\r\n let startHourToSet = this.applyTransformationToHour(values.morningSchedule[i].morningStartHour.format(format));\r\n let endHourToSet = this.applyTransformationToHour(values.morningSchedule[i].morningEndHour.format(format));\r\n let advisorsQuantities = [];\r\n\r\n for(let j = 0; j < Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList).length; j++){\r\n advisorsQuantities.push({\r\n serviceId: parseInt(Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j].split(\"-\")[0]),\r\n serviceName: Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j].split(\"-\")[1],\r\n quantity: values.morningSchedule[i].morningAdvisorsQuantityList[Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j]]\r\n });\r\n }\r\n\r\n eventToPush[\"startDateTime\"] = currentDate.getFullYear() + \"-\" +\r\n ((currentDate.getMonth() + 1) < 10 ? '0' : '') + (currentDate.getMonth() + 1) + \"-\" +\r\n (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + \" \" +\r\n startHourToSet + \":00\";\r\n eventToPush[\"endDateTime\"] = currentDate.getFullYear() + \"-\" +\r\n ((currentDate.getMonth() + 1) < 10 ? '0' : '') + (currentDate.getMonth() + 1) + \"-\" +\r\n (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + \" \" +\r\n endHourToSet + \":00\";\r\n eventToPush[\"advisorsQuantities\"] = advisorsQuantities;\r\n\r\n events.push(eventToPush);\r\n }\r\n }\r\n for(let i = 0; i < values.afternoonSchedule.length; i++){\r\n if(values.afternoonSchedule[i] !== undefined) {\r\n eventToPush = {};\r\n let startHourToSet = this.applyTransformationToHour(values.afternoonSchedule[i].afternoonStartHour.format(format));\r\n let endHourToSet = this.applyTransformationToHour(values.afternoonSchedule[i].afternoonEndHour.format(format));\r\n let advisorsQuantities = [];\r\n\r\n for(let j = 0; j < Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList).length; j++){\r\n advisorsQuantities.push({\r\n serviceId: parseInt(Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j].split(\"-\")[0]),\r\n serviceName: Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j].split(\"-\")[1],\r\n quantity: values.afternoonSchedule[i].afternoonAdvisorsQuantityList[Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j]]\r\n });\r\n }\r\n\r\n eventToPush[\"startDateTime\"] = currentDate.getFullYear() + \"-\" +\r\n ((currentDate.getMonth() + 1) < 10 ? '0' : '') + (currentDate.getMonth() + 1) + \"-\" +\r\n (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + \" \" +\r\n startHourToSet + \":00\";\r\n eventToPush[\"endDateTime\"] = currentDate.getFullYear() + \"-\" +\r\n ((currentDate.getMonth() + 1) < 10 ? '0' : '') + (currentDate.getMonth() + 1) + \"-\" +\r\n (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + \" \" +\r\n endHourToSet + \":00\";\r\n eventToPush[\"advisorsQuantities\"] = advisorsQuantities;\r\n\r\n events.push(eventToPush);\r\n }\r\n }\r\n currentDate.setDate(currentDate.getDate() + 1);\r\n currentDate.setHours(0, 0, 0);\r\n }\r\n }else{\r\n let eventToPush;\r\n\r\n for(let i = 0; i < values.morningSchedule.length; i++){\r\n if(values.morningSchedule[i] !== undefined) {\r\n eventToPush = {};\r\n let startHourToSet = this.applyTransformationToHour(values.morningSchedule[i].morningStartHour.format(format));\r\n let endHourToSet = this.applyTransformationToHour(values.morningSchedule[i].morningEndHour.format(format));\r\n let advisorsQuantities = [];\r\n\r\n for(let j = 0; j < Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList).length; j++){\r\n advisorsQuantities.push({\r\n serviceId: parseInt(Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j].split(\"-\")[0]),\r\n serviceName: Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j].split(\"-\")[1],\r\n quantity: values.morningSchedule[i].morningAdvisorsQuantityList[Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j]]\r\n });\r\n }\r\n\r\n eventToPush[\"startDateTime\"] = dateStringFormat + \" \" + startHourToSet + \":00\";\r\n eventToPush[\"endDateTime\"] = dateStringFormat + \" \" + endHourToSet + \":00\";\r\n eventToPush[\"advisorsQuantities\"] = advisorsQuantities;\r\n\r\n events.push(eventToPush);\r\n }\r\n }\r\n for(let i = 0; i < values.afternoonSchedule.length; i++){\r\n if(values.afternoonSchedule[i] !== undefined) {\r\n eventToPush = {};\r\n let startHourToSet = this.applyTransformationToHour(values.afternoonSchedule[i].afternoonStartHour.format(format));\r\n let endHourToSet = this.applyTransformationToHour(values.afternoonSchedule[i].afternoonEndHour.format(format));\r\n let advisorsQuantities = [];\r\n\r\n for(let j = 0; j < Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList).length; j++){\r\n advisorsQuantities.push({\r\n serviceId: parseInt(Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j].split(\"-\")[0]),\r\n serviceName: Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j].split(\"-\")[1],\r\n quantity: values.afternoonSchedule[i].afternoonAdvisorsQuantityList[Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j]]\r\n });\r\n }\r\n\r\n eventToPush[\"startDateTime\"] = dateStringFormat + \" \" + startHourToSet + \":00\";\r\n eventToPush[\"endDateTime\"] = dateStringFormat + \" \" + endHourToSet + \":00\";\r\n eventToPush[\"advisorsQuantities\"] = advisorsQuantities;\r\n\r\n events.push(eventToPush);\r\n }\r\n }\r\n }\r\n\r\n this.props.toggleAddScheduleModal(false);\r\n this.props.addAll(events, this.props.currentWeek)\r\n } else {\r\n this.setState({ formHasErrors: true });\r\n }\r\n });\r\n }\r\n onUpdateSchedule(){\r\n let events = [];\r\n\r\n this.props.form.validateFields((err, values) => {\r\n if (!err) {\r\n const {dateStringFormat, eventsSchedule} = this.props;\r\n let eventToPush;\r\n\r\n for (let i = 0; i < values.morningSchedule.length; i++) {\r\n if(values.morningSchedule[i] !== undefined){\r\n eventToPush = {};\r\n let startHourToSet = this.applyTransformationToHour(values.morningSchedule[i].morningStartHour.format(format));\r\n let endHourToSet = this.applyTransformationToHour(values.morningSchedule[i].morningEndHour.format(format));\r\n let advisorsQuantities = [];\r\n\r\n for (let j = 0; j < Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList).length; j++) {\r\n advisorsQuantities.push({\r\n serviceId: parseInt(Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j].split(\"-\")[0]),\r\n serviceName: Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j].split(\"-\")[1],\r\n quantity: values.morningSchedule[i].morningAdvisorsQuantityList[Object.keys(values.morningSchedule[i].morningAdvisorsQuantityList)[j]]\r\n });\r\n }\r\n\r\n for(let i = 0; i < eventsSchedule.length; i++) {\r\n if ((eventsSchedule[i].start + \" \" + eventsSchedule[i].startTime) === dateStringFormat + \" \" + startHourToSet + \":00\") {\r\n eventToPush[\"scheduleId\"] = (eventsSchedule[i].id);\r\n }\r\n }\r\n\r\n eventToPush[\"startDateTime\"] = dateStringFormat + \" \" + startHourToSet + \":00\";\r\n eventToPush[\"endDateTime\"] = dateStringFormat + \" \" + endHourToSet + \":00\";\r\n eventToPush[\"advisorsQuantities\"] = advisorsQuantities;\r\n\r\n events.push(eventToPush);\r\n }\r\n }\r\n for (let i = 0; i < values.afternoonSchedule.length; i++) {\r\n if(values.afternoonSchedule[i] !== undefined){\r\n eventToPush = {};\r\n let startHourToSet = this.applyTransformationToHour(values.afternoonSchedule[i].afternoonStartHour.format(format));\r\n let endHourToSet = this.applyTransformationToHour(values.afternoonSchedule[i].afternoonEndHour.format(format));\r\n let advisorsQuantities = [];\r\n\r\n for (let j = 0; j < Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList).length; j++) {\r\n advisorsQuantities.push({\r\n serviceId: parseInt(Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j].split(\"-\")[0]),\r\n serviceName: Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j].split(\"-\")[1],\r\n quantity: values.afternoonSchedule[i].afternoonAdvisorsQuantityList[Object.keys(values.afternoonSchedule[i].afternoonAdvisorsQuantityList)[j]]\r\n });\r\n }\r\n\r\n for(let i = 0; i < eventsSchedule.length; i++) {\r\n if ((eventsSchedule[i].start + \" \" + eventsSchedule[i].startTime) === dateStringFormat + \" \" + startHourToSet + \":00\") {\r\n eventToPush[\"scheduleId\"] = (eventsSchedule[i].id);\r\n }\r\n }\r\n\r\n eventToPush[\"startDateTime\"] = dateStringFormat + \" \" + startHourToSet + \":00\";\r\n eventToPush[\"endDateTime\"] = dateStringFormat + \" \" + endHourToSet + \":00\";\r\n eventToPush[\"advisorsQuantities\"] = advisorsQuantities;\r\n\r\n events.push(eventToPush);\r\n }\r\n }\r\n\r\n this.props.toggleAddScheduleModal(false);\r\n this.props.updateAll(events, this.props.currentWeek);\r\n } else {\r\n this.setState({ formHasErrors: true });\r\n }\r\n })\r\n }\r\n applyTransformationToHour(hourToTransform){\r\n let hour = hourToTransform.split(\":\")[0];\r\n let minutes = hourToTransform.split(\":\")[1];\r\n\r\n if(parseInt(minutes) <= 29 && parseInt(minutes) >= 1){\r\n return hour + \":30\";\r\n } else if(parseInt(minutes) <= 59 && parseInt(minutes) >= 31){\r\n if((parseInt(hour) + 1) === 24)\r\n return \"00:00\";\r\n else\r\n return ((parseInt(hour) + 1) < 10 ? '0' : '') + (parseInt(hour) + 1) + \":00\";\r\n } else\r\n return hourToTransform;\r\n }\r\n add = (keyName) => {\r\n const { form } = this.props;\r\n const keys = form.getFieldValue(keyName);\r\n const nextKeys = keyName === \"morningKeys\" ? keys.concat(morningId++) : keys.concat(afternoonId++);\r\n\r\n if(keyName === \"morningKeys\") {\r\n form.setFieldsValue({morningKeys: nextKeys});\r\n } else {\r\n form.setFieldsValue({afternoonKeys: nextKeys});\r\n }\r\n };\r\n remove = (k, keyName) => {\r\n const { form } = this.props;\r\n const keys = form.getFieldValue(keyName);\r\n\r\n if(keyName === \"morningKeys\")\r\n form.setFieldsValue({ morningKeys: keys.filter(key => key !== k) });\r\n else\r\n form.setFieldsValue({ afternoonKeys: keys.filter(key => key !== k) });\r\n };\r\n\r\n render () {\r\n const { morningStartHour, afternoonStartHour, readyMorningEventsToEdit, readyAfternoonEventsToEdit, formHasErrors } = this.state;\r\n const { toggleAddScheduleModal, dateToAddSchedule, morningEvents, afternoonEvents, dateStringFormat, isFetching,\r\n isDefault, addScheduleModalVisible } = this.props;\r\n const { getFieldDecorator, getFieldValue } = this.props.form;\r\n getFieldDecorator('morningKeys', { initialValue: [0] });\r\n getFieldDecorator('afternoonKeys', { initialValue: [0] });\r\n const morningKeys = getFieldValue('morningKeys');\r\n const afternoonKeys = getFieldValue('afternoonKeys');\r\n const morningFormItems = morningEvents.length === 0\r\n ? ''\r\n : morningKeys.map(k => (\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(`morningSchedule[${k}].morningStartHour`, {\r\n initialValue: moment(moment.utc(dateStringFormat + \" \" + morningEvents[0].startHour).tz(\"GMT\"), format),\r\n rules: [{ type: 'object', required: true, whitespace: true, message: ' ' }]\r\n })(\r\n this.onChangeMorningStartHour(hour, k)}\r\n disabledHours={() => getDisabledHours(\"07\", \"12\")}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(`morningSchedule[${k}].morningEndHour`, {\r\n initialValue: moment(moment.utc(dateStringFormat + \" \" + morningEvents[0].endHour).tz(\"GMT\"), format),\r\n rules: [{ type: 'object', required: true, whitespace: true }],\r\n })(\r\n this.onChangeMorningEndHour(hour, k)}\r\n disabledHours={() =>\r\n getDisabledHours(morningStartHour === null ? morningEvents[0].startHour.split(\":\")[0] : morningStartHour.split(\":\")[0], \"12\")\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {morningEvents[0].advisorsQuantities.map(advisor =>\r\n \r\n \r\n {getFieldDecorator(`morningSchedule[${k}].morningAdvisorsQuantityList.${advisor.serviceId + \"-\" + advisor.serviceName}`, {\r\n initialValue: advisor.quantity,\r\n rules: [{ type: \"number\", required: true, whitespace: true }],\r\n })(\r\n this.onChangeMorningAdvisorQuantity(value, k, advisor.serviceId + \"-\" + advisor.serviceName)}/>\r\n )}\r\n \r\n \r\n )}\r\n \r\n {morningKeys.length > 1 ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n ''\r\n }\r\n \r\n ));\r\n const afternoonFormItems = afternoonEvents.length === 0\r\n ? ''\r\n : afternoonKeys.map(k => (\r\n
\r\n
\r\n \r\n \r\n {getFieldDecorator(`afternoonSchedule[${k}].afternoonStartHour`, {\r\n initialValue: moment(moment.utc(dateStringFormat + \" \" + afternoonEvents[0].startHour).tz(\"GMT\"), format),\r\n rules: [{ type: 'object', required: true, whitespace: true }]\r\n })(\r\n this.onChangeAfternoonStartHour(hour, k)}\r\n disabledHours={() => getDisabledHours(\"13\", \"20\")}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(`afternoonSchedule[${k}].afternoonEndHour`, {\r\n initialValue: moment(moment.utc(dateStringFormat + \" \" + afternoonEvents[0].endHour).tz(\"GMT\"), format),\r\n rules: [{ type: 'object', required: true, whitespace: true }],\r\n })(\r\n this.onChangeAfternoonEndHour(hour, k)}\r\n disabledHours={() =>\r\n getDisabledHours(afternoonStartHour === null ? afternoonEvents[0].startHour.split(\":\")[0] : afternoonStartHour.split(\":\")[0], \"20\")\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {afternoonEvents[0].advisorsQuantities.map(advisor =>\r\n \r\n \r\n {getFieldDecorator(`afternoonSchedule[${k}].afternoonAdvisorsQuantityList.${advisor.serviceId + \"-\" + advisor.serviceName}`, {\r\n initialValue: advisor.quantity,\r\n rules: [{ type: \"number\", required: true, whitespace: true }],\r\n })(\r\n this.onChangeAfternoonAdvisorQuantity(value, k, advisor.serviceId + \"-\" + advisor.serviceName)}/>\r\n )}\r\n \r\n \r\n )}\r\n \r\n {afternoonKeys.length > 1 ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n ''\r\n }\r\n \r\n ));\r\n\r\n let isReadyToRender = (morningEvents.length !== 0 && afternoonEvents.length !== 0);\r\n let dateStringFormatSplit = dateStringFormat.split(\"-\");\r\n let date = new Date(dateStringFormatSplit[0], dateStringFormatSplit[1] - 1, dateStringFormatSplit[2]);\r\n let isWeekend = date.getUTCDay() === 0 || date.getUTCDay() === 6;\r\n let isReadyToUpdate = !isDefault;\r\n\r\n !readyMorningEventsToEdit && !isDefault && morningEvents.length !== 0 && morningFormItems.length === morningEvents.length && this.setFormMorningValuesToEdit(morningKeys);\r\n !readyAfternoonEventsToEdit && !isDefault && afternoonEvents.length !== 0 && afternoonFormItems.length === afternoonEvents.length && this.setFormAfternoonValuesToEdit(afternoonKeys);\r\n\r\n return (\r\n (isFetching || !isReadyToRender) ?\r\n \r\n :\r\n toggleAddScheduleModal(false)}\r\n destroyOnClose={true}\r\n className={'add-schedule-modal'}\r\n footer={[\r\n isDefault ?\r\n :\r\n isReadyToUpdate\r\n ? \r\n : ,\r\n \r\n ]}\r\n keyboard={false}\r\n closable={false}\r\n maskClosable={false}\r\n >\r\n
\r\n \r\n
\r\n

Horas de la mañana

\r\n \r\n \r\n
Horario de atención
\r\n \r\n \r\n
Asesores disponibles
\r\n \r\n {morningFormItems}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Horas de la tarde

\r\n \r\n \r\n
Horario de atención
\r\n \r\n \r\n
Asesores disponibles
\r\n \r\n {afternoonFormItems}\r\n \r\n \r\n \r\n {!isWeekend && isDefault &&\r\n < Checkbox onChange={(value) => this.onChangeRecur(value.target.checked)}>\r\n Repetir para los siguientes días de la semana\r\n \r\n }\r\n {formHasErrors &&\r\n
Por favor llene todos los campos marcados (*).
\r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nAddOrEditScheduleModal.propTypes = {\r\n dateToAddSchedule: PropTypes.string,\r\n dateStringFormat: PropTypes.string,\r\n isFetching: PropTypes.bool,\r\n isDefault: PropTypes.bool,\r\n addScheduleModalVisible: PropTypes.bool,\r\n morningEvents: PropTypes.array,\r\n afternoonEvents: PropTypes.array,\r\n eventsSchedule: PropTypes.array,\r\n toggleAddScheduleModal: PropTypes.func,\r\n getParamsByDay: PropTypes.func,\r\n addAll: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerSchedule.isFetching,\r\n isDefault: state.profilerSchedule.isDefault,\r\n morningEvents: state.profilerSchedule.morningEvents,\r\n afternoonEvents: state.profilerSchedule.afternoonEvents,\r\n eventsSchedule: state.profilerSchedule.eventsSchedule\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getParamsByDay: (date) => dispatch(getParamsByDay(date)),\r\n addAll: (data, currentWeek) => dispatch(addAll(data, currentWeek)),\r\n updateAll: (data, currentWeek) => dispatch(updateAll(data, currentWeek))\r\n }\r\n};\r\n\r\nconst WrappedElement = Form.create()(AddOrEditScheduleModal);\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(WrappedElement);","import {Tooltip} from \"antd\";\r\nimport React from \"react\";\r\n\r\nexport const scheduleDetailColumns = [\r\n {\r\n title: 'Cliente',\r\n dataIndex: 'potentialClientName',\r\n key: 'potentialClientName',\r\n width: '200px',\r\n render: text =>

{text}

\r\n }, {\r\n title: 'Asesor Elegido',\r\n dataIndex: 'adviserName',\r\n key: 'adviserName',\r\n width: '200px',\r\n render: text =>

{text}

\r\n }];","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Modal, Button, Tabs, Table, Row, Select, Tooltip, Icon} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport moment from \"moment-timezone/builds/moment-timezone-with-data\";\r\n\r\n//Subcomponents\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport {getSummaryByScheduleId} from \"../../../../store/redux/actions/profiler/profilerScheduleActions\";\r\nimport {emptyListMessage, getFormatDate} from \"../../../../lib/generalUtils/functions\";\r\nimport {scheduleDetailColumns} from \"./scheduleDetailColumns\";\r\n\r\n//Styles\r\n\r\n//Constants\r\nconst TabPane = Tabs.TabPane;\r\n\r\nclass ShowInfoModal extends Component {\r\n constructor (props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n hourSelected: null,\r\n hoursList: []\r\n };\r\n this.onChangeHour = this.onChangeHour.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n const { eventToShow } = this.props;\r\n\r\n let hoursList = [];\r\n let startHour = eventToShow.start.getHours();\r\n let startMinutes = eventToShow.start.getMinutes();\r\n let endHour = eventToShow.end.getHours();\r\n let endMinutes = eventToShow.end.getMinutes();\r\n\r\n\r\n if(endMinutes <= 29 && endMinutes >= 1){\r\n endMinutes = 0;\r\n }else if(endMinutes <= 59 && endMinutes >= 31){\r\n endMinutes = 30;\r\n }\r\n\r\n while(startHour !== endHour || startMinutes !== endMinutes){\r\n hoursList.push(\r\n (startHour < 10 ? '0' : '') + (startHour) + \":\" + (startMinutes < 10 ? '0' : '') + (startMinutes)\r\n );\r\n if(startMinutes + 30 === 60){\r\n startMinutes = 0;\r\n if(startHour + 1 === 24)\r\n startHour = 0;\r\n else\r\n startHour += 1;\r\n } else if(startMinutes + 30 === 30){\r\n startMinutes = 30;\r\n }\r\n }\r\n\r\n this.setState({\r\n hoursList: hoursList,\r\n hourSelected: (this.props.eventToShow.start.getHours() < 10 ? '0' : '') + (this.props.eventToShow.start.getHours())\r\n + \":\"\r\n + (this.props.eventToShow.start.getMinutes() < 10 ? '0' : '') + (this.props.eventToShow.start.getMinutes())\r\n });\r\n\r\n let data = {\r\n scheduleId: this.props.eventToShow.id,\r\n dateTime: moment(this.props.eventToShow.start).format(\"YYYY-MM-DD hh:mm a\")\r\n };\r\n this.props.getSummaryByScheduleId(data);\r\n }\r\n });\r\n }\r\n componentDidUpdate(prevProps, prevState, prevContext){\r\n if(prevState.hourSelected !== this.state.hourSelected && this.state.hourSelected !== null){\r\n const { hourSelected } = this.state;\r\n let dateTime = this.props.eventToShow.start;\r\n dateTime.setHours(parseInt(hourSelected.split(\":\")[0]), parseInt(hourSelected.split(\":\")[1]), 0);\r\n let data = {\r\n scheduleId: this.props.eventToShow.id,\r\n dateTime: moment(dateTime).format(\"YYYY-MM-DD hh:mm a\")\r\n };\r\n this.props.getSummaryByScheduleId(data);\r\n }\r\n };\r\n\r\n onChangeHour(hour){\r\n this.setState({ hourSelected: hour })\r\n }\r\n\r\n render () {\r\n const { hourSelected, hoursList } = this.state;\r\n const { isFetching, showInfoModalVisible, toggleShowInfoModal, eventToShow, summary } = this.props;\r\n\r\n return (\r\n (isFetching) ?\r\n \r\n :\r\n this.onChangeHour(value)}>\r\n {hoursList.map(hour =>\r\n \r\n {hour}\r\n \r\n )}\r\n \r\n :
\r\n {getFormatDate(eventToShow.start, 3) + hourSelected}\r\n   \r\n \r\n this.setState({ hourSelected: null })}/>\r\n \r\n
\r\n }\r\n visible={showInfoModalVisible}\r\n onCancel={() => toggleShowInfoModal(false)}\r\n destroyOnClose={true}\r\n className={'show-info-schedule-modal'}\r\n footer={[\r\n '',\r\n \r\n ]}\r\n keyboard={false}\r\n closable={false}\r\n maskClosable={false}\r\n >\r\n\r\n \r\n {summary.map((service, k) =>\r\n \r\n

{service.summary}

\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\nShowInfoModal.propTypes = {\r\n isFetching: PropTypes.bool,\r\n showInfoModalVisible: PropTypes.bool,\r\n toggleShowInfoModal: PropTypes.func,\r\n getSummaryByScheduleId: PropTypes.func,\r\n eventToShow: PropTypes.object,\r\n summary: PropTypes.array\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerSchedule.isFetching,\r\n summary: state.profilerSchedule.summary\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getSummaryByScheduleId: (data) => dispatch(getSummaryByScheduleId(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ShowInfoModal);","//Libraries\r\nimport React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport FullCalendar from \"../../../../../node_modules/@fullcalendar/react\";\r\nimport timeGridPlugin from \"../../../../../node_modules/@fullcalendar/timegrid\";\r\nimport interactionPlugin from \"../../../../../node_modules/@fullcalendar/interaction\";\r\nimport esLocale from '../../../../../node_modules/@fullcalendar/core/locales/es-us';\r\nimport PropTypes from 'prop-types';\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport {Col, Divider, message, Row, Tooltip} from 'antd';\r\n\r\n//Styles\r\nimport \"../../../../styles/profiler/profilerSchedule.scss\";\r\n\r\n//Subcomponents\r\nimport AddOrEditScheduleModal from \"./AddOrEditScheduleModal\";\r\nimport {getFormatDate} from \"../../../../lib/generalUtils/functions\";\r\nimport {getSchedulingByDatesRange} from \"../../../../store/redux/actions/profiler/profilerScheduleActions\";\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport ShowInfoModal from \"./ShowInfoModal\";\r\n\r\n//Constants\r\n\r\nclass Schedule extends Component {\r\n \r\n constructor (props){\r\n super(props);\r\n\r\n this.state = {\r\n addScheduleModalVisible: false,\r\n showInfoModalVisible: false,\r\n dateToAddSchedule: null,\r\n weekStartDay: null,\r\n weekEndDay: null,\r\n\r\n eventToShow: {},\r\n\r\n currentWeek: []\r\n };\r\n this.toggleAddScheduleModal = this.toggleAddScheduleModal.bind(this);\r\n this.toggleShowInfoModal = this.toggleShowInfoModal.bind(this);\r\n this.setCurrentWeek = this.setCurrentWeek.bind(this);\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, prevContext){\r\n if(prevState.weekStartDay !== this.state.weekStartDay && prevState.weekEndDay !== this.state.weekEndDay){\r\n const { weekStartDay, weekEndDay } = this.state;\r\n let startDate = weekStartDay;\r\n let endDate = weekEndDay;\r\n\r\n startDate = startDate.toLocaleDateString(esLocale, { year: 'numeric', month: '2-digit', day: '2-digit' });\r\n endDate = endDate.toLocaleDateString(esLocale, { year: 'numeric', month: '2-digit', day: '2-digit' });\r\n\r\n startDate = startDate.split(\"/\")[2] + \"-\" + (startDate.split(\"/\")[1].length === 1 ? '0' + startDate.split(\"/\")[1] : startDate.split(\"/\")[1])\r\n + \"-\" + (startDate.split(\"/\")[0].length === 1 ? '0' + startDate.split(\"/\")[0] : startDate.split(\"/\")[0]);\r\n endDate = endDate.split(\"/\")[2] + \"-\" + (endDate.split(\"/\")[1].length === 1 ? '0' + endDate.split(\"/\")[1] : endDate.split(\"/\")[1])\r\n + \"-\" + (endDate.split(\"/\")[0].length === 1 ? '0' + endDate.split(\"/\")[0] : endDate.split(\"/\")[0]);\r\n\r\n this.setState({ currentWeek: [startDate, endDate] });\r\n this.props.getSchedulingByDatesRange({ startDate, endDate });\r\n }\r\n };\r\n\r\n toggleAddScheduleModal(isVisible, date){\r\n let today = new Date();\r\n today.setHours(0,0,0,0);\r\n if(date < today){\r\n message.info('No se permite editar o crear eventos en fechas anteriores a hoy.', 5);\r\n }\r\n else{\r\n if(date !== undefined){\r\n this.setState({ dateToAddSchedule: date });\r\n } else{\r\n this.setState({ dateToAddSchedule: null });\r\n }\r\n this.setState({ addScheduleModalVisible: isVisible })\r\n }\r\n }\r\n toggleShowInfoModal(isVisible, eventInfo){\r\n this.setState({ showInfoModalVisible: isVisible, eventToShow: eventInfo })\r\n }\r\n setCurrentWeek(dateRange){\r\n const { weekStartDay, weekEndDay } = this.state;\r\n let startDate = dateRange.start;\r\n let endDate = dateRange.end;\r\n\r\n if(weekStartDay !== startDate && weekEndDay !== endDate){\r\n this.setState({ weekStartDay: startDate, weekEndDay: endDate });\r\n }\r\n }\r\n\r\n render () {\r\n const { addScheduleModalVisible, showInfoModalVisible, dateToAddSchedule, currentWeek, eventToShow } = this.state;\r\n const { eventsSchedule, isFetching } = this.props;\r\n const eventRender = (e) => {\r\n const el = e.el;\r\n const startHours = e.event.start.getHours();\r\n const startMinutes = e.event.start.getMinutes();\r\n const endHours = e.event.end.getHours();\r\n const endMinutes = e.event.end.getMinutes();\r\n const content = (\r\n \r\n
\r\n
\r\n \r\n {(startHours < 10 ? '0' : '') + startHours + \":\" + (startMinutes < 10 ? \"0\" : \"\") + startMinutes + \" - \" +\r\n (endHours < 10 ? '0' : '') + endHours + \":\" + (endMinutes < 10 ? \"0\" : \"\") + endMinutes}\r\n \r\n
\r\n
\r\n
\r\n );\r\n ReactDOM.render(content, el);\r\n return el;\r\n };\r\n let user_name = localStorage.user_name === undefined\r\n ? \"perfilador\"\r\n : localStorage.user_name;\r\n\r\n return (\r\n
\r\n \r\n {addScheduleModalVisible && \r\n this.toggleAddScheduleModal(isVisible)}\r\n currentWeek={currentWeek} addScheduleModalVisible={addScheduleModalVisible}/>\r\n }\r\n {showInfoModalVisible && \r\n this.toggleShowInfoModal(isVisible)}\r\n showInfoModalVisible={showInfoModalVisible}\r\n eventToShow={eventToShow}/>\r\n }\r\n
\r\n
\r\n \r\n
\r\n

Agendar reunión

\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Apreciado/a {user_name}, para crear una nueva agenda, haga clic en un día que no cuente con eventos.\r\n Si desea editar, haga clic en un día que ya tenga eventos creados y para ver información de cada evento, haga clic en alguno de estos.\r\n \r\n \r\n eventRender(info)}\r\n eventClick={(info) => this.toggleShowInfoModal(true, info.event)}\r\n navLinkDayClick={(info) => this.toggleAddScheduleModal(true, info)}\r\n dayRender={info =>\r\n this.setCurrentWeek(info.view.props.dateProfile.activeRange)\r\n }\r\n // dayRender={info => this.setCurrentWeek(info.view.calendar.state.dateProfile.activeRange)}\r\n />\r\n \r\n \r\n \r\n )\r\n };\r\n}\r\n\r\nSchedule.propTypes = {\r\n isFetching: PropTypes.bool,\r\n eventsSchedule: PropTypes.array,\r\n getSchedulingByDatesRange: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerSchedule.isFetching,\r\n eventsSchedule: state.profilerSchedule.eventsSchedule\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getSchedulingByDatesRange: (dateRange) => dispatch(getSchedulingByDatesRange(dateRange))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Schedule);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Form, Col, Input, Select} from 'antd';\r\nimport {EmptyListMessage} from \"../../../../../lib/generalUtils/constants\";\r\nimport ReactPhoneInput from 'react-phone-input-2';\r\n\r\nclass ClientForm extends Component {\r\n\r\n render(){\r\n const {getFieldDecorator, type, detailedMeeting, countries} = this.props;\r\n\r\n return(\r\n
\r\n
\r\n \r\n {getFieldDecorator( type + 'Name',{\r\n initialValue: type === 'client'\r\n ? detailedMeeting.potentialClientName\r\n : undefined,\r\n rules: [{required: true, message: 'El nombre es requerido'}]\r\n })()\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(type + 'LastName',{\r\n initialValue: type === 'client'\r\n ? detailedMeeting.potentialClientLastName\r\n : undefined,\r\n rules: [{required: true, message: 'El apellido es requerido'}]\r\n })()\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(type + 'Email', {\r\n initialValue: type === 'client'\r\n ? detailedMeeting.email\r\n : undefined,\r\n rules: [\r\n {required: true, message: 'El email es requerido'},\r\n {type: 'email', message: 'No es un email válido'}\r\n ]\r\n })()\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(type + 'Phone', {\r\n initialValue: type === 'client'\r\n ? (detailedMeeting.phone !== undefined && detailedMeeting.phone !== ''\r\n ? detailedMeeting.phone\r\n : undefined)\r\n : undefined\r\n })(\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(type + 'Country', {\r\n initialValue: type === 'client'\r\n ? detailedMeeting.potentialClientCountry ? detailedMeeting.potentialClientCountry : undefined\r\n : undefined,\r\n })(\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(type + 'Nationality', {\r\n initialValue: type === 'client'\r\n ? detailedMeeting.potentialClientNationality ? detailedMeeting.potentialClientNationality : undefined\r\n : undefined,\r\n })( )\r\n }\r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nClientForm.propTypes = {\r\n getFieldDecorator: PropTypes.func,\r\n setFieldsValue: PropTypes.func,\r\n type: PropTypes.string,\r\n countries: PropTypes.array,\r\n clientInfo: PropTypes.object,\r\n requiredServices: PropTypes.array,\r\n detailedMeeting: PropTypes.object\r\n};\r\n\r\nClientForm.defaultProps = {\r\n getFieldDecorator: f => f,\r\n type: 'client',\r\n countries: [],\r\n clientInfo: undefined,\r\n requiredServices: [],\r\n detailedMeeting: {}\r\n};\r\n\r\nexport default ClientForm;","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {Tooltip, Divider, Row, Col, Form, Input, Button, Icon, Collapse, Popconfirm} from 'antd';\r\n\r\n//Styles\r\n\r\n//Constants\r\nimport { callBack, getDetailedMeeting, saveClientInformation,\r\n startMeeting, updateLogOperation } from '../../../../../store/redux/actions/adviser/adviserActions';\r\nimport ClientForm from \"./ClientInfoForm\";\r\nimport {SERVICES} from \"../../../../../lib/generalUtils/constants\";\r\nimport {serviceInList} from \"../../../../../lib/adviserUtils/adviserUtils\";\r\nimport {WARNING_MESSAGE} from \"../../../subComponents/modals/responseModals\";\r\nimport {REQUEST_STATUS_IDs} from \"../../../../../lib/generalUtils/constants\";\r\nimport {stopNotificationSoundFunction} from \"../../subcomponents/MeetingsNotification\";\r\n\r\nconst {Panel} = Collapse;\r\n\r\nclass MeetingElement extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showAddPartner: true,\r\n detailedMeeting: {},\r\n setDetailedMeeting: true\r\n };\r\n this.toggleAttendantInfo = this.toggleAttendantInfo.bind(this);\r\n this.getDetailedMeetingInformation = this.getDetailedMeetingInformation.bind(this);\r\n this.setClientFormInformation = this.setClientFormInformation.bind(this);\r\n this.saveClientInformation = this.saveClientInformation.bind(this);\r\n this.startMeeting = this.startMeeting.bind(this);\r\n this.finishMeeting = this.finishMeeting.bind(this);\r\n this.rejectMeeting = this.rejectMeeting.bind(this);\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState){\r\n if(Object.keys(prevState.detailedMeeting).length === 0 && nextProps.detailedMeeting !== undefined){\r\n return {...prevState, detailedMeeting: nextProps.detailedMeeting};\r\n }\r\n return null;\r\n }\r\n\r\n startMeeting(){\r\n const { meetingId } = this.props;\r\n let meetingInfo = {\r\n meetingId\r\n };\r\n\r\n this.props.startMeeting( meetingInfo );\r\n stopNotificationSoundFunction();\r\n }\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({isMounted: false});\r\n\r\n this.props.changeInMeetingStatus(false);\r\n if(sessionStorage.meetingUrl !== null && sessionStorage.meetingUrl !== \"null\" &&\r\n sessionStorage.meetingUrl !== undefined && sessionStorage.meetingUrl !== \"undefined\"){\r\n this.props.changeInMeetingStatus(true);\r\n if(sessionStorage.isEmbeddedMeeting === \"false\"){\r\n window.open(sessionStorage.meetingUrl);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n componentDidUpdate(prevProps, prevState, snapshot){\r\n if(!this.props.inMeeting){\r\n if(sessionStorage.meetingUrl !== null && sessionStorage.meetingUrl !== \"null\" &&\r\n sessionStorage.meetingUrl !== undefined && sessionStorage.meetingUrl !== \"undefined\"){\r\n this.props.changeInMeetingStatus(true);\r\n }\r\n }\r\n }\r\n toggleAttendantInfo(flag){\r\n this.setState({ showAddPartner: flag });\r\n }\r\n getDetailedMeetingInformation(meetingId, e){\r\n if(e.length > 0){\r\n this.props.getDetailedMeetingInformation(meetingId);\r\n }\r\n }\r\n setClientFormInformation(){\r\n this.setState({ setDetailedMeeting: false });\r\n }\r\n saveClientInformation(){\r\n this.props.form.validateFields((err, values) => {\r\n if(!err){\r\n const clientInfo = {\r\n clientName: values.clientName,\r\n clientLastName: values.clientLastName,\r\n clientEmail: values.clientEmail,\r\n clientPhone: values.clientPhone,\r\n clientCountry: values.clientCountry,\r\n clientNationality: values.clientNationality\r\n };\r\n\r\n if(this.state.showAddPartner === false){\r\n clientInfo.partnerName = values.partnerName;\r\n clientInfo.partnerLastName = values.partnerLastName;\r\n clientInfo.partnerEmail = values.partnerEmail;\r\n clientInfo.partnerPhone = values.partnerPhone;\r\n clientInfo.partnerCountry = values.partnerCountry;\r\n clientInfo.partnerNationality = values.partnerNationality;\r\n }\r\n\r\n this.props.saveClientInformation(clientInfo);\r\n }else{\r\n WARNING_MESSAGE('Campos por validar');\r\n }\r\n });\r\n }\r\n finishMeeting(event){\r\n event.stopPropagation();\r\n\r\n let saveClientInfoPromise = new Promise((resolve, reject) => {\r\n this.saveClientInformation();\r\n resolve();\r\n });\r\n\r\n saveClientInfoPromise.then(() => {\r\n this.props.handleCallEnding();\r\n });\r\n\r\n saveClientInfoPromise.catch(() => {\r\n WARNING_MESSAGE('Problemas guardando información del cliente');\r\n });\r\n }\r\n rejectMeeting(event){\r\n event.stopPropagation();\r\n const {meetingId} = this.props;\r\n const data = {\r\n meetingId\r\n };\r\n this.props.callBack(data);\r\n }\r\n\r\n render(){\r\n const { form } = this.props;\r\n const { clientName, waitTime, assignedTime, channel, interestCities, meetingId, detailedMeeting, status, inMeeting } = this.props;\r\n const { showAddPartner } = this.state;\r\n const { getFieldDecorator, setFieldsValue } = form;\r\n const extraContent =
\r\n {status === REQUEST_STATUS_IDs.assigned &&\r\n
\r\n \r\n this.rejectMeeting(event)}\r\n onCancel={event => event.stopPropagation()} cancelText={\"Cancelar\"} okText={\"Confirmar\"} placement={\"top\"}>\r\n \r\n \r\n
\r\n }\r\n {status === REQUEST_STATUS_IDs.inMeeting &&\r\n \r\n }\r\n
;\r\n const isSales = detailedMeeting !== undefined && Object.keys(detailedMeeting) > 0\r\n ? serviceInList(detailedMeeting.requiredServices, SERVICES.sales)\r\n : false;\r\n\r\n return(\r\n
\r\n
\r\n \r\n
\r\n Nombre cliente\r\n
\r\n {clientName}\r\n \r\n \r\n Tiempo de espera\r\n
\r\n {waitTime}\r\n \r\n \r\n Tiempo de asignación\r\n
\r\n {assignedTime}\r\n \r\n \r\n Canal\r\n
\r\n {channel}\r\n \r\n \r\n Ciudades\r\n
\r\n {interestCities}\r\n \r\n \r\n\r\n this.getDetailedMeetingInformation(this.props.meetingId, e)}\r\n expandIconPosition='left'>\r\n \r\n \r\n \r\n {status === REQUEST_STATUS_IDs.assigned &&\r\n
\r\n \r\n this.rejectMeeting(event)}\r\n onCancel={event => event.stopPropagation()} cancelText={\"Cancelar\"} okText={\"Confirmar\"}>\r\n \r\n \r\n
\r\n }\r\n {status === REQUEST_STATUS_IDs.inMeeting &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n 0\r\n ? this.state.detailedMeeting.countries\r\n : []}\r\n />\r\n {showAddPartner === true &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n {(showAddPartner) === false &&\r\n \r\n

Datos de acompañante

\r\n \r\n 0\r\n ? this.state.detailedMeeting.countries\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 {isSales === true &&\r\n \r\n {getFieldDecorator('interestCities')( )\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\nMeetingElement.propTypes = {\r\n meetingId: PropTypes.number,\r\n clientName: PropTypes.string,\r\n waitTime: PropTypes.string,\r\n assignedTime: PropTypes.string,\r\n channel: PropTypes.string,\r\n interestCities: PropTypes.string,\r\n detailedMeeting: PropTypes.object,\r\n status: PropTypes.number,\r\n inMeeting: PropTypes.bool,\r\n handleCallEnding: PropTypes.func,\r\n changeInMeetingStatus: PropTypes.func,\r\n meetingUrl: PropTypes.string,\r\n meetingLogId: PropTypes.number,\r\n updateLogOperation: PropTypes.func,\r\n callBack: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n meetingUrl: state.adviser.meetingUrl,\r\n meetingLogId: state.adviser.meetingLogId\r\n };\r\n};\r\n\r\nlet WrappedElement = Form.create()(MeetingElement);\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getDetailedMeetingInformation: (meetingId) => dispatch( getDetailedMeeting(meetingId)),\r\n saveClientInformation: (clientInfo) => dispatch(saveClientInformation(clientInfo)),\r\n startMeeting: (meetingInfo) => dispatch(startMeeting(meetingInfo)),\r\n callBack: (data) => dispatch(callBack(data)),\r\n updateLogOperation: (data) => dispatch(updateLogOperation(data))\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(WrappedElement);","import React, {Component} from 'react';\r\nimport {PropTypes} from 'prop-types';\r\nimport {Modal, Select, Col, Row, Divider, Checkbox, Button} from 'antd';\r\n\r\n\r\nclass RequestServicesModal extends Component{\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isTransfer: false,\r\n selectedServices: [],\r\n servicesToTransfer: []\r\n };\r\n this.onChange = this.onChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleSelectServices = this.handleSelectServices.bind(this);\r\n this.handleTransferServices = this.handleTransferServices.bind(this);\r\n }\r\n\r\n onChange(e){\r\n this.setState({isTransfer: e.target.checked});\r\n }\r\n\r\n handleSubmit(){\r\n const {selectedServices, isTransfer, servicesToTransfer} = this.state;\r\n const {meetingRequestId, services} = this.props;\r\n const attendedServices = services.filter(service => selectedServices.includes(service.serviceId));\r\n const transferServices = services.filter(service => servicesToTransfer.includes(service.serviceId));\r\n\r\n const servicesInfo = {\r\n meetingId: meetingRequestId,\r\n servicesAttended: attendedServices,\r\n isRedirected: isTransfer,\r\n newRequiredServices: transferServices\r\n };\r\n\r\n this.props.handleOk(servicesInfo);\r\n }\r\n\r\n handleSelectServices(selectedServices){\r\n this.setState({selectedServices: selectedServices});\r\n }\r\n\r\n handleTransferServices(selectedServices){\r\n this.setState({servicesToTransfer: selectedServices});\r\n }\r\n\r\n render(){\r\n const {visible, services, handleCancel} = this.props;\r\n const {isTransfer, selectedServices} = this.state;\r\n\r\n return(\r\n \r\n Cancelar\r\n ,\r\n \r\n ]}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Transferir llamada\r\n \r\n \r\n \r\n {isTransfer === true &&\r\n
\r\n \r\n

Servicios a transferir

\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\nRequestServicesModal.propTypes = {\r\n visible: PropTypes.bool,\r\n services: PropTypes.array,\r\n handleOk: PropTypes.func,\r\n handleCancel: PropTypes.func,\r\n meetingRequestId: PropTypes.number\r\n};\r\n\r\nexport default RequestServicesModal;","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {List, Alert, Row, Col, Divider, Button, message, Modal, Icon} from 'antd';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport MeetingElement from \"./subcomponents/MeetingElement\";\r\nimport sound from '../../../../assets/sounds/canceledNotification.mp3';\r\n\r\n//Styles\r\nimport '../../../../styles/adviser/adviser.css';\r\n\r\n//Constants\r\nimport {\r\n fetchMeetings, finishMeeting, toggleServicesModal, updateAdviserStatus,\r\n updateConnectedStatus, updateLogOperation\r\n} from '../../../../store/redux/actions/adviser/adviserActions';\r\nimport RequestServicesModal from \"../subcomponents/RequestServicesModal\";\r\nimport { setMeetingLog } from \"../../../../lib/generalUtils/functions\";\r\nimport { equalMeetingsLists } from \"../../../../lib/adviserUtils/adviserUtils\";\r\n\r\n//Components\r\nimport LoadingComponent from '../../general/LoadingComponent';\r\nimport routes from \"../../../../lib/generalUtils/routes\";\r\n\r\nclass AdviserHome extends Component{\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMounted: false,\r\n meetingsList: [],\r\n interval: undefined,\r\n interval2: undefined,\r\n finishingMeetingRequest: undefined,\r\n inMeeting: false,\r\n fullScreenWhereBy: true,\r\n showInteractionModal: false,\r\n };\r\n this.getMeetings = this.getMeetings.bind(this);\r\n this.setFinishingMeetingRequest = this.setFinishingMeetingRequest.bind(this);\r\n this.notificationPermission = this.notificationPermission.bind(this);\r\n this.handleFinishCall = this.handleFinishCall.bind(this);\r\n this.changeInMeetingStatus = this.changeInMeetingStatus.bind(this);\r\n }\r\n\r\n getMeetings(){\r\n this.props.fetchMeetings();\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({isMounted: false});\r\n \r\n let audio = new Audio(sound);\r\n audio.play();\r\n this.notificationPermission();\r\n this.addOnBeforeUnload();\r\n this.props.fetchMeetings(true);\r\n this.props.updateConnectedStatus();\r\n const interval = setInterval(() => this.getMeetings(), 5000);\r\n const interval2 = setInterval(() => this.props.updateConnectedStatus(), 120000);\r\n this.setState({ interval: interval, interval2: interval2, showInteractionModal: true });\r\n }\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot){\r\n if(this.props.meetingLogId !== null && this.props.meetingLogId !== prevProps.meetingLogId){\r\n this.allowCamAndMic();\r\n }\r\n if(!equalMeetingsLists(prevState.meetingsList, this.state.meetingsList)){\r\n this.props.fetchMeetings();\r\n this.setState({meetingsList: this.props.meetings});\r\n }\r\n if((prevProps.meetings.length !== this.props.meetings.length) && this.props.meetings.length === 0){\r\n this.changeInMeetingStatus(false);\r\n sessionStorage.removeItem('meetingUrl');\r\n }\r\n }\r\n \r\n notificationPermission() {\r\n // Check if the browser supports notifications\r\n if (!(\"Notification\" in window)) {\r\n alert(\"Este navegador no es compatible con las notificaciones de escritorio.\");\r\n }\r\n // Check if notifications was granted\r\n else if (Notification.permission === \"granted\") {\r\n message.success(\"Los permisos de notificaciones están activos.\")\r\n }\r\n // If not, we ask permission\r\n else if (Notification.permission === \"default\") {\r\n Notification.requestPermission().then(function (permission) {\r\n if (permission === \"granted\") {\r\n message.success(\"Notificaciones activadas.\")\r\n }\r\n });\r\n }\r\n // If not, we ask permission\r\n else if (Notification.permission === \"denied\") {\r\n Modal.warning({\r\n title: \"Las notificaciones no están activas\",\r\n content:
\r\n Para poder notificar de una llamada nueva, por favor habilite manualmente los permisos de notificaciones.\r\n

\r\n Puede ayudarse aquí.\r\n
\r\n });\r\n }\r\n }\r\n allowCamAndMic(){\r\n const { updateLogOperation, meetingLogId } = this.props;\r\n\r\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\r\n navigator.enumerateDevices = function(callback) {\r\n navigator.mediaDevices.enumerateDevices().then(callback);\r\n };\r\n }\r\n\r\n let MediaDevices = [];\r\n let isHTTPs = window.location.protocol === 'https:';\r\n let canEnumerate = false;\r\n\r\n if (typeof MediaStreamTrack !== 'undefined' && 'getSources' in MediaStreamTrack)\r\n canEnumerate = true;\r\n else if (navigator.mediaDevices && !!navigator.mediaDevices.enumerateDevices)\r\n canEnumerate = true;\r\n\r\n let hasWebcam = false;\r\n let hasMicrophone = false;\r\n let isMicrophoneAlreadyCaptured = false;\r\n let isWebcamAlreadyCaptured = false;\r\n\r\n function checkDeviceSupport(callback){\r\n if (!canEnumerate)\r\n return;\r\n\r\n if (!navigator.enumerateDevices && window.MediaStreamTrack && window.MediaStreamTrack.getSources)\r\n navigator.enumerateDevices = window.MediaStreamTrack.getSources.bind(window.MediaStreamTrack);\r\n\r\n if (!navigator.enumerateDevices && navigator.enumerateDevices)\r\n navigator.enumerateDevices = navigator.enumerateDevices.bind(navigator);\r\n\r\n if (!navigator.enumerateDevices) {\r\n if (callback)\r\n callback();\r\n return;\r\n }\r\n\r\n MediaDevices = [];\r\n navigator.enumerateDevices(function(devices) {\r\n devices.forEach(function(_device) {\r\n let device = {};\r\n for (let d in _device) {\r\n device[d] = _device[d];\r\n }\r\n\r\n if (device.kind === 'audio')\r\n device.kind = 'audioinput';\r\n\r\n if (device.kind === 'video')\r\n device.kind = 'videoinput';\r\n\r\n let skip;\r\n MediaDevices.forEach(function(d) {\r\n if (d.id === device.id && d.kind === device.kind)\r\n skip = true;\r\n });\r\n\r\n if (skip)\r\n return;\r\n\r\n if (!device.deviceId)\r\n device.deviceId = device.id;\r\n\r\n if (!device.id)\r\n device.id = device.deviceId;\r\n\r\n if (!device.label) {\r\n device.label = 'Please invoke getUserMedia once.';\r\n if (!isHTTPs)\r\n device.label = 'HTTPs is required to get label of this ' + device.kind + ' device.';\r\n } else {\r\n if (device.kind === 'videoinput' && !isWebcamAlreadyCaptured)\r\n isWebcamAlreadyCaptured = true;\r\n\r\n if (device.kind === 'audioinput' && !isMicrophoneAlreadyCaptured)\r\n isMicrophoneAlreadyCaptured = true;\r\n }\r\n\r\n if (device.kind === 'audioinput')\r\n hasMicrophone = true;\r\n\r\n if (device.kind === 'videoinput')\r\n hasWebcam = true;\r\n\r\n MediaDevices.push(device);\r\n });\r\n\r\n if (callback)\r\n callback();\r\n });\r\n }\r\n\r\n checkDeviceSupport(function() {\r\n let devicesList = [];\r\n\r\n if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {\r\n setMeetingLog('7', { devicesList: [\"enumerateDevices() not supported.\"],\r\n hasWebcam, hasMicrophone, isMicrophoneAlreadyCaptured, isWebcamAlreadyCaptured },\r\n (data) => updateLogOperation(data), meetingLogId, \"Adviser\");\r\n }\r\n else{\r\n navigator.mediaDevices.enumerateDevices()\r\n .then(function(devices) {\r\n devices.forEach(function(device) {\r\n devicesList.push({\r\n deviceId: device.deviceId,\r\n kind: device.kind,\r\n label: device.label\r\n });\r\n });\r\n\r\n setMeetingLog('7', { devicesList, hasWebcam, hasMicrophone, isMicrophoneAlreadyCaptured, isWebcamAlreadyCaptured },\r\n (data) => updateLogOperation(data), meetingLogId, \"Adviser\");\r\n })\r\n .catch(function(err) {\r\n setMeetingLog('7', { devicesList: [err.name + \": \" + err.message],\r\n hasWebcam, hasMicrophone, isMicrophoneAlreadyCaptured, isWebcamAlreadyCaptured },\r\n (data) => updateLogOperation(data), meetingLogId, \"Adviser\");\r\n });\r\n }\r\n });\r\n }\r\n\r\n componentWillUnmount(){\r\n clearInterval(this.state.interval);\r\n clearInterval(this.state.interval2);\r\n }\r\n\r\n setFinishingMeetingRequest(meetingRequestId){\r\n this.props.toggleServicesModal(true);\r\n this.setState({\r\n finishingMeetingRequest: meetingRequestId\r\n });\r\n }\r\n\r\n handleFinishCall(meetingInfo){\r\n this.props.finishMeeting(meetingInfo);\r\n }\r\n\r\n changeInMeetingStatus(status){\r\n this.setState({ inMeeting: status })\r\n }\r\n addOnBeforeUnload(){\r\n window.addEventListener(\"beforeunload\", (ev) =>\r\n {\r\n if(localStorage.access_token !== undefined && localStorage.access_token !== null\r\n && localStorage.access_token !== 'null' && localStorage.access_token){\r\n ev.preventDefault();\r\n return ev.returnValue = '¿Confirma que desea salir?';\r\n }\r\n });\r\n }\r\n\r\n render(){\r\n const {meetings, isLoading, services, servicesModalVisible} = this.props;\r\n const { finishingMeetingRequest, inMeeting, fullScreenWhereBy, showInteractionModal } = this.state;\r\n let isEmbeddedMeeting = sessionStorage.isEmbeddedMeeting === \"true\";\r\n\r\n return(\r\n
\r\n {isLoading === true && \r\n \r\n }\r\n \r\n {showInteractionModal &&\r\n \r\n
\r\n Bienvenido(a) a Casa Propia en Línea\r\n

\r\n \r\n
\r\n
\r\n }\r\n\r\n {servicesModalVisible && \r\n this.props.toggleServicesModal(false)}\r\n services={services} meetingRequestId={finishingMeetingRequest}\r\n handleOk={this.handleFinishCall} />\r\n }\r\n\r\n
\r\n {isEmbeddedMeeting && inMeeting \r\n ? fullScreenWhereBy \r\n ?\r\n \r\n :\r\n \r\n
\r\n Enlace\r\n
\r\n
\r\n }\r\n \r\n \r\n }\r\n\r\n
\r\n \r\n
\r\n

Reuniones asignadas

\r\n \r\n \r\n\r\n \r\n\r\n {meetings.length === 0\r\n ? \r\n : (\r\n \r\n this.setFinishingMeetingRequest(meeting.meetingId)}\r\n changeInMeetingStatus = {(status) => this.changeInMeetingStatus(status)}\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\nAdviserHome.propTypes = {\r\n meetings: PropTypes.array,\r\n meetingLogId: PropTypes.number,\r\n updateLogOperation: PropTypes.func,\r\n updateAdviserStatus: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n meetings: state.adviser.meetings,\r\n isLoading: state.adviser.isLoading,\r\n services: state.adviser.services,\r\n servicesModalVisible: state.adviser.servicesModalVisible,\r\n meetingLogId: state.adviser.meetingLogId,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n fetchMeetings: (firstTime) => dispatch(fetchMeetings(firstTime)),\r\n finishMeeting: (meetingInfo) => dispatch(finishMeeting(meetingInfo)),\r\n toggleServicesModal: (flag) => dispatch(toggleServicesModal(flag)),\r\n updateConnectedStatus: () => dispatch(updateConnectedStatus()),\r\n updateLogOperation: (data) => dispatch(updateLogOperation(data)),\r\n updateAdviserStatus: (status) => dispatch(updateAdviserStatus(status))\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AdviserHome);\r\n","//Libraries\r\nimport React, {Component} from 'react';\r\nimport Proptypes from 'prop-types';\r\nimport { Input, DatePicker, Row, Col, Button } from 'antd';\r\n\r\n//Styles\r\nimport '../../../../../styles/adviser/adviser.css';\r\n\r\n//Constants\r\nconst RangePicker = DatePicker.RangePicker;\r\n\r\nclass HistoryFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {};\r\n };\r\n\r\n render() {\r\n const { onChangeDate, onChangeField, onClickSearch, onRemoveFilters, momentDate, textFilter } = this.props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n onChangeField(value.target.value)} value={textFilter}/>\r\n \r\n \r\n onChangeDate(dateMoment, dateString)}\r\n value={momentDate}\r\n />\r\n \r\n \r\n \r\n \r\n this.onChangeField(value)}\r\n onChangeDate={(dateMoment, dateString) => this.onChangeDate(dateMoment, dateString)}\r\n onClickSearch={this.onClickSearch}\r\n onRemoveFilters={this.onRemoveFilters}\r\n momentDate={this.state.momentDate}\r\n textFilter={this.state.data.reportFilterVm.textFilter}\r\n\r\n />\r\n \r\n {parseInt(localStorage.getItem(\"role\")) !== Roles.Adviser &&\r\n \r\n
\r\n {tableReadyToRender\r\n ? \r\n :\r\n \r\n }\r\n

Última exportación: {lastExportDate}

\r\n \r\n }\r\n \r\n {(!tableReadyToRender || record.collection.length === 0)\r\n ? \r\n :
this.order(page, filters, sorter, a, b, c)}\r\n />\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nAdviserHistory.propTypes = {\r\n isFetching: Proptypes.bool,\r\n record: Proptypes.object,\r\n reportParams: Proptypes.array,\r\n getReportByUser: Proptypes.func,\r\n getReportParams: Proptypes.func,\r\n generateReportPerUser: Proptypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.history.isFetching,\r\n record: state.history.record,\r\n reportParams: state.history.reportParams\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getReportByUser: (data) => dispatch(getReportByUser(data)),\r\n getReportParams: () => dispatch(getReportParams()),\r\n generateReportPerUser: (data) => dispatch(generateReportPerUser(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AdviserHistory);","import { historyTypes } from '../../types';\r\nimport historyApi from '../../../../api/historyApi';\r\nimport {\r\n ERROR_MODAL\r\n} from \"../../../../components/ui/subComponents/modals/responseModals\";\r\nimport BaseURL from \"../../../../api/BaseURL\";\r\n\r\nexport const getReportByUser = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: historyTypes.GET_REPORT,\r\n isFetching: true,\r\n record: {}\r\n });\r\n return historyApi.getReportByUser(data)\r\n .then(response => {\r\n dispatch({\r\n type: historyTypes.GET_REPORT,\r\n isFetching: false,\r\n record: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: historyTypes.GET_REPORT,\r\n isFetching: false,\r\n record: {}\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const getReportParams = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: historyTypes.GET_REPORT_PARAMS,\r\n isFetching: true,\r\n reportParams: []\r\n });\r\n return historyApi.getReportParams()\r\n .then(response => {\r\n dispatch({\r\n type: historyTypes.GET_REPORT_PARAMS,\r\n isFetching: false,\r\n reportParams: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: historyTypes.GET_REPORT_PARAMS,\r\n isFetching: false,\r\n record: []\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const generateReportPerUser = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: historyTypes.GENERATE_REPORT,\r\n isFetching: true\r\n });\r\n return historyApi.generateReportPerUser(data)\r\n .then(response => {\r\n dispatch({\r\n type: historyTypes.GENERATE_REPORT,\r\n isFetching: false\r\n });\r\n window.open(BaseURL + \"/\" + response.data);\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: historyTypes.GENERATE_REPORT,\r\n isFetching: false\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};","//Subcomponents\r\nimport request from './requestWrapper';\r\n\r\n//Logotypes\r\nfunction getLogoTypes() {\r\n return request({\r\n url: '/Parameter/GetLogosParams',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction updateLogoTypes(multimediaId, file) {\r\n\r\n let bodyFormData = new FormData();\r\n bodyFormData.append('multimediaId', multimediaId);\r\n bodyFormData.append('file', file);\r\n\r\n return request({\r\n url: '/Parameter/UpdateLogosParams',\r\n method: 'PUT',\r\n data: bodyFormData,\r\n });\r\n};\r\n\r\n//Waiting Texts\r\nfunction getWaitingTextParams(){\r\n return request({\r\n url: '/Parameter/GetWaitingTextsParams',\r\n method: 'GET',\r\n });\r\n};\r\n\r\n//Multimedia\r\nfunction getMultimediaParams() {\r\n return request({\r\n url: '/Parameter/GetMultimediaParams',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction updateMultimediaParams(data) {\r\n let bodyFormData = new FormData();\r\n bodyFormData.set('videoIsActive', data.videoIsActive);\r\n bodyFormData.set('modifyImages', data.modifyImages);\r\n bodyFormData.set('modifyVideos', data.modifyVideos);\r\n\r\n //---------------------------------------------------------\r\n\r\n if(data.modifyImages === true){\r\n if(data.images.length === 0){\r\n bodyFormData.append('imagesList', data.images);\r\n }\r\n }\r\n\r\n for(let item of data.images){\r\n bodyFormData.append('imagesList', item.file, item.file.name);\r\n }\r\n //---------------------------------------------------------\r\n if(data.modifyVideos === true){\r\n if(data.videos.length === 0){\r\n bodyFormData.append('videosList', data.videos);\r\n }\r\n }\r\n for(let item of data.videos){\r\n bodyFormData.append('videosList', item.file, item.file.name);\r\n }\r\n\r\n return request({\r\n url: '/Parameter/UpdateMultimediaParams',\r\n method: 'PUT',\r\n data: bodyFormData,\r\n });\r\n};\r\n\r\n//Terms and Conditions\r\nfunction getTermsTextParams() {\r\n return request({\r\n url: '/Parameter/GetTermsandConditionsTextsParams',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction updateTextParams(data){\r\n return request({\r\n url: '/Parameter/UpdateTextParams',\r\n method: 'PUT',\r\n data: data,\r\n });\r\n};\r\n\r\n//SocialData\r\nfunction getSocialData(){\r\n return request({\r\n url: '/Parameter/GetLinkParams',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction addSocialData(data){\r\n return request({\r\n url: '/Parameter/AddLink',\r\n method: 'POST',\r\n data: data\r\n });\r\n};\r\n\r\nfunction deleteSocialData(data){\r\n return request({\r\n url: '/Parameter/DeleteLink',\r\n method: 'DELETE',\r\n data: data\r\n });\r\n};\r\n\r\n//Services\r\nfunction getServices(){\r\n return request({\r\n url: '/Service/GetAll',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction addServices(data){\r\n return request({\r\n url: '/Service/Add',\r\n method: 'POST',\r\n data: data\r\n });\r\n};\r\n\r\nfunction editServices(data){\r\n return request({\r\n url: '/Service/Update',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\nfunction deleteServices(data){\r\n return request({\r\n url: '/Service/Delete',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\n//Schedule\r\nfunction getScheduleValues(){\r\n return request({\r\n url: '/Parameter/GetDefaultSchedulesValuesParams',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction updateScheduleValues(data){\r\n return request({\r\n url: '/Parameter/UpdateDefaultScheduleValuesParams',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\n//TimesOut\r\nfunction getTimesOut(){\r\n return request({\r\n url: '/Parameter/GetTimeOuts',\r\n method: 'GET',\r\n });\r\n};\r\n\r\nfunction updateTimesOut(data){\r\n return request({\r\n url: '/Parameter/UpdateTimeOuts',\r\n method: 'PUT',\r\n data: data\r\n });\r\n};\r\n\r\n// Embedded mode\r\nfunction getEmbeddedMeetingMode(){\r\n return request({\r\n url: '/Parameter/GetEmbeddedMeetingMode',\r\n method: 'GET'\r\n })\r\n}\r\nfunction updateEmbeddedMeetingMode(data){\r\n return request({\r\n url: '/Parameter/UpdateEmbeddedMeetingMode',\r\n method: 'PUT',\r\n params: data\r\n });\r\n}\r\n\r\n// Url (extenral video call app) config.\r\n\r\nfunction getVideoCallUrls(){\r\n return request({\r\n url: '/VideoCallUrl/GetAll',\r\n method: 'GET'\r\n })\r\n}\r\nfunction getUrlById(data){\r\n return request({\r\n url: '/VideoCallUrl/GetById',\r\n method: 'GET',\r\n headers: data\r\n });\r\n}\r\nfunction addVideoCallUrl(data){\r\n return request({\r\n url: '/VideoCallUrl/Add',\r\n method: 'POST',\r\n data: data\r\n });\r\n}\r\nfunction updateVideoCallUrl(data){\r\n return request({\r\n url: '/VideoCallUrl/Update',\r\n method: 'PUT',\r\n data: data\r\n });\r\n}\r\nfunction deleteVideoCallUrl(data){\r\n return request({\r\n url: '/VideoCallUrl/Delete',\r\n method: 'DELETE',\r\n headers: data\r\n });\r\n}\r\nfunction getParamsVideoCallUrl(){\r\n return request({\r\n url: '/VideoCallUrl/GetParams',\r\n method: 'GET'\r\n });\r\n}\r\n\r\nconst adminService = {\r\n getLogoTypes, updateLogoTypes, getWaitingTextParams, updateTextParams,\r\n getMultimediaParams, updateMultimediaParams, getTermsTextParams,\r\n getSocialData, addSocialData, deleteSocialData,\r\n getServices, addServices, editServices, deleteServices,\r\n getScheduleValues, updateScheduleValues,\r\n getTimesOut, updateTimesOut,\r\n getEmbeddedMeetingMode, updateEmbeddedMeetingMode,\r\n getVideoCallUrls, getUrlById, addVideoCallUrl, updateVideoCallUrl, deleteVideoCallUrl, getParamsVideoCallUrl\r\n};\r\n\r\nexport default adminService;","//Subcomponents\r\nimport {ERROR_MODAL, SUCCESS_MODAL} from \"../../../../../components/ui/subComponents/modals/responseModals\";\r\n\r\n//Services\r\nimport adminServices from '../../../../../api/adminApi';\r\n\r\n//Constants\r\nimport {AdminTypes as C} from '../../../types';\r\n\r\nexport const getLogoTypes = () => {\r\n return dispatch => {\r\n return adminServices.getLogoTypes()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_LOGOS,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al solicitar la información', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const setLogoTypes = (file, multimediaId) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.SET_LOGOS,\r\n isLoading: true,\r\n payload: null\r\n });\r\n return adminServices.updateLogoTypes(multimediaId, file)\r\n .then(response => {\r\n dispatch({\r\n type: C.SET_LOGOS,\r\n isLoading: false,\r\n payload: response.data\r\n });\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al actualizar el logo', err.data);\r\n dispatch({\r\n type: C.SET_LOGOS,\r\n isLoading: false,\r\n payload: null\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport const getTextParams = () => {\r\n return dispatch => {\r\n return adminServices.getWaitingTextParams()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_PARAMS_TEXT,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al solicitar la información', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const setTextParams = (data, sectionId=2) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.SET_PARAMS_TEXT,\r\n isLoading: true,\r\n payload: null\r\n });\r\n return adminServices.updateTextParams(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.SET_PARAMS_TEXT,\r\n isLoading: false,\r\n payload: response.data\r\n });\r\n dispatch(getTextParams(sectionId));\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al actualizar el texto', err.data);\r\n dispatch({\r\n type: C.SET_PARAMS_TEXT,\r\n isLoading: false,\r\n payload: null\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport const getMultimediaParams = () => {\r\n return dispatch => {\r\n return adminServices.getMultimediaParams()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_MULTIMEDIA,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al solicitar la información de multimedia', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const updateMultimediaParams = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.UPDATE_MULTIMEDIA,\r\n isLoading: true,\r\n payload: null\r\n });\r\n return adminServices.updateMultimediaParams(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.UPDATE_MULTIMEDIA,\r\n isLoading: false,\r\n payload: response.data\r\n });\r\n dispatch(getMultimediaParams());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al actualizar la información multimedia', err.data);\r\n dispatch({\r\n type: C.UPDATE_MULTIMEDIA,\r\n isLoading: false,\r\n payload: null\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport const getTermsCondsParams = () => {\r\n return dispatch => {\r\n return adminServices.getTermsTextParams()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_TERMS_CONDS,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al solicitar los términos y condiciones', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const updateTermsCondsParams = (data, sectionId=4) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.UPDATE_TERMS_CONDS,\r\n isLoading: true,\r\n payload: null\r\n });\r\n return adminServices.updateTextParams(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.UPDATE_TERMS_CONDS,\r\n isLoading: false,\r\n payload: response.data\r\n });\r\n dispatch(getTermsCondsParams(sectionId));\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al actualizar los términos y condiciones', err.data);\r\n dispatch({\r\n type: C.UPDATE_TERMS_CONDS,\r\n isLoading: false,\r\n payload: null\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport const getSocialData = () => {\r\n return dispatch => {\r\n return adminServices.getSocialData()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_LINKS,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al traer los links', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const addSocialData = (data) => {\r\n return dispatch => {\r\n return adminServices.addSocialData(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.ADD_LINKS,\r\n payload: response.data\r\n });\r\n dispatch(getSocialData());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al guardar el link', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const deleteSocialData = (data) => {\r\n return dispatch => {\r\n return adminServices.deleteSocialData(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.DELETE_LINKS,\r\n payload: response.data\r\n });\r\n dispatch(getSocialData());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al eliminar el link', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getServices = () => {\r\n return dispatch => {\r\n return adminServices.getServices()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_SERVICES,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al traer los servicios', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const addServices = (data) => {\r\n return dispatch => {\r\n return adminServices.addServices(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.ADD_SERVICES,\r\n payload: response.data\r\n });\r\n dispatch(getServices());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al agregar el servicio', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const updateServices = (data) => {\r\n return dispatch => {\r\n return adminServices.editServices(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.UPDATE_SERVICES,\r\n payload: response.data\r\n });\r\n dispatch(getServices());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al editar el servicio', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const deleteServices = (data) => {\r\n return dispatch => {\r\n return adminServices.deleteServices(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.DELETE_SERVICES,\r\n payload: response.data\r\n });\r\n dispatch(getServices());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al eliminar el servicio', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getScheduleValues = () => {\r\n return dispatch => {\r\n return adminServices.getScheduleValues()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_SCHEDULE,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al traer la información de la agenda', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const updateScheduleValues = (data) => {\r\n return dispatch => {\r\n return adminServices.updateScheduleValues(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.UPDATE_SCHEDULE,\r\n payload: response.data\r\n });\r\n dispatch(getScheduleValues());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al actualizar la agenda', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const getTimesOut = () => {\r\n return dispatch => {\r\n return adminServices.getTimesOut()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_TIMEOUT,\r\n payload: response.data\r\n });\r\n }).catch(err => {\r\n ERROR_MODAL('Error al traer la información del tiempo de espera', err.data);\r\n });\r\n }\r\n};\r\n\r\nexport const updateTimesOut = (data) => {\r\n return dispatch => {\r\n return adminServices.updateTimesOut(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.UPDATE_TIMEOUT,\r\n payload: response.data\r\n });\r\n dispatch(getTimesOut());\r\n SUCCESS_MODAL(\"Acción realizada exitosamente\", response.data);\r\n }).catch(err => {\r\n ERROR_MODAL('Error al actualizar el tiempo de espera', err.data);\r\n });\r\n }\r\n};","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Button, Card, Upload, Modal, Icon} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n///Subcomponents\r\nimport BaseURL from \"../../../../api/BaseURL\";\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Actions\r\nimport {getLogoTypes, setLogoTypes} from \"../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/logoTypes.css';\r\n\r\n//Functions\r\nfunction getBase64(img, callback) {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n};\r\n\r\nclass LogoTypes extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n firstimageUrl: null,\r\n secondimageUrl: null,\r\n firstLoading: false,\r\n secondLoading: false,\r\n changeFirstFile: false,\r\n changeSecondFile: false,\r\n firstList: [],\r\n secondList: [],\r\n previewImage: null, \r\n previewVisible: null,\r\n };\r\n\r\n this.onMultimediaChange = this.onMultimediaChange.bind(this);\r\n this.handleFirstChange = this.handleFirstChange.bind(this);\r\n this.handleSecondChange = this.handleSecondChange.bind(this);\r\n this.saveFirstLogo = this.saveFirstLogo.bind(this);\r\n this.saveSecondLogo = this.saveSecondLogo.bind(this);\r\n this.handleCancelModal = this.handleCancelModal.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getLogoTypes();\r\n }\r\n });\r\n };\r\n\r\n onMultimediaChange(file){\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n let fileToAdd = {\r\n uid: file.uid,\r\n status: 'done',\r\n type: file.type,\r\n name: file.name,\r\n size: file.size,\r\n lastModified: file.lastModified,\r\n lastModifiedDate: file.lastModifiedDate\r\n };\r\n\r\n reader.onloadend = function () {\r\n fileToAdd.url = reader.result;\r\n };\r\n return false;\r\n };\r\n\r\n handleFirstChange({fileList}){ \r\n this.setState({ \r\n firstList: fileList,\r\n changeFirstFile: true\r\n });\r\n };\r\n\r\n handleSecondChange({fileList}){\r\n this.setState({\r\n secondList: fileList,\r\n changeSecondFile: true\r\n });\r\n };\r\n \r\n saveFirstLogo(firstimageId){\r\n this.props.setLogoTypes(this.state.firstList[0].originFileObj, firstimageId);\r\n this.setState({\r\n changeFirstFile: false,\r\n });\r\n };\r\n\r\n saveSecondLogo(secondimageId){\r\n this.props.setLogoTypes(this.state.secondList[0].originFileObj, secondimageId);\r\n this.setState({\r\n changeSecondFile: false,\r\n });\r\n };\r\n\r\n handlePreview = async file => {\r\n if (!file.thumbUrl && !file.preview) {\r\n file.preview = await getBase64(file.originFileObj);\r\n }\r\n this.setState({\r\n previewImage: file.thumbUrl || file.preview,\r\n previewVisible: true,\r\n });\r\n };\r\n\r\n handleCancelModal(){\r\n this.setState({\r\n previewVisible: false,\r\n });\r\n };\r\n\r\n render() { \r\n\r\n let {firstList, secondList, changeFirstFile, changeSecondFile, previewImage, previewVisible} = this.state;\r\n\r\n let firstimageUrl = this.state.firstimageUrl === null ?\r\n this.props.getLogosResponse !== null ?\r\n BaseURL+this.props.getLogosResponse[1].url : this.state.firstimageUrl\r\n : this.state.firstimageUrl;\r\n let firstimageId = this.props.getLogosResponse !== null ?\r\n this.props.getLogosResponse[1].multimediaId : 0;\r\n let secondimageUrl = this.state.secondimageUrl === null ?\r\n this.props.getLogosResponse !== null ?\r\n BaseURL+this.props.getLogosResponse[0].url : this.state.secondimageUrl\r\n : this.state.secondimageUrl;\r\n let secondimageId = this.props.getLogosResponse !== null ?\r\n this.props.getLogosResponse[0].multimediaId : 0;\r\n\r\n const uploadButton = (loading) => {\r\n return (
\r\n \r\n
Cargar logo
\r\n
);\r\n };\r\n\r\n const imageRender = (loading, imageURL, type) => {\r\n\r\n let list_name = type === 1 ? firstList.length : secondList.length;\r\n if(imageURL !== null && list_name === 0){\r\n return (\r\n \"example\"\r\n );\r\n }else if(list_name === 0 ){\r\n return (\r\n uploadButton(loading)\r\n );\r\n }else if(list_name >= 1){\r\n return (\r\n null\r\n );\r\n }\r\n };\r\n \r\n if(this.props.getLogosResponse === null){\r\n return (\r\n \r\n );\r\n }else{ \r\n return (\r\n
\r\n \r\n
\r\n

Logos

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

\r\n Logo inicial y de agradecimiento\r\n

\r\n this.onMultimediaChange(file)} onChange={this.handleFirstChange}\r\n showUploadList={{ showPreviewIcon: true, showRemoveIcon: true }}\r\n onPreview={this.handlePreview} multiple={false}>\r\n {imageRender(this.state.firstLoading, firstimageUrl, 1)}\r\n \r\n \r\n \"example\"\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n

\r\n Logo de espera\r\n

\r\n this.onMultimediaChange(file)} onChange={this.handleSecondChange}\r\n showUploadList={{ showPreviewIcon: true, showRemoveIcon: true }}\r\n onPreview={this.handlePreview} multiple={false}>\r\n {imageRender(this.state.secondLoading, secondimageUrl, 2)}\r\n \r\n \r\n \"example\"\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\nLogoTypes.propTypes = {\r\n getLogosResponse: PropTypes.array,\r\n updateLogosResponse: PropTypes.string,\r\n getLogoTypes: PropTypes.func,\r\n setLogoTypes: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getLogosResponse: state.admin.getLogosResponse,\r\n updateLogosResponse: state.admin.updateLogosResponse,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getLogoTypes: () => dispatch(getLogoTypes()),\r\n setLogoTypes: (firstFile, firstimageId) => dispatch(setLogoTypes(firstFile, firstimageId)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(LogoTypes);","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Row, Col, Divider, Button, Card } from 'antd';\r\nimport ReactQuill from 'react-quill-2';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Subcomponents\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Actions\r\nimport { getTextParams, setTextParams } from \"../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/waitingTexts.css';\r\n\r\n//Assets\r\nimport { WARNING_MODAL } from '../../subComponents/modals/responseModals';\r\n\r\nclass WaitingText extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMounted: false,\r\n firstText: null,\r\n secondText: null,\r\n thirdText: null,\r\n fourthText: null,\r\n fifthText: null,\r\n sixthText: null,\r\n loading: null\r\n };\r\n\r\n this.inputFirstText = this.inputFirstText.bind(this);\r\n this.inputSecondText = this.inputSecondText.bind(this);\r\n this.inputThirdText = this.inputThirdText.bind(this);\r\n this.inputFourthText = this.inputFourthText.bind(this);\r\n this.inputFifthText = this.inputFifthText.bind(this);\r\n this.inputSixthText = this.inputSixthText.bind(this);\r\n\r\n this.saveFirstText = this.saveFirstText.bind(this);\r\n this.saveSecondText = this.saveSecondText.bind(this);\r\n this.saveThirdText = this.saveThirdText.bind(this);\r\n this.saveFourthText = this.saveFourthText.bind(this);\r\n this.saveFifthText = this.saveFifthText.bind(this);\r\n this.saveSixthText = this.saveSixthText.bind(this);\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getTextParams();\r\n }\r\n });\r\n };\r\n\r\n inputFirstText(e) {\r\n this.setState({ firstText: e });\r\n };\r\n inputSecondText(e) {\r\n this.setState({ secondText: e });\r\n };\r\n inputThirdText(e) {\r\n this.setState({ thirdText: e });\r\n };\r\n inputFourthText(e) {\r\n this.setState({ fourthText: e });\r\n };\r\n inputFifthText(e) {\r\n this.setState({ fifthText: e });\r\n };\r\n inputSixthText(e) {\r\n this.setState({ sixthText: e });\r\n };\r\n saveFirstText(id) {\r\n this.setState({ loading: true });\r\n if (this.state.firstText === \"\" || this.state.firstText == null) {\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un texto válido, por favor.\");\r\n return;\r\n }\r\n\r\n let data = [{\r\n textId: id,\r\n content: this.state.firstText,\r\n }];\r\n\r\n this.props.setTextParams(data);\r\n this.setState({ loading: false });\r\n };\r\n saveSecondText(id) {\r\n this.setState({ loading: true });\r\n if (this.state.secondText === \"\" || this.state.secondText == null) {\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un texto válido, por favor.\");\r\n return;\r\n }\r\n\r\n let data = [{\r\n textId: id,\r\n content: this.state.secondText,\r\n }];\r\n\r\n this.props.setTextParams(data);\r\n this.setState({ loading: false });\r\n };\r\n saveThirdText(id) {\r\n this.setState({ loading: true });\r\n if (this.state.thirdText === \"\" || this.state.thirdText == null) {\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un texto válido, por favor.\");\r\n return;\r\n }\r\n\r\n let data = [{\r\n textId: id,\r\n content: this.state.thirdText,\r\n }];\r\n\r\n this.props.setTextParams(data);\r\n this.setState({ loading: false });\r\n };\r\n saveFourthText(id) {\r\n this.setState({ loading: true });\r\n if (this.state.fourthText === \"\" || this.state.fourthText == null) {\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un texto válido, por favor.\");\r\n return;\r\n }\r\n\r\n let data = [{\r\n textId: id,\r\n content: this.state.fourthText,\r\n }];\r\n\r\n this.props.setTextParams(data);\r\n this.setState({ loading: false });\r\n };\r\n saveFifthText(id) {\r\n this.setState({ loading: true });\r\n if (this.state.fifthText === \"\" || this.state.fifthText == null) {\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un texto de esspera válido, por favor.\");\r\n return;\r\n }\r\n\r\n let data = [{\r\n textId: id,\r\n content: this.state.fifthText,\r\n }];\r\n\r\n this.props.setTextParams(data);\r\n this.setState({ loading: false });\r\n };\r\n saveSixthText(id) {\r\n this.setState({ loading: true });\r\n if (this.state.sixthText === \"\" || this.state.sixthText == null) {\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un texto de espera válido, por favor.\");\r\n return;\r\n }\r\n\r\n let data = [{\r\n textId: id,\r\n content: this.state.sixthText,\r\n }];\r\n\r\n this.props.setTextParams(data);\r\n this.setState({ loading: false });\r\n };\r\n\r\n render() {\r\n\r\n let { loading, firstText, secondText, thirdText, fourthText, fifthText, sixthText } = this.state;\r\n let { getFirstParamsTextResponse } = this.props;\r\n let firstObject = getFirstParamsTextResponse ? getFirstParamsTextResponse[0] : null;\r\n let secondObject = getFirstParamsTextResponse ? getFirstParamsTextResponse[1] : null;\r\n let thirdObject = getFirstParamsTextResponse ? getFirstParamsTextResponse[2] : null;\r\n let fourthObject = getFirstParamsTextResponse ? getFirstParamsTextResponse[3] : null;\r\n let fifthObject = getFirstParamsTextResponse ? getFirstParamsTextResponse[4] : null;\r\n let sixthObject = getFirstParamsTextResponse ? getFirstParamsTextResponse[5] : null;\r\n\r\n if (getFirstParamsTextResponse === null) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n

\r\n Textos de espera\r\n

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

\r\n {firstObject.description}\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 {secondObject.description}\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 {thirdObject.description}\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 {fourthObject.description}\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 {sixthObject.description}\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 {fifthObject.description}\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\nWaitingText.propTypes = {\r\n getFirstParamsTextResponse: PropTypes.array,\r\n updateParamsTextResponse: PropTypes.string,\r\n getTextParams: PropTypes.func,\r\n setTextParams: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getFirstParamsTextResponse: state.admin.getFirstParamsTextResponse,\r\n updateParamsTextResponse: state.admin.updateParamsTextResponse,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getTextParams: () => dispatch(getTextParams()),\r\n setTextParams: (data) => dispatch(setTextParams(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(WaitingText);","import BaseURL from \"../../api/BaseURL\";\r\n\r\nexport const mapFilesData = (filesData) => {\r\n \r\n let new_list = [];\r\n let mapFilesIds = [];\r\n\r\n for(let i in filesData){\r\n let item = filesData[i];\r\n let new_object = {\r\n multimediaId: parseInt(item.multimediaId, 10),\r\n name: item.description,\r\n maxSizeMb: item.maxSizeMb,\r\n url: BaseURL+item.url,\r\n multimediaTypeId: parseInt(item.multimediaTypeId, 10),\r\n sectionId: item.sectionId,\r\n file: null, \r\n uid: parseInt(item.multimediaId, 10),\r\n status: null,\r\n };\r\n mapFilesIds.push(parseInt(item.multimediaId, 10));\r\n new_list.push(new_object);\r\n }\r\n\r\n return new_list;\r\n\r\n};\r\n\r\nexport const mapToDataResponse = (isImages, contentList) => {\r\n\r\n let response_list = [];\r\n\r\n for(let i in contentList){\r\n let item = contentList[i];\r\n if(item.multimediaId === undefined){\r\n let new_object = {\r\n file: item.originFileObj, \r\n };\r\n response_list.push(new_object);\r\n }\r\n }\r\n\r\n return response_list;\r\n\r\n};\r\n\r\nexport const mapScheduleData = (isWeekend, isMorning, contentList) => {\r\n\r\n let response_list = {};\r\n\r\n for(let i in contentList){\r\n let item = contentList[i];\r\n if(item.isWeekend === isWeekend){\r\n if(item.isMorning === isMorning){\r\n response_list = item;\r\n return response_list;\r\n }\r\n }\r\n }\r\n \r\n};\r\n\r\nexport const defineServiceQuantity = (isWeekend, isMorning, contentList) => {\r\n\r\n let week_services = [];\r\n let contentListValues = contentList.defaultScheduleValues;\r\n let servicesNames = contentList.services;\r\n\r\n for(let i in contentListValues){\r\n let item = contentListValues[i];\r\n if(item.isWeekend === isWeekend){\r\n if(item.isMorning === isMorning){\r\n for (let i in servicesNames){\r\n let new_object = {\r\n serviceId: servicesNames[i].id,\r\n serviceName: servicesNames[i].name,\r\n quantity: null,\r\n };\r\n for (let j in item.advisorsByServices){\r\n if(servicesNames[i].id === item.advisorsByServices[j].serviceId){\r\n new_object.quantity = item.advisorsByServices[j].quantity;\r\n }\r\n }\r\n week_services.push(new_object);\r\n }\r\n return week_services;\r\n }\r\n }\r\n }\r\n\r\n};\r\n\r\nexport const createDataResponse = (week_information, week_services) => {\r\n\r\n let data = {\r\n defaultScheduleValuesId: week_information.defaultScheduleValuesId,\r\n startTime: week_information.startTime,\r\n endTime: week_information.endTime,\r\n advisorsByServices: [],\r\n };\r\n\r\n let new_array = [];\r\n\r\n for (let i in week_services){\r\n let item = week_services[i];\r\n let new_object = {\r\n serviceId: item.serviceId,\r\n quantity: item.quantity,\r\n };\r\n new_array.push(new_object);\r\n }\r\n \r\n data.advisorsByServices = new_array;\r\n\r\n return data;\r\n\r\n};","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Modal, Upload, Icon, Checkbox, Button, Card} from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Subcomponents\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Actions\r\nimport {getMultimediaParams, updateMultimediaParams} from \"../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\nimport {mapFilesData, mapToDataResponse} from \"../../../../lib/adminUtils/adminUtils\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/multimedia.css';\r\n\r\n//Functions\r\nfunction getBase64(file) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n};\r\n\r\nclass Multimedia extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n videoIsActive: null,\r\n imagesIsActive: null,\r\n previewImage: null,\r\n previewVisible: null,\r\n imagesList: [],\r\n loadedList: null,\r\n videosList: [],\r\n modifyImages: null,\r\n modifyVideos: null,\r\n };\r\n\r\n this.onChangeVideoIsActiveState = this.onChangeVideoIsActiveState.bind(this);\r\n this.onChangeImagesIsActiveState = this.onChangeImagesIsActiveState.bind(this);\r\n this.onMultimediaChange = this.onMultimediaChange.bind(this);\r\n this.handleCancelModal = this.handleCancelModal.bind(this);\r\n this.handleImagesChange = this.handleImagesChange.bind(this);\r\n this.handleVideoChange = this.handleVideoChange.bind(this);\r\n this.saveMultimediaChanges = this.saveMultimediaChanges.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getMultimediaParams();\r\n }\r\n });\r\n };\r\n componentDidUpdate(prevProps, prevState, snapshot){\r\n if(prevProps !== this.props){\r\n if(this.props.getMultimediaParamsResponse.videoIsActive){\r\n this.setState({\r\n videoIsActive: this.state.videoIsActive === null ? true : this.state.videoIsActive,\r\n imagesIsActive: this.state.imagesIsActive === null ? false : this.state.imagesIsActive\r\n });\r\n }else{\r\n this.setState({\r\n videoIsActive: this.state.videoIsActive === null ? false : this.state.videoIsActive,\r\n imagesIsActive: this.state.imagesIsActive === null ? true : this.state.imagesIsActive\r\n });\r\n }\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n if((nextProps.getMultimediaParamsResponse !== null && prevState.loadedList === null)){\r\n return {\r\n imagesList: mapFilesData(nextProps.getMultimediaParamsResponse.images),\r\n videosList: mapFilesData(nextProps.getMultimediaParamsResponse.videos),\r\n loadedList: true,\r\n }\r\n }else \r\n return null;\r\n };\r\n\r\n onChangeVideoIsActiveState(value){\r\n if(value){\r\n this.setState({\r\n videoIsActive: true,\r\n imagesIsActive: false\r\n });\r\n }else{\r\n this.setState({\r\n videoIsActive: false,\r\n imagesIsActive: true\r\n });\r\n }\r\n };\r\n onChangeImagesIsActiveState(value){\r\n if(value){\r\n this.setState({\r\n videoIsActive: false,\r\n imagesIsActive: true\r\n });\r\n }else{\r\n this.setState({\r\n videoIsActive: true,\r\n imagesIsActive: false\r\n });\r\n }\r\n };\r\n\r\n handlePreview = async file => {\r\n if (!file.url && !file.preview) {\r\n file.preview = await getBase64(file.originFileObj);\r\n }\r\n\r\n this.setState({\r\n previewImage: file.url || file.preview,\r\n previewVisible: true,\r\n });\r\n };\r\n\r\n onMultimediaChange(file){\r\n \r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n let fileToAdd = {\r\n uid: file.uid,\r\n status: 'done',\r\n type: file.type,\r\n name: file.name,\r\n size: file.size,\r\n lastModified: file.lastModified,\r\n lastModifiedDate: file.lastModifiedDate\r\n };\r\n\r\n reader.onloadend = function () {\r\n fileToAdd.url = reader.result;\r\n };\r\n return false;\r\n };\r\n\r\n handleCancelModal(){\r\n this.setState({\r\n previewVisible: false,\r\n });\r\n };\r\n\r\n handleImagesChange(images){\r\n let new_list = images.fileList;\r\n this.setState({ \r\n imagesList: new_list,\r\n modifyImages: true,\r\n });\r\n };\r\n \r\n handleVideoChange(videosList){\r\n let new_list = videosList.fileList;\r\n this.setState({ \r\n videosList: new_list,\r\n modifyVideos: true, \r\n });\r\n };\r\n\r\n saveMultimediaChanges(responseVideoIsActive){\r\n let data = {\r\n videoIsActive: responseVideoIsActive,\r\n modifyImages: this.state.modifyImages === null ? false : this.state.modifyImages,\r\n modifyVideos: this.state.modifyVideos === null ? false : this.state.modifyVideos,\r\n images: mapToDataResponse(true, this.state.imagesList),\r\n videos: mapToDataResponse(false, this.state.videosList)\r\n };\r\n this.props.updateMultimediaParams(data);\r\n };\r\n\r\n render() { \r\n let {imagesList, videosList, previewVisible, previewImage, videoIsActive, imagesIsActive} = this.state;\r\n let videoIsActiveProps, responseVideoIsActive;\r\n\r\n if(this.props.getMultimediaParamsResponse !== null){\r\n videoIsActiveProps = this.props.getMultimediaParamsResponse.videoIsActive;\r\n }\r\n responseVideoIsActive = videoIsActive === null ? videoIsActiveProps : videoIsActive;\r\n \r\n const uploadButton = (\r\n
\r\n \r\n
Cargar contenido
\r\n
\r\n );\r\n\r\n\r\n if(this.props.getMultimediaParamsResponse === null){\r\n return(\r\n \r\n );\r\n }else{\r\n return (\r\n
\r\n \r\n
\r\n

Multimedia

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

\r\n this.onChangeImagesIsActiveState(value.target.checked)} checked={imagesIsActive}>\r\n Imágenes\r\n \r\n

\r\n this.onMultimediaChange(file)}\r\n showUploadList={true}\r\n onPreview={this.handlePreview}\r\n onChange={this.handleImagesChange}>\r\n {imagesList.length >= 4 ?\r\n null : uploadButton}\r\n \r\n \r\n \"example\"\r\n \r\n
\r\n \r\n \r\n \r\n

\r\n this.onChangeVideoIsActiveState(value.target.checked)} checked={videoIsActive}>\r\n Videos\r\n \r\n

\r\n this.onMultimediaChange(file)}\r\n onPreview={this.handlePreview}\r\n onChange={this.handleVideoChange}>\r\n {videosList.length >= 4 ?\r\n null : uploadButton}\r\n \r\n \r\n \"example\"\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\nMultimedia.propTypes = {\r\n getMultimediaParamsResponse: PropTypes.object,\r\n getMultimediaParams: PropTypes.func,\r\n updateMultimediaParamsResponse: PropTypes.string,\r\n updateMultimediaParams: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getMultimediaParamsResponse: state.admin.getMultimediaParamsResponse,\r\n updateMultimediaParamsResponse: state.admin.updateMultimediaParamsResponse,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getMultimediaParams: () => dispatch(getMultimediaParams()),\r\n updateMultimediaParams: (data) => dispatch(updateMultimediaParams(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Multimedia);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Icon, Tooltip} from 'antd';\r\nimport PropTypes from \"prop-types\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\n\r\n//Actions\r\nimport {deleteSocialData} from \"../../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\n\r\n//Styles\r\n\r\nclass TableButtons extends Component {\r\n \r\n constructor(props){\r\n \r\n super(props);\r\n \r\n this.state = {\r\n editUserModal: false,\r\n keyBurstingKey: 0,\r\n visible: false,\r\n loading: false,\r\n isLoading: false,\r\n visibleEditModal: false,\r\n permission: false,\r\n };\r\n\r\n this.handleDelete = this.handleDelete.bind(this);\r\n \r\n };\r\n\r\n handleDelete(item){\r\n let data = {\r\n linkId: item.linkId,\r\n name: item.linkName,\r\n url: item.linkUrl,\r\n sectionId: item.sectionId,\r\n section: item.section,\r\n };\r\n this.props.deleteSocialData(data);\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n this.handleDelete(this.props.item) }\r\n type={\"delete\"} size={\"small\"}/>\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nTableButtons.propTypes = {\r\n deleteSocialData: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n deleteSocialData: (data) => dispatch(deleteSocialData(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TableButtons);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Button, Card, Input, Table} from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Actions\r\nimport {getSocialData, addSocialData} from \"../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/social.css';\r\n\r\n//Subcomponents\r\nimport TableButtons from './subcomponents/SocialTableButtons';\r\nimport { WARNING_MODAL } from '../../subComponents/modals/responseModals';\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Constants\r\nconst table = [\r\n {\r\n title:
Nombre
,\r\n dataIndex: 'name',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.name.localeCompare(b.name)},\r\n },\r\n {\r\n title:
Enlace
,\r\n dataIndex: 'link',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.link.localeCompare(b.link)},\r\n },\r\n {\r\n title: \"Acciones\",\r\n dataIndex: 'actions',\r\n width: \"50px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n }\r\n];\r\n\r\n//Functions\r\nfunction itemRender(current, type, originalElement) {\r\n if (type === 'prev' || type === 'Previous Page') {\r\n return {\"<\"};\r\n } if (type === 'next') {\r\n return {\">\"};\r\n }\r\n return originalElement;\r\n};\r\n\r\nclass Social extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n text: null,\r\n firstText: null,\r\n firstTextLength: 0,\r\n linkName: null,\r\n linkUrl: null,\r\n };\r\n\r\n this.setData = this.setData.bind(this);\r\n this.inputLinkName = this.inputLinkName.bind(this);\r\n this.inputLinkUrl = this.inputLinkUrl.bind(this);\r\n this.saveLink = this.saveLink.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getSocialData();\r\n }\r\n });\r\n };\r\n\r\n setData(linkList){\r\n \r\n let rows = [];\r\n if(linkList){\r\n for (let i = 0; i < linkList.length; i++) {\r\n \r\n let item = linkList[i];\r\n let row = {\r\n key: i,\r\n name: item.name,\r\n link: item.url,\r\n actions: \r\n };\r\n rows.push(row);\r\n }\r\n }\r\n \r\n return rows;\r\n };\r\n\r\n inputLinkName(e){\r\n this.setState({\r\n linkName: e.target.value,\r\n }); \r\n };\r\n\r\n inputLinkUrl(e){\r\n this.setState({\r\n linkUrl: e.target.value,\r\n }); \r\n };\r\n\r\n saveLink(){\r\n if(this.state.linkName !== \"\" && this.state.linkUrl !== \"\" &&\r\n this.state.linkName !== null && this.state.linkUrl !== null ){\r\n let data = \r\n {\r\n name: this.state.linkName,\r\n url: this.state.linkUrl,\r\n };\r\n this.props.addSocialData(data);\r\n this.setState({\r\n linkName: null,\r\n linkUrl: null,\r\n });\r\n }else{\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un enlace válido, por favor\");\r\n }\r\n };\r\n\r\n render() {\r\n\r\n let {linkName, linkUrl} = this.state;\r\n let {getLinksResponse} = this.props;\r\n let tableData = this.setData(getLinksResponse);\r\n\r\n if(getLinksResponse === null){\r\n return (\r\n \r\n );\r\n }else{\r\n return (\r\n
\r\n \r\n
\r\n

Enlaces de redes sociales

\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 \r\n {tableData.length === 0\r\n ?\r\n
\r\n \r\n
No hay links todavía
\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\nSocial.propTypes = {\r\n getLinksResponse: PropTypes.array,\r\n getSocialData: PropTypes.func,\r\n addSocialData: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getLinksResponse: state.admin.getLinksResponse,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getSocialData: () => dispatch(getSocialData()),\r\n addSocialData: (data) => dispatch(addSocialData(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Social);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, TimePicker, InputNumber, Divider, Card, Popover, Icon, Button, Tabs} from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"moment-timezone/builds/moment-timezone-with-data\";\r\n\r\n//Subcomponents\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Actions\r\nimport {getScheduleValues, updateScheduleValues} from \"../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\nimport {mapScheduleData, defineServiceQuantity, createDataResponse} from \"../../../../lib/adminUtils/adminUtils\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/agenda.css';\r\n\r\nconst requestMeetingInfo = \"Modificar la cantidad de asesores asignados a cada servicio.\";\r\nconst { TabPane } = Tabs;\r\n\r\nclass Agenda extends Component {\r\n\r\n constructor(props){\r\n\r\n super(props);\r\n \r\n this.state = {\r\n isMounted: false,\r\n week_morning: {},\r\n week_morning_services: [],\r\n week_evening: {},\r\n week_evening_services: [],\r\n weekend_morning: {},\r\n weekend_morning_services: [],\r\n weekend_evening: {},\r\n weekend_evening_services: [],\r\n changedValues: null,\r\n };\r\n\r\n this.onChangeScheduleValue = this.onChangeScheduleValue.bind(this);\r\n this.onChangeScheduleService = this.onChangeScheduleService.bind(this);\r\n this.saveWeekChanges = this.saveWeekChanges.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getScheduleValues();\r\n }\r\n });\r\n };\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n if(nextProps.getScheduleValuesResponse !== null && prevState.changedValues === null){\r\n return {\r\n week_morning: mapScheduleData(false, true, nextProps.getScheduleValuesResponse.defaultScheduleValues),\r\n week_morning_services: defineServiceQuantity(false, true, nextProps.getScheduleValuesResponse),\r\n week_evening: mapScheduleData(false, false, nextProps.getScheduleValuesResponse.defaultScheduleValues),\r\n week_evening_services: defineServiceQuantity(false, false, nextProps.getScheduleValuesResponse),\r\n weekend_morning: mapScheduleData(true, true, nextProps.getScheduleValuesResponse.defaultScheduleValues),\r\n weekend_morning_services: defineServiceQuantity(true, true, nextProps.getScheduleValuesResponse),\r\n weekend_evening: mapScheduleData(true, false, nextProps.getScheduleValuesResponse.defaultScheduleValues),\r\n weekend_evening_services: defineServiceQuantity(true, false, nextProps.getScheduleValuesResponse),\r\n changedValues: false,\r\n }\r\n }else \r\n return null;\r\n };\r\n\r\n onChangeScheduleValue(value, typeWeek, field){\r\n let auxObj = this.state[typeWeek];\r\n auxObj[field] = moment(value._d).format(\"H:mm\");\r\n this.setState({\r\n [typeWeek]: auxObj\r\n });\r\n };\r\n\r\n onChangeScheduleService(value, typeWeek, serviceName){\r\n let auxArray = this.state[typeWeek];\r\n for (let i in auxArray){\r\n let item = auxArray[i];\r\n if(item.serviceName === serviceName){\r\n item.quantity = value;\r\n break;\r\n }\r\n }\r\n this.setState({\r\n [typeWeek]: auxArray,\r\n });\r\n };\r\n\r\n saveWeekChanges(){\r\n let {week_morning, week_morning_services, week_evening, week_evening_services,\r\n weekend_morning, weekend_morning_services, weekend_evening, weekend_evening_services } = this.state;\r\n let responseData = [];\r\n responseData.push(createDataResponse(week_morning, week_morning_services));\r\n responseData.push(createDataResponse(week_evening, week_evening_services));\r\n responseData.push(createDataResponse(weekend_morning, weekend_morning_services));\r\n responseData.push(createDataResponse(weekend_evening, weekend_evening_services));\r\n this.props.updateScheduleValues(responseData);\r\n };\r\n\r\n render() {\r\n\r\n let {getScheduleValuesResponse} = this.props;\r\n let {week_morning, week_morning_services, week_evening, week_evening_services,\r\n weekend_morning, weekend_morning_services, weekend_evening, weekend_evening_services } = this.state;\r\n if(getScheduleValuesResponse === null){\r\n return (\r\n \r\n );\r\n }else{\r\n return (\r\n
\r\n \r\n
\r\n

Parámetros de agenda

\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 Horario - Mañana\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Horarios

\r\n \r\n \r\n \r\n Hora inicial\r\n
\r\n this.onChangeScheduleValue(value, \"week_morning\", \"startTime\")}/>\r\n \r\n \r\n Hora final \r\n
\r\n this.onChangeScheduleValue(value, \"week_morning\", \"endTime\")} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Servicios

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {week_morning_services.map((service, i) => (\r\n \r\n {service.serviceName}\r\n
\r\n this.onChangeScheduleService(value, \"week_morning_services\", service.serviceName)} />\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n Horario - Tarde\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Horarios

\r\n \r\n \r\n \r\n Hora inicial\r\n
\r\n this.onChangeScheduleValue(value, \"week_evening\", \"startTime\")}/>\r\n \r\n \r\n Hora final \r\n
\r\n this.onChangeScheduleValue(value, \"week_evening\", \"endTime\")} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Servicios

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {week_evening_services.map((service, i) => (\r\n \r\n {service.serviceName}\r\n
\r\n this.onChangeScheduleService(value, \"week_evening_services\", service.serviceName)} />\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
\r\n Horario - Mañana\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Horarios

\r\n \r\n \r\n \r\n Hora inicial\r\n
\r\n this.onChangeScheduleValue(value, \"weekend_morning\", \"startTime\")}/>\r\n \r\n \r\n Hora final \r\n
\r\n this.onChangeScheduleValue(value, \"weekend_morning\", \"endTime\")} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Servicios

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {weekend_morning_services.map((service, i) => (\r\n\r\n \r\n {service.serviceName}\r\n
\r\n this.onChangeScheduleService(value, \"weekend_morning_services\", service.serviceName)} />\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n Horario - Tarde\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Horarios

\r\n \r\n \r\n \r\n Hora inicial\r\n
\r\n this.onChangeScheduleValue(value, \"weekend_evening\", \"startTime\")}/>\r\n \r\n \r\n Hora final \r\n
\r\n this.onChangeScheduleValue(value, \"weekend_evening\", \"endTime\")} />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Servicios

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {weekend_evening_services.map((service, i) => (\r\n \r\n {service.serviceName}\r\n
\r\n this.onChangeScheduleService(value, \"weekend_evening\", service.serviceName)} />\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 );\r\n }\r\n }\r\n}\r\n\r\nAgenda.propTypes = {\r\n getScheduleValuesResponse: PropTypes.object,\r\n getScheduleValues: PropTypes.func,\r\n updateScheduleValues: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getScheduleValuesResponse: state.admin.getScheduleValuesResponse,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getScheduleValues: () => dispatch(getScheduleValues()),\r\n updateScheduleValues: (data) => dispatch(updateScheduleValues(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Agenda);\r\n\r\n","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Icon, Tooltip, Modal, Input, InputNumber} from 'antd';\r\nimport PropTypes from \"prop-types\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\n\r\n//Actions\r\nimport {deleteServices, updateServices} from \"../../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\n\r\n//Styles\r\n\r\nclass TableButtons extends Component {\r\n\r\n constructor(props){\r\n\r\n super(props);\r\n\r\n this.state = {\r\n service: null,\r\n time: null,\r\n visible: false,\r\n loading: false,\r\n };\r\n\r\n this.inputServiceName = this.inputServiceName.bind(this);\r\n this.inputServiceTime = this.inputServiceTime.bind(this);\r\n this.handleDelete = this.handleDelete.bind(this);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n\r\n };\r\n\r\n inputServiceName(e){\r\n this.setState({\r\n service: e.target.value,\r\n });\r\n };\r\n\r\n inputServiceTime(e){\r\n this.setState({\r\n time: e,\r\n });\r\n };\r\n\r\n handleEdit(item){\r\n let data = {\r\n serviceId: item.serviceId,\r\n name: this.state.service===null ? item.name : this.state.service,\r\n meetingRangeInMinutes: this.state.time===null ? item.meetingRangeInMinutes : this.state.time,\r\n };\r\n this.props.updateServices(data);\r\n this.setState({\r\n visible: false\r\n });\r\n };\r\n\r\n handleDelete(item){\r\n let data = {\r\n serviceId: item.serviceId,\r\n name: item.name,\r\n meetingRangeInMinutes: item.meetingRangeInMinutes\r\n };\r\n this.props.deleteServices(data);\r\n };\r\n\r\n render() {\r\n const exclusiveIds = [1, 2, 5, 17];\r\n const hasExclusiveId = exclusiveIds.includes(this.props.item.serviceId);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n this.setState({visible: true})}\r\n type={\"edit\"} size={\"small\"}/>\r\n \r\n \r\n {hasExclusiveId ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n this.handleDelete(this.props.item)}/>\r\n \r\n \r\n }\r\n\r\n \r\n this.handleEdit(this.props.item)} onCancel={() => this.setState({visible: false})}\r\n keyboard={!this.state.loading}\r\n closable={!this.state.loading}>\r\n \r\n \r\n Nombre:\r\n
\r\n this.inputServiceName(e)}/>\r\n \r\n \r\n Tiempo (Minutos):\r\n
\r\n this.inputServiceTime(e)}/>\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nTableButtons.propTypes = {\r\n updateServices: PropTypes.func,\r\n deleteServices: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n updateServices: (data) => dispatch(updateServices(data)),\r\n deleteServices: (data) => dispatch(deleteServices(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TableButtons);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Button, Card, Input, Table, InputNumber} from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Actions\r\nimport {getServices, addServices} from \"../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/services.css';\r\n\r\n//Subcomponents\r\nimport TableButtons from './subcomponents/ServiceTableButtons';\r\nimport { WARNING_MODAL } from '../../subComponents/modals/responseModals';\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Constants\r\nconst table = [\r\n {\r\n title:
Servicio
,\r\n dataIndex: 'name',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.name.localeCompare(b.name)},\r\n },\r\n {\r\n title:
Tiempo (Minutos)
,\r\n dataIndex: 'time',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.time.toString().localeCompare(b.time.toString())},\r\n },\r\n {\r\n title:
Estado
,\r\n dataIndex: 'serviceState',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.serviceState.localeCompare(b.serviceState)},\r\n },\r\n {\r\n title: \"Acciones\",\r\n dataIndex: 'actions',\r\n width: \"50px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n }\r\n];\r\n\r\n//Functions\r\nfunction itemRender(current, type, originalElement) {\r\n if (type === 'prev' || type === 'Previous Page') {\r\n return {\"<\"};\r\n } if (type === 'next') {\r\n return {\">\"};\r\n }\r\n return originalElement;\r\n};\r\n\r\nclass Services extends Component {\r\n\r\n constructor(props){\r\n \r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n service: null,\r\n time: null,\r\n };\r\n\r\n this.setData = this.setData.bind(this);\r\n this.inputServiceName = this.inputServiceName.bind(this);\r\n this.inputServiceTime = this.inputServiceTime.bind(this);\r\n this.saveServices = this.saveServices.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getServices();\r\n }\r\n });\r\n };\r\n\r\n setData(linkList){\r\n\r\n let rows = [];\r\n if(linkList){\r\n for (let i = 0; i < linkList.length; i++) {\r\n \r\n let item = linkList[i];\r\n let row = {\r\n key: i,\r\n name: item.name,\r\n time: item.meetingRangeInMinutes,\r\n serviceState: item.isActive ? \"Activo\" : \"Inactivo\",\r\n actions: \r\n };\r\n rows.push(row);\r\n }\r\n }\r\n \r\n return rows;\r\n };\r\n\r\n inputServiceName(e){\r\n this.setState({\r\n service: e.target.value,\r\n }); \r\n };\r\n\r\n inputServiceTime(e){\r\n this.setState({\r\n time: e,\r\n }); \r\n };\r\n\r\n saveServices(){\r\n if(this.state.service !== \"\" && this.state.time !== \"\" && \r\n this.state.service !== null && this.state.time !== null ){\r\n let data = \r\n {\r\n name: this.state.service,\r\n meetingRangeInMinutes: this.state.time,\r\n };\r\n this.props.addServices(data);\r\n this.setState({\r\n service: null,\r\n time: null,\r\n });\r\n }else{\r\n WARNING_MODAL(\"Advertencia\", \"Agregue un servicio válido, por favor\");\r\n }\r\n };\r\n\r\n render() {\r\n\r\n let {service} = this.state;\r\n let {getServicesResponse} = this.props;\r\n let tableData = this.setData(getServicesResponse);\r\n\r\n if(getServicesResponse === null){\r\n return (\r\n \r\n );\r\n }else{\r\n return (\r\n
\r\n \r\n
\r\n

Tipos de servicios ofrecidos

\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 \r\n {tableData.length === 0\r\n ?\r\n
\r\n \r\n
No hay servicios todavía
\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\nServices.propTypes = {\r\n getServicesResponse: PropTypes.array,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getServicesResponse: state.admin.getServicesResponse,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getServices: () => dispatch(getServices()),\r\n addServices: (data) => dispatch(addServices(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Services);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Card, Button, Input} from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Subcomponents\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\n\r\n//Actions\r\nimport {getTimesOut, updateTimesOut} from \"../../../../store/redux/actions/admin/parameterization/parameterizationActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/timeout.css';\r\n\r\nclass Timeout extends Component {\r\n\r\n constructor(props){\r\n\r\n super(props);\r\n \r\n this.state = {\r\n isMounted: false,\r\n changedValues: null,\r\n idleTimeOut: null,\r\n assignTimeOut: null,\r\n whatsappNumber: null\r\n };\r\n\r\n this.onChangeFirst = this.onChangeFirst.bind(this);\r\n this.onChangeSecond = this.onChangeSecond.bind(this);\r\n this.onChangeThird = this.onChangeThird.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getTimesOut();\r\n }\r\n });\r\n };\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n if (nextProps.getTimesoutResponse == null || prevState.changedValues !== null) {\r\n return null;\r\n }\r\n\r\n return {\r\n idleTimeOut: nextProps.getTimesoutResponse.idleTimeOut,\r\n assignTimeOut: nextProps.getTimesoutResponse.assignTimeOut,\r\n whatsappNumber: nextProps.getTimesoutResponse.whatsappNumber,\r\n changedValues: false,\r\n }\r\n };\r\n\r\n onChangeFirst(value){\r\n this.setState({ idleTimeOut: value.target.value });\r\n };\r\n\r\n onChangeSecond(value){\r\n this.setState({ assignTimeOut: value.target.value });\r\n };\r\n\r\n onChangeThird(value){\r\n this.setState({ whatsappNumber: value.target.value });\r\n };\r\n\r\n saveChanges(){\r\n let data = {\r\n idleTimeOut: this.state.idleTimeOut,\r\n assignTimeOut: this.state.assignTimeOut,\r\n whatsappNumber: this.state.whatsappNumber\r\n };\r\n\r\n this.props.updateTimesOut(data);\r\n };\r\n\r\n render() {\r\n\r\n let { getTimesoutResponse } = this.props;\r\n let { idleTimeOut, assignTimeOut, whatsappNumber } = this.state;\r\n\r\n if (getTimesoutResponse === null) {\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 Tiempos de espera\r\n

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

Tiempo de holgura (segundos)

\r\n this.onChangeFirst(value)}/>\r\n \r\n \r\n

Tiempo de asignación (segundos)

\r\n this.onChangeSecond(value)} />\r\n \r\n \r\n

Número de Whatsapp

\r\n this.onChangeThird(value)} />\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\nTimeout.propTypes = {\r\n getTimesoutResponse: PropTypes.object,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n getTimesoutResponse: state.admin.getTimesoutResponse,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n updateTimesOut: (data) => dispatch(updateTimesOut(data)),\r\n getTimesOut: () => dispatch(getTimesOut()),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Timeout);\r\n\r\n","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Tabs, Icon} from \"antd\";\r\n\r\n//Components\r\nimport LogoTypes from './LogoTypes';\r\nimport WaitingText from './WaitingText';\r\nimport Multimedia from './Multimedia';\r\nimport Social from './SocialNetworks';\r\nimport Agenda from './Agenda';\r\nimport Services from './Services';\r\nimport Timeout from './Timeout';\r\n\r\n//Styles\r\nimport '../../../../styles/admin/parameterization/parameterization.css';\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport PropTypes from 'prop-types';\r\n\r\n//Constants\r\nconst { TabPane } = Tabs;\r\n\r\nclass Parametrization extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {};\r\n };\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n Logos} key=\"1\">\r\n \r\n \r\n Textos de espera} key=\"2\">\r\n \r\n \r\n Multimedia} key=\"3\">\r\n \r\n \r\n Redes sociales} key=\"4\">\r\n \r\n \r\n Agenda} key=\"5\">\r\n \r\n \r\n Servicios} key=\"6\">\r\n \r\n \r\n Tiempo de espera} key=\"7\">\r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n}\r\n\r\nParametrization.propTypes = {\r\n isLoading: PropTypes.bool\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isLoading: state.admin.isLoading,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Parametrization);","//Subcomponents\r\nimport {ERROR_MODAL, SUCCESS_MODAL, SUCCESS_MESSAGE} from \"../../../../../components/ui/subComponents/modals/responseModals\";\r\n\r\n//Services\r\nimport adminServices from '../../../../../api/adminApi';\r\n\r\n//Constants\r\nimport {AdminTypes as C} from '../../../types';\r\n\r\n/* ------------- Embedded Mode ----------------- */\r\nexport const getEmbeddedMeetingMode = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.GET_EMBEDDED_MODE,\r\n isLoading: true,\r\n isEmbeddedMeeting: true\r\n });\r\n return adminServices.getEmbeddedMeetingMode()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_EMBEDDED_MODE,\r\n isLoading: false,\r\n isEmbeddedMeeting: response.data\r\n });\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.GET_EMBEDDED_MODE,\r\n isLoading: false,\r\n isEmbeddedMeeting: true\r\n })\r\n })\r\n }\r\n};\r\nexport const updateEmbeddedMeetingMode = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.UPDATE_EMBEDDED_MODE,\r\n isLoading: true\r\n });\r\n return adminServices.updateEmbeddedMeetingMode(data)\r\n .then(response => {\r\n SUCCESS_MESSAGE(response.data);\r\n dispatch({\r\n type: C.UPDATE_EMBEDDED_MODE,\r\n isLoading: false\r\n });\r\n dispatch(getEmbeddedMeetingMode());\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.UPDATE_EMBEDDED_MODE,\r\n isLoading: false\r\n });\r\n })\r\n }\r\n};\r\n\r\n\r\nexport const getVideoCallUrls = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.GET_VIDEOCALL_URLS,\r\n isLoading: true,\r\n urlsList: []\r\n });\r\n\r\n return adminServices.getVideoCallUrls()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_VIDEOCALL_URLS,\r\n isLoading: false,\r\n urlsList: response.data\r\n });\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.GET_VIDEOCALL_URLS,\r\n isLoading: false,\r\n urlsList: []\r\n })\r\n })\r\n }\r\n};\r\nexport const getUrlById = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.GET_URL_BY_ID,\r\n isLoading: true,\r\n urlByIdInfo: {}\r\n });\r\n\r\n return adminServices.getUrlById(data)\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_URL_BY_ID,\r\n isLoading: false,\r\n urlByIdInfo: response.data\r\n });\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.GET_URL_BY_ID,\r\n isLoading: false,\r\n urlByIdInfo: {}\r\n });\r\n })\r\n }\r\n};\r\nexport const updateVideoCallUrl = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: true\r\n });\r\n\r\n return adminServices.updateVideoCallUrl(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data);\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: false\r\n });\r\n dispatch(getVideoCallUrls());\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: false\r\n });\r\n })\r\n }\r\n};\r\nexport const getParamsVideoCallUrl = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.GET_PARAMS_VIDEOCALL_URL,\r\n isLoading: true,\r\n videoCallParams: []\r\n });\r\n\r\n return adminServices.getParamsVideoCallUrl()\r\n .then(response => {\r\n dispatch({\r\n type: C.GET_PARAMS_VIDEOCALL_URL,\r\n isLoading: false,\r\n videoCallParams: response.data\r\n });\r\n dispatch(getVideoCallUrls());\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.GET_PARAMS_VIDEOCALL_URL,\r\n isLoading: false,\r\n videoCallParams: []\r\n });\r\n })\r\n }\r\n};\r\nexport const addVideoCallUrl = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: true\r\n });\r\n\r\n return adminServices.addVideoCallUrl(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data);\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: false\r\n });\r\n dispatch(getVideoCallUrls());\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: false\r\n });\r\n })\r\n }\r\n};\r\nexport const deleteVideoCallUrl = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: true\r\n });\r\n\r\n return adminServices.deleteVideoCallUrl(data)\r\n .then(response => {\r\n SUCCESS_MODAL('Acción realizada correctamente', response.data);\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: false\r\n });\r\n dispatch(getVideoCallUrls());\r\n })\r\n .catch(err => {\r\n ERROR_MODAL('Error al realizar la acción.', err.data);\r\n dispatch({\r\n type: C.UPDATE_VIDEOCALL_URL,\r\n isLoading: false\r\n });\r\n })\r\n }\r\n};\r\n","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Icon, Tooltip, Modal, Input, Popconfirm} from 'antd';\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport PropTypes from 'prop-types';\r\n\r\n//Actions\r\nimport {\r\n deleteVideoCallUrl,\r\n getUrlById,\r\n updateVideoCallUrl\r\n} from \"../../../../store/redux/actions/admin/zoomkeys/zoomKeysActions\";\r\n\r\n//Styles\r\n\r\nclass TableButtons extends Component {\r\n constructor(props){\r\n super(props);\r\n \r\n this.state = {\r\n modalVisible: false,\r\n loading: false,\r\n newUrl: null\r\n };\r\n\r\n this.onChangeUrl = this.onChangeUrl.bind(this);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n };\r\n\r\n onChangeUrl(e){\r\n this.setState({\r\n newUrl: e.target.value\r\n });\r\n };\r\n handleEdit(){\r\n let { url, videoCallUrlId } = this.props.item;\r\n let { newUrl } = this.state;\r\n\r\n let data = {\r\n url: newUrl ? newUrl : url,\r\n videoCallUrlId: videoCallUrlId\r\n };\r\n\r\n this.props.updateVideoCallUrl(data);\r\n this.setState({\r\n modalVisible: false\r\n });\r\n };\r\n showEditModal(){\r\n const { videoCallUrlId } = this.props.item;\r\n\r\n this.props.getUrlById({ videoCallUrlId });\r\n this.setState({ modalVisible: true });\r\n }\r\n handleDelete(){\r\n let { videoCallUrlId } = this.props.item;\r\n let data = { videoCallUrlId };\r\n\r\n this.props.deleteVideoCallUrl(data);\r\n this.setState({\r\n modalVisible: false\r\n });\r\n }\r\n\r\n render() {\r\n const { modalVisible, newUrl } = this.state;\r\n const { urlByIdInfo } = this.props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n this.showEditModal()}\r\n type={\"edit\"} size={\"small\"}/>\r\n \r\n \r\n \r\n \r\n this.handleDelete()}>\r\n \r\n \r\n \r\n \r\n \r\n\r\n this.handleEdit()} onCancel={() => this.setState({ modalVisible: false} )}>\r\n \r\n \r\n Asesor:\r\n
\r\n \r\n \r\n \r\n URL:\r\n
\r\n this.onChangeUrl(e)}/>\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nTableButtons.propTypes = {\r\n item: PropTypes.object,\r\n urlByIdInfo: PropTypes.object,\r\n getUrlById: PropTypes.func,\r\n updateVideoCallUrl: PropTypes.func,\r\n deleteVideoCallUrl: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n urlByIdInfo: state.admin.urlByIdInfo\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getUrlById: (data) => dispatch(getUrlById(data)),\r\n updateVideoCallUrl: (data) => dispatch(updateVideoCallUrl(data)),\r\n deleteVideoCallUrl: (data) => dispatch(deleteVideoCallUrl(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TableButtons);","import React, { Component} from 'react';\r\nimport { Modal, Row, Col, Input, Select } from 'antd';\r\nimport {addVideoCallUrl, getParamsVideoCallUrl} from \"../../../../store/redux/actions/admin/zoomkeys/zoomKeysActions\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport PropTypes from 'prop-types';\r\n\r\nclass UrlConfigModal extends Component{\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n adviserSelected: null,\r\n url: null\r\n };\r\n\r\n this.onChangeAdviser = this.onChangeAdviser.bind(this);\r\n this.onChangeUrl = this.onChangeUrl.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.props.getParamsVideoCallUrl();\r\n }\r\n\r\n onChangeAdviser(id){\r\n this.setState({ adviserSelected: id });\r\n };\r\n onChangeUrl(value){\r\n this.setState({ url: value.target.value });\r\n }\r\n onSubmit(){\r\n const { adviserSelected, url } = this.state;\r\n\r\n this.props.addVideoCallUrl({ employeeId: adviserSelected, url });\r\n this.props.onCancel();\r\n }\r\n\r\n render(){\r\n const { onCancel, videoCallParams } = this.props;\r\n\r\n return(\r\n this.onSubmit()}\r\n cancelText='Cancelar' onCancel={onCancel}>\r\n
\r\n \r\n
\r\n Asesor\r\n
\r\n \r\n \r\n \r\n URL\r\n
\r\n this.onChangeUrl(value)}/>\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nUrlConfigModal.propTypes = {\r\n getParamsVideoCallUrl: PropTypes.func,\r\n addVideoCallUrl: PropTypes.func,\r\n videoCallParams: PropTypes.array,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n videoCallParams: state.admin.videoCallParams\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getParamsVideoCallUrl: () => dispatch(getParamsVideoCallUrl()),\r\n addVideoCallUrl: (data) => dispatch(addVideoCallUrl(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UrlConfigModal);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Card, Table, Button, Switch} from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Actions\r\nimport { getVideoCallUrls, getEmbeddedMeetingMode, updateEmbeddedMeetingMode } from \"../../../../store/redux/actions/admin/zoomkeys/zoomKeysActions\";\r\n\r\n//Styles\r\nimport '../../../../styles/admin/zoomkeys/zoomkeys.css';\r\n\r\n//Subcomponents\r\nimport TableButtons from './ZoomKeysTableButtons';\r\nimport LoadingComponent from \"../../general/LoadingComponent\";\r\nimport UrlConfigModal from './urlConfigModal';\r\n\r\n//Constants\r\nconst table = [\r\n {\r\n title:
Asesor
,\r\n dataIndex: 'employeeName',\r\n key: 'employeeName',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.employeeName.localeCompare(b.employeeName) },\r\n },\r\n {\r\n title:
URL
,\r\n dataIndex: 'url',\r\n key: 'url',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
\r\n },\r\n {\r\n title: \"Acciones\",\r\n dataIndex: 'actions',\r\n width: \"50px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n }\r\n];\r\n\r\n//Functions\r\nfunction itemRender(current, type, originalElement) {\r\n if (type === 'prev' || type === 'Previous Page') {\r\n return {\"<\"};\r\n } if (type === 'next') {\r\n return {\">\"};\r\n }\r\n return originalElement;\r\n};\r\n\r\nclass ZoomKeys extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n visibleModal: false\r\n };\r\n\r\n this.setData = this.setData.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.props.getVideoCallUrls();\r\n this.props.getEmbeddedMeetingMode();\r\n };\r\n\r\n setData(){\r\n const { urlsList } = this.props;\r\n let dataTable = [];\r\n\r\n urlsList.forEach(element => {\r\n let elementToPush = {\r\n videoCallUrlId: element.videoCallUrlId,\r\n employeeName: element.employeeName,\r\n url: element.url,\r\n actions: \r\n };\r\n\r\n dataTable.push(elementToPush);\r\n });\r\n\r\n return dataTable;\r\n };\r\n toggleModal = (flag) => {\r\n this.setState({visibleModal: flag});\r\n };\r\n\r\n render() {\r\n let { keys, isLoading, isEmbeddedMeeting } = this.props;\r\n let tableData = this.setData();\r\n let keysAreNull = keys === null;\r\n const { visibleModal } = this.state;\r\n\r\n return (\r\n
\r\n {isLoading && }\r\n\r\n {visibleModal && this.toggleModal(false)} />}\r\n
\r\n
\r\n \r\n
\r\n

Configuración de los Enlaces

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

Llamadas embebidas

\r\n\r\n this.props.updateEmbeddedMeetingMode({ isEmbeddedMeeting: value })}/>\r\n {isEmbeddedMeeting\r\n ? \" La llamada empezará de forma embebida.\"\r\n : \" La llamada empezará en una pestaña nueva.\"\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {keysAreNull\r\n ?\r\n
\r\n \r\n
No hay configuraciones existentes
\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\nZoomKeys.propTypes = {\r\n isLoading: PropTypes.bool,\r\n isEmbeddedMeeting: PropTypes.bool,\r\n urlsList: PropTypes.array,\r\n getVideoCallUrls: PropTypes.func,\r\n getEmbeddedMeetingMode: PropTypes.func,\r\n updateEmbeddedMeetingMode: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isLoading: state.admin.isLoading,\r\n isEmbeddedMeeting: state.admin.isEmbeddedMeeting,\r\n urlsList: state.admin.urlsList\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getVideoCallUrls: () => dispatch(getVideoCallUrls()),\r\n getEmbeddedMeetingMode: () => dispatch(getEmbeddedMeetingMode()),\r\n updateEmbeddedMeetingMode: (data) => dispatch(updateEmbeddedMeetingMode(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ZoomKeys);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport Proptypes from 'prop-types';\r\nimport { Input, DatePicker, Row, Col, Button } from 'antd';\r\n\r\n//Styles\r\nimport '../../../../../styles/adviser/adviser.css';\r\n\r\n//Constants\r\nconst RangePicker = DatePicker.RangePicker;\r\n\r\nclass HistoryFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {};\r\n };\r\n\r\n render() {\r\n const { onChangeDate, onChangeField, onClickSearch, onRemoveFilters, momentDate, textFilter } = this.props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n onChangeField(value.target.value)} value={textFilter}/>\r\n \r\n \r\n onChangeDate(dateMoment, dateString)}\r\n value={momentDate}\r\n />\r\n \r\n \r\n \r\n \r\n this.onChangeField(value)}\r\n onChangeDate={(dateMoment, dateString) => this.onChangeDate(dateMoment, dateString)}\r\n onClickSearch={this.onClickSearch}\r\n onRemoveFilters={this.onRemoveFilters}\r\n momentDate={this.state.momentDate}\r\n textFilter={this.state.data.reportFilterVm.textFilter}\r\n\r\n />\r\n \r\n \r\n
\r\n {tableReadyToRender\r\n ? \r\n :\r\n \r\n }\r\n \r\n \r\n {(!tableReadyToRender || requestsRecord.collection.length === 0)\r\n ? \r\n :
this.order(page, filters, sorter, a, b, c)}\r\n />\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nRequestsHistory.propTypes = {\r\n isFetching: Proptypes.bool,\r\n requestsRecord: Proptypes.object,\r\n requestsReportParams: Proptypes.object,\r\n getRequestsReport: Proptypes.func,\r\n getRequestsReportParams: Proptypes.func,\r\n generateReport: Proptypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isFetching: state.profilerRequestsHistory.isFetching,\r\n requestsRecord: state.profilerRequestsHistory.requestsRecord,\r\n requestsReportParams: state.profilerRequestsHistory.requestsReportParams\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getRequestsReport: (data) => dispatch(getRequestsReport(data)),\r\n getRequestsReportParams: () => dispatch(getRequestsReportParams()),\r\n generateReport: (data) => dispatch(generateReport(data))\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(RequestsHistory);","import { historyTypes } from '../../types';\r\nimport historyApi from '../../../../api/historyApi';\r\nimport {\r\n ERROR_MODAL\r\n} from \"../../../../components/ui/subComponents/modals/responseModals\";\r\nimport BaseURL from \"../../../../api/BaseURL\";\r\n\r\nexport const getRequestsReport = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: historyTypes.GET_REQUESTS_REPORT,\r\n isFetching: true,\r\n requestsRecord: {}\r\n });\r\n return historyApi.getRequestsReport(data)\r\n .then(response => {\r\n dispatch({\r\n type: historyTypes.GET_REQUESTS_REPORT,\r\n isFetching: false,\r\n requestsRecord: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: historyTypes.GET_REQUESTS_REPORT,\r\n isFetching: false,\r\n requestsRecord: {}\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const getRequestsReportParams = () => {\r\n return dispatch => {\r\n dispatch({\r\n type: historyTypes.GET_REQUESTS_REPORT_PARAMS,\r\n isFetching: true,\r\n requestsReportParams: {}\r\n });\r\n return historyApi.getRequestsReportParams()\r\n .then(response => {\r\n dispatch({\r\n type: historyTypes.GET_REQUESTS_REPORT_PARAMS,\r\n isFetching: false,\r\n requestsReportParams: response.data\r\n });\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: historyTypes.GET_REQUESTS_REPORT_PARAMS,\r\n isFetching: false,\r\n requestsReportParams: {}\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};\r\n\r\nexport const generateReport = (data) => {\r\n return dispatch => {\r\n dispatch({\r\n type: historyTypes.GENERATE_REPORT,\r\n isFetching: true\r\n });\r\n return historyApi.generateRequestsReport(data)\r\n .then(response => {\r\n dispatch({\r\n type: historyTypes.GENERATE_REPORT,\r\n isFetching: false\r\n });\r\n window.open(BaseURL + \"/\" + response.data);\r\n })\r\n .catch(response => {\r\n dispatch({\r\n type: historyTypes.GENERATE_REPORT,\r\n isFetching: false\r\n });\r\n ERROR_MODAL('Error realizando la acción', response.data);\r\n })\r\n }\r\n};","//Libraries\r\nimport React, { Component } from 'react';\r\nimport {Layout, Menu} from \"antd\";\r\nimport {NavLink, withRouter} from \"react-router-dom\";\r\nimport PropTypes from 'prop-types';\r\n\r\n//Styles\r\nimport '../../../../styles/profiler/profilerHome.css';\r\n\r\n//Subcomponents\r\nimport Routes from \"../../../../lib/generalUtils/routes\";\r\nimport {setCurrentKeyActive} from \"../../../../store/redux/actions/layout/headerMenuActions\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport RequestsHistory from \"./RequestsHistory\";\r\nimport MeetingsHistory from \"../../shared/history/History\";\r\n\r\nimport { getParams } from \"../../../../store/redux/actions/profiler/profilerHomeActions\";\r\n\r\n//Constants\r\nconst { Header, Content } = Layout;\r\n\r\nclass History extends Component {\r\n constructor (props){\r\n\r\n super(props);\r\n\r\n this.state = {};\r\n this.checkIdle = this.checkIdle.bind(this);\r\n this.IDLE_LIMIT = 300000; //5 minutes\r\n this.lastActivity = Date.now();\r\n };\r\n\r\n onChangeMenuOption = (route) => {\r\n this.props.setCurrentKeyActive(route.key);\r\n };\r\n\r\n componentDidMount() {\r\n this.activityChecker = setInterval(this.checkIdle, 300000);\r\n document.addEventListener('click', () => {\r\n this.lastActivity = Date.now();\r\n });\r\n //this.props.getParams();\r\n this.IDLE_LIMIT = this.props.idleTimeout;\r\n }\r\n\r\n checkIdle(){\r\n const currentTime = Date.now();\r\n if(currentTime - this.lastActivity > this.IDLE_LIMIT) {\r\n console.log(\"Profiler it's been iddle, gotta do something\");\r\n //TODO: Call service which activates automatic profiler\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(this.activityChecker);\r\n }\r\n\r\n render () {\r\n const { pathname } = this.props.location;\r\n const { currentRoute } = this.props;\r\n const isMeetingsHistory = pathname === Routes.profilerMeetingsHistory;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Historial de reuniones\r\n \r\n \r\n \r\n \r\n Historial de solicitudes\r\n \r\n \r\n \r\n
\r\n \r\n {isMeetingsHistory\r\n ? \r\n : \r\n }\r\n \r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nHistory.propTypes = {\r\n currentRoute: PropTypes.string,\r\n setCurrentKeyActive: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n currentRoute: state.headerMenu.currentRoute,\r\n idleTimeout: state.profilerHome.idleTimeout\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setCurrentKeyActive: (route) => dispatch(setCurrentKeyActive(route)),\r\n getParams: () => dispatch(getParams())\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(History));","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Row, Col, Button, Input, Upload, Divider, Card, Icon, message, Collapse } from \"antd\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport PropTypes from 'prop-types';\r\nimport ReactQuill from 'react-quill-2';\r\nimport BaseURL from \"../../../api/BaseURL\";\r\nimport ImgCrop from \"antd-img-crop\";\r\n\r\n// Actions\r\nimport { getBannerConfig, setBannerConfig } from \"../../../store/redux/actions/designerAdmin/designerAdminActions\";\r\n\r\n//Components\r\n\r\n//Styles\r\nimport '../../../styles/designerAdmin/desingAdmin.css';\r\n\r\n//Constants\r\nconst { Panel } = Collapse;\r\n\r\nconst dummyRequest = ({ file, onSuccess }) => {\r\n setTimeout(() => {\r\n onSuccess(\"ok\");\r\n }, 0);\r\n};\r\nfunction beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n\r\n if (!isJpgOrPng) {\r\n message.error('Solo se admiten imágenes JPG/PNG.');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('La imagen debe ser menor a 2MB.');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n};\r\nfunction getBase64(img, callback) {\r\n const reader = new FileReader();\r\n\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n};\r\n\r\nclass TextAdministrator extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n filesWeb: new Map(),\r\n filesMobile: new Map(),\r\n imgFileWeb: null,\r\n imgFileMobile: null,\r\n imgWebUrl: null,\r\n imgMobileUrl: null,\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.props.getBannerConfig();\r\n }\r\n\r\n handleChangeImageWeb = info => {\r\n if (info.file.status === 'uploading') {\r\n this.setState({ loading: true });\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n getBase64(info.file.originFileObj, imgWebUrl =>\r\n this.setState({\r\n imgWebUrl,\r\n imgFileWeb: info.file,\r\n loading: false,\r\n }),\r\n );\r\n }\r\n };\r\n handleChangeImageMobile = info => {\r\n if (info.file.status === 'uploading') {\r\n this.setState({ loading: true });\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n getBase64(info.file.originFileObj, imgMobileUrl =>\r\n this.setState({\r\n imgMobileUrl,\r\n imgFileMobile: info.file,\r\n loading: false,\r\n }),\r\n );\r\n }\r\n };\r\n changeBannerText = (e) => {\r\n this.setState({ bannerText: e });\r\n };\r\n changeTooltipText = (e) => {\r\n this.setState({ tooltipText: e });\r\n };\r\n changeTooltipTextFooter = (e) => {\r\n this.setState({ footerTooltip: e.target.value });\r\n };\r\n changeContactUsText = (e) => {\r\n this.setState({ contactText: e });\r\n };\r\n changeHelpTextForm = (e) => {\r\n this.setState({ meetingHelpText: e });\r\n };\r\n changeScheduleHelpTextForm = (e) => {\r\n this.setState({ scheduleHelpText: e });\r\n };\r\n changeMeetingTitle = (e) => {\r\n this.setState({ meetingTitle: e.target.value });\r\n };\r\n changeScheduleTitle = (e) => {\r\n this.setState({ scheduleTitle: e.target.value });\r\n };\r\n changeMeetingContent = (e) => {\r\n this.setState({ meetingContentText: e.target.value });\r\n };\r\n changeScheduleContent = (e) => {\r\n this.setState({ scheduleContentText: e.target.value });\r\n };\r\n\r\n updateBannerConfig = () => {\r\n const { tooltipText, bannerText, footerTooltip } = this.state;\r\n let data = {\r\n bannerId: this.props.bannerConfig.bannerId,\r\n bannerText: bannerText,\r\n tooltipText: tooltipText,\r\n generalBanner: this.state.imgFileWeb,\r\n mobileBanner: this.state.imgFileMobile,\r\n footerTooltip: footerTooltip,\r\n contactText: this.state.contactText,\r\n meetingHelpText: this.state.meetingHelpText,\r\n scheduleHelpText: this.state.scheduleHelpText,\r\n meetingTitle: this.state.meetingTitle,\r\n scheduleTitle: this.state.scheduleTitle,\r\n meetingContentText: this.state.meetingContentText,\r\n scheduleContentText: this.state.scheduleContentText\r\n };\r\n\r\n if (data.mobileBanner === undefined) data.mobileBanner = null;\r\n if (data.generalBanner === undefined) data.generalBanner = null;\r\n\r\n this.props.setBannerConfig(data);\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.props.bannerConfig !== prevProps.bannerConfig) {\r\n const { tooltipText, bannerText, generalBannerUrl, mobileBannerUrl, footerTooltip,\r\n contactText, meetingHelpText, scheduleHelpText, meetingTitle, scheduleTitle, meetingContentText,\r\n scheduleContentText } = this.props.bannerConfig;\r\n\r\n this.setState({\r\n bannerText: bannerText,\r\n tooltipText: tooltipText,\r\n imgWebUrl: generalBannerUrl,\r\n imgMobileUrl: mobileBannerUrl,\r\n footerTooltip: footerTooltip,\r\n contactText: contactText,\r\n meetingHelpText: meetingHelpText,\r\n scheduleHelpText: scheduleHelpText,\r\n meetingTitle: meetingTitle,\r\n scheduleTitle: scheduleTitle,\r\n meetingContentText: meetingContentText,\r\n scheduleContentText: scheduleContentText\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const { tooltipText, bannerText, footerTooltip, contactText, meetingHelpText, scheduleHelpText, meetingTitle,\r\n meetingContentText, scheduleContentText, scheduleTitle, imgWebUrl, imgMobileUrl, imgFileMobile, imgFileWeb } = this.state;\r\n const { isLoading } = this.props;\r\n const uploadButton = (\r\n
\r\n \r\n
Cargar imagen
\r\n
\r\n );\r\n \r\n return (\r\n !isLoading &&\r\n
\r\n \r\n \r\n
\r\n

\r\n Imagenes del banner y textos\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 Imagen para banner (Web)\r\n
\r\n Relación 4 a 1\r\n
\r\n 1920px x 480px (recomendado)\r\n

\r\n \r\n
\r\n \r\n \r\n {imgWebUrl ?\r\n \r\n \r\n {imgFileWeb ?\r\n \"logo\"\r\n :\r\n \"logo\"\r\n }\r\n

Banner Web

\r\n \r\n \r\n :\r\n uploadButton\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n Imagen para banner (Mobile)\r\n
\r\n Relación 2 a 1\r\n
\r\n 800px x 400px (recomendado)\r\n

\r\n \r\n \r\n \r\n \r\n {imgMobileUrl ?\r\n \r\n \r\n {imgFileMobile ?\r\n \"logo\"\r\n :\r\n \"logo\"\r\n }\r\n

Banner Mobile

\r\n \r\n \r\n :\r\n uploadButton\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

Párrafo Principal

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

Texto Ayuda

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

Texto Enlace Casa Propia

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

Texto Contáctanos

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

Texto Ayuda

\r\n

Videollamada

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

Texto Ayuda

\r\n

Agendar contacto

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

Título de Videollamada

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

Título de Agendar contacto

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

Descripción de Videollamada

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

Descripción de Agendar contacto

\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\nTextAdministrator.propTypes = {\r\n isLoading: PropTypes.bool\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isLoading: state.designerAdmin.isLoading,\r\n bannerConfig: state.designerAdmin.bannerConfig,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getBannerConfig,\r\n setBannerConfig\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TextAdministrator);","import React from \"react\";\r\n\r\nexport const buttonsTableColumns = [\r\n {\r\n title:
Texto
,\r\n dataIndex: 'name',\r\n key: 'name',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.name.localeCompare(b.name)},\r\n },\r\n {\r\n title:
Tooltip
,\r\n dataIndex: 'tooltipText',\r\n key: 'tooltipText',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.tooltipText.localeCompare(b.tooltipText)},\r\n },\r\n {\r\n title:
Color
,\r\n dataIndex: 'color',\r\n key: 'color',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.color.localeCompare(b.color)},\r\n },\r\n {\r\n title:
Url
,\r\n dataIndex: 'link',\r\n key: 'link',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.link.localeCompare(b.link)},\r\n },\r\n {\r\n title:
Imagen
,\r\n dataIndex: 'hasIcon',\r\n key: 'hasIcon',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.hasIcon.localeCompare(b.hasIcon)},\r\n },\r\n {\r\n title:
Estado
,\r\n dataIndex: 'isActive',\r\n key: 'isActive',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.isActive.localeCompare(b.isActive)},\r\n },\r\n {\r\n title:
Webinar
,\r\n dataIndex: 'isWebinarButton',\r\n key: 'isWebinarButton',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.isWebinarButton.localeCompare(b.isWebinarButton)},\r\n },\r\n {\r\n title: \"Acciones\",\r\n dataIndex: 'actions',\r\n key: 'actions',\r\n width: \"50px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n }\r\n];\r\n\r\nexport const contactTableColumns = [\r\n {\r\n title:
Nombre
,\r\n dataIndex: 'name',\r\n key: 'name',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.name.localeCompare(b.name)},\r\n },\r\n {\r\n title:
Teléfono
,\r\n dataIndex: 'phone',\r\n key: 'phone',\r\n width: \"150px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.phone.localeCompare(b.phone)},\r\n },\r\n {\r\n title:
País
,\r\n dataIndex: 'flag',\r\n key: 'flag',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.flag.localeCompare(b.flag)},\r\n },\r\n {\r\n title:
Información
,\r\n dataIndex: 'customText',\r\n key: 'customText',\r\n width: \"200px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n sorter: (a, b) =>{ return a.customText.localeCompare(b.customText)},\r\n },\r\n {\r\n title: \"Acciones\",\r\n dataIndex: 'actions',\r\n key: 'actions',\r\n width: \"100px\",\r\n align: \"center\",\r\n render: text =>
{text}
,\r\n }\r\n]","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, Row, Col, Form, Input, Icon, message, Checkbox, Upload } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport ImgCrop from \"antd-img-crop\";\r\n\r\n//Services\r\n\r\n// Styles\r\nimport './../../../../styles/designerAdmin/designerAdmin.css';\r\n\r\n//Constants\r\nconst { Item } = Form;\r\nconst dummyRequest = ({ file, onSuccess }) => {\r\n setTimeout(() => {\r\n onSuccess(\"ok\");\r\n }, 0);\r\n};\r\n\r\nfunction getBase64(img, callback) {\r\n const reader = new FileReader();\r\n\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n};\r\nfunction beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n\r\n if (!isJpgOrPng) {\r\n message.error('Solo se admiten imágenes JPG/PNG.');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('La imagen debe ser menor a 2MB.');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n};\r\n\r\nclass AddButtonModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n imageFile: null,\r\n imageUrl: null\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n\r\n }\r\n });\r\n };\r\n\r\n validateForm() {\r\n const { form } = this.props;\r\n\r\n form.validateFieldsAndScroll((errors, values) => {\r\n if (errors) return;\r\n else {\r\n values.icon = this.state.imageFile;\r\n this.props.addButton(values);\r\n this.props.toggleAddButtonModal(false);\r\n }\r\n })\r\n }\r\n\r\n handleChangeImage = info => {\r\n if (info.file.status === 'uploading') {\r\n this.setState({ loading: true });\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n getBase64(info.file.originFileObj, imageUrl =>\r\n this.setState({\r\n imageUrl,\r\n imageFile: info.file,\r\n loading: false,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n const { toggleAddButtonModal } = this.props;\r\n const { imageUrl, imageFile } = this.state;\r\n const uploadButton = (\r\n
\r\n \r\n
Cargar imagen
\r\n
\r\n );\r\n const imgUpload =\r\n \r\n \r\n {imageUrl ?\r\n \r\n
\r\n \"avatar\"\r\n

{imageFile.name}

\r\n \r\n \r\n :\r\n uploadButton\r\n }\r\n \r\n ;\r\n\r\n return (\r\n toggleAddButtonModal(false)}\r\n destroyOnClose={true} keyboard={false} closable={false}\r\n className={\"design-admin-modal\"}\r\n maskClosable={false}\r\n footer={[\r\n ,\r\n \r\n ]}\r\n >\r\n
\r\n \r\n
\r\n \r\n {getFieldDecorator(\"isWebinarButton\", {\r\n valuePropName: 'checked',\r\n initialValue: false,\r\n rules: []\r\n })(\r\n Es botón Webinar\r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"name\", {\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\", whitespace: false }\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"tooltipText\", {\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"color\", {\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"link\", {\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n {imgUpload}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nAddButtonModal.propTypes = {\r\n toggleAddButtonModal: PropTypes.func,\r\n addButton: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Form.create()(AddButtonModal));","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, Row, Col, Form, Input, Icon, message, Checkbox, Upload } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport ImgCrop from \"antd-img-crop\";\r\n\r\n//Services\r\n\r\n// Styles\r\nimport './../../../../styles/designerAdmin/designerAdmin.css';\r\nimport BaseURL from \"../../../../api/BaseURL\";\r\n\r\n//Constants\r\nconst { Item } = Form;\r\nconst dummyRequest = ({ file, onSuccess }) => {\r\n setTimeout(() => {\r\n onSuccess(\"ok\");\r\n }, 0);\r\n};\r\n\r\nfunction getBase64(img, callback) {\r\n const reader = new FileReader();\r\n\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n};\r\nfunction beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n\r\n if (!isJpgOrPng) {\r\n message.error('Solo se admiten imágenes JPG/PNG.');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('La imagen debe ser menor a 2MB.');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n};\r\n\r\nclass EditButtonModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n imageFile: null,\r\n imageUrl: this.props.buttonInfo.iconUrl\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n\r\n }\r\n });\r\n };\r\n\r\n validateForm() {\r\n const { form } = this.props;\r\n\r\n form.validateFieldsAndScroll((errors, values) => {\r\n if (errors) return;\r\n else {\r\n values.icon = this.state.imageFile;\r\n this.props.updateButton(values);\r\n this.props.toggleEditButtonModal(false);\r\n }\r\n })\r\n }\r\n\r\n handleChangeImage = info => {\r\n if (info.file.status === 'uploading') {\r\n this.setState({ loading: true });\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n getBase64(info.file.originFileObj, imageUrl =>\r\n this.setState({\r\n imageUrl,\r\n imageFile: info.file,\r\n loading: false,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n const { toggleEditButtonModal, buttonInfo } = this.props;\r\n const { imageUrl, imageFile } = this.state;\r\n const uploadButton = (\r\n
\r\n \r\n
Cargar imagen
\r\n
\r\n );\r\n const imgUpload =\r\n \r\n \r\n {imageUrl ?\r\n \r\n \r\n {imageFile ?\r\n \"icon\"\r\n :\r\n \"icon\"\r\n }\r\n

{buttonInfo.name}

\r\n \r\n \r\n :\r\n uploadButton\r\n }\r\n \r\n ;\r\n\r\n return (\r\n toggleEditButtonModal(false)}\r\n destroyOnClose={true} keyboard={false} closable={false}\r\n className={\"design-admin-modal\"}\r\n maskClosable={false}\r\n footer={[\r\n ,\r\n \r\n ]}\r\n >\r\n
\r\n \r\n {getFieldDecorator(\"customButtonId\", { initialValue: buttonInfo.customButtonId })()}\r\n
\r\n \r\n {getFieldDecorator(\"isWebinarButton\", {\r\n valuePropName: 'checked',\r\n initialValue: buttonInfo.isWebinarButton,\r\n rules: []\r\n })(\r\n Es botón Webinar\r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"name\", {\r\n initialValue: buttonInfo.name,\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\", whitespace: false }\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"tooltipText\", {\r\n initialValue: buttonInfo.tooltipText,\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"color\", {\r\n initialValue: buttonInfo.color,\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"link\", {\r\n initialValue: buttonInfo.link,\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"isActive\", {\r\n valuePropName: 'checked',\r\n initialValue: buttonInfo.isActive,\r\n rules: []\r\n })(\r\n Está activo\r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n {imgUpload}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n}\r\n\r\nEditButtonModal.propTypes = {\r\n buttonInfo: PropTypes.object,\r\n toggleEditButtonModal: PropTypes.func,\r\n updateButton: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Form.create()(EditButtonModal));","//Libraries\r\nimport React, {Component} from 'react';\r\nimport { Row, Col, Divider, Button, Card, Table, Tooltip, Icon, Popconfirm } from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Actions\r\nimport {addButton, getButtons, updateButton, deleteButton} from \"../../../store/redux/actions/designerAdmin/designerAdminActions\";\r\n\r\n//Styles\r\nimport '../../../styles/admin/parameterization/services.css';\r\n\r\n//Subcomponents\r\nimport { buttonsTableColumns } from \"./subComponents/buttonsTableColumns\";\r\nimport EmptyMessageAlert from \"../general/EmptyMessageAlert\";\r\nimport AddButtonModal from \"./subComponents/AddButtonModal\";\r\nimport EditButtonModal from \"./subComponents/EditButtonModal\";\r\n\r\n//Constants\r\n\r\n//Functions\r\nfunction itemRender(current, type, originalElement) {\r\n if (type === 'prev' || type === 'Previous Page') {\r\n return {\"<\"};\r\n } if (type === 'next') {\r\n return {\">\"};\r\n }\r\n return originalElement;\r\n};\r\n\r\nclass ButtonsTable extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n showAddButtonModal: false,\r\n showEditButtonModal: false,\r\n buttonInfo: null\r\n };\r\n\r\n this.setData = this.setData.bind(this);\r\n this.toggleAddButtonModal = this.toggleAddButtonModal.bind(this);\r\n this.toggleEditButtonModal = this.toggleEditButtonModal.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getButtons();\r\n }\r\n });\r\n };\r\n\r\n setData(){\r\n let rows = [];\r\n const { buttonsList } = this.props; \r\n\r\n buttonsList.map(button => {\r\n let row = {\r\n customButtonId: button.customButtonId,\r\n name: button.name,\r\n tooltipText: button.tooltipText,\r\n color: button.color,\r\n link: button.link,\r\n hasIcon: button.iconUrl ? \"Si\" : \"No\",\r\n isActive: button.isActive ? \"Activo\" : \"Inactivo\",\r\n isWebinarButton: button.isWebinarButton ? \"Si\" : \"No\",\r\n actions:
\r\n \r\n this.toggleEditButtonModal(true, button)} />\r\n \r\n \r\n this.props.deleteButton({ customButtonId: button.customButtonId })}>\r\n \r\n \r\n \r\n
\r\n };\r\n\r\n rows.push(row);\r\n });\r\n\r\n return rows;\r\n };\r\n\r\n toggleAddButtonModal(state){\r\n this.setState({ showAddButtonModal: state });\r\n };\r\n\r\n toggleEditButtonModal(state, buttonInfo = null){\r\n this.setState({ showEditButtonModal: state, buttonInfo });\r\n };\r\n\r\n render(){\r\n let { showAddButtonModal, showEditButtonModal, buttonInfo } = this.state;\r\n let { addButton, updateButton } = this.props;\r\n let tableData = this.setData();\r\n\r\n return (\r\n
\r\n {showAddButtonModal && \r\n this.toggleAddButtonModal(status)}\r\n addButton={(data) => addButton(data)}/>\r\n }\r\n {showEditButtonModal && \r\n this.toggleEditButtonModal(status)}\r\n buttonInfo={buttonInfo} updateButton={(data) => updateButton(data)}/>\r\n }\r\n\r\n \r\n
\r\n

Botones de servicio

\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 {tableData.length === 0\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\nButtonsTable.propTypes = {\r\n buttonsList: PropTypes.array,\r\n getButtons: PropTypes.func,\r\n addButton: PropTypes.func,\r\n deleteButton: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n buttonsList: state.designerAdmin.buttonsList\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getButtons: () => dispatch(getButtons()),\r\n addButton: (data) => dispatch(addButton(data)),\r\n updateButton: (data) => dispatch(updateButton(data)),\r\n deleteButton: (data) => dispatch(deleteButton(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ButtonsTable);\r\n","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, Row, Col, Form, Input } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Services\r\n\r\n// Styles\r\nimport './../../../../styles/designerAdmin/designerAdmin.css';\r\nimport ReactPhoneInput from \"react-phone-input-2\";\r\n\r\n//Constants\r\nconst { Item } = Form;\r\n\r\nclass AddContactModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n countryCode: \"us\"\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n\r\n }\r\n });\r\n };\r\n\r\n validateForm() {\r\n const { form } = this.props;\r\n\r\n form.validateFieldsAndScroll((errors, values) => {\r\n if (errors) return;\r\n else {\r\n if(values.phone[0] !== \"+\")\r\n values.phone = \"+\" + values.phone;\r\n\r\n values.flag = this.state.countryCode;\r\n this.props.addCountryInfo(values);\r\n this.props.toggleAddContactModal(false);\r\n }\r\n })\r\n }\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n const { toggleAddContactModal } = this.props;\r\n\r\n return (\r\n toggleAddContactModal(false)}\r\n destroyOnClose={true} keyboard={false} closable={false}\r\n className={\"design-admin-modal\"}\r\n maskClosable={false}\r\n footer={[\r\n ,\r\n \r\n ]}\r\n >\r\n
\r\n \r\n
\r\n \r\n {getFieldDecorator(\"name\", {\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\", whitespace: false }\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"phone\", {\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n this.setState({ countryCode: country.countryCode })}/>\r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"customText\", {\r\n rules: [\r\n { required: false, message: \"Este campo es requerido\" },\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\nAddContactModal.propTypes = {\r\n toggleAddContactModal: PropTypes.func,\r\n addCountryInfo: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Form.create()(AddContactModal));","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, Row, Col, Form, Input } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport connect from 'react-redux/es/connect/connect';\r\n\r\n//Services\r\n\r\n// Styles\r\nimport './../../../../styles/designerAdmin/designerAdmin.css';\r\nimport ReactPhoneInput from \"react-phone-input-2\";\r\n\r\n//Constants\r\nconst { Item } = Form;\r\n\r\nclass EditContactModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n countryCode: this.props.contactInfo.flag\r\n };\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n }\r\n });\r\n };\r\n\r\n validateForm() {\r\n const { form } = this.props;\r\n\r\n form.validateFieldsAndScroll((errors, values) => {\r\n if (errors) return;\r\n else {\r\n if(values.phone[0] !== \"+\")\r\n values.phone = \"+\" + values.phone;\r\n\r\n values.flag = this.state.countryCode;\r\n this.props.updateCountryInfo(values);\r\n this.props.toggleEditContactModal(false);\r\n }\r\n })\r\n }\r\n\r\n render() {\r\n const { getFieldDecorator } = this.props.form;\r\n const { toggleEditContactModal, contactInfo } = this.props;\r\n const { countryCode } = this.state;\r\n\r\n return (\r\n toggleEditContactModal(false)}\r\n destroyOnClose={true} keyboard={false} closable={false}\r\n className={\"design-admin-modal\"}\r\n maskClosable={false}\r\n footer={[\r\n ,\r\n \r\n ]}\r\n >\r\n
\r\n \r\n {getFieldDecorator(\"contactCountryId\", { initialValue: contactInfo.contactCountryId })()}\r\n
\r\n \r\n {getFieldDecorator(\"name\", {\r\n initialValue: contactInfo.name,\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"phone\", {\r\n initialValue: contactInfo.phone,\r\n rules: [\r\n { required: true, message: \"Este campo es requerido\" },\r\n ]\r\n })(\r\n this.setState({ countryCode: country.countryCode })}/>\r\n )}\r\n \r\n \r\n \r\n \r\n {getFieldDecorator(\"customText\", {\r\n initialValue: contactInfo.customText,\r\n rules: [\r\n { required: false, message: \"Este campo es requerido\" },\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\nEditContactModal.propTypes = {\r\n contactInfo: PropTypes.object,\r\n toggleEditContactModal: PropTypes.func,\r\n updateCountryInfo: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Form.create()(EditContactModal));","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Button, Card, Table, Tooltip, Icon, Popconfirm, Input} from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\n\r\n//Actions\r\nimport {\r\n addCountryInfo,\r\n getCountriesInfo,\r\n updateCountryInfo,\r\n deleteCountryInfo,\r\n updateContactNotAvailableText,\r\n} from \"../../../store/redux/actions/designerAdmin/designerAdminActions\";\r\n\r\n//Styles\r\nimport '../../../styles/admin/parameterization/services.css';\r\n\r\n//Subcomponents\r\nimport { contactTableColumns } from \"./subComponents/buttonsTableColumns\";\r\nimport EmptyMessageAlert from \"../general/EmptyMessageAlert\";\r\nimport AddContactModal from \"./subComponents/AddContactModal\";\r\nimport EditContactModal from \"./subComponents/EditContactModal\";\r\nimport ReactQuill from \"react-quill-2\";\r\n\r\n//Constants\r\n\r\n//Functions\r\nfunction itemRender(current, type, originalElement) {\r\n if (type === 'prev' || type === 'Previous Page') {\r\n return {\"<\"};\r\n } if (type === 'next') {\r\n return {\">\"};\r\n }\r\n return originalElement;\r\n};\r\n\r\nclass ContactUsTable extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n showAddContactModal: false,\r\n showEditContactModal: false,\r\n contactInfo: null,\r\n contactNotAvailableText: null,\r\n containerDiv: 0\r\n };\r\n\r\n this.setData = this.setData.bind(this);\r\n this.toggleAddContactModal = this.toggleAddContactModal.bind(this);\r\n this.toggleEditContactModal = this.toggleEditContactModal.bind(this);\r\n this.handleChangeText = this.handleChangeText.bind(this);\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getCountriesInfo();\r\n }\r\n });\r\n };\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if(prevProps.contactNotAvailableText !== this.props.contactNotAvailableText){\r\n this.setState({\r\n contactNotAvailableText: this.props.contactNotAvailableText,\r\n containerDiv: this.state.containerDiv + 1\r\n });\r\n }\r\n }\r\n \r\n setData(){\r\n const { countriesList } = this.props;\r\n\r\n let rows = [];\r\n\r\n countriesList.map(country => {\r\n let row = {\r\n contactCountryId: country.contactCountryId,\r\n name: country.name,\r\n phone: country.phone,\r\n flag: country.flag.toUpperCase(),\r\n customText: country.customText,\r\n actions:
\r\n \r\n this.toggleEditContactModal(true, country)} />\r\n \r\n \r\n this.props.deleteCountryInfo({ contactCountryId: country.contactCountryId })}>\r\n \r\n \r\n \r\n
\r\n };\r\n rows.push(row);\r\n });\r\n\r\n return rows;\r\n };\r\n toggleAddContactModal(state){\r\n this.setState({ showAddContactModal: state });\r\n };\r\n toggleEditContactModal(state, contactInfo = null){\r\n this.setState({ showEditContactModal: state, contactInfo });\r\n };\r\n handleChangeText(text){\r\n this.setState({ contactNotAvailableText: text });\r\n }\r\n\r\n render() {\r\n let { showAddContactModal, showEditContactModal, contactInfo, contactNotAvailableText, containerDiv } = this.state;\r\n let { addCountryInfo, updateCountryInfo, updateContactNotAvailableText } = this.props;\r\n let tableData = this.setData();\r\n\r\n return (\r\n
\r\n {showAddContactModal && this.toggleAddContactModal(status)}\r\n addCountryInfo={(data) => addCountryInfo(data)}/>}\r\n {showEditContactModal && this.toggleEditContactModal(status)}\r\n contactInfo={contactInfo}\r\n updateCountryInfo={(data) => updateCountryInfo(data)}/>}\r\n\r\n \r\n
\r\n

Contacto

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

Texto Fuera de Horarios

\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 {tableData.length === 0\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\nContactUsTable.propTypes = {\r\n contactNotAvailableText: PropTypes.string,\r\n countriesList: PropTypes.array,\r\n getCountriesInfo: PropTypes.func,\r\n addCountryInfo: PropTypes.func,\r\n updateCountryInfo: PropTypes.func,\r\n deleteCountryInfo: PropTypes.func,\r\n updateContactNotAvailableText: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n countriesList: state.designerAdmin.countriesList,\r\n contactNotAvailableText: state.designerAdmin.contactNotAvailableText\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n updateContactNotAvailableText: (data) => dispatch(updateContactNotAvailableText(data)),\r\n getCountriesInfo: () => dispatch(getCountriesInfo()),\r\n addCountryInfo: (data) => dispatch(addCountryInfo(data)),\r\n updateCountryInfo: (data) => dispatch(updateCountryInfo(data)),\r\n deleteCountryInfo: (data) => dispatch(deleteCountryInfo(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ContactUsTable);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Row, Col, Divider, Card, message, Icon, Button, Input, Checkbox} from 'antd';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from 'prop-types';\r\nimport ImgCrop from \"antd-img-crop\";\r\n\r\n//Actions\r\nimport {getModalInfo, updateModalInfo} from \"../../../store/redux/actions/designerAdmin/designerAdminActions\";\r\n\r\n//Constants\r\nimport BaseURL from \"../../../api/BaseURL\";\r\nimport Dragger from \"antd/es/upload/Dragger\";\r\n\r\n//Functions\r\nfunction beforeUpload(file) {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n\r\n if (!isJpgOrPng) {\r\n message.error('Solo se admiten imágenes JPG/PNG.');\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error('La imagen debe ser menor a 2MB.');\r\n }\r\n return isJpgOrPng && isLt2M;\r\n}\r\nfunction getBase64(img, callback) {\r\n const reader = new FileReader();\r\n\r\n reader.addEventListener('load', () => callback(reader.result));\r\n reader.readAsDataURL(img);\r\n}\r\n\r\nclass HomePopup extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n imageUrl: null,\r\n imageFile: null,\r\n urlText: null,\r\n isActive: false,\r\n };\r\n };\r\n\r\n componentDidMount(){\r\n this.setState({ isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n this.props.getModalInfo();\r\n }\r\n });\r\n };\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if(prevProps.modalInfo !== this.props.modalInfo){\r\n const { modalInfo } = this.props;\r\n\r\n this.setState({\r\n imageUrl: modalInfo.modalImageUrl, urlText: modalInfo.redirectModalUrl, isActive: modalInfo.modalInfoIsActive\r\n });\r\n }\r\n }\r\n\r\n handleChangeImage = info => {\r\n if (info.file.status === 'uploading') {\r\n return;\r\n }\r\n if (info.file.status === 'done') {\r\n getBase64(info.file.originFileObj, imageUrl =>\r\n this.setState({ imageUrl, imageFile: info.file }),\r\n );\r\n }\r\n };\r\n handleUpdateInfo = () => {\r\n const { imageFile, urlText, isActive } = this.state;\r\n let formData = new FormData();\r\n\r\n formData.append('modalInfoIsActive', isActive);\r\n formData.append('redirectModalUrl', urlText);\r\n imageFile && formData.append('modalImage', imageFile.originFileObj, imageFile.name);\r\n this.props.updateModalInfo(formData);\r\n };\r\n\r\n render() {\r\n const { imageUrl, imageFile, urlText, isActive } = this.state;\r\n const uploadProps = {\r\n name: 'file',\r\n className: imageUrl ? \"image-upload\" : \"empty-image-upload\",\r\n multiple: false,\r\n showUploadList: false,\r\n customRequest: ({ file, onSuccess }) => {\r\n setTimeout(() => {\r\n onSuccess(\"ok\");\r\n }, 0);\r\n },\r\n beforeUpload: beforeUpload,\r\n onChange: this.handleChangeImage,\r\n };\r\n const enableButton = imageUrl && urlText;\r\n\r\n return (\r\n
\r\n \r\n
\r\n

Ventana emergente

\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n this.setState({ isActive: e.target.checked })}>\r\n Imagen activa\r\n \r\n \r\n \r\n Enlace de la imagen:\r\n this.setState({ urlText: e.target.value })} />\r\n \r\n\r\n \r\n \r\n \r\n {imageUrl ?\r\n \r\n \r\n {imageFile ?\r\n \"logo\"\r\n :\r\n \"logo\"\r\n }\r\n \r\n \r\n :\r\n
\r\n

\r\n \r\n

\r\n

Click or drag file to this area to upload

\r\n

\r\n Support for a single or bulk upload. Strictly prohibit from uploading company data or other\r\n band files\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}\r\n\r\nHomePopup.propTypes = {\r\n modalInfo: PropTypes.object,\r\n getModalInfo: PropTypes.func,\r\n updateModalInfo: PropTypes.func,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n modalInfo: state.designerAdmin.modalInfo\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getModalInfo: () => dispatch(getModalInfo()),\r\n updateModalInfo: (data) => dispatch(updateModalInfo(data)),\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(HomePopup);","//Libraries\r\nimport React, { Component } from 'react';\r\nimport { Tabs, Icon } from \"antd\";\r\nimport connect from \"react-redux/es/connect/connect\";\r\nimport PropTypes from 'prop-types';\r\n\r\n//Components\r\nimport LoadingComponent from \"../general/LoadingComponent\";\r\nimport TextAdministrator from \"./TextAdministrator\";\r\n\r\n//Styles\r\nimport '../../../styles/admin/parameterization/parameterization.css';\r\nimport ButtonsTable from \"./ButtonsTable\";\r\nimport ContactUsTable from \"./ContactUsTable\";\r\nimport HomePopup from \"./HomePopup\";\r\n\r\n//Constants\r\nconst { TabPane } = Tabs;\r\n\r\nclass DesignerAdminIndex extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {};\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n\r\n \r\n Banner} key=\"1\">\r\n \r\n \r\n Botones} key=\"2\">\r\n \r\n \r\n Contacto} key=\"3\">\r\n \r\n \r\n Ventana emergente} key=\"4\">\r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n}\r\n\r\nDesignerAdminIndex.propTypes = {\r\n isLoading: PropTypes.bool\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isLoading: state.designerAdmin.isLoading\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DesignerAdminIndex);","//Libraries\r\nimport React, {Component} from 'react';\r\nimport {Route, Switch, withRouter, Redirect} from 'react-router-dom';\r\nimport {Layout} from \"antd\";\r\n\r\n//Components\r\nimport MeetingRequest from \"../partner/meetingRequest/index\";\r\nimport WaitingRoom from \"../partner/waitingRoom/index\";\r\nimport ScheduleMeeting from \"../partner/scheduleMeeting/index\";\r\nimport CheckMeeting from \"../partner/scheduleMeeting/checkMeeting\";\r\nimport ProfilerHome from \"../profiler/home/Home\";\r\nimport ProfilerSchedule from \"../profiler/schedule/Schedule\"\r\nimport AdviserHome from '../adviser/home/Home';\r\nimport AdviserHistory from '../shared/history/History';\r\nimport Parametrization from '../admin/parameterization/index';\r\nimport ZoomKeys from '../admin/zoomkeys/index';\r\nimport GradeMeeting from '../partner/qualifyMeeting/gradeMeeting';\r\nimport ThanksMeeting from '../partner/qualifyMeeting/regretsMeeting';\r\nimport History from \"../profiler/history/History\";\r\n\r\n//Subcomponents\r\nimport routes from '../../../lib/generalUtils/routes';\r\n\r\n//Styles\r\nimport '../../../styles/general/router.css';\r\n\r\n//Constants\r\nimport {Roles} from \"../../../lib/generalUtils/constants\";\r\nimport CanceledMeeting from \"../partner/waitingRoom/CanceledMeeting\";\r\nimport RedirectScheduleMeeting from \"../partner/scheduleMeeting/RedirectScheduleMeeting\";\r\nimport DesignerAdminIndex from \"../designerAdmin/DesignerAdminIndex\";\r\n\r\nclass Router extends Component{\r\n\r\n render(){\r\n let role = parseInt(localStorage.role, 10);\r\n\r\n return (\r\n \r\n \r\n {role === Roles.Partner &&\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 {(role === Roles.Profiler || role === Roles.Director) &&\r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n }\r\n {role === Roles.Adviser &&\r\n \r\n \r\n \r\n \r\n }\r\n {role === Roles.Admin && \r\n \r\n \r\n {/**/}\r\n }/>\r\n \r\n }\r\n {role === Roles.DesignerAdmin &&\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 withRouter(Router);","// Libraries\r\nimport React, {Component} from 'react';\r\nimport connect from 'react-redux/es/connect/connect';\r\nimport PropTypes from \"prop-types\";\r\n\r\n// Styles\r\nimport '../../../../styles/partner/waitingRoom/waitingRoom.css';\r\n\r\n// Actions\r\nimport {finishedMeeting} from \"../../../../store/redux/actions/partner/partnerActions\";\r\nimport routes from \"../../../../lib/generalUtils/routes\";\r\n\r\nclass GuestRoom extends Component {\r\n constructor(props) {\r\n const search = window.location.search;\r\n const urlParams = new URLSearchParams(search);\r\n const guestUrl = urlParams.get('guestUrl');\r\n const meetingId = urlParams.get('meetingId');\r\n\r\n super(props);\r\n this.state = {\r\n isMounted: false,\r\n guestUrl: guestUrl,\r\n meetingId: meetingId,\r\n intervalId: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({isMounted: true }, () => {\r\n if (this.state.isMounted) {\r\n this.setState({ isMounted: false });\r\n\r\n let intervalId = setInterval(() => this.askForMeetingFinished(this.state.meetingId), 5000);\r\n this.setState({ intervalId: intervalId });\r\n }\r\n });\r\n }\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n const {finishedMeetingResponse} = this.props;\r\n\r\n if((prevProps.finishedMeetingResponse !== finishedMeetingResponse && finishedMeetingResponse.finished) ||\r\n this.state.meetingId === null || this.state.guestUrl === null){\r\n window.location.href = routes.home;\r\n }\r\n }\r\n componentWillUnmount() {\r\n clearInterval(this.state.permanentFinishedRequest);\r\n }\r\n\r\n askForMeetingFinished = (meetingId) => {\r\n this.props.finishedMeeting(meetingId);\r\n };\r\n\r\n render() {\r\n const { guestUrl } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n {guestUrl &&\r\n