{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/mobileFSFB/EmptyLogo.png","webpack:///./src/helpers/clientInfo.js","webpack:///./src/views/components/ModalLogs.vue?526b","webpack:///./src/helpers/Meet.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/App.vue?b6bc","webpack:///./src/views/components/ModalLogs.vue?7693","webpack:///src/views/components/ModalLogs.vue","webpack:///./src/views/components/ModalLogs.vue?029d","webpack:///./src/views/components/ModalLogs.vue","webpack:///src/App.vue","webpack:///./src/App.vue?382d","webpack:///./src/App.vue?a286","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/actions.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/helpers/colmedica_huella.js","webpack:///./src/store/autoservice/actions.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/helpers/colmedica_fila_virtual.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/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?9361","webpack:///./src/externals/progress/constants.js","webpack:///./src/externals/progress/utils.js","webpack:///src/externals/progress/Progress.vue","webpack:///./src/externals/progress/Progress.vue?b3d9","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?595f","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","async","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","render","_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","meetingSession","isAgent","computed","state","logList","list","showDropdown","methods","$refs","style","display","logItem__more","component","components","ModalLogs","startup","watch","val","$faviconPage","getElementById","VUE_APP_COMPANY","setPosition","pay","position","setStarted","started","setCoorelation","turnCoorelation","setEnvironments","environment","setState","_get","removeItem","setViewState","commit","GM","eventCategory","eventAction","dispatch","session","forced","sessionCode","checkSession","setFirstElementDatalayer","session_id","user_type","user_uuid","person","replaceSession","VUE_APP_GET_LOCATION","geolocation","getCurrentPosition","lat","long","setVariable","customLocationGPS","companyName","setTramite","setTurnUUID","floor","setKiosco","tramite_info","queueId","params","turn","turns","fromKiosco46","customer","catch","queue","VUE_APP_DEBMEDIA_DEFAULT_TRAMITE","filter","axios","post","customerTurns","customerTurnsF","label","toString","toLowerCase","includes","branchInfo","branch_label","activeBranch","router","VUE_APP_DEBQ_DIRECT","unix","turnInfo","extraFields","Videollamada","jsonDetails","letter","number","finishTime","UUID","match","__","codeToSend","prevResponse","errorResp","RB","error_turn_request_counter","turn_timer","timer","getTurnCoorelation","coorData","cleanTurn","setSessionMaster","options","currentTurn","local","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","rootState","newerror","client_info","results","assistant","fullname","turn_id","turn_strings","branch_name","queue_id","video_public_path","root","JoinInfo","audioVideo","realtimeUnsubscribeFromReceiveDataMessage","stop","warning","setAtendeeName","sendMessage","realtimeSendDataMessage","dataMessage","timestampMs","senderAttendeeId","configuration","credentials","attendeeId","senderExternalUserId","text","chatMessageHandler","timestamp","attendeeName","isSelf","payload","toogleAudioEnabled","realtimeUnmuteLocalAudio","realtimeMuteLocalAudio","toogleSpeakerEnabled","unbindAudioElement","audio","deviceId","video","stopLocalVideoTile","startLocalVideoTile","logger","ConsoleLogger","LogLevel","INFO","deviceController","DefaultDeviceController","meetingResponse","Meeting","attendeeResponse","Attendee","MeetingSessionConfiguration","DefaultMeetingSession","BackgroundBlurVideoFrameProcessor","BackgroundReplacementVideoFrameProcessor","isSupported","start","blurProcessor","processors","imageBlob","bgProcessor","filterCPUUtilization","warn","newProcessors","item","filterType","transformDevice","DefaultVideoTransformDevice","loggerMeeting","chooseVideoInputDevice","attendeesObservable","realtimeSubscribeToAttendeeIdPresence","presentAttendeeId","present","findIndex","elm","listAudioInputDevices","listAudioOutputDevices","chooseVideoInputQuality","listVideoInputDevices","devicesWin","mediaDevices","enumerateDevices","devices","device","kind","videos","configCameras","kioscos","branchid","cameras","documents","lateral","chooseAudioOutputDevice","chooseAudioInputDevice","healthChange","bandwidthChange","commonNotification","connectionStatus","bandwidthRequirements","observer","audioInputsChanged","freshAudioInputDeviceList","forEach","mediaDeviceInfo","audioOutputsChanged","freshAudioOutputDeviceList","videoInputsChanged","freshVideoInputDeviceList","addDeviceChangeObserver","addObserver","connectionDidSuggestStopVideo","connectionDidBecomeGood","estimatedDownlinkBandwidthLessThanRequired","connectionDidBecomePoor","videoSendHealthDidChange","videoSendBandwidthDidChange","newBandwidthKbps","oldBandwidthKbps","audioVideoDidStart","eventValue","videoTileDidUpdate","tileState","tileId","yourAttendeeId","boundAttendeeId","isContent","baseAttendeeId","DefaultModality","base","isMineContent","vid","videoElement","bindVideoElement","videoTileWasRemoved","videoIndex","realtimeSubscribeToReceiveDataMessage","startContentShareFromScreenCapture","stopContentShare","bindAudioElement","setConfigCameras","isBlur","isWithBg","namespaced","mutations","actions","getters","Recorder","checkRecorder","routeOfCheck","VUE_APP_RECORDER","setTurn","recorder","startCheck","setInterval","sendTurn","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","encrypted","encrypt","buff","Uint8Array","str","String","fromCharCode","btoa","decryptAES","TextDecoder","ascii","asciiBytes","charCodeAt","decrypted","decrypt","decoded","decode","encryptAESWorker","aesWk","Worker","onmessage","postMessage","publicKey","LlaveAES","Token","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","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","sites","styles","bsix_client","companyColor","secondaryCompanyColor","contrastTextColor","area","menu","customMenu","isAtril","newArray","history","goBack","pop","validation","sort","a","b","children","setAction","evaluationComponent","ignorePriority","confirmedAction","selectedAccion","turnCall","toReturn","VUE_APP_DEMO_MODE","ValPagoDemo","nextComponent","zone","userfinded","userDemo","usr","originFinded","currentSite","CentroDemo","OficinaDemo","cm","CitasDemo","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","payLogs","privateKey","VUE_APP_FSFB_KEY","round","getTime","convertDocuments","documentType","documentNumber","md5","MD5","SHA1","autorizarFSFB","VUE_APP_FSFB_SERVER","raw","authType","contentType","authHeader","user","citasFSFB","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","res_p","id_transaction","pay_r","checkPay","cancelPay","checkMessage","setSede","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","userResponse","id_patient","cups_code","toUpperCase","S","attention","itemA","itemB","itemBHCS","hour_appoinment","itemAHCS","diff","clearError","notification","convertDocumentsFromString","id_cita_pago","terminal","site","currentAppointment","clearMessagePays","resp","refreshTokenPays","clear","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","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","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","cuil","cedulaIdentidad","infoErrorCount","onlyClean","epoch","put","Vue","use","Vuex","store","Store","recording","autoservice","virtualrow","virtualrowFSFB","virtualrow_atril_video","virtualrowAtrilVideo","olderAdult","mobileFSFB","VueRouter","path","beforeEnter","from","next","props","beforeEach","_t","LINE","CIRCLE","PATH","extend","RE_FLOAT","RE_INT","validator","color","strokeWidth","Number","test","trailColor","trailWidth","duration","easing","svgStyle","fill","step","Function","progress","init","destroy","_options","parseFloat","parseInt","paths","$el","querySelectorAll","svg","trail","cb","animate","set","setText","VueProgress","install","Progress","clickCounter","el","unbind","removeEventListener","lastUpdate","serviceWorker","getRegistrations","registrations","registration","unregister","setPerson","username","Sentry","dsn","integrations","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","h","App","$mount","dataLayer","GTM","variable","boxOpen","mdata","__traverse","__sendEvent","boxClose","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.902ff0c9503c3bbf5662.bundle.js?v=6.4.8","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-00497994\":\"8d9bd05c\",\"chunk-07c2de55\":\"a0aad97c\",\"chunk-0d089980\":\"219a8f58\",\"chunk-12f60c9b\":\"a7f37630\",\"chunk-19c8811f\":\"7cb5078e\",\"chunk-7a42c392\":\"a8d8b21f\",\"chunk-d832eb8a\":\"5add41b5\",\"chunk-1ad20a6b\":\"f07cc6d8\",\"chunk-20e7f32c\":\"1757871a\",\"chunk-2d0aa17c\":\"914c071e\",\"chunk-2d0aa7c0\":\"7d112a25\",\"chunk-2d21ee4e\":\"f2606807\",\"chunk-2d230075\":\"23802f0b\",\"chunk-2ff651c6\":\"a45eb7b2\",\"chunk-353b79ea\":\"35e5b84d\",\"chunk-367ebb3e\":\"977a0cce\",\"chunk-4a6fb8dc\":\"d28288ee\",\"chunk-5405e0da\":\"9f99fe19\",\"chunk-1da4f821\":\"33a4b5e9\",\"chunk-2d21aebf\":\"eaa272fb\",\"chunk-7f2f6ddf\":\"506b3f2f\",\"chunk-2d0c72f4\":\"ea9e13ef\",\"chunk-176d9743\":\"703751ca\",\"chunk-da248948\":\"3ab8e553\",\"chunk-2bd9885e\":\"44cd20e0\",\"chunk-7c791a0c\":\"45e80be8\",\"chunk-9faba216\":\"4cc5521a\",\"chunk-fc5a02a8\":\"68e948ee\",\"chunk-3baa25cd\":\"451af49d\",\"chunk-c7146f04\":\"added783\",\"chunk-55b2b7ff\":\"de643a20\",\"chunk-611c2d4b\":\"857cfc2e\",\"chunk-62a92d9a\":\"2e9c037d\",\"chunk-185f582a\":\"6fee703f\",\"chunk-2e39411e\":\"39321134\",\"chunk-54a586c9\":\"e353490a\",\"chunk-7785d009\":\"796415cc\",\"chunk-791a329a\":\"498674e1\",\"chunk-799cad54\":\"4a6abb61\",\"chunk-24aeb5cc\":\"b2d96c4e\",\"chunk-c2a953f2\":\"c50989b4\",\"chunk-8014fc7a\":\"f9f2269a\",\"chunk-b261d284\":\"9edd1716\",\"chunk-b6b3d312\":\"d60ab277\",\"chunk-c122c47a\":\"98ef0d68\",\"chunk-ec764a88\":\"577d2cae\",\"chunk-f2208c66\":\"b9b55a14\",\"chunk-203f5432\":\"4c057a17\",\"chunk-1cfee6bd\":\"098ed833\",\"chunk-42385f56\":\"ab7c5ffe\",\"chunk-615d1192\":\"63c745ee\",\"chunk-62b49b0a\":\"64cf0097\",\"chunk-72f775a0\":\"7de29cda\",\"chunk-7b8586ee\":\"5a828c19\",\"chunk-8e056136\":\"23b58a50\",\"chunk-d3a3d080\":\"c6b7ff2d\",\"chunk-d7e62980\":\"938a518a\",\"chunk-da15f234\":\"177a843f\",\"chunk-e7ff72b8\":\"deec9c2a\",\"chunk-378dec9c\":\"bc48130c\",\"chunk-a6ec29e0\":\"b7cc0a93\",\"chunk-2d6f66c2\":\"fdc455c3\",\"chunk-421da25a\":\"5ea79128\",\"chunk-6170f14c\":\"28899fdc\",\"chunk-8484fbe8\":\"58f90864\",\"chunk-f8477696\":\"dcf6e831\",\"chunk-10a19da9\":\"0eda8553\"}[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-00497994\":1,\"chunk-07c2de55\":1,\"chunk-0d089980\":1,\"chunk-19c8811f\":1,\"chunk-7a42c392\":1,\"chunk-d832eb8a\":1,\"chunk-1ad20a6b\":1,\"chunk-20e7f32c\":1,\"chunk-2ff651c6\":1,\"chunk-353b79ea\":1,\"chunk-367ebb3e\":1,\"chunk-4a6fb8dc\":1,\"chunk-5405e0da\":1,\"chunk-1da4f821\":1,\"chunk-7f2f6ddf\":1,\"chunk-176d9743\":1,\"chunk-da248948\":1,\"chunk-2bd9885e\":1,\"chunk-7c791a0c\":1,\"chunk-9faba216\":1,\"chunk-fc5a02a8\":1,\"chunk-3baa25cd\":1,\"chunk-c7146f04\":1,\"chunk-55b2b7ff\":1,\"chunk-611c2d4b\":1,\"chunk-62a92d9a\":1,\"chunk-185f582a\":1,\"chunk-2e39411e\":1,\"chunk-54a586c9\":1,\"chunk-7785d009\":1,\"chunk-791a329a\":1,\"chunk-799cad54\":1,\"chunk-24aeb5cc\":1,\"chunk-c2a953f2\":1,\"chunk-8014fc7a\":1,\"chunk-b6b3d312\":1,\"chunk-c122c47a\":1,\"chunk-ec764a88\":1,\"chunk-f2208c66\":1,\"chunk-203f5432\":1,\"chunk-1cfee6bd\":1,\"chunk-42385f56\":1,\"chunk-615d1192\":1,\"chunk-62b49b0a\":1,\"chunk-72f775a0\":1,\"chunk-7b8586ee\":1,\"chunk-8e056136\":1,\"chunk-d3a3d080\":1,\"chunk-d7e62980\":1,\"chunk-da15f234\":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-00497994\":\"6c369c1e\",\"chunk-07c2de55\":\"21e32dec\",\"chunk-0d089980\":\"c73a2402\",\"chunk-12f60c9b\":\"31d6cfe0\",\"chunk-19c8811f\":\"3fe6f83d\",\"chunk-7a42c392\":\"3b0c490d\",\"chunk-d832eb8a\":\"68e0e391\",\"chunk-1ad20a6b\":\"fbb1e6fb\",\"chunk-20e7f32c\":\"6501f5bd\",\"chunk-2d0aa17c\":\"31d6cfe0\",\"chunk-2d0aa7c0\":\"31d6cfe0\",\"chunk-2d21ee4e\":\"31d6cfe0\",\"chunk-2d230075\":\"31d6cfe0\",\"chunk-2ff651c6\":\"0ef8c109\",\"chunk-353b79ea\":\"c2852fa3\",\"chunk-367ebb3e\":\"5cec98cb\",\"chunk-4a6fb8dc\":\"c5e48863\",\"chunk-5405e0da\":\"352f5fca\",\"chunk-1da4f821\":\"dbea7bc4\",\"chunk-2d21aebf\":\"31d6cfe0\",\"chunk-7f2f6ddf\":\"8397fe45\",\"chunk-2d0c72f4\":\"31d6cfe0\",\"chunk-176d9743\":\"accd0599\",\"chunk-da248948\":\"afe37d37\",\"chunk-2bd9885e\":\"9525c2a1\",\"chunk-7c791a0c\":\"3dd3f866\",\"chunk-9faba216\":\"d7327ca1\",\"chunk-fc5a02a8\":\"31d9adac\",\"chunk-3baa25cd\":\"48ad2b34\",\"chunk-c7146f04\":\"f36db06b\",\"chunk-55b2b7ff\":\"f9d4cb94\",\"chunk-611c2d4b\":\"f623218c\",\"chunk-62a92d9a\":\"3dbb6b26\",\"chunk-185f582a\":\"ee1078a6\",\"chunk-2e39411e\":\"8f8cb712\",\"chunk-54a586c9\":\"fb153c46\",\"chunk-7785d009\":\"80ad160e\",\"chunk-791a329a\":\"754df48f\",\"chunk-799cad54\":\"920904be\",\"chunk-24aeb5cc\":\"faa8dac2\",\"chunk-c2a953f2\":\"03ce31e4\",\"chunk-8014fc7a\":\"d1d8b033\",\"chunk-b261d284\":\"31d6cfe0\",\"chunk-b6b3d312\":\"433f1a14\",\"chunk-c122c47a\":\"22260d3e\",\"chunk-ec764a88\":\"e36a799e\",\"chunk-f2208c66\":\"7ade1a62\",\"chunk-203f5432\":\"943e6bb4\",\"chunk-1cfee6bd\":\"c08fce4d\",\"chunk-42385f56\":\"7b79568a\",\"chunk-615d1192\":\"606a56a8\",\"chunk-62b49b0a\":\"d2f7bc97\",\"chunk-72f775a0\":\"f6009d85\",\"chunk-7b8586ee\":\"2678b6c7\",\"chunk-8e056136\":\"6dd3bf56\",\"chunk-d3a3d080\":\"27e2b0c7\",\"chunk-d7e62980\":\"163b5574\",\"chunk-da15f234\":\"74973754\",\"chunk-e7ff72b8\":\"e3065096\",\"chunk-378dec9c\":\"b98b29f5\",\"chunk-a6ec29e0\":\"a8e01ae7\",\"chunk-2d6f66c2\":\"5a7482f6\",\"chunk-421da25a\":\"fdf0e59a\",\"chunk-6170f14c\":\"edab44c1\",\"chunk-8484fbe8\":\"496133df\",\"chunk-f8477696\":\"edd814d7\",\"chunk-10a19da9\":\"01810ef2\"}[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--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-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\";","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 .ModalLogs\r\n b-modal(\r\n hide-footer\r\n no-close-on-backdrop\r\n centered\r\n class=\"modal-content-dk\"\r\n v-model=\"show\")\r\n template(#modal-header=\"{ close }\")\r\n h4 Registro de eventos\r\n .DropDown__Header__title\r\n i.fas.fa-times(style=\"cursor: pointer\" @click=\"showModal(false)\")\r\n .container\r\n .DropDown(v-for=\"(log, index) in logListMap\" :key=\"index\")\r\n .DropDown__Header(@click=\"() => toggleDropDown(index)\")\r\n .DropDown__Header__title\r\n i(:class=\"log.checked ? 'fas fa-check CHECK' : 'fas fa-times TIMES'\")\r\n h6 {{ log.name }}\r\n .DropDown__Header__icon\r\n i.fas.fa-sort-down(:ref=\"'iconItem__' + index\").icon\r\n .DropDown__Body(:ref=\"'logItem__' + index\" style=\"display: none\")\r\n p {{ log.message }}\r\n hr\r\n .container\r\n .DropDown\r\n .DropDown__Header(@click=\"() => toggleDropDownMore()\")\r\n .DropDown__Header__title\r\n //- i(:class=\"$refs.logItem__more.checked ? 'fas fa-check CHECK' : 'fas fa-times TIMES'\")\r\n h6 Datos Vídeo Llamada\r\n .DropDown__Header__icon\r\n i.fas.fa-sort-down(ref=\"iconItem__more\").icon\r\n .DropDown__Body(ref=\"logItem__more\" style=\"display: none\")\r\n p \r\n b meeting: \r\n pre {{meeting}}\r\n p \r\n b connecting: \r\n | {{connecting}}\r\n p \r\n b audioId: \r\n | {{audioId}}\r\n p \r\n b audioInputDevices: \r\n pre {{audioInputDevices}}\r\n p \r\n b audioOutputDevices: \r\n pre {{audioOutputDevices}}\r\n p \r\n b videoInputDevices: \r\n pre {{videoInputDevices}}\r\n p \r\n b attendees: \r\n | {{attendees}}\r\n p \r\n b videosIds: \r\n pre {{videosIds}}\r\n p \r\n b myname: \r\n | {{myname}}\r\n p \r\n b videoDevice: \r\n pre {{JSON.stringify(videoDevice) }}\r\n p \r\n b speakerDevice: \r\n pre {{JSON.stringify(speakerDevice) }}\r\n p \r\n b audioDevice: \r\n pre {{JSON.stringify(audioDevice) }}\r\n p \r\n b audioEnabled: \r\n | {{audioEnabled}}\r\n p \r\n b camEnabled: \r\n | {{camEnabled}}\r\n p \r\n b speakerEnabled: \r\n | {{speakerEnabled}}\r\n p \r\n b bitrateKbps: \r\n | {{bitrateKbps}}\r\n p \r\n b stopSuggestionFromActiveCamera: \r\n | {{stopSuggestionFromActiveCamera}}\r\n p \r\n b packetsPerSecond: \r\n | {{packetsPerSecond}}\r\n p \r\n b nackCountPerSecond: \r\n | {{nackCountPerSecond}}\r\n p \r\n b videoStopSuggestion: \r\n | {{videoStopSuggestion}}\r\n p \r\n b connectionIsGood: \r\n | {{connectionIsGood}}\r\n p \r\n b estimatedBandwidth: \r\n | {{estimatedBandwidth}}\r\n p \r\n b requiredBandwidth: \r\n | {{requiredBandwidth}}\r\n p \r\n b m_allow_video: \r\n | {{m_allow_video}}\r\n p \r\n b sharingEnabled: \r\n | {{sharingEnabled}}\r\n p \r\n b meetingSession: \r\n | {{meetingSession}}\r\n p \r\n b isAgent: \r\n | {{isAgent}}\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalLogs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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\nmain.MainView\r\n transition(name=\"fade\" mode=\"out-in\")\r\n router-view\r\n ModalLogs\r\n #dialogdk.dialogdk\r\n section#dialogdkbox\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=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","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","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","/* 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","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","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","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 {\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 { value: \"PT\", text: \"Permiso temporal de permanencia\" }\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=>{\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 resolve(error);\r\n } );\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 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 ) {\r\n \r\n /* eslint-disable */\r\n\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(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);\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);\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 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 } else {\r\n console.error(\"Error sending sync payment:\", appointments);\r\n // retry\r\n 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(\"pay\")\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=${d.id_transaction}&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.id_transaction};\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=${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 };\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 {\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: \"\",\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, dispatch }) {\r\n\r\n console.log(\"state\")\r\n console.log(state)\r\n dispatch(\"updateB64Final\", { \r\n ti: state.client.TipoIdentificacion,\r\n nu: state.client.NumeroIdentificacion,\r\n });\r\n \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 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 \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 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 // 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 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 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_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
\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Progress.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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\nimport * as Sentry from \"@sentry/vue\";\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// Sentry\r\nSentry.init({\r\n Vue,\r\n dsn: \"https://f7d1a77424b1603f87f907b47cfe9106@o4507325967630336.ingest.us.sentry.io/4507326204542976\",\r\n integrations: [],\r\n});\r\n// Sentry\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--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","// 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":""}