{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/mobileFSFB/EmptyLogo.png","webpack:///./src/helpers/clientInfo.js","webpack:///./src/views/components/ModalLogs.vue?ce39","webpack:///./src/helpers/Meet.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/store/meeting/actions.js","webpack:///./src/helpers/colmedica_huella.js","webpack:///./src/App.vue?9704","webpack:///./src/views/components/ModalLogs.vue?0418","webpack:///src/views/components/ModalLogs.vue","webpack:///./src/views/components/ModalLogs.vue?1b0a","webpack:///./src/views/components/ModalLogs.vue","webpack:///src/App.vue","webpack:///./src/App.vue?f99d","webpack:///./src/App.vue?8573","webpack:///./src/store/mutations.js","webpack:///./src/store/actions.js","webpack:///./src/store/getters.js","webpack:///./src/store/states.js","webpack:///./src/store/meeting/mutations.js","webpack:///./src/store/meeting/getters.js","webpack:///./src/store/meeting/states.js","webpack:///./src/store/meeting/index.js","webpack:///./src/store/recording/mutations.js","webpack:///./src/helpers/recorder.js","webpack:///./src/store/recording/actions.js","webpack:///./src/store/recording/getters.js","webpack:///./src/store/recording/states.js","webpack:///./src/store/recording/index.js","webpack:///./src/store/autoservice/mutations.js","webpack:///./src/helpers/encryption.js","webpack:///./src/store/autoservice/actions.js","webpack:///./src/helpers/colmedica_fila_virtual.js","webpack:///./src/store/autoservice/getters.js","webpack:///./src/store/autoservice/states.js","webpack:///./src/store/autoservice/index.js","webpack:///./src/store/virtualrow/mutations.js","webpack:///./src/store/virtualrow/CentroDemo.js","webpack:///./src/store/virtualrow/OficinaDemo.js","webpack:///./src/store/virtualrow/CitasDemo.js","webpack:///./src/store/virtualrow/ValidarpagocitaDemo.js","webpack:///./src/store/virtualrow/actions.js","webpack:///./src/store/virtualrow/getters.js","webpack:///./src/store/virtualrow/states.js","webpack:///./src/store/virtualrow/index.js","webpack:///./src/store/virtualrowFSFB/mutations.js","webpack:///./src/helpers/santafe_fila_firtual.js","webpack:///./src/helpers/pays_messages.js","webpack:///./src/store/virtualrowFSFB/CentroDemo.js","webpack:///./src/store/virtualrowFSFB/OficinaDemo.js","webpack:///./src/store/virtualrowFSFB/CitasDemo.js","webpack:///./src/store/virtualrowFSFB/ValidarpagocitaDemo.js","webpack:///./src/store/virtualrowFSFB/actions.js","webpack:///./src/store/virtualrowFSFB/getters.js","webpack:///./src/store/virtualrowFSFB/states.js","webpack:///./src/store/virtualrowFSFB/index.js","webpack:///./src/store/virtualrowFSFBAU/mutations.js","webpack:///./src/store/virtualrowFSFBAU/CentroDemo.js","webpack:///./src/store/virtualrowFSFBAU/OficinaDemo.js","webpack:///./src/store/virtualrowFSFBAU/CitasDemo.js","webpack:///./src/store/virtualrowFSFBAU/ValidarpagocitaDemo.js","webpack:///./src/store/virtualrowFSFBAU/actions.js","webpack:///./src/store/virtualrowFSFBAU/getters.js","webpack:///./src/store/virtualrowFSFBAU/states.js","webpack:///./src/store/virtualrowFSFBAU/index.js","webpack:///./src/store/virtualrow_atril_video/mutations.js","webpack:///./src/store/virtualrow_atril_video/actions.js","webpack:///./src/store/virtualrow_atril_video/getters.js","webpack:///./src/store/virtualrow_atril_video/states.js","webpack:///./src/store/virtualrow_atril_video/index.js","webpack:///./src/store/appointments/mutations.js","webpack:///./src/store/appointments/actions.js","webpack:///./src/store/appointments/getters.js","webpack:///./src/store/appointments/states.js","webpack:///./src/store/appointments/index.js","webpack:///./src/store/older_adult/mutations.js","webpack:///./src/store/older_adult/actions.js","webpack:///./src/store/older_adult/getters.js","webpack:///./src/store/older_adult/states.js","webpack:///./src/store/older_adult/index.js","webpack:///./src/store/mobileFSFB/mutations.js","webpack:///./src/store/mobileFSFB/CentroDemo.js","webpack:///./src/store/mobileFSFB/OficinaDemo.js","webpack:///./src/store/mobileFSFB/CitasDemo.js","webpack:///./src/store/mobileFSFB/ValidarpagocitaDemo.js","webpack:///./src/store/mobileFSFB/actions.js","webpack:///./src/store/mobileFSFB/getters.js","webpack:///./src/store/mobileFSFB/states.js","webpack:///./src/store/mobileFSFB/index.js","webpack:///./src/store/turn/mutations.js","webpack:///./src/store/turn/actions.js","webpack:///./src/store/turn/getters.js","webpack:///./src/store/turn/states.js","webpack:///./src/store/turn/index.js","webpack:///./src/store/log/mutations.js","webpack:///./src/store/log/actions.js","webpack:///./src/store/log/getters.js","webpack:///./src/store/log/states.js","webpack:///./src/store/log/index.js","webpack:///./src/store/index.js","webpack:///./src/router/index.js","webpack:///./src/externals/progress/Progress.vue?772c","webpack:///./src/externals/progress/constants.js","webpack:///./src/externals/progress/utils.js","webpack:///src/externals/progress/Progress.vue","webpack:///./src/externals/progress/Progress.vue?eb0a","webpack:///./src/externals/progress/Progress.vue","webpack:///./src/externals/progress/index.js","webpack:///./src/directives/openLog.js","webpack:///./src/main.js","webpack:///./src/App.vue?946b","webpack:///./src/helpers/gtm.service.js","webpack:///./src/helpers/localStorage.js","webpack:///./src/utils/decoder.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","browser","Bowser","getParser","navigator","userAgent","env","getEnvOnly","sm","bsix","v","PACKAGE_VERSION","VUE_APP_ENV","br","getBrowser","version","os","getOS","vn","versionName","pl","getPlatformType","en","getEngine","envGlobal","JSON","parse","stringify","process","tries","promiseEnv","requestedEnvironments","passphrase","token","LS","getItem","refresh","time","requester","ctx","headers","url","body","fetch","VUE_APP_AWS_API_URL","_omit","VUE_APP_AWS_API_KEY","response","status","json","windowDispatchEvent","detail","CustomEvent","dispatchEvent","join","info","title","getToken","method","Authorization","getCompany","company","getBranch","branch","getEnqueueTurn","tramiteId","branchId","log","getTurnInfo","turnCode","cancelTurn","sendFile","element","call_id","turn_code","b64","getEnvironments","res","rej","nameSplitted","split","mom","moment","utc","nameOfUuidfile","kuid","hour","format","timedate","xhr","XMLHttpRequest","destiny","VUE_APP_FILE_SERVER","addEventListener","this","readyState","responseText","open","setRequestHeader","VUE_APP_BSI_KEY","encodeURIComponent","send","getCorrelation","kuidId","getQueues","getMenus","code_id","getStyles","recursiveRequest","config","errorEventFunction","executor","Date","now","newTime","location","hash","origin","adviceArea","querySelector","innerHTML","newEnv","silver","setCorrelation","turnId","others","coo","end","meetingId","getOneTimeToken","authentication_engine","setValues","tokenValue","refreshValue","timeValue","setItem","manualKey","keysource","noTimeRefresh","atob","Math","ceil","exp","getOneUseToken","sendRecords","tipide_dni","numide_dni","first_message","second_message","branch_id","tracking","getCustomersWithTurns","dni","map","webpackContext","req","id","webpackContextResolve","keys","meetingSession","publicKey","LlaveAES","Token","_vm","_h","$createElement","_c","_self","staticClass","attrs","_m","staticRenderFns","scopedSlots","_u","fn","ref","close","_v","staticStyle","on","$event","showModal","model","callback","$$v","show","expression","_l","index","toggleDropDown","class","checked","_s","refInFor","toggleDropDownMore","meeting","connecting","audioId","audioInputDevices","audioOutputDevices","videoInputDevices","attendees","videosIds","myname","videoDevice","speakerDevice","audioDevice","audioEnabled","camEnabled","speakerEnabled","bitrateKbps","stopSuggestionFromActiveCamera","packetsPerSecond","nackCountPerSecond","videoStopSuggestion","connectionIsGood","estimatedBandwidth","requiredBandwidth","m_allow_video","sharingEnabled","isAgent","computed","mapState","logList","logListMap","showDropdown","methods","mapActions","component","components","ModalLogs","created","watch","val","$faviconPage","setPosition","state","pay","position","setStarted","started","setCoorelation","turnCoorelation","setEnvironments","environment","setState","_get","removeItem","setViewState","commit","GM","eventCategory","eventAction","startup","dispatch","session","forced","sessionCode","checkSession","setFirstElementDatalayer","session_id","user_type","user_uuid","person","replaceSession","setLocalization","VUE_APP_GET_LOCATION","geolocation","getCurrentPosition","lat","long","setVariable","customLocationGPS","companyName","setTramite","setTurnUUID","floor","setKiosco","getTurn","tramite_info","queueId","params","turn","turns","fromKiosco46","catch","customer","queue","VUE_APP_DEBMEDIA_DEFAULT_TRAMITE","filter","axios","post","customerTurns","customerTurnsF","label","toString","toLowerCase","includes","jsonDetails","letter","number","finishTime","unix","extraFields","UUID","Videollamada","match","VUE_APP_COMPANY","branchInfo","branch_label","activeBranch","router","VUE_APP_DEBQ_DIRECT","turnInfo","getTurnRequest","__","codeToSend","prevResponse","errorResp","RB","error_turn_request_counter","turn_timer","timer","getTurnCoorelation","coorData","cleanTurn","setSessionMaster","options","currentTurn","local","verify_client_data","load_client_data","enclient","json_value","try_json","b64_to_utf8","feclient_data","dt","fdclient_data","setBranchInfo","setTimer","generalTimeout","eventTime","setGoTime","setTimerModal","generalTimeoutModal","setTimerAreYouThere","generalTimeoutAreYouThere","setTimerCounter","generalTimeoutCounter","timerCounter","setTimer3","generalTimeout3","timer3","removeTimer","restart","pageForeground","sessionMaster","client_data","turnUUID","catch_error","max_waiting_time","time_received_turn","eclient_data","dclient_data","removeTimeout","goTime","Array","isArray","setMeeting","addMessage","messages","toogleCamModal","meetTiming","setMeetType","startMeet","rootState","client_info","assistant","fullname","turn_id","turn_strings","branch_name","queue_id","video_public_path","results","root","JoinInfo","newerror","endMeet","audioVideo","realtimeUnsubscribeFromReceiveDataMessage","stop","ConfirmedendMeeting","warning","setAtendeeName","sendMessage","realtimeSendDataMessage","dataMessage","timestampMs","senderAttendeeId","configuration","credentials","attendeeId","senderExternalUserId","text","chatMessageHandler","timestamp","attendeeName","isSelf","payload","toogleAudioEnabled","realtimeUnmuteLocalAudio","realtimeMuteLocalAudio","toogleSpeakerEnabled","unbindAudioElement","changeSpeakerDevice","audio","deviceId","changeVideoDevice","video","stopLocalVideoTile","startLocalVideoTile","changeAudioDevice","startCamera","toogleCamEnabled","startMeeting","logger","ConsoleLogger","LogLevel","INFO","deviceController","DefaultDeviceController","meetingResponse","Meeting","attendeeResponse","Attendee","MeetingSessionConfiguration","DefaultMeetingSession","BackgroundBlurVideoFrameProcessor","BackgroundReplacementVideoFrameProcessor","isSupported","start","startBlurVideo","blurProcessor","processors","startBgVideo","imageBlob","filterCPUUtilization","bgProcessor","warn","removeVideoFilter","newProcessors","item","filterType","setterController","transformDevice","DefaultVideoTransformDevice","loggerMeeting","chooseVideoInputDevice","attendeesObservable","realtimeSubscribeToAttendeeIdPresence","presentAttendeeId","present","findIndex","elm","checkHabilities","listAudioInputDevices","listAudioOutputDevices","selectFirstMedia","checkHabilitiesVideo","chooseVideoInputQuality","listVideoInputDevices","devicesWin","mediaDevices","enumerateDevices","devices","device","kind","firstVideo","videos","configCameras","kioscos","branchid","cameras","documents","lateral","selectVideoDevice","selectSpeakerDevice","chooseAudioOutputDevice","selectAudioDevice","chooseAudioInputDevice","healthChange","bandwidthChange","commonNotification","connectionStatus","bandwidthRequirements","observersChangeOfMedia","observer","audioInputsChanged","freshAudioInputDeviceList","list","forEach","mediaDeviceInfo","audioOutputsChanged","freshAudioOutputDeviceList","videoInputsChanged","freshVideoInputDeviceList","addDeviceChangeObserver","observersGlobal","addObserver","connectionDidSuggestStopVideo","connectionDidBecomeGood","estimatedDownlinkBandwidthLessThanRequired","connectionDidBecomePoor","videoSendHealthDidChange","videoSendBandwidthDidChange","newBandwidthKbps","oldBandwidthKbps","audioVideoDidStart","eventValue","videoTileDidUpdate","tileState","tileId","yourAttendeeId","boundAttendeeId","isContent","baseAttendeeId","DefaultModality","base","isMineContent","vid","videoElement","getElementById","bindVideoElement","videoTileWasRemoved","videoIndex","realtimeSubscribeToReceiveDataMessage","toogleSharingEnabled","startContentShareFromScreenCapture","stopContentShare","bindAudio","bindAudioElement","setConfigCameras","isBlur","isWithBg","namespaced","mutations","actions","getters","Recorder","routeOfCheck","VUE_APP_RECORDER","recorder","startCheck","setInterval","checkRecorder","sendTurn","setTurn","stopCheck","clearInterval","rsa","System","Security","Cryptography","RSACryptoServiceProvider","configureRSA","FromXmlString","processedKey","ExportParameters","ImportParameters","encryptPublicRSA","bytes","Text","Encoding","UTF8","GetBytes","doOaepPadding","encryptedBytes","Encrypt","Convert","ToBase64String","signRSA","Data","aesKey","keyAscii","ivAscii","encoder","TextEncoder","keyBytes","encode","iv","crypto","subtle","importKey","encryptAES","utf8","encrypt","encrypted","buff","Uint8Array","str","String","fromCharCode","btoa","decryptAES","TextDecoder","ascii","asciiBytes","charCodeAt","decrypt","decrypted","decoded","decode","encryptAESWorker","aesWk","Worker","onmessage","postMessage","getLlavePublica","server","VUE_APP_HUELLA_SERVER","pub","autorizar","TipoIdentificacion","NumeroIdentificacion","keyString","rand","generate","llaveAES","colmedicaDecode","encoded","ivString","substr","encodedString","consultarCliente","Iv","enc","guardarSolicitud","ParametroSolicitudCanal","ArchivoSolicitud","dataToSend","goToView","onStopTimer","setService","setExplanation","setIsCorrect","selecteService","captchaValidation","grecaptcha","ready","execute","VUE_APP_RECAPTCHA_CODE","action","bunitId","VUE_APP_BUNIT","validationErrors","demoValidation","number_id","client","test_users","find","u","authAndQueryColmedica","autorizacionColmedica","ti","nu","consultaClienteColmedica","dataClient","guardarSolicitudDemo","guardarSolicitudColmedica","b64final","canals","fu","toSend","CanalIngreso","DescripcionCanal","Identificacion","NombreUsuario","trim","CorreoElectronico","TelefonoCelular","TipoAutorizacionId","servicioSelected","files","file","Archivo","NombreArchivo","errorValidationTemporizer","updateB64Final","currentState","assign","clearDocs","removeFile","keyIndex","currentFiles","addFile","setHorarioOutContinue","setClient","fetchTurnData","myHeaders","Headers","append","requestOptions","redirect","view","HorarioOutContinue","charging","service","explanation","isCorrect","showModalError","stopTimer","servicesAvailable","code_name","tipide","colmedicaRequest","ma","na","ap","tr","so","em","ce","to","su","VUE_APP_DEBMEDIA_DEFAULT_BRANCH","turn_from_code","Celular","Correo","Nombres","PrimerApellido","Resultado","SegundoApellido","PrioridadMarcaValor","VUE_APP_HUELLA_FV_SERVER","CodigoOficina","Key","mensaje","LlaveAes","enOficina","enCentroMedico","citas","cita","idCita","IdCita","Fecha","validarPago","Prioritario","ConCita","NombreCentroMedico","Especialidad","EnCentroMedico","bad","IdPaso","DescripcionPaso","Orden","good","changeAuth","setCustomArea","setUserActionDate","getSites","sites","styles","bsix_client","companyColor","secondaryCompanyColor","contrastTextColor","area","menu","customMenu","isAtril","newArray","history","goBack","pop","setCitaCM","validation","sort","a","b","children","setAction","evaluationComponent","ignorePriority","confirmedAction","selectedAccion","turnCall","getCitaValidation","toReturn","VUE_APP_DEMO_MODE","ValPagoDemo","authenticate","nextComponent","zone","userfinded","userDemo","usr","originFinded","currentSite","CentroDemo","OficinaDemo","cm","CitasDemo","authAndQuery","inSite","citasList","handleSendRecords","handleTracking","cleanCurrentUser","previousView","previousViewTwo","showAuth","tramiteInUserEvaluation","tramiteByDefault","currentUser","catch_all","priority","Tramite","NumeroDeConfirmacion","citaActual","currentValidation","queueList","customArea","primaryColorBlue","secondColorBlue","threeColorBlueColor","userActionDate","CryptoJS","require","fetchApi","routes","external_url","VUE_APP_SERVER","VUE_APP_API_KEY_DEV","localStorage","responseJSON","countError","externalRequest","startTransactionCredibanco","sync_data","payLogs","syncPaymentLogs","privateKey","VUE_APP_FSFB_KEY","round","getTime","convertDocuments","documentType","documentNumber","md5","MD5","SHA1","autorizarFSFB","VUE_APP_FSFB_SERVER","raw","authType","contentType","authHeader","user","citasFSFB","maxRetry","VUE_APP_FSFB_SERVER_APPOINTMENTS","doc","tdoc","externalData","appointments","fetchCupsCode","speciality","VUE_APP_FSFB_SERVER_KIOSKOS_DISTRIBUTION","notificationsFSFB","postData","VUE_APP_FSFB_NOTIFICATION_URL","tokenPayments","countSync","syncPaysWithFSFB","fetchToken","VUE_APP_FSFB_PAYS","terminal","res_p","pay_r","id_transaction","checkPay","cancelPay","checkMessage","setSede","setMenus","setAuthorize","restartTimerModal","appointment","sedeCode","paymentsEnabled","customAreas","enablePayments","authorized_appoinment","appoinment_paid","cost_appoinment","appoinment_url_paid","hiddenButtonPaymentAgent","showButtonPaymentDataphone","conditions","default","actionCode","priority_tramite_id","tramite_id","userAge","currentArea","authorize","userResponse","id_patient","cup_code","toUpperCase","cups_code","S","attention","itemA","itemB","itemBHCS","hour_appoinment","itemAHCS","diff","clearError","mobileNotification","convertDocumentsFromString","notification","sendMessageForPay","checkMessageStatus","id_cita_pago","startTransaction","sendCrediPay","site","currentAppointment","clearMessagePays","checkCrediPay","resp","cancelPayment","syncPaymentsFSFB","saveLogsPayments","refreshTokenPays","clear","cleanMenus","_cloneDeep","basemenu","nextAuthorize","restartTimerModalState","stopTimerCircle","CC","TI","PS","CE","RC","SI","CD","MI","NI","NU","SC","SN","qrLoading","respPayments","dataPayment","setEnv","Edad","VUE_APP_OLD_AGE_VALIDATION","showProgressBarAun","timerAun","containerImageDocs","showProgressBar","fetchAppointments","token_appointments","queryData","reason","formulas","point","startAt","resetEnvironment","fetchAvailableMonth","fetchAvailableDays","scheduleId","fetchAvailablebyMonths","slots","zoneOwn","startDate","createAppointment","schedule","updateAppointment","fetchSchedule","schedules","setDay","setAppointment","sendNotification","schedule_code","schedule_date","selectedDay","availables","availablesDaysMonth","responseAppointment","loading","appointmentConfirm","setPhoneIn","setCleanModals","VUE_APP_OLD_AGE","isModeTutorial","isOlderAdult","showUserInactive","showUserOlder","phone_in","actionError","fromError","replace","query","number_form","changeDocInfo","handleMobileAppointments","setEmbebedData","handlePreloadAppointments","setFromQR","docInfo","selectedArea","loadApi","embebedData","preloadPayments","fromQR","extrafieldsConverter","source","coorelation_key","showable","in","clientInfo","toPack","firstName","la","lastName","marcacion","cuit","phone","sessionStorage","fecha_cita","staff","utf8_to_b64","infoOfTurn","onlyGenerate","withVideocall","withAnalitycExtraFields","withAuthorize","cuil","cedulaIdentidad","hasAuthorize","_extraFields","getTurnStatus","infoErrorCount","cancelTurnAction","onlyClean","epoch","put","Vue","use","Vuex","store","Store","recording","autoservice","virtualrow","virtualrowFSFB","virtualrowFSFBAU","virtualrow_atril_video","virtualrowAtrilVideo","olderAdult","mobileFSFB","VueRouter","path","beforeEnter","from","next","props","beforeEach","_t","LINE","CIRCLE","PATH","extend","validator","color","strokeWidth","trailColor","trailWidth","duration","easing","svgStyle","fill","step","progress","mounted","destroyed","init","svg","trail","animate","cb","set","setText","VueProgress","install","Progress","clickCounter","el","unbind","removeEventListener","lastUpdate","serviceWorker","getRegistrations","registrations","registration","unregister","setPerson","username","productionTip","CircularCountDownTimer","BootstrapVue","ToggleButton","VueGlide","VCalendar","defaults","baseURL","VUE_APP_DEBMEDIA_SERVER","Rollbar","accessToken","autoInstrument","maxTelemetryEvents","captureIp","retryInterval","captureUncaught","captureUnhandledRejections","javascript","code_version","host","fingerprint","bsix_version","bsix_server","interceptors","metadata","startTime","x","$rollbar","errorHandler","vm","directive","openLogDirective","render","h","App","$mount","dataLayer","GTM","variable","mdata","__traverse","__sendEvent","extinguishVisibility","eventLabel","timeOfEvent","obj","parn","ky","traverse","parent","keyIntro","GTMService","possibleNames","lsPrefix","VUE_APP_LS_PREFIX","encodeUrlComponent","unescape","decodeUrlComponent","decodeURIComponent"],"mappings":"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","file":"app.59c8513a16d0bf7afe4d.bundle.js?v=6.4.15","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-07c2de55\":\"76549428\",\"chunk-0c4f9731\":\"9475a59d\",\"chunk-11a079c2\":\"57a60406\",\"chunk-2d0c72f4\":\"ea9e13ef\",\"chunk-ecb79eea\":\"567ab82c\",\"chunk-7819366a\":\"5eef3c4a\",\"chunk-12f60c9b\":\"639d0d37\",\"chunk-6d597899\":\"ef7ecffd\",\"chunk-1da4f821\":\"dafe353e\",\"chunk-2d21aebf\":\"ab68b436\",\"chunk-7f2f6ddf\":\"04795322\",\"chunk-3d8102b7\":\"68727170\",\"chunk-2bd9885e\":\"82d78342\",\"chunk-86da9766\":\"077346b0\",\"chunk-c7146f04\":\"cdb5975e\",\"chunk-0d089980\":\"0142963b\",\"chunk-0ec3e81c\":\"cdc0d14e\",\"chunk-984c7c6e\":\"b93a3f3e\",\"chunk-ead60722\":\"3f6dad79\",\"chunk-785ce8e7\":\"b9988e2f\",\"chunk-05bf6fb5\":\"64e7bf4e\",\"chunk-915d213a\":\"d5b550f7\",\"chunk-1ad20a6b\":\"3b1d1c82\",\"chunk-20e7f32c\":\"d937f3b1\",\"chunk-2d0aa17c\":\"66f4251f\",\"chunk-2d0aa7c0\":\"078e7859\",\"chunk-2d21ee4e\":\"487ce86a\",\"chunk-2d230075\":\"4233210c\",\"chunk-2ff651c6\":\"95450eef\",\"chunk-353b79ea\":\"9a062619\",\"chunk-367ebb3e\":\"9ad53183\",\"chunk-39afc2ee\":\"b31e8895\",\"chunk-4a6fb8dc\":\"98d35178\",\"chunk-55b2b7ff\":\"9b132fa6\",\"chunk-611c2d4b\":\"1a1ca3ee\",\"chunk-62a92d9a\":\"9fbb91ec\",\"chunk-185f582a\":\"988b02aa\",\"chunk-2e39411e\":\"6002e1a1\",\"chunk-ab964c96\":\"56a78ae7\",\"chunk-7785d009\":\"07406e38\",\"chunk-791a329a\":\"8912a61b\",\"chunk-8014fc7a\":\"8a323c72\",\"chunk-9a231f62\":\"cdcf8b96\",\"chunk-b261d284\":\"5b86503a\",\"chunk-b6b3d312\":\"3e427ded\",\"chunk-cf63bbc2\":\"25dc406d\",\"chunk-ec764a88\":\"8671273d\",\"chunk-f2208c66\":\"8c8eb9c8\",\"chunk-1031c9ee\":\"cb554b6c\",\"chunk-203f5432\":\"ad295031\",\"chunk-1cfee6bd\":\"254de9d8\",\"chunk-615d1192\":\"9f8076a4\",\"chunk-62b49b0a\":\"3e8b0bff\",\"chunk-6a98d212\":\"3ebc9781\",\"chunk-72f775a0\":\"5511e9c7\",\"chunk-7b8586ee\":\"890e4754\",\"chunk-8e056136\":\"47bd43f8\",\"chunk-d3a3d080\":\"c4308577\",\"chunk-d7e62980\":\"5e2e114c\",\"chunk-e7ff72b8\":\"fd01b447\",\"chunk-378dec9c\":\"6a499b72\",\"chunk-a6ec29e0\":\"97a131a0\",\"chunk-2d6f66c2\":\"ec91bf6d\",\"chunk-421da25a\":\"9e2dd4be\",\"chunk-6170f14c\":\"af30f17f\",\"chunk-8484fbe8\":\"37ff9339\",\"chunk-f8477696\":\"5521b8b2\",\"chunk-10a19da9\":\"c8f7bde7\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-07c2de55\":1,\"chunk-0c4f9731\":1,\"chunk-11a079c2\":1,\"chunk-ecb79eea\":1,\"chunk-7819366a\":1,\"chunk-6d597899\":1,\"chunk-1da4f821\":1,\"chunk-7f2f6ddf\":1,\"chunk-3d8102b7\":1,\"chunk-2bd9885e\":1,\"chunk-86da9766\":1,\"chunk-c7146f04\":1,\"chunk-0d089980\":1,\"chunk-0ec3e81c\":1,\"chunk-984c7c6e\":1,\"chunk-ead60722\":1,\"chunk-785ce8e7\":1,\"chunk-05bf6fb5\":1,\"chunk-915d213a\":1,\"chunk-1ad20a6b\":1,\"chunk-20e7f32c\":1,\"chunk-2ff651c6\":1,\"chunk-353b79ea\":1,\"chunk-367ebb3e\":1,\"chunk-39afc2ee\":1,\"chunk-4a6fb8dc\":1,\"chunk-55b2b7ff\":1,\"chunk-611c2d4b\":1,\"chunk-62a92d9a\":1,\"chunk-185f582a\":1,\"chunk-2e39411e\":1,\"chunk-ab964c96\":1,\"chunk-7785d009\":1,\"chunk-791a329a\":1,\"chunk-8014fc7a\":1,\"chunk-9a231f62\":1,\"chunk-b6b3d312\":1,\"chunk-cf63bbc2\":1,\"chunk-ec764a88\":1,\"chunk-f2208c66\":1,\"chunk-1031c9ee\":1,\"chunk-203f5432\":1,\"chunk-1cfee6bd\":1,\"chunk-615d1192\":1,\"chunk-62b49b0a\":1,\"chunk-6a98d212\":1,\"chunk-72f775a0\":1,\"chunk-7b8586ee\":1,\"chunk-8e056136\":1,\"chunk-d3a3d080\":1,\"chunk-d7e62980\":1,\"chunk-e7ff72b8\":1,\"chunk-378dec9c\":1,\"chunk-a6ec29e0\":1,\"chunk-2d6f66c2\":1,\"chunk-421da25a\":1,\"chunk-6170f14c\":1,\"chunk-8484fbe8\":1,\"chunk-f8477696\":1,\"chunk-10a19da9\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-07c2de55\":\"21e32dec\",\"chunk-0c4f9731\":\"d71d38e3\",\"chunk-11a079c2\":\"ee7e7c49\",\"chunk-2d0c72f4\":\"31d6cfe0\",\"chunk-ecb79eea\":\"8258e42a\",\"chunk-7819366a\":\"95957f58\",\"chunk-12f60c9b\":\"31d6cfe0\",\"chunk-6d597899\":\"4d9fc6be\",\"chunk-1da4f821\":\"4a778cce\",\"chunk-2d21aebf\":\"31d6cfe0\",\"chunk-7f2f6ddf\":\"8397fe45\",\"chunk-3d8102b7\":\"a510c215\",\"chunk-2bd9885e\":\"c23d55a4\",\"chunk-86da9766\":\"08e3c6e6\",\"chunk-c7146f04\":\"83043ba9\",\"chunk-0d089980\":\"b4634f39\",\"chunk-0ec3e81c\":\"d8081002\",\"chunk-984c7c6e\":\"0220c835\",\"chunk-ead60722\":\"e0c2fb64\",\"chunk-785ce8e7\":\"1c6f31dd\",\"chunk-05bf6fb5\":\"2bd90d39\",\"chunk-915d213a\":\"c16c3bfc\",\"chunk-1ad20a6b\":\"31e9c132\",\"chunk-20e7f32c\":\"6501f5bd\",\"chunk-2d0aa17c\":\"31d6cfe0\",\"chunk-2d0aa7c0\":\"31d6cfe0\",\"chunk-2d21ee4e\":\"31d6cfe0\",\"chunk-2d230075\":\"31d6cfe0\",\"chunk-2ff651c6\":\"4bd1b72c\",\"chunk-353b79ea\":\"c791ecb2\",\"chunk-367ebb3e\":\"c0a48068\",\"chunk-39afc2ee\":\"e40b6c78\",\"chunk-4a6fb8dc\":\"c5e48863\",\"chunk-55b2b7ff\":\"f9d4cb94\",\"chunk-611c2d4b\":\"f623218c\",\"chunk-62a92d9a\":\"44c1735c\",\"chunk-185f582a\":\"ee1078a6\",\"chunk-2e39411e\":\"e952d43c\",\"chunk-ab964c96\":\"fb153c46\",\"chunk-7785d009\":\"102b7b3c\",\"chunk-791a329a\":\"b8e4b1a0\",\"chunk-8014fc7a\":\"d1d8b033\",\"chunk-9a231f62\":\"a0436701\",\"chunk-b261d284\":\"31d6cfe0\",\"chunk-b6b3d312\":\"ce1e2b7a\",\"chunk-cf63bbc2\":\"efff4095\",\"chunk-ec764a88\":\"e36a799e\",\"chunk-f2208c66\":\"7ade1a62\",\"chunk-1031c9ee\":\"7b79568a\",\"chunk-203f5432\":\"943e6bb4\",\"chunk-1cfee6bd\":\"50a246d4\",\"chunk-615d1192\":\"606a56a8\",\"chunk-62b49b0a\":\"d2f7bc97\",\"chunk-6a98d212\":\"2299ecd3\",\"chunk-72f775a0\":\"f6009d85\",\"chunk-7b8586ee\":\"bc787567\",\"chunk-8e056136\":\"6dd3bf56\",\"chunk-d3a3d080\":\"27e2b0c7\",\"chunk-d7e62980\":\"cdc416f3\",\"chunk-e7ff72b8\":\"e3065096\",\"chunk-378dec9c\":\"b98b29f5\",\"chunk-a6ec29e0\":\"1a7235de\",\"chunk-2d6f66c2\":\"5a7482f6\",\"chunk-421da25a\":\"a65ceaeb\",\"chunk-6170f14c\":\"b390defa\",\"chunk-8484fbe8\":\"490bdf56\",\"chunk-f8477696\":\"edd814d7\",\"chunk-10a19da9\":\"062aa00d\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAABDKAAAQygEQ+ysMAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAo5QTFRF////AQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACI9nGbwAAANl0Uk5TAAECAwQFBgcICQoLDA0ODxAREhMUFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLzAxMjM0Njc4OTo8PT4/QEFCQ0RGR0hKS0xOT1BTVFVXWFlbXF1eX2BiY2RlZmhpamttbm9wcXJzdHV2d3p7fH1+f4CBgoSFh4mK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\"","import Bowser from \"bowser\";\r\nimport { getEnvOnly } from \"./Meet\";\r\n\r\nexport default function() {\r\n const browser = Bowser.getParser(window.navigator.userAgent);\r\n const env = getEnvOnly();\r\n return {\r\n sm: null,\r\n bsix: {\r\n v: env.PACKAGE_VERSION || \"0\",\r\n e: env.VUE_APP_ENV || \"develop\"\r\n },\r\n br: {\r\n n: browser.getBrowser().name,\r\n v: browser.getBrowser().version\r\n },\r\n os: {\r\n n: browser.getOS().name,\r\n v: browser.getOS().version,\r\n vn: browser.getOS().versionName\r\n },\r\n pl: browser.getPlatformType(),\r\n en: {\r\n n: browser.getEngine().name,\r\n v: browser.getEngine().version\r\n }\r\n };\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalLogs.vue?vue&type=style&index=0&id=457bb529&lang=scss&scoped=true&\"","import _omit from \"lodash/omit\";\r\nimport moment from \"moment\";\r\nimport kuid from \"kuid\";\r\nimport LS from \"./localStorage\";\r\n\r\nlet envGlobal = JSON.parse(JSON.stringify(process.env));\r\nlet tries = 0;\r\nlet promiseEnv = null;\r\nlet requestedEnvironments = false;\r\n\r\nlet passphrase = \"bsiTokenGenerator\";\r\nvar token = LS.getItem(token);\r\nvar refresh = LS.getItem(refresh);\r\nvar time = LS.getItem(time);\r\n\r\nasync function requester(ctx) {\r\n const { headers = {}, url, body } = ctx;\r\n if (!url) return Promise.reject(new Error(\"URL is required\"));\r\n let env = getEnvOnly();\r\n return await fetch(`${env.VUE_APP_AWS_API_URL}${url}`, {\r\n ..._omit(ctx, [\"headers\", \"url\", \"body\"]),\r\n body: body ? JSON.stringify(body) : undefined,\r\n headers: {\r\n ...{\r\n \"x-api-key\": env.VUE_APP_AWS_API_KEY,\r\n \"Content-Type\": \"application/json\"\r\n },\r\n ...headers\r\n },\r\n mode: \"cors\"\r\n })\r\n .then(response => {\r\n if (\r\n typeof response.status === \"number\" &&\r\n response.status >= 200 &&\r\n response.status < 400\r\n )\r\n return response;\r\n\r\n if (url == \"/meet/meet-coorelation\" && response.status == 410)\r\n return response;\r\n\r\n throw new Error(\r\n `Invalid request status ${response.status}. ${JSON.stringify(\r\n response.json()\r\n )}`\r\n );\r\n })\r\n .then(response => response.json());\r\n}\r\n\r\nfunction windowDispatchEvent(name, detail) {\r\n let event = new CustomEvent(name, { detail });\r\n window.dispatchEvent(event);\r\n}\r\n\r\nfunction join(info) {\r\n if (typeof info !== \"object\" || !info.title || !info.name)\r\n return Promise.reject(\r\n new Error(\"Invalid paramethers for meeting creation\")\r\n );\r\n return getToken().then(key => {\r\n return requester({\r\n url: \"/meet/join\",\r\n body: info,\r\n method: \"POST\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction getCompany(company) {\r\n if (!company)\r\n return Promise.reject(new Error(\"Invalid paramethers for Company request\"));\r\n return getToken().then(key => {\r\n return requester({\r\n url: `/company/${company}`,\r\n method: \"GET\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction getBranch(company, branch) {\r\n if (!company || !branch)\r\n return Promise.reject(new Error(\"Invalid paramethers for Branch request\"));\r\n return getToken().then(key => {\r\n return requester({\r\n url: `/company/${company}/branch/${branch}`,\r\n method: \"GET\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction getEnqueueTurn(tramiteId, branchId, info) {\r\n if (!tramiteId || !branchId || !info) {\r\n console.log(\"Invalid paramethers for Enqueue turn request\");\r\n return Promise.reject(\r\n new Error(\"Invalid paramethers for Enqueue turn request\", {\r\n tramiteId,\r\n branchId,\r\n info\r\n })\r\n );\r\n }\r\n\r\n return getToken().then(key => {\r\n return requester({\r\n url: `/queue/${tramiteId}/branch/${branchId}/enqueue`,\r\n method: \"POST\",\r\n body: info,\r\n headers: {\r\n Authorization: key\r\n },\r\n timeout: 10000\r\n });\r\n });\r\n}\r\n\r\nfunction getTurnInfo(turnCode) {\r\n if (!turnCode)\r\n return Promise.reject(new Error(\"Invalid turn code for request\"));\r\n return getToken().then(key => {\r\n return requester({\r\n url: `/turn/${turnCode}`,\r\n method: \"GET\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction cancelTurn(turnCode) {\r\n if (!turnCode)\r\n return Promise.reject(new Error(\"Invalid turn code for request\"));\r\n return getToken().then(key => {\r\n return requester({\r\n url: `/turn/${turnCode}/cancel`,\r\n method: \"POST\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction sendFile(element) {\r\n // eslint-disable-next-line no-constant-condition\r\n if (\r\n element.call_id &&\r\n element.turn_code &&\r\n element.name &&\r\n element.type &&\r\n element.b64\r\n ) {\r\n return getEnvironments().then(env => {\r\n return new Promise((res, rej) => {\r\n let nameSplitted = element.name.split(\".\");\r\n let mom = moment().utc();\r\n let nameOfUuidfile = `${kuid()}.${\r\n nameSplitted[nameSplitted.length - 1]\r\n }`;\r\n let hour = mom.format(\"HH\");\r\n var timedate = mom.format(\"DDMMYYYY\");\r\n var data = element.b64;\r\n var xhr = new XMLHttpRequest();\r\n const destiny = `${env.VUE_APP_FILE_SERVER}/${timedate}/${hour}/${element.call_id}/chat_files/${nameOfUuidfile}`;\r\n\r\n xhr.addEventListener(\"readystatechange\", function() {\r\n if (this.readyState === 4) {\r\n if (xhr.status < 400 && xhr.status !== 0)\r\n res({ url: destiny, response: this.responseText });\r\n else rej(new Error(\"File upload failed with status \" + xhr.status));\r\n }\r\n });\r\n\r\n xhr.open(\r\n \"PUT\",\r\n destiny\r\n // \"https://l7hnmujmad.execute-api.us-east-1.amazonaws.com/prod/album1/anotherText.txt\"\r\n );\r\n xhr.setRequestHeader(\"x-api-key\", env.VUE_APP_BSI_KEY);\r\n xhr.setRequestHeader(\r\n \"x-amz-meta-turn-code\",\r\n encodeURIComponent(element.turn_code)\r\n );\r\n xhr.setRequestHeader(\r\n \"x-amz-meta-original-name\",\r\n encodeURIComponent(element.name)\r\n );\r\n xhr.setRequestHeader(\"Content-Type\", element.type);\r\n xhr.onerror = err => rej(err);\r\n xhr.send(data);\r\n });\r\n });\r\n }\r\n}\r\n\r\nfunction getCorrelation(kuidId) {\r\n if (!kuidId)\r\n return Promise.reject(new Error(\"Invalid paramethers for coorelation\"));\r\n /* eslint-disable */\r\n return new Promise( resolve => {\r\n return getToken().then( async key => {\r\n const response = await requester({\r\n url: `/meet/meet-coorelation`,\r\n body: {\r\n kuid: kuidId\r\n },\r\n method: \"PUT\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n resolve(response)\r\n });\r\n });\r\n /* eslint-enable */\r\n}\r\n\r\nfunction getQueues() {\r\n return getToken().then(key => {\r\n return requester({\r\n url: \"/queues\",\r\n method: \"GET\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction getMenus(code_id) {\r\n return getToken().then(key => {\r\n return requester({\r\n url: `/menu${code_id ? \"/\" + code_id : \"\"}`,\r\n method: \"GET\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction getStyles() {\r\n return getToken().then(key => {\r\n return requester({\r\n url: \"/styles\",\r\n method: \"GET\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction recursiveRequest(config, errorEventFunction) {\r\n return new Promise(resolve => {\r\n executor();\r\n // eslint-disable-next-line no-unused-vars\r\n async function executor() {\r\n let time = Date.now();\r\n try {\r\n const response = await requester(config);\r\n resolve(response);\r\n } catch (error) {\r\n console.error(\"Error in recursiveRequest\", error);\r\n let newTime = Date.now() - time;\r\n if (typeof errorEventFunction === \"function\")\r\n errorEventFunction(newTime);\r\n if (newTime < 2000) setTimeout(() => executor(), 2000 - newTime);\r\n else executor();\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction getEnvironments() {\r\n let code = location.hash.split(\"fv_atril/\");\r\n if (code.length > 1) {\r\n code = code.length > 1 ? code[1] : null;\r\n } else {\r\n code = location.hash.split(\"fv/\");\r\n code = code.length > 1 ? code[1] : null;\r\n }\r\n\r\n if (requestedEnvironments) return Promise.resolve(envGlobal);\r\n promiseEnv = recursiveRequest(\r\n {\r\n url: \"/environment\",\r\n method: \"POST\",\r\n body: { url: location.origin, code: code }\r\n },\r\n () => {\r\n let adviceArea = document.querySelector(\"#app #messageInternal\");\r\n if (adviceArea) {\r\n adviceArea.innerHTML = `Fallo en la conexión. Reintento # ${++tries}.`;\r\n }\r\n }\r\n ).then(newEnv => {\r\n promiseEnv = null;\r\n requestedEnvironments = true;\r\n envGlobal = { ...envGlobal, ...(newEnv?.env || {}), ...(newEnv?.silver || {}) };\r\n return envGlobal;\r\n });\r\n return promiseEnv;\r\n}\r\n\r\nasync function setCorrelation({ kuidId, turnId, ...others }) {\r\n if (!kuidId && !turnId)\r\n return Promise.reject(new Error(\"Invalid paramethers for coorelation\"));\r\n\r\n // check if existe correlation\r\n let coo = await getCorrelation(kuidId);\r\n if (coo && coo.message != \"Can't read title(kuid) in table.\") {\r\n return coo;\r\n }\r\n\r\n return getToken().then(key => {\r\n return requester({\r\n url: \"/meet/meet-coorelation\",\r\n body: {\r\n kuid: kuidId,\r\n title: turnId,\r\n ...others\r\n },\r\n method: \"POST\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction end(info) {\r\n if (typeof info !== \"object\" || !info.title || !info.meetingId)\r\n return Promise.reject(new Error(\"Invalid paramethers for meeting ending\"));\r\n return getToken().then(key => {\r\n return requester({\r\n url: \"/meet/end\",\r\n body: info,\r\n method: \"POST\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction XMLtoPEM(xml) {\r\n return requester({\r\n url: \"/key/xml-to-pem\",\r\n body: {\r\n xml\r\n },\r\n method: \"POST\"\r\n }).then(key => key.pem);\r\n}\r\n\r\nfunction getOneTimeToken() {\r\n return getEnvironments(env =>\r\n requester({\r\n url: \"/key/one-use-token\",\r\n body: {\r\n token: env.VUE_APP_BSI_KEY,\r\n authentication_engine: \"bsi\",\r\n passphrase\r\n },\r\n method: \"POST\"\r\n })\r\n ).then(key => key.token);\r\n}\r\n\r\nfunction clearTokens() {\r\n token = null;\r\n refresh = null;\r\n time = null;\r\n LS.removeItem(\"token\");\r\n LS.removeItem(\"refresh\");\r\n LS.removeItem(\"time\");\r\n}\r\n\r\nfunction setValues({ tokenValue, refreshValue, timeValue }) {\r\n if (tokenValue) {\r\n token = tokenValue;\r\n LS.setItem(\"token\", tokenValue);\r\n }\r\n if (refreshValue) {\r\n refresh = refreshValue;\r\n LS.setItem(\"token\", refreshValue);\r\n }\r\n if (timeValue) {\r\n time = timeValue;\r\n LS.setItem(\"time\", timeValue);\r\n }\r\n}\r\n\r\nfunction getToken(manualKey, keysource, body = {}) {\r\n let noTimeRefresh = (() => {\r\n if (token) {\r\n try {\r\n let info = JSON.parse(atob(token.split(\".\")[1]));\r\n let now = Math.ceil(Date.now() / 1000);\r\n return info.exp > now + 20;\r\n // eslint-disable-next-line no-empty\r\n } catch (error) {}\r\n }\r\n })();\r\n if (token && noTimeRefresh) return Promise.resolve(token);\r\n if (token && refresh) {\r\n return recursiveRequest(\r\n {\r\n url: \"/key/refresh\",\r\n body: {\r\n refresh,\r\n authentication_engine: \"bsi\",\r\n passphrase\r\n },\r\n method: \"POST\"\r\n },\r\n () =>\r\n windowDispatchEvent(\"refreshError\", {\r\n message: \"Cant resolve refresh in BSIX\"\r\n })\r\n ).then(key => {\r\n setValues({ tokenValue: key.token, timeValue: Date.now() });\r\n return key.token;\r\n });\r\n } else {\r\n return getEnvironments()\r\n .then(env =>\r\n recursiveRequest(\r\n {\r\n url: \"/key/token\",\r\n body: {\r\n token: manualKey || env.VUE_APP_BSI_KEY,\r\n authentication_engine: keysource || (manualKey ? \"bsix\" : \"bsi\"),\r\n passphrase,\r\n ...body\r\n },\r\n method: \"POST\"\r\n },\r\n () =>\r\n windowDispatchEvent(\"tokenError\", {\r\n message: \"Cant resolve token in BSIX\"\r\n })\r\n )\r\n )\r\n .then(key => {\r\n setValues({\r\n tokenValue: key.token,\r\n refreshValue: key.refresh,\r\n timeValue: Date.now()\r\n });\r\n return key.token;\r\n });\r\n }\r\n}\r\n\r\nfunction getOneUseToken() {\r\n return getEnvironments()\r\n .then(env =>\r\n recursiveRequest(\r\n {\r\n url: \"/key/one-use-token\",\r\n body: {\r\n token: env.VUE_APP_BSI_KEY,\r\n authentication_engine: \"bsi\"\r\n },\r\n method: \"POST\"\r\n },\r\n () =>\r\n windowDispatchEvent(\"oneUseTokenError\", {\r\n message: \"Cant resolve one use token in BSIX\"\r\n })\r\n )\r\n )\r\n .then(key => key.token);\r\n}\r\n\r\nfunction getEnvOnly() {\r\n return envGlobal;\r\n}\r\n\r\nfunction sendRecords(info) {\r\n if (\r\n typeof info !== \"object\" ||\r\n !info.name ||\r\n !info.tipide_dni ||\r\n !info.numide_dni ||\r\n !info.first_message ||\r\n !info.second_message ||\r\n !info.code_id ||\r\n !info.branch_id ||\r\n !info.origin\r\n )\r\n return Promise.reject(new Error(\"Invalid paramethers for data records\"));\r\n return getToken().then(key => {\r\n return requester({\r\n url: \"/virtualTurn\",\r\n body: info,\r\n method: \"POST\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction tracking() {\r\n // if (typeof info !== \"object\" || !info.uuid || !info.accion || !info.debmedia_turn_code || !info.url_origen || !info.origen || !info.mensajes)\r\n // console.error('Invalid paramethers for data records')\r\n return new Promise(r=>setTimeout(() => { r() }, 1000));\r\n // return getToken().then(key => {\r\n // return requester({\r\n // url: \"/tracking\",\r\n // body: info,\r\n // method: \"POST\",\r\n // headers: {\r\n // Authorization: key\r\n // }\r\n // });\r\n // });\r\n}\r\n\r\nfunction getCustomersWithTurns(dni) {\r\n if (!dni) return Promise.reject(new Error(\"Invalid dni for request\"));\r\n return getToken().then(key => {\r\n return requester({\r\n url: `/getCustomersWithTurns?dni=${dni}`,\r\n method: \"GET\",\r\n headers: {\r\n Authorization: key\r\n }\r\n });\r\n });\r\n}\r\n\r\nexport {\r\n join,\r\n end,\r\n getCorrelation,\r\n setCorrelation,\r\n XMLtoPEM,\r\n getOneTimeToken,\r\n getCompany,\r\n getBranch,\r\n getEnvironments,\r\n getEnvOnly,\r\n sendFile,\r\n getStyles,\r\n getEnqueueTurn,\r\n getTurnInfo,\r\n cancelTurn,\r\n getToken,\r\n getOneUseToken,\r\n clearTokens,\r\n getQueues,\r\n getMenus,\r\n windowDispatchEvent,\r\n sendRecords,\r\n tracking,\r\n getCustomersWithTurns,\r\n requester\r\n};\r\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","import { join, end, sendFile } from \"../../helpers/Meet\";\r\nimport kuid from \"kuid\";\r\nimport _get from \"lodash/get\";\r\nimport _omit from \"lodash/omit\";\r\nimport {\r\n ConsoleLogger,\r\n DefaultDeviceController,\r\n DefaultMeetingSession,\r\n LogLevel,\r\n MeetingSessionConfiguration,\r\n DefaultModality,\r\n BackgroundBlurVideoFrameProcessor,\r\n DefaultVideoTransformDevice,\r\n BackgroundReplacementVideoFrameProcessor\r\n} from \"amazon-chime-sdk-js\";\r\nimport { GTMService as GM } from \"../../helpers/gtm.service\";\r\n\r\nlet meetingSession;\r\nlet meetTiming = 0;\r\n\r\nexport default {\r\n setMeetType({ commit }, status) {\r\n commit(\"setState\", { key: \"isAgent\", value: !!status });\r\n },\r\n async startMeet({ commit, dispatch, rootState }, pay) {\r\n commit(\"setState\", { key: \"connecting\", value: true });\r\n let newerror;\r\n try {\r\n // const title = _get(pay, \"meetId\") || `meet_${kuid()}`;\r\n const title = _get(pay, \"turnCode\");\r\n const name = _get(pay, \"username\") || `user_${kuid()}`;\r\n const turn_code = _get(pay, \"turnCode\");\r\n const client_info = _omit(rootState.client_data, [\r\n \"token\",\r\n \"extraFields\"\r\n ]);\r\n const results = await join({\r\n title,\r\n name,\r\n turn_code,\r\n session: rootState.sessionMaster,\r\n assistant: {\r\n fullname: name,\r\n session: rootState.sessionMaster,\r\n ...client_info,\r\n version: rootState.version,\r\n turn_code: _get(rootState.turn, \"code\"),\r\n turn_id: _get(rootState.turn, \"id\"),\r\n turn_strings: _get(rootState.turn, \"jsonDetails.turn\"),\r\n branch_id: _get(rootState.turn, \"branch.id\"),\r\n branch_name: _get(rootState.turn, \"branch.name\"),\r\n queue_id: _get(rootState.turn, \"jsonDetails.queue.id\")\r\n },\r\n video_public_path: rootState.client_data.extraFields\r\n ? rootState.client_data.extraFields[0].Videollamada\r\n : null\r\n });\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Meeting.actions. Se realizó la solicitud de videollamada con el servidor.\"\r\n },\r\n { root: true }\r\n );\r\n commit(\"setMeeting\", results.JoinInfo);\r\n if (results.JoinInfo) dispatch(\"startMeeting\", pay);\r\n else throw new Error(\"Meeting was rejected\");\r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Meeting.actions. Error restrictivo. No fue posible establecer la videollamada.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n newerror = error;\r\n }\r\n commit(\"setState\", { key: \"connecting\", value: false });\r\n if (newerror) throw newerror;\r\n },\r\n\r\n async endMeet({ commit }) {\r\n if (!meetingSession) return;\r\n // console.log(\"ending meet with meeting:\", meetingSession);\r\n commit(\"setState\", { key: \"connecting\", value: true });\r\n try {\r\n meetingSession.audioVideo.realtimeUnsubscribeFromReceiveDataMessage(\r\n \"chat\"\r\n );\r\n meetingSession.audioVideo.stop();\r\n // meetingSession.deviceController.destroy();\r\n // FIXME: Require observer to this action https://github.com/aws/amazon-chime-sdk-js#stopping-a-session\r\n } catch (error) {\r\n console.error(\"Canceling meet\", error);\r\n }\r\n },\r\n\r\n async ConfirmedendMeeting({ commit, state }) {\r\n meetingSession = null;\r\n try {\r\n await end({\r\n title: _get(state.meeting, \"Meeting.Meeting.ExternalMeetingId\"),\r\n meetingId: _get(state.meeting, \"Meeting.Meeting.MeetingId\")\r\n });\r\n commit(\"setMeeting\", null);\r\n } catch (error) {\r\n if (window.RB) window.RB.warning(\"Meeting end\", error);\r\n }\r\n commit(\"setState\", { key: \"attendees\", value: [] });\r\n commit(\"setState\", { key: \"videosIds\", value: [] });\r\n commit(\"setState\", { key: \"connecting\", value: false });\r\n commit(\"setState\", { key: \"messages\", value: [] });\r\n commit(\"setState\", { key: \"audioInputDevices\", value: [] });\r\n commit(\"setState\", { key: \"audioOutputDevices\", value: [] });\r\n commit(\"setState\", { key: \"videoInputDevices\", value: [] });\r\n commit(\"setState\", { key: \"videoDevice\", value: null });\r\n commit(\"setState\", { key: \"speakerDevice\", value: null });\r\n commit(\"setState\", { key: \"audioDevice\", value: null });\r\n commit(\"setState\", { key: \"audioEnabled\", value: true });\r\n commit(\"setState\", { key: \"camEnabled\", value: false });\r\n commit(\"setState\", { key: \"speakerEnabled\", value: true });\r\n },\r\n\r\n setAtendeeName({ commit }, value) {\r\n if (typeof value === \"string\") commit(\"setState\", { key: \"myname\", value });\r\n },\r\n\r\n /** chat methods */\r\n sendMessage({ dispatch, state }, { message, local }) {\r\n if (!message || !meetingSession) return;\r\n if (!local)\r\n meetingSession.audioVideo.realtimeSendDataMessage(\"chat\", message);\r\n let dataMessage = {\r\n timestampMs: Date.now(),\r\n senderAttendeeId: meetingSession.configuration.credentials.attendeeId,\r\n senderExternalUserId: state.myname,\r\n text: () => message\r\n };\r\n dispatch(\"chatMessageHandler\", dataMessage);\r\n },\r\n\r\n chatMessageHandler({ commit }, dataMessage) {\r\n if (!meetingSession) return;\r\n let info = {\r\n timestamp: Math.floor(dataMessage.timestampMs),\r\n attendeeName: dataMessage.senderExternalUserId,\r\n isSelf:\r\n dataMessage.senderAttendeeId ===\r\n meetingSession.configuration.credentials.attendeeId,\r\n text: dataMessage.text()\r\n };\r\n commit(\"addMessage\", info);\r\n },\r\n\r\n async sendFile(ctx, payload) {\r\n const results = await sendFile(payload);\r\n return results;\r\n },\r\n\r\n /** Methods of control Meet */\r\n\r\n toogleAudioEnabled({ state, commit }) {\r\n if (\r\n !meetingSession ||\r\n !Array.isArray(state.audioInputDevices) ||\r\n !state.audioInputDevices.length\r\n )\r\n return;\r\n commit(\"setState\", { key: \"audioEnabled\", value: !state.audioEnabled });\r\n if (state.audioEnabled)\r\n meetingSession.audioVideo.realtimeUnmuteLocalAudio();\r\n else meetingSession.audioVideo.realtimeMuteLocalAudio();\r\n },\r\n\r\n toogleSpeakerEnabled({ state, commit, dispatch }) {\r\n if (\r\n !meetingSession ||\r\n !Array.isArray(state.audioOutputDevices) ||\r\n !state.audioOutputDevices.length\r\n )\r\n return;\r\n commit(\"setState\", { key: \"speakerEnabled\", value: !state.speakerEnabled });\r\n if (state.speakerEnabled) dispatch(\"bindAudio\");\r\n else meetingSession.audioVideo.unbindAudioElement();\r\n },\r\n\r\n async changeSpeakerDevice({ state, dispatch }, audio) {\r\n if (\r\n state.speakerDevice &&\r\n audio &&\r\n state.speakerDevice.deviceId &&\r\n audio.deviceId &&\r\n state.speakerDevice.deviceId !== audio.deviceId\r\n ) {\r\n await dispatch(\"selectSpeakerDevice\", audio);\r\n }\r\n },\r\n\r\n async changeVideoDevice({ state, dispatch }, video) {\r\n if (!meetingSession) return;\r\n if (\r\n state.videoDevice &&\r\n video &&\r\n state.videoDevice.deviceId &&\r\n video.deviceId &&\r\n state.videoDevice.deviceId !== video.deviceId\r\n ) {\r\n if (state.camEnabled) meetingSession.audioVideo.stopLocalVideoTile();\r\n await dispatch(\"selectVideoDevice\", video);\r\n if (state.camEnabled) meetingSession.audioVideo.startLocalVideoTile();\r\n }\r\n },\r\n\r\n async changeAudioDevice({ state, dispatch }, audio) {\r\n if (\r\n state.audioDevice &&\r\n audio &&\r\n state.audioDevice.deviceId &&\r\n audio.deviceId &&\r\n state.audioDevice.deviceId !== audio.deviceId\r\n ) {\r\n await dispatch(\"selectAudioDevice\", audio);\r\n }\r\n },\r\n\r\n async startCamera({ dispatch, state }) {\r\n await dispatch(\"checkHabilitiesVideo\");\r\n await dispatch(\"firstVideo\");\r\n if (!state.camEnabled) await dispatch(\"toogleCamEnabled\");\r\n },\r\n\r\n async toogleCamEnabled({ commit, state, dispatch }) {\r\n if (\r\n !meetingSession ||\r\n !Array.isArray(state.videoInputDevices) ||\r\n !state.videoInputDevices.length\r\n )\r\n return;\r\n commit(\"setState\", { key: \"camEnabled\", value: !state.camEnabled });\r\n if (state.camEnabled) {\r\n await dispatch(\"selectVideoDevice\", state.videoDevice);\r\n meetingSession.audioVideo.startLocalVideoTile(); // TODO: Es impartante, es la que arranca el video\r\n } else {\r\n meetingSession.audioVideo.stopLocalVideoTile();\r\n }\r\n },\r\n\r\n /**\r\n * Group of first start of meeting. First meet creation\r\n */\r\n async startMeeting({ commit, dispatch, state }, pay) {\r\n GM.event({\r\n name: \"GTMVideoStartBefore\",\r\n eventCategory: \"Video_Connection\",\r\n eventAction: \"Before_Start\"\r\n });\r\n meetTiming = Date.now();\r\n const logger = new ConsoleLogger(\"MyLogger\", LogLevel.INFO);\r\n const deviceController = new DefaultDeviceController(logger);\r\n\r\n // You need responses from server-side Chime API. See below for details.\r\n const meetingResponse = state.meeting.Meeting.Meeting;\r\n const attendeeResponse = state.meeting.Attendee.Attendee;\r\n const configuration = new MeetingSessionConfiguration(\r\n meetingResponse,\r\n attendeeResponse\r\n );\r\n\r\n // In the usage examples below, you will use this meetingSession object.\r\n meetingSession = new DefaultMeetingSession(\r\n configuration,\r\n logger,\r\n deviceController\r\n );\r\n\r\n // blur video\r\n if(BackgroundBlurVideoFrameProcessor && BackgroundReplacementVideoFrameProcessor){\r\n commit(\"setState\", { key: \"deviceController\", value: deviceController });\r\n commit(\"setState\", { key: \"loggerMeeting\", value: logger });\r\n \r\n const promises = Promise.all([\r\n BackgroundBlurVideoFrameProcessor.isSupported(),\r\n BackgroundReplacementVideoFrameProcessor.isSupported()\r\n ]);\r\n \r\n promises.catch(error => {\r\n console.error(\"BLUR or BG VIDEO FILTER IS NOT SUPPORTED\", error);\r\n });\r\n }\r\n\r\n return (await dispatch(\"checkHabilities\", pay)) && // TODO: Separate it for best performance?\r\n (await dispatch(\"selectFirstMedia\")) &&\r\n (await dispatch(\"observersChangeOfMedia\")) &&\r\n (await dispatch(\"observersGlobal\")) &&\r\n (await dispatch(\"attendeesObservable\"))\r\n ? meetingSession.audioVideo.start()\r\n : null;\r\n },\r\n\r\n async startBlurVideo({ dispatch, commit, state }) {\r\n if (state.isAgent) {\r\n const blurProcessor = await BackgroundBlurVideoFrameProcessor.create();\r\n commit(\"setState\", {\r\n key: \"processors\",\r\n value: [...state.processors, blurProcessor]\r\n });\r\n\r\n dispatch(\"setterController\", true, \"blur\");\r\n }\r\n },\r\n\r\n async startBgVideo({ dispatch, commit, state }, imageBlob) {\r\n if (state.isAgent) {\r\n await dispatch(\"removeVideoFilter\", \"background replacement\");\r\n const bgProcessor = await BackgroundReplacementVideoFrameProcessor.create(\r\n null,\r\n { filterCPUUtilization: 100, imageBlob }\r\n );\r\n console.warn([...state.processors, bgProcessor]);\r\n commit(\"setState\", {\r\n key: \"processors\",\r\n value: [...state.processors, bgProcessor]\r\n });\r\n\r\n dispatch(\"setterController\", true, \"bg\");\r\n }\r\n },\r\n\r\n async removeVideoFilter(\r\n { dispatch, commit, state },\r\n type = \"background blur\"\r\n ) {\r\n if (state.isAgent) {\r\n const newProcessors = state.processors.filter(\r\n item => item.filterType !== type\r\n );\r\n commit(\"setState\", {\r\n key: \"processors\",\r\n value: newProcessors\r\n });\r\n\r\n dispatch(\"setterController\", false, \"blur\");\r\n }\r\n },\r\n\r\n async setterController({ dispatch, commit, state }, value = true, type = \"blur\") {\r\n const transformDevice = new DefaultVideoTransformDevice(\r\n state.loggerMeeting,\r\n state.videoDevice,\r\n state.processors\r\n );\r\n\r\n if (type === \"blur\") {\r\n commit(\"setState\", { key: \"isBlur\", value });\r\n } else {\r\n commit(\"setState\", { key: \"isWithBg\", value });\r\n }\r\n\r\n if(state.deviceController) await state.deviceController.chooseVideoInputDevice(transformDevice);\r\n else setTimeout(() => {\r\n dispatch(\"setterController\", value, type);\r\n }, 2000);\r\n },\r\n\r\n attendeesObservable({ commit, state }) {\r\n if (!meetingSession) return;\r\n meetingSession.audioVideo.realtimeSubscribeToAttendeeIdPresence(\r\n (presentAttendeeId, present) => {\r\n let index = state.attendees.findIndex(elm => elm === presentAttendeeId);\r\n if (present) {\r\n if (index === -1)\r\n commit(\"setState\", {\r\n key: \"attendees\",\r\n value: [...state.attendees, presentAttendeeId]\r\n });\r\n } else {\r\n if (index > -1)\r\n commit(\"setState\", {\r\n key: \"attendees\",\r\n value: state.attendees.filter(elm => elm !== presentAttendeeId)\r\n });\r\n }\r\n if (state.attendees.length > 1)\r\n GM.event({\r\n name: \"GTMVideoMeetAssistants\",\r\n eventCategory: \"Meeting\",\r\n eventAction: \"Assistants_Arrived\"\r\n });\r\n }\r\n );\r\n return true;\r\n },\r\n\r\n async checkHabilities({ commit, state, dispatch }) {\r\n if (!meetingSession) return;\r\n let audioInputDevices = [];\r\n try {\r\n audioInputDevices =\r\n (await meetingSession.audioVideo.listAudioInputDevices()) || [];\r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Meeting.actions. Error no restrictivo. No se puede conectar el micrófono.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n if (window.RB)\r\n window.RB.warning(\"Error when obtain Audio input devices\", error);\r\n }\r\n commit(\"setState\", { key: \"audioInputDevices\", value: audioInputDevices });\r\n let audioOutputDevices = [];\r\n try {\r\n audioOutputDevices =\r\n (await meetingSession.audioVideo.listAudioOutputDevices()) || [];\r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Meeting.actions. Error no restrictivo. No se puede conectar el parlante.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n if (window.RB)\r\n window.RB.warning(\"Error when obtain Audio output devices\", error);\r\n }\r\n commit(\"setState\", {\r\n key: \"audioOutputDevices\",\r\n value: audioOutputDevices\r\n });\r\n if (state.isAgent) await dispatch(\"checkHabilitiesVideo\");\r\n return true;\r\n },\r\n\r\n async selectFirstMedia({ state, dispatch }) {\r\n if (!meetingSession) return;\r\n if (state.isAgent) {\r\n await dispatch(\"firstVideo\");\r\n if (!state.camEnabled) await dispatch(\"toogleCamEnabled\");\r\n }\r\n if (state.audioInputDevices && state.audioInputDevices.length)\r\n await dispatch(\"selectAudioDevice\", state.audioInputDevices[0]);\r\n if (state.audioOutputDevices && state.audioOutputDevices.length)\r\n await dispatch(\"selectSpeakerDevice\", state.audioOutputDevices[0]);\r\n return true;\r\n },\r\n\r\n async checkHabilitiesVideo({ commit, dispatch }) {\r\n meetingSession.audioVideo.chooseVideoInputQuality(320, 180, 15, 150); // Specific modification with Marcelo\r\n let videoInputDevices = [];\r\n try {\r\n videoInputDevices =\r\n (await meetingSession.audioVideo.listVideoInputDevices()) || [];\r\n console.log(\" meetingSession.audioVideo.listVideoInputDevices\");\r\n console.log(videoInputDevices);\r\n\r\n try {\r\n let devicesWin = [];\r\n navigator.mediaDevices.enumerateDevices().then(function(devices) {\r\n for (var i = 0; i < devices.length; i++) {\r\n var device = devices[i];\r\n if (device.kind === \"videoinput\") {\r\n devicesWin.push(device);\r\n }\r\n }\r\n });\r\n console.log(\"devicesWin\");\r\n console.log(devicesWin);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Meeting.actions. Error no restrictivo. No se puede conectar la cámara.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n if (window.RB)\r\n window.RB.warning(\"Error when obtain Video devices\", error);\r\n }\r\n commit(\"setState\", { key: \"videoInputDevices\", value: videoInputDevices });\r\n },\r\n\r\n async firstVideo({ state, dispatch }) {\r\n console.log(\"firstVideo\");\r\n console.log(state);\r\n\r\n if (state.videoInputDevices && state.videoInputDevices.length) {\r\n let videos = state.videoInputDevices;\r\n if (state.configCameras) {\r\n // check config cameras\r\n let kioscos = state.configCameras.kioscos;\r\n let params = state.configCameras.params;\r\n if (kioscos && kioscos[params.branchid]) {\r\n videos = videos.filter(\r\n v =>\r\n !v.label\r\n .toLowerCase()\r\n .includes(\r\n kioscos[params.branchid].cameras?.documents?.toLowerCase()\r\n )\r\n ); //ignore camera scan\r\n videos = videos.filter(v =>\r\n v.label\r\n .toLowerCase()\r\n .includes(\r\n kioscos[params.branchid].cameras?.lateral?.toLowerCase()\r\n )\r\n ); // set default as main camera\r\n } else {\r\n videos = videos.filter(v => !v.label.includes(\"Q800L\")); //ignore camera scan\r\n videos = videos.filter(v => v.label.includes(\"camera b\")); // if exist name camera b is default\r\n }\r\n }\r\n console.log(\"videos:\");\r\n console.log(videos);\r\n const result = await dispatch(\r\n \"selectVideoDevice\",\r\n videos.length > 0 ? videos[0] : state.videoInputDevices[0]\r\n );\r\n if (result) meetingSession.audioVideo.startLocalVideoTile();\r\n }\r\n },\r\n\r\n async selectVideoDevice({ commit, dispatch }, video) {\r\n if (!video || !video.deviceId || !meetingSession) return false;\r\n commit(\"setState\", { key: \"videoDevice\", value: video });\r\n try {\r\n await meetingSession.audioVideo.chooseVideoInputDevice(video.deviceId);\r\n // await meetingSession.audioVideo.startVideoInput(video.deviceId);\r\n return true;\r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Meeting.actions. Error no restrictivo. No se puede seleccionar una cámara.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n if (window.RB)\r\n window.RB.warning(\"Error in selection of video source\", error);\r\n }\r\n return false;\r\n },\r\n\r\n async selectSpeakerDevice({ commit, dispatch }, audio) {\r\n if (!audio || !audio.deviceId || !meetingSession) return false;\r\n commit(\"setState\", { key: \"speakerDevice\", value: audio });\r\n try {\r\n await meetingSession.audioVideo.chooseAudioOutputDevice(audio.deviceId);\r\n return true;\r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Meeting.actions. Error no restrictivo. No se puede seleccionar un parlante.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n if (window.RB)\r\n window.RB.warning(\"Error in selection of audio output source\", error);\r\n }\r\n return false;\r\n },\r\n\r\n async selectAudioDevice({ commit }, audio) {\r\n if (!audio || !audio.deviceId || !meetingSession) return false;\r\n commit(\"setState\", { key: \"audioDevice\", value: audio });\r\n try {\r\n await meetingSession.audioVideo.chooseAudioInputDevice(audio.deviceId);\r\n // await meetingSession.audioVideo.startAudioInput(audio.deviceId);\r\n return true;\r\n } catch (error) {\r\n if (window.RB)\r\n window.RB.warning(\"Error in selection of audio input source\", error);\r\n }\r\n return false;\r\n },\r\n\r\n healthChange({ commit, state }, { bitrateKbps, packetsPerSecond }) {\r\n if (bitrateKbps && bitrateKbps !== state.bitrateKbps)\r\n commit(\"setState\", { key: \"bitrateKbps\", value: bitrateKbps });\r\n if (packetsPerSecond && packetsPerSecond !== state.packetsPerSecond)\r\n commit(\"setState\", { key: \"packetsPerSecond\", value: packetsPerSecond });\r\n },\r\n\r\n bandwidthChange({ commit, state }, { nackCountPerSecond }) {\r\n if (nackCountPerSecond && nackCountPerSecond !== state.nackCountPerSecond)\r\n commit(\"setState\", {\r\n key: \"nackCountPerSecond\",\r\n value: nackCountPerSecond\r\n });\r\n },\r\n\r\n videoStopSuggestion({ commit, state, dispatch }, status) {\r\n if (!state.videoStopSuggestion && status && state.camEnabled) {\r\n commit(\"setState\", {\r\n key: \"stopSuggestionFromActiveCamera\",\r\n value: true\r\n });\r\n // dispatch(\"toogleCamEnabled\");\r\n }\r\n if (\r\n state.videoStopSuggestion &&\r\n !status &&\r\n state.stopSuggestionFromActiveCamera\r\n ) {\r\n // dispatch(\"toogleCamEnabled\");\r\n }\r\n commit(\"setState\", { key: \"videoStopSuggestion\", value: status });\r\n dispatch(\"commonNotification\", \"VideostopSuggestion change detected\");\r\n },\r\n\r\n commonNotification({ state }, message) {\r\n try {\r\n if (window.RB)\r\n window.RB.info(message, {\r\n bitrateKbps: state.bitrateKbps,\r\n connectionIsGood: state.connectionIsGood,\r\n estimatedBandwidth: state.estimatedBandwidth,\r\n requiredBandwidth: state.requiredBandwidth,\r\n videoStopSuggestion: state.videoStopSuggestion\r\n });\r\n } catch (error) {\r\n console.error(\"Rollbar not exist\", error);\r\n }\r\n },\r\n\r\n connectionStatus({ commit, dispatch }, status) {\r\n commit(\"setState\", { key: \"connectionIsGood\", value: status });\r\n dispatch(\"commonNotification\", \"Change health of connection\");\r\n },\r\n\r\n bandwidthRequirements(\r\n { commit, state },\r\n { estimatedBandwidth, requiredBandwidth }\r\n ) {\r\n if (estimatedBandwidth && estimatedBandwidth !== state.estimatedBandwidth)\r\n commit(\"setState\", {\r\n key: \"estimatedBandwidth\",\r\n value: estimatedBandwidth\r\n });\r\n if (requiredBandwidth && requiredBandwidth !== state.requiredBandwidth)\r\n commit(\"setState\", {\r\n key: \"requiredBandwidth\",\r\n value: requiredBandwidth\r\n });\r\n },\r\n\r\n async observersChangeOfMedia() {\r\n if (!meetingSession) return;\r\n const observer = {\r\n audioInputsChanged: freshAudioInputDeviceList => {\r\n // An array of MediaDeviceInfo objects\r\n // TODO: What happend when change devices? It could not to be tested\r\n if (window.RB)\r\n window.RB.info(\"Audio inputs updated\", {\r\n list: JSON.stringify(freshAudioInputDeviceList)\r\n });\r\n freshAudioInputDeviceList.forEach(mediaDeviceInfo => {\r\n console.log(\r\n `Device ID: ${mediaDeviceInfo.deviceId} Microphone: ${mediaDeviceInfo.label}`\r\n );\r\n });\r\n },\r\n audioOutputsChanged: freshAudioOutputDeviceList => {\r\n if (window.RB)\r\n window.RB.info(\"Audio outputs updated\", {\r\n list: JSON.stringify(freshAudioOutputDeviceList)\r\n });\r\n },\r\n videoInputsChanged: freshVideoInputDeviceList => {\r\n if (window.RB)\r\n window.RB.info(\"Video inputs updated\", {\r\n list: JSON.stringify(freshVideoInputDeviceList)\r\n });\r\n }\r\n };\r\n\r\n meetingSession.audioVideo.addDeviceChangeObserver(observer);\r\n return true;\r\n },\r\n\r\n async observersGlobal({ dispatch, state, commit }) {\r\n if (!meetingSession) return;\r\n meetingSession.audioVideo.addObserver({\r\n connectionDidSuggestStopVideo: () =>\r\n dispatch(\"videoStopSuggestion\", true),\r\n connectionDidBecomeGood: () => {\r\n dispatch(\"connectionStatus\", true);\r\n dispatch(\"videoStopSuggestion\", false);\r\n },\r\n estimatedDownlinkBandwidthLessThanRequired: (\r\n estimatedBandwidth,\r\n requiredBandwidth\r\n ) =>\r\n dispatch(\"bandwidthRequirements\", {\r\n estimatedBandwidth,\r\n requiredBandwidth\r\n }),\r\n connectionDidBecomePoor: () => dispatch(\"connectionStatus\", false),\r\n videoSendHealthDidChange: (bitrateKbps, packetsPerSecond) =>\r\n dispatch(\"healthChange\", { bitrateKbps, packetsPerSecond }),\r\n videoSendBandwidthDidChange: (\r\n newBandwidthKbps,\r\n oldBandwidthKbps,\r\n nackCountPerSecond\r\n ) =>\r\n dispatch(\"bandwidthChange\", {\r\n newBandwidthKbps,\r\n oldBandwidthKbps,\r\n nackCountPerSecond\r\n }),\r\n audioVideoDidStart: () => {\r\n GM.event({\r\n name: \"GTMVideoStartOk\",\r\n eventCategory: \"Video_Connection\",\r\n eventAction: \"Started\"\r\n });\r\n GM.event({\r\n name: \"GTMVideoStartTimeOk\",\r\n eventCategory: \"Video_Connection\",\r\n eventAction: \"Started\",\r\n eventValue: Date.now() - meetTiming\r\n });\r\n dispatch(\"bindAudio\");\r\n if (!state.isAgent) commit(\"toogleCamModal\");\r\n else meetingSession.audioVideo.startLocalVideoTile();\r\n },\r\n // audioVideoDidStop: () => dispatch(\"ConfirmedendMeeting\"),\r\n videoTileDidUpdate: tileState => {\r\n // User updates\r\n if (!tileState.tileId) return;\r\n\r\n if (meetingSession) {\r\n // Ignore a tile without attendee ID and videos.\r\n const yourAttendeeId =\r\n meetingSession.configuration.credentials.attendeeId;\r\n\r\n // tileState.boundAttendeeId is formatted as \"attendee-id#content\".\r\n const boundAttendeeId = tileState.boundAttendeeId;\r\n\r\n if (tileState.isContent) {\r\n // Get the attendee ID from \"attendee-id#content\".\r\n const baseAttendeeId = new DefaultModality(boundAttendeeId).base();\r\n if (baseAttendeeId === yourAttendeeId) {\r\n tileState.isMineContent = true;\r\n }\r\n }\r\n const index = state.videosIds.findIndex(\r\n vid => vid.tileId === tileState.tileId\r\n );\r\n if (index > -1)\r\n commit(\"setState\", {\r\n key: \"videosIds\",\r\n value: state.videosIds.map((vid, i) => {\r\n if (i === index) return tileState;\r\n return vid;\r\n })\r\n });\r\n else {\r\n commit(\"setState\", {\r\n key: \"videosIds\",\r\n value: [...state.videosIds, tileState]\r\n });\r\n setTimeout(() => {\r\n // Add video tag correspondence\r\n const videoElement = document.getElementById(\r\n `videouser_${tileState.tileId}`\r\n );\r\n if (!meetingSession) return;\r\n if (!videoElement)\r\n throw new Error(\r\n \"Not exist video element!. Brilliant seek this problem.\" +\r\n JSON.stringify(tileState) +\r\n JSON.stringify(state.videosIds)\r\n );\r\n else\r\n meetingSession.audioVideo.bindVideoElement(\r\n tileState.tileId,\r\n videoElement\r\n );\r\n }, 500);\r\n }\r\n }\r\n },\r\n videoTileWasRemoved: tileId => {\r\n const videoIndex = state.videosIds.findIndex(\r\n elm => elm.tileId === tileId\r\n );\r\n if (videoIndex > -1)\r\n commit(\"setState\", {\r\n key: \"videosIds\",\r\n value: state.videosIds.filter((vid, i) => i !== videoIndex)\r\n });\r\n }\r\n });\r\n /**Chat observer */\r\n meetingSession.audioVideo.realtimeSubscribeToReceiveDataMessage(\r\n \"chat\",\r\n dataMessage => dispatch(\"chatMessageHandler\", dataMessage)\r\n );\r\n return true;\r\n },\r\n\r\n async toogleSharingEnabled({ commit, state }) {\r\n if (!meetingSession) return;\r\n commit(\"setState\", { key: \"sharingEnabled\", value: !state.sharingEnabled });\r\n if (state.sharingEnabled) {\r\n await meetingSession.audioVideo.startContentShareFromScreenCapture();\r\n } else {\r\n await meetingSession.audioVideo.stopContentShare();\r\n }\r\n },\r\n\r\n async bindAudio({ state }) {\r\n if (!meetingSession) return;\r\n meetingSession.audioVideo.bindAudioElement(\r\n document.getElementById(state.audioId)\r\n );\r\n },\r\n\r\n setConfigCameras({ commit }, value) {\r\n commit(\"setState\", { key: \"configCameras\", value: value });\r\n }\r\n\r\n /**End of group of basic meeting */\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport axios from \"axios\";\r\nimport rand from \"randomstring\";\r\nimport {\r\n encryptAES,\r\n decryptAES,\r\n encryptAESWorker,\r\n signRSA\r\n} from \"./encryption\";\r\nimport { getEnvOnly } from \"./Meet\";\r\n\r\nlet publicKey;\r\nlet LlaveAES;\r\nlet Token;\r\nconst rsa = new window.System.Security.Cryptography.RSACryptoServiceProvider(\r\n 4096\r\n);\r\n\r\nfunction getLlavePublica() {\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_SERVER;\r\n if (publicKey) return publicKey;\r\n return axios\r\n .get(`${server}/REST/LlavePublica`)\r\n .then(data => data.data)\r\n .then(pub => {\r\n publicKey = pub;\r\n return pub;\r\n });\r\n}\r\n\r\nasync function autorizar({ TipoIdentificacion, NumeroIdentificacion }) {\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_SERVER;\r\n const keyString = rand.generate(32);\r\n const { data } = await axios.post(\r\n `${server}/REST/Autorizar`,\r\n await signRSA(await getLlavePublica(), {\r\n TipoIdentificacion,\r\n NumeroIdentificacion,\r\n LlaveAES: keyString\r\n })\r\n );\r\n Token = data.token;\r\n LlaveAES = await decryptAES(keyString, data.iv, data.llaveAES);\r\n}\r\n\r\nasync function colmedicaDecode(encoded) {\r\n let ivString = encoded.substr(0, 16);\r\n let encodedString = encoded.substr(16);\r\n const decoded = await decryptAES(LlaveAES, ivString, encodedString);\r\n return decoded;\r\n}\r\n\r\nasync function consultarCliente({ TipoIdentificacion, NumeroIdentificacion }) {\r\n // LF Tested OK\r\n const ivString = rand.generate(16);\r\n const encoded = await encryptAES(\r\n LlaveAES,\r\n ivString,\r\n JSON.stringify({\r\n TipoIdentificacion,\r\n NumeroIdentificacion\r\n })\r\n );\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_SERVER;\r\n return axios\r\n .post(\r\n `${server}/REST/ConsultarCliente`,\r\n {\r\n Data: encoded,\r\n Iv: ivString\r\n },\r\n {\r\n headers: {\r\n Authorization: `Bearer ${Token}`\r\n }\r\n }\r\n )\r\n .then(data => {\r\n console.log(data)\r\n return data.data\r\n } )\r\n .then(enc => colmedicaDecode(enc))\r\n .then(enc => {\r\n console.log(enc)\r\n let c = JSON.parse(enc);\r\n // c.ControlMedicamentos = true;\r\n console.log(c)\r\n console.log(\"----------------------------\")\r\n return c\r\n } );\r\n}\r\n\r\nasync function tiposAutorizacion() {\r\n // LF Tested OK\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_SERVER;\r\n return axios\r\n .get(`${server}/REST/TiposAutorizacion`, {\r\n headers: {\r\n Authorization: `Bearer ${Token}`\r\n }\r\n })\r\n .then(data => data.data)\r\n .then(enc => colmedicaDecode(enc))\r\n .then(enc => JSON.parse(enc));\r\n}\r\n\r\nasync function guardarSolicitud({ ParametroSolicitudCanal, ArchivoSolicitud }) {\r\n // LF Tested OK\r\n const ivString = rand.generate(16);\r\n let dataToSend = JSON.stringify({\r\n ParametroSolicitudCanal,\r\n ArchivoSolicitud\r\n });\r\n console.log(\"dataToSend\")\r\n console.log(dataToSend)\r\n const encoded = await encryptAESWorker(LlaveAES, ivString, dataToSend);\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_SERVER;\r\n return axios\r\n .post(\r\n `${server}/REST/GuardarSolicitud`,\r\n {\r\n Data: encoded,\r\n Iv: ivString\r\n },\r\n {\r\n headers: {\r\n Authorization: `Bearer ${Token}`\r\n }\r\n }\r\n )\r\n .then(data => data.data)\r\n .then(enc => colmedicaDecode(enc))\r\n .then(enc => JSON.parse(enc));\r\n}\r\n\r\nasync function anexarDocumentosSolicitud({ IdSolicitud, ArchivoSolicitud }) {\r\n const encoded = encryptAES({ IdSolicitud, ArchivoSolicitud });\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_SERVER;\r\n return axios\r\n .post(`${server}/REST/AnexarDocumentosSolicitud`, encoded, {\r\n headers: {\r\n Token\r\n }\r\n })\r\n .then(data => data.data); // Continue here. How to decode received?\r\n}\r\n\r\nexport {\r\n autorizar,\r\n consultarCliente,\r\n tiposAutorizacion,\r\n guardarSolicitud,\r\n anexarDocumentosSolicitud\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',{staticClass:\"MainView\"},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('router-view')],1),_c('ModalLogs'),_vm._m(0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dialogdk\",attrs:{\"id\":\"dialogdk\"}},[_c('section',{attrs:{\"id\":\"dialogdkbox\"}})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ModalLogs\"},[_c('b-modal',{staticClass:\"modal-content-dk\",attrs:{\"hide-footer\":\"\",\"no-close-on-backdrop\":\"\",\"centered\":\"\"},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(ref){\nvar close = ref.close;\nreturn [_c('h4',[_vm._v(\"Registro de eventos\")]),_c('div',{staticClass:\"DropDown__Header__title\"},[_c('i',{staticClass:\"fas fa-times\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.showModal(false)}}})])]}}]),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"container\"},_vm._l((_vm.logListMap),function(log,index){return _c('div',{key:index,staticClass:\"DropDown\"},[_c('div',{staticClass:\"DropDown__Header\",on:{\"click\":function () { return _vm.toggleDropDown(index); }}},[_c('div',{staticClass:\"DropDown__Header__title\"},[_c('i',{class:log.checked ? 'fas fa-check CHECK' : 'fas fa-times TIMES'}),_c('h6',[_vm._v(_vm._s(log.name))])]),_c('div',{staticClass:\"DropDown__Header__icon\"},[_c('i',{ref:'iconItem__' + index,refInFor:true,staticClass:\"fas fa-sort-down icon\"})])]),_c('div',{ref:'logItem__' + index,refInFor:true,staticClass:\"DropDown__Body\",staticStyle:{\"display\":\"none\"}},[_c('p',[_vm._v(_vm._s(log.message))])])])}),0),_c('hr'),_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"DropDown\"},[_c('div',{staticClass:\"DropDown__Header\",on:{\"click\":function () { return _vm.toggleDropDownMore(); }}},[_c('div',{staticClass:\"DropDown__Header__title\"},[_c('h6',[_vm._v(\"Datos Vídeo Llamada\")])]),_c('div',{staticClass:\"DropDown__Header__icon\"},[_c('i',{ref:\"iconItem__more\",staticClass:\"fas fa-sort-down icon\"})])]),_c('div',{ref:\"logItem__more\",staticClass:\"DropDown__Body\",staticStyle:{\"display\":\"none\"}},[_c('p',[_c('b',[_vm._v(\"meeting: \")]),_c('pre',[_vm._v(_vm._s(_vm.meeting))])]),_c('p',[_c('b',[_vm._v(\"connecting: \")]),_vm._v(_vm._s(_vm.connecting))]),_c('p',[_c('b',[_vm._v(\"audioId: \")]),_vm._v(_vm._s(_vm.audioId))]),_c('p',[_c('b',[_vm._v(\"audioInputDevices: \")]),_c('pre',[_vm._v(_vm._s(_vm.audioInputDevices))])]),_c('p',[_c('b',[_vm._v(\"audioOutputDevices: \")]),_c('pre',[_vm._v(_vm._s(_vm.audioOutputDevices))])]),_c('p',[_c('b',[_vm._v(\"videoInputDevices: \")]),_c('pre',[_vm._v(_vm._s(_vm.videoInputDevices))])]),_c('p',[_c('b',[_vm._v(\"attendees: \")]),_vm._v(_vm._s(_vm.attendees))]),_c('p',[_c('b',[_vm._v(\"videosIds: \")]),_c('pre',[_vm._v(_vm._s(_vm.videosIds))])]),_c('p',[_c('b',[_vm._v(\"myname: \")]),_vm._v(_vm._s(_vm.myname))]),_c('p',[_c('b',[_vm._v(\"videoDevice: \")]),_c('pre',[_vm._v(_vm._s(JSON.stringify(_vm.videoDevice)))])]),_c('p',[_c('b',[_vm._v(\"speakerDevice: \")]),_c('pre',[_vm._v(_vm._s(JSON.stringify(_vm.speakerDevice)))])]),_c('p',[_c('b',[_vm._v(\"audioDevice: \")]),_c('pre',[_vm._v(_vm._s(JSON.stringify(_vm.audioDevice)))])]),_c('p',[_c('b',[_vm._v(\"audioEnabled: \")]),_vm._v(_vm._s(_vm.audioEnabled))]),_c('p',[_c('b',[_vm._v(\"camEnabled: \")]),_vm._v(_vm._s(_vm.camEnabled))]),_c('p',[_c('b',[_vm._v(\"speakerEnabled: \")]),_vm._v(_vm._s(_vm.speakerEnabled))]),_c('p',[_c('b',[_vm._v(\"bitrateKbps: \")]),_vm._v(_vm._s(_vm.bitrateKbps))]),_c('p',[_c('b',[_vm._v(\"stopSuggestionFromActiveCamera: \")]),_vm._v(_vm._s(_vm.stopSuggestionFromActiveCamera))]),_c('p',[_c('b',[_vm._v(\"packetsPerSecond: \")]),_vm._v(_vm._s(_vm.packetsPerSecond))]),_c('p',[_c('b',[_vm._v(\"nackCountPerSecond: \")]),_vm._v(_vm._s(_vm.nackCountPerSecond))]),_c('p',[_c('b',[_vm._v(\"videoStopSuggestion: \")]),_vm._v(_vm._s(_vm.videoStopSuggestion))]),_c('p',[_c('b',[_vm._v(\"connectionIsGood: \")]),_vm._v(_vm._s(_vm.connectionIsGood))]),_c('p',[_c('b',[_vm._v(\"estimatedBandwidth: \")]),_vm._v(_vm._s(_vm.estimatedBandwidth))]),_c('p',[_c('b',[_vm._v(\"requiredBandwidth: \")]),_vm._v(_vm._s(_vm.requiredBandwidth))]),_c('p',[_c('b',[_vm._v(\"m_allow_video: \")]),_vm._v(_vm._s(_vm.m_allow_video))]),_c('p',[_c('b',[_vm._v(\"sharingEnabled: \")]),_vm._v(_vm._s(_vm.sharingEnabled))]),_c('p',[_c('b',[_vm._v(\"meetingSession: \")]),_vm._v(_vm._s(_vm.meetingSession))]),_c('p',[_c('b',[_vm._v(\"isAgent: \")]),_vm._v(_vm._s(_vm.isAgent))])])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalLogs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalLogs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ModalLogs.vue?vue&type=template&id=457bb529&scoped=true&lang=pug&\"\nimport script from \"./ModalLogs.vue?vue&type=script&lang=js&\"\nexport * from \"./ModalLogs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModalLogs.vue?vue&type=style&index=0&id=457bb529&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"457bb529\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6382ea9e&lang=pug&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import LS from \"../helpers/localStorage\";\r\nimport _get from \"lodash/get\";\r\n\r\nexport default {\r\n setPosition(state, pay) {\r\n state.position = pay;\r\n },\r\n setStarted: (state, pay) => (state.started = pay),\r\n setCoorelation: (state, pay) => (state.turnCoorelation = pay),\r\n setEnvironments: (state, pay) => {\r\n state.env = pay;\r\n if (pay.VUE_APP_ENV) state.environment = pay.VUE_APP_ENV;\r\n },\r\n setState: (state, pay) => {\r\n Object.prototype.hasOwnProperty.call(state, _get(pay, \"key\", \"NA\"))\r\n ? (() => {\r\n let key = _get(pay, \"key\", \"NA\"),\r\n value = _get(pay, \"value\", null);\r\n state[key] = value;\r\n if (key && key !== \"NA\") {\r\n if (value) LS.setItem(key, value);\r\n else LS.removeItem(key);\r\n }\r\n })()\r\n : null;\r\n }\r\n};\r\n","/* eslint-disable no-debugger */\r\nimport {\r\n getBranch,\r\n getCompany,\r\n getEnqueueTurn,\r\n getTurnInfo,\r\n cancelTurn,\r\n getEnvironments,\r\n getEnvOnly,\r\n getCustomersWithTurns\r\n} from \"../helpers/Meet\";\r\nimport axios from \"axios\";\r\nimport kuid from \"kuid\";\r\nimport _get from \"lodash/get\";\r\nimport LS from \"../helpers/localStorage\";\r\nimport { getCorrelation } from \"./../helpers/Meet\";\r\nimport { b64_to_utf8, try_json } from \"@/utils/decoder\";\r\nimport { GTMService as GM } from \"../helpers/gtm.service\";\r\nimport moment from \"moment\";\r\nimport router from '../router'\r\n\r\nexport default {\r\n setViewState({ commit }, value) {\r\n commit(\"setState\", { key: \"pageForeground\", value });\r\n GM.event({\r\n name: value ? \"GTMUserInPage\" : \"GTMUserOutPage\",\r\n eventCategory: \"Page_Vision\",\r\n eventAction: value ? \"Enter\" : \"Leave\"\r\n });\r\n },\r\n async startup({ commit, state, dispatch }, pay = {}) {\r\n if (state.started) return;\r\n commit(\"setEnvironments\", await getEnvironments());\r\n let { session, forced } = pay;\r\n let sessionCode = session || kuid();\r\n if (!GM.checkSession() || forced)\r\n GM.setFirstElementDatalayer({\r\n session_id: sessionCode,\r\n version: state.version,\r\n user_type: LS.getItem(\"user_type\") || \"client\",\r\n user_uuid: window.person.id\r\n });\r\n else GM.replaceSession(sessionCode);\r\n commit(\"setState\", { key: \"sessionMaster\", value: sessionCode });\r\n commit(\"setStarted\", true);\r\n dispatch(\"setLocalization\");\r\n },\r\n async setLocalization({ commit }) {\r\n if (getEnvOnly().VUE_APP_GET_LOCATION !== \"true\") return;\r\n let position;\r\n try {\r\n if (\"geolocation\" in navigator) {\r\n position = await new Promise(res =>\r\n navigator.geolocation.getCurrentPosition(res)\r\n );\r\n commit(\"setPosition\", {\r\n lat: _get(position, \"coords.latitude\"),\r\n long: _get(position, \"coords.longitude\")\r\n });\r\n GM.setVariable({\r\n customLocationGPS: `${_get(position, \"coords.latitude\")},${_get(\r\n position,\r\n \"coords.longitude\"\r\n )}`\r\n });\r\n }\r\n } catch (error) {\r\n console.error(\"Position error\", error);\r\n }\r\n },\r\n getCompany({ commit }, companyName) {\r\n return getCompany(companyName).then(response => {\r\n commit(\"setState\", { key: \"company\", value: response });\r\n return response;\r\n });\r\n },\r\n setTramite({ commit }, value) {\r\n commit(\"setState\", { key: \"tramite_info\", value });\r\n },\r\n setTurnUUID({ commit }, code = null) {\r\n commit(\"setState\", {\r\n key: \"turnUUID\",\r\n value: Math.floor(Date.now() / 1000) + (code || kuid())\r\n });\r\n },\r\n setKiosco({ commit }, value) {\r\n commit(\"setState\", { key: \"fromKiosco46\", value });\r\n },\r\n async getTurn({ commit, dispatch, state }) {\r\n if (!state.tramite_info) {\r\n return Promise.reject(new Error(\"Invalid Tramite\"));\r\n }\r\n let { queueId, branchId, params } = state.tramite_info;\r\n if (state.turn) return dispatch(\"getTurnInfo\", _get(state.turn, \"code\"));\r\n\r\n // check previous turns\r\n let turns = [];\r\n if(!state.fromKiosco46){\r\n\r\n let customer = await getCustomersWithTurns(params.dni)\r\n .then(response => response)\r\n .catch(error => {\r\n console.log(error);\r\n return [];\r\n });\r\n \r\n // if user have before turns\r\n if (customer.length > 0 && !state.fromKiosco46) {\r\n if (customer[0].turns.length > 0) {\r\n if (\r\n customer[0].turns[0].queue.id ==\r\n state.env.VUE_APP_DEBMEDIA_DEFAULT_TRAMITE\r\n ) {\r\n // autorizaciones medicas\r\n if (queueId == state.env.VUE_APP_DEBMEDIA_DEFAULT_TRAMITE) {\r\n // Fetch autorizaciones medicas?\r\n turns =\r\n customer.length > 0\r\n ? customer[0].turns.filter(t => t.queue.id == queueId)\r\n : [];\r\n } else {\r\n // cancel before turn\r\n axios\r\n .post(`/turn/${customer[0].turns[0].code}/cancel`)\r\n .then(response => response.data);\r\n }\r\n } else {\r\n\r\n try {\r\n // check if turns from oficina virtual\r\n let customerTurns = customer[0].turns;\r\n let customerTurnsF = customerTurns.filter(t => {\r\n t.queue?.branch?.label.toString().toLowerCase().includes(\"oficina virtual\")\r\n return t\r\n });\r\n turns = customerTurnsF || [];\r\n } catch (error) {\r\n console.log(\"ERROR\")\r\n console.log(error)\r\n turns = [];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (turns.length > 0 && !state.fromKiosco46) {\r\n console.log(\r\n \"El usuario ya tiene un turno asignado y pendiente de ser atendido\"\r\n );\r\n let response = {\r\n branch: {\r\n id: turns[0].branchId,\r\n label: turns[0].queue.branch\r\n },\r\n code: turns[0].code,\r\n jsonDetails: {\r\n turn: turns[0].letter + turns[0].number,\r\n queue: {\r\n id: turns[0].queue.id,\r\n name: turns[0].queue.name\r\n }\r\n },\r\n finishTime: \"\"\r\n };\r\n commit(\"setState\", {\r\n key: \"time_received_turn\",\r\n value: moment.utc().unix()\r\n });\r\n response.status = \"WAITING_TO_BE_CALLED\";\r\n commit(\"setState\", { key: \"turn\", value: response });\r\n dispatch(\"getTurnInfo\", _get(response, \"code\"));\r\n if (turns[0].extraFields) {\r\n let extraFields = JSON.parse(turns[0].extraFields);\r\n response.extraFields = extraFields.length > 0 ? extraFields[0] : {};\r\n }\r\n // set uuid to coorelation\r\n let UUID = response.extraFields.Videollamada.match(\r\n /(turn_assigner[/A-Z])\\w+/g,\r\n \"\\\\$&\"\r\n );\r\n UUID = UUID[0]?.split(\"/\");\r\n dispatch(\"setTurnUUID\", UUID[1]);\r\n } else {\r\n\r\n // Check schedule\r\n try {\r\n console.log(\"CHECK Schedules\") \r\n console.log(state)\r\n // const branch = _get(\r\n // Object.keys(state.company).filter(\r\n // name => state.company[name].branch_id == \r\n // ),\r\n // \"[0]\"\r\n // );\r\n const branchInfo = await getBranch(state.env.VUE_APP_COMPANY, state.branchInfo.branch_label);\r\n console.log(\"branchInfo\")\r\n console.log(branchInfo)\r\n if (!branchInfo.activeBranch) {\r\n console.error(\"Esta fuera del horario\")\r\n // return this.goToView(\"OutOperations\");\r\n return router.push('/out_of_service');\r\n }\r\n } catch (error) {\r\n console.log(\"ERROR: \");\r\n console.log(error)\r\n }\r\n\r\n // Feth new turn\r\n let promise =\r\n getEnvOnly()?.VUE_APP_DEBQ_DIRECT == \"true\"\r\n ? axios.post(`/queue/${queueId}/branch/${branchId}/enqueue`, params)\r\n : getEnqueueTurn(queueId, branchId, params);\r\n return promise\r\n .then(response =>\r\n getEnvOnly()?.VUE_APP_DEBQ_DIRECT == \"true\" ? response.data : response\r\n )\r\n .then(response => {\r\n commit(\"setState\", {\r\n key: \"time_received_turn\",\r\n value: moment.utc().unix()\r\n });\r\n response.status = \"WAITING_TO_BE_CALLED\";\r\n commit(\"setState\", { key: \"turn\", value: response });\r\n return response;\r\n })\r\n .then(turnInfo => {\r\n dispatch(\"getTurnInfo\", _get(turnInfo, \"code\"));\r\n if (params.extraFields) {\r\n turnInfo.extraFields = params.extraFields[0].Videollamada || {};\r\n }\r\n return turnInfo;\r\n })\r\n .catch(err => {\r\n commit(\"setState\", { key: \"catch_all\", value: err });\r\n throw new Error(err);\r\n });\r\n }\r\n },\r\n async getTurnRequest(__, code) {\r\n return (await axios.get(`/turn/code/${code}`)).data;\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n async getTurnInfo({ commit, state, dispatch }, code) {\r\n let codeToSend = code || _get(state.turn, \"code\");\r\n if (codeToSend) {\r\n let response = _get(state.turn, \"code\")\r\n ? JSON.parse(JSON.stringify(state.turn))\r\n : null;\r\n try {\r\n let prevResponse = response;\r\n response = await getTurnInfo(codeToSend);\r\n commit(\"setState\", {\r\n key: \"error_turn_request_counter\",\r\n value: 0\r\n });\r\n if (_get(response, \"code\") && _get(response, \"jsonDetails\")) {\r\n commit(\"setState\", { key: \"turn\", value: response });\r\n } else {\r\n let errorResp = JSON.stringify(JSON.parse(response));\r\n console.error(\"Corrupted response\", errorResp);\r\n window.RB.error(\"Corrupted response in getTurnInfo\", errorResp);\r\n response = prevResponse;\r\n }\r\n } catch (error) {\r\n console.error(\"Error in query from DebMedia\", error);\r\n commit(\"setState\", { key: \"catch_all\", value: error });\r\n commit(\"setState\", {\r\n key: \"error_turn_request_counter\",\r\n value: state.error_turn_request_counter + 1\r\n });\r\n if (state.error_turn_request_counter % 5 === 0)\r\n window.RB.error(\"Many request has failed in getTurnInfo\", error);\r\n }\r\n clearTimeout(state.turn_timer);\r\n commit(\"setState\", { key: \"turn_timer\", value: null });\r\n let timer = setTimeout(() => dispatch(\"getTurnInfo\", codeToSend), 4000);\r\n commit(\"setState\", { key: \"turn_timer\", value: timer });\r\n return response;\r\n } else {\r\n console.error(\"Polling is forced to stop. Invalid Turn Code.\");\r\n window.RB.error(\r\n \"Polling is forced to stop. Invalid Turn Code.\",\r\n JSON.stringify({ code, turn: _get(state.turn, \"code\") })\r\n );\r\n dispatch(\"cancelTurn\");\r\n return;\r\n }\r\n },\r\n\r\n getTurnCoorelation({ commit }, code) {\r\n console.log(\"GET TURN COORELATION\");\r\n if (!code) return Promise.reject(new Error(\"Invalid Coorelation Code\"));\r\n return getCorrelation(code).then(coorData => {\r\n commit(\"setCoorelation\", coorData);\r\n return coorData;\r\n });\r\n },\r\n\r\n cleanTurn({ commit, state }) {\r\n clearTimeout(state.turn_timer);\r\n commit(\"setState\", { key: \"error_turn_request_counter\", value: 0 });\r\n commit(\"setState\", { key: \"time_received_turn\", value: null });\r\n commit(\"setState\", { key: \"sessionMaster\", value: null });\r\n commit(\"setState\", { key: \"turn_timer\", value: null });\r\n commit(\"setState\", { key: \"tramite_info\", value: null });\r\n commit(\"setState\", { key: \"client_data\", value: {} });\r\n commit(\"setState\", { key: \"turn\", value: null });\r\n commit(\"setState\", { key: \"turnUUID\", value: null });\r\n commit(\"setState\", { key: \"eclient_data\", value: null });\r\n commit(\"setState\", { key: \"dclient_data\", value: null });\r\n LS.removeItem(\"sessionMaster\");\r\n LS.removeItem(\"rawB64\");\r\n LS.removeItem(\"marcacion\");\r\n LS.removeItem(\"token_col\");\r\n LS.removeItem(\"sucursal\");\r\n LS.removeItem(\"tramite\");\r\n LS.removeItem(\"fuente\");\r\n },\r\n\r\n setSessionMaster({ commit }, value) {\r\n commit(\"setState\", { key: \"sessionMaster\", value });\r\n },\r\n\r\n cancelTurn({ dispatch, state }, options) {\r\n let currentTurn, code;\r\n try {\r\n currentTurn = JSON.parse(JSON.stringify(state.turn));\r\n code = _get(currentTurn, \"code\");\r\n } catch (error) {\r\n console.error(\"Turn was canceled before: \" + error);\r\n }\r\n if (!code) return Promise.resolve({ message: \"Turn was canceled before\" });\r\n if (\r\n (options && options.local) ||\r\n (currentTurn &&\r\n (currentTurn.status === \"REVOKED\" ||\r\n currentTurn.status === \"FINALIZED\" ||\r\n currentTurn.status === \"CANCELED_BY_USER\"))\r\n )\r\n return Promise.resolve({});\r\n let promise =\r\n getEnvOnly()?.VUE_APP_DEBQ_DIRECT == \"true\"\r\n ? axios.post(`/turn/${code}/cancel`).then(response => response.data)\r\n : cancelTurn(code);\r\n // clear all\r\n setTimeout(() => {\r\n dispatch(\"cleanTurn\");\r\n }, 1000);\r\n return promise.catch(err => console.error(\"Error in cancel turn\", err));\r\n },\r\n\r\n async verify_client_data({ dispatch }) {\r\n let data = LS.getItem(\"data_b64\") || null;\r\n if (data) await dispatch(\"load_client_data\", data);\r\n },\r\n async load_client_data({ dispatch }, enclient) {\r\n try {\r\n let json_value = try_json(b64_to_utf8(enclient));\r\n if (_get(json_value, \"client.sm\"))\r\n await dispatch(\"startup\", {\r\n session: _get(json_value, \"client.sm\"),\r\n forced: true\r\n });\r\n dispatch(\"feclient_data\", enclient);\r\n dispatch(\"fdclient_data\", json_value);\r\n } catch (error) {\r\n console.error(\"Error in load_client_data\", error);\r\n }\r\n },\r\n // function encrypted client data\r\n feclient_data({ commit }, dt) {\r\n commit(\"setState\", { key: \"eclient_data\", value: dt });\r\n },\r\n // function decrypted client data\r\n fdclient_data({ commit }, dt) {\r\n commit(\"setState\", { key: \"dclient_data\", value: dt });\r\n },\r\n // Set info of branch\r\n setBranchInfo({ commit }, value) {\r\n commit(\"setState\", { key: \"branchInfo\", value });\r\n },\r\n setTimer({ commit, state }) {\r\n if (state.generalTimeout !== null) clearTimeout(state.generalTimeout);\r\n let timeout = setTimeout(\r\n () =>\r\n commit(\"setState\", { key: \"eventTime\", value: state.eventTime + 1 }),\r\n 1000 * state.timer\r\n );\r\n commit(\"setState\", { key: \"removeTimeout\", value: false });\r\n commit(\"setState\", { key: \"generalTimeout\", value: timeout });\r\n },\r\n setGoTime({ commit }, value) {\r\n commit(\"setState\", { key: \"goTime\", value });\r\n },\r\n setTimerModal({ commit, state }, time) {\r\n if (state.generalTimeoutModal !== null)\r\n clearTimeout(state.generalTimeoutModal);\r\n let timeout = setTimeout(\r\n () =>\r\n commit(\"setState\", { key: \"eventTime\", value: state.eventTime + 1 }),\r\n 1000 * time\r\n );\r\n commit(\"setState\", { key: \"removeTimeout\", value: false });\r\n commit(\"setState\", { key: \"generalTimeoutModal\", value: timeout });\r\n },\r\n setTimerAreYouThere({ commit, state }, time = 15000) {\r\n if (state.generalTimeoutAreYouThere !== null)\r\n clearTimeout(state.generalTimeoutAreYouThere);\r\n let timeout = setTimeout(\r\n () =>\r\n commit(\"setState\", { key: \"eventTime\", value: state.eventTime + 1 }),\r\n 1000 * time\r\n );\r\n commit(\"setState\", { key: \"removeTimeout\", value: false });\r\n commit(\"setState\", { key: \"generalTimeoutAreYouThere\", value: timeout });\r\n },\r\n setTimerCounter({ commit, state }) {\r\n if (state.generalTimeoutCounter !== null)\r\n clearTimeout(state.generalTimeoutCounter);\r\n let timeout = setTimeout(\r\n () =>\r\n commit(\"setState\", { key: \"eventTime\", value: state.eventTime + 1 }),\r\n 1000 * state.timerCounter\r\n );\r\n commit(\"setState\", { key: \"removeTimeout\", value: false });\r\n commit(\"setState\", { key: \"generalTimeout\", value: timeout });\r\n },\r\n setTimer3({ commit, state }) {\r\n if (state.generalTimeout3 !== null) clearTimeout(state.generalTimeout3);\r\n let timeout = setTimeout(\r\n () =>\r\n commit(\"setState\", { key: \"eventTime\", value: state.eventTime + 1 }),\r\n 1000 * state.timer3\r\n );\r\n commit(\"setState\", { key: \"removeTimeout3\", value: false });\r\n commit(\"setState\", { key: \"generalTimeout3\", value: timeout });\r\n },\r\n removeTimer({ commit, state }) {\r\n clearTimeout(state.generalTimeout);\r\n commit(\"setState\", { key: \"removeTimeout\", value: true });\r\n },\r\n restart({ commit }, value) {\r\n commit(\"setState\", { key: \"restart\", value });\r\n }\r\n};\r\n","export default {};\r\n","import LS from \"../helpers/localStorage\";\r\nimport kuid from \"kuid\";\r\n\r\nexport default {\r\n env: JSON.parse(JSON.stringify(process.env)),\r\n pageForeground: true,\r\n environment: process.env.VUE_APP_ENV || \"develop\",\r\n version: process.env.PACKAGE_VERSION || \"0\",\r\n sessionMaster: LS.getItem(\"sessionMaster\") || kuid(),\r\n started: false,\r\n company: LS.getItem(\"company\") || null,\r\n client_data: LS.getItem(\"client_data\") || {},\r\n tramite_info: LS.getItem(\"tramite_info\") || null,\r\n turn: LS.getItem(\"turn\") || null,\r\n turnUUID: LS.getItem(\"turnUUID\") || null,\r\n turn_timer: null,\r\n catch_error: null,\r\n max_waiting_time: 20,\r\n time_received_turn: LS.getItem(\"time_received_turn\") || null,\r\n error_turn_request_counter: 0,\r\n branchInfo: LS.getItem(\"branchInfo\") || {},\r\n\r\n // b64 encrypted and decrypted customer data\r\n eclient_data: null,\r\n dclient_data: LS.getItem(\"dclient_data\"),\r\n position: {},\r\n eventTime: 0,\r\n timer: 15,\r\n timer3: 30,\r\n generalTimeoutCounter: 15,\r\n generalTimeout: null,\r\n generalTimeout3: null,\r\n generalTimeoutModal: null,\r\n generalTimeoutAreYouThere: null,\r\n removeTimeout: false,\r\n restart: false,\r\n goTime: false,\r\n turnCoorelation: null,\r\n fromKiosco46: false\r\n};\r\n","/* eslint-disable no-prototype-builtins */\r\nimport LS from \"./../../helpers/localStorage\";\r\n\r\nexport default {\r\n setState: (state, pay) =>\r\n pay &&\r\n typeof pay === \"object\" &&\r\n !Array.isArray(pay) &&\r\n pay.hasOwnProperty(\"key\") &&\r\n pay.hasOwnProperty(\"value\") &&\r\n state.hasOwnProperty(pay.key)\r\n ? (state[pay.key] = pay.value)\r\n : null,\r\n\r\n setMeeting(state, pay) {\r\n LS.setItem(\"meeting\", pay);\r\n state.meeting = pay;\r\n },\r\n\r\n addMessage: (state, message) => {\r\n if (Array.isArray(state.messages) && state.messages.length)\r\n state.messages = [...state.messages, message];\r\n else state.messages = [message];\r\n },\r\n\r\n toogleCamModal(state) {\r\n state.m_allow_video = !state.m_allow_video;\r\n }\r\n};\r\n","export default {};\r\n","import LS from \"./../../helpers/localStorage\";\r\nimport kuid from \"kuid\";\r\n\r\nexport default {\r\n meeting: LS.getItem(\"meeting\"),\r\n connecting: false,\r\n audioId: `audio_${kuid()}`,\r\n audioInputDevices: [],\r\n audioOutputDevices: [],\r\n videoInputDevices: [],\r\n attendees: [],\r\n loggerMeeting: null,\r\n processors: [],\r\n isBlur: false,\r\n isWithBg: false,\r\n deviceController: null,\r\n videosIds: [],\r\n myname: \"\",\r\n // current devices\r\n videoDevice: null,\r\n speakerDevice: null,\r\n audioDevice: null,\r\n // tootles\r\n audioEnabled: true,\r\n camEnabled: false,\r\n speakerEnabled: true,\r\n\r\n // Status info\r\n bitrateKbps: 0,\r\n stopSuggestionFromActiveCamera: false,\r\n packetsPerSecond: 0,\r\n nackCountPerSecond: 0,\r\n videoStopSuggestion: false,\r\n connectionIsGood: true,\r\n estimatedBandwidth: 0,\r\n requiredBandwidth: 0,\r\n\r\n m_allow_video: false,\r\n\r\n sharingEnabled: false,\r\n meetingSession: null,\r\n messages: [],\r\n isAgent: false,\r\n\r\n configCameras: {}\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable no-prototype-builtins */\r\nexport default {\r\n setState: (state, pay) =>\r\n pay &&\r\n typeof pay === \"object\" &&\r\n !Array.isArray(pay) &&\r\n pay.hasOwnProperty(\"key\") &&\r\n pay.hasOwnProperty(\"value\") &&\r\n state.hasOwnProperty(pay.key)\r\n ? (state[pay.key] = pay.value)\r\n : null\r\n};\r\n","import axios from \"axios\";\r\nimport _get from \"lodash/get\";\r\nimport { getEnvOnly } from \"./Meet\";\r\n\r\nclass Recorder {\r\n checkRecorder() {\r\n if (!_get(getEnvOnly(), \"VUE_APP_RECORDER\")) return;\r\n let routeOfCheck = `${getEnvOnly().VUE_APP_RECORDER}/status_call`;\r\n return axios\r\n .get(routeOfCheck)\r\n .then(res => res.data)\r\n .catch(err => console.error(\"Invalid recorder request Status_call\", err)); // TODO: LF... when recorders will be installed, remove catch\r\n }\r\n setTurn(turn_code) {\r\n if (!_get(getEnvOnly(), \"VUE_APP_RECORDER\")) return;\r\n let routeOfCheck = `${getEnvOnly().VUE_APP_RECORDER}/load_call`;\r\n return axios\r\n .post(routeOfCheck, { turn_id: turn_code, client_data: {} })\r\n .then(res => res.data)\r\n .catch(err => console.error(\"Invalid recorder request Load Call\", err)); // TODO: LF... when recorders will be installed, remove catch\r\n }\r\n}\r\n\r\nexport let recorder = new Recorder();\r\n","import { recorder } from \"../../helpers/recorder\";\r\n\r\nexport default {\r\n startCheck({ commit, state }) {\r\n if (state.timer !== null) return;\r\n let timer = setInterval(async () => {\r\n let status = await recorder.checkRecorder();\r\n commit(\"setState\", { key: \"status\", value: status });\r\n }, 2000);\r\n commit(\"setState\", { key: \"timer\", value: timer });\r\n },\r\n\r\n sendTurn(ctx, turn_id) {\r\n return recorder.setTurn(turn_id);\r\n },\r\n\r\n stopCheck({ commit, state }) {\r\n if (state.timer === null) return;\r\n clearInterval(state.timer);\r\n commit(\"setState\", { key: \"timer\", value: null });\r\n commit(\"setState\", { key: \"status\", value: null });\r\n }\r\n};\r\n","export default {};\r\n","export default {\r\n status: null,\r\n timer: null\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\r\nimport _get from \"lodash/get\";\r\n\r\nexport default {\r\n setState: (state, pay) => {\r\n state.hasOwnProperty(_get(pay, \"key\", \"NA\"))\r\n ? (state[_get(pay, \"key\", \"NA\")] = _get(pay, \"value\", null))\r\n : null;\r\n }\r\n};\r\n","const rsa = new window.System.Security.Cryptography.RSACryptoServiceProvider(\r\n 4096\r\n);\r\n\r\nasync function configureRSA(key) {\r\n rsa.FromXmlString(key);\r\n const processedKey = rsa.ExportParameters(false);\r\n rsa.ImportParameters(processedKey);\r\n return rsa;\r\n}\r\n\r\nasync function encryptPublicRSA(key, data) {\r\n const rsa = await configureRSA(key);\r\n const bytes = window.System.Text.Encoding.UTF8.GetBytes(data);\r\n const doOaepPadding = false;\r\n var encryptedBytes = rsa.Encrypt(bytes, doOaepPadding);\r\n return window.System.Convert.ToBase64String(encryptedBytes);\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nasync function signRSA(key, data) {\r\n const Data = await encryptPublicRSA(key, JSON.stringify(data));\r\n return { Data };\r\n}\r\n\r\nasync function aesKey(keyAscii, ivAscii) {\r\n const encoder = new TextEncoder(\"ascii\");\r\n const keyBytes = encoder.encode(keyAscii);\r\n const iv = encoder.encode(ivAscii);\r\n const key = await window.crypto.subtle.importKey(\r\n \"raw\",\r\n keyBytes,\r\n {\r\n name: \"AES-CBC\"\r\n },\r\n false,\r\n [\"encrypt\", \"decrypt\"]\r\n );\r\n return { key, iv };\r\n}\r\n\r\nasync function encryptAES(keyAscii, ivAscii, data) {\r\n const { key, iv } = await aesKey(keyAscii, ivAscii);\r\n const utf8 = new TextEncoder(\"utf8\");\r\n const encrypted = await window.crypto.subtle.encrypt(\r\n {\r\n name: \"AES-CBC\",\r\n iv\r\n },\r\n key,\r\n utf8.encode(data)\r\n );\r\n const buff = new Uint8Array(encrypted);\r\n const str = String.fromCharCode.apply(null, buff);\r\n const result = btoa(str);\r\n return result;\r\n}\r\n\r\nasync function decryptAES(keyAscii, ivAscii, encrypted) {\r\n const utf8 = new TextDecoder(\"utf8\");\r\n const { key, iv } = await aesKey(keyAscii, ivAscii);\r\n const ascii = atob(encrypted);\r\n const asciiBytes = new Uint8Array(ascii.split(\"\").map(c => c.charCodeAt(0)));\r\n const decrypted = await window.crypto.subtle.decrypt(\r\n {\r\n name: \"AES-CBC\",\r\n iv\r\n },\r\n key,\r\n asciiBytes\r\n );\r\n const buff = new Uint8Array(decrypted);\r\n const decoded = utf8.decode(buff);\r\n return decoded;\r\n}\r\n\r\nfunction encryptAESWorker(keyAscii, ivAscii, data) {\r\n return new Promise((res, rej) => {\r\n const aesWk = new Worker(\"./aeswk.js\");\r\n aesWk.onmessage = res;\r\n aesWk.onerror = rej;\r\n aesWk.postMessage({ type: \"encrypt\", keyAscii, ivAscii, data });\r\n }).then(data => data.data);\r\n}\r\n\r\nfunction decryptAESWorker(keyAscii, ivAscii, data) {\r\n return new Promise((res, rej) => {\r\n const aesWk = new Worker(\"./aeswk.js\");\r\n aesWk.onmessage = res;\r\n aesWk.onerror = rej;\r\n aesWk.postMessage({ type: \"decrypt\", keyAscii, ivAscii, data });\r\n }).then(data => data.data);\r\n}\r\n\r\nexport { signRSA, encryptAES, decryptAES, encryptAESWorker, decryptAESWorker };\r\n","import { getToken, getEnvOnly } from \"../../helpers/Meet\";\r\nimport {\r\n autorizar,\r\n consultarCliente,\r\n guardarSolicitud\r\n} from \"../../helpers/colmedica_huella\";\r\nimport _get from \"lodash/get\";\r\n// import { keyBy } from \"lodash\";\r\n\r\nexport default {\r\n goToView({ commit }, value) {\r\n commit(\"setState\", { key: \"view\", value });\r\n },\r\n onStopTimer({ commit }, value) {\r\n commit(\"setState\", { key: \"stopTimer\", value });\r\n },\r\n setService({ commit }, value) {\r\n commit(\"setState\", { key: \"service\", value });\r\n },\r\n setExplanation({ commit }, value) {\r\n commit(\"setState\", { key: \"explanation\", value });\r\n },\r\n setIsCorrect({ commit }, value) {\r\n commit(\"setState\", { key: \"isCorrect\", value });\r\n },\r\n selecteService({ commit }, value) {\r\n commit(\"setState\", { key: \"servicioSelected\", value });\r\n },\r\n captchaValidation({ dispatch, commit, state }) {\r\n if (window.grecaptcha && window.grecaptcha.ready) {\r\n return new Promise((res, rej) => {\r\n window.grecaptcha.ready(() => {\r\n window.grecaptcha\r\n .execute(getEnvOnly().VUE_APP_RECAPTCHA_CODE, {\r\n action: \"submit_identification\"\r\n })\r\n .then(token =>\r\n getToken(token, \"g_recaptcha_v3\", {\r\n bunitId: getEnvOnly().VUE_APP_BUNIT\r\n })\r\n )\r\n .then(() => res())\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in recaptcha request.\");\r\n rej(err);\r\n });\r\n });\r\n // throw new Error('aska');\r\n })\r\n .then(() => true)\r\n .catch(error => {\r\n console.error(error);\r\n dispatch(\"goToView\", \"ErrorAutenticateVal\");\r\n });\r\n }\r\n return Promise.reject(new Error(\"Recaptcha is not ready\"));\r\n },\r\n demoValidation({ commit, dispatch, state }, number_id) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n return dispatch(\"captchaValidation\")\r\n .then(\r\n () =>\r\n new Promise(res => {\r\n setTimeout(res, 2000);\r\n // throw new Error(\"Blña\");\r\n })\r\n )\r\n .then(() => {\r\n let client = state.test_users.find(\r\n u => u.NumeroIdentificacion == number_id\r\n );\r\n if (!client || (client && !client.NumeroIdentificacion)) {\r\n dispatch(\"goToView\", \"NewUser\");\r\n commit(\"setState\", {\r\n key: \"client\",\r\n value: {\r\n NumeroIdentificacion: number_id\r\n }\r\n });\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n } else {\r\n commit(\"setState\", {\r\n key: \"client\",\r\n value: client\r\n });\r\n dispatch(\"goToView\", \"VerificationData\");\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n }\r\n\r\n })\r\n .catch(err => {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\"Error cached in Autenticate.vue -> demoValidation\", err);\r\n dispatch(\"goToView\", \"ErrorAutenticateVal\");\r\n });\r\n },\r\n async authAndQueryColmedica({ commit, dispatch }, pay) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n try {\r\n \r\n const data = await dispatch(\"captchaValidation\");\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name: \"Autoservice.actions. El captcha se validó bien.\"\r\n },\r\n { root: true }\r\n );\r\n if (data) {\r\n await dispatch(\"autorizacionColmedica\", pay);\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Autoservice.actions. La verificación del usuario fue correcta.\"\r\n },\r\n { root: true }\r\n );\r\n dispatch(\"consultaClienteColmedica\", pay);\r\n }\r\n\r\n dispatch(\"goToView\", \"VerificationData\");\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n \r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name: \"Autoservice.actions. Falló la autenticación del usuario.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n console.error(\"ERROR\", error);\r\n return;\r\n }\r\n },\r\n autorizacionColmedica({ commit, dispatch, state }, pay) {\r\n return autorizar({\r\n TipoIdentificacion: pay.ti,\r\n NumeroIdentificacion: pay.nu\r\n }).catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in autorizacion colmedica.\");\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\r\n \"Error cached in Autenticate.vue -> authAndQueryColmedica\",\r\n err\r\n );\r\n commit(\"setState\", { key: \"showModalError\", value: true });\r\n throw err;\r\n });\r\n },\r\n consultaClienteColmedica({ commit, dispatch, state }, pay) {\r\n let dataClient = {\r\n TipoIdentificacion: pay.ti,\r\n NumeroIdentificacion: pay.nu\r\n };\r\n return consultarCliente(dataClient)\r\n .then(client =>\r\n commit(\"setState\", {\r\n key: \"client\",\r\n value: { ...dataClient, ...client }\r\n })\r\n )\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in autorizacion colmedica.\");\r\n throw err;\r\n });\r\n },\r\n guardarSolicitudDemo({ commit }) {\r\n return new Promise(res => setTimeout(res, 2000))\r\n .then(() => \"123456789\")\r\n .then(value => {\r\n commit(\"setState\", {\r\n key: \"colmedicaRequest\",\r\n value\r\n });\r\n return value;\r\n });\r\n },\r\n guardarSolicitudColmedica({ state, commit }) {\r\n\r\n console.log(\"state\")\r\n console.log(state)\r\n let b64final = state.b64final;\r\n\r\n let canals = {\r\n \"ad\": 6, // 6: QR\r\n \"web\": 7, // 7: QR Of. Virtual Web\r\n \"oa\": 8, // Of. Virtual Adulto Mayor\r\n }\r\n console.log(\"Object.keys(canals)\")\r\n console.log(Object.keys(canals))\r\n console.log(b64final.fu)\r\n console.log(Object.keys(canals).filter(c=> b64final.fu.includes(c)))\r\n console.log(Object.keys(canals).filter(c=> b64final.fu.includes(c))[0])\r\n console.log(canals[Object.keys(canals).filter(c=> b64final.fu.includes(c))[0]])\r\n \r\n let toSend = {\r\n ParametroSolicitudCanal: {\r\n CanalIngreso: canals[Object.keys(canals).filter(c=> b64final.fu.includes(c))[0]] || canals['ad'], \r\n DescripcionCanal: \"Descripcion Canal\",\r\n\r\n Identificacion: `${_get(state.b64final, \"ti\") || \"\"}${_get(\r\n state.b64final,\r\n \"nu\"\r\n ) || \"\"}`,\r\n\r\n NombreUsuario: `${_get(state.client, \"Nombres\") || \"\"} ${_get(\r\n state.client,\r\n \"PrimerApellido\"\r\n ) || \"\"} ${_get(state.client, \"SegundoApellido\") || \"\"}`.trim(),\r\n\r\n CorreoElectronico: _get(state.client, \"Correo\") || \"\",\r\n TelefonoCelular: _get(state.client, \"Celular\") || \"\",\r\n TipoAutorizacionId: _get(state.servicioSelected, \"code\")\r\n },\r\n ArchivoSolicitud: state.files.map(file => ({\r\n Archivo: _get(file, \"info.b64\"),\r\n NombreArchivo: _get(file, \"info.name\")\r\n }))\r\n };\r\n return guardarSolicitud(toSend).then(data => {\r\n let value = _get(data, \"RespuestaSolicitud.IdSolicitud\");\r\n commit(\"setState\", {\r\n key: \"colmedicaRequest\",\r\n value\r\n });\r\n return value;\r\n });\r\n },\r\n errorValidationTemporizer({ commit, state }) {\r\n if (state.errorValidationTemporizer !== null)\r\n clearTimeout(state.errorValidationTemporizer);\r\n if (!state.validationErrors.length) return;\r\n let timer = setTimeout(() => {\r\n commit(\"setState\", { key: \"validationErrors\", value: [] });\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: null });\r\n }, 5000);\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: timer });\r\n },\r\n\r\n updateB64Final({ commit, state }, value) {\r\n let currentState = state.b64final;\r\n commit(\"setState\", {\r\n key: \"b64final\",\r\n value: Object.assign({}, currentState, value)\r\n });\r\n },\r\n\r\n // functions documents\r\n clearDocs({ commit }) {\r\n commit(\"setState\", { key: \"files\", value: [] });\r\n },\r\n removeFile({ state, commit }, keyIndex) {\r\n let currentFiles = state.files;\r\n currentFiles.splice(keyIndex, 1);\r\n commit(\"setState\", { key: \"files\", value: currentFiles });\r\n },\r\n addFile({ state, commit }, file) {\r\n let currentFiles = state.files;\r\n currentFiles.push(file);\r\n commit(\"setState\", { key: \"files\", value: currentFiles });\r\n },\r\n setHorarioOutContinue({ commit }, value) {\r\n commit(\"setState\", { key: \"HorarioOutContinue\", value });\r\n },\r\n setClient({ commit }, data) {\r\n commit(\"setState\", {\r\n key: \"client\",\r\n value: data\r\n });\r\n },\r\n fetchTurnData({ commit }, code) {\r\n return new Promise(resolve => {\r\n getToken().then(key => {\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"authorization\", key);\r\n myHeaders.append(\"x-api-key\", getEnvOnly().VUE_APP_AWS_API_KEY);\r\n\r\n var requestOptions = {\r\n method: \"GET\",\r\n headers: myHeaders,\r\n redirect: \"follow\"\r\n };\r\n\r\n fetch(\r\n getEnvOnly().VUE_APP_AWS_API_URL + \"/turn_info/\" + code,\r\n requestOptions\r\n )\r\n .then(response => response.text())\r\n .then(result => {\r\n let res = JSON.parse(result);\r\n commit(\"setState\", { key: \"turn_from_code\", value: res.data });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n commit(\"setState\", { key: \"loading\", value: {} });\r\n resolve(error);\r\n });\r\n });\r\n });\r\n }\r\n};\r\n","import axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport rand from \"randomstring\";\r\nimport { encryptAES, decryptAES, signRSA } from \"./encryption\";\r\nimport { getEnvOnly } from \"./Meet\";\r\n\r\nlet publicKey;\r\nlet LlaveAES;\r\nlet Token;\r\n\r\nfunction getLlavePublica() {\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_FV_SERVER;\r\n if (publicKey) return publicKey;\r\n return axios\r\n .get(`${server}/login/llavepublica`)\r\n .then(data => data.data)\r\n .then(pub => {\r\n publicKey = pub;\r\n return pub;\r\n });\r\n}\r\n\r\nasync function colmedicaDecode(encoded) {\r\n let ivString = encoded.substr(0, 16);\r\n let encodedString = encoded.substr(16);\r\n const decoded = await decryptAES(LlaveAES, ivString, encodedString);\r\n console.log(decoded)\r\n return decoded;\r\n}\r\n\r\nasync function autorizar({\r\n // LF Tested OK 21-01-20\r\n TipoIdentificacion,\r\n NumeroIdentificacion,\r\n CodigoOficina\r\n}) {\r\n const keyString = rand.generate(32);\r\n const enc = await signRSA(await getLlavePublica(), {\r\n TipoIdentificacion,\r\n NumeroIdentificacion,\r\n CodigoOficina,\r\n Key: keyString\r\n });\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_FV_SERVER;\r\n const { data } = await axios.post(`${server}/login/autorizar`, {\r\n mensaje: enc.Data\r\n });\r\n\r\n LlaveAES = keyString;\r\n\r\n let results = await colmedicaDecode(data);\r\n\r\n console.log(results)\r\n\r\n results = JSON.parse(results);\r\n if (results.Resultado === 1) {\r\n Token = results.Token;\r\n LlaveAES = results.LlaveAes;\r\n } else {\r\n console.error(\"Invalid site auth\", results);\r\n throw new Error(\"Invalid Authorization in Huella FV\");\r\n }\r\n}\r\n\r\nasync function enOficina() {\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_FV_SERVER;\r\n return axios\r\n .post(`${server}/cliente/oficina`, undefined, {\r\n headers: {\r\n Authorization: `Bearer ${Token}`\r\n }\r\n })\r\n .then(data => data.data)\r\n .then(enc => colmedicaDecode(enc))\r\n .then(enc => JSON.parse(enc));\r\n}\r\n\r\nasync function enCentroMedico() {\r\n // LF Tested 21-01-21\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_FV_SERVER;\r\n return axios\r\n .post(`${server}/cliente/centromedico`, undefined, {\r\n headers: {\r\n Authorization: `Bearer ${Token}`\r\n }\r\n })\r\n .then(data => data.data)\r\n .then(enc => colmedicaDecode(enc))\r\n .then(enc => JSON.parse(enc));\r\n}\r\n\r\nasync function citas() {\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_FV_SERVER;\r\n return axios\r\n .post(`${server}/cliente/citas`, undefined, {\r\n headers: {\r\n Authorization: `Bearer ${Token}`\r\n }\r\n })\r\n .then(data => data.data)\r\n .then(enc => colmedicaDecode(enc))\r\n .then(enc => JSON.parse(enc))\r\n .then(citas => {\r\n console.log('citas')\r\n console.log(citas)\r\n return citas.map(cita => ({\r\n ...cita,\r\n idCita: cita.IdCita,\r\n Fecha: moment(cita.Fecha).format(\"YYYY-MM-DD h:mm a\")\r\n }))\r\n }\r\n\r\n );\r\n}\r\n\r\nasync function validarPago({ idCita }) {\r\n const server = getEnvOnly()?.VUE_APP_HUELLA_FV_SERVER;\r\n const ivString = rand.generate(16);\r\n const encoded = await encryptAES(\r\n LlaveAES,\r\n ivString,\r\n JSON.stringify({\r\n idCita\r\n })\r\n );\r\n return axios\r\n .post(\r\n `${server}/cliente/validarpagocita`,\r\n {\r\n mensaje: encoded,\r\n iv: ivString\r\n },\r\n {\r\n headers: {\r\n Authorization: `Bearer ${Token}`\r\n }\r\n }\r\n )\r\n .then(data => data.data)\r\n .then(enc => colmedicaDecode(enc))\r\n .then(enc => JSON.parse(enc));\r\n}\r\n\r\nexport { autorizar, enCentroMedico, enOficina, citas, validarPago };\r\n","export default {};\r\n","import { getEnvOnly } from \"../../helpers/Meet\";\r\n\r\nexport default {\r\n view: \"TurnChecker\",\r\n HorarioOutContinue: false,\r\n // autenticacion\r\n charging: false,\r\n servicioSelected: null,\r\n validationErrors: [],\r\n client: null,\r\n service: \"\",\r\n errorValidationTemporizer: null,\r\n explanation: true,\r\n isCorrect: false,\r\n showModalError: false,\r\n stopTimer: false,\r\n servicesAvailable: [\r\n {\r\n label: \"Exámenes diagnósticos (Laboratorios o Imágenes Diagnosticas)\",\r\n code_name: \"examenes_diagnosticos\",\r\n code: 1\r\n },\r\n {\r\n label: \"Procedimientos quirúrgicos\",\r\n code_name: \"procedimientos_quirurgicos\",\r\n code: 2\r\n },\r\n {\r\n label: \"Otros servicios\",\r\n code_name: \"otros_servicios\",\r\n code: 3\r\n }\r\n ],\r\n tipide: [\r\n { value: \"AS\", text: \"Adulto Sin Identificación\" },\r\n { value: \"CC\", text: \"Cédula de Ciudadanía\" },\r\n { value: \"CD\", text: \"Carné Diplomático\" },\r\n { value: \"CE\", text: \"Cedula de Extranjería\" },\r\n { value: \"CN\", text: \"Certificado de Nacido Vivo\" },\r\n { value: \"CO\", text: \"Código\" },\r\n { value: \"MS\", text: \"Menor Sin Identificación\" },\r\n { value: \"NI\", text: \"N.I.T.\" },\r\n { value: \"PA\", text: \"Pasaporte\" },\r\n { value: \"PE\", text: \"Permanencia Especial\" },\r\n { value: \"PT\", text: \"Permiso Protección Temporal\" },\r\n { value: \"RC\", text: \"Registro Civil\" },\r\n { value: \"RU\", text: \"Reg. Único de Contribuyentes.\" },\r\n { value: \"SC\", text: \"Salvoconducto De Permanencia\" },\r\n { value: \"TE\", text: \"Tarjeta de Extranjería\" },\r\n { value: \"TI\", text: \"Tarjeta Identidad\" }\r\n ],\r\n\r\n // documents\r\n files: [],\r\n colmedicaRequest: null,\r\n\r\n // B64 - enviado a bsix\r\n b64final: {\r\n ti: \"\",\r\n nu: \"\",\r\n ma: \"\",\r\n na: \"\",\r\n ap: \"\",\r\n tr: getEnvOnly().VUE_APP_DEBMEDIA_DEFAULT_TRAMITE,\r\n so: \"\",\r\n fu: \"ad\",\r\n em: \"\",\r\n ce: \"\",\r\n to: \"\",\r\n su: getEnvOnly().VUE_APP_DEBMEDIA_DEFAULT_BRANCH\r\n },\r\n turn_from_code: {},\r\n test_users: [\r\n {\r\n NumeroIdentificacion: 1033724553,\r\n Celular: \"3017076719\",\r\n Correo: \"oscar.jimenez@brilliant360.net\",\r\n Nombres: \"Oscar\",\r\n PrimerApellido: \"Jimenez\",\r\n Resultado: 1,\r\n SegundoApellido: \"DEMO\",\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n NumeroIdentificacion: 1000778041,\r\n Celular: \"3154494547\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Derek\",\r\n PrimerApellido: \"Paul\",\r\n Resultado: 1,\r\n SegundoApellido: \"DEMO\"\r\n },\r\n {\r\n NumeroIdentificacion: 1073519274,\r\n Celular: \"3164960387\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Maria Paz\",\r\n PrimerApellido: \"Espejo\",\r\n Resultado: 1,\r\n SegundoApellido: \"DEMO\"\r\n },\r\n {\r\n NumeroIdentificacion: 1019140052,\r\n Celular: \"3227466696\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Marcela\",\r\n PrimerApellido: \"Riascos\",\r\n Resultado: 1,\r\n SegundoApellido: \"DEMO\"\r\n },\r\n {\r\n NumeroIdentificacion: 53038862,\r\n Celular: \"3182404149\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Paola\",\r\n PrimerApellido: \"Torres\",\r\n Resultado: 1,\r\n SegundoApellido: \"DEMO\"\r\n } \r\n ]\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\r\nimport _get from \"lodash/get\";\r\n\r\nexport default {\r\n setState: (state, pay) => {\r\n state.hasOwnProperty(_get(pay, \"key\", \"NA\"))\r\n ? (state[_get(pay, \"key\", \"NA\")] = _get(pay, \"value\", null))\r\n : null;\r\n }\r\n};\r\n","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: true,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 10:00 am\",\r\n idCita: 123456,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 2:00 pm\",\r\n idCita: 123457,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-16 10:00 am\",\r\n idCita: 123458,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-17 10:00 am\",\r\n idCita: 123459,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-18 10:00 am\",\r\n idCita: 123460,\r\n EnCentroMedico: false\r\n }\r\n];\r\n","export default {\r\n bad: [\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Su cita no tiene un pago asociado. Por favor espere ser llamado en la recepción, para confirmar los datos.\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Ya ha pasado la hora de la cita, por favor agende una nueva cita\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ],\r\n good: [\r\n {\r\n IdPaso: 1,\r\n DescripcionPaso:\r\n \"Su registro ha sido exitoso, por favor diríjase al PISO XXX SALA YYY CONSULTORIO N y espere el llamado del profesional para su cita de ESPECIALIDAD\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: 2,\r\n DescripcionPaso:\r\n \"Su soporte de pago será enviado al correo electrónico registrado\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ]\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport {\r\n getToken,\r\n getQueues,\r\n getStyles,\r\n getEnvOnly,\r\n getMenus,\r\n sendRecords,\r\n tracking\r\n} from \"../../helpers/Meet\";\r\nimport {\r\n autorizar,\r\n citas,\r\n enCentroMedico,\r\n enOficina,\r\n validarPago\r\n} from \"../../helpers/colmedica_fila_virtual\";\r\nimport _get from \"lodash/get\";\r\nimport LS from \"../../helpers/localStorage\";\r\n\r\n/**\r\n * Data for demo porpouses\r\n */\r\nimport CentroDemo from \"./CentroDemo\";\r\nimport OficinaDemo from \"./OficinaDemo\";\r\nimport CitasDemo from \"./CitasDemo\";\r\nimport ValPagoDemo from \"./ValidarpagocitaDemo\";\r\n\r\nexport default {\r\n changeAuth({ commit }, value) {\r\n commit(\"setState\", { key: \"showAuth\", value });\r\n },\r\n\r\n setCustomArea({ commit }, value) {\r\n commit(\"setState\", { key: \"customArea\", value });\r\n },\r\n\r\n setUserActionDate({ commit },value){\r\n commit(\"setState\", { key: \"userActionDate\", value });\r\n },\r\n\r\n async getSites({ commit }) {\r\n const sites = await getQueues();\r\n if (sites && sites.length)\r\n commit(\"setState\", { key: \"sites\", value: sites });\r\n },\r\n\r\n async getStyles({ commit }) {\r\n try {\r\n const styles = await getStyles();\r\n commit(\"setState\", {\r\n key: \"primaryColorBlue\",\r\n value: styles?.bsix_client?.companyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"secondColorBlue\",\r\n value: styles?.bsix_client?.secondaryCompanyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"threeColorBlueColor\",\r\n value: styles?.bsix_client?.contrastTextColor\r\n });\r\n } catch (error) {\r\n console.error(\"Cant get Styles\", error);\r\n }\r\n },\r\n\r\n async getMenus({ commit }, { code, area }) {\r\n const { menu, actions, customMenu } = await getMenus(code);\r\n commit(\"setState\", { key: \"menu\", value: customMenu[area] || menu });\r\n commit(\"setState\", { key: \"actions\", value: actions });\r\n },\r\n\r\n goToView({ commit, state, dispatch }, { view }) {\r\n if (state.isAtril) {\r\n dispatch(\"setTimer\", true, { root: true });\r\n }\r\n commit(\"setState\", { key: \"view\", value: view });\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.push(view);\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n },\r\n\r\n setExplanation({ commit }, value) {\r\n commit(\"setState\", { key: \"explanation\", value });\r\n },\r\n\r\n selecteService({ commit }, value) {\r\n commit(\"setState\", { key: \"servicioSelected\", value });\r\n },\r\n\r\n goBack({ commit, state }) {\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.pop();\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n commit(\"setState\", {\r\n key: \"view\",\r\n value: state.history[state.history.length - 1]\r\n });\r\n },\r\n\r\n async setCitaCM({ commit, dispatch, state }, value) {\r\n\r\n // Lf Tested 21-01-21\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"citaActual\", value });\r\n commit(\"setState\", { key: \"currentValidation\", value: [] });\r\n try {\r\n const validation = (await dispatch(\"getCitaValidation\", value)).sort(\r\n (a, b) => a.Orden - b.Orden\r\n );\r\n dispatch(\"setTimer\", true, { root: true });\r\n commit(\"setState\", { key: \"currentValidation\", value: validation });\r\n if (validation.length) {\r\n if (validation[0]?.IdPaso > -1) {\r\n dispatch(\"goToView\", { view: \"Pay\" });\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n value.r();\r\n return;\r\n } else if (validation[0]?.IdPaso === -1) {\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value:\r\n state.menu[0] && state.menu[0].children // TODO: Only 2 levels. If require multilevel, fix it with a recursive function\r\n ? state.menu[0].children[0]\r\n : state.menu[0]\r\n });\r\n }\r\n }\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n dispatch(\"turnCall\", true);\r\n value.r();\r\n return;\r\n } catch (error) {\r\n console.error(\"In setCitaCM action\", error);\r\n }\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value:\r\n state.menu[0] && state.menu[0].children // TODO: Only 2 levels. If require multilevel, fix it with a recursive function\r\n ? state.menu[0].children[0]\r\n : state.menu[0]\r\n });\r\n dispatch(\"goToView\", { view: \"Normativity\" });\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n value.r();\r\n return;\r\n },\r\n\r\n setAction({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"selectedAccion\", value });\r\n if (value?.evaluationComponent)\r\n return dispatch(\"goToView\", { view: value.evaluationComponent });\r\n if (value?.ignorePriority) dispatch(\"goToView\", { view: \"Turn\" });\r\n else dispatch(\"goToView\", { view: \"Normativity\" });\r\n },\r\n\r\n confirmedAction({ state, commit, dispatch }) {\r\n // / state.selectedaction tiene ignorePriority?\r\n if (state.selectedAccion?.ignorePriority)\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n else dispatch(\"goToView\", { view: \"Normativity\" });\r\n },\r\n\r\n turnCall({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"priority\", value });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n },\r\n\r\n async getCitaValidation(ctx, { idCita }) {\r\n let toReturn = [];\r\n if (getEnvOnly().VUE_APP_DEMO_MODE === \"true\") {\r\n if (idCita === 123456) return ValPagoDemo.good;\r\n else ValPagoDemo.bad;\r\n } else {\r\n try {\r\n toReturn = await validarPago({ idCita });\r\n } catch (error) {\r\n console.error(\"In getCitaValidation\", error);\r\n }\r\n }\r\n return toReturn;\r\n },\r\n\r\n captchaValidation({ dispatch, commit, state }) {\r\n if (window.grecaptcha && window.grecaptcha.ready) {\r\n return new Promise((res, rej) => {\r\n window.grecaptcha.ready(() => {\r\n window.grecaptcha\r\n .execute(getEnvOnly().VUE_APP_RECAPTCHA_CODE, {\r\n action: \"submit_identification\"\r\n })\r\n .then(token =>\r\n getToken(token, \"g_recaptcha_v3\", {\r\n bunitId: getEnvOnly().VUE_APP_BUNIT\r\n })\r\n )\r\n .then(() => res())\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in recaptcha request.\");\r\n rej(err);\r\n });\r\n }); //\r\n // throw new Error('X ERROR');\r\n }).catch(err => {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\"Error cached in Autenticate.vue -> demoValidation\", err);\r\n dispatch(\"goToView\", { view: \"ErrorAutenticate\" });\r\n });\r\n }\r\n return Promise.reject(new Error(\"Recaptcha is not ready\"));\r\n },\r\n\r\n async authenticate({ dispatch, commit, state }, toSend) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"error\", value: null });\r\n let nextComponent = {\r\n view: \"ErrorAutenticate\"\r\n };\r\n try {\r\n if (!state.isAtril) await dispatch(\"captchaValidation\");\r\n try {\r\n await dispatch(\r\n getEnvOnly().VUE_APP_DEMO_MODE === \"true\"\r\n ? \"demoValidation\"\r\n : \"authAndQuery\",\r\n toSend\r\n );\r\n nextComponent.view =\r\n state.citas && state.citas.length ? \"Quote\" : \"NoDate\";\r\n } catch (error) {\r\n console.error(\"Error in authorization\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: {\r\n zone: \"authorization\",\r\n message: \"El usuario no se encuentra registrado en el sistema\"\r\n }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n nextComponent.view = \"Help\";\r\n }\r\n } catch (error) {\r\n console.error(\"Error in Captcha\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: { zone: \"recaptcha\", message: \"La validación del captcha falló\" }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n }\r\n dispatch(\"goToView\", nextComponent);\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n },\r\n\r\n async demoValidation({ commit, state }, toSend) {\r\n let userfinded = state.userDemo.find(\r\n usr => usr.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n await new Promise(res => setTimeout(res, 2000));\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n if (!userfinded) throw new Error(\"Invalid demo User\");\r\n let originFinded = (state.currentSite?.type === \"cm\"\r\n ? CentroDemo\r\n : OficinaDemo\r\n ).find(\r\n cm =>\r\n cm.TipoIdentificacion == toSend?.TipoIdentificacion &&\r\n cm.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n if (!originFinded) throw new Error(\"User not have meetings\");\r\n toSend = { ...toSend, ...originFinded };\r\n if (\r\n state.currentSite?.type === \"cm\" &&\r\n toSend.NumeroIdentificacion === \"789\"\r\n )\r\n commit(\"setState\", { key: \"citas\", value: CitasDemo });\r\n else commit(\"setState\", { key: \"citas\", value: [] });\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n },\r\n\r\n async authAndQuery({ state, commit }, pay) {\r\n try {\r\n // Check Company\r\n await autorizar({\r\n TipoIdentificacion: pay.TipoIdentificacion,\r\n NumeroIdentificacion: pay.NumeroIdentificacion,\r\n CodigoOficina: pay.CodigoOficina\r\n });\r\n\r\n const inSite = await (state.currentSite?.type === \"cm\"\r\n ? enCentroMedico\r\n : enOficina)();\r\n commit(\"setState\", { key: \"citas\", value: [] });\r\n if (state.currentSite?.type === \"cm\") {\r\n const citasList = await citas();\r\n console.log(\"citasList\")\r\n console.log(citasList)\r\n commit(\"setState\", { key: \"citas\", value: citasList });\r\n }\r\n commit(\"setState\", {\r\n key: \"currentUser\",\r\n value: { ...pay, ...inSite }\r\n });\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n handleSendRecords({ commit }, info) {\r\n return sendRecords(info)\r\n .then(response => {\r\n // commit(\"saveRecord\", response);\r\n commit(\"setState\", { key: \"saveRecord\", value: response });\r\n return response;\r\n })\r\n .catch(error => {\r\n // commit(\"errorRecord\", error);\r\n commit(\"setState\", { key: \"errorRecord\", value: error });\r\n return {\r\n response: false,\r\n message: error\r\n };\r\n });\r\n },\r\n\r\n handleTracking({ commit }, info) {\r\n return tracking(info)\r\n .then(response => {\r\n commit(\"setState\", { key: \"trackingRecord\", value: response });\r\n return response;\r\n })\r\n .catch(error => {\r\n commit(\"setState\", { key: \"errorTrackingRecord\", value: error });\r\n return {\r\n response: false,\r\n message: error\r\n };\r\n });\r\n },\r\n\r\n errorValidationTemporizer({ commit, state }) {\r\n if (state.errorValidationTemporizer !== null)\r\n clearTimeout(state.errorValidationTemporizer);\r\n if (state.error) return;\r\n let timer = setTimeout(() => {\r\n commit(\"setState\", { key: \"error\", value: null });\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: null });\r\n }, 5000);\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: timer });\r\n },\r\n\r\n cleanCurrentUser({ commit }) {\r\n commit(\"setState\", { key: \"currentUser\", value: null });\r\n LS.removeItem(\"currentUser\");\r\n }\r\n};\r\n","export default {};\r\n","import LS from \"../../helpers/localStorage\";\r\n\r\nexport default {\r\n view: \"\",\r\n isAtril: false,\r\n previousView: \"\",\r\n previousViewTwo: \"\",\r\n showAuth: false,\r\n HorarioOutContinue: false,\r\n charging: false,\r\n error: null,\r\n tramite_info: {\r\n queueId: \"idSASASASXX2C12\",\r\n branchId: \"5a46d454da6a6\",\r\n params: {}\r\n },\r\n tramiteInUserEvaluation: null,\r\n tramiteByDefault: null,\r\n validationErrors: [],\r\n errorValidationTemporizer: null,\r\n currentUser: LS.getItem(\"currentUser\") || null,\r\n servicioSelected: null,\r\n selectedAccion: null,\r\n turn: null,\r\n time_received_turn: undefined,\r\n catch_all: null,\r\n priority: false,\r\n history: [],\r\n menu: [],\r\n showModalError: false,\r\n actions: null,\r\n tipide: [\r\n { value: \"AS\", text: \"Adulto Sin Identificación\" },\r\n { value: \"CC\", text: \"Cédula de Ciudadanía\" },\r\n { value: \"CD\", text: \"Carné Diplomático\" },\r\n { value: \"CE\", text: \"Cedula de Extranjería\" },\r\n { value: \"CN\", text: \"Certificado de Nacido Vivo\" },\r\n { value: \"CO\", text: \"Código\" },\r\n { value: \"MS\", text: \"Menor Sin Identificación\" },\r\n { value: \"NI\", text: \"N.I.T.\" },\r\n { value: \"PA\", text: \"Pasaporte\" },\r\n { value: \"PE\", text: \"Permanencia Especial\" },\r\n { value: \"PT\", text: \"Permiso Protección Temporal\" },\r\n { value: \"RC\", text: \"Registro Civil\" },\r\n { value: \"RU\", text: \"Reg. Único de Contribuyentes.\" },\r\n { value: \"SC\", text: \"Salvoconducto De Permanencia\" },\r\n { value: \"TE\", text: \"Tarjeta de Extranjería\" },\r\n { value: \"TI\", text: \"Tarjeta Identidad\" }\r\n ],\r\n citas: [\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: false,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n }\r\n ],\r\n citaActual: null,\r\n currentValidation: [],\r\n currentSite: null,\r\n userDemo: [\r\n {\r\n NumeroIdentificacion: \"456\"\r\n },\r\n {\r\n NumeroIdentificacion: \"789\"\r\n }\r\n ],\r\n queueList: [],\r\n customArea: null,\r\n sites: [],\r\n primaryColorBlue: null,\r\n secondColorBlue: null,\r\n threeColorBlueColor: null,\r\n userActionDate: Date.now(),\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\r\nimport _get from \"lodash/get\";\r\n\r\nexport default {\r\n setState: (state, pay) => {\r\n state.hasOwnProperty(_get(pay, \"key\", \"NA\"))\r\n ? (state[_get(pay, \"key\", \"NA\")] = _get(pay, \"value\", null))\r\n : null;\r\n }\r\n};\r\n","import axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport { getEnvOnly } from \"./Meet\";\r\nvar CryptoJS = require(\"crypto-js\");\r\nlet passphrase = \"bsiTokenGenerator\";\r\nimport _omit from \"lodash/omit\";\r\n\r\nasync function fetchApi(routes, config = {}) {\r\n // eslint-disable-next-line\r\n const url = config.external_url || getEnvOnly()?.VUE_APP_SERVER; // default url api gateway\r\n config.headers = {\r\n ...(config?.headers || {\r\n // eslint-disable-next-line\r\n \"x-api-key\": getEnvOnly()?.VUE_APP_API_KEY_DEV,\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n };\r\n if (!config.headers.Authorization && (window.token || localStorage.getItem(\"token\")))\r\n config.headers.Authorization =\r\n window.token || localStorage.getItem(\"token\");\r\n const responseJSON = await fetch(`${url}${routes}`, config),\r\n response = await responseJSON.json();\r\n \r\n if (responseJSON.status >= 400)\r\n throw (responseJSON.status == 400 && !response.message) ||\r\n responseJSON.status == 401\r\n ? responseJSON.status\r\n : response.message;\r\n return response;\r\n}\r\n\r\nasync function requester(ctx) {\r\n const { headers = {}, url, body } = ctx;\r\n if (!url) return Promise.reject(new Error(\"URL is required\"));\r\n return await fetch(`${getEnvOnly()?.VUE_APP_SERVER}${url}`, {\r\n ..._omit(ctx, [\"headers\", \"url\", \"body\"]),\r\n body: body ? JSON.stringify(body) : undefined,\r\n headers: {\r\n ...{\r\n \"x-api-key\": getEnvOnly()?.VUE_APP_API_KEY_DEV,\r\n \"Content-Type\": \"application/json\"\r\n },\r\n ...headers\r\n },\r\n mode: \"cors\"\r\n })\r\n .then(response => {\r\n if (\r\n typeof response.status === \"number\" &&\r\n response.status >= 200 &&\r\n response.status < 400\r\n )\r\n return response;\r\n\r\n if(url == '/meet/meet-coorelation' && response.status == 410) return response;\r\n \r\n throw new Error(\r\n `Invalid request status ${response.status}. ${JSON.stringify(\r\n response.json()\r\n )}`\r\n );\r\n })\r\n .then(response => response.json());\r\n}\r\n\r\nfunction recursiveRequest(config, errorEventFunction) {\r\n let countError = 0;\r\n return new Promise(resolve => {\r\n executor();\r\n // eslint-disable-next-line no-unused-vars\r\n async function executor() {\r\n let time = Date.now();\r\n try {\r\n const response = await requester(config);\r\n resolve(response);\r\n } catch (error) {\r\n console.error(\"Error in recursiveRequest\", error);\r\n countError++;\r\n console.log(countError)\r\n let newTime = Date.now() - time;\r\n if (typeof errorEventFunction === \"function\")\r\n errorEventFunction(newTime);\r\n if (newTime < 5000) setTimeout(() =>{\r\n if(countError>=3) resolve(false);\r\n else executor();\r\n }, 5000 - newTime);\r\n else executor();\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction windowDispatchEvent(name, detail) {\r\n let event = new CustomEvent(name, { detail });\r\n window.dispatchEvent(event);\r\n}\r\n\r\nfunction getToken(manualKey, keysource, body = {}) {\r\n\r\n return recursiveRequest(\r\n {\r\n url: \"key/token\",\r\n body: {\r\n token: getEnvOnly()?.VUE_APP_BSI_KEY,\r\n authentication_engine: keysource || (manualKey ? \"bsix\" : \"bsi\"),\r\n passphrase,\r\n ...body\r\n },\r\n method: \"POST\"\r\n },\r\n () =>\r\n windowDispatchEvent(\"tokenError\", {\r\n message: \"Cant resolve token in BSIX\"\r\n })\r\n )\r\n \r\n}\r\n\r\nfunction externalRequest(params){\r\n return new Promise((resolve, reject ) =>{\r\n return getToken().then(key => {\r\n \r\n return fetchApi(`mirror_request`, {\r\n method: \"POST\",\r\n body: JSON.stringify(params),\r\n headers: {\r\n Authorization: key.token,\r\n \"x-api-key\": getEnvOnly()?.VUE_APP_API_KEY_DEV\r\n }\r\n })\r\n .then(result => {\r\n resolve(result);\r\n } )\r\n .catch(error=> {\r\n console.log(error)\r\n reject(error);\r\n } );\r\n });\r\n })\r\n \r\n}\r\n\r\nfunction startTransactionCredibanco(sync_data) {\r\n return new Promise(resolve => {\r\n return getToken().then(key => {\r\n return fetchApi(`pays/start_dataphone_transaction`, {\r\n method: \"POST\", \r\n body: sync_data, \r\n headers: {\r\n Authorization: key.token,\r\n \"x-api-key\": getEnvOnly()?.VUE_APP_API_KEY_DEV\r\n }\r\n })\r\n .then(result => {\r\n resolve(result);\r\n } )\r\n .catch(error=> {\r\n console.log(error)\r\n resolve(error);\r\n } );\r\n });\r\n })\r\n}\r\n\r\nfunction payLogs(params, resolve){\r\n \r\n return getToken().then(key => {\r\n\r\n return fetchApi(`pays/logs`, {\r\n method: \"POST\",\r\n body: JSON.stringify(params),\r\n headers: {\r\n Authorization: key.token,\r\n \"x-api-key\": getEnvOnly()?.VUE_APP_API_KEY_DEV\r\n }\r\n })\r\n .then(result => {\r\n resolve(result);\r\n } )\r\n .catch(error=> {\r\n console.log(error)\r\n payLogs(params, resolve);\r\n } );\r\n });\r\n \r\n}\r\n\r\nfunction syncPaymentLogs(params) {\r\n return new Promise(resolve=>{\r\n return getToken().then(key => {\r\n \r\n return fetchApi(`pays/logs-sync`, {\r\n method: \"POST\",\r\n body: JSON.stringify(params),\r\n headers: {\r\n Authorization: key.token,\r\n \"x-api-key\": getEnvOnly()?.VUE_APP_API_KEY_DEV\r\n }\r\n })\r\n .then(result => {\r\n resolve(result);\r\n } )\r\n .catch(error=> {\r\n console.log(error)\r\n resolve(error);\r\n } );\r\n });\r\n })\r\n \r\n}\r\n\r\n\r\nfunction getLlavePublica(TipoIdentificacion, NumeroIdentificacion) {\r\n\r\n var privateKey = getEnvOnly()?.VUE_APP_FSFB_KEY;\r\n var timestamp = Math.round(new Date().getTime() / 1000);\r\n const convertDocuments = {\r\n \"CC\": \"4\",\r\n \"TI\": \"3\",\r\n \"PS\": \"P\",\r\n \"CE\": \"5\",\r\n \"RC\": \"2\",\r\n \"SI\": \"A\",\r\n \"CD\": \"D\",\r\n \"MI\": \"M\",\r\n \"NI\": \"6\",\r\n \"NU\": \"N\",\r\n \"SC\": \"S\",\r\n \"SN\": \"A\"\r\n };\r\n // Document Types\r\n //CC => 4\r\n //TI => 3\r\n //PS => P\r\n //CE => 5\r\n //RC => 2\r\n //SI => A\r\n //CD => D\r\n //MI => M\r\n //NI => 6\r\n //NU => N\r\n //SC => S\r\n //SN => A\r\n var documentType = convertDocuments[TipoIdentificacion];\r\n var documentNumber = NumeroIdentificacion;\r\n /* eslint-disable */\r\n var md5 = CryptoJS.MD5(documentType + \"~\" + documentNumber + \"~\" + timestamp + \"~\" + privateKey);\r\n var payload = CryptoJS.SHA1(md5 + \"\");\r\n \r\n /* eslint-enable */\r\n return {\r\n documentType: documentType,\r\n documentNumber: documentNumber,\r\n timestamp: timestamp,\r\n payload: payload\r\n }\r\n \r\n}\r\n\r\n\r\nasync function autorizarFSFB({\r\n // LF Tested OK 21-01-20\r\n TipoIdentificacion,\r\n NumeroIdentificacion\r\n}) {\r\n\r\n return new Promise(resolve =>{ \r\n const enc = getLlavePublica(TipoIdentificacion, NumeroIdentificacion);\r\n const server = getEnvOnly()?.VUE_APP_FSFB_SERVER;\r\n const key = getEnvOnly()?.VUE_APP_FSFB_KEY\r\n\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': key\r\n }\r\n \r\n var raw = {\r\n data:{\r\n \"tdoc\": enc.documentType,\r\n \"doc\": enc.documentNumber\r\n },\r\n token: key,\r\n url: server,\r\n authType: true,\r\n contentType: 'application/json',\r\n stringify: true,\r\n authHeader: 'x-api-key'\r\n };\r\n\r\n // Direct request to Fundación\r\n axios.post(server, raw.data, {\r\n headers: headers\r\n })\r\n .then(data => data.data)\r\n .then(data => data.data)\r\n .then(data => data.response)\r\n .then((user) => {\r\n resolve(user ? user[0] ? user[0] : {} : {} );\r\n })\r\n .catch(async (error) => {\r\n console.error(\"Invalid site auth\", error);\r\n console.log(\"Invalid Authorization in Huella FSFB\");\r\n // request external (ERROR DE CORS)\r\n let user = await externalRequest(raw);\r\n user = user?.data?.response || [];\r\n resolve(user ? user[0] ? user[0] : {} : {});\r\n })\r\n })\r\n\r\n}\r\n\r\nasync function citasFSFB( user, resolve, maxRetry = 3 ) {\r\n \r\n /* eslint-disable */\r\n const server = getEnvOnly()?.VUE_APP_FSFB_SERVER_APPOINTMENTS;\r\n const raw = {\r\n \"start_date\": moment().format(\"YYYY-MM-DD\"),\r\n \"end_date\": moment().format(\"YYYY-MM-DD\"),\r\n \"doc\": user.doc,\r\n \"tdoc\": user.tdoc.code\r\n };\r\n let externalData = {\r\n data:raw,\r\n url:server,\r\n contentType: 'application/json',\r\n token: 'fsfb',\r\n stringify: true,\r\n authHeader: 'x-api-key',\r\n };\r\n\r\n if(maxRetry <= 0) {\r\n return resolve([])\r\n }\r\n if(resolve){\r\n\r\n let appointments = await externalRequest(externalData);\r\n if(appointments && appointments.data && appointments.data.response){\r\n resolve(appointments.data.response);\r\n } else citasFSFB(user, resolve, maxRetry -1 );\r\n\r\n } else {\r\n return new Promise(async resolve =>{\r\n\r\n let appointments = await externalRequest(externalData);\r\n if(appointments && appointments.data && appointments.data.response){\r\n resolve(appointments.data.response);\r\n } else citasFSFB(user, resolve, maxRetry -1);\r\n\r\n });\r\n }\r\n}\r\n\r\nasync function fetchCupsCode(speciality){\r\n /* eslint-disable */\r\n return new Promise(async resolve =>{\r\n console.log(\"fix\")\r\n const server = getEnvOnly()?.VUE_APP_FSFB_SERVER_KIOSKOS_DISTRIBUTION;\r\n let externalData = {\r\n data: {},\r\n method: 'GET',\r\n url:server + speciality,\r\n contentType: 'application/json',\r\n token: 'fsfb',\r\n stringify: true,\r\n authHeader: 'x-api-key'\r\n };\r\n let appointments = await externalRequest(externalData);\r\n if(appointments && appointments.data && appointments.data.response){\r\n resolve(appointments.data.response);\r\n } else resolve([]);\r\n\r\n });\r\n}\r\n\r\nasync function notificationsFSFB(postData) {\r\n return new Promise(resolve =>{ \r\n \r\n const server = getEnvOnly()?.VUE_APP_FSFB_NOTIFICATION_URL + '/backend-app/send-notification';\r\n\r\n const headers = {\r\n 'Content-Type': 'application/json'\r\n }\r\n \r\n var raw = {\r\n data: postData,\r\n token: 'fsfb',\r\n url: server,\r\n authType: true,\r\n contentType: 'application/json',\r\n stringify: true\r\n };\r\n\r\n // Direct request to Fundación\r\n axios.post(server, postData, {\r\n headers: headers\r\n })\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch(async (error) => {\r\n console.error(\"Invalid site auth\", error);\r\n console.log(\"Invalid Notification FSFB\");\r\n // request external (ERROR DE CORS)\r\n let user = await externalRequest(raw);\r\n resolve(user);\r\n })\r\n })\r\n}\r\n\r\nlet countSync = 0;\r\nasync function syncPaysWithFSFB(postData, promise) {\r\n countSync++;\r\n console.log(\"counter: \" + countSync)\r\n if(countSync>=3 && promise) {\r\n countSync = 0;\r\n return promise(false);\r\n } else if(!promise) return;\r\n \r\n const server = getEnvOnly()?.VUE_APP_FSFB_NOTIFICATION_URL + '/payment/register-core';\r\n\r\n const key = getEnvOnly()?.VUE_APP_FSFB_KEY\r\n // const headers = {\r\n // 'Content-Type': 'application/json',\r\n // 'x-api-key': key\r\n // }\r\n\r\n let externalData = {\r\n data: postData,\r\n method: 'POST',\r\n url:server,\r\n contentType: 'application/json',\r\n token: key,\r\n stringify: true,\r\n authHeader: 'x-api-key',\r\n authType: true,\r\n };\r\n\r\n let appointments = await externalRequest(externalData);\r\n if(appointments && appointments.data && appointments.data.response){\r\n promise(appointments.data.response);\r\n // SEND LOGS\r\n let data = { body: externalData, response: appointments, status: \"ok\" }\r\n await syncPaymentLogs(data)\r\n } else {\r\n console.error(\"Error sending sync payment:\", appointments);\r\n // SEND LOGS\r\n let data = { body: externalData, response: appointments, status: \"error\" }\r\n await syncPaymentLogs(data)\r\n // retry\r\n await syncPaysWithFSFB(postData, promise);\r\n };\r\n \r\n // // Direct request to Fundación\r\n // axios.post(server, postData, {\r\n // headers: headers\r\n // })\r\n // .then((response) => {\r\n // promise(response);\r\n // })\r\n // .catch(async (error) => {\r\n // console.error(\"Error sending sync payment:\", error);\r\n // // retry\r\n // syncPaysWithFSFB(postData, promise);\r\n // })\r\n}\r\n\r\nlet tokenPayments;\r\n\r\nasync function fetchToken(){\r\n return new Promise(async r=>{\r\n const server = getEnvOnly()?.VUE_APP_FSFB_PAYS;\r\n let res = await externalRequest({\r\n url: server,\r\n data: '{}',\r\n method: 'GET',\r\n contentType: 'application/json',\r\n token: 'fsfb-pays',\r\n stringify: true,\r\n authHeader: 'x-api-key'\r\n });\r\n tokenPayments = res.token\r\n return r(res);\r\n })\r\n\r\n}\r\n\r\nasync function pay(d){\r\n\r\n const server = getEnvOnly()?.VUE_APP_FSFB_PAYS;\r\n let res = await fetchToken();\r\n console.log(\"PAYYY\")\r\n console.log(res)\r\n\r\n let res_p = await externalRequest({\r\n //url: `${server}/api/DatosCompra?Cod_unico=${res.code}&id_transaccion=000DG845&Data=${d.data}&token=${tokenPayments}&sobreescribir=S`,\r\n url: `${server}/api/DatosCompra?Cod_unico=${res.code}&id_transaccion=${d.terminal}&Data=${d.data}&token=${tokenPayments}&sobreescribir=S`,\r\n data: '{}',\r\n method: 'GET',\r\n contentType: 'application/json',\r\n token: 'fsfb-pays-r',\r\n stringify: true,\r\n authHeader: 'x-api-key'\r\n });\r\n \r\n // send\r\n return {...res, pay_r: res_p, id_transaction: d.terminal};\r\n}\r\n\r\nasync function checkPay(data){\r\n const server = getEnvOnly()?.VUE_APP_FSFB_PAYS;\r\n let res_p = await externalRequest({\r\n //url: `${server}/api/Respuesta?Cod_unico=${data?.code}&id_transaccion=000DG845&token=${tokenPayments}&parte=1`,\r\n url: `${server}/api/Respuesta?Cod_unico=${data?.code}&id_transaccion=${data?.id_transaction}&token=${tokenPayments}&parte=1`,\r\n data: '{}',\r\n method: 'GET',\r\n contentType: 'application/json',\r\n token: 'fsfb-pays-r',\r\n stringify: true,\r\n authHeader: 'x-api-key'\r\n });\r\n \r\n // send\r\n return res_p;\r\n}\r\n\r\nasync function cancelPay(data){\r\n const server = getEnvOnly()?.VUE_APP_FSFB_PAYS;\r\n let res_p = await externalRequest({\r\n url: `${server}/api/BorrarTransaccion?Cod_unico=${data.code}&id_transaccion=${data.id_transaction}&token=${data.token}`,\r\n data: '{}',\r\n method: 'PUT',\r\n contentType: 'application/json',\r\n token: 'fsfb-pays-r',\r\n stringify: true,\r\n authHeader: 'x-api-key'\r\n });\r\n \r\n // send\r\n return res_p;\r\n}\r\n\r\nexport { autorizarFSFB, citasFSFB, fetchCupsCode, notificationsFSFB, pay, checkPay, cancelPay, syncPaysWithFSFB, payLogs, fetchToken, startTransactionCredibanco };\r\n","import { getToken, requester } from \"./Meet\";\n\nfunction sendMessage(info){\n return getToken().then(key => {\n return requester({\n url: \"/saveMessage\",\n body: info,\n method: \"POST\",\n headers: {\n Authorization: key\n }\n });\n }).then( data => {\n info.promise(data)\n }).catch(err=>{\n console.error(err)\n sendMessage(info);\n });;\n}\n\nfunction checkMessage(info){\n return getToken().then(key => {\n return requester({\n url: \"/getMessages?id_cita_pago=\"+info,\n method: \"GET\",\n headers: {\n Authorization: key\n }\n });\n });\n}\n\nexport {\n sendMessage,\n checkMessage\n};","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: true,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 10:00 am\",\r\n idCita: 123456,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 2:00 pm\",\r\n idCita: 123457,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-16 10:00 am\",\r\n idCita: 123458,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-17 10:00 am\",\r\n idCita: 123459,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-18 10:00 am\",\r\n idCita: 123460,\r\n EnCentroMedico: false\r\n }\r\n];\r\n","export default {\r\n bad: [\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Su cita no tiene un pago asociado. Por favor espere ser llamado en la recepción, para confirmar los datos.\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Ya ha pasado la hora de la cita, por favor agende una nueva cita\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ],\r\n good: [\r\n {\r\n IdPaso: 1,\r\n DescripcionPaso:\r\n \"Su registro ha sido exitoso, por favor diríjase al PISO XXX SALA YYY CONSULTORIO N y espere el llamado del profesional para su cita de ESPECIALIDAD\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: 2,\r\n DescripcionPaso:\r\n \"Su soporte de pago será enviado al correo electrónico registrado\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ]\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport {\r\n getToken,\r\n getQueues,\r\n getStyles,\r\n getEnvOnly,\r\n getMenus,\r\n sendRecords,\r\n tracking\r\n} from \"../../helpers/Meet\";\r\nimport { validarPago } from \"../../helpers/colmedica_fila_virtual\";\r\nimport {\r\n autorizarFSFB,\r\n citasFSFB,\r\n fetchCupsCode,\r\n notificationsFSFB,\r\n pay,\r\n checkPay,\r\n cancelPay,\r\n syncPaysWithFSFB,\r\n payLogs,\r\n fetchToken,\r\n startTransactionCredibanco\r\n} from \"../../helpers/santafe_fila_firtual\";\r\nimport _get from \"lodash/get\";\r\nimport _cloneDeep from \"lodash/cloneDeep\";\r\nimport LS from \"../../helpers/localStorage\";\r\nimport { sendMessage, checkMessage } from \"../../helpers/pays_messages\";\r\nimport moment from \"moment\";\r\n\r\n/**\r\n * Data for demo porpouses\r\n */\r\nimport CentroDemo from \"./CentroDemo\";\r\nimport OficinaDemo from \"./OficinaDemo\";\r\nimport CitasDemo from \"./CitasDemo\";\r\nimport ValPagoDemo from \"./ValidarpagocitaDemo\";\r\n\r\nexport default {\r\n changeAuth({ commit }, value) {\r\n commit(\"setState\", { key: \"showAuth\", value });\r\n },\r\n\r\n setCustomArea({ commit }, value) {\r\n commit(\"setState\", { key: \"customArea\", value });\r\n },\r\n\r\n setSede({ commit }, value) {\r\n commit(\"setState\", { key: \"sedeCode\", value });\r\n },\r\n\r\n setUserActionDate({ commit }, value) {\r\n commit(\"setState\", { key: \"userActionDate\", value });\r\n },\r\n\r\n async getSites({ commit }) {\r\n const sites = await getQueues();\r\n if (sites && sites.length)\r\n commit(\"setState\", { key: \"sites\", value: sites });\r\n },\r\n\r\n async getStyles({ commit }) {\r\n try {\r\n const styles = await getStyles();\r\n commit(\"setState\", {\r\n key: \"primaryColorBlue\",\r\n value: styles?.bsix_client?.companyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"secondColorBlue\",\r\n value: styles?.bsix_client?.secondaryCompanyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"threeColorBlueColor\",\r\n value: styles?.bsix_client?.contrastTextColor\r\n });\r\n } catch (error) {\r\n console.error(\"Cant get Styles\", error);\r\n }\r\n },\r\n\r\n async getMenus({ commit }, { code, area }) {\r\n let { menu, actions, customMenu } = await getMenus(code);\r\n commit(\"setState\", { key: \"menu\", value: customMenu[area] || menu });\r\n commit(\"setState\", { key: \"actions\", value: actions });\r\n commit(\"setState\", { key: \"basemenu\", value: customMenu[area] || menu });\r\n },\r\n\r\n setMenus({ commit }, val) {\r\n commit(\"setState\", { key: \"menu\", value: val });\r\n },\r\n\r\n setAuthorize({ commit }, val) {\r\n commit(\"setState\", { key: \"authorize\", value: val });\r\n },\r\n\r\n restartTimerModal({ commit }, fn) {\r\n commit(\"setState\", { key: \"restartTimerModalState\", value: fn });\r\n },\r\n\r\n goToView({ commit, state }, { view }) {\r\n // if (state.isAtril) {\r\n // dispatch(\"setTimer\", true, { root: true });\r\n // }\r\n commit(\"setState\", { key: \"view\", value: view });\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.push(view);\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n },\r\n\r\n setExplanation({ commit }, value) {\r\n commit(\"setState\", { key: \"explanation\", value });\r\n },\r\n\r\n selecteService({ commit }, value) {\r\n commit(\"setState\", { key: \"servicioSelected\", value });\r\n },\r\n\r\n goBack({ commit, state }) {\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.pop();\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n commit(\"setState\", {\r\n key: \"view\",\r\n value: state.history[state.history.length - 1]\r\n });\r\n },\r\n\r\n async setCitaCM({ commit, dispatch, state }, appointment) {\r\n // Lf Tested 21-01-21\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"currentAppointment\", value: appointment });\r\n commit(\"setState\", { key: \"currentValidation\", value: [] });\r\n\r\n try {\r\n let currentSite = state.sites.find(s => s.code == state.sedeCode);\r\n\r\n // Check Payments enabled\r\n let paymentsEnabled = currentSite.customAreas[state.customArea];\r\n\r\n console.log(\"PAYMENTS ENABLED: \" + paymentsEnabled.enablePayments);\r\n\r\n // Check if appointment is pending for pay\r\n if (\r\n paymentsEnabled.enablePayments &&\r\n appointment.authorized_appoinment == \"SI\" &&\r\n appointment.appoinment_paid == \"NO\" &&\r\n appointment.cost_appoinment > 0 &&\r\n (appointment.appoinment_url_paid ||\r\n (!appointment.appoinment_url_paid &&\r\n !paymentsEnabled.hiddenButtonPaymentAgent) ||\r\n (!appointment.appoinment_url_paid &&\r\n paymentsEnabled.showButtonPaymentDataphone))\r\n ) {\r\n // if(appointment.appoinment_paid == 'NO' && (appointment.appoinment_url_paid || appointment.cost_appoinment > 0)){\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n return dispatch(\"goToView\", { view: \"Payment\" });\r\n }\r\n\r\n let conditions = currentSite.conditions[state.customArea];\r\n\r\n // check conditions\r\n let code = conditions.find(c => {\r\n if (\r\n c.appoinment_paid == appointment.appoinment_paid &&\r\n c.authorized_appoinment == appointment.authorized_appoinment\r\n )\r\n return c;\r\n });\r\n\r\n // let menu =\r\n // state.menu[0] && state.menu[0].children // TODO: Only 2 levels. If require multilevel, fix it with a recursive function\r\n // ? state.menu[0].children\r\n // : state.menu;\r\n // menu = menu.filter(m => m.service_id == value.service.code);\r\n\r\n // serch actions\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value: code\r\n });\r\n\r\n // Check if priority\r\n let queue = null;\r\n try {\r\n queue = (\r\n state.actions?.[state.customArea] ||\r\n state.actions?.default ||\r\n []\r\n ).find(br => br.actionCode === state.selectedAccion?.actionCode);\r\n } catch (error) {\r\n console.log(\"Error: Check customArea \" + error);\r\n }\r\n\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n if (queue && queue.priority_tramite_id != queue.tramite_id)\r\n return dispatch(\"goToView\", { view: \"Normativity\" });\r\n else return dispatch(\"turnCall\", false);\r\n } catch (error) {\r\n console.error(\"In setCitaCM action\", error);\r\n }\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value:\r\n state.menu[0] && state.menu[0].children // TODO: Only 2 levels. If require multilevel, fix it with a recursive function\r\n ? state.menu[0].children[0]\r\n : state.menu[0]\r\n });\r\n },\r\n\r\n setAction({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"selectedAccion\", value });\r\n if (value?.evaluationComponent)\r\n return dispatch(\"goToView\", { view: value.evaluationComponent });\r\n if (value?.ignorePriority) {\r\n commit(\"setState\", { key: \"priority\", value: false });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n } else {\r\n if (value.userAge && value.userAge >= 60) {\r\n commit(\"setState\", { key: \"priority\", value: true });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n } else dispatch(\"goToView\", { view: \"Normativity\" });\r\n }\r\n },\r\n\r\n confirmedAction({ state, commit, dispatch }) {\r\n // / state.selectedaction tiene ignorePriority?\r\n if (state.selectedAccion?.ignorePriority)\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n else dispatch(\"goToView\", { view: \"Normativity\" });\r\n },\r\n\r\n turnCall({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"priority\", value });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n },\r\n\r\n async getCitaValidation(ctx, { idCita }) {\r\n let toReturn = [];\r\n if (getEnvOnly().VUE_APP_DEMO_MODE === \"true\") {\r\n if (idCita === 123456) return ValPagoDemo.good;\r\n else ValPagoDemo.bad;\r\n } else {\r\n try {\r\n toReturn = await validarPago({ idCita });\r\n } catch (error) {\r\n console.error(\"In getCitaValidation\", error);\r\n }\r\n }\r\n return toReturn;\r\n },\r\n\r\n captchaValidation({ dispatch, commit, state }) {\r\n if (window.grecaptcha && window.grecaptcha.ready) {\r\n return new Promise((res, rej) => {\r\n window.grecaptcha.ready(() => {\r\n window.grecaptcha\r\n .execute(getEnvOnly().VUE_APP_RECAPTCHA_CODE, {\r\n action: \"submit_identification\"\r\n })\r\n .then(token =>\r\n getToken(token, \"g_recaptcha_v3\", {\r\n bunitId: getEnvOnly().VUE_APP_BUNIT\r\n })\r\n )\r\n .then(() => res())\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in recaptcha request.\");\r\n rej(err);\r\n });\r\n }); //\r\n // throw new Error('X ERROR');\r\n }).catch(err => {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\"Error cached in Autenticate.vue -> demoValidation\", err);\r\n dispatch(\"goToView\", { view: \"ErrorAutenticate\" });\r\n });\r\n }\r\n return Promise.reject(new Error(\"Recaptcha is not ready\"));\r\n },\r\n\r\n async authenticate({ dispatch, commit, state }, toSend) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"error\", value: null });\r\n commit(\"setState\", { key: \"nextAuthorize\", value: null });\r\n let nextComponent = {\r\n view: \"ErrorAutenticate\"\r\n };\r\n try {\r\n if (!state.isAtril) await dispatch(\"captchaValidation\");\r\n try {\r\n await dispatch(\r\n getEnvOnly().VUE_APP_DEMO_MODE === \"true\"\r\n ? \"demoValidation\"\r\n : \"authAndQuery\",\r\n toSend\r\n );\r\n\r\n // check area\r\n let currentSite = state.sites.find(s=>s.code == state.sedeCode);\r\n let currentArea = currentSite.customAreas[state.customArea];\r\n if(currentArea.authorize) {\r\n nextComponent.view = state.citas && state.citas.length ? \"Quote\" : \"Authorization\";\r\n } else {\r\n nextComponent.view = state.citas && state.citas.length ? \"Quote\" : \"ExistentUser\";\r\n }\r\n } catch (error) {\r\n if (error.message == \"Connection Error\") {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n return commit(\"setState\", {\r\n key: \"error\",\r\n value: {\r\n zone: \"authorization\",\r\n message:\r\n \"Error de conexión con servidor. Por favor, intenta nuevamente.\"\r\n }\r\n });\r\n }\r\n\r\n console.error(\"Error in authorization\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: {\r\n zone: \"authorization\",\r\n message: \"El usuario no se encuentra registrado en el sistema\"\r\n }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n // check area\r\n let currentSite = state.sites.find(s=>s.code == state.sedeCode);\r\n let currentArea = currentSite.customAreas[state.customArea];\r\n if(currentArea.authorize) {\r\n commit(\"setState\", { key: \"nextAuthorize\", value: \"Help\" });\r\n nextComponent.view = \"Authorization\";\r\n } else {\r\n nextComponent.view = \"Help\";\r\n }\r\n \r\n }\r\n } catch (error) {\r\n console.error(\"Error in Captcha\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: { zone: \"recaptcha\", message: \"La validación del captcha falló\" }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n }\r\n dispatch(\"goToView\", nextComponent);\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n },\r\n\r\n async demoValidation({ commit, state }, toSend) {\r\n let userfinded = state.userDemo.find(\r\n usr => usr.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n await new Promise(res => setTimeout(res, 2000));\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n if (!userfinded) throw new Error(\"Invalid demo User\");\r\n let originFinded = (state.currentSite?.type === \"cm\"\r\n ? CentroDemo\r\n : OficinaDemo\r\n ).find(\r\n cm =>\r\n cm.TipoIdentificacion == toSend?.TipoIdentificacion &&\r\n cm.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n if (!originFinded) throw new Error(\"User not have meetings\");\r\n toSend = { ...toSend, ...originFinded };\r\n if (\r\n state.currentSite?.type === \"cm\" &&\r\n toSend.NumeroIdentificacion === \"789\"\r\n )\r\n commit(\"setState\", { key: \"citas\", value: CitasDemo });\r\n else commit(\"setState\", { key: \"citas\", value: [] });\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n },\r\n\r\n async authAndQuery({ state, commit }, pay) {\r\n try {\r\n // Check Company\r\n\r\n // Santafe\r\n if (getEnvOnly().VUE_APP_COMPANY == \"fsfb\") {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n const userResponse = await autorizarFSFB({\r\n TipoIdentificacion: pay.TipoIdentificacion,\r\n NumeroIdentificacion: pay.NumeroIdentificacion\r\n });\r\n\r\n if (\r\n userResponse.message &&\r\n userResponse.message.includes(\"Failed to fetch\")\r\n ) {\r\n throw new Error(\"Connection Error\");\r\n }\r\n\r\n let citasList = [];\r\n if (userResponse && userResponse.id_patient) {\r\n // Check appointments\r\n citasList = await citasFSFB(userResponse);\r\n\r\n let currentSite = state.sites.find(s => s.code == state.sedeCode);\r\n let customArea = currentSite.customAreas[state.customArea];\r\n\r\n // check cups_code\r\n let cups_code = await fetchCupsCode( customArea.cup_code ? customArea.cup_code : state.customArea.toUpperCase());\r\n cups_code = cups_code.map(c=>c.cups_code.S)\r\n citasList = citasList.filter( c=> cups_code.includes(c.attention.code) );\r\n\r\n /**\r\n * ESTO ES PARA PROBAR\r\n */\r\n // citasList = citasList.map( c=> {\r\n // if(c.appoinment_paid == 'NO' && (!c.cost_appoinment || (c.cost_appoinment && c.cost_appoinment< 1) ) ){\r\n // // if((!c.cost_appoinment || (c.cost_appoinment && c.cost_appoinment< 1) ) ){\r\n // c.cost_appoinment = 9500\r\n // }\r\n // c.cost_appoinment = 9500\r\n // c.appoinment_url_paid = 'www.test.com';\r\n // c.appoinment_paid = 'NO';\r\n // return c\r\n // } );\r\n /**\r\n * ---------\r\n */\r\n citasList = citasList.sort((itemA, itemB) => {\r\n const itemBHCS = moment().hour(itemB.hour_appoinment.split(\":\")[0]);\r\n const itemAHCS = moment().hour(itemA.hour_appoinment.split(\":\")[0]);\r\n\r\n if (\r\n moment().diff(itemAHCS.hour()) - moment().diff(itemBHCS.hour()) >\r\n 0\r\n ) {\r\n return -1;\r\n }\r\n if (\r\n moment().diff(itemAHCS.hour()) - moment().diff(itemBHCS.hour()) <=\r\n 0\r\n ) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n throw new Error(\"Invalid Authorization in Fundación Santafe\");\r\n }\r\n\r\n // if(!userResponse || !userResponse.codigo){\r\n // throw new Error(\"Invalid Authorization in Fundación Santafe\");\r\n // }\r\n commit(\"setState\", { key: \"citas\", value: citasList });\r\n commit(\"setState\", {\r\n key: \"currentUser\",\r\n value: { ...pay, ...userResponse }\r\n });\r\n\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n } else {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw \"No company defined\";\r\n }\r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n handleSendRecords({ commit }, info) {\r\n return sendRecords(info)\r\n .then(response => {\r\n // commit(\"saveRecord\", response);\r\n commit(\"setState\", { key: \"saveRecord\", value: response });\r\n return response;\r\n })\r\n .catch(error => {\r\n // commit(\"errorRecord\", error);\r\n commit(\"setState\", { key: \"errorRecord\", value: error });\r\n return {\r\n response: false,\r\n message: error\r\n };\r\n });\r\n },\r\n\r\n handleTracking({ commit }, info) {\r\n return tracking(info);\r\n // .then(response => {\r\n // commit(\"setState\", { key: \"trackingRecord\", value: response });\r\n // return response;\r\n // })\r\n // .catch(error => {\r\n // commit(\"setState\", { key: \"errorTrackingRecord\", value: error });\r\n // return {\r\n // response: false,\r\n // message: error\r\n // };\r\n // });\r\n },\r\n\r\n errorValidationTemporizer({ commit, state }) {\r\n if (state.errorValidationTemporizer !== null)\r\n clearTimeout(state.errorValidationTemporizer);\r\n if (state.error) return;\r\n let timer = setTimeout(() => {\r\n commit(\"setState\", { key: \"error\", value: null });\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: null });\r\n }, 5000);\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: timer });\r\n },\r\n\r\n cleanCurrentUser({ commit }) {\r\n commit(\"setState\", { key: \"currentUser\", value: null });\r\n LS.removeItem(\"currentUser\");\r\n },\r\n\r\n clearError({ commit }) {\r\n commit(\"setState\", { key: \"error\", value: null });\r\n },\r\n\r\n async mobileNotification({ state, commit }, pay) {\r\n try {\r\n // check notification\r\n let notification = await notificationsFSFB({\r\n tdoc:\r\n pay.type == 1\r\n ? state.convertDocumentsFromString[\r\n state.currentUser.TipoIdentificacion\r\n ]\r\n : null,\r\n doc: pay.type == 1 ? state.currentUser.NumeroIdentificacion : null,\r\n title: pay.title,\r\n body: pay.body,\r\n type: pay.type,\r\n module: state.customArea //\"derivaciones\"\r\n });\r\n return notification.response;\r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n async sendMessageForPay({ commit }, pay) {\r\n try {\r\n commit(\"setState\", { key: \"qrLoading\", value: true });\r\n\r\n /* eslint-disable */\r\n return new Promise(async resolve=>{\r\n\r\n pay.promise = resolve;\r\n\r\n // check notification\r\n let notification = await sendMessage(pay);\r\n\r\n commit(\"setState\", { key: \"qrLoading\", value: false });\r\n return notification;\r\n })\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n async checkMessageStatus({ commit }, pay) {\r\n \r\n try {\r\n \r\n // check message\r\n let message = await checkMessage(pay.id_cita_pago);\r\n\r\n commit(\"setState\", { key: \"qrLoading\", value: false });\r\n return message;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n async startTransaction({ commit, state }, sync_data) {\r\n console.log(\"INFOO SYNC\")\r\n console.log(JSON.stringify(sync_data))\r\n let res = await startTransactionCredibanco(sync_data)\r\n return res\r\n },\r\n\r\n // Send pay to CrediBanco\r\n async sendCrediPay({ commit, state }, id_transaction){\r\n\r\n try {\r\n \r\n let terminal = state.currentSite.customAreas[state.customArea].terminal;\r\n // search terminal\r\n state.site\r\n let data = \r\n `${state.currentAppointment.cost_appoinment},`+\r\n '0,'+\r\n '0,'+\r\n '0,'+\r\n `${state.currentAppointment.cost_appoinment},`+\r\n `${terminal},`+\r\n `${state.customArea},`+\r\n '0,'+\r\n `${state.currentAppointment.cost_appoinment},`+\r\n 'C,'+\r\n '0,'+\r\n '0,'+\r\n `${terminal},`+\r\n '0,'+\r\n id_transaction;\r\n \r\n // check res\r\n let res = await pay({\r\n data,\r\n terminal\r\n });\r\n\r\n commit(\"setState\", { key: \"dataPayment\", value: data });\r\n\r\n // set data\r\n return res;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n },\r\n\r\n clearMessagePays({commit}){\r\n commit(\"setState\", { key: \"respPayments\", value: \"\" });\r\n },\r\n\r\n async checkCrediPay({ commit }, res){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await checkPay(res);\r\n commit(\"setState\", { key: \"respPayments\", value: resp });\r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n\r\n },\r\n\r\n async cancelPayment({ commit }, res){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await cancelPay(res);\r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n\r\n },\r\n\r\n // Sync pays\r\n async syncPaymentsFSFB({ commit }, res){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await new Promise(r => {\r\n syncPaysWithFSFB(res, r);\r\n });\r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n },\r\n\r\n async saveLogsPayments({commit}, data){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await new Promise(r=>{\r\n payLogs(data, r);\r\n }) \r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n },\r\n\r\n refreshTokenPays({commit}){\r\n let res = fetchToken();\r\n commit(\"setState\", { key: \"tokenPayments\", value: res.token });\r\n },\r\n\r\n clear({commit}){\r\n commit(\"setState\", { key: \"dataPayment\", value: \"\" });\r\n commit(\"setState\", { key: \"respPayments\", value: \"\" });\r\n commit(\"setState\", { key: \"currentErrorPay\", value: null });\r\n },\r\n\r\n cleanMenus({ commit, state }) {\r\n let base = _cloneDeep(state.basemenu);\r\n commit(\"setState\", { key: \"menu\", value: base });\r\n },\r\n};\r\n","export default {};\r\n","import LS from \"../../helpers/localStorage\";\r\n\r\nexport default {\r\n view: \"\",\r\n nextAuthorize: null,\r\n isAtril: false,\r\n previousView: \"\",\r\n previousViewTwo: \"\",\r\n showAuth: false,\r\n HorarioOutContinue: false,\r\n charging: false,\r\n error: null,\r\n tramite_info: {\r\n queueId: \"idSASASASXX2C12\",\r\n branchId: \"5a46d454da6a6\",\r\n params: {}\r\n },\r\n restartTimerModalState: () => {},\r\n tramiteInUserEvaluation: null,\r\n tramiteByDefault: null,\r\n validationErrors: [],\r\n errorValidationTemporizer: null,\r\n currentUser: LS.getItem(\"currentUser\") || null,\r\n servicioSelected: null,\r\n selectedAccion: null,\r\n stopTimerCircle: false,\r\n turn: null,\r\n time_received_turn: undefined,\r\n catch_all: null,\r\n priority: false,\r\n history: [],\r\n menu: [],\r\n basemenu: [],\r\n showModalError: false,\r\n actions: null,\r\n tipide: [\r\n // { value: null, text: \"Seleccione una opción\" },\r\n { value: \"CC\", text: \"Cédula de ciudadanía\" },\r\n { value: \"PS\", text: \"Pasaporte\" },\r\n { value: \"TI\", text: \"Tarjeta de identidad\" },\r\n { value: \"RC\", text: \"Registro civil\" },\r\n { value: \"CE\", text: \"Cédula de extranjería\" },\r\n { value: \"CD\", text: \"Carné diplomático\" },\r\n { value: \"SC\", text: \"Salvoconducto\" },\r\n { value: \"NI\", text: \"NIT\" },\r\n { value: \"NU\", text: \"NUIP\" }\r\n ],\r\n citas: [\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: false,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n }\r\n ],\r\n currentAppointment: null,\r\n currentValidation: [],\r\n currentSite: null,\r\n userDemo: [\r\n {\r\n NumeroIdentificacion: \"456\"\r\n },\r\n {\r\n NumeroIdentificacion: \"789\"\r\n }\r\n ],\r\n queueList: [],\r\n customArea: null,\r\n sites: [],\r\n sedeCode: \"\",\r\n primaryColorBlue: null,\r\n secondColorBlue: null,\r\n threeColorBlueColor: null,\r\n convertDocumentsFromString: {\r\n CC: \"4\",\r\n TI: \"3\",\r\n PS: \"P\",\r\n CE: \"5\",\r\n RC: \"2\",\r\n SI: \"A\",\r\n CD: \"D\",\r\n MI: \"M\",\r\n NI: \"6\",\r\n NU: \"N\",\r\n SC: \"S\",\r\n SN: \"A\"\r\n },\r\n qrLoading: false,\r\n userActionDate: Date.now(),\r\n authorize: false,\r\n\r\n // progress home on payments\r\n respPayments: '',\r\n dataPayment: null\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\r\nimport _get from \"lodash/get\";\r\n\r\nexport default {\r\n setState: (state, pay) => {\r\n state.hasOwnProperty(_get(pay, \"key\", \"NA\"))\r\n ? (state[_get(pay, \"key\", \"NA\")] = _get(pay, \"value\", null))\r\n : null;\r\n }\r\n};\r\n","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: true,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 10:00 am\",\r\n idCita: 123456,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 2:00 pm\",\r\n idCita: 123457,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-16 10:00 am\",\r\n idCita: 123458,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-17 10:00 am\",\r\n idCita: 123459,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-18 10:00 am\",\r\n idCita: 123460,\r\n EnCentroMedico: false\r\n }\r\n];\r\n","export default {\r\n bad: [\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Su cita no tiene un pago asociado. Por favor espere ser llamado en la recepción, para confirmar los datos.\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Ya ha pasado la hora de la cita, por favor agende una nueva cita\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ],\r\n good: [\r\n {\r\n IdPaso: 1,\r\n DescripcionPaso:\r\n \"Su registro ha sido exitoso, por favor diríjase al PISO XXX SALA YYY CONSULTORIO N y espere el llamado del profesional para su cita de ESPECIALIDAD\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: 2,\r\n DescripcionPaso:\r\n \"Su soporte de pago será enviado al correo electrónico registrado\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ]\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport {\r\n getToken,\r\n getQueues,\r\n getStyles,\r\n getEnvOnly,\r\n getMenus,\r\n sendRecords,\r\n tracking\r\n} from \"../../helpers/Meet\";\r\nimport {\r\n validarPago\r\n} from \"../../helpers/colmedica_fila_virtual\";\r\nimport { autorizarFSFB, citasFSFB, fetchCupsCode, notificationsFSFB, pay, checkPay, cancelPay, syncPaysWithFSFB, payLogs, fetchToken } from \"../../helpers/santafe_fila_firtual\";\r\nimport _get from \"lodash/get\";\r\nimport LS from \"../../helpers/localStorage\";\r\nimport { sendMessage, checkMessage } from \"../../helpers/pays_messages\";\r\nimport moment from \"moment\";\r\n\r\n/**\r\n * Data for demo porpouses\r\n */\r\nimport CentroDemo from \"./CentroDemo\";\r\nimport OficinaDemo from \"./OficinaDemo\";\r\nimport CitasDemo from \"./CitasDemo\";\r\nimport ValPagoDemo from \"./ValidarpagocitaDemo\";\r\n\r\nexport default {\r\n changeAuth({ commit }, value) {\r\n commit(\"setState\", { key: \"showAuth\", value });\r\n },\r\n\r\n setCustomArea({ commit }, value) {\r\n commit(\"setState\", { key: \"customArea\", value });\r\n },\r\n\r\n setSede({ commit }, value) {\r\n commit(\"setState\", { key: \"sedeCode\", value });\r\n },\r\n\r\n setUserActionDate({ commit },value){\r\n commit(\"setState\", { key: \"userActionDate\", value });\r\n },\r\n\r\n async getSites({ commit }) {\r\n const sites = await getQueues();\r\n if (sites && sites.length)\r\n commit(\"setState\", { key: \"sites\", value: sites });\r\n },\r\n\r\n async getStyles({ commit }) {\r\n try {\r\n const styles = await getStyles();\r\n commit(\"setState\", {\r\n key: \"primaryColorBlue\",\r\n value: styles?.bsix_client?.companyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"secondColorBlue\",\r\n value: styles?.bsix_client?.secondaryCompanyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"threeColorBlueColor\",\r\n value: styles?.bsix_client?.contrastTextColor\r\n });\r\n } catch (error) {\r\n console.error(\"Cant get Styles\", error);\r\n }\r\n },\r\n\r\n async getMenus({ commit }, { code, area }) {\r\n const { menu, actions, customMenu } = await getMenus(code);\r\n commit(\"setState\", { key: \"menu\", value: customMenu[area] || menu });\r\n commit(\"setState\", { key: \"actions\", value: actions });\r\n },\r\n\r\n restartTimerModal({ commit }, fn) {\r\n commit(\"setState\", { key: \"restartTimerModalState\", value: fn });\r\n },\r\n\r\n goToView({ commit, state }, { view }) {\r\n // if (state.isAtril) {\r\n // dispatch(\"setTimer\", true, { root: true });\r\n // }\r\n commit(\"setState\", { key: \"view\", value: view });\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.push(view);\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n },\r\n\r\n setExplanation({ commit }, value) {\r\n commit(\"setState\", { key: \"explanation\", value });\r\n },\r\n\r\n selecteService({ commit }, value) {\r\n commit(\"setState\", { key: \"servicioSelected\", value });\r\n },\r\n\r\n goBack({ commit, state }) {\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.pop();\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n commit(\"setState\", {\r\n key: \"view\",\r\n value: state.history[state.history.length - 1]\r\n });\r\n },\r\n\r\n async setCitaCM({ commit, dispatch, state }, appointment) {\r\n \r\n // Lf Tested 21-01-21\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"currentAppointment\", value: appointment });\r\n commit(\"setState\", { key: \"currentValidation\", value: [] });\r\n\r\n try {\r\n\r\n let currentSite = state.sites.find(s=>s.code == state.sedeCode);\r\n\r\n // Check Payments enabled\r\n let paymentsEnabled = currentSite.customAreas[state.customArea];\r\n\r\n console.log(\"PAYMENTS ENABLED: \" + paymentsEnabled.enablePayments)\r\n\r\n // Check if appointment is pending for pay\r\n if(\r\n paymentsEnabled.enablePayments &&\r\n appointment.authorized_appoinment == 'SI' && \r\n appointment.appoinment_paid == 'NO' && \r\n appointment.cost_appoinment > 0 && (\r\n appointment.appoinment_url_paid || (!appointment.appoinment_url_paid && !paymentsEnabled.hiddenButtonPaymentAgent) || \r\n (!appointment.appoinment_url_paid && paymentsEnabled.showButtonPaymentDataphone) )\r\n ){\r\n // if(appointment.appoinment_paid == 'NO' && (appointment.appoinment_url_paid || appointment.cost_appoinment > 0)){\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n return dispatch(\"goToView\", { view: \"Payment\" }); \r\n }\r\n \r\n \r\n let conditions = currentSite.conditions[state.customArea];\r\n\r\n // check conditions\r\n let code = conditions.find(c=>{\r\n if(c.appoinment_paid == appointment.appoinment_paid && \r\n c.authorized_appoinment == appointment.authorized_appoinment) \r\n return c\r\n })\r\n\r\n // let menu =\r\n // state.menu[0] && state.menu[0].children // TODO: Only 2 levels. If require multilevel, fix it with a recursive function\r\n // ? state.menu[0].children\r\n // : state.menu;\r\n // menu = menu.filter(m => m.service_id == value.service.code);\r\n\r\n // serch actions\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value: code\r\n });\r\n\r\n // Check if priority\r\n let queue = null;\r\n try {\r\n queue = (\r\n state.actions?.[state.customArea] ||\r\n state.actions?.default ||\r\n []\r\n ).find(br => br.actionCode === state.selectedAccion?.actionCode);\r\n } catch (error) { console.log(\"Error: Check customArea \" + error )}\r\n \r\n commit(\"setState\", { key: \"charging\", value: false });\r\n if ( queue && (queue.priority_tramite_id != queue.tramite_id) ) return dispatch(\"goToView\", { view: \"Normativity\" }); \r\n else return dispatch(\"turnCall\", false);\r\n } catch (error) {\r\n console.error(\"In setCitaCM action\", error);\r\n }\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value:\r\n state.menu[0] && state.menu[0].children // TODO: Only 2 levels. If require multilevel, fix it with a recursive function\r\n ? state.menu[0].children[0]\r\n : state.menu[0]\r\n });\r\n \r\n },\r\n\r\n setAction({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"selectedAccion\", value });\r\n if (value?.evaluationComponent)\r\n return dispatch(\"goToView\", { view: value.evaluationComponent });\r\n if (value?.ignorePriority) {\r\n commit(\"setState\", { key: \"priority\", value: false });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n } \r\n else {\r\n if (value.userAge && value.userAge >= 60) {\r\n commit(\"setState\", { key: \"priority\", value: true });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n } else dispatch(\"goToView\", { view: \"Normativity\" });\r\n } \r\n },\r\n\r\n confirmedAction({ state, commit, dispatch }) {\r\n // / state.selectedaction tiene ignorePriority?\r\n if (state.selectedAccion?.ignorePriority)\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n else dispatch(\"goToView\", { view: \"Normativity\" });\r\n },\r\n\r\n turnCall({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"priority\", value });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n },\r\n\r\n async getCitaValidation(ctx, { idCita }) {\r\n let toReturn = [];\r\n if (getEnvOnly().VUE_APP_DEMO_MODE === \"true\") {\r\n if (idCita === 123456) return ValPagoDemo.good;\r\n else ValPagoDemo.bad;\r\n } else {\r\n try {\r\n toReturn = await validarPago({ idCita });\r\n } catch (error) {\r\n console.error(\"In getCitaValidation\", error);\r\n }\r\n }\r\n return toReturn;\r\n },\r\n\r\n captchaValidation({ dispatch, commit, state }) {\r\n if (window.grecaptcha && window.grecaptcha.ready) {\r\n return new Promise((res, rej) => {\r\n window.grecaptcha.ready(() => {\r\n window.grecaptcha\r\n .execute(getEnvOnly().VUE_APP_RECAPTCHA_CODE, {\r\n action: \"submit_identification\"\r\n })\r\n .then(token =>\r\n getToken(token, \"g_recaptcha_v3\", {\r\n bunitId: getEnvOnly().VUE_APP_BUNIT\r\n })\r\n )\r\n .then(() => res())\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in recaptcha request.\");\r\n rej(err);\r\n });\r\n }); //\r\n // throw new Error('X ERROR');\r\n }).catch(err => {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\"Error cached in Autenticate.vue -> demoValidation\", err);\r\n dispatch(\"goToView\", { view: \"ErrorAutenticate\" });\r\n });\r\n }\r\n return Promise.reject(new Error(\"Recaptcha is not ready\"));\r\n },\r\n\r\n async authenticate({ dispatch, commit, state }, toSend) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"error\", value: null });\r\n let nextComponent = {\r\n view: \"ErrorAutenticate\"\r\n };\r\n try {\r\n if (!state.isAtril) await dispatch(\"captchaValidation\");\r\n try {\r\n await dispatch(\r\n getEnvOnly().VUE_APP_DEMO_MODE === \"true\"\r\n ? \"demoValidation\"\r\n : \"authAndQuery\",\r\n toSend\r\n );\r\n nextComponent.view =\r\n state.citas && state.citas.length ? \"Quote\" : \"ExistentUser\";\r\n // nextComponent.view = \"ExistentUser\";\r\n } catch (error) {\r\n\r\n if(error.message == \"Connection Error\") {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n return commit(\"setState\", {\r\n key: \"error\",\r\n value: {\r\n zone: \"authorization\",\r\n message: \"Error de conexión con servidor. Por favor, intenta nuevamente.\"\r\n }\r\n });\r\n }\r\n \r\n console.error(\"Error in authorization\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: {\r\n zone: \"authorization\",\r\n message: \"El usuario no se encuentra registrado en el sistema\"\r\n }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n nextComponent.view = \"Help\";\r\n }\r\n } catch (error) {\r\n console.error(\"Error in Captcha\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: { zone: \"recaptcha\", message: \"La validación del captcha falló\" }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n }\r\n dispatch(\"goToView\", nextComponent);\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n },\r\n\r\n async demoValidation({ commit, state }, toSend) {\r\n let userfinded = state.userDemo.find(\r\n usr => usr.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n await new Promise(res => setTimeout(res, 2000));\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n if (!userfinded) throw new Error(\"Invalid demo User\");\r\n let originFinded = (state.currentSite?.type === \"cm\"\r\n ? CentroDemo\r\n : OficinaDemo\r\n ).find(\r\n cm =>\r\n cm.TipoIdentificacion == toSend?.TipoIdentificacion &&\r\n cm.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n if (!originFinded) throw new Error(\"User not have meetings\");\r\n toSend = { ...toSend, ...originFinded };\r\n if (\r\n state.currentSite?.type === \"cm\" &&\r\n toSend.NumeroIdentificacion === \"789\"\r\n )\r\n commit(\"setState\", { key: \"citas\", value: CitasDemo });\r\n else commit(\"setState\", { key: \"citas\", value: [] });\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n },\r\n\r\n async authAndQuery({ state, commit }, pay) {\r\n try {\r\n // Check Company\r\n\r\n // Santafe\r\n if (getEnvOnly().VUE_APP_COMPANY == \"fsfb\") {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n const userResponse = await autorizarFSFB({\r\n TipoIdentificacion: pay.TipoIdentificacion,\r\n NumeroIdentificacion: pay.NumeroIdentificacion\r\n });\r\n \r\n if(userResponse.message && userResponse.message.includes(\"Failed to fetch\")){\r\n throw new Error(\"Connection Error\");\r\n }\r\n\r\n let citasList = [];\r\n if (userResponse && userResponse.id_patient) {\r\n // Check appointments\r\n citasList = await citasFSFB(userResponse);\r\n\r\n // check cups_code\r\n let cups_code = await fetchCupsCode(state.customArea.toUpperCase());\r\n cups_code = cups_code.map(c=>c.cups_code.S)\r\n citasList = citasList.filter( c=> cups_code.includes(c.attention.code) );\r\n\r\n /**\r\n * ESTO ES PARA PROBAR\r\n */\r\n // citasList = citasList.map( c=> {\r\n // if(c.appoinment_paid == 'NO' && (!c.cost_appoinment || (c.cost_appoinment && c.cost_appoinment< 1) ) ){\r\n // // if((!c.cost_appoinment || (c.cost_appoinment && c.cost_appoinment< 1) ) ){\r\n // c.cost_appoinment = 9500 \r\n // }\r\n // c.cost_appoinment = 9500 \r\n // c.appoinment_url_paid = 'www.test.com';\r\n // c.appoinment_paid = 'NO';\r\n // return c\r\n // } );\r\n /**\r\n * ---------\r\n */\r\n citasList = citasList.sort((itemA, itemB) => {\r\n const itemBHCS = moment().hour(itemB.hour_appoinment.split(\":\")[0]);\r\n const itemAHCS = moment().hour(itemA.hour_appoinment.split(\":\")[0]);\r\n \r\n if (moment().diff(itemAHCS.hour()) - moment().diff(itemBHCS.hour()) > 0) {\r\n return -1;\r\n }\r\n if (\r\n moment().diff(itemAHCS.hour()) - moment().diff(itemBHCS.hour()) <=\r\n 0\r\n ) {\r\n return 1;\r\n }\r\n return 0;\r\n })\r\n\r\n } else {\r\n throw new Error(\"Invalid Authorization in Fundación Santafe\");\r\n }\r\n\r\n // if(!userResponse || !userResponse.codigo){\r\n // throw new Error(\"Invalid Authorization in Fundación Santafe\");\r\n // }\r\n commit(\"setState\", { key: \"citas\", value: citasList });\r\n commit(\"setState\", {\r\n key: \"currentUser\",\r\n value: { ...pay, ...userResponse }\r\n });\r\n\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n \r\n } else {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw \"No company defined\";\r\n }\r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n handleSendRecords({ commit }, info) {\r\n return sendRecords(info)\r\n .then(response => {\r\n // commit(\"saveRecord\", response);\r\n commit(\"setState\", { key: \"saveRecord\", value: response });\r\n return response;\r\n })\r\n .catch(error => {\r\n // commit(\"errorRecord\", error);\r\n commit(\"setState\", { key: \"errorRecord\", value: error });\r\n return {\r\n response: false,\r\n message: error\r\n };\r\n });\r\n },\r\n\r\n handleTracking({ commit }, info) {\r\n return tracking(info)\r\n // .then(response => {\r\n // commit(\"setState\", { key: \"trackingRecord\", value: response });\r\n // return response;\r\n // })\r\n // .catch(error => {\r\n // commit(\"setState\", { key: \"errorTrackingRecord\", value: error });\r\n // return {\r\n // response: false,\r\n // message: error\r\n // };\r\n // });\r\n },\r\n\r\n errorValidationTemporizer({ commit, state }) {\r\n if (state.errorValidationTemporizer !== null)\r\n clearTimeout(state.errorValidationTemporizer);\r\n if (state.error) return;\r\n let timer = setTimeout(() => {\r\n commit(\"setState\", { key: \"error\", value: null });\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: null });\r\n }, 5000);\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: timer });\r\n },\r\n\r\n cleanCurrentUser({ commit }) {\r\n commit(\"setState\", { key: \"currentUser\", value: null });\r\n LS.removeItem(\"currentUser\");\r\n },\r\n\r\n clearError({ commit }) {\r\n commit(\"setState\", { key: \"error\", value: null });\r\n },\r\n\r\n async mobileNotification({ state, commit }, pay) {\r\n\r\n try {\r\n \r\n // check notification\r\n let notification = await notificationsFSFB({\r\n \"tdoc\": pay.type == 1 ? state.convertDocumentsFromString[state.currentUser.TipoIdentificacion] : null,\r\n \"doc\": pay.type == 1 ? state.currentUser.NumeroIdentificacion : null,\r\n \"title\": pay.title,\r\n \"body\": pay.body,\r\n \"type\": pay.type,\r\n \"module\": state.customArea //\"derivaciones\"\r\n });\r\n return notification.response;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n\r\n },\r\n\r\n async sendMessageForPay({ commit }, pay) {\r\n try {\r\n\r\n commit(\"setState\", { key: \"qrLoading\", value: true });\r\n\r\n /* eslint-disable */\r\n return new Promise(async resolve=>{\r\n\r\n pay.promise = resolve;\r\n\r\n // check notification\r\n let notification = await sendMessage(pay);\r\n\r\n commit(\"setState\", { key: \"qrLoading\", value: false });\r\n return notification;\r\n })\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n async checkMessageStatus({ commit }, pay) {\r\n \r\n try {\r\n \r\n // check message\r\n let message = await checkMessage(pay.id_cita_pago);\r\n\r\n commit(\"setState\", { key: \"qrLoading\", value: false });\r\n return message;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n },\r\n\r\n // Send pay to CrediBanco\r\n async sendCrediPay({ commit, state }, id_transaction){\r\n\r\n try {\r\n \r\n let terminal = state.currentSite.customAreas[state.customArea].terminal;\r\n\r\n // search terminal\r\n state.site\r\n let data = \r\n `${state.currentAppointment.cost_appoinment},`+\r\n '0,'+\r\n '0,'+\r\n '0,'+\r\n `${state.currentAppointment.cost_appoinment},`+\r\n `${id_transaction},`+\r\n `${state.customArea},`+\r\n '0,'+\r\n `${state.currentAppointment.cost_appoinment},`+\r\n 'C,'+\r\n '0,'+\r\n '0,'+\r\n `${terminal},`+\r\n '0,'+\r\n state.customArea;\r\n \r\n // check res\r\n let res = await pay({\r\n data,\r\n id_transaction\r\n });\r\n\r\n commit(\"setState\", { key: \"dataPayment\", value: data });\r\n\r\n // set data\r\n return res;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n },\r\n\r\n clearMessagePays({commit}){\r\n commit(\"setState\", { key: \"respPayments\", value: \"\" });\r\n },\r\n\r\n async checkCrediPay({ commit }, res){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await checkPay(res);\r\n commit(\"setState\", { key: \"respPayments\", value: resp });\r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n\r\n },\r\n\r\n async cancelPayment({ commit }, res){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await cancelPay(res);\r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n\r\n },\r\n\r\n // Sync pays\r\n async syncPaymentsFSFB({ commit }, res){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await new Promise(r => {\r\n syncPaysWithFSFB(res, r);\r\n });\r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n },\r\n\r\n async saveLogsPayments({commit}, data){\r\n \r\n try {\r\n \r\n // check res\r\n let resp = await new Promise(r=>{\r\n payLogs(data, r);\r\n }) \r\n\r\n // set data\r\n return resp;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentErrorPay\", value: error });\r\n throw error;\r\n }\r\n },\r\n\r\n refreshTokenPays({commit}){\r\n let res = fetchToken();\r\n commit(\"setState\", { key: \"tokenPayments\", value: res.token });\r\n },\r\n\r\n clear({commit}){\r\n commit(\"setState\", { key: \"dataPayment\", value: \"\" });\r\n commit(\"setState\", { key: \"respPayments\", value: \"\" });\r\n commit(\"setState\", { key: \"currentErrorPay\", value: null });\r\n }\r\n\r\n};\r\n","export default {};\r\n","import LS from \"../../helpers/localStorage\";\r\n\r\nexport default {\r\n view: \"Home\",\r\n isAtril: false,\r\n previousView: \"\",\r\n previousViewTwo: \"\",\r\n showAuth: false,\r\n HorarioOutContinue: false,\r\n charging: false,\r\n error: null,\r\n tramite_info: {\r\n queueId: \"idSASASASXX2C12\",\r\n branchId: \"5a46d454da6a6\",\r\n params: {}\r\n },\r\n restartTimerModalState: () => {},\r\n tramiteInUserEvaluation: null,\r\n tramiteByDefault: null,\r\n validationErrors: [],\r\n errorValidationTemporizer: null,\r\n currentUser: LS.getItem(\"currentUser\") || null,\r\n servicioSelected: null,\r\n selectedAccion: null,\r\n stopTimerCircle: false,\r\n turn: null,\r\n time_received_turn: undefined,\r\n catch_all: null,\r\n priority: false,\r\n history: [],\r\n menu: [],\r\n showModalError: false,\r\n actions: null,\r\n tipide: [\r\n // { value: null, text: \"Seleccione una opción\" },\r\n { value: \"CC\", text: \"Cédula de ciudadanía\" },\r\n { value: \"PS\", text: \"Pasaporte\" },\r\n { value: \"TI\", text: \"Tarjeta de identidad\" },\r\n { value: \"RC\", text: \"Registro civil\" },\r\n { value: \"CE\", text: \"Cédula de extranjería\" },\r\n { value: \"CD\", text: \"Carné diplomático\" },\r\n { value: \"SC\", text: \"Salvoconducto\" },\r\n { value: \"NI\", text: \"NIT\" },\r\n { value: \"NU\", text: \"NUIP\" }\r\n ],\r\n citas: [\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: false,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n }\r\n ],\r\n currentAppointment: null,\r\n currentValidation: [],\r\n currentSite: null,\r\n userDemo: [\r\n {\r\n NumeroIdentificacion: \"456\"\r\n },\r\n {\r\n NumeroIdentificacion: \"789\"\r\n }\r\n ],\r\n queueList: [],\r\n customArea: null,\r\n sites: [],\r\n sedeCode: \"\",\r\n primaryColorBlue: null,\r\n secondColorBlue: null,\r\n threeColorBlueColor: null,\r\n convertDocumentsFromString: {\r\n CC: \"4\",\r\n TI: \"3\",\r\n PS: \"P\",\r\n CE: \"5\",\r\n RC: \"2\",\r\n SI: \"A\",\r\n CD: \"D\",\r\n MI: \"M\",\r\n NI: \"6\",\r\n NU: \"N\",\r\n SC: \"S\",\r\n SN: \"A\"\r\n },\r\n qrLoading: false,\r\n userActionDate: Date.now(),\r\n\r\n // progress home on payments\r\n respPayments: '',\r\n dataPayment: null\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\nimport _get from \"lodash/get\";\n\nexport default {\n setState: (state, pay) => {\n state.hasOwnProperty(_get(pay, \"key\", \"NA\"))\n ? (state[_get(pay, \"key\", \"NA\")] = _get(pay, \"value\", null))\n : null;\n }\n};\n","/* eslint-disable no-unused-vars */\nimport {\n getToken,\n getQueues,\n getStyles,\n getEnvOnly,\n getMenus,\n sendRecords,\n tracking\n} from \"../../helpers/Meet\";\nimport { autorizar, consultarCliente } from \"../../helpers/colmedica_huella\";\nimport _get from \"lodash/get\";\nimport LS from \"../../helpers/localStorage\";\n\n/**\n * Data for demo porpouses\n */\nimport CentroDemo from \"./CentroDemo\";\nimport OficinaDemo from \"./OficinaDemo\";\nimport CitasDemo from \"./CitasDemo\";\nimport ValPagoDemo from \"./ValidarpagocitaDemo\";\n\nexport default {\n changeAuth({ commit }, value) {\n commit(\"setState\", { key: \"showAuth\", value });\n },\n\n setCustomArea({ commit }, value) {\n commit(\"setState\", { key: \"customArea\", value });\n },\n\n async getSites({ commit }) {\n const sites = await getQueues();\n if (sites && sites.length)\n commit(\"setState\", { key: \"sites\", value: sites });\n },\n\n async getStyles({ commit }) {\n try {\n const styles = await getStyles();\n commit(\"setState\", {\n key: \"primaryColorBlue\",\n value: styles?.bsix_client?.companyColor\n });\n commit(\"setState\", {\n key: \"secondColorBlue\",\n value: styles?.bsix_client?.secondaryCompanyColor\n });\n commit(\"setState\", {\n key: \"threeColorBlueColor\",\n value: styles?.bsix_client?.contrastTextColor\n });\n } catch (error) {\n console.error(\"Cant get Styles\", error);\n }\n },\n\n setEnv({ commit }, value) {\n commit(\"setState\", { key: \"env\", value });\n },\n\n async getMenus({ commit }, { code, area }) {\n const { menu, actions, customMenu } = await getMenus(code);\n commit(\"setState\", { key: \"menu\", value: customMenu[area] || menu });\n commit(\"setState\", { key: \"actions\", value: actions });\n },\n\n goToView({ commit, state, dispatch }, { view }) {\n if (state.isAtril) {\n dispatch(\"setTimer\", true, { root: true });\n }\n commit(\"setState\", { key: \"view\", value: view });\n let newArray = JSON.parse(JSON.stringify(state.history));\n newArray.push(view);\n commit(\"setState\", { key: \"history\", value: newArray });\n },\n\n setExplanation({ commit }, value) {\n commit(\"setState\", { key: \"explanation\", value });\n },\n\n selecteService({ commit }, value) {\n commit(\"setState\", { key: \"servicioSelected\", value });\n },\n\n goBack({ commit, state }) {\n let newArray = JSON.parse(JSON.stringify(state.history));\n newArray.pop();\n commit(\"setState\", { key: \"history\", value: newArray });\n commit(\"setState\", {\n key: \"view\",\n value: state.history[state.history.length - 1]\n });\n },\n\n setAction({ commit, dispatch }, value) {\n commit(\"setState\", { key: \"selectedAccion\", value });\n if (value?.evaluationComponent)\n return dispatch(\"goToView\", { view: value.evaluationComponent });\n if (value?.ignorePriority) dispatch(\"goToView\", { view: \"Turn\" });\n else dispatch(\"goToView\", { view: \"Normativity\" });\n },\n\n confirmedAction({ state, commit, dispatch }) {\n // / state.selectedaction tiene ignorePriority?\n if (state.selectedAccion?.ignorePriority)\n dispatch(\"goToView\", { view: \"Turn\" });\n else dispatch(\"goToView\", { view: \"Normativity\" });\n },\n\n turnCall({ commit, dispatch }, value) {\n commit(\"setState\", { key: \"priority\", value });\n dispatch(\"goToView\", { view: \"Turn\" });\n },\n\n captchaValidation({ dispatch, commit, state }) {\n if (window.grecaptcha && window.grecaptcha.ready) {\n return new Promise((res, rej) => {\n window.grecaptcha.ready(() => {\n window.grecaptcha\n .execute(getEnvOnly().VUE_APP_RECAPTCHA_CODE, {\n action: \"submit_identification\"\n })\n .then(token =>\n getToken(token, \"g_recaptcha_v3\", {\n bunitId: getEnvOnly().VUE_APP_BUNIT\n })\n )\n .then(() => res())\n .catch(err => {\n commit(\"setState\", {\n key: \"validationErrors\",\n value: [...state.validationErrors, err]\n });\n dispatch(\"errorValidationTemporizer\");\n console.error(\"error in recaptcha request.\");\n rej(err);\n });\n }); //\n // throw new Error('X ERROR');\n }).catch(err => {\n commit(\"setState\", { key: \"charging\", value: false });\n console.error(\"Error cached in Autenticate.vue -> demoValidation\", err);\n dispatch(\"goToView\", { view: \"ErrorAutenticate\" });\n });\n }\n return Promise.reject(new Error(\"Recaptcha is not ready\"));\n },\n\n async authenticate({ dispatch, commit, state, root }, toSend) {\n commit(\"setState\", { key: \"charging\", value: true });\n commit(\"setState\", { key: \"error\", value: null });\n let nextComponent = {\n view: \"NewUser\"\n };\n try {\n if (!state.isAtril) await dispatch(\"captchaValidation\");\n try {\n await dispatch(\n getEnvOnly().VUE_APP_DEMO_MODE === \"true\"\n ? \"demoValidation\"\n : \"authAndQuery\",\n toSend\n );\n // check age\n if (\n (state.client && !state.client.Edad) ||\n (state.client &&\n state.client.Edad &&\n state.client.Edad >= state.env.VUE_APP_OLD_AGE_VALIDATION)\n ) {\n nextComponent.view = \"VerificationData\";\n } else {\n nextComponent.view = \"IsOlder\";\n }\n } catch (error) {\n console.error(\"Error in authorization kiosko 46\", error);\n commit(\"setState\", {\n key: \"error\",\n value: {\n zone: \"authorization\",\n message: \"El usuario no se encuentra registrado en el sistema\"\n }\n });\n dispatch(\"errorValidationTemporizer\");\n nextComponent.view = \"NewUser\";\n }\n } catch (error) {\n console.error(\"Error in Captcha\", error);\n commit(\"setState\", {\n key: \"error\",\n value: { zone: \"recaptcha\", message: \"La validación del captcha falló\" }\n });\n dispatch(\"errorValidationTemporizer\");\n }\n dispatch(\"goToView\", nextComponent);\n commit(\"setState\", { key: \"charging\", value: false });\n },\n\n async demoValidation({ commit, state, dispatch }, number_id) {\n let client = state.test_users.find(\n u => u.NumeroIdentificacion == number_id\n );\n if (!client || (client && !client.NumeroIdentificacion)) {\n dispatch(\"goToView\", { view: \"NewUser\" });\n commit(\"setState\", {\n key: \"client\",\n value: {\n NumeroIdentificacion: number_id\n }\n });\n commit(\"setState\", { key: \"charging\", value: false });\n } else {\n commit(\"setState\", {\n key: \"client\",\n value: client\n });\n dispatch(\"goToView\", { view: \"VerificationData\" });\n commit(\"setState\", { key: \"charging\", value: false });\n }\n },\n\n async authAndQuery({ state, commit, dispatch }, pay) {\n try {\n await autorizar({\n TipoIdentificacion: pay.TipoIdentificacion,\n NumeroIdentificacion: pay.NumeroIdentificacion\n });\n\n const inSite = {};\n\n // const inSite = await (state.currentSite?.type === \"cm\"\n // ? enCentroMedico\n // : enOficina)();\n // commit(\"setState\", { key: \"citas\", value: [] });\n // if (state.currentSite?.type === \"cm\") {\n // const citasList = await citas();\n // commit(\"setState\", { key: \"citas\", value: citasList });\n // }\n commit(\"setState\", {\n key: \"currentUser\",\n value: { ...pay, ...inSite }\n });\n\n await dispatch(\"consultaClienteColmedica\", pay);\n } catch (error) {\n commit(\"setState\", { key: \"currentUser\", value: pay });\n throw error;\n }\n },\n\n consultaClienteColmedica({ commit, dispatch, state }, pay) {\n return consultarCliente(pay)\n .then(client => {\n commit(\"setState\", {\n key: \"client\",\n value: { ...pay, ...client }\n });\n })\n .catch(err => {\n commit(\"setState\", {\n key: \"validationErrors\",\n value: [...state.validationErrors, err]\n });\n dispatch(\"errorValidationTemporizer\");\n console.error(\"error in autorizacion colmedica.\");\n throw err;\n });\n },\n\n handleSendRecords({ commit }, info) {\n return sendRecords(info)\n .then(response => {\n // commit(\"saveRecord\", response);\n commit(\"setState\", { key: \"saveRecord\", value: response });\n return response;\n })\n .catch(error => {\n // commit(\"errorRecord\", error);\n commit(\"setState\", { key: \"errorRecord\", value: error });\n return {\n response: false,\n message: error\n };\n });\n },\n\n handleTracking({ commit }, info) {\n return tracking(info)\n .then(response => {\n commit(\"setState\", { key: \"trackingRecord\", value: response });\n return response;\n })\n .catch(error => {\n commit(\"setState\", { key: \"errorTrackingRecord\", value: error });\n return {\n response: false,\n message: error\n };\n });\n },\n\n errorValidationTemporizer({ commit, state }) {\n if (state.errorValidationTemporizer !== null)\n clearTimeout(state.errorValidationTemporizer);\n if (state.error) return;\n let timer = setTimeout(() => {\n commit(\"setState\", { key: \"error\", value: null });\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: null });\n }, 5000);\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: timer });\n },\n\n cleanCurrentUser({ commit }) {\n commit(\"setState\", { key: \"currentUser\", value: null });\n LS.removeItem(\"currentUser\");\n },\n \n setService({ commit }, value) {\n commit(\"setState\", { key: \"service\", value });\n }\n};\n","export default {};\n","import LS from \"../../helpers/localStorage\";\n\nexport default {\n view: \"Home\",\n isAtril: false,\n previousView: \"\",\n previousViewTwo: \"\",\n showAuth: false,\n HorarioOutContinue: false,\n charging: false,\n error: null,\n tramite_info: {\n queueId: \"idSASASASXX2C12\",\n branchId: \"5a46d454da6a6\",\n params: {}\n },\n env: {},\n showProgressBarAun: true,\n timerAun: null,\n explanation: false,\n tramiteInUserEvaluation: null,\n tramiteByDefault: null,\n validationErrors: [],\n errorValidationTemporizer: null,\n currentUser: LS.getItem(\"currentUser\") || null,\n servicioSelected: null,\n selectedAccion: null,\n turn: null,\n time_received_turn: undefined,\n catch_all: null,\n priority: false,\n history: [],\n menu: [],\n containerImageDocs: null,\n showProgressBar: true,\n timer: null,\n showModalError: false,\n actions: null,\n tipide: [\n { value: \"CC\", text: \"Cédula de Ciudadanía\" },\n { value: \"CE\", text: \"Cedula de Extranjería\" },\n { value: \"PA\", text: \"Pasaporte\" },\n { value: \"CD\", text: \"Carné Diplomático\" },\n { value: \"PE\", text: \"Permanencia Especial\" },\n { value: \"PT\", text: \"Permiso Protección Temporal\" },\n { value: \"SC\", text: \"Salvoconducto de Permanencia\" },\n { value: \"TE\", text: \"Tarjeta de Extranjería\" },\n { value: \"AS\", text: \"Adulto Sin Identificación\" }\n ],\n citas: [\n {\n EnCentroMedico: true,\n Tramite: \"Consulta programada\",\n NumeroDeConfirmacion: \"1546454654\",\n Especialidad: \"Cardiologia\",\n Fecha: \"13/02/2022,9:00a.m.\"\n },\n {\n EnCentroMedico: true,\n Tramite: \"Consulta programada\",\n NumeroDeConfirmacion: \"1546454654\",\n Especialidad: \"Cardiologia\",\n Fecha: \"13/02/2022,9:00a.m.\"\n },\n {\n EnCentroMedico: false,\n Tramite: \"Consulta programada\",\n NumeroDeConfirmacion: \"1546454654\",\n Especialidad: \"Cardiologia\",\n Fecha: \"13/02/2022,9:00a.m.\"\n }\n ],\n citaActual: null,\n currentValidation: [],\n currentSite: null,\n userDemo: [\n {\n NumeroIdentificacion: \"456\"\n },\n {\n NumeroIdentificacion: \"789\"\n }\n ],\n queueList: [],\n customArea: null,\n sites: [],\n primaryColorBlue: null,\n secondColorBlue: null,\n threeColorBlueColor: null,\n test_users: [\n {\n NumeroIdentificacion: 1033724553,\n Celular: \"3017076719\",\n Correo: \"oscar.jimenez@brilliant360.net\",\n Nombres: \"Oscar\",\n PrimerApellido: \"Jimenez\",\n Resultado: 1,\n SegundoApellido: \"DEMO\"\n },\n {\n NumeroIdentificacion: 1000778041,\n Celular: \"3154494547\",\n Correo: \"derek.paul@brilliant360.net\",\n Nombres: \"Derek\",\n PrimerApellido: \"Paul\",\n Resultado: 1,\n SegundoApellido: \"DEMO\"\n },\n {\n NumeroIdentificacion: 80412679,\n Celular: \"+17706853325\",\n Correo: \"marcelo.salazar@gobrilliant.com\",\n Nombres: \"Marcelo\",\n PrimerApellido: \"Salazar\",\n Resultado: 1,\n SegundoApellido: \"DEMO\"\n } \n ],\n client: {},\n service: null \n};\n","import mutations from \"./mutations\";\nimport actions from \"./actions\";\nimport getters from \"./getters\";\nimport state from \"./states\";\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n","export default {\r\n setState: (state, { key, value }) => {\r\n state[key] = value;\r\n },\r\n };\r\n ","var moment = require(\"moment\");\r\nimport { getToken, getEnvOnly } from \"../../helpers/Meet\";\r\n\r\nexport default {\r\n fetchAppointments({ commit }, params) {\r\n return new Promise((resolve) => {\r\n\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n commit(\"setState\", { key: \"appointments\", value: [] });\r\n \r\n var myHeaders = new Headers();\r\n myHeaders.append(\"x-api-token\", String(params.headers.token_appointments) );\r\n \r\n var requestOptions = {\r\n method: 'GET',\r\n headers: myHeaders,\r\n redirect: 'follow'\r\n };\r\n \r\n fetch( `${params.url}api/v2/appointments${params.queryData}`, requestOptions)\r\n .then(response => response.text())\r\n .then(result => {\r\n let appointments = JSON.parse(result)\r\n appointments = appointments.map(a=> {\r\n try {\r\n a.reason = JSON.parse(a.reason);\r\n } catch (error) {\r\n a.reason = {\r\n formulas: a.reason,\r\n point: null\r\n };\r\n }\r\n \r\n return a;\r\n } )\r\n appointments = appointments.filter(a=>moment(a.startAt)>moment())\r\n commit(\"setState\", { key: \"appointments\", value: appointments });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n commit(\"setState\", { key: \"error\", value: error });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n });\r\n });\r\n },\r\n resetEnvironment({ commit }) {\r\n commit(\"setState\", { key: \"appointments\", value: [] });\r\n },\r\n fetchAvailableMonth({ commit }, params) {\r\n return new Promise((resolve) => {\r\n\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n \r\n var myHeaders = new Headers();\r\n myHeaders.append(\"x-api-token\", String(params.headers.token_appointments) );\r\n \r\n var requestOptions = {\r\n method: 'GET',\r\n headers: myHeaders,\r\n redirect: 'follow'\r\n };\r\n \r\n fetch( `${params.url}api/v1/web/appointment/availabledays${params.queryData}`, requestOptions)\r\n .then(response => response.text())\r\n .then(result => {\r\n commit(\"setState\", { key: \"availables\", value: JSON.parse(result) });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n commit(\"setState\", { key: \"error\", value: error });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n });\r\n });\r\n },\r\n fetchAvailableDays({ commit }, params){\r\n return new Promise((resolve) => {\r\n\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n \r\n var myHeaders = new Headers();\r\n myHeaders.append(\"x-api-token\", String(params.headers.token_appointments) );\r\n \r\n var requestOptions = {\r\n method: 'GET',\r\n headers: myHeaders,\r\n redirect: 'follow'\r\n };\r\n \r\n fetch( `${params.url}api/v2/schedules/${params.scheduleId}/branch/${params.branchId}/availability?strDate=${params.startAt}`, requestOptions)\r\n .then(response => response.text())\r\n .then(result => {\r\n commit(\"setState\", { key: \"availables\", value: JSON.parse(result) });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n commit(\"setState\", { key: \"error\", value: error });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n });\r\n });\r\n },\r\n fetchAvailablebyMonths({ commit }, params){\r\n return new Promise((resolve) => {\r\n\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n \r\n var myHeaders = new Headers();\r\n myHeaders.append(\"x-api-token\", String(params.headers.token_appointments) );\r\n \r\n var requestOptions = {\r\n method: 'GET',\r\n headers: myHeaders,\r\n redirect: 'follow'\r\n };\r\n // https://appointments.sales.debmedia.com/api/v1/web/appointment/availabledays?scheduleId=10296&branchId=20104&strDate=2021-11-01T00:02:00-0500\r\n fetch( `${params.url}api/v1/web/appointment/availabledays?scheduleId=${params.scheduleId}&branchId=${params.branchId}&strDate=${params.startAt}`, requestOptions)\r\n .then(response => response.text())\r\n .then(result => {\r\n result = JSON.parse(result || '{}');\r\n result.slots = result.slots.map(r=> {\r\n return {\r\n ...r,\r\n zoneOwn: moment(r.startDate).utc().format(\"YYYY-MM-DD h:mm:ss\")\r\n }\r\n })\r\n console.log(\"result\")\r\n console.log(result)\r\n commit(\"setState\", { key: \"availablesDaysMonth\", value: result });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n commit(\"setState\", { key: \"error\", value: error });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n });\r\n });\r\n },\r\n createAppointment({ commit }, params){\r\n\r\n if (!params.data || typeof params.data !== \"object\" || !params.data.branch || !params.data.schedule || !params.data.startAt || !params.data.user || !params.data.reason){\r\n console.log(params)\r\n return Promise.reject(\r\n new Error(\"Invalid paramethers for appointments creation\")\r\n );\r\n }\r\n\r\n return new Promise((resolve) => {\r\n\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n\r\n console.log(params)\r\n \r\n var myHeaders = new Headers();\r\n myHeaders.append(\"x-api-token\", String(params.headers.token_appointments) );\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n var raw = JSON.stringify({\r\n \"branch\": {\r\n \"id\": params.data.branch\r\n },\r\n \"schedule\": {\r\n \"id\": params.data.schedule\r\n },\r\n \"startAt\": params.data.startAt,\r\n \"customer\": params.data.user,\r\n \"reason\": params.data.reason\r\n });\r\n \r\n var requestOptions = {\r\n method: 'POST',\r\n headers: myHeaders,\r\n body: raw,\r\n };\r\n \r\n fetch( `${params.url}api/v2/appointments${params.queryData}`, requestOptions)\r\n .then(response => response.text())\r\n .then(result => {\r\n commit(\"setState\", { key: \"responseAppointment\", value: JSON.parse(result) });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n commit(\"setState\", { key: \"error\", value: error });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n });\r\n });\r\n },\r\n updateAppointment({ commit }, params){\r\n\r\n if (typeof params.data !== \"object\" || !params.data?.code){\r\n console.log(params)\r\n return Promise.reject(\r\n new Error(\"Invalid paramethers for appointments updating\")\r\n );\r\n }\r\n\r\n return new Promise((resolve) => {\r\n\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n \r\n var myHeaders = new Headers();\r\n myHeaders.append(\"x-api-token\", String(params.headers.token_appointments) );\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n var raw = JSON.stringify({\r\n \"branch\": {\r\n \"id\": params.data.branch\r\n },\r\n \"status\":params.data.status || 'CANCELED',\r\n \"schedule\": {\r\n \"id\": params.data.schedule\r\n },\r\n \"startAt\": params.data.startAt,\r\n \"endAt\": params.data.startAt,\r\n });\r\n \r\n var requestOptions = {\r\n method: 'PUT',\r\n headers: myHeaders,\r\n body: raw,\r\n };\r\n \r\n fetch( `${params.url}api/v2/appointments/${params.data?.code}`, requestOptions)\r\n .then(response => response.text())\r\n .then(result => {\r\n commit(\"setState\", { key: \"responseAppointment\", value: JSON.parse(result) });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n commit(\"setState\", { key: \"error\", value: error });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n });\r\n });\r\n },\r\n fetchSchedule({ commit }, params){\r\n\r\n if (typeof params !== \"object\"){\r\n console.log(params)\r\n return Promise.reject(\r\n new Error(\"Invalid paramethers for fetch schedule\")\r\n );\r\n }\r\n\r\n return new Promise((resolve) => {\r\n\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n \r\n var myHeaders = new Headers();\r\n myHeaders.append(\"x-api-token\", String(params.headers.token_appointments) );\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n \r\n var requestOptions = {\r\n method: 'GET',\r\n headers: myHeaders\r\n };\r\n \r\n fetch( `${params.url}api/v2/schedules${params.queryData}`, requestOptions)\r\n .then(response => response.text())\r\n .then(result => {\r\n if(result){\r\n let schedules = JSON.parse(result)\r\n let schedule = schedules.length ? schedules[0] : {};\r\n commit(\"setState\", { key: \"schedule\", value: schedule });\r\n }\r\n\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n commit(\"setState\", { key: \"error\", value: error });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n });\r\n });\r\n },\r\n\r\n setDay({ commit }, params){\r\n console.log(params)\r\n commit(\"setState\", { key: \"selectedDay\", value: params });\r\n },\r\n\r\n setAppointment({commit}, params){\r\n commit(\"setState\", {key: \"appointment\", value: params});\r\n },\r\n \r\n async sendNotification({ commit }, params){\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n console.log(params)\r\n\r\n return new Promise(resolve => {\r\n \r\n getToken().then(key => {\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"authorization\", key);\r\n myHeaders.append(\"x-api-key\", getEnvOnly().VUE_APP_AWS_API_KEY);\r\n \r\n var requestOptions = {\r\n method: \"POST\",\r\n headers: myHeaders,\r\n body: JSON.stringify({\r\n schedule_code: params.code,\r\n number: params.Celular,\r\n schedule_date: params.selectedDay\r\n }),\r\n redirect: \"follow\"\r\n };\r\n \r\n fetch(\r\n getEnvOnly().VUE_APP_AWS_API_URL + \"/send_notification\",\r\n requestOptions\r\n )\r\n .then(response => response.text())\r\n .then(result => {\r\n let res = JSON.parse(result);\r\n console.log(res)\r\n resolve();\r\n })\r\n .catch(error => {\r\n resolve(error);\r\n });\r\n });\r\n });\r\n }\r\n};\r\n","export default {};\r\n","export default {\r\n appointments: [],\r\n availables: [],\r\n availablesDaysMonth: [],\r\n schedule: [],\r\n responseAppointment: {},\r\n loading: false,\r\n error: null,\r\n selectedDay:{},\r\n appointmentConfirm: {},\r\n appointment: {}\r\n};","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\r\nimport _get from \"lodash/get\";\r\n\r\nexport default {\r\n setState: (state, pay) => {\r\n state.hasOwnProperty(_get(pay, \"key\", \"NA\"))\r\n ? (state[_get(pay, \"key\", \"NA\")] = _get(pay, \"value\", null))\r\n : null;\r\n }\r\n};\r\n","import { getToken, getEnvOnly } from \"../../helpers/Meet\";\r\nimport {\r\n autorizar,\r\n consultarCliente,\r\n guardarSolicitud\r\n} from \"../../helpers/colmedica_huella\";\r\n\r\nimport _get from \"lodash/get\";\r\n// import { keyBy } from \"lodash\";\r\n\r\nexport default {\r\n goToView({ commit, state }, { view }) {\r\n console.log(\"view\")\r\n console.log(view)\r\n commit(\"setState\", { key: \"view\", value: view });\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.push(view);\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n },\r\n goBack({ commit, state }) {\r\n if (state.view === \"Home\") return;\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.pop();\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n commit(\"setState\", {\r\n key: \"view\",\r\n value: state.history[state.history.length - 1] || \"Home\"\r\n });\r\n },\r\n setService({ commit }, value) {\r\n commit(\"setState\", { key: \"service\", value });\r\n },\r\n setExplanation({ commit }, value) {\r\n commit(\"setState\", { key: \"explanation\", value });\r\n },\r\n setPhoneIn({ commit }, value) {\r\n commit(\"setState\", { key: \"phone_in\", value });\r\n },\r\n selecteService({ commit }, value) {\r\n commit(\"setState\", { key: \"servicioSelected\", value });\r\n },\r\n setCleanModals({ commit }) {\r\n commit(\"setState\", { key: \"showUserInactive\", value: false });\r\n commit(\"setState\", { key: \"showUserOlder\", value: false });\r\n },\r\n setEnv({ commit }, value) {\r\n commit(\"setState\", { key: \"env\", value });\r\n },\r\n captchaValidation({ dispatch, commit, state }) {\r\n if (window.grecaptcha && window.grecaptcha.ready) {\r\n return new Promise((res, rej) => {\r\n window.grecaptcha.ready(() => {\r\n window.grecaptcha\r\n .execute(getEnvOnly().VUE_APP_RECAPTCHA_CODE, {\r\n action: \"submit_identification\"\r\n })\r\n .then(token => {\r\n console.log(token)\r\n // getToken(token, \"g_recaptcha_v3\", {\r\n // bunitId: getEnvOnly().VUE_APP_BUNIT\r\n // })\r\n return getToken()\r\n }\r\n )\r\n .then(() => res())\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in recaptcha request.\");\r\n rej(err);\r\n });\r\n });\r\n // throw new Error('aska');\r\n })\r\n .then(() => true)\r\n .catch(error => {\r\n console.error(error);\r\n dispatch(\"goToView\", { view: \"ErrorAutenticateVal\" });\r\n });\r\n }\r\n return Promise.reject(new Error(\"Recaptcha is not ready\"));\r\n },\r\n demoValidation({ commit, dispatch, state }, number_id) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n return dispatch(\"captchaValidation\")\r\n .then(\r\n () =>\r\n new Promise(res => {\r\n setTimeout(res, 2000);\r\n // throw new Error(\"Blña\");\r\n })\r\n )\r\n .then(() => {\r\n let client = state.test_users.find(\r\n u => u.NumeroIdentificacion == number_id\r\n );\r\n if (!client || (client && !client.NumeroIdentificacion)) {\r\n client = {\r\n NumeroIdentificacion: number_id,\r\n Celular: \"3017076719\",\r\n Correo: \"marcelo.salazar@gobrilliant.com\",\r\n Nombres: \"PEPITO\",\r\n PrimerApellido: \"PEREZ\",\r\n Resultado: 1,\r\n SegundoApellido: \"DEMO\"\r\n };\r\n }\r\n\r\n console.log(client);\r\n\r\n commit(\"setState\", {\r\n key: \"client\",\r\n value: client\r\n });\r\n dispatch(\"goToView\", { view: \"VerificationData\" });\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n })\r\n .catch(err => {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\"Error cached in Autenticate.vue -> demoValidation\", err);\r\n dispatch(\"goToView\", { view: \"ErrorAutenticateVal\" });\r\n });\r\n },\r\n async authAndQueryColmedica({ commit, dispatch, state }, pay) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n try {\r\n if (\r\n [\"Colmedica\", \"colmedicaof\", \"brilliant\", \"colmedicacm\"].includes(\r\n getEnvOnly().VUE_APP_COMPANY\r\n )\r\n ) {\r\n const data = await dispatch(\"captchaValidation\");\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name: \"Autoservice.actions. El captcha se validó bien.\"\r\n },\r\n { root: true }\r\n );\r\n if (data) {\r\n await dispatch(\"autorizacionColmedica\", pay);\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name:\r\n \"Autoservice.actions. La verificación del usuario fue correcta.\"\r\n },\r\n { root: true }\r\n );\r\n await dispatch(\"consultaClienteColmedica\", pay);\r\n }\r\n\r\n // check age\r\n if (\r\n (state.client && !state.client.Edad) ||\r\n (state.client &&\r\n state.client.Edad &&\r\n state.client.Edad >= state.env.VUE_APP_OLD_AGE_VALIDATION)\r\n ) {\r\n dispatch(\"goToView\", { view: \"Atention\" });\r\n } else {\r\n let err = `Este servicio es para mayores de ${state.env.VUE_APP_OLD_AGE} años`;\r\n\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in autorizacion colmedica.\");\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\r\n \"Error check age in Autenticate.vue -> authAndQueryColmedica\",\r\n err\r\n );\r\n commit(\"setState\", { key: \"showUserOlder\", value: true });\r\n throw err;\r\n }\r\n\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n }\r\n } catch (error) {\r\n dispatch(\r\n \"log/put\",\r\n {\r\n name: \"Autoservice.actions. Falló la autenticación del usuario.\",\r\n checked: false,\r\n message: error\r\n },\r\n { root: true }\r\n );\r\n console.error(\"ERROR\", error);\r\n return;\r\n }\r\n },\r\n autorizacionColmedica({ commit, dispatch, state }, pay) {\r\n return autorizar({\r\n TipoIdentificacion: pay.ti,\r\n NumeroIdentificacion: pay.nu\r\n }).catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in autorizacion colmedica.\");\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\r\n \"Error cached in Autenticate.vue -> authAndQueryColmedica\",\r\n err\r\n );\r\n commit(\"setState\", { key: \"showUserInactive\", value: true });\r\n throw err;\r\n });\r\n },\r\n consultaClienteColmedica({ commit, dispatch, state }, pay) {\r\n let dataClient = {\r\n TipoIdentificacion: pay.ti,\r\n NumeroIdentificacion: pay.nu\r\n };\r\n return consultarCliente(dataClient)\r\n .then(client =>\r\n commit(\"setState\", {\r\n key: \"client\",\r\n value: { ...dataClient, ...client }\r\n })\r\n )\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in autorizacion colmedica.\");\r\n throw err;\r\n });\r\n },\r\n guardarSolicitudDemo({ commit }) {\r\n return new Promise(res => setTimeout(res, 2000))\r\n .then(() => \"123456789\")\r\n .then(value => {\r\n commit(\"setState\", {\r\n key: \"colmedicaRequest\",\r\n value\r\n });\r\n return value;\r\n });\r\n },\r\n guardarSolicitudColmedica({ state, commit }) {\r\n\r\n console.log(\"state\")\r\n console.log(state)\r\n let b64final = state.b64final;\r\n\r\n let canals = {\r\n \"ad\": 6, // 6: QR\r\n \"web\": 7, // 7: QR Of. Virtual Web\r\n \"oa\": 8, // Of. Virtual Adulto Mayor\r\n }\r\n console.log(\"Object.keys(canals)\")\r\n console.log(Object.keys(canals))\r\n console.log(b64final.fu)\r\n console.log(Object.keys(canals).filter(c=> b64final.fu.includes(c)))\r\n console.log(Object.keys(canals).filter(c=> b64final.fu.includes(c))[0])\r\n console.log(canals[Object.keys(canals).filter(c=> b64final.fu.includes(c))[0]])\r\n\r\n let toSend = {\r\n ParametroSolicitudCanal: {\r\n CanalIngreso: canals[Object.keys(canals).filter(c=> b64final.fu.includes(c))[0]] || canals['ad'], \r\n DescripcionCanal: \"Descripcion Canal\",\r\n\r\n Identificacion: `${_get(state.b64final, \"ti\") || \"\"}${_get(\r\n state.b64final,\r\n \"nu\"\r\n ) || \"\"}`,\r\n\r\n NombreUsuario: `${_get(state.client, \"Nombres\") || \"\"} ${_get(\r\n state.client,\r\n \"PrimerApellido\"\r\n ) || \"\"} ${_get(state.client, \"SegundoApellido\") || \"\"}`.trim(),\r\n\r\n CorreoElectronico: _get(state.client, \"Correo\") || \"\",\r\n TelefonoCelular: _get(state.client, \"Celular\") || \"\",\r\n TipoAutorizacionId: _get(state.servicioSelected, \"code\")\r\n },\r\n ArchivoSolicitud: state.files.map(file => ({\r\n Archivo: _get(file, \"info.b64\"),\r\n NombreArchivo: _get(file, \"info.name\")\r\n }))\r\n };\r\n return guardarSolicitud(toSend).then(data => {\r\n let value = _get(data, \"RespuestaSolicitud.IdSolicitud\");\r\n commit(\"setState\", {\r\n key: \"colmedicaRequest\",\r\n value\r\n });\r\n return value;\r\n });\r\n },\r\n errorValidationTemporizer({ commit, state }) {\r\n if (state.errorValidationTemporizer !== null)\r\n clearTimeout(state.errorValidationTemporizer);\r\n if (!state.validationErrors.length) return;\r\n let timer = setTimeout(() => {\r\n commit(\"setState\", { key: \"validationErrors\", value: [] });\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: null });\r\n }, 5000);\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: timer });\r\n },\r\n\r\n updateB64Final({ commit, state }, value) {\r\n let currentState = state.b64final;\r\n commit(\"setState\", {\r\n key: \"b64final\",\r\n value: Object.assign({}, currentState, value)\r\n });\r\n },\r\n\r\n // functions documents\r\n clearDocs({ commit }) {\r\n commit(\"setState\", { key: \"files\", value: [] });\r\n },\r\n removeFile({ state, commit }, keyIndex) {\r\n let currentFiles = state.files;\r\n currentFiles.splice(keyIndex, 1);\r\n commit(\"setState\", { key: \"files\", value: currentFiles });\r\n },\r\n addFile({ state, commit }, file) {\r\n let currentFiles = state.files;\r\n currentFiles.push(file);\r\n commit(\"setState\", { key: \"files\", value: currentFiles });\r\n },\r\n setHorarioOutContinue({ commit }, value) {\r\n commit(\"setState\", { key: \"HorarioOutContinue\", value });\r\n },\r\n setClient({ commit }, data) {\r\n commit(\"setState\", {\r\n key: \"client\",\r\n value: data\r\n });\r\n },\r\n fetchTurnData({ commit }, code) {\r\n return new Promise(resolve => {\r\n getToken().then(key => {\r\n commit(\"setState\", { key: \"loading\", value: true });\r\n\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"authorization\", key);\r\n myHeaders.append(\"x-api-key\", getEnvOnly().VUE_APP_AWS_API_KEY);\r\n\r\n var requestOptions = {\r\n method: \"GET\",\r\n headers: myHeaders,\r\n redirect: \"follow\"\r\n };\r\n\r\n fetch(\r\n getEnvOnly().VUE_APP_AWS_API_URL + \"/turn_info/\" + code,\r\n requestOptions\r\n )\r\n .then(response => response.text())\r\n .then(result => {\r\n let res = JSON.parse(result);\r\n commit(\"setState\", { key: \"turn_from_code\", value: res.data });\r\n commit(\"setState\", { key: \"loading\", value: false });\r\n resolve();\r\n })\r\n .catch(error => {\r\n commit(\"setState\", { key: \"loading\", value: {} });\r\n resolve(error);\r\n });\r\n });\r\n });\r\n }\r\n};\r\n","export default {};\r\n","import { getEnvOnly } from \"../../helpers/Meet\";\r\n\r\nconst isModeTutorial = localStorage.getItem(\"isModeTutorial\");\r\n\r\nexport default {\r\n view: \"Home\",\r\n isModeTutorial: isModeTutorial ? JSON.parse(isModeTutorial) : true,\r\n history: [],\r\n HorarioOutContinue: false,\r\n // autenticacion\r\n charging: false,\r\n servicioSelected: null,\r\n validationErrors: [],\r\n client: null,\r\n isOlderAdult: false,\r\n service: \"\",\r\n errorValidationTemporizer: null,\r\n explanation: true,\r\n showModalError: false,\r\n showUserInactive: false,\r\n showUserOlder: false,\r\n env: {},\r\n servicesAvailable: [\r\n {\r\n label: \"Exámenes diagnósticos\",\r\n code_name: \"examenes_diagnosticos\",\r\n code: 1\r\n },\r\n {\r\n label: \"Procedimientos quirúrgicos\",\r\n code_name: \"procedimientos_quirurgicos\",\r\n code: 2\r\n },\r\n {\r\n label: \"Otros servicios\",\r\n code_name: \"otros_servicios\",\r\n code: 3\r\n }\r\n ],\r\n tipide: [\r\n { value: \"CC\", text: \"Cédula de Ciudadanía\" },\r\n { value: \"CE\", text: \"Cedula de Extranjería\" },\r\n { value: \"PA\", text: \"Pasaporte\" },\r\n { value: \"CD\", text: \"Carné Diplomático\" },\r\n { value: \"PE\", text: \"Permanencia Especial\" },\r\n { value: \"PT\", text: \"Permiso Protección Temporal\" },\r\n { value: \"SC\", text: \"Salvoconducto de Permanencia\" },\r\n { value: \"TE\", text: \"Tarjeta de Extranjería\" },\r\n { value: \"AS\", text: \"Adulto Sin Identificación\" }\r\n ],\r\n\r\n // documents\r\n files: [],\r\n colmedicaRequest: null,\r\n\r\n // B64 - enviado a bsix\r\n b64final: {\r\n ti: \"\",\r\n nu: \"\",\r\n ma: \"\",\r\n na: \"\",\r\n ap: \"\",\r\n tr: getEnvOnly().VUE_APP_DEBMEDIA_DEFAULT_TRAMITE,\r\n so: \"\",\r\n fu: \"oa\",\r\n em: \"\",\r\n ce: \"\",\r\n to: \"\",\r\n su: getEnvOnly().VUE_APP_DEBMEDIA_DEFAULT_BRANCH\r\n },\r\n turn_from_code: {},\r\n test_users: [\r\n {\r\n NumeroIdentificacion: 1033724553,\r\n Celular: \"3017076719\",\r\n Correo: \"oscar.jimenez@brilliant360.net\",\r\n Nombres: \"Oscar\",\r\n PrimerApellido: \"Jimenez\",\r\n Resultado: 1,\r\n Edad: 31,\r\n SegundoApellido: \"DEMO\"\r\n },\r\n {\r\n NumeroIdentificacion: 1000778041,\r\n Celular: \"3154494547\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Derek\",\r\n PrimerApellido: \"Paul\",\r\n Resultado: 1,\r\n Edad: 26,\r\n SegundoApellido: \"DEMO\"\r\n },\r\n {\r\n NumeroIdentificacion: 1073519274,\r\n Celular: \"3164960387\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Maria Paz\",\r\n PrimerApellido: \"Espejo\",\r\n Resultado: 1,\r\n Edad: 28,\r\n SegundoApellido: \"DEMO\"\r\n },\r\n {\r\n NumeroIdentificacion: 1019140052,\r\n Celular: \"3227466696\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Marcela\",\r\n PrimerApellido: \"Riascos\",\r\n Resultado: 1,\r\n Edad: 38,\r\n SegundoApellido: \"DEMO\"\r\n },\r\n {\r\n NumeroIdentificacion: 53038862,\r\n Celular: \"3182404149\",\r\n Correo: \"derek.paul@brilliant360.net\",\r\n Nombres: \"Paola\",\r\n PrimerApellido: \"Torres\",\r\n Resultado: 1,\r\n Edad: 29,\r\n SegundoApellido: \"DEMO\"\r\n } \r\n ],\r\n phone_in: \"\"\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\r\nimport _get from \"lodash/get\";\r\n\r\nexport default {\r\n setState: (state, pay) => {\r\n state.hasOwnProperty(_get(pay, \"key\", \"NA\"))\r\n ? (state[_get(pay, \"key\", \"NA\")] = _get(pay, \"value\", null))\r\n : null;\r\n }\r\n};\r\n","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: true,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"456\",\r\n Nombres: \"Pepe Peperoni\",\r\n Prioritario: false,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n },\r\n {\r\n TipoIdentificacion: \"CC\",\r\n NumeroIdentificacion: \"789\",\r\n Nombres: \"Natasha Cox\",\r\n Prioritario: true,\r\n ConCita: false,\r\n PrioridadMarcaValor: 1\r\n }\r\n];\r\n","export default [\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 10:00 am\",\r\n idCita: 123456,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC DEMo\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-15 2:00 pm\",\r\n idCita: 123457,\r\n EnCentroMedico: true\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-16 10:00 am\",\r\n idCita: 123458,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-17 10:00 am\",\r\n idCita: 123459,\r\n EnCentroMedico: false\r\n },\r\n {\r\n NombreCentroMedico: \"CMC BOCAGRANDE\",\r\n Especialidad: \"Odontología\",\r\n Fecha: \"2021-01-18 10:00 am\",\r\n idCita: 123460,\r\n EnCentroMedico: false\r\n }\r\n];\r\n","export default {\r\n bad: [\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Su cita no tiene un pago asociado. Por favor espere ser llamado en la recepción, para confirmar los datos.\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: -1,\r\n DescripcionPaso:\r\n \"Ya ha pasado la hora de la cita, por favor agende una nueva cita\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ],\r\n good: [\r\n {\r\n IdPaso: 1,\r\n DescripcionPaso:\r\n \"Su registro ha sido exitoso, por favor diríjase al PISO XXX SALA YYY CONSULTORIO N y espere el llamado del profesional para su cita de ESPECIALIDAD\",\r\n Orden: 1,\r\n Identificacion: \"CC789\"\r\n },\r\n {\r\n IdPaso: 2,\r\n DescripcionPaso:\r\n \"Su soporte de pago será enviado al correo electrónico registrado\",\r\n Orden: 2,\r\n Identificacion: \"CC789\"\r\n }\r\n ]\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport {\r\n getToken,\r\n getQueues,\r\n getStyles,\r\n getEnvOnly,\r\n getMenus,\r\n sendRecords,\r\n tracking\r\n} from \"../../helpers/Meet\";\r\nimport {\r\n validarPago\r\n} from \"../../helpers/colmedica_fila_virtual\";\r\nimport { autorizarFSFB, notificationsFSFB, citasFSFB, fetchCupsCode } from \"../../helpers/santafe_fila_firtual\";\r\nimport _get from \"lodash/get\";\r\nimport LS from \"../../helpers/localStorage\";\r\nimport moment from \"moment\";\r\nimport router from \"../../router\";\r\n/**\r\n * Data for demo porpouses\r\n */\r\nimport CentroDemo from \"./CentroDemo\";\r\nimport OficinaDemo from \"./OficinaDemo\";\r\nimport CitasDemo from \"./CitasDemo\";\r\nimport ValPagoDemo from \"./ValidarpagocitaDemo\";\r\n\r\nexport default {\r\n changeAuth({ commit }, value) {\r\n commit(\"setState\", { key: \"showAuth\", value });\r\n },\r\n\r\n setCustomArea({ commit }, value) {\r\n commit(\"setState\", { key: \"customArea\", value });\r\n },\r\n\r\n async getSites({ commit }) {\r\n const sites = await getQueues();\r\n if (sites && sites.length)\r\n commit(\"setState\", { key: \"sites\", value: sites });\r\n },\r\n\r\n async getStyles({ commit }) {\r\n try {\r\n const styles = await getStyles();\r\n commit(\"setState\", {\r\n key: \"primaryColorBlue\",\r\n value: styles?.bsix_client?.companyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"secondColorBlue\",\r\n value: styles?.bsix_client?.secondaryCompanyColor\r\n });\r\n commit(\"setState\", {\r\n key: \"threeColorBlueColor\",\r\n value: styles?.bsix_client?.contrastTextColor\r\n });\r\n } catch (error) {\r\n console.error(\"Cant get Styles\", error);\r\n }\r\n },\r\n\r\n async getMenus({ commit }, { code, area }) {\r\n const { menu, actions, customMenu } = await getMenus(code);\r\n commit(\"setState\", { key: \"menu\", value: area ? customMenu[area] : menu });\r\n commit(\"setState\", { key: \"actions\", value: actions });\r\n },\r\n\r\n goToView({ commit, state, dispatch }, { view, actionError, fromError }) {\r\n if (state.isAtril) {\r\n dispatch(\"setTimer\", true, { root: true });\r\n }\r\n if (actionError) {\r\n commit(\"setState\", { key: \"actionError\", value: actionError });\r\n }\r\n\r\n if (fromError) {\r\n commit(\"setState\", { key: \"fromError\", value: fromError });\r\n }\r\n\r\n commit(\"setState\", { key: \"view\", value: view });\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.push(view);\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n },\r\n\r\n setExplanation({ commit }, value) {\r\n commit(\"setState\", { key: \"explanation\", value });\r\n },\r\n\r\n selecteService({ commit }, value) {\r\n commit(\"setState\", { key: \"servicioSelected\", value });\r\n },\r\n\r\n goBack({ commit, state }) {\r\n let newArray = JSON.parse(JSON.stringify(state.history));\r\n newArray.pop();\r\n commit(\"setState\", { key: \"history\", value: newArray });\r\n commit(\"setState\", {\r\n key: \"view\",\r\n value: state.history[state.history.length - 1]\r\n });\r\n },\r\n\r\n async setCitaCM({ commit, dispatch, state }, appointment) {\r\n // Lf Tested 21-01-21\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"citaActual\", value: appointment });\r\n commit(\"setState\", { key: \"currentValidation\", value: [] });\r\n try {\r\n\r\n let currentSite = state.sites.find(s=>s.code == state.sedeCode);\r\n\r\n // Check Payments enabled\r\n let paymentsEnabled = currentSite.customAreas[state.customArea];\r\n\r\n console.log(\"PAYMENTS MOBILE ENABLED: \" + paymentsEnabled.enablePayments)\r\n\r\n // Check if appointment is pending for pay\r\n // if(appointment.authorized_appoinment && appointment.appoinment_paid == 'NO' && appointment.appoinment_url_paid && !appointment.goAsesor){\r\n if(\r\n appointment.authorized_appoinment == 'SI' && \r\n appointment.appoinment_paid == 'NO' && \r\n (appointment.appoinment_url_paid || appointment.cost_appoinment > 0) && \r\n paymentsEnabled.enablePayments\r\n ){\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n dispatch(\"goToView\", { view: \"Payment\" });\r\n return router.replace({ query: { area: state.customArea, id_cita_pago: appointment.number_form } })\r\n }\r\n \r\n // check actions\r\n // let allConditions = state.sites.find(s=>s.code == state.sedeCode);\r\n let conditions = currentSite.conditions[state.customArea];\r\n\r\n // check conditions\r\n let code = conditions.find(c=>{\r\n if(c.appoinment_paid == appointment.appoinment_paid && \r\n c.authorized_appoinment == appointment.authorized_appoinment) \r\n return c\r\n })\r\n\r\n // serch actions\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value: code\r\n });\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n\r\n return dispatch(\"turnCall\", false);\r\n\r\n } catch (error) {\r\n console.error(\"In setCitaCM action\", error);\r\n }\r\n commit(\"setState\", {\r\n key: \"selectedAccion\",\r\n value:\r\n state.menu[0] && state.menu[0].children // TODO: Only 2 levels. If require multilevel, fix it with a recursive function\r\n ? state.menu[0].children[0]\r\n : state.menu[0]\r\n });\r\n dispatch(\"goToView\", { view: \"Normativity\" });\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n },\r\n\r\n setAction({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"selectedAccion\", value });\r\n // if (value?.evaluationComponent)\r\n // return dispatch(\"goToView\", { view: value.evaluationComponent });\r\n if (value?.ignorePriority) {\r\n commit(\"setState\", { key: \"priority\", value: false });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n } \r\n else {\r\n if (value.userAge && value.userAge >= 60) {\r\n commit(\"setState\", { key: \"priority\", value: true });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n } else dispatch(\"goToView\", { view: \"Oldest\" });\r\n } \r\n\r\n },\r\n\r\n confirmedAction({ state, commit, dispatch }) {\r\n // / state.selectedaction tiene ignorePriority?\r\n if (state.selectedAccion?.ignorePriority)\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n else dispatch(\"goToView\", { view: \"Normativity\" });\r\n },\r\n\r\n turnCall({ commit, dispatch }, value) {\r\n commit(\"setState\", { key: \"priority\", value });\r\n dispatch(\"goToView\", { view: \"Turn\" });\r\n },\r\n\r\n async getCitaValidation(ctx, { idCita }) {\r\n let toReturn = [];\r\n if (getEnvOnly().VUE_APP_DEMO_MODE === \"true\") {\r\n if (idCita === 123456) return ValPagoDemo.good;\r\n else ValPagoDemo.bad;\r\n } else {\r\n try {\r\n toReturn = await validarPago({ idCita });\r\n } catch (error) {\r\n console.error(\"In getCitaValidation\", error);\r\n }\r\n }\r\n return toReturn;\r\n },\r\n\r\n captchaValidation({ dispatch, commit, state }) {\r\n if (window.grecaptcha && window.grecaptcha.ready) {\r\n return new Promise((res, rej) => {\r\n window.grecaptcha.ready(() => {\r\n window.grecaptcha\r\n .execute(getEnvOnly().VUE_APP_RECAPTCHA_CODE, {\r\n action: \"submit_identification\"\r\n })\r\n .then(token =>\r\n getToken(token, \"g_recaptcha_v3\", {\r\n bunitId: getEnvOnly().VUE_APP_BUNIT\r\n })\r\n )\r\n .then(() => res())\r\n .catch(err => {\r\n commit(\"setState\", {\r\n key: \"validationErrors\",\r\n value: [...state.validationErrors, err]\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n console.error(\"error in recaptcha request.\");\r\n rej(err);\r\n });\r\n }); //\r\n // throw new Error('X ERROR');\r\n }).catch(err => {\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n console.error(\"Error cached in Autenticate.vue -> demoValidation\", err);\r\n dispatch(\"goToView\", { view: \"ErrorAutenticate\" });\r\n });\r\n }\r\n return Promise.reject(new Error(\"Recaptcha is not ready\"));\r\n },\r\n\r\n changeDocInfo({ commit }, value) {\r\n commit(\"setState\", { key: \"docInfo\", value });\r\n },\r\n\r\n async authenticate({ dispatch, commit, state }, toSend) {\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n commit(\"setState\", { key: \"error\", value: null });\r\n let nextComponent = {\r\n view: \"\"\r\n };\r\n try {\r\n if (!state.isAtril) await dispatch(\"captchaValidation\");\r\n try {\r\n await dispatch(\r\n getEnvOnly().VUE_APP_DEMO_MODE === \"true\"\r\n ? \"demoValidation\"\r\n : \"authAndQuery\",\r\n toSend\r\n );\r\n\r\n // check user exist\r\n if(state.currentUser && !state.currentUser.id_patient){\r\n throw new Error(\"El usuario no se encuentra registrado en el sistema\");\r\n }\r\n\r\n nextComponent.view =\r\n state.citas && state.citas.length ? \"Dates\" : \"ConfirmDataAuth\";\r\n // }\r\n } catch (error) {\r\n console.error(\"Error in authorization\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: {\r\n zone: \"authorization\",\r\n message: \"El usuario no se encuentra registrado en el sistema\"\r\n }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n nextComponent.view = \"Help\";\r\n }\r\n } catch (error) {\r\n console.error(\"Error in Captcha\", error);\r\n commit(\"setState\", {\r\n key: \"error\",\r\n value: { zone: \"recaptcha\", message: \"La validación del captcha falló\" }\r\n });\r\n dispatch(\"errorValidationTemporizer\");\r\n }\r\n dispatch(\"goToView\", nextComponent);\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n },\r\n\r\n async demoValidation({ commit, state }, toSend) {\r\n let userfinded = state.userDemo.find(\r\n usr => usr.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n await new Promise(res => setTimeout(res, 2000));\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n if (!userfinded) throw new Error(\"Invalid demo User\");\r\n let originFinded = (state.currentSite?.type === \"cm\"\r\n ? CentroDemo\r\n : OficinaDemo\r\n ).find(\r\n cm =>\r\n cm.TipoIdentificacion == toSend?.TipoIdentificacion &&\r\n cm.NumeroIdentificacion == toSend?.NumeroIdentificacion\r\n );\r\n if (!originFinded) throw new Error(\"User not have meetings\");\r\n toSend = { ...toSend, ...originFinded };\r\n if (\r\n state.currentSite?.type === \"cm\" &&\r\n toSend.NumeroIdentificacion === \"789\"\r\n )\r\n commit(\"setState\", { key: \"citas\", value: CitasDemo });\r\n else commit(\"setState\", { key: \"citas\", value: [] });\r\n commit(\"setState\", { key: \"currentUser\", value: toSend });\r\n LS.setItem(\"currentUser\", toSend);\r\n },\r\n\r\n async authAndQuery({ state, commit }, pay) {\r\n try {\r\n \r\n commit(\"setState\", { key: \"preloadPayments\", value: true });\r\n commit(\"setState\", { key: \"charging\", value: true });\r\n const userResponse = await autorizarFSFB({\r\n TipoIdentificacion: pay.TipoIdentificacion,\r\n NumeroIdentificacion: pay.NumeroIdentificacion\r\n });\r\n\r\n if(userResponse.message && userResponse.message.includes(\"Failed to fetch\")){\r\n commit(\"setState\", { key: \"preloadPayments\", value: false });\r\n throw new Error(\"Connection Error\");\r\n }\r\n\r\n let citasList = [];\r\n if (userResponse && userResponse.id_patient) {\r\n\r\n if(state.customArea){\r\n\r\n // Check appointments\r\n try {\r\n citasList = await citasFSFB(userResponse);\r\n } catch(e) {\r\n commit(\"setState\", { key: \"preloadPayments\", value: false });\r\n throw new Error(\"Connection Error\");\r\n }\r\n\r\n let currentSite = state.sites.find(s=>s.code == state.sedeCode);\r\n let customArea = currentSite.customAreas[state.customArea];\r\n \r\n // check cups_code\r\n let cups_code = await fetchCupsCode( customArea.cup_code ? customArea.cup_code : state.customArea.toUpperCase());\r\n cups_code = cups_code.map(c=>c.cups_code?.S)\r\n \r\n // console.log(state.sites)\r\n // console.log(state.sedeCode)\r\n \r\n // let customArea = state.sites.find(s=>s.code == state.sedeCode).customAreas;\r\n // citasList = citasList.filter(c=>c.service.code == customArea[state.customArea].fsfbCode);\r\n citasList = citasList.filter( c=> cups_code.includes(c.attention.code) );\r\n citasList = citasList.sort((itemA, itemB) => {\r\n const itemBHCS = moment().hour(itemB.hour_appoinment.split(\":\")[0]);\r\n const itemAHCS = moment().hour(itemA.hour_appoinment.split(\":\")[0]);\r\n \r\n if (moment().diff(itemAHCS.hour()) - moment().diff(itemBHCS.hour()) > 0) {\r\n return -1;\r\n }\r\n if (\r\n moment().diff(itemAHCS.hour()) - moment().diff(itemBHCS.hour()) <=\r\n 0\r\n ) {\r\n return 1;\r\n }\r\n return 0;\r\n \r\n })\r\n }\r\n } else {\r\n commit(\"setState\", { key: \"preloadPayments\", value: false });\r\n throw new Error(\"Invalid Authorization in Fundación Santafe\");\r\n }\r\n\r\n commit(\"setState\", { key: \"citas\", value: citasList });\r\n commit(\"setState\", {\r\n key: \"currentUser\",\r\n value: { ...pay, ...userResponse }\r\n });\r\n\r\n commit(\"setState\", { key: \"charging\", value: false });\r\n commit(\"setState\", { key: \"preloadPayments\", value: false });\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n commit(\"setState\", { key: \"preloadPayments\", value: false });\r\n throw error;\r\n }\r\n },\r\n\r\n async handleMobileAppointments({ commit }, info){\r\n // Check appointments\r\n commit(\"setState\", { key: \"preloadPayments\", value: true });\r\n let citasList = await citasFSFB(info);\r\n commit(\"setState\", { key: \"citas\", value: citasList });\r\n commit(\"setState\", { key: \"preloadPayments\", value: false });\r\n },\r\n\r\n handleSendRecords({ commit }, info) {\r\n return sendRecords(info)\r\n .then(response => {\r\n // commit(\"saveRecord\", response);\r\n commit(\"setState\", { key: \"saveRecord\", value: response });\r\n return response;\r\n })\r\n .catch(error => {\r\n // commit(\"errorRecord\", error);\r\n commit(\"setState\", { key: \"errorRecord\", value: error });\r\n return {\r\n response: false,\r\n message: error\r\n };\r\n });\r\n },\r\n\r\n handleTracking({ commit }, info) {\r\n return tracking(info)\r\n // .then(response => {\r\n // commit(\"setState\", { key: \"trackingRecord\", value: response });\r\n // return response;\r\n // })\r\n // .catch(error => {\r\n // commit(\"setState\", { key: \"errorTrackingRecord\", value: error });\r\n // return {\r\n // response: false,\r\n // message: error\r\n // };\r\n // });\r\n },\r\n\r\n errorValidationTemporizer({ commit, state }) {\r\n if (state.errorValidationTemporizer !== null)\r\n clearTimeout(state.errorValidationTemporizer);\r\n if (state.error) return;\r\n let timer = setTimeout(() => {\r\n commit(\"setState\", { key: \"error\", value: null });\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: null });\r\n }, 5000);\r\n commit(\"setState\", { key: \"errorValidationTemporizer\", value: timer });\r\n },\r\n\r\n setSede({ commit }, value) {\r\n commit(\"setState\", { key: \"sedeCode\", value });\r\n },\r\n\r\n cleanCurrentUser({ commit }) {\r\n commit(\"setState\", { key: \"currentUser\", value: null });\r\n LS.removeItem(\"currentUser\");\r\n },\r\n\r\n setEmbebedData({commit}, value) {\r\n commit(\"setState\", { key: \"embebedData\", value: value });\r\n },\r\n\r\n async mobileNotification({ state, commit }, pay) {\r\n\r\n try {\r\n \r\n // check notification\r\n let notification = await notificationsFSFB({\r\n \"tdoc\": pay.type == 1 ? state.convertDocumentsFromString[state.currentUser.TipoIdentificacion] : null,\r\n \"doc\": pay.type == 1 ? state.currentUser.NumeroIdentificacion : null,\r\n \"title\": pay.title,\r\n \"body\": pay.body,\r\n \"type\": pay.type,\r\n \"module\": state.customArea //\"derivaciones\"\r\n });\r\n return notification.response;\r\n \r\n } catch (error) {\r\n commit(\"setState\", { key: \"currentUser\", value: pay });\r\n throw error;\r\n }\r\n\r\n },\r\n\r\n handlePreloadAppointments({ commit }, pay){\r\n commit(\"setState\", { key: \"preloadPayments\", value: pay });\r\n },\r\n\r\n setFromQR({ commit }, pay){\r\n commit(\"setState\", { key: \"fromQR\", value: pay });\r\n }\r\n};\r\n","export default {};\r\n","import LS from \"../../helpers/localStorage\";\r\n\r\nexport default {\r\n view: \"Home\",\r\n isAtril: false,\r\n previousView: \"\",\r\n previousViewTwo: \"\",\r\n showAuth: false,\r\n HorarioOutContinue: false,\r\n charging: false,\r\n error: null,\r\n docInfo: {},\r\n tramite_info: {\r\n queueId: \"idSASASASXX2C12\",\r\n branchId: \"5a46d454da6a6\",\r\n params: {}\r\n },\r\n selectedArea: null,\r\n loadApi: true,\r\n fromError: \"\",\r\n actionError: () => {},\r\n tramiteInUserEvaluation: null,\r\n tramiteByDefault: null,\r\n validationErrors: [],\r\n errorValidationTemporizer: null,\r\n currentUser: LS.getItem(\"currentUser\") || null,\r\n servicioSelected: null,\r\n selectedAccion: null,\r\n turn: null,\r\n time_received_turn: undefined,\r\n catch_all: null,\r\n priority: false,\r\n history: [],\r\n menu: [],\r\n showModalError: false,\r\n actions: null,\r\n tipide: [\r\n // { value: null, text: \"Seleccione una opción\" },\r\n { value: \"CC\", text: \"Cédula de ciudadanía\" },\r\n { value: \"PS\", text: \"Pasaporte\" },\r\n { value: \"TI\", text: \"Tarjeta de identidad\" },\r\n { value: \"RC\", text: \"Registro civil\" },\r\n { value: \"CE\", text: \"Cédula de extranjería\" },\r\n { value: \"CD\", text: \"Carné diplomático\" },\r\n { value: \"SC\", text: \"Salvoconducto\" },\r\n { value: \"NI\", text: \"NIT\" },\r\n { value: \"NU\", text: \"NUIP\" }\r\n ],\r\n citas: [\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: true,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n },\r\n {\r\n EnCentroMedico: false,\r\n Tramite: \"Consulta programada\",\r\n NumeroDeConfirmacion: \"1546454654\",\r\n Especialidad: \"Cardiologia\",\r\n Fecha: \"13/02/2022,9:00a.m.\"\r\n }\r\n ],\r\n citaActual: null,\r\n currentValidation: [],\r\n currentSite: null,\r\n userDemo: [\r\n {\r\n NumeroIdentificacion: \"456\"\r\n },\r\n {\r\n NumeroIdentificacion: \"789\"\r\n }\r\n ],\r\n queueList: [],\r\n customArea: null,\r\n sites: [],\r\n primaryColorBlue: null,\r\n secondColorBlue: null,\r\n threeColorBlueColor: null,\r\n embebedData: null,\r\n convertDocuments: {\r\n \"4\":\"CC\",\r\n \"3\":\"TI\",\r\n \"P\":\"PS\",\r\n \"5\":\"CE\",\r\n \"2\":\"RC\",\r\n \"A\":\"SI\",\r\n \"D\":\"CD\",\r\n \"M\":\"MI\",\r\n \"6\":\"NI\",\r\n \"N\":\"NU\",\r\n \"S\":\"SC\",\r\n \"AN\":\"SN\"\r\n },\r\n convertDocumentsFromString: {\r\n \"CC\": \"4\",\r\n \"TI\": \"3\",\r\n \"PS\": \"P\",\r\n \"CE\": \"5\",\r\n \"RC\": \"2\",\r\n \"SI\": \"A\",\r\n \"CD\": \"D\",\r\n \"MI\": \"M\",\r\n \"NI\": \"6\",\r\n \"NU\": \"N\",\r\n \"SC\": \"S\",\r\n \"SN\": \"A\"\r\n },\r\n preloadPayments: false,\r\n sedeCode: null,\r\n fromQR: false,\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable no-prototype-builtins */\r\nexport default {\r\n setState: (state, pay) =>\r\n pay &&\r\n typeof pay === \"object\" &&\r\n !Array.isArray(pay) &&\r\n pay.hasOwnProperty(\"key\") &&\r\n pay.hasOwnProperty(\"value\") &&\r\n state.hasOwnProperty(pay.key)\r\n ? (state[pay.key] = pay.value)\r\n : null\r\n};\r\n","import {\r\n getEnqueueTurn,\r\n getTurnInfo,\r\n getCorrelation,\r\n setCorrelation,\r\n cancelTurn,\r\n getEnvOnly,\r\n // getCustomersWithTurns\r\n} from \"../../helpers/Meet\";\r\nimport axios from \"axios\";\r\nimport kuid from \"kuid\";\r\nimport _get from \"lodash/get\";\r\nimport LS from \"../../helpers/localStorage\";\r\nimport clientInfo from \"../../helpers/clientInfo\";\r\nimport { utf8_to_b64 } from \"../../utils/decoder\";\r\nimport moment from \"moment\";\r\n\r\nexport default {\r\n extrafieldsConverter(\r\n { rootState },\r\n {\r\n queueId,\r\n source,\r\n branchId,\r\n coorelation_key,\r\n params,\r\n showable = [\r\n {\r\n in: \"workstation\",\r\n format: \"both\"\r\n }\r\n ]\r\n }\r\n ) {\r\n // dni: this.user_id,\r\n // cuil: rootState.sessionMaster,\r\n // cuit: this.tipide,\r\n // marcacion: marcacion Colmedica,\r\n // cedulaIdentidad: rootState.sessionMaster,\r\n // email: this.e_mail,\r\n // firstName: this.name,\r\n // lastName: this.last_name,\r\n // phone: this.phone_number,\r\n let client = clientInfo();\r\n client.sm = rootState.sessionMaster;\r\n let toPack = {\r\n na: params?.firstName,\r\n la: params?.lastName,\r\n ma: params?.marcacion,\r\n ti: params?.cuit,\r\n nu: params?.dni,\r\n ce: params?.phone,\r\n em: params?.marcacion,\r\n to: undefined,\r\n sm: rootState.sessionMaster,\r\n su: branchId,\r\n tr: queueId,\r\n fu: source,\r\n position: rootState.position,\r\n client\r\n };\r\n let appointment = sessionStorage.getItem(\"appointment\");\r\n let fecha_cita = sessionStorage.getItem(\"fecha_cita\");\r\n toPack.staff = JSON.parse(sessionStorage.getItem(\"info_cita\"));\r\n return [\r\n ...(params?.extraFields || []),\r\n {\r\n showable,\r\n Videollamada: `Presiona aquí`,\r\n appointment,\r\n fecha_cita\r\n }\r\n ];\r\n },\r\n\r\n async getTurn({ commit, dispatch, state, rootState }, infoOfTurn) {\r\n if (!infoOfTurn) {\r\n throw new Error(\"Invalid info to create Turn\");\r\n }\r\n let {\r\n source,\r\n queueId,\r\n onlyGenerate,\r\n branchId,\r\n coorelation_key = kuid(),\r\n withVideocall,\r\n withAnalitycExtraFields,\r\n withAuthorize,\r\n params\r\n } = infoOfTurn;\r\n if (state.info && !onlyGenerate)\r\n return dispatch(\"getTurnStatus\", _get(state.info, \"code\"));\r\n params = {\r\n ...params,\r\n cuil: rootState.sessionMaster,\r\n cedulaIdentidad: rootState.sessionMaster\r\n };\r\n if (withVideocall || withAnalitycExtraFields) {\r\n // {\r\n // in: \"workstation\", // \"workstation / ticket / player / all\",\r\n // format: \"onlyKey\"\r\n // }\r\n let showable = withAnalitycExtraFields ? [] : undefined;\r\n params = {\r\n ...params,\r\n extraFields: await dispatch(\"extrafieldsConverter\", {\r\n source,\r\n queueId,\r\n branchId,\r\n coorelation_key,\r\n params,\r\n showable\r\n })\r\n };\r\n }\r\n\r\n // add authorize in FSFB\r\n if(withAuthorize && withAuthorize.hasAuthorize) {\r\n let _extraFields = params.extraFields || []\r\n _extraFields.push({\r\n \"Autorización\": withAuthorize.authorize ? \"Sí\" : \"No\"\r\n })\r\n params.extraFields = _extraFields;\r\n }\r\n\r\n\r\n // Feth new turn\r\n let turnInfo = await (getEnvOnly().VUE_APP_DEBQ_DIRECT == \"true\"\r\n ? axios.post(`/queue/${queueId}/branch/${branchId}/enqueue`, params)\r\n : getEnqueueTurn(queueId, branchId, params)\r\n ).then(response =>\r\n getEnvOnly().VUE_APP_DEBQ_DIRECT == \"true\" ? response.data : response\r\n );\r\n if (turnInfo.error) throw new Error(\"Request error\");\r\n turnInfo.status = \"WAITING_TO_BE_CALLED\";\r\n commit(\"setState\", { key: \"info\", value: turnInfo });\r\n if (!onlyGenerate) {\r\n commit(\"setState\", {\r\n key: \"epoch\",\r\n value: moment.utc().unix()\r\n });\r\n commit(\"setState\", { key: \"info\", value: turnInfo });\r\n LS.setItem(\"turnInfo\", turnInfo);\r\n if (withVideocall && turnInfo?.code)\r\n setCorrelation({ kuidId: coorelation_key, turnId: turnInfo.code });\r\n dispatch(\"getTurnStatus\", _get(turnInfo, \"code\"));\r\n }\r\n\r\n // remove sessionStorage\r\n sessionStorage.removeItem(\"appointment\");\r\n sessionStorage.removeItem(\"fecha_cita\");\r\n sessionStorage.removeItem(\"info_cita\");\r\n\r\n return turnInfo;\r\n \r\n },\r\n\r\n async getTurnRequest(__, code) {\r\n return (await axios.get(`/turn/code/${code}`)).data;\r\n },\r\n\r\n async getTurnStatus({ commit, state, dispatch }, code) {\r\n let codeToSend = code || _get(state.info, \"code\");\r\n if (codeToSend) {\r\n let response = _get(state.info, \"code\")\r\n ? JSON.parse(JSON.stringify(state.info))\r\n : null;\r\n try {\r\n let prevResponse = response;\r\n response = await getTurnInfo(codeToSend);\r\n commit(\"setState\", {\r\n key: \"infoErrorCount\",\r\n value: 0\r\n });\r\n if (response.error) throw new Error(\"Request error\");\r\n if (_get(response, \"code\") && _get(response, \"jsonDetails\")) {\r\n commit(\"setState\", { key: \"info\", value: response });\r\n } else {\r\n let errorResp = JSON.stringify(JSON.parse(response));\r\n console.error(\"Corrupted response\", errorResp);\r\n window.RB.error(\"Corrupted response in getTurnStatus\", errorResp);\r\n response = prevResponse;\r\n }\r\n } catch (error) {\r\n console.error(\"Error in query from DebMedia\", error);\r\n commit(\"setState\", {\r\n key: \"infoErrorCount\",\r\n value: state.infoErrorCount + 1\r\n });\r\n if (state.infoErrorCount % 5 === 0)\r\n window.RB.error(\"Many request has failed in getTurnStatus\", error);\r\n }\r\n clearTimeout(state.timer);\r\n commit(\"setState\", { key: \"timer\", value: null });\r\n let timer = setTimeout(() => dispatch(\"getTurnStatus\", codeToSend), 2000);\r\n commit(\"setState\", { key: \"timer\", value: timer });\r\n return response;\r\n } else {\r\n console.error(\r\n \"Polling is forced to stop in Turn component. Invalid Turn Code.\"\r\n );\r\n window.RB.error(\r\n \"Polling is forced to stop in Turn component. Invalid Turn Code.\",\r\n JSON.stringify({ code, turn: _get(state.info, \"code\") })\r\n );\r\n dispatch(\"cancelTurnAction\");\r\n return;\r\n }\r\n },\r\n\r\n getTurnCoorelation(ctx, code) {\r\n console.log(\"GET TURN COORELATION FROM TURN\")\r\n if (!code)\r\n return Promise.reject(\r\n new Error(\"Invalid Coorelation Code in Turn component.\")\r\n );\r\n return getCorrelation(code).then(coorData => _get(coorData, \"code_title\"));\r\n },\r\n\r\n async cancelTurnAction({ state, commit }, onlyClean) {\r\n let results;\r\n if (!onlyClean) {\r\n try {\r\n if (!state.info?.code)\r\n results = { message: \"Turn was canceled before\" };\r\n else if (state.info?.status === \"WAITING_TO_BE_CALLED\")\r\n results =\r\n getEnvOnly().VUE_APP_DEBQ_DIRECT == \"true\"\r\n ? await axios\r\n .post(`/turn/${state.info.code}/cancel`)\r\n .then(response => response.data)\r\n : await cancelTurn(state.info.code);\r\n // eslint-disable-next-line no-empty\r\n } catch (error) {}\r\n }\r\n LS.removeItem(\"turnInfo\");\r\n commit(\"setState\", { key: \"info\", value: null });\r\n return results;\r\n },\r\n setTurnUUID({ commit }, code=null) {\r\n commit(\"setState\", {\r\n key: \"turnUUID\",\r\n value: Math.floor(Date.now() / 1000) + (code || kuid())\r\n });\r\n }\r\n};\r\n","export default {};\r\n","// import LS from \"../../helpers/localStorage\";\r\n\r\nexport default {\r\n info: null, // LS.getItem(\"turnInfo\")\r\n timer: null,\r\n epoch: null,\r\n infoErrorCount: 0,\r\n turnUUID: \"\",\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","/* eslint-disable */\r\nexport default {\r\n setState: (state, { key, value}) => {\r\n key && value !== undefined && state.hasOwnProperty(key)\r\n ? (state[key] = value)\r\n : null;\r\n }\r\n};\r\n","export default {\r\n put({ commit, state }, { name, checked = true, message }) {\r\n commit(\"setState\", {\r\n key: \"list\",\r\n value: [...state.list, { name, checked, message }]\r\n });\r\n },\r\n\r\n showModal({ commit }, value) {\r\n commit(\"setState\", { key: \"showModal\", value });\r\n },\r\n\r\n clear({ commit }) {\r\n commit(\"setState\", { key: \"list\", value: [] });\r\n }\r\n};\r\n","export default {};\r\n","export default {\r\n showModal: false,\r\n /** Example\r\n * {\r\n name: \"Debugger Animals\",\r\n checked: false, // true is green check, false is red cross\r\n message: \"'t' is Not Defined\"\r\n }\r\n */\r\n list: []\r\n};\r\n","import mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};\r\n","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport getters from \"./getters\";\r\nimport state from \"./states\";\r\n\r\n// modules\r\nimport meeting from \"./meeting\";\r\nimport recording from \"./recording\";\r\nimport autoservice from \"./autoservice\";\r\nimport virtualrow from \"./virtualrow\";\r\nimport virtualrowFSFB from \"./virtualrowFSFB\";\r\nimport virtualrowFSFBAU from \"./virtualrowFSFBAU\";\r\nimport virtualrowAtrilVideo from \"./virtualrow_atril_video\";\r\nimport appointments from \"./appointments\";\r\nimport olderAdult from \"./older_adult\";\r\nimport mobileFSFB from \"./mobileFSFB\";\r\n\r\nimport turns from \"./turn\";\r\nimport log from \"./log\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport let store = new Vuex.Store({\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n\r\n modules: {\r\n meeting,\r\n recording,\r\n autoservice,\r\n virtualrow,\r\n virtualrowFSFB,\r\n virtualrowFSFBAU,\r\n virtualrow_atril_video: virtualrowAtrilVideo,\r\n turns,\r\n log,\r\n appointments,\r\n olderAdult,\r\n mobileFSFB\r\n }\r\n});\r\n","// Libraries\r\nimport _get from \"lodash/get\";\r\nimport { getEnvironments } from \"../helpers/Meet\";\r\nimport { store } from \"../store\";\r\n\r\n// Routes\r\nimport Vue from \"vue\";\r\nimport VueRouter from \"vue-router\";\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes = [\r\n {\r\n path: \"/home\",\r\n redirect: \"/\"\r\n },\r\n {\r\n path: \"/\",\r\n name: \"Home\",\r\n component: () => import(\"../views/Home\"),\r\n beforeEnter(to, from, next) {\r\n if (_get(to, \"query.pr\")) next({ name: \"Decoder\", query: to.query });\r\n else next({ name: \"SelfService\" });\r\n }\r\n },\r\n {\r\n path: \"/simulator\",\r\n name: \"Simulator\",\r\n component: () => import(\"../views/simulator.vue\")\r\n },\r\n {\r\n path: \"/recorder\",\r\n name: \"Recorder\",\r\n component: () => import(\"../views/Recorder.vue\")\r\n },\r\n {\r\n path: \"/turn_assigner/:turnId?\",\r\n name: \"TurnAssigner\",\r\n component: () => import(\"../views/TurnAssigner.vue\")\r\n },\r\n {\r\n path: \"/meeting/:meetId?\",\r\n name: \"Meeting\",\r\n component: () => import(\"../views/MeetingWrapper.vue\")\r\n },\r\n {\r\n path: \"/meeting_direct/:meetId?\",\r\n name: \"MeetingDirect\",\r\n component: () => import(\"../views/MeetingDirect.vue\")\r\n },\r\n {\r\n path: \"/agent\",\r\n component: () => import(\"../views/Agent.vue\"),\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"Agent\",\r\n component: () => import(\"../views/AgentBase.vue\")\r\n },\r\n {\r\n path: \":meetId\",\r\n name: \"MeetingAgent\",\r\n component: () => import(\"../views/MeetingWrapper.vue\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/silver\",\r\n component: () => import(\"../views/Agent.vue\"),\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"AgentSilver\",\r\n component: () => import(\"../views/silver/AgentSilver\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/out_of_service\",\r\n name: \"OutService\",\r\n component: () => import(\"../views/OutOperations\")\r\n },\r\n {\r\n path: \"/before-turn\",\r\n name: \"BeforeTurn\",\r\n component: () => import(\"../views/BeforeTurn.vue\"),\r\n props: true\r\n },\r\n {\r\n path: \"/turno\",\r\n name: \"Turno\",\r\n component: () => import(\"../views/Turno.vue\"),\r\n props: true\r\n },\r\n {\r\n path: \"/canceled\",\r\n name: \"Canceled\",\r\n component: () => import(\"../views/Canceled.vue\")\r\n },\r\n {\r\n path: \"/finished\",\r\n name: \"Finished\",\r\n component: () => import(\"../views/Finished.vue\")\r\n },\r\n {\r\n path: \"/finished_fv_atril\",\r\n name: \"Finished46\",\r\n component: () => import(\"../views/fv_atril_video/Finished.vue\")\r\n },\r\n {\r\n path: \"/canceled_agent\",\r\n name: \"CanceledAgent\",\r\n component: () => import(\"../views/Canceled_agent.vue\")\r\n },\r\n {\r\n path: \"/profile\",\r\n name: \"Profile\",\r\n component: () => import(\"../views/ProfilePM.vue\")\r\n },\r\n {\r\n path: \"/profile_dev\",\r\n name: \"Profile_dev\",\r\n component: () => import(\"../views/Profile.vue\")\r\n },\r\n {\r\n path: \"/dc\",\r\n name: \"Decoder\",\r\n component: () => import(\"../views/Decoder.vue\")\r\n },\r\n {\r\n path: \"/dcoa\",\r\n name: \"DecoderOlderAdults\",\r\n component: () => import(\"../views/older_adult/Decoder.vue\")\r\n },\r\n {\r\n path: \"/profile_oa\",\r\n name: \"ProfileOlderAdults\",\r\n component: () => import(\"../views/older_adult/Profile.vue\")\r\n },\r\n {\r\n path: \"/before-turn_oa\",\r\n name: \"BeforeTurnOlderAdults\",\r\n component: () => import(\"../views/older_adult/BeforeTurn.vue\"),\r\n props: true\r\n },\r\n {\r\n path: \"/turno_oa\",\r\n name: \"TurnoOlderAdults\",\r\n component: () => import(\"../views/older_adult/Turno.vue\"),\r\n props: true\r\n },\r\n {\r\n path: \"/dcfv_atril_video\",\r\n name: \"DecoderKiosco46\",\r\n component: () => import(\"../views/fv_atril_video/Decoder.vue\")\r\n },\r\n {\r\n path: \"/profile_fv_atril_video\",\r\n name: \"ProfileKiosco46\",\r\n component: () => import(\"../views/fv_atril_video/Profile.vue\")\r\n },\r\n {\r\n path: \"/before-turn_fv_atril_video\",\r\n name: \"BeforeTurnKiosco46\",\r\n component: () => import(\"../views/fv_atril_video/BeforeTurn.vue\"),\r\n props: true\r\n },\r\n {\r\n path: \"/turno_fv_atril_video\",\r\n name: \"TurnoKiosco46\",\r\n component: () => import(\"../views/fv_atril_video/Turno.vue\"),\r\n props: true\r\n },\r\n {\r\n path: \"/ad\",\r\n component: () => import(\"../views/components/TypicalRoot\"),\r\n children: [\r\n {\r\n path: \"\",\r\n name: \"SelfService\",\r\n component: () => import(\"../views/autoservice/root\")\r\n }\r\n ]\r\n },\r\n {\r\n path: \"/oa\",\r\n component: () => import(\"../views/older_adult/root\")\r\n },\r\n {\r\n path: \"/fv_atril_video\",\r\n component: () => import(\"../views/fv_atril_video/root\")\r\n },\r\n {\r\n path: \"/fv/:code?\",\r\n name: \"Virtualrow\",\r\n component: () => import(\"../views/virtualrow/root\")\r\n },\r\n {\r\n path: \"/mobile_fsfb/:code?\",\r\n name: \"MobileFSFB\",\r\n component: () => import(\"../views/mobileFSFB/root\")\r\n },\r\n {\r\n path: \"/fv_atril/:code?\",\r\n name: \"VirtualrowAtril\",\r\n component: () => import(\"../views/virtualrow/root\")\r\n },\r\n {\r\n path: \"/fv_atril_fsfb/:code?\",\r\n name: \"VirtualrowAtrilFSFB\",\r\n component: () => import(\"../views/virtualrowFSFB/root\")\r\n },\r\n {\r\n path: \"/fv_atril_fsfb_au/\",\r\n name: \"VirtualrowAtrilFSFBAU\",\r\n component: () => import(\"../views/virtualrowFSFBau/root\")\r\n },\r\n {\r\n path: \"/fv_print\",\r\n name: \"TicketPrint\",\r\n component: () => import(\"../views/virtualrow/TicketPrint\")\r\n },\r\n {\r\n path: \"/fv_print_pay\",\r\n name: \"InfoPrint\",\r\n component: () => import(\"../views/virtualrow/InfoPrint\")\r\n },\r\n {\r\n path: \"/print_invoice\",\r\n name: \"PrintInvoice\",\r\n component: () => import(\"../views/virtualrowFSFB/PrintInvoice\")\r\n },\r\n {\r\n path: \"/environment_error\",\r\n name: \"EnvironmentError\",\r\n component: () => import(\"../views/EnvironmentError\")\r\n }\r\n];\r\n\r\nconst router = new VueRouter({\r\n routes\r\n});\r\n\r\nrouter.beforeEach(async (to, from, next) => {\r\n try {\r\n await getEnvironments();\r\n store.dispatch(\"log/put\", {\r\n name: \"Router. Variables de entorno obtenidas\"\r\n });\r\n next();\r\n } catch (error) {\r\n store.dispatch(\"log/put\", {\r\n name: \"Router. Error bloqueante. No se obtienen las variables de entorno\",\r\n checked: false,\r\n message: error\r\n });\r\n console.error(\"Error with environment variables\", error);\r\n next(\"/environment_error\");\r\n }\r\n});\r\n\r\nexport default router;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"svg\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const LINE = \"line\";\r\nexport const CIRCLE = \"circle\";\r\nexport const PATH = \"path\";\r\n","export const extend = (target, source) => {\r\n for (let key in source) {\r\n target[key] = source[key];\r\n }\r\n return target;\r\n};\r\n","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Progress.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Progress.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Progress.vue?vue&type=template&id=0848c73f&\"\nimport script from \"./Progress.vue?vue&type=script&lang=js&\"\nexport * from \"./Progress.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Progress from \"./Progress\";\r\n\r\nlet VueProgress = {\r\n install: function(Vue) {\r\n Vue.component(\"progress-bar\", Progress);\r\n }\r\n};\r\n\r\nexport default VueProgress;\r\n\r\nif (typeof window !== \"undefined\" && window.Vue) {\r\n window.Vue.use(VueProgress);\r\n}\r\n","import { store } from \"../store\";\r\nlet clickCounter = 0;\r\n\r\nexport default {\r\n bind(el) {\r\n el.addEventListener(\"click\", () => {\r\n if (++clickCounter >= 3) {\r\n store.dispatch(\"log/showModal\", true);\r\n clickCounter = 0;\r\n }\r\n });\r\n },\r\n unbind(el) {\r\n el.removeEventListener(\"click\", () => {});\r\n }\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\n// import \"./registerServiceWorker\";\r\nimport router from \"./router\";\r\nimport { store } from \"./store\";\r\nimport axios from \"axios\";\r\nimport BootstrapVue from \"bootstrap-vue\";\r\nimport ToggleButton from \"vue-js-toggle-button\";\r\nimport Rollbar from \"rollbar\";\r\nimport LS from \"./helpers/localStorage\";\r\nimport kuid from \"kuid\";\r\nimport VueProgress from \"./externals/progress\";\r\nimport { getEnvironments } from \"./helpers/Meet\";\r\nimport moment from \"moment\";\r\nimport VueGlide from \"vue-glide-js\";\r\nimport VCalendar from \"v-calendar\";\r\nimport CircularCountDownTimer from \"vue-circular-count-down-timer\";\r\n\r\n// Directives\r\nimport openLogDirective from \"./directives/openLog\";\r\n\r\n// css\r\nimport \"@fortawesome/fontawesome-free/css/all.css\";\r\nimport \"vue-glide-js/dist/vue-glide.css\";\r\n\r\nwindow.lastUpdate = moment().format();\r\n\r\nif (!LS.getItem(\"person\")) {\r\n window.person = {\r\n id: kuid()\r\n };\r\n LS.setItem(\"person\", window.person);\r\n} else {\r\n window.person = LS.getItem(\"person\");\r\n}\r\n\r\n// Service worker disabler\r\nif (\"serviceWorker\" in navigator)\r\n navigator.serviceWorker.getRegistrations().then(function(registrations) {\r\n for (let registration of registrations) {\r\n registration.unregister();\r\n }\r\n });\r\n\r\nwindow.setPerson = function({ username }) {\r\n window.person = { ...window.person, username };\r\n LS.setItem(\"person\", window.person);\r\n};\r\n\r\nimport \"./assets/style.scss\";\r\n\r\n// default base URL from Axios\r\n\r\nVue.config.productionTip = false;\r\nVue.use(CircularCountDownTimer);\r\nVue.use(BootstrapVue);\r\nVue.use(ToggleButton);\r\nVue.use(VueProgress);\r\nVue.use(VueGlide);\r\nVue.use(VCalendar);\r\n\r\ngetEnvironments().then(env => {\r\n axios.defaults.baseURL = env.VUE_APP_DEBMEDIA_SERVER;\r\n axios.defaults.timeout = 60000;\r\n window.RB = new Rollbar({\r\n accessToken: \"71e1dcf747d3476c99f70a63d0bb106d\",\r\n autoInstrument: true,\r\n maxTelemetryEvents: 50,\r\n captureIp: true,\r\n retryInterval: 5000,\r\n captureUncaught: true,\r\n captureUnhandledRejections: true,\r\n payload: {\r\n environment: env.VUE_APP_ENV,\r\n client: {\r\n javascript: {\r\n code_version: env.PACKAGE_VERSION\r\n }\r\n },\r\n server: {\r\n host: location.host\r\n },\r\n fingerprint: env.PACKAGE_VERSION,\r\n bsix_version: env.PACKAGE_VERSION,\r\n bsix_server: env.VUE_APP_AWS_API_URL,\r\n person: window.person\r\n }\r\n });\r\n\r\n axios.interceptors.request.use(\r\n function(config) {\r\n config.metadata = { startTime: new Date() };\r\n return config;\r\n },\r\n function(error) {\r\n return Promise.reject(error);\r\n }\r\n );\r\n\r\n axios.interceptors.response.use(\r\n x => {\r\n console.log(\r\n `Execution time for: ${x.config.url} - ${new Date().getTime() -\r\n x.config.metadata.startTime} ms. Code: ${x.status}`\r\n );\r\n return x;\r\n },\r\n // Handle 4xx & 5xx responses\r\n x => {\r\n console.error(\r\n `Execution time for: ${x.config.url} - ${new Date().getTime() -\r\n x.config.metadata.startTime} ms. Code: ${x.status}`\r\n );\r\n throw x;\r\n }\r\n );\r\n\r\n Vue.prototype.$rollbar = window.RB;\r\n\r\n Vue.config.errorHandler = (err, vm) => {\r\n vm.$rollbar.error(err);\r\n throw err; // rethrow\r\n };\r\n\r\n Vue.directive(\"openlog\", openLogDirective);\r\n\r\n new Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n }).$mount(\"#app\");\r\n});\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","// Tool for custom events for Tag Manager\r\nwindow.dataLayer = window.dataLayer || [];\r\n\r\nclass GTM {\r\n setFirstElementDatalayer({ session_id, version, user_type, user_uuid }) {\r\n let index = window.dataLayer.findIndex(elm => elm.session_id);\r\n if (index === -1) {\r\n window.dataLayer.push({\r\n session_id, // Id of session\r\n version, // BSIX version\r\n user_type, // agent or client\r\n user_uuid // unique user identificator\r\n });\r\n } else {\r\n window.dataLayer[index] = {\r\n ...window.dataLayer[index],\r\n ...{ session_id, version, user_type, user_uuid }\r\n };\r\n }\r\n }\r\n checkSession() {\r\n return window.dataLayer.find(elm => elm.session_id);\r\n }\r\n setVariable(variable) {\r\n if (\r\n variable &&\r\n typeof variable === \"object\" &&\r\n Object.keys(variable).length\r\n )\r\n window.dataLayer.push(variable);\r\n }\r\n replaceSession(session) {\r\n let index = window.dataLayer.findIndex(elm => elm.session_id);\r\n if (session && index > -1) window.dataLayer[index].session_id = session;\r\n else console.error(\"Not exist session in GTM\", session, window.dataLayer);\r\n }\r\n boxOpen(mdata) {\r\n const data = JSON.parse(JSON.stringify(mdata));\r\n this.__traverse(data);\r\n this.__sendEvent(\"GTMBoxOpen\", data);\r\n }\r\n\r\n boxClose(mdata) {\r\n const data = JSON.parse(JSON.stringify(mdata));\r\n this.__traverse(data);\r\n this.__sendEvent(\"GTMBoxClose\", data);\r\n this.extinguishVisibility(data.view);\r\n }\r\n\r\n event({ name, eventCategory, eventAction, eventLabel, eventValue = 0 }) {\r\n this.__sendEvent(name, {\r\n eventCategory,\r\n eventAction,\r\n eventLabel,\r\n eventValue\r\n });\r\n }\r\n\r\n __sendEvent(name, data = {}) {\r\n data.timeOfEvent = Date.now();\r\n window.dataLayer.push({\r\n event: name,\r\n data\r\n });\r\n }\r\n\r\n __traverse(obj, parn, ky) {\r\n // Internal traverse\r\n traverse(obj, parn, ky);\r\n\r\n // Internal Fnc\r\n function traverse(o, parent, key) {\r\n const type = typeof o;\r\n if (o !== null && type === \"object\") {\r\n for (const keyIntro in o) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (o.hasOwnProperty(keyIntro)) {\r\n traverse(o[keyIntro], o, keyIntro);\r\n }\r\n }\r\n } else {\r\n if (key === \"html\") {\r\n delete parent[key];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport let GTMService = new GTM();\r\n","import { getEnvOnly } from \"./Meet\";\r\n\r\nlet possibleNames = [\r\n \"appointment_code\",\r\n \"branchInfo\",\r\n \"client_data\",\r\n \"coor_turnId\",\r\n \"data_b64\",\r\n \"e_mail\",\r\n \"last_name_user\",\r\n \"meeting\",\r\n \"name_user\",\r\n \"naturaleza\",\r\n \"person\",\r\n \"phone_number\",\r\n \"time\",\r\n \"tipide\",\r\n \"token\",\r\n \"user_id\",\r\n \"user_type\"\r\n];\r\n\r\nexport default {\r\n setItem(name, data) {\r\n const lsPrefix = getEnvOnly()?.VUE_APP_LS_PREFIX;\r\n return localStorage.setItem(`${lsPrefix}${name}`, JSON.stringify(data));\r\n },\r\n removeItem(name) {\r\n const lsPrefix = getEnvOnly()?.VUE_APP_LS_PREFIX;\r\n return localStorage.removeItem(`${lsPrefix}${name}`);\r\n },\r\n getItem(name) {\r\n const lsPrefix = getEnvOnly()?.VUE_APP_LS_PREFIX;\r\n let value = localStorage.getItem(`${lsPrefix}${name}`);\r\n try {\r\n value = JSON.parse(value);\r\n // eslint-disable-next-line no-empty\r\n } catch (error) {}\r\n return value;\r\n },\r\n clear(){\r\n const lsPrefix = getEnvOnly()?.VUE_APP_LS_PREFIX;\r\n for (let index = 0; index < possibleNames.length; index++) {\r\n localStorage.removeItem(`${lsPrefix}${possibleNames[index]}`);\r\n }\r\n }\r\n};\r\n","const utf8_to_b64 = str => encodeUrlComponent(window.btoa(str));\r\n\r\nconst encodeUrlComponent = str => unescape(encodeURIComponent(str));\r\n\r\nconst decodeUrlComponent = str => decodeURIComponent(unescape(str));\r\n\r\nconst b64_to_utf8 = str => window.atob(decodeUrlComponent(str));\r\n\r\nconst try_json = str => {\r\n try {\r\n return JSON.parse(str);\r\n } catch (error) {\r\n return str;\r\n }\r\n};\r\n\r\nexport {\r\n utf8_to_b64,\r\n b64_to_utf8,\r\n try_json,\r\n encodeUrlComponent,\r\n decodeUrlComponent\r\n};\r\n"],"sourceRoot":""}