@doolehealth/service-lib 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"doolehealth-service-lib.mjs","sources":["../../../projects/service-lib/src/lib/service-lib.component.ts","../../../projects/service-lib/src/lib/configuration.ts","../../../projects/service-lib/src/lib/service-lib.module.ts","../../../projects/service-lib/src/lib/utils/query-string-parameters.ts","../../../projects/service-lib/src/lib/utils/url-builder.ts","../../../projects/service-lib/src/lib/services/change-endpoints.service.ts","../../../projects/service-lib/src/lib/services/api-endpoints.service.ts","../../../projects/service-lib/src/lib/services/encryption.service.ts","../../../projects/service-lib/src/lib/services/token.service.ts","../../../projects/service-lib/src/lib/services/authentication.service.ts","../../../projects/service-lib/src/lib/services/http.service.ts","../../../projects/service-lib/src/lib/services/events.service.ts","../../../projects/service-lib/src/lib/services/doole.service.ts","../../../projects/service-lib/src/lib/models/notifications/notification-options.ts","../../../projects/service-lib/src/lib/models/shared-care-plan.ts","../../../projects/service-lib/src/lib/services/navigation.service.ts","../../../projects/service-lib/src/lib/services/language.service.ts","../../../projects/service-lib/src/lib/services/date.service.ts","../../../projects/service-lib/src/lib/services/highcharts.service.ts","../../../projects/service-lib/src/lib/services/roles.service.ts","../../../projects/service-lib/src/lib/services/storage.service.ts","../../../projects/service-lib/src/lib/services/notification.service.ts","../../../projects/service-lib/src/lib/services/network.service.ts","../../../projects/service-lib/src/lib/services/loading.service.ts","../../../projects/service-lib/src/lib/services/logging.service.ts","../../../projects/service-lib/src/lib/services/error.service.ts","../../../projects/service-lib/src/lib/services/opentok.service.ts","../../../projects/service-lib/src/lib/services/analytics.service.ts","../../../projects/service-lib/src/lib/services/shared-care-plan/shared-care-plan.service.ts","../../../projects/service-lib/src/lib/services/permission.service.ts","../../../projects/service-lib/src/lib/utils/data-store.ts","../../../projects/service-lib/src/lib/services/firebase/auth/firebase-profile.model.ts","../../../projects/service-lib/src/lib/services/firebase/auth/firebase-auth.service.ts","../../../projects/service-lib/src/public-api.ts","../../../projects/service-lib/src/doolehealth-service-lib.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'lib-service-lib',\n template: `\n <p>\n service-lib works!\n </p>\n `,\n styles: ``\n})\nexport class ServiceLibComponent {\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface Configuracion {\n LIST_ENPOINT: Array<any>;\n INDEX: number;\n API_PROD_ENDPOINT:string;\n PROD_ENDPOINT:string;\n API_PRE_ENDPOINT:string;\n PRE_ENDPOINT:string;\n API_ENDPOINT_DEV: string;\n ENDPOINT_DEV: string;\n appleAppId: string;\n androidBundleId: string;\n VIDEOCALL_URL: string;\n PRIMARY_COLOR: string;\n googleFitPackageID : string;\n}\n\nexport interface PushersConfig {\n PUSHER_KEY_PRO: PusherKey;\n PUSHER_KEY_DEV: PusherKey;\n}\n\nexport interface PusherKey{ \n app_id: string, \n key: string, \n secret: string, \n cluster: string, \n}\n\nexport interface Environment{ \n production: boolean, \n appShellConfig: AppShellConfig, \n firebase: Firebase, \n}\n\nexport interface AppShellConfig{ \n debug: boolean, \n networkDelay: number\n}\n\nexport interface Firebase{ \n apiKey: string, \n authDomain: string, \n databaseURL: string, \n projectId: string, \n storageBucket: string, \n messagingSenderId: string, \n appId: string, \n measurementId: string\n}\n\nexport const CONFIGURACION_TOKEN = new InjectionToken<Configuracion>('configuracion');\nexport const FIREBASE_CONFIG_TOKEN = new InjectionToken<Environment>('environment');\nexport const LANGUAGES_CONFIG_TOKEN = new InjectionToken<Environment>('languages');","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ServiceLibComponent } from './service-lib.component';\nimport { CONFIGURACION_TOKEN, Configuracion, Environment, FIREBASE_CONFIG_TOKEN, LANGUAGES_CONFIG_TOKEN } from './configuration';\nimport { LanguageModel } from './services/language.model';\n\nexport interface LibConfig {\n \n}\n\n@NgModule({\n imports: [\n CommonModule,\n ServiceLibComponent\n ],\n exports: [\n ServiceLibComponent\n ]\n})\n\nexport class ServiceLibModule { \n\n static forRoot(config: Configuracion, environment : Environment, languages:LanguageModel[]): ModuleWithProviders<ServiceLibModule> {\n return {\n ngModule: ServiceLibModule,\n providers: [\n { provide: CONFIGURACION_TOKEN, useValue: config },\n { provide: FIREBASE_CONFIG_TOKEN, useValue: environment },\n { provide: LANGUAGES_CONFIG_TOKEN, useValue: languages },\n ]\n };\n }\n \n}\n","export class QueryStringParameters {\n private paramsAndValues: string[];\n constructor() {\n this.paramsAndValues = [];\n }\n public push(key: string, value: Object): void {\n value = encodeURIComponent(value.toString());\n this.paramsAndValues.push([key, value].join('='));\n }\n public toString = (): string => this.paramsAndValues.join('&');\n }","// Application Classes\nimport { QueryStringParameters } from './query-string-parameters';\nexport class UrlBuilder {\n public url: string;\n public queryString: QueryStringParameters;\n constructor(\n private baseUrl: string,\n private action: string,\n queryString?: QueryStringParameters\n ) {\n this.url = [baseUrl, action].join('/');\n this.queryString = queryString || new QueryStringParameters();\n }\n public toString(): string {\n const qs: string = this.queryString ? this.queryString.toString() : '';\n return qs ? `${this.url}?${qs}` : this.url;\n }\n}","import { Inject, Injectable } from '@angular/core';\nimport { CONFIGURACION_TOKEN, Configuracion, PusherKey, PushersConfig } from '../configuration';\nimport { BehaviorSubject } from 'rxjs';\n\nexport var _INDEX_ENPOINT: number = 0 //Por defecto index 0 \nconst ENDPOINT = 'endpoint';\n\nexport interface enviroment {\n id:number,\n name: string, \n api: string, \n endpoint: string,\n device_ios: {ios_push: string, ios_voip: string},\n color?: string,\n pusher_key: PusherKey,\n settings_bio?: string,\n biometric?: string,\n show_bio_dialog?: string,\n registered_user?: string,\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class ChangeEndpointsService {\n private _endpointIndex = new BehaviorSubject<number>(this.getIndexEndPointLocalstorage());\n public API_ENDPOINT: string;\n public DOOLE_ENDPOINT: string;\n\n public _LIST_ENPOINT: Array<enviroment> = [] \n public _ENVIROMENT: enviroment;\n public static urlBackEnd: string;\n constructor(\n @Inject(CONFIGURACION_TOKEN) private configuration: Configuracion) {\n this.addEndPoint()\n this.setDefaultEndPoint()\n //console.log(\"Constants: \", configuration)\n }\n\n public async addEndPoint(){ \n this._LIST_ENPOINT = [] \n this._LIST_ENPOINT = this.configuration.LIST_ENPOINT;\n }\n\n public setEndPoint(index){\n \n this._ENVIROMENT = this._LIST_ENPOINT[index]\n _INDEX_ENPOINT = index\n\n this.API_ENDPOINT = this._ENVIROMENT.api\n this.DOOLE_ENDPOINT = this._ENVIROMENT.endpoint\n this.getApiEndpointRegex(this.API_ENDPOINT)\n this.setIndexEndPointLocalstorage(index)\n this._endpointIndex.next(index); \n ChangeEndpointsService.urlBackEnd = this.DOOLE_ENDPOINT\n }\n\n setIndexEndPointLocalstorage(endpoint) {\n localStorage.setItem(ENDPOINT, JSON.stringify(endpoint));\n }\n public getApiEndpointRegex(currentEnv): RegExp | null {\n \n if (!currentEnv) {\n return null; // No se encontró ningún entorno definido\n } \n const apiBaseUrl = currentEnv;\n const escapedApiBaseUrl = apiBaseUrl.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const reg = new RegExp(`^${escapedApiBaseUrl}/`);\n localStorage.setItem('SentryConfi', JSON.stringify(reg.source));\n return reg;\n }\n\n getIndexEndPointLocalstorage() {\n let endpoint = localStorage.getItem(ENDPOINT);\n ////console.log(`[ChangeEndpointsService] setEndPointLocalstorage()`, endpoint);\n if(endpoint) return Number(JSON.parse(endpoint))\n return undefined\n }\n getEndpointIndexObservable() {\n return this._endpointIndex.asObservable();\n }\n setDefaultEndPoint(){\n if(this.API_ENDPOINT == undefined || this.DOOLE_ENDPOINT == undefined){\n let index = this.getIndexEndPointLocalstorage()\n index = (index == undefined)? _INDEX_ENPOINT: index\n this.setEndPoint(index)\n }\n }\n}\n","// Angular Modules\nimport { Injectable } from '@angular/core';\n// Application Classes\nimport { UrlBuilder } from '../utils/url-builder';\nimport { QueryStringParameters } from '../utils/query-string-parameters';\n// Application Constants\nimport { ChangeEndpointsService } from './change-endpoints.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiEndpointsService {\n constructor(\n // Application Constants\n //private constants: Constants,\n private endpoints: ChangeEndpointsService,\n ) { }\n /* #region URL CREATOR */\n // URL\n private createUrl( action: string, isDooleAPI: boolean = false): string {\n \n const urlBuilder: UrlBuilder = new UrlBuilder(\n this.endpoints.API_ENDPOINT,\n action\n );\n return urlBuilder.toString();\n }\n // URL WITH QUERY PARAMS\n private createUrlWithQueryParameters(\n action: string, \n queryStringHandler?: \n (queryStringParameters: QueryStringParameters) => void\n ): string {\n //Change EndPoind\n // this.setEndPoint()\n const urlBuilder: UrlBuilder = new UrlBuilder(\n this.endpoints.API_ENDPOINT,\n action\n );\n // Push extra query string params\n if (queryStringHandler) {\n queryStringHandler(urlBuilder.queryString);\n }\n return urlBuilder.toString();\n }\n \n public getEndpoint = (action): string => this.createUrl(action, false);\n public getDooleEndpoint = (action): string => this.createUrl(action, true);\n public getEndpointWithParameters = (action, parameters): string => this.createUrlWithQueryParameters(action, parameters);\n // URL WITH PATH VARIABLES\n private createUrlWithPathVariables(\n action: string, \n pathVariables: any[] = []\n ): string {\n let encodedPathVariablesUrl: string = '';\n // Push extra path variables\n for (const pathVariable of pathVariables) {\n if (pathVariable !== null) {\n encodedPathVariablesUrl +=\n `/${encodeURIComponent(pathVariable.toString())}`;\n }\n }\n const urlBuilder: UrlBuilder = new UrlBuilder(\n this.endpoints.API_ENDPOINT,\n `${action}${encodedPathVariablesUrl}`\n );\n return urlBuilder.toString();\n }\n /* #endregion */\n\n setIndexEndPointLocalstorage(endpoint) {\n //console.log(`[ApiEndpointsService] setEndPointLocalstorage()`, endpoint);\n localStorage.setItem('endpoint', JSON.stringify(endpoint));\n }\n\n getIndexEndPointLocalstorage() {\n let endpoint = localStorage.getItem('endpoint');\n if(endpoint) return Number(JSON.parse(endpoint))\n return undefined\n }\n\n/* setEndPoint(){\n let indexEndPoint = this.getIndexEndPointLocalstorage()\n let index = indexEndPoint? indexEndPoint:0\n this.constants.setEndPoint(index)\n this.constants.INDEX = index\n }\n\n loadEndPoints(){\n this.constants.addEndPoint()\n } */\n\n\n\n\n}\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EncryptionService {\n private readonly secretKey: string = 'D001E-APP';\n constructor() { }\n\n encryptData(data: any): string {\n const encryptedData = CryptoJS.AES.encrypt(\n JSON.stringify(data),\n this.secretKey\n ).toString();\n return encryptedData;\n }\n\n decryptData(encryptedData: string): any {\n\n const decryptedData = CryptoJS.AES.decrypt(\n encryptedData,\n this.secretKey\n );\n\n try {\n const data = decryptedData.toString(CryptoJS.enc.Utf8);\n return JSON.parse(data);\n } catch (e) {\n return encryptedData\n }\n\n\n\n\n\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EncryptionService } from './encryption.service';\n\nconst TOKEN_KEY = 'token';\nconst DEVICE_TOKENS = 'tokens';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n private token\n private deviceTokens = []\n constructor(\n private encryptionService: EncryptionService\n ) { }\n\n // getToken(){\n // return this.token\n // }\n\n // setToken(token){\n // this.token = token;\n // }\n\n hasToken(): boolean {\n return this.token != undefined? true:false;\n }\n\n getAuthToken() {\n const token = localStorage.getItem(TOKEN_KEY);\n if(!token) return\n ////console.log(\"[TokenService] getAuthToken()\", token);\n const encryptedData = this.encryptionService.decryptData(token);\n return encryptedData;\n }\n\n setAuthToken(token) {\n const encryptedData = this.encryptionService.encryptData(token);\n localStorage.setItem(TOKEN_KEY, encryptedData);\n }\n\n removeAuthToken(){\n localStorage.removeItem(TOKEN_KEY)\n }\n\n saveAllTokenDevices(token){\n this.deviceTokens.push(token)\n const encryptedData = this.encryptionService.encryptData(this.deviceTokens);\n //console.log(\"[TokenService] saveAllTokenDevices() \", encryptedData);\n localStorage.setItem(DEVICE_TOKENS,JSON.stringify(encryptedData))\n }\n\n getAllTokenDevices(){\n let list = JSON.parse(localStorage.getItem(DEVICE_TOKENS))\n if(!list) return null\n //console.log(\"[TokenService] getAllTokenDevices() \", list);\n const decryptedData = this.encryptionService.decryptData(list);\n this.deviceTokens = decryptedData? decryptedData:[]\n return this.deviceTokens\n }\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID, ViewChild } from '@angular/core';\nimport { Preferences } from '@capacitor/preferences';\nimport { map, tap } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ApiEndpointsService } from '../services/api-endpoints.service';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { AlertController, Platform } from '@ionic/angular';\nimport { AngularFireAuth } from \"@angular/fire/compat/auth\";\nimport { Router, RouterOutlet } from '@angular/router';\nimport { FamilyUnit } from '../models/user';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TokenService } from './token.service';\nimport { Capacitor } from '@capacitor/core';\nimport { ChangeEndpointsService } from './change-endpoints.service';\n\nconst INTRO_KEY = 'intro';\n\nexport class User {\n condicion_legal: boolean;\n image: any;\n idPatient: string;\n idUser: string;\n first_name: string;\n secret: string;\n roles: any = [];\n familyUnit: string;\n name: string;\n listFamilyUnit: FamilyUnit[] = [];\n\n selectedCaregiverResponsible;\n\n constructor(idUser: string, secret: string, name: string, first_name: string, image: string) {\n this.idUser = idUser\n this.secret = secret\n this.name = name\n this.first_name = first_name\n this.image = image\n\n };\n\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n isAuthenticated: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(null);\n public user: User;\n public isRecovery: boolean = false;\n public action: string;\n public id_user: string;\n public emergencyNumber: string;\n public data: Array<any>;\n public email: string;\n public agendaUser = [];\n public tiene_email: boolean;\n public deviceToken: string;\n public devicePlatform: string;\n public voipDeviceToken: string;\n public voipDevicePlatform: string;\n public dietsAndAdvices: [];\n public isFamily:boolean;\n private indexEndPoint: number;\n private tokens = []\n showingSignInAlert: boolean = false;\n @ViewChild(RouterOutlet) outlet: RouterOutlet;\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n private http: HttpClient,\n private tokenService: TokenService,\n private api: ApiEndpointsService,\n public platform: Platform,\n public firebaseAuth: AngularFireAuth,\n public router: Router,\n public alertController: AlertController,\n private injector: Injector,\n private endpoints: ChangeEndpointsService) {\n this.setUser();\n }\n\n getIndexEndPoint(){\n this.indexEndPoint = Number(localStorage.getItem('endpoint'))\n //console.log(\"[AuthService] indexEndPoint: \", this.indexEndPoint);\n }\n\n getAuthToken() {\n const token = this.tokenService.getAuthToken()\n ////console.log(\"[AuthService] getAuthToken: \", token);\n return token;\n }\n\n setAuthToken(token) {\n this.tokenService.setAuthToken(token)\n }\n\n // getAuthToken() {\n // const token = localStorage.getItem(TOKEN_KEY);\n // return token;\n // }\n\n // setAuthToken(token) {\n // localStorage.setItem(TOKEN_KEY, token);\n // }\n\n login(credentials: { username, password, hash }): Observable<any> {\n const endpoint = this.api.getEndpoint('patient/login');\n\n //console.log('credentials: ', credentials);\n return this.http.post(endpoint, credentials).pipe(\n map((res: any) => {\n\n //console.log(\"[AuthService] login() OK \");\n //console.log(\"[AuthService] endpoint\", endpoint);\n if (!res.success) {\n return res\n }\n // save user's token\n if (res.token){\n this.tokenService.setAuthToken(res.token);\n this.setAuthToken(res.token);\n }\n\n // Set indexEndPoint ios_dev if it is QA\n this.getIndexEndPoint()\n if (Capacitor.isNativePlatform()) {\n ////console.log(data);\n let access = true;\n if(this.deviceToken && this.devicePlatform)\n this.registerDevice(this.deviceToken, this.devicePlatform);\n\n if (this.platform.is('ios')){\n if(this.voipDeviceToken)\n this.registerDevice(this.voipDeviceToken, this.endpoints._ENVIROMENT.device_ios.ios_voip); // desaorrollo\n //this.registerDevice(this.voipDeviceToken, (this.indexEndPoint!==0)?'iosvoipdev':'iosvoip'); //produccion\n \n\n }\n\n }\n\n this.user = new User(res.idUser, credentials.password, res.name, res.first_name, res.temporary_url);\n this.id_user = res.idUser;\n this.emergencyNumber = res.emergency_phone_button;\n \n if (res?.familyUnit.length > 0) {\n this.user.listFamilyUnit = res.familyUnit;\n }\n\n this.setUserLocalstorage(this.user)\n this.setTwoFactor(res.twoFactorCenter)\n\n return res;\n\n }),\n tap(_ => {\n this.isAuthenticated.next(true);\n }),\n );\n }\n\n setUser() {\n if (!this.user) {\n this.getUserLocalstorage().then(user => {\n //console.log(\"[AuthenticationService] setUser()\", user);\n if (user)\n this.user = user\n })\n }\n\n }\n\n setUserLocalstorage(user) {\n //console.log(`[AuthenticationService] setUserLocalstorage()`, user);\n Preferences.set({\n key: 'user',\n value: JSON.stringify(user)\n });\n\n }\n\n setEmergencyNumberLocalStorage(number) {\n //console.log(`[AuthenticationService] setEmergencyNumberLocalStorage()`, number);\n Preferences.set({\n key: 'emergencyNumber',\n value: JSON.stringify(number)\n });\n\n }\n\n setFamilyUnitLocalstorage(familyUnit: []) {\n\n\n familyUnit.forEach(member => {\n let s: string = member['name'];\n let fullname = s.split(',');\n let u = new User(member['id'], '', fullname[1], fullname[0], member['thumbnail']);\n //console.log(\"familyUnit Local:\", u);\n Preferences.set({\n key: String(u.idUser),\n value: JSON.stringify(u)\n });\n })\n }\n\n getFamilyUnitLocalstorage(id): Promise<User> {\n return Preferences.get({ key: id }).then((val) => {\n //console.log(`[AuthenticationService] getFamilyUnitLocalstorage(${id})`, val);\n return JSON.parse(val.value);\n });\n }\n\n public async setFamilyUnit(user) {\n this.isFamily = true;\n let s: string = user['name'];\n let fullname = s.split(',');\n\n let previousUser = this.user\n \n\n this.user = new User(user.id, '', /* fullname[0].replace(',','') */ user['name'], fullname[1], user.thumbnail);\n this.user.selectedCaregiverResponsible = previousUser;\n this.user.familyUnit = user.id;\n \n Preferences.set({\n key: String(user.id),\n value: JSON.stringify(this.user)\n });\n\n\n }\n\n getUserLocalstorage(): Promise<User> {\n return Preferences.get({ key: 'user' }).then((val) => {\n return JSON.parse(val.value);\n });\n }\n\n public async setUserFamilyId(id) {\n\n await this.getUserLocalstorage().then(user => {\n this.isFamily = false;\n //console.log(`[AuthenticationService] MEMBER(${id})`, user);\n let s: string = user['name'];\n let fullname = s.split(',');\n this.user = new User(user['idUser'], '', /* fullname[0].replace(',','') */ user['name'], fullname[1], user['image']);\n this.user.familyUnit = id;\n this.setUserLocalstorage(this.user)\n })\n }\n\n getShowIntroLocalstorage(): Promise<any> {\n return Preferences.get({ key: 'showIntro' }).then((val) => {\n //console.log(`[AuthService] getShowIntroLocalstorage()`, val.value);\n return Boolean(val.value)\n });\n }\n\n async setShowIntroLocalstorage() {\n await Preferences.set({\n key: 'showIntro',\n value: 'true'\n });\n }\n\n setCanceledHealthConnectLocalstorage(mostrar: string) {\n localStorage.setItem('cancelHealthConnect', mostrar);\n }\n\n async setShowHealthConnectLocalstorage() {\n await Preferences.set({\n key: 'showHealthConnect',\n value: 'true'\n });\n }\n\n setTwoFactor(tfCenter){\n localStorage.setItem('two-factor-center', tfCenter);\n }\n\n async logout1(): Promise<void>{\n //console.log('logout');\n this.isAuthenticated.next(false);\n await Preferences.remove({ key: 'user' }).then((val) => { });\n this.tokenService.removeAuthToken()\n return\n }\n\n logout(allDevices?): Observable<any> {\n let path = 'patient/logout'\n //this.getAllTokenDevices()\n const tokens = this.tokenService.getAllTokenDevices();\n let params = {\n tokens: tokens, //\n allDevices: allDevices? allDevices: false\n }\n //console.log('logout', params );\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map( (res: any) => {\n //console.log(`[AuthenticationService] logout(${path}) res: `, JSON.stringify(res) );\n this.isAuthenticated.next(false);\n Preferences.remove({ key: this.user.familyUnit }).then((val) => { });\n Preferences.remove({ key: 'user' }).then((val) => { });\n this.tokenService.removeAuthToken()\n return res;\n })\n );\n }\n\n increaseNumloginFailed(){\n let numFailLogin = 0\n let num = localStorage.getItem('num-fail-login');\n if(num){\n let numFailLogin = Number(JSON.parse(num)) + 1\n localStorage.setItem('num-fail-login',''+numFailLogin);\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n }else{\n localStorage.setItem('num-fail-login','1');\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n numFailLogin = 1\n }\n //console.log('[AuthenticationService] increaseNumloginFailed()', numFailLogin);\n }\n\n increaseNumFPAIOFailed(){\n let num = localStorage.getItem('num-fail-finger-print');\n if(num){\n localStorage.setItem('num-fail-login',''+(Number(JSON.parse(num)) + 1));\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n }else{\n localStorage.setItem('num-fail-login','1');\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n }\n }\n\n getNumloginFailed(){\n let num = localStorage.getItem('num-fail-login');\n if(num) return Number(JSON.parse(num))\n return 0\n }\n\n getDateloginFailed(){\n let num = localStorage.getItem('login_request_locked_at');\n if(num) return Number(JSON.parse(num))\n return 0\n }\n\n getNumFingerPrinterFailed(){\n let num = localStorage.getItem('num-fail-finger-print');\n if(num) return Number(JSON.parse(num))\n return 0\n }\n\n removeNumloginFailed(){\n localStorage.removeItem('num-fail-login');\n localStorage.removeItem('login_request_locked_at');\n }\n\n removeNumFirgerPFailed(){\n localStorage.removeItem('num-fail-finger-print');\n localStorage.removeItem('login_request_locked_at');\n }\n\n get(endpt): Observable<any> {\n const endpoint = this.api.getDooleEndpoint(endpt);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n return res;\n })\n );\n\n }\n\n post(endpt, items): Observable<any> {\n const endpoint = this.api.getDooleEndpoint(endpt);\n return this.http.post(endpoint, items).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n throwError(error: any) {\n\n if (error instanceof HttpErrorResponse)\n throw new HttpErrorResponse(error);\n else\n throw new Error(error);\n }\n\n\n public registerDevice(token, platform) {\n\n if(platform == 'FCM')\n platform = 'android';\n if(platform == 'APNS')\n platform = this.endpoints._ENVIROMENT.device_ios.ios_push;\n if(platform == 'ios')\n platform = this.endpoints._ENVIROMENT.device_ios.ios_push;\n\n const postData = {\n token: token,\n platform: platform,\n version: 1\n };\n\n // //console.log(\"postData: \", postData);\n\n return this.post('user/device/register', postData).subscribe(\n async (data) => {\n let response=data;\n // //console.log(\"response user/device/register\");\n ////console.log(response);\n this.tokenService.saveAllTokenDevices(postData)\n //this.saveAllTokenDevices(postData)\n return response;\n },\n (error) => {\n // Called when error\n //console.log('error user/device/register: ', error);\n throw error;\n });\n }\n\n // saveAllTokenDevices(token){\n // this.tokens.push(token)\n // //console.log(`[AuthService] saveAllTokenDevices()`, this.tokens);\n // localStorage.setItem(TOKENS,JSON.stringify(this.tokens))\n // }\n\n // getAllTokenDevices(){\n // let list = JSON.parse(localStorage.getItem(TOKENS))\n // //console.log(`[AuthService] getAllTokenDevices()`, list);\n // this.tokens = list? list:[]\n // }\n\n\n async showIntro() {\n return Preferences.get({ key: INTRO_KEY }).then(async (data) => {\n let showIntro = Boolean(data.value)\n //console.log(`[AuthService] showIntro()`, showIntro);\n return showIntro;\n\n })\n\n }\n\n getShowHealthConnectLocalstorage(): Promise<any> {\n return Preferences.get({ key: 'showHealthConnect' }).then((val) => {\n return Boolean(val.value)\n });\n }\n\n\n postAPIbiometric(params: Object): Observable<any> {\n let path = `user/biometric`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] postAPIbiometric(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIbiometric(id: any, params: Object): Observable<any> {\n let path = `user/biometric/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] putAPIbiometric(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIbiometric(id: Object): Observable<any> {\n let path = `user/biometric/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //console.log(`[DooleService] deleteAPIbiometric(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n redirectLogin(){\n this.router.navigateByUrl('/landing');\n }\n\n\n async redirectUnauthenticated() {\n\n const translateService = this.injector.get(TranslateService)\n\n const alert = await this.alertController.create({\n cssClass: \"alertClass\",\n header: translateService.instant('info.title'),\n backdropDismiss:false,\n // subHeader: 'Subtitle',\n message: translateService.instant('landing.login_again'),\n buttons: [\n {text: translateService.instant('button.accept'),\n handler: () => {\n this.router.navigateByUrl(`/landing`);\n }\n }\n ]\n });\n\n await alert.present();\n }\n\n getShowGoogleFitLocalstorage(): Promise<any> {\n return Preferences.get({ key: 'showGoogleFit' }).then((val) => {\n return Boolean(val.value)\n });\n }\n \n async setShowGoogleFitLocalstorage() {\n await Preferences.set({\n key: 'showGoogleFit',\n value: 'true'\n });\n }\n setCanceledGoogleFitLocalstorage(mostrar: string) {\n localStorage.setItem('cancelGoogleFit', mostrar);\n }\n\n getCanceledGoogleFitLocalstorage():boolean {\n const value = localStorage.getItem('cancelGoogleFit')\n return value !== null ? JSON.parse(value) : false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams, HttpBackend } from '@angular/common/http';\nimport { Observable, throwError, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { AuthenticationService } from './authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HttpService {\n private httpWithoutInterceptor: HttpClient;\n\n constructor(\n private http: HttpClient,\n private httpBackend: HttpBackend,\n private authService: AuthenticationService,\n ) {\n this.httpWithoutInterceptor = new HttpClient(httpBackend);\n }\n\n private async formatErrors(error: any) {\n return error;\n }\n\n get(path: string, params: HttpParams = new HttpParams()): Observable<any> {\n let user = this.authService?.user\n params = (user?.familyUnit) ? params.append('user', user?.familyUnit) : params\n return this.http.get(`${path}`, { params })\n .pipe(catchError(this.formatErrors));\n }\n\n put(path: string, body: Object = {}, options: Object = {}): Observable<any> {\n\n let httpOptions = this.setHttpOptions(options);\n ////console.log(\"url: \", path);\n ////console.log(\"body: \", body);\n return this.http.put(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n postform(path: string, body: Object = {}, options: Object = {}): Observable<any> {\n let user = this.authService?.user\n if (user?.familyUnit !== null)\n body['user'] = user?.familyUnit;\n\n let httpOptions = this.setHttpOptions(options);\n ////console.log(\"url: \", path);\n ////console.log(\"body: \", body);\n\n return this.http.post(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n\n post(path: string, body: Object = {}, options: Object = {}, formData?): Observable<any> {\n let user = this.authService?.user\n if (user?.familyUnit !== undefined && user?.familyUnit !== null)\n body['user'] = user?.familyUnit;\n\n let httpOptions = this.setHttpOptions(options,formData);\n ////console.log(\"url: \", path);\n ////console.log(\"body: \", body);\n\n return this.http.post(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n postForm(path: string, body: Object = {}, options: Object = {}, formData?): Observable<any> {\n\n let user = this.authService?.user\n if (user?.familyUnit !== null)\n body['user'] = user?.familyUnit;\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Accept': 'application/json'\n })\n };\n\n //console.log(\"url: \", path);\n //console.log(\"body: \", body);\n\n return this.http.post(\n `${path}`,\n body,\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n delete(path): Observable<any> {\n return this.http.delete(\n `${path}`\n ).pipe(catchError(this.formatErrors));\n }\n\n _get(path: string, params: HttpParams = new HttpParams()): Observable<any> {\n return this.httpWithoutInterceptor.get(`${path}`, { params })\n .pipe(catchError(this.formatErrors));\n }\n\n _put(path: string, body: Object = {}): Observable<any> {\n return this.httpWithoutInterceptor.put(\n `${path}`,\n JSON.stringify(body)\n ).pipe(catchError(this.formatErrors));\n }\n\n _post(path: string, body: Object = {}, options: Object = {}): Observable<any> {\n\n let httpOptions = this.setHttpOptions(options);\n let params = this.setHttpParams(body);\n\n\n return this.httpWithoutInterceptor.post(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(error => this.formatErrors(error)));\n }\n\n _delete(path): Observable<any> {\n return this.httpWithoutInterceptor.delete(\n `${path}`\n ).pipe(catchError(this.formatErrors));\n }\n\n setHttpParams(body) {\n let params = new HttpParams();\n\n if (body != null)\n for (let key in body)\n params = params.append(key, body[key]);\n\n return params;\n }\n\n setHttpOptions(options, formData?) {\n\n //console.log('** options', options);\n\n if(formData){\n const httpOptions = {\n headers: new HttpHeaders({\n 'Accept': 'application/json'\n })\n };\n\n return httpOptions;\n }else if(Object.keys(options).length > 0){\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type':'application/json',\n 'Accept': 'application/json',\n options\n })\n };\n\n return httpOptions;\n }else{\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type':'application/json',\n 'Accept': 'application/json',\n })\n };\n\n return httpOptions;\n }\n\n }\n}","import {Injectable} from '@angular/core';\nimport {Subject, Subscription} from 'rxjs';\n\n/**\n * A custom Events service just like Ionic 3 Events https://ionicframework.com/docs/v3/api/util/Events/ which got removed in Ionic 5.\n *\n * @author Shashank Agrawal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class Events {\n\n private channels: { [key: string]: Subject<any>; } = {};\n\n /**\n * Subscribe to a topic and provide a single handler/observer.\n * @param topic The name of the topic to subscribe to.\n * @param observer The observer or callback function to listen when changes are published.\n *\n * @returns Subscription from which you can unsubscribe to release memory resources and to prevent memory leak.\n */\n subscribe(topic: string, observer: (_: any) => void): Subscription {\n //console.log(\"subscribe topic: \", topic);\n if (!this.channels[topic]) {\n // You can also use ReplaySubject with one concequence\n this.channels[topic] = new Subject<any>();\n }\n\n return this.channels[topic].subscribe(observer);\n }\n\n /**\n * Publish some data to the subscribers of the given topic.\n * @param topic The name of the topic to emit data to.\n * @param data data in any format to pass on.\n */\n publish(topic: string, data?: any): void {\n const subject = this.channels[topic];\n if (!subject) {\n // Or you can create a new subject for future subscribers\n return;\n }\n\n subject.next(data);\n }\n\n /**\n * When you are sure that you are done with the topic and the subscribers no longer needs to listen to a particular topic, you can\n * destroy the observable of the topic using this method.\n * @param topic The name of the topic to destroy.\n */\n destroy(topic: string) {\n const subject = this.channels[topic];\n if (!subject) {\n return null;\n }\n\n subject.complete();\n delete this.channels[topic];\n }\n}","import { Injectable } from '@angular/core';\nimport { ApiEndpointsService } from './api-endpoints.service';\nimport { Events } from './events.service';\nimport { HttpService } from './http.service';\nimport { Observable, of, throwError, TimeoutError } from 'rxjs';\nimport { AlertController, Platform } from '@ionic/angular';\nimport { Capacitor } from '@capacitor/core';\nimport { catchError, delay, filter, map, mergeMap } from 'rxjs/operators';\nimport { HealthCard } from '../models/user';\nimport { Router } from '@angular/router';\nimport { HttpHeaders, HttpParams } from '@angular/common/http';\nimport { QueryStringParameters } from '../utils/query-string-parameters';\nimport { ShellChatModel, ShellMessageModel, ShellRecipientModel } from '../utils/chatParameters';\nimport { AuthenticationService } from './authentication.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { File } from '@awesome-cordova-plugins/file/ngx';\nimport { FileTransfer, FileUploadOptions, FileTransferObject } from '@awesome-cordova-plugins/file-transfer/ngx';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DooleService {\n pushNotification: any;\n constructor(\n private authService: AuthenticationService,\n private transfer: FileTransfer,\n private file: File,\n private http: HttpService,\n private api: ApiEndpointsService,\n public events: Events,\n private platform: Platform,\n public router: Router,\n public alertController: AlertController,\n public translate: TranslateService) { }\n\n public selectedDate: Date;\n\n uploadFile(image: string, id?: string) {\n\n ////console.log(\"uploading \", image);\n const token = localStorage.getItem('token');\n let options: FileUploadOptions = {\n fileKey: 'file',\n fileName: 'name.jpg',\n\n headers: {\n 'Authorization': 'Bearer ' + token,\n 'Accept': 'application/json',\n },\n params: {\n id: id\n }\n }\n\n const fileTransfer: FileTransferObject = this.transfer.create();\n // Add files for new or saved diagnostics. \n // uses diagnostic/media when diagnostic is new \n //const endpoint = id ? this.api.getEndpoint('diagnostic/media'):this.api.getEndpoint('media/upload/temp') ;\n const endpoint = this.api.getEndpoint('media/upload/temp');\n //console.log(\"* uploadFile endpoint\", endpoint);\n\n return new Promise(function (resolve, reject) {\n fileTransfer.upload(image, endpoint, options).then(data => {\n //console.log(data);\n resolve(JSON.parse(data.response));\n }, (err) => {\n //console.log(err);\n reject(err);\n })\n })\n\n }\n\n\n postAPIAddMedia(params: Object){\n const endpoint = this.api.getEndpoint('media/add');\n \n return this.http.postForm(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] postAPIAddMedia(${endpoint}) res: `, res);\n return res;\n })\n );\n }\n\n uploadFileToModel(image: string, name: string, params: any) {\n //console.log(\"uploading \", image);\n const token = localStorage.getItem('token');\n let options: FileUploadOptions = {\n fileKey: 'file',\n fileName: name,\n headers: {\n 'Authorization': 'Bearer ' + token,\n 'Accept': 'application/json',\n },\n params\n }\n\n const fileTransfer: FileTransferObject = this.transfer.create();\n const endpoint = this.api.getEndpoint('media/add');\n return new Promise(function (resolve, reject) {\n fileTransfer.upload(image, endpoint, options).then(data => {\n //console.log(JSON.parse(data.response));\n resolve(JSON.parse(data.response));\n }, (err) => {\n reject(err);\n })\n })\n\n }\n\n uploadMessageImage(idMessageHeader, idUserTo, message, fileUrl, id_usuari_amiq) {\n\n const token = localStorage.getItem('token');\n\n let options: FileUploadOptions = {\n fileKey: 'file',\n fileName: 'name.pdf', //TODO: 'name.jpg'\n headers: {\n 'Authorization': 'Bearer ' + token,\n 'Accept': 'application/json',\n },\n params: {\n idUser: id_usuari_amiq,\n secret: token,\n value: \"\",\n id: idMessageHeader\n }\n }\n //console.log(\"options: \", options);\n\n const fileTransfer: FileTransferObject = this.transfer.create();\n\n fileTransfer.onProgress((progressEvent) => {\n if (progressEvent.lengthComputable) {\n var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100);\n this.events.publish(\"uploadMessageImage\", { fileUrl, perc });\n } else {\n //console.log(\"progressEvent - \", progressEvent);\n }\n });\n\n const endpoint = this.api.getEndpoint('message');\n\n return new Promise(function (resolve, reject) {\n fileTransfer.upload(fileUrl, endpoint, options)\n .then(data => {\n //console.log(\"success fileTransfer.upload\", JSON.parse(data.response));\n resolve(JSON.parse(data.response));\n }, (err) => {\n //console.log(\"** error ** fileTransfer.upload: \", err);\n reject(fileTransfer.upload);\n })\n })\n\n }\n\n\n b64toBlob(b64Data, contentType = '', sliceSize = 512) {\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays, { type: contentType });\n return blob;\n }\n\n \n deleteFile(id): Observable<any> {\n let path = `media/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteFile(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n showAlert(message: string) {\n\n return this.alertController.create({\n cssClass: 'my-alert-class',\n //mode: 'ios',\n header: 'Info',\n message: message,\n backdropDismiss: false,\n buttons: [\n {\n text: 'Aceptar',\n role: 'confirm',\n cssClass: 'onlyButton',\n handler: (blah) => {\n ////console.log('[LandingPage] AlertConfirm Cancel');\n }\n }\n ]\n });\n\n }\n\n async showAlertAndReturn(header: string, message: string, isDismiss?: boolean, route?: string) {\n //console.log(`[DooleService] showAlertAndReturn()`);\n let dismiss = (isDismiss !== undefined) ? isDismiss : false\n const alert = await this.alertController.create({\n cssClass: 'my-alert-class',\n //mode: 'ios',\n header: header,\n message: message,\n backdropDismiss: dismiss,\n buttons: [\n {\n text: 'Aceptar',\n handler: (blah) => {\n //console.log('Confirm OK: blah');\n if (route !== undefined && route !== null)\n this.router.navigateByUrl(route);\n }\n }\n ]\n });\n await alert.present();\n }\n\n async presentAlert(message, button?: string) {\n let buttonName = (button !== undefined) ? button : this.translate.instant('landing.accept-btn');\n const alert = await this.alertController.create({\n cssClass: 'my-alert-class',\n //mode: 'ios',\n message: message,\n buttons: [\n {\n text: buttonName,\n role: 'confirm',\n cssClass: 'onlyButton',\n handler: (blah) => {\n ////console.log('[LandingPage] AlertConfirm Cancel');\n }\n }\n ]\n });\n await alert.present();\n }\n\n getFamilyUnitID(): HttpParams {\n let httpParams = new HttpParams();\n let user = this.authService?.user\n return httpParams = (user.familyUnit) ? httpParams.append('user', user.familyUnit) : httpParams\n }\n\n getAPILegalAndPolicy(): Observable<any> {\n let path = 'center/legal-term-and-privacy-policy/last';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPILegalAndPolicy(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPILegalInformation(): Observable<any> {\n let path = 'user/legalTerm/lastAccepted';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPILegalInformation(${path}) res: `, res);\n return res;\n })\n )\n }\n postAPILegalConfirmation(params: Object): Observable<any> {\n let path = 'user/legalTerm/lastAccepted';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIConfirmationLegal(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIRejectLegalConfirmation(params: Object): Observable<any> {\n let path = 'user/legalTerm/lastDeclined';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIConfirmationLegal(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIpasswordRecovery(params: Object): Observable<any> {\n let path = 'patient/forgot'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIpasswordRecovery(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getPatientData(params: Object): Observable<any> {\n let path = 'patient/data'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIpasswordRecovery(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIStaffSlots(params: { id: number, date: string }) {\n\n let path = `staff/${params.id}/availability`;\n let endpoint: string;\n if (params.date !== \"\") {\n endpoint = this.api.getEndpointWithParameters(path, (qs: QueryStringParameters) => qs.push('date', params.date));\n } else {\n endpoint = this.api.getEndpoint(path);\n }\n\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIStaffSlots(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIgoals(): Observable<any> {\n let path = 'user/element/goals'\n //let path = 'user/goals/elements'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIvideocall(id:string): Observable<any>{\n let path = 'user/agenda/'+id+'/videocallSession'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIvideocall(${path}) res: `, res);\n return res;\n })\n )\n }\n\n\n postAPIPendingConnect(): Observable<any>{\n let path = 'user/videocall/pendingConnect'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIPendingConnect(${path}) res: `, res);\n return res;\n })\n )\n }\n\n/* getAPIinformationUser(): Observable<any>{\n\n let path = 'user/informationUser'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n } */\n \n updateAPIImageuser(params: Object): Observable<any> {\n let path = `user/image`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIImageuser(): Observable<any> {\n let path = `user/image`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIinformationSummary(params: Object){\n let path = 'home'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n mergeMap((v) => v instanceof TimeoutError ? throwError(v) : of(v)) \n );\n }\n getAPIinformationSummaryOld(params: Object){\n let path = 'home'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map(res => res) \n );\n }\n\n\n getAPIuserProfile(): Observable<any> {\n let path = 'v2/user/profile'\n //let httpParams = this.getFamilyUnitID()\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n }\n\n postAPIChangePassword(params: Object): Observable<any> {\n let path = 'user/changePassword';\n let httpParams = this.getFamilyUnitID()\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIChangePassword(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPInotificationConfigurations(): Observable<any> {\n let path = 'user/configuration'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPInotificationConfigurations(${path}) res: `, res);\n return res;\n })\n )\n }\n\n postAPIConfiguration(params: Object): Observable<any> {\n let path = 'user/configuration';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIConfiguration(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIlanguagesCenter(): Observable<any> {\n let path = 'center/languages'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlanguagesCenter(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIFaqs(): Observable<any> {\n let path = 'center/faq'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIFamilyUnit(): Observable<any> {\n let path = 'user/familyUnit';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIFamilyUnit(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPIFamilyUnit2(): Observable<any> {\n let path = 'v2/user/familyUnit';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIFamilyUnit(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIReportProblem(params: Object): Observable<any> {\n let path = 'user/reportProblem'; // 'media/upload/temp' \n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIReportProblem(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIemailVerification(params: Object): Observable<any> {\n let path = 'user/email_verification';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIemailVerification(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPICodeByEmail(): Observable<any> {\n let path = 'user/resendTwoFactorCode';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPICodeByEmail(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIcodeVerification(params: Object): Observable<any> {\n let path = 'user/verifyTwoFactor';\n //let path = 'user/codeVerification'; \n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIcodeVerification(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n\n getAPIhealthCardTypes(): Observable<any> {\n let path = 'center/healthCardTypes';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIhealthCardTypes(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIhealthCards(): Observable<any> {\n let path = 'user/healthcards';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPhealthCards(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIhealthCardId(id): Observable<any> {\n let path = `user/healthcard/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIhealthCard(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIhealthCards(params: Object): Observable<any> {\n let path = 'user/healthcard';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIReportProblem(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIhealthCard(params: HealthCard): Observable<any> {\n let path = `user/healthcard/${params.id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] putAPIhealthCard(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIhealthCard(params: HealthCard): Observable<any> {\n let path = `user/healthcard/${params.id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIhealthCard(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n getAPISocialRelationType(): Observable<any> {\n let path = 'center/socialRelationType';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPISocialRelationType(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIemergencyContact(): Observable<any> {\n let path = 'user/EmergencyContacts';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIemergencyContact(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIemergencyContactID(id: any): Observable<any> {\n let path = `user/EmergencyContact/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIemergencyContact(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIemergencyContact(params: Object): Observable<any> {\n let path = 'user/EmergencyContact';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIemergencyContact(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIemergencyContact(id: any, params: Object): Observable<any> {\n let path = `user/EmergencyContact/${id}`;\n ////console.log('[DooleService] putAPIemergencyContact()', params);\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] putAPIemergencyContact(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIemergencyContact(id: any): Observable<any> {\n let path = `user/EmergencyContact/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIemergencyContact(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n\n getAPIaboutUs(): Observable<any> {\n let path = 'center/about';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIaboutUs(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIappointmentAgenda(): Observable<any>{\n let path = 'user/agenda';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIappointmentAgenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n //documents-Tracking\n getAPIdiagnosticTests(): Observable<any> {\n let path = 'user/diagnosticTests';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdiagnosticTests(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdiagnosticTestsLast(): Observable<any> {\n let path = 'user/diagnosticTests/last-done';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdiagnosticTests(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdiagnosticTestTypesAvailable(): Observable<any> {\n let path = 'diagnosticTestTypes/available';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdiagnosticTestTypesAvailable(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdiagnosticTestID(id: Object): Observable<any> {\n let path = 'v2/user/diagnosticTest/' + id;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdiagnosticTestID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIdiagnosticTest(params: Object): Observable<any> {\n let path = 'v2/user/diagnosticTests/';\n const endpoint = this.api.getEndpoint(path);\n ////console.log(\"POST: \",params);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIdiagnosticTest(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIdiagnosticTest(id, params: any): Observable<any> {\n let path = `user/diagnosticTest/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] putAPIdiagnosticTest(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIdiagnosticTest(id): Observable<any> {\n let path = `user/diagnosticTest/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIdiagnosticTest(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n getAPIfilteredDiagnosticTest(params: any): Observable<any> {\n let path = 'user/diagnosticTests';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams();\n // Begin assigning parameters\n if (params !== undefined) {\n httpParams = (params.start_date) ? httpParams.append('from_date', params.start_date) : httpParams\n httpParams = (params.end_date) ? httpParams.append('to_date', params.end_date) : httpParams\n if (params.diagnosticTestTypes) {\n params.diagnosticTestTypes.forEach(element => {\n httpParams = httpParams.append('diagnostic_test_type_id[]', element)\n });\n }\n }\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIfilteredDiagnosticTest(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIformPending(params): Observable<any> {\n let path = 'forms/pending/user';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIformPending(${path}) res: `, res);\n return res;\n })\n );\n }\n \n //forms-Tracking\n getAPISharedcareFormList(patient){\n let path = `/rehabilify/sharedcareplan/monitoring/${patient}`; \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n\n\n getAPIformLists(): Observable<any> {\n let path = 'forms/user';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIformLists(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIFormJSON(form, params?): Observable<any> {\n let path = `form/${form}/formFields`;\n let httpParams = new HttpParams();\n httpParams = (params?.formAnswer) ? httpParams.append('formAnswer', params?.formAnswer) : httpParams\n httpParams = (params?.game_play_id) ? httpParams.append('game_play_id', params?.game_play_id) : httpParams\n httpParams = (params?.started_app) ? httpParams.append('started_app', params?.started_app) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIFormJSON(form, params): Observable<any> {\n let path = `formfield/conditional/${form}/field/${params.formField}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIFormFill(params): Observable<any> {\n let path = `form/fill/`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n //graphics-Tracking\n\n getAPIelementsList(filter?): Observable<any> {\n let path = 'user/elements' /* 'user/elementsList/v2' */\n let httpParams = new HttpParams();\n httpParams = (filter?.only_with_values)? httpParams.append('only_with_values', filter?.only_with_values): httpParams\n httpParams = (filter?.grouped)? httpParams.append('grouped', filter?.grouped) : httpParams\n httpParams = (filter?.filter)? httpParams.append('filter', filter?.filter) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIelementsList(${path}) res: `, res);\n return res;\n })\n );\n }\n \n /** get elements with query by parameter date */\n getAPIelementsListByDate(params: any): Observable<any> {\n let path = 'user/elementsList/v2' /* 'user/elementsList' */\n let httpParams = new HttpParams();\n if(params.filter == '1') httpParams = httpParams.append('filter', '1')\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsListByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementsByGroup(filter?): Observable<any> {\n let path = 'center/elementGroup/elements'\n let httpParams = new HttpParams();\n if(filter == '1' || filter == '0') httpParams = httpParams.append('filter', filter)\n else httpParams = httpParams.append('filter', '1')\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsListByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIaddElement(id, params: Object): Observable<any> {\n let path = 'user/element/' + id + '/value/add'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIaddElement(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIgraphicsElement(id: Object, query): Observable<any> {\n let path = 'user/element/' + id;\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('interval', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgraphicsElement(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementID(id: Object, params?): Observable<any> {\n let path = `v2/user/element/${id}`;\n let httpParams = new HttpParams();\n httpParams = (params?.interval) ? httpParams.append('interval', params?.interval) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n httpParams = (params?.version) ? httpParams.append('version', params?.version) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgraphicsElement(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementAvailableID(id: Object): Observable<any> {\n let path = `element/available/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementAvailableID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIcategory(): Observable<any> {\n let path = 'user/element_category';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIcategory(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementGroupID(id: Object, filter?): Observable<any> {\n let path = `center/elementGroup/${id}/elements`;\n let httpParams = new HttpParams();\n httpParams = (filter) ? httpParams.append('filter', filter) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementGroupID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n searchAPIelementGroup(params?: any): Observable<any> {\n let path = 'center/elementGroups'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] searchAPIelementGroup(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementGroup(params?: any): Observable<any> {\n let path = 'center/elementGroups'\n let httpParams = new HttpParams();\n httpParams = (params?.filter) ? httpParams.append('filter', params?.filter) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementGroup(${path}) res: `, res);\n return res;\n })\n );\n }\n /** get diets with query by parameter date */\n getAPIlistDietsByDate(params?: Object): Observable<any> {\n let path = 'user/diets';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlistDietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIListRecipe(params): Observable<any> {\n let path = `user/diets/receipts`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime)\n .set('from_date', params.from_date)\n .set('to_date', params.to_date);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n\n /*getAPIdietsByDate(date: any): Observable<any> {\n let path = `user/dietaryIntakes`\n let httpParams = new HttpParams();\n httpParams = (date) ? httpParams.append('date', date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }*/\n\n getAPIdietsByDate(params: any): Observable<any> {\n let path = `user/dietaryIntakes`\n let httpParams = new HttpParams();\n httpParams = (params?.date) ? httpParams.append('date', params.date) : httpParams\n httpParams = (params?.grouped_by_times) ? httpParams.append('grouped_by_times', params.grouped_by_times) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIFormsByDate(params: any): Observable<any> {\n let path = `rehabilify/sharedcareplan/forms`;\n let httpParams = new HttpParams();\n httpParams = (params?.date) ? httpParams.append('date', params.date) : httpParams\n httpParams = (params?.grouped_by_times) ? httpParams.append('grouped_by_times', params.grouped_by_times) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n \n\n getAPIdetailDiets(id: any): Observable<any> {\n let path = `diet/${id}`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('interactions', 1)\n .set('tags', 1)\n\n return this.http.get(endpoint, httpParams ).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailDiets(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdetailRecipe(id: any): Observable<any> {\n let path = `diet/receipt/${id}`;\n let httpParams = new HttpParams()\n .set('interactions', 1)\n .set('tags', 1);\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIlistTestimonials(params): Observable<any> {\n let path = `user/testimonials`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n \n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdetailTestimonial(id, params): Observable<any> {\n let path = `user/testimony/${id}`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime)\n .set('interactions', 1);\n \n \n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n \n\n /** get advices **/\n getAPIlistAdvices(params): Observable<any> {\n let path = 'user/advices';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlistAdvices(${path}) res: `, res);\n return res;\n })\n );\n }\n\n \n /** get news **/\n getAPIlistNews(params): Observable<any> {\n let path = 'user/news';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlistNews(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdetailNew(id: any): Observable<any> {\n let path = `user/new/${id}`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', 1)\n .set('interactions', 1);\n\n return this.http.get(endpoint, httpParams ).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailNew(${path}) res: `, res);\n return res;\n })\n );\n } \n\n getAPIdetailAdvices(id: any): Observable<any> {\n let path = `advice/${id}`;\n const endpoint = this.api.getEndpoint(path);\n \n let httpParams = new HttpParams()\n .set('tags', 1)\n .set('interactions', 1);\n\n return this.http.get(endpoint, httpParams ).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n\n getAPISearchNews(query: any,params): Observable<any> {\n let path = 'news';\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPISearchNews(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPISearchAdvices(query: any): Observable<any> {\n let path = 'advices';\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPISearchAdvices(${path}) res: `, res);\n return res;\n })\n );\n }\n \n getAPIdrugsList(query: any): Observable<any> {\n let path = `drugIntake/list`;\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdrugsList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n \n getAPIdrugsListInteraction(query: any): Observable<any> {\n const endpoint = `https://n6ibaazevnsixfcs4prl7z7wra0oonma.lambda-url.eu-central-1.on.aws/`;\n // const endpoint = `https://n6ibaazevnsixfcs4prl7z7wra0oonma.lambda-url.eu-central-1.on.aws/?drug=DB01363`;\n //let httpParams = new HttpParams().set('drug', query);\n let httpParams = new HttpParams()\n .set('drug', query)\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n\n getAPIdrugIntakeByDate(params: Object): Observable<any> {\n let path = 'user/drugIntake/date';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdrugIntakeByDate(${path}) res: `, res);\n return res;\n\n })\n );\n }\n// send medication list\n getAPImedicationList(query: any): Observable<any> {\n let path = `sendmedication/list`;\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPImedicationList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdirectionsList(): Observable<any> {\n let path = `user/addresses`;\n // let httpParams = new HttpParams();\n // httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdirectionList(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPImedicationsList(): Observable<any> {\n let path = `sendmedication/list`;\n // let httpParams = new HttpParams();\n // httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdirectionList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIsendDirection(params: Object): Observable<any> {\n let path = 'user/address';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIsendDirection(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIsendDirection(id: any, params: Object): Observable<any> {\n let path = `user/address/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIsendDirection(id: Object): Observable<any> {\n let path = `user/address/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPImedicationPlan(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n postAPImedicationSendPetition(params: Object): Observable<any> {\n let path = 'sendmedication';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIsendDirection(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIdrugIntake(params: Object): Observable<any> {\n let path = 'user/drugIntake';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIchangeStatedrugIntake(id: Object, state: Object): Observable<any> {\n let path = `user/drugIntake/${id}/set/${state}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPImedicationPlan(params: Object): Observable<any> {\n let path = `user/medicationPlan`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPImedicationPlan(id: any, params: Object): Observable<any> {\n let path = `user/medicationPlan/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPImedicationPlan(id: Object): Observable<any> {\n let path = `user/medicationPlan/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPImedicationPlan(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n getAPImedicationPlan(id): Observable<any> {\n let path = `user/medicationPlan/${id}`\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPImedicationPlan(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPImedicationPlans(params?): Observable<any> {\n let path = `user/medicationPlans`\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPImedicationPlan(${path}) res: `, res);\n return res;\n })\n );\n }\n//todos los medicamentos asignados a esa persona\n getAPImedicationAlls(): Observable<any> {\n let path = `user/medicationPlans` \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPImedicationPlan(${path}) res: `, res);\n return res;\n })\n );\n }\n\n// activatePendingMedicationPlans\n getAPIPendingMedicationPlans(params?): Observable<any> {\n let path = `user/pending/medicationPlans`\n let httpParams = new HttpParams();\n httpParams = (params?.onlyCount === 1 || params?.onlyCount === 0) ? httpParams.append('onlyCount', params?.onlyCount) : httpParams\n httpParams = (params?.onlyCount === undefined) ? httpParams.append('onlyCount', '0') : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIPendingMedicationPlans(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIFrequenciesMedicationPlansHPC(params?): Observable<any> {\n let path = `hpc/medicationPlan/frequencies`\n let httpParams = new HttpParams();\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIFrequenciesMedicationPlansHPC(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIDrugUnits(id, search?): Observable<any> {\n let path = `drug/${id}/units`\n let httpParams = new HttpParams();\n httpParams = search ? httpParams.append('search', search) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIDrugUnits(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIDiagnostic(params): Observable<any> {\n let path = 'user/diagnostics'//'v2/diagnostic/user';\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPICenterAllergies(search?): Observable<any> {\n let path = 'center/allergies';\n let httpParams = new HttpParams();\n httpParams = (search) ? httpParams.append('search', search) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIAllergies(): Observable<any> {\n let path = 'user/allergies';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIAllergies(params: Object): Observable<any> {\n let path = `user/allergy/create`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIAllergy(id: any, params: Object): Observable<any> {\n let path = `user/allergy/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIAllergy(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIAllergy(id: Object): Observable<any> {\n let path = `user/allergy/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIAllergy(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n getAPIgames(): Observable<any> {\n let path = 'user/games';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n /** get games with query by parameter date */\n getAPIgamesByDate(from_date: any, to_date: any): Observable<any> {\n let path = 'user/gamePlays/scheduled';\n let httpParams = new HttpParams();\n httpParams = (from_date) ? httpParams.append('from_date', from_date) : httpParams\n httpParams = (to_date) ? httpParams.append('to_date', to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPIgameId(id): Observable<any> {\n let path = `user/game/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgameId(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIagenda(): Observable<any> {\n let path = 'user/agenda';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIagenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n //reminders\n //user/reminder \n\n getAPIallAgenda(params?): Observable<any>{\n let path = 'user/agenda/v2';\n let httpParams = new HttpParams();\n httpParams = params?.from_date? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = params?.to_date? httpParams.append('to_date', params?.to_date) : httpParams\n httpParams = params?.filter_by_date? httpParams.append('filter_by_date', params?.filter_by_date) : httpParams\n httpParams = (params?.with_medical_procedures != undefined)? httpParams.append('with_medical_procedures', params?.with_medical_procedures) : httpParams\n httpParams = (params?.order != undefined)? httpParams.append('order', params?.order) : httpParams\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIappointmentAgendaV2(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIagendaID(id): Observable<any> {\n let path = `user/agenda/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIaddAgenda(params: Object): Observable<any> {\n let path = 'user/agenda/'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIaddAgenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n deleteAPIaddAgenda(id: Object): Observable<any> {\n let params = { agenda: id }\n let path = 'user/agenda/delete'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPIaddAgenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n putAPIagenda(id: any, params: Object): Observable<any> {\n let path = `user/agenda/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIagenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIallowedContacts(): Observable<any> {\n let path = `user/allowedContacts`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams();\n httpParams = httpParams.append('withDepartments', '1') \n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIallowedContacts(${path}) res: `, res);\n let allowed = res.allowed\n if(res.allowed === undefined)\n allowed = []\n return allowed;\n\n })\n );\n }\n\n getAPIstaffId(id): Observable<any> {\n let path = `staff/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIstaffId(${path}) res: `, res);\n return res;\n })\n );\n }\n\n /** get games with query by parameter date */\n getAPIUserMessages(): Observable<ShellChatModel[]> {\n\n let path = 'message/user';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n\n ////console.log(`[DooleService] getAPIUserMessages(${path}) res: `, res);\n if(res.length == 0)\n return res\n return res.messages as ShellChatModel[];\n })\n );\n }\n // get the company details, a subset of the user data\n getUserSubsetData(): Observable<ShellChatModel> {\n let path = 'message/user';\n const endpoint = this.api.getEndpoint(path);\n\n const dataObservable = this.http.get(endpoint);\n\n return dataObservable.pipe(\n map((jsonResponse) => {\n const filteredData: ShellChatModel = {\n ...jsonResponse.messages\n };\n return filteredData;\n })\n );\n }\n/** Reminders */\n getAPIreminders(): Observable<any> {\n let path = 'user/reminder';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIreminderID(id): Observable<any> {\n let path = `user/reminder/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminderID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIaddReminder(params: Object): Observable<any> {\n let path = 'user/reminder/'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIaddReminder(${path}) res: `, res);\n return res;\n })\n );\n }\n\n deleteAPIReminder(id): Observable<any> {\n let path = `user/reminder/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPIReminder(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n updateAPIReminder(id: any, params: Object): Observable<any> {\n let path = `user/reminder/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n updateAPIuser(params: Object): Observable<any> {\n let path = `user`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIContentStatus(params: Object): Observable<any> {\n let path = 'content/status'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIuserRegister(params: Object): Observable<any> {\n let path = 'hpc/user/store';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIsendRegister(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPITypeDocument(): Observable<any> {\n let path = 'center/documentTypes';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPITypeDocument(${path}) res: `, res);\n return res;\n })\n );\n }\n \n getAPImessage(id, params?): Observable<any> {\n let path = 'user/message/'+ id\n let httpParams = new HttpParams();\n httpParams = httpParams? httpParams.append('page', params) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIEvents(params): Observable<any> {\n let path = 'hpc/user/episodes';\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res; \n })\n );\n }\n\n postAPImedicalProcedures(params?: Object): Observable<any> {\n let path = `user/medicalProcedures`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPImedicalProcedures2(params?: any): Observable<any> {\n let path = `hpc/user/medicalProcedures`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams();\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.user) ? httpParams.append('user', params?.user) : httpParams\n return this.http.get(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPINextMedicalProcedure(params?: Object): Observable<any> {\n let path = `user/medicalProcedure/next`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPImedicalProcedures(params: any): Observable<any> {\n let path = `hpc/user/medicalProcedure`;\n let httpParams = new HttpParams();\n httpParams = (params?.byEpisode === 0 || params?.byEpisode === 1) ? httpParams.append('byEpisode', params?.byEpisode) : httpParams\n httpParams = (params?.medical_procedure_id && params?.byEpisode === 0) ? httpParams.append('medical_procedure_id', params?.medical_procedure_id) : httpParams\n httpParams = (params?.episode_id && params?.byEpisode === 1) ? httpParams.append('episode_id', params?.episode_id) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIpreexistingConditions(params?): Observable<any> {\n let path = 'user/preexistingConditions'\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n //httpParams = (params?.preexistingConditionTypes) ? httpParams.append('preexistingConditionTypes[]', params?.preexistingConditionTypes) : httpParams\n if (params?.preexistingConditionTypes && params?.preexistingConditionTypes?.length) {\n params.preexistingConditionTypes.forEach(element => {\n httpParams = httpParams.append('preexistingConditionTypes[]', element)\n });\n }\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIpreexistingConditionsType(): Observable<any> {\n let path = 'center/preexistingConditionTypes'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIpreexistingConditionsType(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPINotificationsCount(): Observable<any> {\n let path = 'user/notifications/count';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPINotifications(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPINotifications(params?): Observable<any> {\n let path = 'user/notifications';\n let httpParams = new HttpParams();\n httpParams = (params?.read) ? httpParams.append('read', params?.read) : httpParams\n httpParams = (params?.withPaginate == 1) ? httpParams.append('withPaginate', params?.withPaginate) : httpParams\n httpParams = (params?.page > 0) ? httpParams.append('page', params?.page) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPINotifications(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIUserImage(): Observable<any> {\n let path = 'user/image';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPINotificationRead(id): Observable<any> {\n let path = `user/notification/read`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, id).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n get(endpt): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n post(endpt, items): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.post(endpoint, items).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n put(endpt: string, items: any): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.put(endpoint, items).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n \n\n setPushNotification(pushNotification: any){\n this.pushNotification = pushNotification;\n }\n\n getPushNotification(){\n return this.pushNotification;\n }\n\n getAPIExerciseDetail(id, params?): Observable<any> {\n let path = `user/exercise/${id}`;\n let httpParams = new HttpParams();\n\n if (params?.programable_play) {\n httpParams = httpParams.append('programable_play', params.programable_play);\n }\n if (params?.challenge_id) {\n httpParams = httpParams.append('challenge_id', params.challenge_id);\n }\n if (params?.programable_id) {\n httpParams = httpParams.append('programable_id', params.programable_id);\n }\n\n // Agregar correctamente los parámetros\n httpParams = httpParams.set('interactions', '1');\n httpParams = httpParams.set('tags', '1');\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams ).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n getAPIExercisesByDate(from_date?,to_date?): Observable<any> {\n let path = 'user/exercises/scheduled';\n let httpParams = new HttpParams();\n httpParams = httpParams? httpParams.append('from_date', from_date) : httpParams\n httpParams = httpParams? httpParams.append('to_date', to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIExercises(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIExercises(): Observable<any> {\n let path = 'user/exercises';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIExercises(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIChallenge(challengeId, params?): Observable<any> {\n let path = 'user/challenge/'+challengeId\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIChallenge(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postCompletedExercice(params?: Object): Observable<any> {\n let path = `v1/patient/programable-plays/end`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIChallenges( params?): Observable<any> {\n let path = 'user/challenges'\n let httpParams = new HttpParams();\n\n if (params?.onlyAccepted) httpParams = httpParams.append('onlyAccepted', params.onlyAccepted);\n \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIChallenges(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPIChallenges2(): Observable<any> {\n let path = 'user/challenges/goals'\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, ).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIChallenges2(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIAppLatestVersion(version, platform): Observable<any> {\n let path = 'app/versions/must-update?version='+version+'&platform='+platform;\n ////console.log(path);\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n\n return res;\n })\n )\n }\n\n getAPIpatients(): Observable<any> {\n let path = 'user/patients';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_goals(): Observable<any> {\n let path = `sharecareplan/goals`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n \n getAPI_prescribedApps_ByDate(from_date?,to_date?): Observable<any> {\n let path = 'rehabilify/prescribed-apps/activities/pending';\n let httpParams = new HttpParams();\n httpParams = httpParams? httpParams.append('from', from_date) : httpParams\n httpParams = httpParams? httpParams.append('to', to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_prescribedApps_ByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIallowedDepartments(): Observable<any> {\n let path = `user/departments`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n \n return res;\n })\n );\n }\n getAPIdetailDepartments(id: any): Observable<any> {\n let path = `department/show/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n \n return res;\n })\n );\n }\n\n getAPIAnswers(id): Observable<any> {\n let path = `user/form/${id}/answers/detail?html=true`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIAnswers(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIAnsweredForm(): Observable<any> {\n let path = `user/forms/answered`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n\n\n getAPIDayPhrase(): Observable<any> {\n let path = `user/dayPhrase`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIDayPhrase(${path}) res: `, res);\n return res;\n })\n );\n }\n}\n","export interface notificationOpt {\n translate?: string;\n name?: string;\n type?: string;\n item_expanded?: boolean;\n mail?: any;\n app?: any;\n on_mail?:boolean;\n on_app?: boolean;\n}\n\nexport enum NotificationsType {\n ADVICES = 'advices',\n AGENDA = 'agenda',\n COMMUNICATIONS = 'communications',\n DIETS = 'diets',\n EXERCISES = 'exercises',\n FORMS = 'forms',\n GAMES = 'games',\n GOALS = 'goals',\n MEDICATIONS = 'medication_plans',\n MESSAGES = 'messages',\n NEWS = 'news',\n OFFERS = 'offers',\n PROMOTE_CONTENT = 'promote-content',\n PROCEDURES = 'medical_procedures',\n REMINDERS = 'reminder',\n //Shared care plan\n MONITORING = 'monitoring', \n INFORMED_CONSENT = 'informed_consent',\n LIFE_STILE_HABITS = 'life_style_habits',\n SHARED_CARE_PLAN = 'shared_care_plan',\n AddButtonMedicalTest= 'add_document',\n TESTIMONIALS= 'testimonials',\n AddButtonTodayDrug = 'drugs-detail',\n AddButtonHealthCharts = 'activity-goal'\n}\n\nexport enum NotificationsTypeBO {\n ADVICES = \"App\\\\Advice\",\n AGENDA = \"App\\\\Agenda\",\n CHALLENGE_LEVEL = \"App\\\\LevelAccomplishment\",\n DIAGNOSTIC_TEST = \"App\\\\DiagnosticTest\",\n DIETS = \"App\\\\Diet\",\n DRUG = \"App\\\\DrugIntake\",\n EXERCISES = \"App\\\\Exercise\",\n FORMS = \"App\\\\FormAnswer\",\n GAMES = \"App\\\\Game\",\n GAME_PLAY = \"App\\\\GamePlay\",\n //GOALS = \"App\\\\Goalable\",\n MEDICAL_PROCEDURE = \"App\\\\MedicalProcedure\",\n MEDICATIONS = \"App\\\\MedicationPlan\",\n MESSAGES = \"App\\\\Message\",\n NEWS = \"App\\\\News\",\n PROGRAMABLE_PLAY = \"App\\\\ProgramablePlay\",\n REMINDERS = \"App\\\\Reminder\", \n REMINDERS_EXECUTION =\"App\\\\ReminderExecution\",\n SHARED_CARE_PLAN = \"App\\\\ShareCarePlan\"\n}\n\nexport enum NOTIFICATIONS_TYPE_BO {\n AGENDA = \"App\\\\Notifications\\\\AgendaCreated\",\n APPOINTMENTS_VISIT = \"App\\\\Notifications\\\\VisitOnlineNotification\", \n ADVICES = \"App\\\\Notifications\\\\AdviceCreated\",\n CHALLENGE_LEVEL = \"App\\\\Notifications\\\\LevelAccomplishmentCompletedNotification\",\n DIETS = \"App\\\\Notifications\\\\DietCreated\",\n DRUG = \"App\\\\Notifications\\\\DrugIntakeTime\",\n EXERCISES = \"App\\\\Notifications\\\\ExerciseCreated\",\n EXERCISES_PLAY = \"App\\\\Notifications\\\\ExercisePlaySchedule\", \n FORMS = \"App\\\\Notifications\\\\FormAnswerSchedule\",\n GAMES = \"App\\\\Notifications\\\\GamePlaySchedule\",\n MESSAGES = \"App\\\\Notifications\\\\MessageNotification\",\n NEWS = \"App\\\\Notifications\\\\NewsNotification\",\n REMINDERS = \"App\\\\Notifications\\\\ReminderTime\", \n SHARED_CARE_PLAN = \"App\\\\Notifications\\\\SharedCarePlanAddContentNotification\"\n // MEDICATIONS = \"\",\n // GOALS = \"\",\n // MEDICAL_PROCEDURE = \"\",\n // DIAGNOSTIC_TEST = \"\",\n // PROGRAMABLE_PLAY = \"\",\n}\n\nexport enum NotificationsTypeColor {\n ADVICES = '#2356f9',\n AGENDA = '#6950ce',\n CHALLENGE_LEVEL = '#BDC3C7',\n DIAGNOSTIC_TEST = '#1A8E92',\n DIETS = '#E67E22',\n DRUG = '#5AC445',\n EXERCISES = '#f53d3d',\n FORMS = '#2356f9',\n GAMES = '#9B59B6',\n GAME_PLAY = '#9B59B6',\n //GOALS = '#1A8E92',\n MEDICAL_PROCEDURE = '#EC7579',\n MEDICATIONS = '#25CAD0',\n MESSAGES = '#25CAD0',\n NEWS = '#2356f9',\n PROGRAMABLE_PLAY = '#7F8C8D',\n REMINDERS = '#6950ce', \n REMINDERS_EXECUTION = '#6950ce',\n SHARED_CARE_PLAN = '#BA0186'\n}\n\n\nexport class NotificationOptions {\n\n public readonly agenda: any = {type: NotificationsType.AGENDA, mail: 'agendaNotificationMail', app: 'agendaNotificationApp', old: null};\n public readonly reminder: any = {type: NotificationsType.REMINDERS, mail: 'reminderNotificationMail', app: 'reminderNotificationApp', old: null};\n public readonly diets: any = {type: NotificationsType.DIETS, mail: 'dietsNotificationMail', app: 'dietsNotificationApp', old: 'dietsNotificaton'};\n public readonly medication: any = {type: NotificationsType.MEDICATIONS, mail: ['drugIntakeNotificationMail', 'medicationPlanExpiredNotificationEmail'], app: ['drugIntakeNotificationApp', 'medicationPlanExpiredNotificationApp'], old: null};\n public readonly goals: any = {type: NotificationsType.GOALS, mail: 'goalsNotificationMail', app: 'goalsNotificationApp', old: 'goalsNotificaton'};\n public readonly advices: any = {type: NotificationsType.ADVICES, mail: 'advicesNotificationMail', app: 'advicesNotificationApp', old: 'advicesNotificaton'};\n public readonly forms: any = {type: NotificationsType.FORMS, mail: 'formNotificationMail', app: 'formNotificationApp', old: 'formNotificaton'};\n public readonly messages: any = {type: NotificationsType.MESSAGES, mail: 'messagesNotificationMail', app: 'messagesNotificationApp', old: 'messagesNotificaton'};\n public readonly news: any = {type: NotificationsType.NEWS, mail: 'newsNotificationMail', app: 'newsNotificationApp', old: null};\n public readonly games: any = {type: NotificationsType.GAMES, mail: 'gamePlayNotificationMail', app: 'gamePlayNotificationApp', old: null};\n public readonly exercises: any = {type: NotificationsType.EXERCISES, mail: 'exercisePlayNotificationMail', app: 'exercisePlayNotificationApp', old: null};\n\n \n private list_options: notificationOpt[] = [];\n //Aqui se añaden todas las notificaciones que queremos que aparezca en setting.page\n private options = [ this.agenda, this.reminder, this.diets, this.medication, this.goals, this.advices, this.forms, this.messages, this.news, this.games, this.exercises];\n constructor() {\n this.setAllNotifications()\n }\n\n setAllNotifications(){\n \n const ItembyRole = JSON.parse(localStorage.getItem('showItembyRole'));\n const showItembyRole = Object.keys(ItembyRole); \n showItembyRole.forEach(element => {\n // resultado = this.options.filter(animal => animal != element);\n for (let index = 0; index < this.options.length; index++){\n if(element === this.options[index].type){\n // delete(this.options[index])\n this.options.splice(index, 1);\n index--;\n } \n } \n });\n\n \n \n this.options.forEach(opt => {\n opt['translate'] = this.setTranslate(opt);\n opt['on_mail'] = false;\n opt['on_app'] = false;\n const notification: notificationOpt = opt\n this.list_options.push(notification)\n })\n }\n\n getListOptions(){\n return this.list_options\n }\n\n setTranslate(opt){\n switch (opt?.type) {\n case NotificationsType.COMMUNICATIONS:\n return 'setting.subtitle_communications';\n case NotificationsType.AGENDA:\n return 'setting.subtitle_appointment';\n case NotificationsType.REMINDERS:\n return 'setting.subtitle_reminders';\n case NotificationsType.DIETS:\n return 'setting.subtitle_diets';\n case NotificationsType.MEDICATIONS:\n return 'setting.subtitle_medication';\n case NotificationsType.GOALS:\n return 'setting.subtitle_goals';\n case NotificationsType.ADVICES:\n return 'setting.subtitle_advices'; \n case NotificationsType.NEWS:\n return 'setting.subtitle_release';\n case NotificationsType.PROCEDURES:\n return 'setting.subtitle_procedure';\n case NotificationsType.OFFERS:\n return 'setting.subtitle_offers';\n case NotificationsType.FORMS:\n return 'setting.subtitle_form'; \n case NotificationsType.MESSAGES:\n return 'setting.subtitle_messages';\n case NotificationsType.GAMES:\n return 'setting.subtitle_games';\n case NotificationsType.PROMOTE_CONTENT: \n return 'setting.subtitle_release'; // return 'setting.subtitle_promoteContent';\n case NotificationsType.EXERCISES:\n return 'setting.subtitle_exercises';\n default:\n return '';\n }\n }\n\n setAppMailField(list, json){\n list.forEach(opt => {\n opt.on_app = this.isOnApp(opt, json)\n opt.on_mail = this.isOnMail(opt, json)\n })\n return list\n }\n\n\n isOnApp(opt, json): boolean{\n if(typeof opt.app === 'string') \n return json[opt.app] == '1'? true:false\n else\n return json[opt.app[0]] == '1'? true:false\n }\n\n isOnMail(opt, json): boolean{\n if(typeof opt.mail === 'string') \n return json[opt.mail] == '1'? true:false\n else\n return json[opt.mail[0]] == '1'? true:false\n }\n}","import { Type } from \"@angular/core\";\nimport { NotificationsType } from \"./notifications/notification-options\";\n\nexport enum ContentType {\n ADVICE = \"App\\\\Advice\",\n AGENDA = \"App\\\\Agenda\",\n DIET = \"App\\\\Diet\",\n GAMES = \"App\\\\Game\",\n MEDICATIONS_PLAN = \"App\\\\MedicationPlan\",\n MESSAGE = \"App\\\\Message\",\n NEW = \"App\\\\News\",\n REMINDER = \"App\\\\Reminder\",\n EXERCISE = \"App\\\\Exercise\",\n PROCEDURE = \"App\\\\MedicalProcedure\",\n DIAGNOSTIC_TEST = \"App\\\\DiagnosticTest\",\n LEVEL_ACCOMPLISHMENT = \"App\\\\LevelAccomplishment\"\n}\n\nexport enum ContentTypePath {\n //ADVICES\n Advices = '/tracking/advices',\n AdvicesDetail= Advices + '/advices-detail',\n //AGENDA\n Agenda = '/agenda',\n AgendaDetail = '/agenda/detail',\n //CHALLENGES\n Challenges = '/tracking/profile/goals',\n ChallengesDetail = '/home/health-path/detail',\n //DIETS \n Diets= '/tracking/journal', \n DietsDetail= Diets + '/diets-detail',\n //EXERCISE\n Exercises= '/tracking/exercices', \n ExercisesDetail = Exercises + '/exercices-detail',\n //FORM\n Forms= '/tracking/form-list', \n FormDetail = '/tracking/form',\n //GAME \n Games= '/tracking/games', \n GamesDetail = Games + '/games-detail',\n //GOALS \n Goals = '/tracking/profile/goals',\n //HOME\n Home = '/home',\n //LIFESTYLEHABITS\n LifestyleHabits = '/tracking/lifestyle-habits',\n //MEDICAL PROCEDURES\n MedicalProcedure= '/tracking/procedures', \n //MEDICAL TEST\n MedicalTest= '/document-detail', \n //MEDICATION\n Medication= '/tracking/medication/', \n MedicationDetail = '/drugs-detail', // Medication Plan\n //MESSAGE\n Message = '/contact/chat/conversation',\n //MONITORING\n Monitoring= '/tracking/monitoring', \n //NEWS\n News = '/tracking/news',\n NewsDetail = News + '/new-detail',\n //REMINDERS\n ReminderDetail = '/agenda/reminder',\n //TESTIMONIALS\n Testimonials= '/tracking/testimonials',\n //TRACKING OR FOLLOW UP\n Tracking= '/tracking',\n //INFORMED COSENT\n InformedConsent = '/tracking/informed-consent', \n\n}\n\nexport enum ContentTypeIcons {\n Goals = 'assets/images/shared-care-plan/goals.png',\n LifestyleHabits = 'assets/images/shared-care-plan/lifestyle.png',\n Forms = 'assets/images/shared-care-plan/forms.png',\n Medication = 'assets/images/shared-care-plan/medication.png',\n MedicalProcedure = 'assets/images/shared-care-plan/medicalProcedure.png',\n Monitoring = 'assets/images/shared-care-plan/healthcharts.png',\n \n InformedConsent = 'assets/images/shared-care-plan/news.png',\n // LifeStyle\n News = 'assets/images/shared-care-plan/news.png',\n Advices = 'assets/images/shared-care-plan/advices.png',\n Exercises= 'assets/images/shared-care-plan/exercises.png',\n Diets= 'assets/images/shared-care-plan/diets.png', \n Testimonials= 'assets/images/shared-care-plan/testimonials.png', \n Games= 'assets/images/shared-care-plan/games.png', \n\n //AddBUtton\n buttonMeditalTest= 'assets/images/shared-care-plan/flask.svg',\n buttomTodayDrug = 'assets/images/shared-care-plan/drug.svg',\n buttomHealthCharts = 'assets/images/shared-care-plan/medical.svg'\n}\n\nexport enum ContentTypeTranslatedName {\n Goals = 'goals.goals',\n LifestyleHabits = 'lifestyle.header',\n Medication = 'setting.subtitle_medication',\n Forms = 'setting.subtitle_form',\n Monitoring = 'shared_care_plan.monitoring',\n MedicalProcedure = 'shared_care_plan.medical_procedure',\n InformedConsent = 'shared_care_plan.informed_consent',\n // LifeStyle\n News = 'setting.subtitle_news',\n Advices = 'setting.subtitle_advices',\n Exercises= 'exercices.header', \n Diets= 'setting.subtitle_diets', \n Testimonials= 'setting.testimonials',\n Games= 'setting.subtitle_games', \n \n\n //AddButtons\n addButtonMeditaltest = 'shared_care_plan.addButton.MedicalTest',\n addButtonTodayDrug= 'shared_care_plan.addButton.Medication',\n addButtonHealthCharts= 'shared_care_plan.addButton.HealthCharts',\n \n\n}\n\ndeclare const enum ContentTypeDescription {\n descriptionGL = 'shared_care_plan.descriptionGL',\n descriptionForms= 'shared_care_plan.descriptionForms',\n descriptionMMpHc= 'shared_care_plan.descriptionMMpHc',\n}\n\ndeclare const enum LifestyleHabitsTypeDescription {\n descriptionNews = 'shared_care_plan.descriptionNews',\n descriptionAdvices= 'shared_care_plan.descriptionAdvices',\n descriptionExercises= 'shared_care_plan.descriptionExercises',\n descriptionDiets= 'shared_care_plan.descriptionDiets',\n descriptionTestimonials= 'shared_care_plan.descriptionTestimonials',\n descriptionGames= 'shared_care_plan.descriptionGames',\n\n}\n\nexport interface ContentComponent {\n img?: string;\n icon?: string;\n title: string;\n description?: string;\n type: string;\n state?: string | boolean;\n routerlink?: string | any\n}\nexport interface SharedCarePlan extends ContentComponent {\n boolean_state?: boolean;\n}\n\nexport interface SCPContentType {\n [x: string]: any;\n [id: number]: SharedCarePlan\n}\n\nexport const ListContentType: SCPContentType = [\n {img: ContentTypeIcons.Goals, icon: ContentTypeIcons.Goals, title: ContentTypeTranslatedName.Goals, description: ContentTypeDescription.descriptionGL, type: NotificationsType.GOALS, state: '', boolean_state: false, routerlink: ContentTypePath.Goals},\n {img: ContentTypeIcons.LifestyleHabits, icon: ContentTypeIcons.LifestyleHabits, title: ContentTypeTranslatedName.LifestyleHabits, description: ContentTypeDescription.descriptionGL, type: NotificationsType.LIFE_STILE_HABITS, state: '', boolean_state: false, routerlink: ContentTypePath.LifestyleHabits},\n {img: ContentTypeIcons.Forms, icon: ContentTypeIcons.Forms, title: ContentTypeTranslatedName.Forms, description: ContentTypeDescription.descriptionForms, type: NotificationsType.FORMS, state: '', boolean_state: false, routerlink: ContentTypePath.Forms},\n {img: ContentTypeIcons.Medication, icon: ContentTypeIcons.Medication, title:ContentTypeTranslatedName.Medication, description: ContentTypeDescription.descriptionMMpHc, type: NotificationsType.MEDICATIONS, state: '', boolean_state: false, routerlink: ContentTypePath.Medication},\n {img: ContentTypeIcons.MedicalProcedure, icon: ContentTypeIcons.MedicalProcedure, title: ContentTypeTranslatedName.MedicalProcedure, description: ContentTypeDescription.descriptionMMpHc, type: NotificationsType.PROCEDURES, state: '', boolean_state: false, routerlink: ContentTypePath.MedicalProcedure},\n {img: ContentTypeIcons.Monitoring, icon: ContentTypeIcons.Monitoring, title: ContentTypeTranslatedName.Monitoring, description: ContentTypeDescription.descriptionMMpHc, type: NotificationsType.MONITORING, state: '', boolean_state: false, routerlink: ContentTypePath.Monitoring},\n //{icon: ContentTypeIcons.InformedConsent, title: ContentTypeTranslatedName.InformedConsent, description: ContentTypeDescription.Description, type: NotificationsType.INFORMED_CONSENT, state: '', boolean_state: false, routerlink: ContentTypePath.InformedConsent}\n]\n\nexport function setStatusContentType(status, content:SharedCarePlan){\n \n let option = content.type\n switch (option) {\n case NotificationsType.GOALS:\n content.boolean_state = status[NotificationsType.GOALS]\n break;\n case NotificationsType.LIFE_STILE_HABITS:\n content.boolean_state = status[NotificationsType.LIFE_STILE_HABITS]\n break;\n case NotificationsType.MEDICATIONS:\n content.boolean_state = status[NotificationsType.MEDICATIONS]\n break;\n case NotificationsType.FORMS:\n content.boolean_state = status[NotificationsType.FORMS]\n break;\n case NotificationsType.MONITORING:\n content.boolean_state = status[NotificationsType.MONITORING]\n break;\n case NotificationsType.PROCEDURES:\n content.boolean_state = status[NotificationsType.PROCEDURES]\n break;\n default:\n break;\n }\n}\n\n/**\n * Goals of Shared care Plan\n */\n\nexport enum GoalStateName {\n APPROVED = 'shared_care_plan.goal_state.approved',\n REJECTED = 'shared_care_plan.goal_state.rejected',\n PENDING = 'shared_care_plan.goal_state.pending'\n}\n\nexport enum GoalStateColor {\n APPROVED = '#2ECC71',\n REJECTED = '#E81111',\n PENDING = '#FF8412'\n}\n\nexport enum GoalStateIcons {\n APPROVED = 'assets/icons/shared-care-plan/approved-icon.svg',\n REJECTED = 'assets/icons/shared-care-plan/rejected-icon.svg',\n PENDING = 'assets/icons/shared-care-plan/pending-icon.svg',\n}\n\nexport enum GoalStateType {\n APPROVED = 'approved',\n REJECTED = 'rejected',\n PENDING = 'pending',\n DECLINED = 'declined',\n ACCEPTED = 'accepted'\n}\n\nexport class GoalState {\n icon: string;\n color: string;\n name: string; \n state?: string;\n\n constructor(state){\n this.state = state;\n this.setGoalState(state)\n \n }\n\n setGoalState(state){\n switch (state) {\n case GoalStateType.ACCEPTED || GoalStateType.APPROVED:\n this.name = GoalStateName.APPROVED\n this.color = GoalStateColor.APPROVED\n this.icon = GoalStateIcons.APPROVED\n break;\n case GoalStateType.DECLINED || GoalStateType.REJECTED:\n this.name = GoalStateName.REJECTED\n this.color = GoalStateColor.REJECTED\n this.icon = GoalStateIcons.REJECTED\n break;\n default:\n this.name = GoalStateName.PENDING\n this.color = GoalStateColor.PENDING\n this.icon = GoalStateIcons.PENDING\n this.state = GoalStateType.PENDING\n break;\n }\n }\n}\n\nexport interface SharedCarePlanGoal extends SharedCarePlan {\n id?: string | number;\n date: string;\n percentage: string | number;\n is_new_content: boolean;\n}\n\n/**\n * LifeStyle of Shared care Plan\n */\n\nexport const ListSCPLifeStyle: SharedCarePlanLifeStyle [] = [\n {img: ContentTypeIcons.News, title: ContentTypeTranslatedName.News, type: NotificationsType.NEWS, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionNews },\n {img: ContentTypeIcons.Advices, title: ContentTypeTranslatedName.Advices, type: NotificationsType.ADVICES, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionAdvices},\n {img: ContentTypeIcons.Exercises, title: ContentTypeTranslatedName.Exercises, type:NotificationsType.EXERCISES, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionExercises},\n {img: ContentTypeIcons.Diets, title: ContentTypeTranslatedName.Diets, type:NotificationsType.DIETS, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionDiets},\n {img: ContentTypeIcons.Testimonials, title: ContentTypeTranslatedName.Testimonials, type:NotificationsType.TESTIMONIALS, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionTestimonials},\n {img: ContentTypeIcons.Games, title: ContentTypeTranslatedName.Games, type:NotificationsType.GAMES, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionGames},\n \n]\n\nexport interface SharedCarePlanLifeStyle {\n img?: string,\n textHeader?: string,\n title: string,\n description?: string;\n type: string,\n id?: string | number;\n routerlink?: string | any;\n state?: string;\n accepted?: boolean;\n traduction?:string;\n frequency?: string;\n isAnswers?: string;\n hasFormAnswered?: string;\n score?: string;\n subtitle?:string;\n\n}\n\nexport interface medication extends SharedCarePlanLifeStyle{\n from? : string,\n to?: string\n accepted?: boolean\n model_id?: string,\n model?: string,\n form_id?: string,\n showAlert?: boolean,\n lastdata?: string,\n date?: string,\n canViewFormAnswered?: string,\n}\n\nexport enum ACCESS_TYPE {\n IFRAME = 'iframe',\n APP = 'app',\n WINDOW = 'windows-app'\n}\n\nexport interface SharedCarePlanPrescribedApps {\n id?: number,\n icon:string,\n title: string,\n description: string,\n instructions?:string\n iframe_url:string;\n id_pkg?: string;\n access_type?: string;\n configurations?: any;\n}\n\n/**\n * Medical Procedure of Shared care Plan\n */\nexport interface SharedCarePlanProcedure extends SharedCarePlan {\n id?: string | number;\n date: string;\n staff?: string | any;\n department?: string\n img?: string;\n description?: string;\n}\n\n/**Medical test of Shared care Plan */\nexport interface AddButtonComponent {\n id?: string | number;\n title: string;\n icon?: string;\n type?: string;\n}\n\nexport const AddButtonList: AddButtonComponent [] = [\n {icon: ContentTypeIcons.buttonMeditalTest, title: ContentTypeTranslatedName.addButtonMeditaltest, type: NotificationsType.AddButtonMedicalTest, id:\"\"},\n {icon: ContentTypeIcons.buttomTodayDrug, title: ContentTypeTranslatedName.addButtonTodayDrug, type: NotificationsType.AddButtonTodayDrug, id:\"\"},\n {icon: ContentTypeIcons.buttomHealthCharts, title: ContentTypeTranslatedName.addButtonHealthCharts, type: NotificationsType.AddButtonHealthCharts, id:\"\"},\n \n // {icon: ContentTypeIcons.Exercises, title: ContentTypeTranslatedName.Exercises, type:NotificationsType.EXERCISES, id:\"\"},\n \n]","import { Injectable, NgZone } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Location } from \"@angular/common\";\nimport { ContentTypePath } from '../models/shared-care-plan';\nimport { Platform } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n\n private history: string[] = [];\n \n constructor(\n private router: Router, \n private location: Location,\n private _zone: NgZone, \n private platform: Platform,) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n //console.log(\"NavigationEnd\", event.urlAfterRedirects);\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n \n back(): void {\n this.history.forEach( (event, index) => {\n //console.log(\"NavigationEnd\", index, event);\n })\n\n let lastUrl = this.history.pop();\n\n this.history.forEach((event, index) => {\n //console.log(\"NavigationEnd pop\", index, event);\n })\n\n if (this.history?.length > 0) {\n this.location.back()\n //this.router.navigate([`${lastUrl}`]);\n } else {\n this.router.navigateByUrl(\"/home\");\n }\n }\n\n async close(modalCtrl?): Promise<void> {\n const modal = await modalCtrl?.getTop();\n if (modal)\n await modal.dismiss({error:null});\n else this.back()\n }\n\n\n\n redirecPushNotification(data, notification?) {\n //console.log(\"ADVICES LOG: \" + JSON.stringify(data))\n // //console.log(\"DATA \" + data)\n // //console.log(\"Notification \" + notification)\n\n switch (data.action) {\n case \"ADVICE\":\n this._zone.run(() => { \n this.router.navigate([ContentTypePath.AdvicesDetail], { state: { data: data, id: data.id } }); \n });\n break;\n case \"AGENDA\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.AgendaDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"DIET\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.DietsDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"DRUGINTAKE\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Medication], { state: { data: data, segment: 'medication' } });\n });\n break;\n case \"EXERCISE\":\n let programablePlayId = data?.programable_play_id\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.ExercisesDetail], { state: { data: data, id: data.id, programable_id: data?.id, programable_play: programablePlayId} });\n });\n break;\n case \"FORM\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.FormDetail, { id: data.id }], { state: { data: data } });\n });\n break;\n case \"GAME\":\n this._zone.run(() => {\n if (data.type == 'form') {\n this.router.navigate([ContentTypePath.FormDetail, { id: data.form_id }], { state: { data: data, game_play_id: data?.game_play_id } });\n } else\n this.router.navigate([ContentTypePath.GamesDetail], { state: { data: data, id: data.id, server_url: data?.server_url } });\n });\n break;\n case \"LEVELASSIGNED\": //GOALS\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Goals], { state: { data: data } });\n });\n break;\n case \"MESSAGE\":\n let staff;\n // Different payloads for ios and android\n if (this.platform.is('ios'))\n staff = data?.origin;\n else\n staff = data?.origin ? JSON.parse(data?.origin) : null;\n //console.log('staff: ', staff);\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Message], { state: { data: data, chat: data.id, staff: staff, customData: data?.user_id } });\n });\n break;\n case \"NEWS\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.NewsDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"REMINDER\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.ReminderDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"SHARECAREPLAN\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Home], { state: { data: data, openNotificationAlertDialog: true } });\n });\n break;\n case \"VIDEOCALL\":\n this._zone.run(() => {\n // this.redirecToVideocall(notification)\n });\n break;\n default:\n console.error('Action on localNotificationActionPerformed not found, redirecting to videocall: ')\n // this.redirecToVideocall(notification)\n break;\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LanguageModel } from './language.model';\nimport { LANGUAGES_CONFIG_TOKEN } from '../configuration';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n languages: Array<LanguageModel> = new Array<LanguageModel>();\n constructor(\n public translate: TranslateService, \n @Inject(LANGUAGES_CONFIG_TOKEN) private languagesApp: LanguageModel[] ) {\n this.languages = this.languagesApp\n if(this.languages?.length == 0)\n this.getDefaultLanguages();\n //console.log(\"[LanguageService] languages: \", this.languages)\n }\n\n getDefaultLanguages(){\n this.languages.push(\n { name: 'Català', code: 'ca' },\n { name: 'Español', code: 'es' },\n { name: 'English', code: 'en' },\n { name: 'Euskera', code: 'es-eu' },\n { name: 'Português', code: 'pt' },\n { name: 'Noruec', code: 'no' },\n { name: 'Suec', code: 'sv' },\n );\n }\n\n getLanguages() {\n return this.languages;\n }\n\n public changeLanguage(langCode: string) {\n //console.log(\"langCode\", langCode)\n this.translate.use(langCode);\n }\n\n public getCurrent() : string {\n let lang = this.translate.currentLang ? this.translate.currentLang : this.translate.getDefaultLang();\n return lang;\n }\n\n public setLenguageLocalstorage(language){\n this.changeLanguage(language);\n localStorage.setItem('language', language);\n }\n\n public removeLenguageLocalstorage(){\n localStorage.removeItem('language')\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport moment from 'moment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DateService {\n locale:string;\n language:string;\n\n constructor(private datePipe: DatePipe, public translate: TranslateService) {\n this.locale = this.getLocale();\n }\n\n\n public getDateFormat(){\n let lang = this.translate.currentLang;\n let format = 'DD/MM/YY ';\n if(lang === 'en' )\n format = 'MM/DD/YY '\n return format\n }\n\n public getDateFormat2(){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/YY';\n if(lang === 'en' )\n format = 'MM/dd/YY'\n return format\n }\n\n public getDateFormat3(){\n let lang = this.translate.currentLang;\n let format = 'DD/MM/YYYY';\n if(lang === 'en' )\n format = 'MM/DD/YYYY'\n return format\n }\n\n public getLongFormat(){\n let lang = this.translate.currentLang;\n let format = 'dddd, MMM yyyy';\n\n if(lang === 'en' )\n format = 'MMM, ddd yyyy';\n\n return format\n }\n\n\n public getMonthViewDayHeader(date:Date){\n let lang = this.translate.currentLang;\n let days = [\"D\",\"L\", \"M\", \"X\", \"J\", \"V\", \"S\"]\n if(lang === 'ca'){\n days = [\"DG\",\"DL\", \"DT\", \"DC\", \"DJ\", \"DV\", \"DS\"]\n }else if(lang === 'en')\n days = [\"Sun\",\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n\n let num = date.getDay()\n return days[num]\n }\n\n public formatSelectedDate(date){\n if(date){\n let day = this.transformDate(date, this.getformatSelectedDate());\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null\n }\n public getformatSelectedDate(){\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM'\n /* if(lang === 'en' )\n format = 'MMMM d, EEEE'; */\n return format;\n }\n\n public getFormatSelectedDate2() {\n let lang = this.translate.currentLang;\n let format = 'd, MMM YYYY'\n /* if(lang === 'en' )\n format = 'MMMM d, EEEE'; */\n return format;\n }\n\n public getLocale() {\n let lang = this.translate.currentLang;\n\n if (lang === 'ca') {\n return 'ca-ES';\n } else if (lang === 'en') {\n return 'en-US';\n } else if (lang === 'es') {\n return 'es-ES';\n } else if (lang === 'pt') {\n return 'pt';\n } else if (lang === 'sv') {\n return 'sv-SE';\n } else if (lang === 'no') {\n return 'no-NO';\n } else if (lang === 'ka') {\n return 'ka-GE';\n } else {\n return 'es-ES';\n }\n}\n\n public getStartingDayWeek(){\n let lang = this.translate.currentLang;\n let day = '1'\n if(lang == 'en')\n day = '0'\n\n return day;\n }\n\n\n public getStartingDayMonth(){\n let lang = this.translate.currentLang;\n let day = '1'\n if(lang == 'en')\n day = '0'\n\n return day;\n }\n\n 'dd/MM/y'\n\n public ddMMy(){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/y'\n\n if(lang === 'en' )\n format = 'MM/dd/y';\n\n return format;\n }\n\n public getShortDateFormat(){\n let lang = this.translate.currentLang;\n let format = 'DD/MM/YY'\n\n if(lang === 'en' )\n format = 'MM/DD/YY';\n\n return format;\n }\n\n public ddMMyyyyFormat(date){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/yyyy';\n\n if(lang === 'en' )\n format = 'MM/dd/yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMyyyyFormatES(date){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/yyyy'; \n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMyFormat(date){\n let lang = this.translate.currentLang;\n let format = 'dd MMM, y';\n\n if(lang === 'en' )\n format = 'MMM dd, y';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMyEuroFormat(date){\n let format = 'dd MMM y';\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMMyyyformat(date){\n\n if (date) {\n let lang = this.translate.currentLang;\n let format = 'dd MMM yyy';\n \n if(lang === 'en')\n format = 'MMM dd yyy';\n \n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1)\n }\n else {\n return '-'\n }\n \n\n }\n\n public MMMMyyyyFormat(date){\n\n let format ='MMMM yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public getDayMonthYearFormat(date){\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM YYYY';\n\n if(lang === 'en' )\n format = 'MMMM, d EEEE YYYY';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public selectedDateFormat(date:string){\n\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM'\n\n /* if(lang === 'en' )\n format = 'MMMM d, YYYY'; */\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public selectedDateFormat2(date:string){\n\n let lang = this.translate.currentLang;\n //let format = 'EEEE, d MMM yyyy';\n\n // if(lang === 'en' )\n let format = 'MMM, dd yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n\n\n\n ddMMyyyyHHmm(date){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/yyyy HH:mm'\n if(lang === 'en')\n format = 'MM/dd/yyyy hh:mm a';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1)\n }\n\n\n public formatDateLongFormat(date?){\n\n if(date){\n let day = this.transformDate(date, this.getLongDateFormat());\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n public yyyyMMddHHmm(date?){\n\n if(date){\n let day = this.transformDate(date, this.yyyyMMddHHmmFormat());\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n yyyyMMddHHmmFormat(){\n let lang = this.translate.currentLang;\n let format = 'yyyy-dd-MM HH:mm';\n\n if(lang === 'en' )\n format = 'yyyy-MM-dd HH:mm a';\n\n return format;\n\n }\n public yyyyMMddTHHmmssSSSZFormat(date?){\n const fechaFormateada =this.datePipe.transform(date, 'yyyy-MM-ddTHH:mm:ss.SSS\\'Z\\'');\n return fechaFormateada;\n }\n\n public getLongDateFormat(){\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM yyyy, HH:mm';\n\n if(lang === 'en' )\n format = 'MMMM, d yyyy, hh:mm a';\n\n return format;\n\n }\n public getDatetimeControlFormat(){\n let lang = this.translate.currentLang;\n let format = 'D MMM YYYY HH:mm'\n\n if(lang === 'en' )\n format = 'MMM D YY hh:mm a';\n\n return format;\n\n }\n\n public getDayMonthFormat(){\n let lang = this.translate.currentLang;\n let format = 'd MMM';\n\n if(lang === 'en' )\n format = 'MMM d';\n\n return format;\n\n }\n\n public getDayDotMonthFormat(){\n let lang = this.translate.currentLang;\n let format = 'd. MMM';\n\n if(lang === 'en' )\n format = 'MMM. d';\n\n return format;\n\n }\n\n public getSelectedWeek(date:string){\n\n let lang = this.translate.currentLang;\n let format = 'E d MMM'\n\n if(lang === 'en' )\n format = 'MMM d, E';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public getSelectedWeekFullDay(date:string){\n\n let lang = this.translate.currentLang;\n let format = 'EEE d MMM'\n\n if(lang === 'en' )\n format = 'MMM d, EEE';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public formatDate(date?){\n if(date){\n date = new Date(date)\n\n if(this.isToday(date))\n return this.datePipe.transform(date, this.getTimeFormat())\n else{\n let format = this.getDateFormat2()\n return this.transformDate(date, format)\n }\n }\n return null;\n }\n\n public getFormatTime(date){\n if(date){\n date = new Date(date)\n return this.datePipe.transform(date, this.getTimeFormat2())\n }\n return null;\n }\n\n public getDateMonDay(date){\n let lang = this.translate.currentLang;\n let format = 'MMM d';\n if(date){\n date = new Date(date)\n return this.transformDate(date, format, lang)\n } \n return null;\n }\n\n convertLocalizedDateToEnglish(dateString: string) {\n // Mapea los meses abreviados en portugués a sus equivalentes en inglés\n const monthsMap = {\n // Meses en español\n 'ene': 'Jan', 'feb': 'Feb', 'mar': 'Mar', 'abr': 'Apr',\n 'may': 'May', 'jun': 'Jun', 'jul': 'Jul', 'ago': 'Aug',\n 'sep': 'Sep', 'oct': 'Oct', 'nov': 'Nov', 'dic': 'Dec',\n // Meses en portugués\n 'jan.': 'Jan', 'fev.': 'Feb', 'mar.': 'Mar', 'abr.': 'Apr',\n 'mai.': 'May', 'jun.': 'Jun', 'jul.': 'Jul', 'ago.': 'Aug',\n 'set.': 'Sep', 'out.': 'Oct', 'nov.': 'Nov', 'dez.': 'Dec'\n };\n\n // Busca y reemplaza el mes en portugués o español por el equivalente en inglés\n for (const [localizedMonth, enMonth] of Object.entries(monthsMap)) {\n if (dateString.includes(localizedMonth)) {\n dateString = dateString.replace(localizedMonth, enMonth);\n break;\n }\n }\n\n // Devuelve el string en un formato válido para el constructor de Date\n return dateString;\n}\n\n transformDateyyyyMMdd(date) {\n return this.datePipe.transform(date, 'yyyy-MM-dd');\n }\n \n\n\n ddMMyyyy(date){\n let lang = this.translate.currentLang;\n let format = 'dd-MM-yyyy'\n if(lang === 'en')\n format = 'MM-dd-yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1)\n }\n\n highchartsDatesFornmat(){\n\n let lang = this.translate.currentLang;\n let format = {};\n if(lang == 'en'){\n // %b: Short month, like 'Jan',%e Day of the month, 1 through 31\n format = {\n millisecond: '%H:%M:%S.%L',\n second: '%l:%M:%S %P',\n minute: '%l:%M %p',\n hour: '%l:%M %p',\n day: '%b. %e',\n week: '%b. %e',\n month: '%b \\'%y',\n year: '%Y'\n }\n }else{\n format = {\n millisecond: '%H:%M:%S.%L',\n second: '%H:%M:%S',\n minute: '%H:%M',\n hour: '%H:%M',\n day: '%e. %b',\n week: '%e. %b',\n month: '%b \\'%y',\n year: '%Y'\n }\n }\n return format;\n }\n\n yyyyMMddFormat(date){\n //console.log(\"DATE date: \", date);\n let lang = this.translate.currentLang;\n //console.log(\"DATE lang: \", lang);\n let format = 'yyyy-MM-dd';\n\n if(lang == 'en')\n format = 'yyyy-dd-MM';\n\n //console.log(\"DATE format: \", format);\n\n let day = this.transformDate(date, format);\n\n //console.log(\"DATE day: \", day);\n\n return day[0].toUpperCase() + day.slice(1)\n }\n\n convert12to24format(time){\n\n //console.log(\"TIME 12to24: \",time);\n var hours = Number(time.match(/^(\\d+)/)[1]);\n var minutes = Number(time.match(/:(\\d+)/)[1]);\n var AMPM = time.match(/\\s(.*)$/)[1];\n if(AMPM == \"PM\" && hours<12) hours = hours+12;\n if(AMPM == \"AM\" && hours==12) hours = hours-12;\n var sHours = hours.toString();\n var sMinutes = minutes.toString();\n if(hours<10) sHours = \"0\" + sHours;\n if(minutes<10) sMinutes = \"0\" + sMinutes;\n\n let h = sHours + \":\" + sMinutes;\n\n //console.log(\"HOURS: \",h);\n return h;\n }\n\n format24h(time) {\n let lang = this.translate.currentLang;\n if(lang === 'en'){\n // Check correct time format and split into components\n time = time.toString ().match (/^([01]\\d|2[0-3])(:)([0-5]\\d)(:[0-5]\\d)?$/) || [time];\n\n if (time.length > 1) { // If time format correct\n time = time.slice (1); // Remove full string match value\n time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM\n time[0] = +time[0] % 12 || 12; // Adjust hours\n }\n return time.join (''); // return adjusted time or original string\n }\n\n //console.log(time);\n \n return time;\n\n }\n\n isAmericanFormat(){\n return this.translate.currentLang === 'en';\n }\n\n getTimeFormat(){\n let lang = this.translate.currentLang;\n let format = 'HH:mm'\n\n if(lang === 'en' )\n format = 'hh:mm a';\n\n return format;\n }\n\n getTimeFormat2(){\n let format = 'HH:mm'\n return format;\n }\n\n isToday(mDate: Date){\n let date = new Date()\n if(date.getDate() === mDate.getDate() && date.getMonth() === mDate.getMonth() && date.getFullYear() === mDate.getFullYear())\n return true\n return false\n }\n\n transformDate(date, format, locale?) {\n const datePipe: DatePipe = new DatePipe(locale || this.getLocale()); // Usa locale si se pasa, o por defecto a getLocale()\n return datePipe.transform(date, format);\n }\n\n getCalendarDay(epoch: number): string {\n if (!epoch) {\n return null;\n }\n let timeString = 'h:mm A';\n const today = this.translate.instant('agenda.today');\n const yesterday = this.translate.instant('agenda.yesterday');\n return moment(epoch).calendar(null, {\n sameDay: `[${today}] ` + timeString,\n lastDay: `[${yesterday}] ` + timeString,\n lastWeek : 'DD/MM/YY ' + timeString,\n sameElse: 'DD/MM/YY ' + timeString,\n nextDay : 'DD/MM/YY ' + timeString,\n });\n }\n\n getCalendarDay2(epoch: number): string {\n if (!epoch) {\n return null;\n }\n let timeString = this.getTimeFormat();\n let dateString = this.getShortDateFormat();\n const today = this.translate.instant('agenda.today');\n const yesterday = this.translate.instant('agenda.yesterday');\n return moment(epoch).calendar(null, {\n sameDay: `[${today}] ` + timeString,\n lastDay: `[${yesterday}] ` + timeString,\n sameElse: dateString + ' ' + timeString,\n lastWeek : dateString + ' ' + timeString,\n nextDay : dateString + ' ' + timeString\n });\n }\n\n\n getCalendarDayTime(epoch: number): string {\n if (!epoch) {\n return null;\n }\n let timeString = this.getTimeFormat();\n let lang = this.translate.currentLang;\n const today = this.translate.instant('agenda.today');\n const yesterday = this.translate.instant('agenda.yesterday');\n const to = this.translate.instant('agenda.to');\n\n const m = moment\n m.locale(lang)\n\n const dateString = 'MMM, ddd DD YYYY';\n\n return m(epoch).calendar(null, {\n sameDay: `[${today}] ` + `[${to}] ` + timeString,\n lastDay: `[${yesterday}] ` + `[${to}] ` + timeString,\n sameElse: dateString + ' ' + `[${to}] ` + timeString,\n lastWeek: dateString + ' ' + `[${to}] ` + timeString,\n nextDay : dateString + ' ' + `[${to}] ` + timeString\n })\n}\n\n // return epoch string as specified format\n formatEpoch(epoch): string {\n return this.getCalendarDay(epoch);\n }\n\n getToday(){\n const tzoffset = (new Date()).getTimezoneOffset() * 60000; // offset in milliseconds\n const localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1);\n let date = localISOTime// this.dateService.selectedDateFormat(localISOTime);\n return date\n }\n\n getCurrentTime(){\n const tzoffset = (new Date()).getTimezoneOffset() * 60000; // offset in milliseconds\n const localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1);\n let date = localISOTime// this.dateService.selectedDateFormat(localISOTime);\n return new Date(Date.now() - tzoffset).getTime().toLocaleString();\n }\n\n public yyyyMMddHHmm1(date?){\n\n if(date){\n let day = this.transformDate(date, 'yyyy-MM-dd HH:mm');\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n public yyyyMMddHHmmss(date?){\n if(date){\n let day = this.transformDate(date, 'yyyy-MM-dd HH:mm:ss');\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n\n\n\n formatDateHour(d){\n var auxdate = d.split('T')\n let date = new Date(auxdate[0]);\n // d = d.replace(' ', 'T')\n // let date0 = new Date(d).toISOString();\n // let date = new Date(date0);\n date.setHours(23);\n date.setMinutes(59);\n return date;\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { LanguageService } from './language.service';\nimport * as HighCharts from 'highcharts';\nimport 'highcharts/highcharts-more';\n// import highchartsMore from 'highcharts/highcharts-more';\n// highchartsMore(HighCharts);\nimport moment from 'moment';\nimport { DatePipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nexport interface serie {\n name: string,\n type?: string,\n colorKey?: string,\n pointWidth?: number,\n colorByPoint?: boolean,\n color?: string,\n data: Array<any>,\n lineWidth?: number,\n marker?: {\n radius: number\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HighchartsService {\n weekdaysES = ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sábado']\n weekdaysCA = ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', 'Divendres', 'Dissabte']\n weeksDay = []\n title: string;\n graphData = [];\n ranges: any;\n units: string;\n series: any[] = []\n xAxis: any\n yAxis: any\n minY: any\n maxY: any\n graphBaseOn: string\n pointWidth: number;\n withTooltip = false\n extraTooltip: any;\n scrollMinWidth = 550\n constructor(\n private languageService: LanguageService,\n private translate: TranslateService\n ) { }\n\n setTitle(title){\n this.title = title\n }\n\n setUnits(units){\n this.units = units\n }\n\n setLocale() {\n return this.languageService.getCurrent();\n }\n\n setPointWidth(interval): number{\n switch (interval) {\n case '1d': \n return 12;\n case '1w': \n return 12; \n case '1m': \n return 8; \n case '1y': \n return 12; \n default:\n return 20;\n }\n }\n\n setScrollMinWidth(interval){\n switch (interval) {\n case '1d': \n this.scrollMinWidth = 600;\n break\n case '1w': \n this.scrollMinWidth = 500; \n break\n case '1m': \n this.scrollMinWidth = 600; \n break\n case '1y': \n this.scrollMinWidth = 500; \n break\n default:\n this.scrollMinWidth = 500;\n }\n }\n\n addTooltip(interval){\n switch (interval) {\n case '1d': \n this.withTooltip = false;\n break\n case '1w': \n this.withTooltip = false; \n break\n case '1m': \n this.withTooltip = true; \n break\n case '1y': \n break \n this.withTooltip = false;\n default:\n this.withTooltip = false;\n }\n }\n\n getWeekday(){\n return (this.setLocale() == 'es') ? this.weekdaysES : this.weekdaysCA\n }\n\n setSeries(name, data, pointWidth?, lineWidth?, color?, colorKey?, colorByPoint?){\n const serie_name = name? name: this.units;\n const serie_data = (data && data.length > 0)? data: this.graphData\n const serie_pointWidth = pointWidth? pointWidth:this.pointWidth\n const serie_colorByPoint = colorByPoint? true:false;\n let serie: serie = { name: serie_name, data: serie_data, pointWidth:serie_pointWidth, colorByPoint: serie_colorByPoint}\n //if (pointWidth != undefined) serie['pointWidth'] = pointWidth\n if (lineWidth) serie['lineWidth'] = lineWidth\n if (color) serie['color'] = color\n if (colorKey) serie['colorKey'] = colorKey\n this.series = []\n this.series.push(serie)\n }\n\n // type: this.typeChart,\n // maxRange: this.min.getTime(),\n // categories: this.withTooltip? this.graphDates: null\n setXAxis(type, categories, maxRange?){\n this.xAxis = {type: type, maxRange: maxRange, categories: categories, crosshair: true}\n }\n\n setYAxis(minY,maxY, ranges, text){\n //console.log('[ActivityGoalPage] generateChart() maxY: ', maxY);\n //Solo para HPC requieren que el valor mínimo de gráfica sea 0, aquí valido que si no hay valores negativos se el minY = 0;\n const y_min = minY;// (minY > 0) ? 0 : minY;\n const y_max = (maxY)? maxY: this.maxY\n const y_title = {text: text, align: 'high'}\n this.yAxis = {min: y_min, max: y_max, alignTicks: false, tickInterval: null, startOnTick: false, title:y_title, opposite: true, plotBands: ranges}\n }\n\n setMinY(valuesA, valuesB){\n if(valuesA && valuesB && valuesB.length > 0){\n const A = Math.min.apply(null, valuesA)\n const B = Math.min.apply(null, valuesB)\n this.minY = A>B? B:A\n return this.minY\n }else{\n this.minY = Math.min.apply(null, valuesA)\n return this.minY\n }\n }\n\n setMaxY(valuesA, valuesB){\n if(valuesA && valuesB && valuesB.length > 0){\n const A = Math.max.apply(null, valuesA)\n const B = Math.max.apply(null, valuesB)\n this.maxY = A>B? A:B\n return this.maxY\n }else{\n this.maxY = Math.max.apply(null, valuesA)\n return this.maxY\n }\n }\n\n\n getOptionsChart(graphBaseOn) {\n ////console.log('[ActivityGoalPage] generateChart() graphBaseOn: ', graphBaseOn);\n let charts //= HighCharts\n switch (graphBaseOn) {\n case 'avg': \n //charts.chart('container', {\n charts = {\n chart: {\n renderTo: 'container',\n type: 'column',\n zoomType: 'x',\n scrollablePlotArea: {\n minWidth: this.scrollMinWidth,\n scrollPositionX: 1\n } \n },\n title: {\n text: this.title \n },\n xAxis: this.xAxis,\n yAxis: this.yAxis,\n rangeSelector: {\n enabled: true\n },\n plotOptions: {\n series: {\n allowPointSelect: true,\n borderWidth: 1,\n dataLabels: {\n enabled: true,\n format: '{point.y}'\n },\n }\n },\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n series: this.series,\n tooltip: {\n valueSuffix: ` ${this.units}`\n },\n lang: {\n weekdays: this.getWeekday()\n }\n }\n //);\n break;\n case 'range': \n //charts.chart('container', {\n charts = {\n chart: {\n renderTo: 'container',\n type: 'arearange',\n zoomType: 'x',\n scrollablePlotArea: {\n minWidth: this.scrollMinWidth,\n scrollPositionX: 1\n } \n },\n title: {\n text: this.title \n },\n xAxis: this.xAxis,\n yAxis: this.yAxis,\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n series: this.series,\n tooltip: {\n valueSuffix: ` ${this.units}`\n },\n lang: {\n weekdays: this.getWeekday()\n }\n }\n //);\n \n break;\n case 'lasValue': //barra o punto valor de 0 al inicio\n default:\n //charts.chart('container', {\n charts = {\n chart: {\n renderTo: 'container',\n type: 'column',\n zoomType: 'x',\n scrollablePlotArea: {\n minWidth: this.scrollMinWidth,\n scrollPositionX: 1\n } \n },\n title: {\n text: this.title \n },\n xAxis: this.xAxis,\n yAxis: this.yAxis,\n rangeSelector: {\n enabled: true\n },\n plotOptions: {\n series: {\n allowPointSelect: true,\n borderWidth: 1,\n dataLabels: {\n enabled: true,\n format: '{point.y}'\n },\n }\n },\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n series: this.series,\n tooltip: {\n valueSuffix: ` ${this.units}`\n },\n lang: {\n weekdays: this.getWeekday()\n }\n }\n //);\n break;\n }\n\n\n if(this.withTooltip){\n let tool = `<table><tr><th colspan=\"1\">{point.key} ${this.extraTooltip}</th></tr>` //\n HighCharts.setOptions({\n tooltip: {\n headerFormat: tool,\n },\n });\n }\n\n return charts\n }\n\n groupByCategory(interval, element){\n let language= this.languageService.getCurrent();\n ////console.log('[HighchartsService] groupByCategory ', element.date_value);\n let elementDate = new Date(element.date_value);\n let groupByDate = \"\";\n let tooltip = \"\";\n ////console.log('[HighchartsService] groupByCategory ', element.date_value);\n switch (interval) {\n case '1d':// group by day\n let hour = element.date?.split(' ')[1]\n groupByDate = hour\n // let isAllValue = (this.graphBaseOn == 'lasValue' || this.graphBaseOn == 'range')? true:false\n // groupByDate = isAllValue? hour : hour.split(':')[0] + ':' + hour.split(':')[1];\n tooltip = moment(elementDate, \"YYYY-MM-DD\").locale('es').date() + '/' + elementDate.toLocaleString('es-ES', { month: 'short' }) + '/' + elementDate.getFullYear()+' '+groupByDate;\n break;\n case '1w':\n let date = this.formatSelectedDate(element.date_value)\n let day = date.toLocaleString(language, { weekday: 'short' })\n groupByDate = this.titleCase(day) +' '+ this.formatSelectedDate2(element.date_value, 'd')\n tooltip = moment(elementDate, \"YYYY-MM-DD\").locale('es').date() + '/' + elementDate.toLocaleString('es-ES', { month: 'short' }) + '/' + elementDate.getFullYear();\n break;\n case '1m':\n //let month = elementDate.toLocaleString('es-ES', { month: 'short' });\n groupByDate = this.formatSelectedDate2(element.date_value, 'd') //+ ' ' + month\n tooltip = moment(elementDate, \"YYYY-MM-DD\").locale('es').date() + '/' + elementDate.toLocaleString('es-ES', { month: 'short' }) + '/' + elementDate.getFullYear();\n break;\n case '1y':\n let month = new Date(); month.setMonth(Number(element.date_value)-1); \n groupByDate = month.toLocaleString(language, { month: 'short' })\n groupByDate = this.titleCase(groupByDate) ;\n tooltip = month.toLocaleString(language, { month: 'short' }) + '/' + month.getFullYear();\n break;\n default:\n break\n }\n return {groupByDate: groupByDate, tooltip: tooltip}\n }\n\n formatSelectedDate2(d, format) {\n var auxdate = d.split(' ')\n d = d.replace(' ', 'T')\n let date0 = new Date(d).toUTCString();\n let date = new Date(date0);\n let time = auxdate[1];\n date.setHours(time.substring(0, 2));\n date.setMinutes(time.substring(3, 5));\n let language = this.languageService.getCurrent();\n const datePipe: DatePipe = new DatePipe('en');\n return datePipe.transform(date, format);\n }\n\n formatSelectedDate(d) {\n var auxdate = d.split(' ')\n d = d.replace(' ', 'T')\n let date0 = new Date(d).toUTCString();\n let date = new Date(date0);\n let time = auxdate[1];\n date.setHours(time.substring(0, 2));\n date.setMinutes(time.substring(3, 5));\n return date\n }\n\n titleCase(word){\n return word.charAt(0).toUpperCase() + word.slice(1)\n }\n\n getGroupedData(json, interval, withoToltip?:boolean){\n let withTooltip: boolean = false\n let tooltip = []\n let groupData: any;\n let groups = []\n let valuesA = [];\n let valuesB = [];\n let datesA = [];\n let graphData = [];\n let graphBaseOn = json.graphBaseOn\n this.graphBaseOn = json.graphBaseOn;\n switch (graphBaseOn) {\n case 'average': \n case 'avg': \n groups = json.values.reduce((groups, element) => {\n const value = Number(element.avg);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].value = 0;\n }\n groups[group.groupByDate].value += value;\n groups[group.groupByDate].tooltip = group.tooltip \n return groups;\n }, {}); \n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].value);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].value]);\n \n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, graphData: graphData}\n break;\n\n case 'range': \n groups = json.values.reduce((groups, element) => {\n const valueMax = Number(element.max);\n const valueMin = Number(element.min);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].valueMax = 0;\n groups[group.groupByDate].valueMin = 0;\n }\n groups[group.groupByDate].valueMax += valueMax;\n groups[group.groupByDate].valueMin += valueMin;\n groups[group.groupByDate].tooltip = group.tooltip\n \n return groups;\n }, {});\n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].valueMax);\n valuesB.push(groups[date].valueMin);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].valueMin, groups[date].valueMax]);\n \n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, valuesB: valuesB, graphData: graphData}\n break;\n\n case 'sum': \n groups = json.values.reduce((groups, element) => {\n const value = Number(element.value);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].value = 0;\n }\n groups[group.groupByDate].value += value;\n groups[group.groupByDate].tooltip = group.tooltip \n return groups;\n }, {}); \n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].value);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].value]);\n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, graphData: graphData}\n break;\n\n case 'lasValue': \n default:\n json.values.forEach(element => {\n const value = Number(element.value);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].value = 0;\n }\n groups[group.groupByDate].value += value;\n groups[group.groupByDate].tooltip = group.tooltip \n })\n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].value);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].value]); \n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, graphData: graphData}\n break\n }\n return groupData;\n }\n\n getRanges(element, min, max) {\n let normalValue = []\n let outRangeValue = []\n let dangerValue = []\n let value = []\n let ranges = element.ranges;\n\n ranges.forEach(range => {\n var r = [];\n var color;\n\n /*\n * No toma en cuenta los decimales con coma (,)\n */\n range.value1 = parseFloat(range.value1?.replace(\",\",\".\"));\n range.value2 = parseFloat(range.value2?.replace(\",\",\".\"));\n\n if (range.rangeCondition == '>' || range.rangeCondition == '=>') {\n r[\"from\"] = range.value1;\n const maxValue = this.getMaxRange(range.value1, max) ;\n //console.log('[ActivityGoalPage] maxValue ', maxValue);\n r[\"to\"] = this.getMaxRange(range.value1, max) ;\n }\n\n if (range.rangeCondition == '<' || range.rangeCondition == '<=') {\n r[\"from\"] = min;\n r[\"to\"] = range.value1;\n }\n\n if (range.rangeCondition == 'a<x<b') {\n r[\"from\"] = range.value1;\n r[\"to\"] = range.value2;\n }\n\n if (range.rangeType == \"success\")\n color = 'rgba(96, 173, 121, 0.1)';\n else if (range.rangeType == \"warning\")\n color = 'rgba(245, 157, 24, 0.1)'; //'rgb(243, 156, 18, 0.1)'\n else if (range.rangeType == \"danger\")\n color = 'rgba(245, 46, 24, 0.1)'; //'rgb(231, 76, 60, 0.1)'\n\n r[\"color\"] = color;\n value.push(r);\n\n if (range.rangeType === \"success\") {\n normalValue.push(range.conditionString)\n }\n else if (range.rangeType == \"warning\") {\n outRangeValue.push(range.conditionString)\n }\n else if (range.rangeType == \"danger\") {\n dangerValue.push(range.conditionString)\n }\n\n });\n if (value?.length > 0) {\n let rangesElement = {\n name: element.name,\n description: element.description,\n value: value,\n normalValue: normalValue,\n outRangeValue: outRangeValue,\n dangerValue: dangerValue\n }\n //console.log('[ActivityGoalPage] getRanges() ranges: ', rangesElement);\n return rangesElement\n }\n else return undefined\n }\n //Aqui se setea el valor max en Y sumando el rango máximo y valor máximo ingresado divdido entre 2\n getMaxRange(rangeMax, max){\n let value1 = Number(rangeMax)\n let value2 = Number(max)\n if(value2 <= value1)\n this.maxY = value1 + value2/2; \n else \n this.maxY = value2\n return this.maxY \n }\n\n setHighchartsOptions(json, params){\n let opt = json?.graphBaseOn\n let interval = params.interval\n let name = json?.name\n let typeChart = ''\n let valuesA = [];\n let valuesB = [];\n let datesA = [];\n let graphData = [];\n let ranges;\n let minY;\n let maxY;\n let pointWidth = 20\n let units = json?.units\n\n this.units = json.units\n\n const data = this.getGroupedData(json, interval);\n graphData = data?.graphData\n valuesA = data?.valuesA\n valuesB = data?.valuesB\n datesA = data?.dates\n\n minY = this.setMinY( valuesA, valuesB);\n maxY = this.setMaxY( valuesA, valuesB);\n ranges = this.getRanges(json, minY, maxY)\n this.ranges = ranges\n pointWidth = this.setPointWidth(interval)\n\n //console.log(\"* valuesA: \", valuesA);\n //console.log(\"* valuesB: \", valuesB);\n //console.log(\"* dates: \", datesA);\n //console.log(\"* graphic: \", graphData);\n\n switch (opt) {\n case 'range':\n typeChart = 'arearange'\n break; \n case 'sum':\n case 'avg':\n case 'lasValue': \n default:\n typeChart = 'category'\n break;\n }\n\n this.setXAxis(typeChart, datesA)\n this.setYAxis(minY,maxY, ranges, units)\n this.setSeries(name, graphData, pointWidth)\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nexport class ComponentsApp {\n goal: boolean;\n advices: boolean;\n news: boolean;\n agenda: boolean;\n reminder: boolean;\n diet: boolean;\n drug: boolean;\n game: boolean;\n element: boolean;\n form: boolean;\n chat: boolean;\n doc_diagnostic: boolean;\n contacta: boolean;\n medication: boolean;\n constructor(goal: boolean,advices: boolean,news: boolean, agenda: boolean, reminder: boolean, diet: boolean, drug: boolean, game: boolean, element: boolean, form: boolean, chat: boolean,doc_diagnostic: boolean, contacta: boolean, medication: boolean){\n this.goal = goal\n this.advices = advices\n this.news = news\n this.agenda = agenda\n this.reminder = reminder\n this.diet = diet\n this.drug = drug\n this.game = game\n this.element = element\n this.form = form\n this.chat = chat\n this.doc_diagnostic = doc_diagnostic\n this.contacta = contacta\n this.medication = medication\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RolesService {\n component: ComponentsApp;\n isProfessional: boolean;\n userType: any;\n constructor() { \n this.setProfessional(false)\n this.activatedAllComponents(true)\n //this.customAllComponents(true,false,true,false,false,false,false,true,true,true,true, false, true)\n }\n\n activatedAllComponents(enable: boolean){\n this.component = new ComponentsApp(enable, enable,enable,enable,enable,enable,enable,enable,enable,enable,enable, enable,enable, enable )\n }\n\n customAllComponents(goal: boolean,advices: boolean,news: boolean, agenda: boolean, reminder: boolean, diet: boolean, drug: boolean, game: boolean, element: boolean, form: boolean, chat: boolean, doc_diagnostic: boolean, contacta: boolean, medication: boolean){\n this.component = new ComponentsApp(goal, advices, news, agenda, reminder, diet, drug, game, element, form, chat, doc_diagnostic, contacta, medication )\n }\n\n setProfessional(professional){\n this.isProfessional = professional? true: false\n \n }\n}\n","import { Injectable } from '@angular/core';\nimport { Preferences } from '@capacitor/preferences';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n\n constructor() {\n Preferences.migrate();\n }\n\n saveFirstTimeLoad(val): void {\n Preferences.set({ key: 'firstTime', value: val});\n }\n saveFirstTimeLoad2(val): void {\n Preferences.set({key:'firstTime2', value:val});\n }\n\n async isFirstTimeLoad() {\n const result = await Preferences.get({ key: 'firstTime' });\n if (result == null) { //si no hay valor previo\n return true; //retornamos true\n }\n\n return JSON.parse(result.value);\n\n }\n\n async isFirstTimeLoad2() {\n const result = await Preferences.get({ key: 'firstTime2' });\n if (result == null) { //si no hay valor previo\n return true; //retornamos true\n }\n\n return JSON.parse(result.value);\n\n }\n\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\nimport { AlertController, ToastController } from '@ionic/angular';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n constructor(\n public snackBar: MatSnackBar,\n private zone: NgZone,\n public alertCtrl: AlertController,\n private translate: TranslateService,\n private toastController: ToastController\n ) { }\n\n showSuccess(message: string): void {\n // Had an issue with the snackbar being ran outside of angular's zone.\n this.zone.run(() => {\n // The second parameter is the text in the button. \n // In the third, we send in the css class for the snack bar.\n const config = new MatSnackBarConfig();\n config.panelClass = ['custom-class'];\n config.verticalPosition = 'bottom';\n config.horizontalPosition = 'center';\n config.duration = 3000;\n this.snackBar.open(message,'', config);\n \n });\n }\n\n showError(error: string): void {\n \n let message:string;\n if(error.includes('ERR_INTERNET_DISCONNECTED') || error.toLowerCase().includes('network error') || error.toLowerCase().includes('unknown error'))\n message = this.translate.instant('commons.error-network');\n else if(error.includes('Timeout has occurred'))\n message = this.translate.instant('commons.error-timeout');\n else\n message = error;\n \n\n this.zone.run(() => {\n\n const config = new MatSnackBarConfig();\n config.panelClass = ['example-pizza-party'];\n config.verticalPosition = 'bottom';\n config.horizontalPosition = 'center';\n config.duration = 3000;\n this.snackBar.open(message,'X', config);\n \n //console.log(\"NotificationService\", message);\n \n });\n }\n\n //Toast\n displayToastSuccessful() { \n try {\n this.toastController.dismiss().then(() => {\n }).catch(() => {\n }).finally(() => {\n //console.log('Closed')\n });\n } catch(e) {}\n \n this.toastController.create({\n position: 'middle', //'middle', 'bottom'\n cssClass: 'toast-custom-class',\n animated: true,\n duration: 2000,\n }).then((toast) => {\n toast.present();\n });\n }\n\n displayToastPusher(message) { \n try {\n this.toastController.dismiss().then(() => {\n }).catch(() => {\n }).finally(() => {\n //console.log('Closed')\n });\n } catch(e) {}\n \n this.toastController.create({\n position: 'middle', //'middle', 'bottom'\n cssClass: 'toast-pusher-class',\n message: message,\n animated: true,\n duration: 30000,\n buttons: [{\n text: 'Cerrar',\n icon: 'close',\n role: 'cancel',\n handler: () => {\n //console.log('Cancel clicked');\n }\n }\n ]\n }).then((toast) => {\n toast.present();\n });\n }\n\n\n async confirmAllNotification(message) {\n const alert = await this.alertCtrl.create({\n cssClass: 'my-alert-class',\n message: message ,\n buttons: [\n {\n text: this.translate.instant(\"button.ok\"),\n handler: (data) => {\n \n }\n }\n ]\n });\n\n await alert.present();\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { Network } from '@capacitor/network';\nimport { Capacitor } from '@capacitor/core';\nimport { Platform } from '@ionic/angular';\nimport { fromEvent, merge, of, Observable } from 'rxjs';\nimport { mapTo } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NetworkService {\n\n private online$: Observable<boolean>;\n\n constructor(public platform: Platform) {\n if (Capacitor.isNativePlatform()) {\n // Native device: use Capacitor Network listener\n this.online$ = new Observable<boolean>(observer => {\n // Emit current status\n Network.getStatus().then(status => observer.next(status.connected));\n\n // Listen for changes\n Network.addListener('networkStatusChange', (status) => {\n observer.next(status.connected);\n });\n });\n } else {\n // Browser: fallback to window events\n this.online$ = merge(\n of(navigator.onLine),\n fromEvent(window, 'online').pipe(mapTo(true)),\n fromEvent(window, 'offline').pipe(mapTo(false))\n );\n }\n }\n\n public getNetworkStatus(): Observable<boolean> {\n return this.online$;\n }\n\n // Optional helper: get full network info once\n public async getNetworkType(): Promise<string> {\n const status = await Network.getStatus();\n return status.connectionType; // e.g., 'wifi', 'cellular', 'none'\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingService {\n loadingSub: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n /**\n * Contains in-progress loading requests\n */\n loadingMap: Map<string, boolean> = new Map<string, boolean>();\n\n constructor() { }\n\n /**\n * Sets the loadingSub property value based on the following:\n * - If loading is true, add the provided url to the loadingMap with a true value, set loadingSub value to true\n * - If loading is false, remove the loadingMap entry and only when the map is empty will we set loadingSub to false\n * This pattern ensures if there are multiple requests awaiting completion, we don't set loading to false before\n * other requests have completed. At the moment, this function is only called from the @link{HttpRequestInterceptor}\n * @param loading {boolean}\n * @param url {string}\n */\n setLoading(loading: boolean, url: string): void {\n if (!url) {\n throw new Error('The request URL must be provided to the LoadingService.setLoading function');\n }\n if (loading === true) {\n this.loadingMap.set(url, loading);\n this.loadingSub.next(true);\n }else if (loading === false && this.loadingMap.has(url)) {\n this.loadingMap.delete(url);\n }\n if (this.loadingMap.size === 0) {\n this.loadingSub.next(false);\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { Capacitor } from '@capacitor/core';\nimport { Platform } from '@ionic/angular';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggingService {\n \n constructor(private platform: Platform) { }\n\n logError(message) {\n\n // Send errors to be saved here\n if (Capacitor.isNativePlatform()) {\n console.error(\"Error log: \", message);\n }else{\n console.error(\"Error log: \", message);\n }\n \n return;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorService {\n\n constructor() { }\n\n\ngetClientMessage(error: any): any {\n\n if(error.constructor == Array){\n return error.toString();\n }else if(error.constructor == Object){\n return JSON.stringify(error);\n }else if(typeof error == 'object'){\n return error.message ? error.message : 'error';\n }else{\n return error;\n } \n \n}\n\ngetClientStack(error: Error): string {\n return error.stack;\n}\n\ngetServerMessage(error: HttpErrorResponse): string {\n \n if(error.constructor == Array){\n return error;\n }else if(error.constructor == Object){\n return JSON.stringify(error);\n }else if(typeof error == 'object'){\n return error.message;\n }else{\n return error;\n } \n \n}\n\ngetServerStack(error: HttpErrorResponse): string {\n // handle stack trace\n return 'stack';\n}\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Capacitor } from '@capacitor/core';\nimport { CallCapacitor } from '@doole/videocall-notications-plugins';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OpentokService {\n\n agendaId$: string;\n token$: string;\n sessionId$: string;\n apiKey$: string;\n\n private callEventSubject = new Subject<ICallEvent>();\n callEvent$ = this.callEventSubject.asObservable();\n\n constructor() {\n if (Capacitor.isNativePlatform()) {\n CallCapacitor.addListener('disconnected-call', () => {\n this.emitCallEvent({ type: \"hangup\" });\n })\n }\n }\n\n emitCallEvent(data: ICallEvent) {\n this.callEventSubject.next(data);\n }\n\n}\n\ninterface ICallEvent {\n type: 'hangup';\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Environment, FIREBASE_CONFIG_TOKEN } from '../configuration';\nimport { Router, RouterEvent, NavigationEnd } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\n// Init for the web\nimport \"@capacitor-community/firebase-analytics\";\nimport {FirebaseAnalytics} from '@capacitor-community/firebase-analytics';\nimport { Platform } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnalyticsService {\n analyticsEnabled = true;\n constructor( @Inject(FIREBASE_CONFIG_TOKEN) private environment: Environment,public platform: Platform,private router: Router) {\n this.initFb();\n this.router.events.pipe(\n filter((e): e is NavigationEnd => e instanceof NavigationEnd),\n ).subscribe((e: RouterEvent) => {\n //console.log('route changed: ', e.url);\n //this.setScreenName(e.url)\n });\n }\n\n async initFb() {\n\n if (this.platform.is('mobileweb')){\n //console.log(\"initializeFirebase: \", environment.firebase)\n await FirebaseAnalytics.initializeFirebase(this.environment.firebase);\n }\n\n\n this.toggleAnalytics();\n }\n\n setUserId(userId) {\n const setUserId = async () => {\n await FirebaseAnalytics.setUserId({\n userId: userId,\n });\n }\n\n return setUserId;\n }\n\n setProperty(property, value) {\n const setUserProperty = async () => {\n await FirebaseAnalytics.setUserProperty({\n name: property,\n value: value,\n });\n };\n\n return setUserProperty\n }\n\n logEvent(name: string, params: Object) {\n const logEvent = async () => {\n await FirebaseAnalytics.logEvent({\n name: name,\n params: params\n });\n }\n\n return logEvent\n }\n\n setScreenName(screenName, nameOverride?) {\n FirebaseAnalytics.setScreenName({\n screenName: screenName,\n nameOverride: nameOverride,\n });\n }\n\n async toggleAnalytics() {\n const setCollectionEnabled = async () => {\n await FirebaseAnalytics.setCollectionEnabled({\n enabled: this.analyticsEnabled,\n });\n }\n\n return setCollectionEnabled;\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { ApiEndpointsService } from '../api-endpoints.service';\nimport { HttpService } from '../http.service';\nimport { HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SharedCarePlanService {\n\n constructor(\n private http: HttpService,\n private api: ApiEndpointsService,\n ) { }\n\n\n getAPI_SCP_goals(): Observable<any> {\n let path = `sharecareplan/goals`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_SCP_goals(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_procedures(): Observable<any> {\n let path = `rehabilify/sharedcareplan/medical-procedures`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_SCP_procedures(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_prescribedApp(): Observable<any> {\n let path = `rehabilify/prescribed-apps`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_SCP_procedures(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_StatusContent(): Observable<any> {\n let path = `sharecareplan/content/group/new-content-statuses`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //console.log(`[DooleService] getAPI_SCP_StatusContent(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIExercises(params?): Observable<any> {\n let path = 'rehabilify/sharedcareplan/exercises';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n httpParams = (params?.tags) ? httpParams.append('tags', params?.tags) : httpParams\n httpParams = (params?.interactions) ? httpParams.append('interactions', params?.interactions) : httpParams\n httpParams = (params?.readingTime) ? httpParams.append('readingTime', params?.readingTime) : httpParams\n\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //console.log(`[DooleService] getAPIExercises(${path}) res: `, res);\n return res;\n })\n );\n }\n\n get_APi_ACP_monitoring(): Observable<any> {\n let path = `rehabilify/sharedcareplan/monitoring`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\nget_APi_ACP_forms(): Observable<any> {\n let path = `rehabilify/sharedcareplan/forms`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n get_APi_ACP_medication(): Observable<any> {\n let path = `rehabilify/sharedcareplan/medication-plan`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n\n post_API_ACP_declined_acepted(model, model_id, type, coments?): Observable<any> {\n let path = `sharecareplan/content/acepted-or-declined`;\n let params = {\n 'model': model,\n 'model_id': model_id,\n 'type': type,\n 'comments': coments\n \n } \n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n\n canViewGoals:boolean = true\n canManageGoals:boolean = true\n canViewForms:boolean = true\n canViewAnswerForms:boolean = true\n canViewExercises:boolean = true\n canViewDiets:boolean = true\n canViewRecipes:boolean = true\n canViewGames:boolean = true\n canViewMonitoring:boolean = true\n canManageMonitoring:boolean = true\n canViewAdvices:boolean = true\n canViewMedicalProcedures:boolean = true\n canViewNews:boolean = true\n canViewTestimonials:boolean = true\n canViewMedicalTests:boolean = true\n canManageMedicalTests:boolean = true\n canViewMedication:boolean = true\n canManageMedication:boolean = true\n canViewMedicationPlans:boolean = true\n canViewEvents:boolean = true\n canManageEvents:boolean = true\n canAccessVideocall:boolean = true\n canManageMessages:boolean = true\n canSeeCenters:boolean = true\n colorCargiver:boolean = false\n \n\n constructor() { }\n\n setPermissions(permissions:any) {\n this.canViewGoals = permissions.includes(\"canViewGoals\") ? true : false;\n this.canManageGoals = this.canViewGoals && permissions.includes(\"canManageGoals\") ? true : false;\n this.canViewForms = permissions.includes(\"canViewForms\") ? true : false;\n this.canViewAnswerForms = permissions.includes(\"canViewAnswerForms\") ? true : false;\n this.canViewExercises = permissions.includes(\"canViewExercises\") ? true : false;\n this.canViewDiets = permissions.includes(\"canViewDiets\") ? true : false;\n this.canViewRecipes = permissions.includes(\"canViewRecipes\") ? true : false;\n this.canViewGames = permissions.includes(\"canViewGames\") ? true : false; \n this.canViewMonitoring = permissions.includes(\"canViewMonitoring\") ? true : false;\n this.canManageMonitoring = this.canViewMonitoring && permissions.includes(\"canManageMonitoring\") ? true : false;\n this.canViewAdvices = permissions.includes(\"canViewAdvices\") ? true : false;\n this.canViewMedicalProcedures = permissions.includes(\"canViewMedicalProcedures\") ? true : false;\n this.canViewNews = permissions.includes(\"canViewNews\") ? true : false;\n this.canViewTestimonials = permissions.includes(\"canViewTestimonials\") ? true : false;\n this.canViewMedicalTests = permissions.includes(\"canViewMedicalTests\") ? true : false;\n this.canManageMedicalTests = this.canViewMedicalTests && permissions.includes(\"canManageMedicalTests\") ? true : false;\n this.canViewMedication = permissions.includes(\"canViewMedication\") ? true : false;\n this.canManageMedication = this.canViewMedication && permissions.includes(\"canManageMedication\") ? true : false;\n this.canViewMedicationPlans = permissions.includes(\"canViewMedicationPlans\") ? true : false;\n this.canViewEvents = permissions.includes(\"canViewEvents\") ? true : false;\n this.canManageEvents = this.canViewEvents && permissions.includes(\"canManageEvents\") ? true : false;\n this.canAccessVideocall = this.canViewEvents && permissions.includes(\"canAccessVideocall\") ? true : false; \n this.canManageMessages = permissions.includes(\"canManageMessages\") ? true : false;\n this.canSeeCenters = permissions.includes(\"canSeeCenters\") ? true : false; \n this.colorCargiver = permissions.includes(\"colorCargiver\") ? true : false; \n }\n\n resetPermissions(){\n this.canViewGoals = true\n this.canManageGoals = true\n this.canViewForms = true\n this.canViewAnswerForms = true\n this.canViewExercises = true\n this.canViewDiets = true\n this.canViewRecipes = true\n this.canViewGames = true\n this.canViewMonitoring = true\n this.canManageMonitoring = true\n this.canViewAdvices = true\n this.canViewMedicalProcedures = true\n this.canViewNews = true\n this.canViewTestimonials = true\n this.canViewMedicalTests = true\n this.canManageMedicalTests = true\n this.canViewMedication = true\n this.canManageMedication = true\n this.canViewMedicationPlans = true\n this.canViewEvents = true\n this.canManageEvents = true\n this.canManageMessages = true\n this.canSeeCenters= true\n this.canAccessVideocall = true;\n this.colorCargiver=false;\n }\n}\n","import { Inject } from '@angular/core';\nimport { Observable, of, combineLatest, ReplaySubject } from 'rxjs';\nimport { delay, map, startWith } from 'rxjs/operators';\nimport { Environment, FIREBASE_CONFIG_TOKEN } from '../configuration';\n\n\nexport class ShellModel {\n isShell = false;\n \n}\n\nexport class DataStore<T> {\n // We wait on purpose 2 secs on local environment when fetching from json to simulate the backend roundtrip.\n // However, in production you should set this delay to 0 in the environment.prod file.\n // tslint:disable-next-line:max-line-length\n private networkDelay = (this.environment.appShellConfig && this.environment.appShellConfig.networkDelay) ? this.environment.appShellConfig.networkDelay : 0;\n\n private timeline: ReplaySubject<T & ShellModel> = new ReplaySubject(1);\n\n constructor(@Inject(FIREBASE_CONFIG_TOKEN) private environment: Environment,private shellModel: T) { }\n\n // Static function with generics\n // (ref: https://stackoverflow.com/a/24293088/1116959)\n // Append a shell (T & ShellModel) to every value (T) emmited to the timeline\n public static AppendShell<T>(dataObservable: Observable<T>, shellModel: T, networkDelay = 400): Observable<T & ShellModel> {\n const delayObservable = of(true).pipe(\n delay(networkDelay)\n );\n\n // Assign shell flag accordingly\n // (ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n return combineLatest([\n delayObservable,\n dataObservable\n ]).pipe(\n // Dismiss unnecessary delayValue\n map(([delayValue, dataValue]: [boolean, T]): (T & ShellModel) => Object.assign(dataValue, {isShell: false})),\n // Set the shell model as the initial value\n startWith(Object.assign(shellModel, {isShell: true}))\n );\n }\n\n load(dataSourceObservable: Observable<T>, networkDelay?: number): void {\n // tslint:disable-next-line:no-shadowed-variable\n const delay = (typeof networkDelay === 'number') ? networkDelay : this.networkDelay;\n\n let processedDataSource: Observable<any>;\n\n // If no network delay, then don't show shell\n if (delay === 0) {\n processedDataSource = dataSourceObservable;\n } else {\n processedDataSource = DataStore.AppendShell(dataSourceObservable, this.shellModel, delay);\n }\n\n processedDataSource\n .subscribe((dataValue: T & ShellModel) => {\n this.timeline.next(dataValue);\n });\n }\n\n public get state(): Observable<T & ShellModel> {\n return this.timeline.asObservable();\n }\n}\n","import { ShellModel } from '../../../utils/data-store';\n\nexport class FirebaseProfileModel extends ShellModel {\n image: string;\n name: string;\n role: string;\n description: string;\n email: string;\n provider: string;\n phoneNumber: string;\n\n constructor() {\n super();\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { AngularFireAuth } from '@angular/fire/compat/auth';\nimport { Observable, Subject, from, of } from 'rxjs';\nimport { DataStore } from '../../../utils/data-store';\nimport { FirebaseProfileModel } from './firebase-profile.model';\nimport { Platform } from '@ionic/angular';\nimport { filter, map } from 'rxjs/operators';\n\nimport firebase from \"firebase/compat/app\";\n//import { cfaSignIn, cfaSignOut } from 'capacitor-firebase-auth';\nimport { isPlatformBrowser } from '@angular/common';\nimport { User, Auth } from 'firebase/auth';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FirebaseAuthService {\n\n currentUser: User;\n userProviderAdditionalInfo: any;\n profileDataStore: DataStore<FirebaseProfileModel>;\n redirectResult: Subject<any> = new Subject<any>();\n\n\n constructor(\n public angularFire: AngularFireAuth,\n public platform: Platform,\n @Inject(PLATFORM_ID) private platformId: object\n ) {\n if (isPlatformBrowser(this.platformId)) {\n this.angularFire.onAuthStateChanged((user) => {\n if (user) {\n // User is signed in.\n this.currentUser = user;\n } else {\n // No user is signed in.\n this.currentUser = null;\n }\n });\n\n if (!this.platform.is('capacitor')) {\n // when using signInWithRedirect, this listens for the redirect results\n this.angularFire.getRedirectResult()\n .then((result) => {\n // result.credential.accessToken gives you the Provider Access Token. You can use it to access the Provider API.\n if (result.user) {\n this.userProviderAdditionalInfo = result.additionalUserInfo.profile;\n this.redirectResult.next(result);\n }\n }, (error) => {\n this.redirectResult.next({error: error.code});\n });\n }\n }\n }\n\n getRedirectResult(): Observable<any> {\n return this.redirectResult.asObservable();\n }\n\n getPhotoURL(signInProviderId: string, photoURL: string): string {\n // Default imgs are too small and our app needs a bigger image\n switch (signInProviderId) {\n case 'facebook.com':\n return photoURL + '?height=400';\n case 'password':\n return 'https://s3-us-west-2.amazonaws.com/ionicthemes/otros/avatar-placeholder.png';\n case 'twitter.com':\n return photoURL.replace('_normal', '_400x400');\n case 'google.com':\n return photoURL.split('=')[0];\n default:\n return photoURL;\n }\n }\n\n signOut(): Observable<any> {\n if (this.platform.is('capacitor')) {\n //return cfaSignOut();\n } else {\n return from(this.angularFire.signOut());\n }\n return null\n }\n\n signInWithEmail(email: string, password: string): Promise<firebase.auth.UserCredential> {\n return this.angularFire.signInWithEmailAndPassword(email, password);\n }\n\n signUpWithEmail(email: string, password: string): Promise<firebase.auth.UserCredential> {\n return this.angularFire.createUserWithEmailAndPassword(email, password);\n }\n\n socialSignIn(providerName: string, scopes?: Array<string>): Observable<any> {\n if (this.platform.is('capacitor')) {\n //return cfaSignIn(providerName);\n } else {\n\n const provider = new firebase.auth.OAuthProvider(providerName);\n ////console.log(\"provider. \", provider);\n if (scopes) {\n scopes.forEach(scope => {\n provider.addScope(scope);\n });\n }\n\n\n if (this.platform.is('desktop')) {\n return from(this.angularFire.signInWithPopup(provider));\n } else {\n // web but not desktop, for example mobile PWA\n return from(this.angularFire.signInWithRedirect(provider));\n }\n }\n return null\n }\n\n signInWithGoogle() {\n const provider = new firebase.auth.GoogleAuthProvider();\n ////console.log(\"provider: \", provider);\n const scopes = ['profile', 'email'];\n return this.socialSignIn(provider.providerId, scopes);\n }\n\n signInWithTwitter() {\n const provider = new firebase.auth.TwitterAuthProvider();\n return this.socialSignIn(provider.providerId);\n }\n\n public getProfileDataSource(): Observable<FirebaseProfileModel> {\n // we need to do this differentiation because there is a bug in\n // platform capacitor ios when executing this.angularFire.user\n if (this.platform.is('capacitor')) {\n return of(this.setUserModelForProfile());\n } else {\n return this.angularFire.user\n .pipe(\n filter((user: User) => user != null),\n map((user: User) => {\n return this.setUserModelForProfile();\n })\n );\n }\n }\n\n private setUserModelForProfile(): FirebaseProfileModel {\n const userModel = new FirebaseProfileModel();\n const provierData = this.currentUser.providerData[0];\n const userData = this.userProviderAdditionalInfo ? this.userProviderAdditionalInfo : provierData;\n userModel.image = this.getPhotoURL(provierData.providerId, provierData.photoURL);\n userModel.name = userData.name || userData.displayName || 'What\\'s your name?';\n userModel.role = 'How would you describe yourself?';\n userModel.description = userData.description || 'Anything else you would like to share with the world?';\n userModel.phoneNumber = userData.phoneNumber || 'Is there a number where I can reach you?';\n userModel.email = userData.email || 'Where can I send you emails?';\n userModel.provider = (provierData.providerId !== 'password') ? provierData.providerId : 'Credentials';\n\n return userModel;\n }\n\n public getProfileStore(dataSource: Observable<FirebaseProfileModel>): DataStore<FirebaseProfileModel> {\n // Initialize the model specifying that it is a shell model\n const shellModel: FirebaseProfileModel = new FirebaseProfileModel();\n //this.profileDataStore = new DataStore(shellModel);\n // Trigger the loading mechanism (with shell) in the dataStore\n this.profileDataStore.load(dataSource);\n return this.profileDataStore;\n }\n}\n","/*\n * Public API Surface of service-lib\n */\n\nexport * from './lib/service-lib.component';\nexport * from './lib/service-lib.module';\n/*\n * Public API Surface of landing-lib\n */\n\nexport * from './lib/services/api-endpoints.service';\nexport * from './lib/services/authentication.service';\nexport * from './lib/services/change-endpoints.service';\nexport * from './lib/services/encryption.service';\nexport * from './lib/services/token.service';\nexport * from './lib/services/doole.service';\nexport * from './lib/services/navigation.service';\nexport * from './lib/services/language.service';\nexport * from './lib/services/http.service';\nexport * from './lib/services/date.service';\nexport * from './lib/services/highcharts.service';\nexport * from './lib/services/roles.service';\nexport * from './lib/services/storage.service';\nexport * from './lib/services/notification.service';\nexport * from './lib/services/network.service';\nexport * from './lib/services/loading.service';\nexport * from './lib/services/logging.service';\nexport * from './lib/services/error.service';\nexport * from './lib/services/events.service';\nexport * from './lib/services/opentok.service';\nexport * from './lib/services/analytics.service';\n\nexport * from './lib/services/shared-care-plan/shared-care-plan.service';\nexport * from './lib/services/error.service';\nexport * from './lib/services/navigation.service';\nexport * from './lib/services/permission.service';\nexport * from './lib/utils/data-store';\n\nexport * from './lib/services/firebase/auth/firebase-auth.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ChangeEndpointsService","i1.EncryptionService","i2.TokenService","i3.ApiEndpointsService","i4","i7.ChangeEndpointsService","i2.AuthenticationService","i1.AuthenticationService","i4.HttpService","i5.ApiEndpointsService","i6.Events","i7","i8","i9","i1","i2","i3","i1.LanguageService","map","i1.HttpService","i2.ApiEndpointsService"],"mappings":"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"}
1
+ {"version":3,"file":"doolehealth-service-lib.mjs","sources":["../../../projects/service-lib/src/lib/service-lib.component.ts","../../../projects/service-lib/src/lib/configuration.ts","../../../projects/service-lib/src/lib/service-lib.module.ts","../../../projects/service-lib/src/lib/utils/query-string-parameters.ts","../../../projects/service-lib/src/lib/utils/url-builder.ts","../../../projects/service-lib/src/lib/services/change-endpoints.service.ts","../../../projects/service-lib/src/lib/services/api-endpoints.service.ts","../../../projects/service-lib/src/lib/services/encryption.service.ts","../../../projects/service-lib/src/lib/services/token.service.ts","../../../projects/service-lib/src/lib/services/authentication.service.ts","../../../projects/service-lib/src/lib/services/http.service.ts","../../../projects/service-lib/src/lib/services/events.service.ts","../../../projects/service-lib/src/lib/services/doole.service.ts","../../../projects/service-lib/src/lib/models/notifications/notification-options.ts","../../../projects/service-lib/src/lib/models/shared-care-plan.ts","../../../projects/service-lib/src/lib/services/navigation.service.ts","../../../projects/service-lib/src/lib/services/language.service.ts","../../../projects/service-lib/src/lib/services/date.service.ts","../../../projects/service-lib/src/lib/services/highcharts.service.ts","../../../projects/service-lib/src/lib/services/roles.service.ts","../../../projects/service-lib/src/lib/services/storage.service.ts","../../../projects/service-lib/src/lib/services/notification.service.ts","../../../projects/service-lib/src/lib/services/network.service.ts","../../../projects/service-lib/src/lib/services/loading.service.ts","../../../projects/service-lib/src/lib/services/logging.service.ts","../../../projects/service-lib/src/lib/services/error.service.ts","../../../projects/service-lib/src/lib/services/opentok.service.ts","../../../projects/service-lib/src/lib/services/analytics.service.ts","../../../projects/service-lib/src/lib/services/shared-care-plan/shared-care-plan.service.ts","../../../projects/service-lib/src/lib/services/permission.service.ts","../../../projects/service-lib/src/lib/utils/data-store.ts","../../../projects/service-lib/src/lib/services/firebase/auth/firebase-profile.model.ts","../../../projects/service-lib/src/lib/services/firebase/auth/firebase-auth.service.ts","../../../projects/service-lib/src/public-api.ts","../../../projects/service-lib/src/doolehealth-service-lib.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'lib-service-lib',\n template: `\n <p>\n service-lib works!\n </p>\n `,\n styles: ``\n})\nexport class ServiceLibComponent {\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface Configuracion {\n LIST_ENPOINT: Array<any>;\n INDEX: number;\n API_PROD_ENDPOINT:string;\n PROD_ENDPOINT:string;\n API_PRE_ENDPOINT:string;\n PRE_ENDPOINT:string;\n API_ENDPOINT_DEV: string;\n ENDPOINT_DEV: string;\n appleAppId: string;\n androidBundleId: string;\n VIDEOCALL_URL: string;\n PRIMARY_COLOR: string;\n googleFitPackageID : string;\n}\n\nexport interface PushersConfig {\n PUSHER_KEY_PRO: PusherKey;\n PUSHER_KEY_DEV: PusherKey;\n}\n\nexport interface PusherKey{ \n app_id: string, \n key: string, \n secret: string, \n cluster: string, \n}\n\nexport interface Environment{ \n production: boolean, \n appShellConfig: AppShellConfig, \n firebase: Firebase, \n}\n\nexport interface AppShellConfig{ \n debug: boolean, \n networkDelay: number\n}\n\nexport interface Firebase{ \n apiKey: string, \n authDomain: string, \n databaseURL: string, \n projectId: string, \n storageBucket: string, \n messagingSenderId: string, \n appId: string, \n measurementId: string\n}\n\nexport const CONFIGURACION_TOKEN = new InjectionToken<Configuracion>('configuracion');\nexport const FIREBASE_CONFIG_TOKEN = new InjectionToken<Environment>('environment');\nexport const LANGUAGES_CONFIG_TOKEN = new InjectionToken<Environment>('languages');","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ServiceLibComponent } from './service-lib.component';\nimport { CONFIGURACION_TOKEN, Configuracion, Environment, FIREBASE_CONFIG_TOKEN, LANGUAGES_CONFIG_TOKEN } from './configuration';\nimport { LanguageModel } from './services/language.model';\n\nexport interface LibConfig {\n \n}\n\n@NgModule({\n imports: [\n CommonModule,\n ServiceLibComponent\n ],\n exports: [\n ServiceLibComponent\n ]\n})\n\nexport class ServiceLibModule { \n\n static forRoot(config: Configuracion, environment : Environment, languages:LanguageModel[]): ModuleWithProviders<ServiceLibModule> {\n return {\n ngModule: ServiceLibModule,\n providers: [\n { provide: CONFIGURACION_TOKEN, useValue: config },\n { provide: FIREBASE_CONFIG_TOKEN, useValue: environment },\n { provide: LANGUAGES_CONFIG_TOKEN, useValue: languages },\n ]\n };\n }\n \n}\n","export class QueryStringParameters {\n private paramsAndValues: string[];\n constructor() {\n this.paramsAndValues = [];\n }\n public push(key: string, value: Object): void {\n value = encodeURIComponent(value.toString());\n this.paramsAndValues.push([key, value].join('='));\n }\n public toString = (): string => this.paramsAndValues.join('&');\n }","// Application Classes\nimport { QueryStringParameters } from './query-string-parameters';\nexport class UrlBuilder {\n public url: string;\n public queryString: QueryStringParameters;\n constructor(\n private baseUrl: string,\n private action: string,\n queryString?: QueryStringParameters\n ) {\n this.url = [baseUrl, action].join('/');\n this.queryString = queryString || new QueryStringParameters();\n }\n public toString(): string {\n const qs: string = this.queryString ? this.queryString.toString() : '';\n return qs ? `${this.url}?${qs}` : this.url;\n }\n}","import { Inject, Injectable } from '@angular/core';\nimport { CONFIGURACION_TOKEN, Configuracion, PusherKey, PushersConfig } from '../configuration';\nimport { BehaviorSubject } from 'rxjs';\n\nexport var _INDEX_ENPOINT: number = 0 //Por defecto index 0 \nconst ENDPOINT = 'endpoint';\n\nexport interface enviroment {\n id:number,\n name: string, \n api: string, \n endpoint: string,\n device_ios: {ios_push: string, ios_voip: string},\n color?: string,\n pusher_key: PusherKey,\n settings_bio?: string,\n biometric?: string,\n show_bio_dialog?: string,\n registered_user?: string,\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class ChangeEndpointsService {\n private _endpointIndex = new BehaviorSubject<number>(this.getIndexEndPointLocalstorage());\n public API_ENDPOINT: string;\n public DOOLE_ENDPOINT: string;\n\n public _LIST_ENPOINT: Array<enviroment> = [] \n public _ENVIROMENT: enviroment;\n public static urlBackEnd: string;\n constructor(\n @Inject(CONFIGURACION_TOKEN) private configuration: Configuracion) {\n this.addEndPoint()\n this.setDefaultEndPoint()\n //console.log(\"Constants: \", configuration)\n }\n\n public async addEndPoint(){ \n this._LIST_ENPOINT = [] \n this._LIST_ENPOINT = this.configuration.LIST_ENPOINT;\n }\n\n public setEndPoint(index){\n \n this._ENVIROMENT = this._LIST_ENPOINT[index]\n _INDEX_ENPOINT = index\n\n this.API_ENDPOINT = this._ENVIROMENT.api\n this.DOOLE_ENDPOINT = this._ENVIROMENT.endpoint\n this.getApiEndpointRegex(this.API_ENDPOINT)\n this.setIndexEndPointLocalstorage(index)\n this._endpointIndex.next(index); \n ChangeEndpointsService.urlBackEnd = this.DOOLE_ENDPOINT\n }\n\n setIndexEndPointLocalstorage(endpoint) {\n localStorage.setItem(ENDPOINT, JSON.stringify(endpoint));\n }\n public getApiEndpointRegex(currentEnv): RegExp | null {\n \n if (!currentEnv) {\n return null; // No se encontró ningún entorno definido\n } \n const apiBaseUrl = currentEnv;\n const escapedApiBaseUrl = apiBaseUrl.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const reg = new RegExp(`^${escapedApiBaseUrl}/`);\n localStorage.setItem('SentryConfi', JSON.stringify(reg.source));\n return reg;\n }\n\n getIndexEndPointLocalstorage() {\n let endpoint = localStorage.getItem(ENDPOINT);\n ////console.log(`[ChangeEndpointsService] setEndPointLocalstorage()`, endpoint);\n if(endpoint) return Number(JSON.parse(endpoint))\n return undefined\n }\n getEndpointIndexObservable() {\n return this._endpointIndex.asObservable();\n }\n setDefaultEndPoint(){\n if(this.API_ENDPOINT == undefined || this.DOOLE_ENDPOINT == undefined){\n let index = this.getIndexEndPointLocalstorage()\n index = (index == undefined)? _INDEX_ENPOINT: index\n this.setEndPoint(index)\n }\n }\n}\n","// Angular Modules\nimport { Injectable } from '@angular/core';\n// Application Classes\nimport { UrlBuilder } from '../utils/url-builder';\nimport { QueryStringParameters } from '../utils/query-string-parameters';\n// Application Constants\nimport { ChangeEndpointsService } from './change-endpoints.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiEndpointsService {\n constructor(\n // Application Constants\n //private constants: Constants,\n private endpoints: ChangeEndpointsService,\n ) { }\n /* #region URL CREATOR */\n // URL\n private createUrl( action: string): string {\n \n const urlBuilder: UrlBuilder = new UrlBuilder(\n this.endpoints.API_ENDPOINT,\n action\n );\n return urlBuilder.toString();\n }\n\n private createUrlNoAPI( action: string): string {\n \n const urlBuilder: UrlBuilder = new UrlBuilder(\n this.endpoints.DOOLE_ENDPOINT,\n action\n );\n return urlBuilder.toString();\n }\n // URL WITH QUERY PARAMS\n private createUrlWithQueryParameters(\n action: string, \n queryStringHandler?: \n (queryStringParameters: QueryStringParameters) => void\n ): string {\n //Change EndPoind\n // this.setEndPoint()\n const urlBuilder: UrlBuilder = new UrlBuilder(\n this.endpoints.API_ENDPOINT,\n action\n );\n // Push extra query string params\n if (queryStringHandler) {\n queryStringHandler(urlBuilder.queryString);\n }\n return urlBuilder.toString();\n }\n \n public getEndpoint = (action:any): string => this.createUrl(action);\n public getEndpointNoApi = (action:any): string => this.createUrlNoAPI(action);\n public getEndpointWithParameters = (action:any, parameters:any): string => this.createUrlWithQueryParameters(action, parameters);\n // URL WITH PATH VARIABLES\n private createUrlWithPathVariables(\n action: string, \n pathVariables: any[] = []\n ): string {\n let encodedPathVariablesUrl: string = '';\n // Push extra path variables\n for (const pathVariable of pathVariables) {\n if (pathVariable !== null) {\n encodedPathVariablesUrl +=\n `/${encodeURIComponent(pathVariable.toString())}`;\n }\n }\n const urlBuilder: UrlBuilder = new UrlBuilder(\n this.endpoints.API_ENDPOINT,\n `${action}${encodedPathVariablesUrl}`\n );\n return urlBuilder.toString();\n }\n /* #endregion */\n\n setIndexEndPointLocalstorage(endpoint: any) {\n //console.log(`[ApiEndpointsService] setEndPointLocalstorage()`, endpoint);\n localStorage.setItem('endpoint', JSON.stringify(endpoint));\n }\n\n getIndexEndPointLocalstorage() {\n let endpoint = localStorage.getItem('endpoint');\n if(endpoint) return Number(JSON.parse(endpoint))\n return undefined\n }\n\n/* setEndPoint(){\n let indexEndPoint = this.getIndexEndPointLocalstorage()\n let index = indexEndPoint? indexEndPoint:0\n this.constants.setEndPoint(index)\n this.constants.INDEX = index\n }\n\n loadEndPoints(){\n this.constants.addEndPoint()\n } */\n\n\n\n\n}\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EncryptionService {\n private readonly secretKey: string = 'D001E-APP';\n constructor() { }\n\n encryptData(data: any): string {\n const encryptedData = CryptoJS.AES.encrypt(\n JSON.stringify(data),\n this.secretKey\n ).toString();\n return encryptedData;\n }\n\n decryptData(encryptedData: string): any {\n\n const decryptedData = CryptoJS.AES.decrypt(\n encryptedData,\n this.secretKey\n );\n\n try {\n const data = decryptedData.toString(CryptoJS.enc.Utf8);\n return JSON.parse(data);\n } catch (e) {\n return encryptedData\n }\n\n\n\n\n\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EncryptionService } from './encryption.service';\n\nconst TOKEN_KEY = 'token';\nconst DEVICE_TOKENS = 'tokens';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n private token\n private deviceTokens = []\n constructor(\n private encryptionService: EncryptionService\n ) { }\n\n // getToken(){\n // return this.token\n // }\n\n // setToken(token){\n // this.token = token;\n // }\n\n hasToken(): boolean {\n return this.token != undefined? true:false;\n }\n\n getAuthToken() {\n const token = localStorage.getItem(TOKEN_KEY);\n if(!token) return\n ////console.log(\"[TokenService] getAuthToken()\", token);\n const encryptedData = this.encryptionService.decryptData(token);\n return encryptedData;\n }\n\n setAuthToken(token) {\n const encryptedData = this.encryptionService.encryptData(token);\n localStorage.setItem(TOKEN_KEY, encryptedData);\n }\n\n removeAuthToken(){\n localStorage.removeItem(TOKEN_KEY)\n }\n\n saveAllTokenDevices(token){\n this.deviceTokens.push(token)\n const encryptedData = this.encryptionService.encryptData(this.deviceTokens);\n //console.log(\"[TokenService] saveAllTokenDevices() \", encryptedData);\n localStorage.setItem(DEVICE_TOKENS,JSON.stringify(encryptedData))\n }\n\n getAllTokenDevices(){\n let list = JSON.parse(localStorage.getItem(DEVICE_TOKENS))\n if(!list) return null\n //console.log(\"[TokenService] getAllTokenDevices() \", list);\n const decryptedData = this.encryptionService.decryptData(list);\n this.deviceTokens = decryptedData? decryptedData:[]\n return this.deviceTokens\n }\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID, ViewChild } from '@angular/core';\nimport { Preferences } from '@capacitor/preferences';\nimport { map, tap } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ApiEndpointsService } from '../services/api-endpoints.service';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { AlertController, Platform } from '@ionic/angular';\nimport { AngularFireAuth } from \"@angular/fire/compat/auth\";\nimport { Router, RouterOutlet } from '@angular/router';\nimport { FamilyUnit } from '../models/user';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TokenService } from './token.service';\nimport { Capacitor } from '@capacitor/core';\nimport { ChangeEndpointsService } from './change-endpoints.service';\n\nconst INTRO_KEY = 'intro';\n\nexport class User {\n condicion_legal: boolean;\n image: any;\n idPatient: string;\n idUser: string;\n first_name: string;\n secret: string;\n roles: any = [];\n familyUnit: string;\n name: string;\n listFamilyUnit: FamilyUnit[] = [];\n\n selectedCaregiverResponsible;\n\n constructor(idUser: string, secret: string, name: string, first_name: string, image: string) {\n this.idUser = idUser\n this.secret = secret\n this.name = name\n this.first_name = first_name\n this.image = image\n\n };\n\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n isAuthenticated: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(null);\n public user: User;\n public isRecovery: boolean = false;\n public action: string;\n public id_user: string;\n public emergencyNumber: string;\n public data: Array<any>;\n public email: string;\n public agendaUser = [];\n public tiene_email: boolean;\n public deviceToken: string;\n public devicePlatform: string;\n public voipDeviceToken: string;\n public voipDevicePlatform: string;\n public dietsAndAdvices: [];\n public isFamily:boolean;\n private indexEndPoint: number;\n private tokens = []\n showingSignInAlert: boolean = false;\n @ViewChild(RouterOutlet) outlet: RouterOutlet;\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n private http: HttpClient,\n private tokenService: TokenService,\n private api: ApiEndpointsService,\n public platform: Platform,\n public firebaseAuth: AngularFireAuth,\n public router: Router,\n public alertController: AlertController,\n private injector: Injector,\n private endpoints: ChangeEndpointsService) {\n this.setUser();\n }\n\n getIndexEndPoint(){\n this.indexEndPoint = Number(localStorage.getItem('endpoint'))\n //console.log(\"[AuthService] indexEndPoint: \", this.indexEndPoint);\n }\n\n getAuthToken() {\n const token = this.tokenService.getAuthToken()\n ////console.log(\"[AuthService] getAuthToken: \", token);\n return token;\n }\n\n setAuthToken(token) {\n this.tokenService.setAuthToken(token)\n }\n\n // getAuthToken() {\n // const token = localStorage.getItem(TOKEN_KEY);\n // return token;\n // }\n\n // setAuthToken(token) {\n // localStorage.setItem(TOKEN_KEY, token);\n // }\n\n login(credentials: { username, password, hash }): Observable<any> {\n const endpoint = this.api.getEndpoint('patient/login');\n\n //console.log('credentials: ', credentials);\n return this.http.post(endpoint, credentials).pipe(\n map((res: any) => {\n\n //console.log(\"[AuthService] login() OK \");\n //console.log(\"[AuthService] endpoint\", endpoint);\n if (!res.success) {\n return res\n }\n // save user's token\n if (res.token){\n this.tokenService.setAuthToken(res.token);\n this.setAuthToken(res.token);\n }\n\n // Set indexEndPoint ios_dev if it is QA\n this.getIndexEndPoint()\n if (Capacitor.isNativePlatform()) {\n ////console.log(data);\n let access = true;\n if(this.deviceToken && this.devicePlatform)\n this.registerDevice(this.deviceToken, this.devicePlatform);\n\n if (this.platform.is('ios')){\n if(this.voipDeviceToken)\n this.registerDevice(this.voipDeviceToken, this.endpoints._ENVIROMENT.device_ios.ios_voip); // desaorrollo\n //this.registerDevice(this.voipDeviceToken, (this.indexEndPoint!==0)?'iosvoipdev':'iosvoip'); //produccion\n \n\n }\n\n }\n\n this.user = new User(res.idUser, credentials.password, res.name, res.first_name, res.temporary_url);\n this.id_user = res.idUser;\n this.emergencyNumber = res.emergency_phone_button;\n \n if (res?.familyUnit.length > 0) {\n this.user.listFamilyUnit = res.familyUnit;\n }\n\n this.setUserLocalstorage(this.user)\n this.setTwoFactor(res.twoFactorCenter)\n\n return res;\n\n }),\n tap(_ => {\n this.isAuthenticated.next(true);\n }),\n );\n }\n\n setUser() {\n if (!this.user) {\n this.getUserLocalstorage().then(user => {\n //console.log(\"[AuthenticationService] setUser()\", user);\n if (user)\n this.user = user\n })\n }\n\n }\n\n setUserLocalstorage(user) {\n //console.log(`[AuthenticationService] setUserLocalstorage()`, user);\n Preferences.set({\n key: 'user',\n value: JSON.stringify(user)\n });\n\n }\n\n setEmergencyNumberLocalStorage(number) {\n //console.log(`[AuthenticationService] setEmergencyNumberLocalStorage()`, number);\n Preferences.set({\n key: 'emergencyNumber',\n value: JSON.stringify(number)\n });\n\n }\n\n setFamilyUnitLocalstorage(familyUnit: []) {\n\n\n familyUnit.forEach(member => {\n let s: string = member['name'];\n let fullname = s.split(',');\n let u = new User(member['id'], '', fullname[1], fullname[0], member['thumbnail']);\n //console.log(\"familyUnit Local:\", u);\n Preferences.set({\n key: String(u.idUser),\n value: JSON.stringify(u)\n });\n })\n }\n\n getFamilyUnitLocalstorage(id): Promise<User> {\n return Preferences.get({ key: id }).then((val) => {\n //console.log(`[AuthenticationService] getFamilyUnitLocalstorage(${id})`, val);\n return JSON.parse(val.value);\n });\n }\n\n public async setFamilyUnit(user) {\n this.isFamily = true;\n let s: string = user['name'];\n let fullname = s.split(',');\n\n let previousUser = this.user\n \n\n this.user = new User(user.id, '', /* fullname[0].replace(',','') */ user['name'], fullname[1], user.thumbnail);\n this.user.selectedCaregiverResponsible = previousUser;\n this.user.familyUnit = user.id;\n \n Preferences.set({\n key: String(user.id),\n value: JSON.stringify(this.user)\n });\n\n\n }\n\n getUserLocalstorage(): Promise<User> {\n return Preferences.get({ key: 'user' }).then((val) => {\n return JSON.parse(val.value);\n });\n }\n\n public async setUserFamilyId(id) {\n\n await this.getUserLocalstorage().then(user => {\n this.isFamily = false;\n //console.log(`[AuthenticationService] MEMBER(${id})`, user);\n let s: string = user['name'];\n let fullname = s.split(',');\n this.user = new User(user['idUser'], '', /* fullname[0].replace(',','') */ user['name'], fullname[1], user['image']);\n this.user.familyUnit = id;\n this.setUserLocalstorage(this.user)\n })\n }\n\n getShowIntroLocalstorage(): Promise<any> {\n return Preferences.get({ key: 'showIntro' }).then((val) => {\n //console.log(`[AuthService] getShowIntroLocalstorage()`, val.value);\n return Boolean(val.value)\n });\n }\n\n async setShowIntroLocalstorage() {\n await Preferences.set({\n key: 'showIntro',\n value: 'true'\n });\n }\n\n setCanceledHealthConnectLocalstorage(mostrar: string) {\n localStorage.setItem('cancelHealthConnect', mostrar);\n }\n\n async setShowHealthConnectLocalstorage() {\n await Preferences.set({\n key: 'showHealthConnect',\n value: 'true'\n });\n }\n\n setTwoFactor(tfCenter){\n localStorage.setItem('two-factor-center', tfCenter);\n }\n\n async logout1(): Promise<void>{\n //console.log('logout');\n this.isAuthenticated.next(false);\n await Preferences.remove({ key: 'user' }).then((val) => { });\n this.tokenService.removeAuthToken()\n return\n }\n\n logout(allDevices?): Observable<any> {\n let path = 'patient/logout'\n //this.getAllTokenDevices()\n const tokens = this.tokenService.getAllTokenDevices();\n let params = {\n tokens: tokens, //\n allDevices: allDevices? allDevices: false\n }\n //console.log('logout', params );\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map( (res: any) => {\n //console.log(`[AuthenticationService] logout(${path}) res: `, JSON.stringify(res) );\n this.isAuthenticated.next(false);\n Preferences.remove({ key: this.user.familyUnit }).then((val) => { });\n Preferences.remove({ key: 'user' }).then((val) => { });\n this.tokenService.removeAuthToken()\n return res;\n })\n );\n }\n\n increaseNumloginFailed(){\n let numFailLogin = 0\n let num = localStorage.getItem('num-fail-login');\n if(num){\n let numFailLogin = Number(JSON.parse(num)) + 1\n localStorage.setItem('num-fail-login',''+numFailLogin);\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n }else{\n localStorage.setItem('num-fail-login','1');\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n numFailLogin = 1\n }\n //console.log('[AuthenticationService] increaseNumloginFailed()', numFailLogin);\n }\n\n increaseNumFPAIOFailed(){\n let num = localStorage.getItem('num-fail-finger-print');\n if(num){\n localStorage.setItem('num-fail-login',''+(Number(JSON.parse(num)) + 1));\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n }else{\n localStorage.setItem('num-fail-login','1');\n localStorage.setItem('login_request_locked_at',''+(new Date().getTime()));\n }\n }\n\n getNumloginFailed(){\n let num = localStorage.getItem('num-fail-login');\n if(num) return Number(JSON.parse(num))\n return 0\n }\n\n getDateloginFailed(){\n let num = localStorage.getItem('login_request_locked_at');\n if(num) return Number(JSON.parse(num))\n return 0\n }\n\n getNumFingerPrinterFailed(){\n let num = localStorage.getItem('num-fail-finger-print');\n if(num) return Number(JSON.parse(num))\n return 0\n }\n\n removeNumloginFailed(){\n localStorage.removeItem('num-fail-login');\n localStorage.removeItem('login_request_locked_at');\n }\n\n removeNumFirgerPFailed(){\n localStorage.removeItem('num-fail-finger-print');\n localStorage.removeItem('login_request_locked_at');\n }\n\n get(endpt): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n return res;\n })\n );\n\n }\n\n post(endpt, items): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.post(endpoint, items).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n throwError(error: any) {\n\n if (error instanceof HttpErrorResponse)\n throw new HttpErrorResponse(error);\n else\n throw new Error(error);\n }\n\n\n public registerDevice(token, platform) {\n\n if(platform == 'FCM')\n platform = 'android';\n if(platform == 'APNS')\n platform = this.endpoints._ENVIROMENT.device_ios.ios_push;\n if(platform == 'ios')\n platform = this.endpoints._ENVIROMENT.device_ios.ios_push;\n\n const postData = {\n token: token,\n platform: platform,\n version: 1\n };\n\n // //console.log(\"postData: \", postData);\n\n return this.post('user/device/register', postData).subscribe(\n async (data) => {\n let response=data;\n // //console.log(\"response user/device/register\");\n ////console.log(response);\n this.tokenService.saveAllTokenDevices(postData)\n //this.saveAllTokenDevices(postData)\n return response;\n },\n (error) => {\n // Called when error\n //console.log('error user/device/register: ', error);\n throw error;\n });\n }\n\n // saveAllTokenDevices(token){\n // this.tokens.push(token)\n // //console.log(`[AuthService] saveAllTokenDevices()`, this.tokens);\n // localStorage.setItem(TOKENS,JSON.stringify(this.tokens))\n // }\n\n // getAllTokenDevices(){\n // let list = JSON.parse(localStorage.getItem(TOKENS))\n // //console.log(`[AuthService] getAllTokenDevices()`, list);\n // this.tokens = list? list:[]\n // }\n\n\n async showIntro() {\n return Preferences.get({ key: INTRO_KEY }).then(async (data) => {\n let showIntro = Boolean(data.value)\n //console.log(`[AuthService] showIntro()`, showIntro);\n return showIntro;\n\n })\n\n }\n\n getShowHealthConnectLocalstorage(): Promise<any> {\n return Preferences.get({ key: 'showHealthConnect' }).then((val) => {\n return Boolean(val.value)\n });\n }\n\n\n postAPIbiometric(params: Object): Observable<any> {\n let path = `user/biometric`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] postAPIbiometric(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIbiometric(id: any, params: Object): Observable<any> {\n let path = `user/biometric/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] putAPIbiometric(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIbiometric(id: Object): Observable<any> {\n let path = `user/biometric/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //console.log(`[DooleService] deleteAPIbiometric(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n redirectLogin(){\n this.router.navigateByUrl('/landing');\n }\n\n\n async redirectUnauthenticated() {\n\n const translateService = this.injector.get(TranslateService)\n\n const alert = await this.alertController.create({\n cssClass: \"alertClass\",\n header: translateService.instant('info.title'),\n backdropDismiss:false,\n // subHeader: 'Subtitle',\n message: translateService.instant('landing.login_again'),\n buttons: [\n {text: translateService.instant('button.accept'),\n handler: () => {\n this.router.navigateByUrl(`/landing`);\n }\n }\n ]\n });\n\n await alert.present();\n }\n\n getShowGoogleFitLocalstorage(): Promise<any> {\n return Preferences.get({ key: 'showGoogleFit' }).then((val) => {\n return Boolean(val.value)\n });\n }\n \n async setShowGoogleFitLocalstorage() {\n await Preferences.set({\n key: 'showGoogleFit',\n value: 'true'\n });\n }\n setCanceledGoogleFitLocalstorage(mostrar: string) {\n localStorage.setItem('cancelGoogleFit', mostrar);\n }\n\n getCanceledGoogleFitLocalstorage():boolean {\n const value = localStorage.getItem('cancelGoogleFit')\n return value !== null ? JSON.parse(value) : false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams, HttpBackend } from '@angular/common/http';\nimport { Observable, throwError, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { AuthenticationService } from './authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HttpService {\n private httpWithoutInterceptor: HttpClient;\n\n constructor(\n private http: HttpClient,\n private httpBackend: HttpBackend,\n private authService: AuthenticationService,\n ) {\n this.httpWithoutInterceptor = new HttpClient(httpBackend);\n }\n\n private async formatErrors(error: any) {\n return error;\n }\n\n get(path: string, params: HttpParams = new HttpParams()): Observable<any> {\n let user = this.authService?.user\n params = (user?.familyUnit) ? params.append('user', user?.familyUnit) : params\n return this.http.get(`${path}`, { params })\n .pipe(catchError(this.formatErrors));\n }\n\n put(path: string, body: Object = {}, options: Object = {}): Observable<any> {\n\n let httpOptions = this.setHttpOptions(options);\n ////console.log(\"url: \", path);\n ////console.log(\"body: \", body);\n return this.http.put(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n postform(path: string, body: Object = {}, options: Object = {}): Observable<any> {\n let user = this.authService?.user\n if (user?.familyUnit !== null)\n body['user'] = user?.familyUnit;\n\n let httpOptions = this.setHttpOptions(options);\n ////console.log(\"url: \", path);\n ////console.log(\"body: \", body);\n\n return this.http.post(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n\n post(path: string, body: Object = {}, options: Object = {}, formData?): Observable<any> {\n let user = this.authService?.user\n if (user?.familyUnit !== undefined && user?.familyUnit !== null)\n body['user'] = user?.familyUnit;\n\n let httpOptions = this.setHttpOptions(options,formData);\n ////console.log(\"url: \", path);\n ////console.log(\"body: \", body);\n\n return this.http.post(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n postForm(path: string, body: Object = {}, options: Object = {}, formData?): Observable<any> {\n\n let user = this.authService?.user\n if (user?.familyUnit !== null)\n body['user'] = user?.familyUnit;\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Accept': 'application/json'\n })\n };\n\n //console.log(\"url: \", path);\n //console.log(\"body: \", body);\n\n return this.http.post(\n `${path}`,\n body,\n httpOptions\n ).pipe(catchError(this.formatErrors));\n }\n\n delete(path): Observable<any> {\n return this.http.delete(\n `${path}`\n ).pipe(catchError(this.formatErrors));\n }\n\n _get(path: string, params: HttpParams = new HttpParams()): Observable<any> {\n return this.httpWithoutInterceptor.get(`${path}`, { params })\n .pipe(catchError(this.formatErrors));\n }\n\n _put(path: string, body: Object = {}): Observable<any> {\n return this.httpWithoutInterceptor.put(\n `${path}`,\n JSON.stringify(body)\n ).pipe(catchError(this.formatErrors));\n }\n\n _post(path: string, body: Object = {}, options: Object = {}): Observable<any> {\n\n let httpOptions = this.setHttpOptions(options);\n let params = this.setHttpParams(body);\n\n\n return this.httpWithoutInterceptor.post(\n `${path}`,\n JSON.stringify(body),\n httpOptions\n ).pipe(catchError(error => this.formatErrors(error)));\n }\n\n _delete(path): Observable<any> {\n return this.httpWithoutInterceptor.delete(\n `${path}`\n ).pipe(catchError(this.formatErrors));\n }\n\n setHttpParams(body) {\n let params = new HttpParams();\n\n if (body != null)\n for (let key in body)\n params = params.append(key, body[key]);\n\n return params;\n }\n\n setHttpOptions(options, formData?) {\n\n //console.log('** options', options);\n\n if(formData){\n const httpOptions = {\n headers: new HttpHeaders({\n 'Accept': 'application/json'\n })\n };\n\n return httpOptions;\n }else if(Object.keys(options).length > 0){\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type':'application/json',\n 'Accept': 'application/json',\n options\n })\n };\n\n return httpOptions;\n }else{\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type':'application/json',\n 'Accept': 'application/json',\n })\n };\n\n return httpOptions;\n }\n\n }\n}","import {Injectable} from '@angular/core';\nimport {Subject, Subscription} from 'rxjs';\n\n/**\n * A custom Events service just like Ionic 3 Events https://ionicframework.com/docs/v3/api/util/Events/ which got removed in Ionic 5.\n *\n * @author Shashank Agrawal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class Events {\n\n private channels: { [key: string]: Subject<any>; } = {};\n\n /**\n * Subscribe to a topic and provide a single handler/observer.\n * @param topic The name of the topic to subscribe to.\n * @param observer The observer or callback function to listen when changes are published.\n *\n * @returns Subscription from which you can unsubscribe to release memory resources and to prevent memory leak.\n */\n subscribe(topic: string, observer: (_: any) => void): Subscription {\n //console.log(\"subscribe topic: \", topic);\n if (!this.channels[topic]) {\n // You can also use ReplaySubject with one concequence\n this.channels[topic] = new Subject<any>();\n }\n\n return this.channels[topic].subscribe(observer);\n }\n\n /**\n * Publish some data to the subscribers of the given topic.\n * @param topic The name of the topic to emit data to.\n * @param data data in any format to pass on.\n */\n publish(topic: string, data?: any): void {\n const subject = this.channels[topic];\n if (!subject) {\n // Or you can create a new subject for future subscribers\n return;\n }\n\n subject.next(data);\n }\n\n /**\n * When you are sure that you are done with the topic and the subscribers no longer needs to listen to a particular topic, you can\n * destroy the observable of the topic using this method.\n * @param topic The name of the topic to destroy.\n */\n destroy(topic: string) {\n const subject = this.channels[topic];\n if (!subject) {\n return null;\n }\n\n subject.complete();\n delete this.channels[topic];\n }\n}","import { Injectable } from '@angular/core';\nimport { ApiEndpointsService } from './api-endpoints.service';\nimport { Events } from './events.service';\nimport { HttpService } from './http.service';\nimport { Observable, of, throwError, TimeoutError } from 'rxjs';\nimport { AlertController, Platform } from '@ionic/angular';\nimport { Capacitor } from '@capacitor/core';\nimport { catchError, delay, filter, map, mergeMap } from 'rxjs/operators';\nimport { HealthCard } from '../models/user';\nimport { Router } from '@angular/router';\nimport { HttpHeaders, HttpParams } from '@angular/common/http';\nimport { QueryStringParameters } from '../utils/query-string-parameters';\nimport { ShellChatModel, ShellMessageModel, ShellRecipientModel } from '../utils/chatParameters';\nimport { AuthenticationService } from './authentication.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { File } from '@awesome-cordova-plugins/file/ngx';\nimport { FileTransfer, FileUploadOptions, FileTransferObject } from '@awesome-cordova-plugins/file-transfer/ngx';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DooleService {\n pushNotification: any;\n constructor(\n private authService: AuthenticationService,\n private transfer: FileTransfer,\n private file: File,\n private http: HttpService,\n private api: ApiEndpointsService,\n public events: Events,\n private platform: Platform,\n public router: Router,\n public alertController: AlertController,\n public translate: TranslateService) { }\n\n public selectedDate: Date;\n\n transformYouTubeUrl(url: string): string {\n if (!url) return url;\n\n // Regular expression to match various YouTube URL formats\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n\n if (match && match[2].length === 11) {\n const videoId = match[2];\n // Use the proxy solution to avoid Error 153 in iOS Capacitor apps\n return this.api.getEndpointNoApi('youtube') + '?videoId=' + videoId;\n }\n\n return url;\n }\n\n replaceYouTubeIframes(html: string): string {\n if (!html) return html;\n\n // Regex to find iframes with YouTube embed URLs\n const iframeRegex = /<iframe[^>]*src=\"([^\"]*youtube\\.com\\/embed\\/([^\"?#]+)[^\"]*)\"[^>]*><\\/iframe>/gi;\n\n return html.replace(iframeRegex, (match, fullUrl, videoId) => {\n const proxyUrl = this.transformYouTubeUrl(fullUrl);\n return match.replace(fullUrl, proxyUrl);\n });\n }\n\n uploadFile(image: string, id?: string) {\n\n ////console.log(\"uploading \", image);\n const token = localStorage.getItem('token');\n let options: FileUploadOptions = {\n fileKey: 'file',\n fileName: 'name.jpg',\n\n headers: {\n 'Authorization': 'Bearer ' + token,\n 'Accept': 'application/json',\n },\n params: {\n id: id\n }\n }\n\n const fileTransfer: FileTransferObject = this.transfer.create();\n // Add files for new or saved diagnostics. \n // uses diagnostic/media when diagnostic is new \n //const endpoint = id ? this.api.getEndpoint('diagnostic/media'):this.api.getEndpoint('media/upload/temp') ;\n const endpoint = this.api.getEndpoint('media/upload/temp');\n //console.log(\"* uploadFile endpoint\", endpoint);\n\n return new Promise(function (resolve, reject) {\n fileTransfer.upload(image, endpoint, options).then(data => {\n //console.log(data);\n resolve(JSON.parse(data.response));\n }, (err) => {\n //console.log(err);\n reject(err);\n })\n })\n\n }\n\n\n postAPIAddMedia(params: Object){\n const endpoint = this.api.getEndpoint('media/add');\n \n return this.http.postForm(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] postAPIAddMedia(${endpoint}) res: `, res);\n return res;\n })\n );\n }\n\n uploadFileToModel(image: string, name: string, params: any) {\n //console.log(\"uploading \", image);\n const token = localStorage.getItem('token');\n let options: FileUploadOptions = {\n fileKey: 'file',\n fileName: name,\n headers: {\n 'Authorization': 'Bearer ' + token,\n 'Accept': 'application/json',\n },\n params\n }\n\n const fileTransfer: FileTransferObject = this.transfer.create();\n const endpoint = this.api.getEndpoint('media/add');\n return new Promise(function (resolve, reject) {\n fileTransfer.upload(image, endpoint, options).then(data => {\n //console.log(JSON.parse(data.response));\n resolve(JSON.parse(data.response));\n }, (err) => {\n reject(err);\n })\n })\n\n }\n\n uploadMessageImage(idMessageHeader, idUserTo, message, fileUrl, id_usuari_amiq) {\n\n const token = localStorage.getItem('token');\n\n let options: FileUploadOptions = {\n fileKey: 'file',\n fileName: 'name.pdf', //TODO: 'name.jpg'\n headers: {\n 'Authorization': 'Bearer ' + token,\n 'Accept': 'application/json',\n },\n params: {\n idUser: id_usuari_amiq,\n secret: token,\n value: \"\",\n id: idMessageHeader\n }\n }\n //console.log(\"options: \", options);\n\n const fileTransfer: FileTransferObject = this.transfer.create();\n\n fileTransfer.onProgress((progressEvent) => {\n if (progressEvent.lengthComputable) {\n var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100);\n this.events.publish(\"uploadMessageImage\", { fileUrl, perc });\n } else {\n //console.log(\"progressEvent - \", progressEvent);\n }\n });\n\n const endpoint = this.api.getEndpoint('message');\n\n return new Promise(function (resolve, reject) {\n fileTransfer.upload(fileUrl, endpoint, options)\n .then(data => {\n //console.log(\"success fileTransfer.upload\", JSON.parse(data.response));\n resolve(JSON.parse(data.response));\n }, (err) => {\n //console.log(\"** error ** fileTransfer.upload: \", err);\n reject(fileTransfer.upload);\n })\n })\n\n }\n\n\n b64toBlob(b64Data, contentType = '', sliceSize = 512) {\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays, { type: contentType });\n return blob;\n }\n\n \n deleteFile(id): Observable<any> {\n let path = `media/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteFile(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n showAlert(message: string) {\n\n return this.alertController.create({\n cssClass: 'my-alert-class',\n //mode: 'ios',\n header: 'Info',\n message: message,\n backdropDismiss: false,\n buttons: [\n {\n text: 'Aceptar',\n role: 'confirm',\n cssClass: 'onlyButton',\n handler: (blah) => {\n ////console.log('[LandingPage] AlertConfirm Cancel');\n }\n }\n ]\n });\n\n }\n\n async showAlertAndReturn(header: string, message: string, isDismiss?: boolean, route?: string) {\n //console.log(`[DooleService] showAlertAndReturn()`);\n let dismiss = (isDismiss !== undefined) ? isDismiss : false\n const alert = await this.alertController.create({\n cssClass: 'my-alert-class',\n //mode: 'ios',\n header: header,\n message: message,\n backdropDismiss: dismiss,\n buttons: [\n {\n text: 'Aceptar',\n handler: (blah) => {\n //console.log('Confirm OK: blah');\n if (route !== undefined && route !== null)\n this.router.navigateByUrl(route);\n }\n }\n ]\n });\n await alert.present();\n }\n\n async presentAlert(message, button?: string) {\n let buttonName = (button !== undefined) ? button : this.translate.instant('landing.accept-btn');\n const alert = await this.alertController.create({\n cssClass: 'my-alert-class',\n //mode: 'ios',\n message: message,\n buttons: [\n {\n text: buttonName,\n role: 'confirm',\n cssClass: 'onlyButton',\n handler: (blah) => {\n ////console.log('[LandingPage] AlertConfirm Cancel');\n }\n }\n ]\n });\n await alert.present();\n }\n\n getFamilyUnitID(): HttpParams {\n let httpParams = new HttpParams();\n let user = this.authService?.user\n return httpParams = (user.familyUnit) ? httpParams.append('user', user.familyUnit) : httpParams\n }\n\n getAPILegalAndPolicy(): Observable<any> {\n let path = 'center/legal-term-and-privacy-policy/last';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPILegalAndPolicy(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPILegalInformation(): Observable<any> {\n let path = 'user/legalTerm/lastAccepted';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPILegalInformation(${path}) res: `, res);\n return res;\n })\n )\n }\n postAPILegalConfirmation(params: Object): Observable<any> {\n let path = 'user/legalTerm/lastAccepted';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIConfirmationLegal(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIRejectLegalConfirmation(params: Object): Observable<any> {\n let path = 'user/legalTerm/lastDeclined';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIConfirmationLegal(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIpasswordRecovery(params: Object): Observable<any> {\n let path = 'patient/forgot'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIpasswordRecovery(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getPatientData(params: Object): Observable<any> {\n let path = 'patient/data'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIpasswordRecovery(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIStaffSlots(params: { id: number, date: string }) {\n\n let path = `staff/${params.id}/availability`;\n let endpoint: string;\n if (params.date !== \"\") {\n endpoint = this.api.getEndpointWithParameters(path, (qs: QueryStringParameters) => qs.push('date', params.date));\n } else {\n endpoint = this.api.getEndpoint(path);\n }\n\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIStaffSlots(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIgoals(): Observable<any> {\n let path = 'user/element/goals'\n //let path = 'user/goals/elements'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIvideocall(id:string): Observable<any>{\n let path = 'user/agenda/'+id+'/videocallSession'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIvideocall(${path}) res: `, res);\n return res;\n })\n )\n }\n\n\n postAPIPendingConnect(): Observable<any>{\n let path = 'user/videocall/pendingConnect'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIPendingConnect(${path}) res: `, res);\n return res;\n })\n )\n }\n\n/* getAPIinformationUser(): Observable<any>{\n\n let path = 'user/informationUser'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n } */\n \n updateAPIImageuser(params: Object): Observable<any> {\n let path = `user/image`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIImageuser(): Observable<any> {\n let path = `user/image`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIinformationSummary(params: Object){\n let path = 'home'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n mergeMap((v) => v instanceof TimeoutError ? throwError(v) : of(v)) \n );\n }\n getAPIinformationSummaryOld(params: Object){\n let path = 'home'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map(res => res) \n );\n }\n\n\n getAPIuserProfile(): Observable<any> {\n let path = 'v2/user/profile'\n //let httpParams = this.getFamilyUnitID()\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n }\n\n postAPIChangePassword(params: Object): Observable<any> {\n let path = 'user/changePassword';\n let httpParams = this.getFamilyUnitID()\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIChangePassword(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPInotificationConfigurations(): Observable<any> {\n let path = 'user/configuration'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPInotificationConfigurations(${path}) res: `, res);\n return res;\n })\n )\n }\n\n postAPIConfiguration(params: Object): Observable<any> {\n let path = 'user/configuration';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIConfiguration(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIlanguagesCenter(): Observable<any> {\n let path = 'center/languages'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlanguagesCenter(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIFaqs(): Observable<any> {\n let path = 'center/faq'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIhomeInitial(${path}) res: `, res);\n return res;\n })\n )\n }\n\n getAPIFamilyUnit(): Observable<any> {\n let path = 'user/familyUnit';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIFamilyUnit(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPIFamilyUnit2(): Observable<any> {\n let path = 'v2/user/familyUnit';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIFamilyUnit(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIReportProblem(params: Object): Observable<any> {\n let path = 'user/reportProblem'; // 'media/upload/temp' \n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIReportProblem(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIemailVerification(params: Object): Observable<any> {\n let path = 'user/email_verification';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIemailVerification(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPICodeByEmail(): Observable<any> {\n let path = 'user/resendTwoFactorCode';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPICodeByEmail(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIcodeVerification(params: Object): Observable<any> {\n let path = 'user/verifyTwoFactor';\n //let path = 'user/codeVerification'; \n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIcodeVerification(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n\n getAPIhealthCardTypes(): Observable<any> {\n let path = 'center/healthCardTypes';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIhealthCardTypes(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIhealthCards(): Observable<any> {\n let path = 'user/healthcards';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPhealthCards(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIhealthCardId(id): Observable<any> {\n let path = `user/healthcard/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIhealthCard(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIhealthCards(params: Object): Observable<any> {\n let path = 'user/healthcard';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIReportProblem(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIhealthCard(params: HealthCard): Observable<any> {\n let path = `user/healthcard/${params.id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] putAPIhealthCard(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIhealthCard(params: HealthCard): Observable<any> {\n let path = `user/healthcard/${params.id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIhealthCard(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n getAPISocialRelationType(): Observable<any> {\n let path = 'center/socialRelationType';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPISocialRelationType(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIemergencyContact(): Observable<any> {\n let path = 'user/EmergencyContacts';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIemergencyContact(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIemergencyContactID(id: any): Observable<any> {\n let path = `user/EmergencyContact/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIemergencyContact(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIemergencyContact(params: Object): Observable<any> {\n let path = 'user/EmergencyContact';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIemergencyContact(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIemergencyContact(id: any, params: Object): Observable<any> {\n let path = `user/EmergencyContact/${id}`;\n ////console.log('[DooleService] putAPIemergencyContact()', params);\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] putAPIemergencyContact(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIemergencyContact(id: any): Observable<any> {\n let path = `user/EmergencyContact/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIemergencyContact(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n\n getAPIaboutUs(): Observable<any> {\n let path = 'center/about';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIaboutUs(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIappointmentAgenda(): Observable<any>{\n let path = 'user/agenda';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIappointmentAgenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n //documents-Tracking\n getAPIdiagnosticTests(): Observable<any> {\n let path = 'user/diagnosticTests';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdiagnosticTests(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdiagnosticTestsLast(): Observable<any> {\n let path = 'user/diagnosticTests/last-done';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdiagnosticTests(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdiagnosticTestTypesAvailable(): Observable<any> {\n let path = 'diagnosticTestTypes/available';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdiagnosticTestTypesAvailable(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdiagnosticTestID(id: Object): Observable<any> {\n let path = 'v2/user/diagnosticTest/' + id;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdiagnosticTestID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIdiagnosticTest(params: Object): Observable<any> {\n let path = 'v2/user/diagnosticTests/';\n const endpoint = this.api.getEndpoint(path);\n ////console.log(\"POST: \",params);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIdiagnosticTest(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIdiagnosticTest(id, params: any): Observable<any> {\n let path = `user/diagnosticTest/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] putAPIdiagnosticTest(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIdiagnosticTest(id): Observable<any> {\n let path = `user/diagnosticTest/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIdiagnosticTest(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n\n })\n );\n }\n\n getAPIfilteredDiagnosticTest(params: any): Observable<any> {\n let path = 'user/diagnosticTests';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams();\n // Begin assigning parameters\n if (params !== undefined) {\n httpParams = (params.start_date) ? httpParams.append('from_date', params.start_date) : httpParams\n httpParams = (params.end_date) ? httpParams.append('to_date', params.end_date) : httpParams\n if (params.diagnosticTestTypes) {\n params.diagnosticTestTypes.forEach(element => {\n httpParams = httpParams.append('diagnostic_test_type_id[]', element)\n });\n }\n }\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIfilteredDiagnosticTest(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIformPending(params): Observable<any> {\n let path = 'forms/pending/user';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIformPending(${path}) res: `, res);\n return res;\n })\n );\n }\n \n //forms-Tracking\n getAPISharedcareFormList(patient){\n let path = `/rehabilify/sharedcareplan/monitoring/${patient}`; \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n\n\n getAPIformLists(): Observable<any> {\n let path = 'forms/user';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIformLists(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIFormJSON(form, params?): Observable<any> {\n let path = `form/${form}/formFields`;\n let httpParams = new HttpParams();\n httpParams = (params?.formAnswer) ? httpParams.append('formAnswer', params?.formAnswer) : httpParams\n httpParams = (params?.game_play_id) ? httpParams.append('game_play_id', params?.game_play_id) : httpParams\n httpParams = (params?.started_app) ? httpParams.append('started_app', params?.started_app) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIFormJSON(form, params): Observable<any> {\n let path = `formfield/conditional/${form}/field/${params.formField}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIFormFill(params): Observable<any> {\n let path = `form/fill/`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n //graphics-Tracking\n\n getAPIelementsList(filter?): Observable<any> {\n let path = 'user/elements' /* 'user/elementsList/v2' */\n let httpParams = new HttpParams();\n httpParams = (filter?.only_with_values)? httpParams.append('only_with_values', filter?.only_with_values): httpParams\n httpParams = (filter?.grouped)? httpParams.append('grouped', filter?.grouped) : httpParams\n httpParams = (filter?.filter)? httpParams.append('filter', filter?.filter) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIelementsList(${path}) res: `, res);\n return res;\n })\n );\n }\n \n /** get elements with query by parameter date */\n getAPIelementsListByDate(params: any): Observable<any> {\n let path = 'user/elementsList/v2' /* 'user/elementsList' */\n let httpParams = new HttpParams();\n if(params.filter == '1') httpParams = httpParams.append('filter', '1')\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsListByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementsByGroup(filter?): Observable<any> {\n let path = 'center/elementGroup/elements'\n let httpParams = new HttpParams();\n if(filter == '1' || filter == '0') httpParams = httpParams.append('filter', filter)\n else httpParams = httpParams.append('filter', '1')\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsListByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIaddElement(id, params: Object): Observable<any> {\n let path = 'user/element/' + id + '/value/add'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIaddElement(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIgraphicsElement(id: Object, query): Observable<any> {\n let path = 'user/element/' + id;\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('interval', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgraphicsElement(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementID(id: Object, params?): Observable<any> {\n let path = `v2/user/element/${id}`;\n let httpParams = new HttpParams();\n httpParams = (params?.interval) ? httpParams.append('interval', params?.interval) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n httpParams = (params?.version) ? httpParams.append('version', params?.version) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgraphicsElement(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementAvailableID(id: Object): Observable<any> {\n let path = `element/available/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementAvailableID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIcategory(): Observable<any> {\n let path = 'user/element_category';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIcategory(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementGroupID(id: Object, filter?): Observable<any> {\n let path = `center/elementGroup/${id}/elements`;\n let httpParams = new HttpParams();\n httpParams = (filter) ? httpParams.append('filter', filter) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementGroupID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n searchAPIelementGroup(params?: any): Observable<any> {\n let path = 'center/elementGroups'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] searchAPIelementGroup(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIelementGroup(params?: any): Observable<any> {\n let path = 'center/elementGroups'\n let httpParams = new HttpParams();\n httpParams = (params?.filter) ? httpParams.append('filter', params?.filter) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementGroup(${path}) res: `, res);\n return res;\n })\n );\n }\n /** get diets with query by parameter date */\n getAPIlistDietsByDate(params?: Object): Observable<any> {\n let path = 'user/diets';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlistDietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIListRecipe(params): Observable<any> {\n let path = `user/diets/receipts`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime)\n .set('from_date', params.from_date)\n .set('to_date', params.to_date);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n\n /*getAPIdietsByDate(date: any): Observable<any> {\n let path = `user/dietaryIntakes`\n let httpParams = new HttpParams();\n httpParams = (date) ? httpParams.append('date', date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }*/\n\n getAPIdietsByDate(params: any): Observable<any> {\n let path = `user/dietaryIntakes`\n let httpParams = new HttpParams();\n httpParams = (params?.date) ? httpParams.append('date', params.date) : httpParams\n httpParams = (params?.grouped_by_times) ? httpParams.append('grouped_by_times', params.grouped_by_times) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIFormsByDate(params: any): Observable<any> {\n let path = `rehabilify/sharedcareplan/forms`;\n let httpParams = new HttpParams();\n httpParams = (params?.date) ? httpParams.append('date', params.date) : httpParams\n httpParams = (params?.grouped_by_times) ? httpParams.append('grouped_by_times', params.grouped_by_times) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdietsByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n \n\n getAPIdetailDiets(id: any): Observable<any> {\n let path = `diet/${id}`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('interactions', 1);\n\n return this.http.get(endpoint, httpParams ).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailDiets(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdetailRecipe(id: any): Observable<any> {\n let path = `diet/receipt/${id}`;\n let httpParams = new HttpParams()\n .set('interactions', 1);\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIlistTestimonials(params): Observable<any> {\n let path = `user/testimonials`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n \n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdetailTestimonial(id, params): Observable<any> {\n let path = `user/testimony/${id}`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime)\n .set('interactions', 1);\n \n \n return this.http.get(endpoint,httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\n })\n );\n }\n \n\n /** get advices **/\n getAPIlistAdvices(params): Observable<any> {\n let path = 'user/advices';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlistAdvices(${path}) res: `, res);\n return res;\n })\n );\n }\n\n \n /** get news **/\n getAPIlistNews(params): Observable<any> {\n let path = 'user/news';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIlistNews(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdetailNew(id: any): Observable<any> {\n let path = `user/new/${id}`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n .set('interactions', 1);\n\n return this.http.get(endpoint, httpParams ).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdetailNew(${path}) res: `, res);\n return res;\n })\n );\n } \n\n getAPIdetailAdvices(id: any): Observable<any> {\n let path = `advice/${id}`;\n const endpoint = this.api.getEndpoint(path);\n \n let httpParams = new HttpParams()\n .set('interactions', 1);\n\n return this.http.get(endpoint, httpParams ).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n\n getAPISearchNews(query: any,params): Observable<any> {\n let path = 'news';\n let httpParams = new HttpParams()\n .set('tags', params.tags)\n .set('interactions', params.interactions)\n .set('readingTime', params.readingTime);\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPISearchNews(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPISearchAdvices(query: any): Observable<any> {\n let path = 'advices';\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPISearchAdvices(${path}) res: `, res);\n return res;\n })\n );\n }\n \n getAPIdrugsList(query: any): Observable<any> {\n let path = `drugIntake/list`;\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdrugsList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n \n getAPIdrugsListInteraction(query: any): Observable<any> {\n const endpoint = `https://n6ibaazevnsixfcs4prl7z7wra0oonma.lambda-url.eu-central-1.on.aws/`;\n // const endpoint = `https://n6ibaazevnsixfcs4prl7z7wra0oonma.lambda-url.eu-central-1.on.aws/?drug=DB01363`;\n //let httpParams = new HttpParams().set('drug', query);\n let httpParams = new HttpParams()\n .set('drug', query)\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n\n getAPIdrugIntakeByDate(params: Object): Observable<any> {\n let path = 'user/drugIntake/date';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIdrugIntakeByDate(${path}) res: `, res);\n return res;\n\n })\n );\n }\n// send medication list\n getAPImedicationList(query: any): Observable<any> {\n let path = `sendmedication/list`;\n let httpParams = new HttpParams();\n httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPImedicationList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIdirectionsList(): Observable<any> {\n let path = `user/addresses`;\n // let httpParams = new HttpParams();\n // httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdirectionList(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPImedicationsList(): Observable<any> {\n let path = `sendmedication/list`;\n // let httpParams = new HttpParams();\n // httpParams = (query) ? httpParams.append('search', query) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIdirectionList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIsendDirection(params: Object): Observable<any> {\n let path = 'user/address';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIsendDirection(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIsendDirection(id: any, params: Object): Observable<any> {\n let path = `user/address/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIsendDirection(id: Object): Observable<any> {\n let path = `user/address/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPImedicationPlan(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n postAPImedicationSendPetition(params: Object): Observable<any> {\n let path = 'sendmedication';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIsendDirection(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIdrugIntake(params: Object): Observable<any> {\n let path = 'user/drugIntake';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIchangeStatedrugIntake(id: Object, state: Object): Observable<any> {\n let path = `user/drugIntake/${id}/set/${state}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPImedicationPlan(params: Object): Observable<any> {\n let path = `user/medicationPlan`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPImedicationPlan(id: any, params: Object): Observable<any> {\n let path = `user/medicationPlan/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPImedicationPlan(id: Object): Observable<any> {\n let path = `user/medicationPlan/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPImedicationPlan(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n getAPImedicationPlan(id): Observable<any> {\n let path = `user/medicationPlan/${id}`\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPImedicationPlan(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPImedicationPlans(params?): Observable<any> {\n let path = `user/medicationPlans`\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPImedicationPlan(${path}) res: `, res);\n return res;\n })\n );\n }\n//todos los medicamentos asignados a esa persona\n getAPImedicationAlls(): Observable<any> {\n let path = `user/medicationPlans` \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPImedicationPlan(${path}) res: `, res);\n return res;\n })\n );\n }\n\n// activatePendingMedicationPlans\n getAPIPendingMedicationPlans(params?): Observable<any> {\n let path = `user/pending/medicationPlans`\n let httpParams = new HttpParams();\n httpParams = (params?.onlyCount === 1 || params?.onlyCount === 0) ? httpParams.append('onlyCount', params?.onlyCount) : httpParams\n httpParams = (params?.onlyCount === undefined) ? httpParams.append('onlyCount', '0') : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIPendingMedicationPlans(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIFrequenciesMedicationPlansHPC(params?): Observable<any> {\n let path = `hpc/medicationPlan/frequencies`\n let httpParams = new HttpParams();\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIFrequenciesMedicationPlansHPC(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIDrugUnits(id, search?): Observable<any> {\n let path = `drug/${id}/units`\n let httpParams = new HttpParams();\n httpParams = search ? httpParams.append('search', search) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIDrugUnits(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIDiagnostic(params): Observable<any> {\n let path = 'user/diagnostics'//'v2/diagnostic/user';\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPICenterAllergies(search?): Observable<any> {\n let path = 'center/allergies';\n let httpParams = new HttpParams();\n httpParams = (search) ? httpParams.append('search', search) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIAllergies(): Observable<any> {\n let path = 'user/allergies';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIAllergies(params: Object): Observable<any> {\n let path = `user/allergy/create`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n putAPIAllergy(id: any, params: Object): Observable<any> {\n let path = `user/allergy/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIAllergy(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n deleteAPIAllergy(id: Object): Observable<any> {\n let path = `user/allergy/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] deleteAPIAllergy(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n getAPIgames(): Observable<any> {\n let path = 'user/games';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n /** get games with query by parameter date */\n getAPIgamesByDate(from_date: any, to_date: any): Observable<any> {\n let path = 'user/gamePlays/scheduled';\n let httpParams = new HttpParams();\n httpParams = (from_date) ? httpParams.append('from_date', from_date) : httpParams\n httpParams = (to_date) ? httpParams.append('to_date', to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPIgameId(id): Observable<any> {\n let path = `user/game/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgameId(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIagenda(): Observable<any> {\n let path = 'user/agenda';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIagenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n //reminders\n //user/reminder \n\n getAPIallAgenda(params?): Observable<any>{\n let path = 'user/agenda/v2';\n let httpParams = new HttpParams();\n httpParams = params?.from_date? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = params?.to_date? httpParams.append('to_date', params?.to_date) : httpParams\n httpParams = params?.filter_by_date? httpParams.append('filter_by_date', params?.filter_by_date) : httpParams\n httpParams = (params?.with_medical_procedures != undefined)? httpParams.append('with_medical_procedures', params?.with_medical_procedures) : httpParams\n httpParams = (params?.order != undefined)? httpParams.append('order', params?.order) : httpParams\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIappointmentAgendaV2(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIagendaID(id): Observable<any> {\n let path = `user/agenda/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIaddAgenda(params: Object): Observable<any> {\n let path = 'user/agenda/'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIaddAgenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n deleteAPIaddAgenda(id: Object): Observable<any> {\n let params = { agenda: id }\n let path = 'user/agenda/delete'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPIaddAgenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n putAPIagenda(id: any, params: Object): Observable<any> {\n let path = `user/agenda/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] putAPIagenda(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIallowedContacts(): Observable<any> {\n let path = `user/allowedContacts`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams();\n httpParams = httpParams.append('withDepartments', '1') \n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIallowedContacts(${path}) res: `, res);\n let allowed = res.allowed\n if(res.allowed === undefined)\n allowed = []\n return allowed;\n\n })\n );\n }\n\n getAPIstaffId(id): Observable<any> {\n let path = `staff/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIstaffId(${path}) res: `, res);\n return res;\n })\n );\n }\n\n /** get games with query by parameter date */\n getAPIUserMessages(): Observable<ShellChatModel[]> {\n\n let path = 'message/user';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n\n ////console.log(`[DooleService] getAPIUserMessages(${path}) res: `, res);\n if(res.length == 0)\n return res\n return res.messages as ShellChatModel[];\n })\n );\n }\n // get the company details, a subset of the user data\n getUserSubsetData(): Observable<ShellChatModel> {\n let path = 'message/user';\n const endpoint = this.api.getEndpoint(path);\n\n const dataObservable = this.http.get(endpoint);\n\n return dataObservable.pipe(\n map((jsonResponse) => {\n const filteredData: ShellChatModel = {\n ...jsonResponse.messages\n };\n return filteredData;\n })\n );\n }\n/** Reminders */\n getAPIreminders(): Observable<any> {\n let path = 'user/reminder';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIreminderID(id): Observable<any> {\n let path = `user/reminder/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminderID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIaddReminder(params: Object): Observable<any> {\n let path = 'user/reminder/'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIaddReminder(${path}) res: `, res);\n return res;\n })\n );\n }\n\n deleteAPIReminder(id): Observable<any> {\n let path = `user/reminder/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.delete(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] deleteAPIReminder(${path}) res: ${res}`, JSON.stringify(res));\n return res;\n })\n );\n }\n\n updateAPIReminder(id: any, params: Object): Observable<any> {\n let path = `user/reminder/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n updateAPIuser(params: Object): Observable<any> {\n let path = `user`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.put(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] updateAPIReminder(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPIContentStatus(params: Object): Observable<any> {\n let path = 'content/status'\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPIuserRegister(params: Object): Observable<any> {\n let path = 'hpc/user/store';\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIsendRegister(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPITypeDocument(): Observable<any> {\n let path = 'center/documentTypes';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPITypeDocument(${path}) res: `, res);\n return res;\n })\n );\n }\n \n getAPImessage(id, params?): Observable<any> {\n let path = 'user/message/'+ id\n let httpParams = new HttpParams();\n httpParams = httpParams? httpParams.append('page', params) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIEvents(params): Observable<any> {\n let path = 'hpc/user/episodes';\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res; \n })\n );\n }\n\n postAPImedicalProcedures(params?: Object): Observable<any> {\n let path = `user/medicalProcedures`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPImedicalProcedures2(params?: any): Observable<any> {\n let path = `hpc/user/medicalProcedures`;\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams();\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.user) ? httpParams.append('user', params?.user) : httpParams\n return this.http.get(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n postAPINextMedicalProcedure(params?: Object): Observable<any> {\n let path = `user/medicalProcedure/next`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPImedicalProcedures(params: any): Observable<any> {\n let path = `hpc/user/medicalProcedure`;\n let httpParams = new HttpParams();\n httpParams = (params?.byEpisode === 0 || params?.byEpisode === 1) ? httpParams.append('byEpisode', params?.byEpisode) : httpParams\n httpParams = (params?.medical_procedure_id && params?.byEpisode === 0) ? httpParams.append('medical_procedure_id', params?.medical_procedure_id) : httpParams\n httpParams = (params?.episode_id && params?.byEpisode === 1) ? httpParams.append('episode_id', params?.episode_id) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIpreexistingConditions(params?): Observable<any> {\n let path = 'user/preexistingConditions'\n let httpParams = new HttpParams();\n httpParams = (params?.onDate === 0 || params?.onDate === 1) ? httpParams.append('onDate', params?.onDate) : httpParams\n httpParams = (params?.from_date) ? httpParams.append('from_date', params?.from_date) : httpParams\n httpParams = (params?.to_date) ? httpParams.append('to_date', params?.to_date) : httpParams\n //httpParams = (params?.preexistingConditionTypes) ? httpParams.append('preexistingConditionTypes[]', params?.preexistingConditionTypes) : httpParams\n if (params?.preexistingConditionTypes && params?.preexistingConditionTypes?.length) {\n params.preexistingConditionTypes.forEach(element => {\n httpParams = httpParams.append('preexistingConditionTypes[]', element)\n });\n }\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIelementsList(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIpreexistingConditionsType(): Observable<any> {\n let path = 'center/preexistingConditionTypes'\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIpreexistingConditionsType(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPINotificationsCount(): Observable<any> {\n let path = 'user/notifications/count';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPINotifications(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPINotifications(params?): Observable<any> {\n let path = 'user/notifications';\n let httpParams = new HttpParams();\n httpParams = (params?.read) ? httpParams.append('read', params?.read) : httpParams\n httpParams = (params?.withPaginate == 1) ? httpParams.append('withPaginate', params?.withPaginate) : httpParams\n httpParams = (params?.page > 0) ? httpParams.append('page', params?.page) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPINotifications(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIUserImage(): Observable<any> {\n let path = 'user/image';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIgames(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postAPINotificationRead(id): Observable<any> {\n let path = `user/notification/read`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, id).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n get(endpt): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n\n post(endpt, items): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.post(endpoint, items).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n put(endpt: string, items: any): Observable<any> {\n const endpoint = this.api.getEndpoint(endpt);\n return this.http.put(endpoint, items).pipe(\n map((res: any) => {\n return res;\n })\n );\n }\n \n\n setPushNotification(pushNotification: any){\n this.pushNotification = pushNotification;\n }\n\n getPushNotification(){\n return this.pushNotification;\n }\n\n getAPIExerciseDetail(id, params?): Observable<any> {\n let path = `user/exercise/${id}`;\n let httpParams = new HttpParams();\n httpParams = (params?.programable_play) ? httpParams.append('programable_play', params?.programable_play) : httpParams\n httpParams = (params?.challenge_id) ? httpParams.append('challenge_id', params?.challenge_id) : httpParams\n httpParams = (params?.programable_id) ? httpParams.append('programable_id', params?.programable_id) : httpParams\n // Agregar el parámetro 'interactions'\n httpParams = httpParams.set('interactions', '1');\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIExercises(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIExercisesByDate(from_date?,to_date?): Observable<any> {\n let path = 'user/exercises/scheduled';\n let httpParams = new HttpParams();\n httpParams = httpParams? httpParams.append('from_date', from_date) : httpParams\n httpParams = httpParams? httpParams.append('to_date', to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIExercises(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIExercises(): Observable<any> {\n let path = 'user/exercises';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIExercises(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIChallenge(challengeId, params?): Observable<any> {\n let path = 'user/challenge/'+challengeId\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIChallenge(${path}) res: `, res);\n return res;\n })\n );\n }\n\n postCompletedExercice(params?: Object): Observable<any> {\n let path = `v1/patient/programable-plays/end`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n //console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n\n getAPIChallenges( params?): Observable<any> {\n let path = 'user/challenges'\n let httpParams = new HttpParams();\n\n if (params?.onlyAccepted) httpParams = httpParams.append('onlyAccepted', params.onlyAccepted);\n \n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIChallenges(${path}) res: `, res);\n return res;\n })\n );\n }\n getAPIChallenges2(): Observable<any> {\n let path = 'user/challenges/goals'\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, ).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIChallenges2(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIAppLatestVersion(version, platform): Observable<any> {\n let path = 'app/versions/must-update?version='+version+'&platform='+platform;\n ////console.log(path);\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n\n return res;\n })\n )\n }\n\n getAPIpatients(): Observable<any> {\n let path = 'user/patients';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIreminders(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_goals(): Observable<any> {\n let path = `sharecareplan/goals`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n \n getAPI_prescribedApps_ByDate(from_date?,to_date?): Observable<any> {\n let path = 'rehabilify/prescribed-apps/activities/pending';\n let httpParams = new HttpParams();\n httpParams = httpParams? httpParams.append('from', from_date) : httpParams\n httpParams = httpParams? httpParams.append('to', to_date) : httpParams\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_prescribedApps_ByDate(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIallowedDepartments(): Observable<any> {\n let path = `user/departments`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n \n return res;\n })\n );\n }\n getAPIdetailDepartments(id: any): Observable<any> {\n let path = `department/show/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n \n return res;\n })\n );\n }\n\n getAPIAnswers(id): Observable<any> {\n let path = `user/form/${id}/answers/detail?html=true`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIAnswers(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIAnsweredForm(): Observable<any> {\n let path = `user/forms/answered`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIContentStatus(${path}) res: `, res);\n return res;\n })\n );\n }\n\n\n getAPIDayPhrase(): Observable<any> {\n let path = `user/dayPhrase`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIDayPhrase(${path}) res: `, res);\n return res;\n })\n );\n }\n}\n","export interface notificationOpt {\n translate?: string;\n name?: string;\n type?: string;\n item_expanded?: boolean;\n mail?: any;\n app?: any;\n on_mail?:boolean;\n on_app?: boolean;\n}\n\nexport enum NotificationsType {\n ADVICES = 'advices',\n AGENDA = 'agenda',\n COMMUNICATIONS = 'communications',\n DIETS = 'diets',\n EXERCISES = 'exercises',\n FORMS = 'forms',\n GAMES = 'games',\n GOALS = 'goals',\n MEDICATIONS = 'medication_plans',\n MESSAGES = 'messages',\n NEWS = 'news',\n OFFERS = 'offers',\n PROMOTE_CONTENT = 'promote-content',\n PROCEDURES = 'medical_procedures',\n REMINDERS = 'reminder',\n //Shared care plan\n MONITORING = 'monitoring', \n INFORMED_CONSENT = 'informed_consent',\n LIFE_STILE_HABITS = 'life_style_habits',\n SHARED_CARE_PLAN = 'shared_care_plan',\n AddButtonMedicalTest= 'add_document',\n TESTIMONIALS= 'testimonials',\n AddButtonTodayDrug = 'drugs-detail',\n AddButtonHealthCharts = 'activity-goal'\n}\n\nexport enum NotificationsTypeBO {\n ADVICES = \"App\\\\Advice\",\n AGENDA = \"App\\\\Agenda\",\n CHALLENGE_LEVEL = \"App\\\\LevelAccomplishment\",\n DIAGNOSTIC_TEST = \"App\\\\DiagnosticTest\",\n DIETS = \"App\\\\Diet\",\n DRUG = \"App\\\\DrugIntake\",\n EXERCISES = \"App\\\\Exercise\",\n FORMS = \"App\\\\FormAnswer\",\n GAMES = \"App\\\\Game\",\n GAME_PLAY = \"App\\\\GamePlay\",\n //GOALS = \"App\\\\Goalable\",\n MEDICAL_PROCEDURE = \"App\\\\MedicalProcedure\",\n MEDICATIONS = \"App\\\\MedicationPlan\",\n MESSAGES = \"App\\\\Message\",\n NEWS = \"App\\\\News\",\n PROGRAMABLE_PLAY = \"App\\\\ProgramablePlay\",\n REMINDERS = \"App\\\\Reminder\", \n REMINDERS_EXECUTION =\"App\\\\ReminderExecution\",\n SHARED_CARE_PLAN = \"App\\\\ShareCarePlan\"\n}\n\nexport enum NOTIFICATIONS_TYPE_BO {\n AGENDA = \"App\\\\Notifications\\\\AgendaCreated\",\n APPOINTMENTS_VISIT = \"App\\\\Notifications\\\\VisitOnlineNotification\", \n ADVICES = \"App\\\\Notifications\\\\AdviceCreated\",\n CHALLENGE_LEVEL = \"App\\\\Notifications\\\\LevelAccomplishmentCompletedNotification\",\n DIETS = \"App\\\\Notifications\\\\DietCreated\",\n DRUG = \"App\\\\Notifications\\\\DrugIntakeTime\",\n EXERCISES = \"App\\\\Notifications\\\\ExerciseCreated\",\n EXERCISES_PLAY = \"App\\\\Notifications\\\\ExercisePlaySchedule\", \n FORMS = \"App\\\\Notifications\\\\FormAnswerSchedule\",\n GAMES = \"App\\\\Notifications\\\\GamePlaySchedule\",\n MESSAGES = \"App\\\\Notifications\\\\MessageNotification\",\n NEWS = \"App\\\\Notifications\\\\NewsNotification\",\n REMINDERS = \"App\\\\Notifications\\\\ReminderTime\", \n SHARED_CARE_PLAN = \"App\\\\Notifications\\\\SharedCarePlanAddContentNotification\"\n // MEDICATIONS = \"\",\n // GOALS = \"\",\n // MEDICAL_PROCEDURE = \"\",\n // DIAGNOSTIC_TEST = \"\",\n // PROGRAMABLE_PLAY = \"\",\n}\n\nexport enum NotificationsTypeColor {\n ADVICES = '#2356f9',\n AGENDA = '#6950ce',\n CHALLENGE_LEVEL = '#BDC3C7',\n DIAGNOSTIC_TEST = '#1A8E92',\n DIETS = '#E67E22',\n DRUG = '#5AC445',\n EXERCISES = '#f53d3d',\n FORMS = '#2356f9',\n GAMES = '#9B59B6',\n GAME_PLAY = '#9B59B6',\n //GOALS = '#1A8E92',\n MEDICAL_PROCEDURE = '#EC7579',\n MEDICATIONS = '#25CAD0',\n MESSAGES = '#25CAD0',\n NEWS = '#2356f9',\n PROGRAMABLE_PLAY = '#7F8C8D',\n REMINDERS = '#6950ce', \n REMINDERS_EXECUTION = '#6950ce',\n SHARED_CARE_PLAN = '#BA0186'\n}\n\n\nexport class NotificationOptions {\n\n public readonly agenda: any = {type: NotificationsType.AGENDA, mail: 'agendaNotificationMail', app: 'agendaNotificationApp', old: null};\n public readonly reminder: any = {type: NotificationsType.REMINDERS, mail: 'reminderNotificationMail', app: 'reminderNotificationApp', old: null};\n public readonly diets: any = {type: NotificationsType.DIETS, mail: 'dietsNotificationMail', app: 'dietsNotificationApp', old: 'dietsNotificaton'};\n public readonly medication: any = {type: NotificationsType.MEDICATIONS, mail: ['drugIntakeNotificationMail', 'medicationPlanExpiredNotificationEmail'], app: ['drugIntakeNotificationApp', 'medicationPlanExpiredNotificationApp'], old: null};\n public readonly goals: any = {type: NotificationsType.GOALS, mail: 'goalsNotificationMail', app: 'goalsNotificationApp', old: 'goalsNotificaton'};\n public readonly advices: any = {type: NotificationsType.ADVICES, mail: 'advicesNotificationMail', app: 'advicesNotificationApp', old: 'advicesNotificaton'};\n public readonly forms: any = {type: NotificationsType.FORMS, mail: 'formNotificationMail', app: 'formNotificationApp', old: 'formNotificaton'};\n public readonly messages: any = {type: NotificationsType.MESSAGES, mail: 'messagesNotificationMail', app: 'messagesNotificationApp', old: 'messagesNotificaton'};\n public readonly news: any = {type: NotificationsType.NEWS, mail: 'newsNotificationMail', app: 'newsNotificationApp', old: null};\n public readonly games: any = {type: NotificationsType.GAMES, mail: 'gamePlayNotificationMail', app: 'gamePlayNotificationApp', old: null};\n public readonly exercises: any = {type: NotificationsType.EXERCISES, mail: 'exercisePlayNotificationMail', app: 'exercisePlayNotificationApp', old: null};\n\n \n private list_options: notificationOpt[] = [];\n //Aqui se añaden todas las notificaciones que queremos que aparezca en setting.page\n private options = [ this.agenda, this.reminder, this.diets, this.medication, this.goals, this.advices, this.forms, this.messages, this.news, this.games, this.exercises];\n constructor() {\n this.setAllNotifications()\n }\n\n setAllNotifications(){\n \n const ItembyRole = JSON.parse(localStorage.getItem('showItembyRole'));\n const showItembyRole = Object.keys(ItembyRole); \n showItembyRole.forEach(element => {\n // resultado = this.options.filter(animal => animal != element);\n for (let index = 0; index < this.options.length; index++){\n if(element === this.options[index].type){\n // delete(this.options[index])\n this.options.splice(index, 1);\n index--;\n } \n } \n });\n\n \n \n this.options.forEach(opt => {\n opt['translate'] = this.setTranslate(opt);\n opt['on_mail'] = false;\n opt['on_app'] = false;\n const notification: notificationOpt = opt\n this.list_options.push(notification)\n })\n }\n\n getListOptions(){\n return this.list_options\n }\n\n setTranslate(opt){\n switch (opt?.type) {\n case NotificationsType.COMMUNICATIONS:\n return 'setting.subtitle_communications';\n case NotificationsType.AGENDA:\n return 'setting.subtitle_appointment';\n case NotificationsType.REMINDERS:\n return 'setting.subtitle_reminders';\n case NotificationsType.DIETS:\n return 'setting.subtitle_diets';\n case NotificationsType.MEDICATIONS:\n return 'setting.subtitle_medication';\n case NotificationsType.GOALS:\n return 'setting.subtitle_goals';\n case NotificationsType.ADVICES:\n return 'setting.subtitle_advices'; \n case NotificationsType.NEWS:\n return 'setting.subtitle_release';\n case NotificationsType.PROCEDURES:\n return 'setting.subtitle_procedure';\n case NotificationsType.OFFERS:\n return 'setting.subtitle_offers';\n case NotificationsType.FORMS:\n return 'setting.subtitle_form'; \n case NotificationsType.MESSAGES:\n return 'setting.subtitle_messages';\n case NotificationsType.GAMES:\n return 'setting.subtitle_games';\n case NotificationsType.PROMOTE_CONTENT: \n return 'setting.subtitle_release'; // return 'setting.subtitle_promoteContent';\n case NotificationsType.EXERCISES:\n return 'setting.subtitle_exercises';\n default:\n return '';\n }\n }\n\n setAppMailField(list, json){\n list.forEach(opt => {\n opt.on_app = this.isOnApp(opt, json)\n opt.on_mail = this.isOnMail(opt, json)\n })\n return list\n }\n\n\n isOnApp(opt, json): boolean{\n if(typeof opt.app === 'string') \n return json[opt.app] == '1'? true:false\n else\n return json[opt.app[0]] == '1'? true:false\n }\n\n isOnMail(opt, json): boolean{\n if(typeof opt.mail === 'string') \n return json[opt.mail] == '1'? true:false\n else\n return json[opt.mail[0]] == '1'? true:false\n }\n}","import { Type } from \"@angular/core\";\nimport { NotificationsType } from \"./notifications/notification-options\";\n\nexport enum ContentType {\n ADVICE = \"App\\\\Advice\",\n AGENDA = \"App\\\\Agenda\",\n DIET = \"App\\\\Diet\",\n GAMES = \"App\\\\Game\",\n MEDICATIONS_PLAN = \"App\\\\MedicationPlan\",\n MESSAGE = \"App\\\\Message\",\n NEW = \"App\\\\News\",\n REMINDER = \"App\\\\Reminder\",\n EXERCISE = \"App\\\\Exercise\",\n PROCEDURE = \"App\\\\MedicalProcedure\",\n DIAGNOSTIC_TEST = \"App\\\\DiagnosticTest\",\n LEVEL_ACCOMPLISHMENT = \"App\\\\LevelAccomplishment\"\n}\n\nexport enum ContentTypePath {\n //ADVICES\n Advices = '/tracking/advices',\n AdvicesDetail= Advices + '/advices-detail',\n //AGENDA\n Agenda = '/agenda',\n AgendaDetail = '/agenda/detail',\n //CHALLENGES\n Challenges = '/tracking/profile/goals',\n ChallengesDetail = '/home/health-path/detail',\n //DIETS \n Diets= '/tracking/journal', \n DietsDetail= Diets + '/diets-detail',\n //EXERCISE\n Exercises= '/tracking/exercices', \n ExercisesDetail = Exercises + '/exercices-detail',\n //FORM\n Forms= '/tracking/form-list', \n FormDetail = '/tracking/form',\n //GAME \n Games= '/tracking/games', \n GamesDetail = Games + '/games-detail',\n //GOALS \n Goals = '/tracking/profile/goals',\n //HOME\n Home = '/home',\n //LIFESTYLEHABITS\n LifestyleHabits = '/tracking/lifestyle-habits',\n //MEDICAL PROCEDURES\n MedicalProcedure= '/tracking/procedures', \n //MEDICAL TEST\n MedicalTest= '/document-detail', \n //MEDICATION\n Medication= '/tracking/medication/', \n MedicationDetail = '/drugs-detail', // Medication Plan\n //MESSAGE\n Message = '/contact/chat/conversation',\n //MONITORING\n Monitoring= '/tracking/monitoring', \n //NEWS\n News = '/tracking/news',\n NewsDetail = News + '/new-detail',\n //REMINDERS\n ReminderDetail = '/agenda/reminder',\n //TESTIMONIALS\n Testimonials= '/tracking/testimonials',\n //TRACKING OR FOLLOW UP\n Tracking= '/tracking',\n //INFORMED COSENT\n InformedConsent = '/tracking/informed-consent', \n\n}\n\nexport enum ContentTypeIcons {\n Goals = 'assets/images/shared-care-plan/goals.png',\n LifestyleHabits = 'assets/images/shared-care-plan/lifestyle.png',\n Forms = 'assets/images/shared-care-plan/forms.png',\n Medication = 'assets/images/shared-care-plan/medication.png',\n MedicalProcedure = 'assets/images/shared-care-plan/medicalProcedure.png',\n Monitoring = 'assets/images/shared-care-plan/healthcharts.png',\n \n InformedConsent = 'assets/images/shared-care-plan/news.png',\n // LifeStyle\n News = 'assets/images/shared-care-plan/news.png',\n Advices = 'assets/images/shared-care-plan/advices.png',\n Exercises= 'assets/images/shared-care-plan/exercises.png',\n Diets= 'assets/images/shared-care-plan/diets.png', \n Testimonials= 'assets/images/shared-care-plan/testimonials.png', \n Games= 'assets/images/shared-care-plan/games.png', \n\n //AddBUtton\n buttonMeditalTest= 'assets/images/shared-care-plan/flask.svg',\n buttomTodayDrug = 'assets/images/shared-care-plan/drug.svg',\n buttomHealthCharts = 'assets/images/shared-care-plan/medical.svg'\n}\n\nexport enum ContentTypeTranslatedName {\n Goals = 'goals.goals',\n LifestyleHabits = 'lifestyle.header',\n Medication = 'setting.subtitle_medication',\n Forms = 'setting.subtitle_form',\n Monitoring = 'shared_care_plan.monitoring',\n MedicalProcedure = 'shared_care_plan.medical_procedure',\n InformedConsent = 'shared_care_plan.informed_consent',\n // LifeStyle\n News = 'setting.subtitle_news',\n Advices = 'setting.subtitle_advices',\n Exercises= 'exercices.header', \n Diets= 'setting.subtitle_diets', \n Testimonials= 'setting.testimonials',\n Games= 'setting.subtitle_games', \n \n\n //AddButtons\n addButtonMeditaltest = 'shared_care_plan.addButton.MedicalTest',\n addButtonTodayDrug= 'shared_care_plan.addButton.Medication',\n addButtonHealthCharts= 'shared_care_plan.addButton.HealthCharts',\n \n\n}\n\ndeclare const enum ContentTypeDescription {\n descriptionGL = 'shared_care_plan.descriptionGL',\n descriptionForms= 'shared_care_plan.descriptionForms',\n descriptionMMpHc= 'shared_care_plan.descriptionMMpHc',\n}\n\ndeclare const enum LifestyleHabitsTypeDescription {\n descriptionNews = 'shared_care_plan.descriptionNews',\n descriptionAdvices= 'shared_care_plan.descriptionAdvices',\n descriptionExercises= 'shared_care_plan.descriptionExercises',\n descriptionDiets= 'shared_care_plan.descriptionDiets',\n descriptionTestimonials= 'shared_care_plan.descriptionTestimonials',\n descriptionGames= 'shared_care_plan.descriptionGames',\n\n}\n\nexport interface ContentComponent {\n img?: string;\n icon?: string;\n title: string;\n description?: string;\n type: string;\n state?: string | boolean;\n routerlink?: string | any\n}\nexport interface SharedCarePlan extends ContentComponent {\n boolean_state?: boolean;\n}\n\nexport interface SCPContentType {\n [x: string]: any;\n [id: number]: SharedCarePlan\n}\n\nexport const ListContentType: SCPContentType = [\n {img: ContentTypeIcons.Goals, icon: ContentTypeIcons.Goals, title: ContentTypeTranslatedName.Goals, description: ContentTypeDescription.descriptionGL, type: NotificationsType.GOALS, state: '', boolean_state: false, routerlink: ContentTypePath.Goals},\n {img: ContentTypeIcons.LifestyleHabits, icon: ContentTypeIcons.LifestyleHabits, title: ContentTypeTranslatedName.LifestyleHabits, description: ContentTypeDescription.descriptionGL, type: NotificationsType.LIFE_STILE_HABITS, state: '', boolean_state: false, routerlink: ContentTypePath.LifestyleHabits},\n {img: ContentTypeIcons.Forms, icon: ContentTypeIcons.Forms, title: ContentTypeTranslatedName.Forms, description: ContentTypeDescription.descriptionForms, type: NotificationsType.FORMS, state: '', boolean_state: false, routerlink: ContentTypePath.Forms},\n {img: ContentTypeIcons.Medication, icon: ContentTypeIcons.Medication, title:ContentTypeTranslatedName.Medication, description: ContentTypeDescription.descriptionMMpHc, type: NotificationsType.MEDICATIONS, state: '', boolean_state: false, routerlink: ContentTypePath.Medication},\n {img: ContentTypeIcons.MedicalProcedure, icon: ContentTypeIcons.MedicalProcedure, title: ContentTypeTranslatedName.MedicalProcedure, description: ContentTypeDescription.descriptionMMpHc, type: NotificationsType.PROCEDURES, state: '', boolean_state: false, routerlink: ContentTypePath.MedicalProcedure},\n {img: ContentTypeIcons.Monitoring, icon: ContentTypeIcons.Monitoring, title: ContentTypeTranslatedName.Monitoring, description: ContentTypeDescription.descriptionMMpHc, type: NotificationsType.MONITORING, state: '', boolean_state: false, routerlink: ContentTypePath.Monitoring},\n //{icon: ContentTypeIcons.InformedConsent, title: ContentTypeTranslatedName.InformedConsent, description: ContentTypeDescription.Description, type: NotificationsType.INFORMED_CONSENT, state: '', boolean_state: false, routerlink: ContentTypePath.InformedConsent}\n]\n\nexport function setStatusContentType(status, content:SharedCarePlan){\n \n let option = content.type\n switch (option) {\n case NotificationsType.GOALS:\n content.boolean_state = status[NotificationsType.GOALS]\n break;\n case NotificationsType.LIFE_STILE_HABITS:\n content.boolean_state = status[NotificationsType.LIFE_STILE_HABITS]\n break;\n case NotificationsType.MEDICATIONS:\n content.boolean_state = status[NotificationsType.MEDICATIONS]\n break;\n case NotificationsType.FORMS:\n content.boolean_state = status[NotificationsType.FORMS]\n break;\n case NotificationsType.MONITORING:\n content.boolean_state = status[NotificationsType.MONITORING]\n break;\n case NotificationsType.PROCEDURES:\n content.boolean_state = status[NotificationsType.PROCEDURES]\n break;\n default:\n break;\n }\n}\n\n/**\n * Goals of Shared care Plan\n */\n\nexport enum GoalStateName {\n APPROVED = 'shared_care_plan.goal_state.approved',\n REJECTED = 'shared_care_plan.goal_state.rejected',\n PENDING = 'shared_care_plan.goal_state.pending'\n}\n\nexport enum GoalStateColor {\n APPROVED = '#2ECC71',\n REJECTED = '#E81111',\n PENDING = '#FF8412'\n}\n\nexport enum GoalStateIcons {\n APPROVED = 'assets/icons/shared-care-plan/approved-icon.svg',\n REJECTED = 'assets/icons/shared-care-plan/rejected-icon.svg',\n PENDING = 'assets/icons/shared-care-plan/pending-icon.svg',\n}\n\nexport enum GoalStateType {\n APPROVED = 'approved',\n REJECTED = 'rejected',\n PENDING = 'pending',\n DECLINED = 'declined',\n ACCEPTED = 'accepted'\n}\n\nexport class GoalState {\n icon: string;\n color: string;\n name: string; \n state?: string;\n\n constructor(state){\n this.state = state;\n this.setGoalState(state)\n \n }\n\n setGoalState(state){\n switch (state) {\n case GoalStateType.ACCEPTED || GoalStateType.APPROVED:\n this.name = GoalStateName.APPROVED\n this.color = GoalStateColor.APPROVED\n this.icon = GoalStateIcons.APPROVED\n break;\n case GoalStateType.DECLINED || GoalStateType.REJECTED:\n this.name = GoalStateName.REJECTED\n this.color = GoalStateColor.REJECTED\n this.icon = GoalStateIcons.REJECTED\n break;\n default:\n this.name = GoalStateName.PENDING\n this.color = GoalStateColor.PENDING\n this.icon = GoalStateIcons.PENDING\n this.state = GoalStateType.PENDING\n break;\n }\n }\n}\n\nexport interface SharedCarePlanGoal extends SharedCarePlan {\n id?: string | number;\n date: string;\n percentage: string | number;\n is_new_content: boolean;\n}\n\n/**\n * LifeStyle of Shared care Plan\n */\n\nexport const ListSCPLifeStyle: SharedCarePlanLifeStyle [] = [\n {img: ContentTypeIcons.News, title: ContentTypeTranslatedName.News, type: NotificationsType.NEWS, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionNews },\n {img: ContentTypeIcons.Advices, title: ContentTypeTranslatedName.Advices, type: NotificationsType.ADVICES, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionAdvices},\n {img: ContentTypeIcons.Exercises, title: ContentTypeTranslatedName.Exercises, type:NotificationsType.EXERCISES, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionExercises},\n {img: ContentTypeIcons.Diets, title: ContentTypeTranslatedName.Diets, type:NotificationsType.DIETS, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionDiets},\n {img: ContentTypeIcons.Testimonials, title: ContentTypeTranslatedName.Testimonials, type:NotificationsType.TESTIMONIALS, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionTestimonials},\n {img: ContentTypeIcons.Games, title: ContentTypeTranslatedName.Games, type:NotificationsType.GAMES, id:\"\", traduction: \"\", subtitle: LifestyleHabitsTypeDescription.descriptionGames},\n \n]\n\nexport interface SharedCarePlanLifeStyle {\n img?: string,\n textHeader?: string,\n title: string,\n description?: string;\n type: string,\n id?: string | number;\n routerlink?: string | any;\n state?: string;\n accepted?: boolean;\n traduction?:string;\n frequency?: string;\n isAnswers?: string;\n hasFormAnswered?: string;\n score?: string;\n subtitle?:string;\n\n}\n\nexport interface medication extends SharedCarePlanLifeStyle{\n from? : string,\n to?: string\n accepted?: boolean\n model_id?: string,\n model?: string,\n form_id?: string,\n showAlert?: boolean,\n lastdata?: string,\n date?: string,\n canViewFormAnswered?: string,\n}\n\nexport enum ACCESS_TYPE {\n IFRAME = 'iframe',\n APP = 'app',\n WINDOW = 'windows-app'\n}\n\nexport interface SharedCarePlanPrescribedApps {\n id?: number,\n icon:string,\n title: string,\n description: string,\n instructions?:string\n iframe_url:string;\n id_pkg?: string;\n access_type?: string;\n configurations?: any;\n}\n\n/**\n * Medical Procedure of Shared care Plan\n */\nexport interface SharedCarePlanProcedure extends SharedCarePlan {\n id?: string | number;\n date: string;\n staff?: string | any;\n department?: string\n img?: string;\n description?: string;\n}\n\n/**Medical test of Shared care Plan */\nexport interface AddButtonComponent {\n id?: string | number;\n title: string;\n icon?: string;\n type?: string;\n}\n\nexport const AddButtonList: AddButtonComponent [] = [\n {icon: ContentTypeIcons.buttonMeditalTest, title: ContentTypeTranslatedName.addButtonMeditaltest, type: NotificationsType.AddButtonMedicalTest, id:\"\"},\n {icon: ContentTypeIcons.buttomTodayDrug, title: ContentTypeTranslatedName.addButtonTodayDrug, type: NotificationsType.AddButtonTodayDrug, id:\"\"},\n {icon: ContentTypeIcons.buttomHealthCharts, title: ContentTypeTranslatedName.addButtonHealthCharts, type: NotificationsType.AddButtonHealthCharts, id:\"\"},\n \n // {icon: ContentTypeIcons.Exercises, title: ContentTypeTranslatedName.Exercises, type:NotificationsType.EXERCISES, id:\"\"},\n \n]","import { Injectable, NgZone } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Location } from \"@angular/common\";\nimport { ContentTypePath } from '../models/shared-care-plan';\nimport { Platform } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n\n private history: string[] = [];\n \n constructor(\n private router: Router, \n private location: Location,\n private _zone: NgZone, \n private platform: Platform,) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n //console.log(\"NavigationEnd\", event.urlAfterRedirects);\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n \n back(): void {\n this.history.forEach( (event, index) => {\n //console.log(\"NavigationEnd\", index, event);\n })\n\n let lastUrl = this.history.pop();\n\n this.history.forEach((event, index) => {\n //console.log(\"NavigationEnd pop\", index, event);\n })\n\n if (this.history?.length > 0) {\n this.location.back()\n //this.router.navigate([`${lastUrl}`]);\n } else {\n this.router.navigateByUrl(\"/home\");\n }\n }\n\n async close(modalCtrl?): Promise<void> {\n const modal = await modalCtrl?.getTop();\n if (modal)\n await modal.dismiss({error:null});\n else this.back()\n }\n\n\n\n redirecPushNotification(data, notification?) {\n //console.log(\"ADVICES LOG: \" + JSON.stringify(data))\n // //console.log(\"DATA \" + data)\n // //console.log(\"Notification \" + notification)\n\n switch (data.action) {\n case \"ADVICE\":\n this._zone.run(() => { \n this.router.navigate([ContentTypePath.AdvicesDetail], { state: { data: data, id: data.id } }); \n });\n break;\n case \"AGENDA\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.AgendaDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"DIET\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.DietsDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"DRUGINTAKE\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Medication], { state: { data: data, segment: 'medication' } });\n });\n break;\n case \"EXERCISE\":\n let programablePlayId = data?.programable_play_id\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.ExercisesDetail], { state: { data: data, id: data.id, programable_id: data?.id, programable_play: programablePlayId} });\n });\n break;\n case \"FORM\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.FormDetail, { id: data.id }], { state: { data: data } });\n });\n break;\n case \"GAME\":\n this._zone.run(() => {\n if (data.type == 'form') {\n this.router.navigate([ContentTypePath.FormDetail, { id: data.form_id }], { state: { data: data, game_play_id: data?.game_play_id } });\n } else\n this.router.navigate([ContentTypePath.GamesDetail], { state: { data: data, id: data.id, server_url: data?.server_url } });\n });\n break;\n case \"LEVELASSIGNED\": //GOALS\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Goals], { state: { data: data } });\n });\n break;\n case \"MESSAGE\":\n let staff;\n // Different payloads for ios and android\n if (this.platform.is('ios'))\n staff = data?.origin;\n else\n staff = data?.origin ? JSON.parse(data?.origin) : null;\n //console.log('staff: ', staff);\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Message], { state: { data: data, chat: data.id, staff: staff, customData: data?.user_id } });\n });\n break;\n case \"NEWS\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.NewsDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"REMINDER\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.ReminderDetail], { state: { data: data, id: data.id } });\n });\n break;\n case \"SHARECAREPLAN\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Home], { state: { data: data, openNotificationAlertDialog: true } });\n });\n break;\n case \"VIDEOCALL\":\n this._zone.run(() => {\n // this.redirecToVideocall(notification)\n });\n break;\n default:\n console.error('Action on localNotificationActionPerformed not found, redirecting to videocall: ')\n // this.redirecToVideocall(notification)\n break;\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LanguageModel } from './language.model';\nimport { LANGUAGES_CONFIG_TOKEN } from '../configuration';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n languages: Array<LanguageModel> = new Array<LanguageModel>();\n constructor(\n public translate: TranslateService, \n @Inject(LANGUAGES_CONFIG_TOKEN) private languagesApp: LanguageModel[] ) {\n this.languages = this.languagesApp\n if(this.languages?.length == 0)\n this.getDefaultLanguages();\n //console.log(\"[LanguageService] languages: \", this.languages)\n }\n\n getDefaultLanguages(){\n this.languages.push(\n { name: 'Català', code: 'ca' },\n { name: 'Español', code: 'es' },\n { name: 'English', code: 'en' },\n { name: 'Euskera', code: 'es-eu' },\n { name: 'Português', code: 'pt' },\n { name: 'Noruec', code: 'no' },\n { name: 'Suec', code: 'sv' },\n );\n }\n\n getLanguages() {\n return this.languages;\n }\n\n public changeLanguage(langCode: string) {\n //console.log(\"langCode\", langCode)\n this.translate.use(langCode);\n }\n\n public getCurrent() : string {\n let lang = this.translate.currentLang ? this.translate.currentLang : this.translate.getDefaultLang();\n return lang;\n }\n\n public setLenguageLocalstorage(language){\n this.changeLanguage(language);\n localStorage.setItem('language', language);\n }\n\n public removeLenguageLocalstorage(){\n localStorage.removeItem('language')\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport moment from 'moment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DateService {\n locale:string;\n language:string;\n\n constructor(private datePipe: DatePipe, public translate: TranslateService) {\n this.locale = this.getLocale();\n }\n\n\n public getDateFormat(){\n let lang = this.translate.currentLang;\n let format = 'DD/MM/YY ';\n if(lang === 'en' )\n format = 'MM/DD/YY '\n return format\n }\n\n public getDateFormat2(){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/YY';\n if(lang === 'en' )\n format = 'MM/dd/YY'\n return format\n }\n\n public getDateFormat3(){\n let lang = this.translate.currentLang;\n let format = 'DD/MM/YYYY';\n if(lang === 'en' )\n format = 'MM/DD/YYYY'\n return format\n }\n\n public getLongFormat(){\n let lang = this.translate.currentLang;\n let format = 'dddd, MMM yyyy';\n\n if(lang === 'en' )\n format = 'MMM, ddd yyyy';\n\n return format\n }\n\n\n public getMonthViewDayHeader(date:Date){\n let lang = this.translate.currentLang;\n let days = [\"D\",\"L\", \"M\", \"X\", \"J\", \"V\", \"S\"]\n if(lang === 'ca'){\n days = [\"DG\",\"DL\", \"DT\", \"DC\", \"DJ\", \"DV\", \"DS\"]\n }else if(lang === 'en')\n days = [\"Sun\",\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n\n let num = date.getDay()\n return days[num]\n }\n\n public formatSelectedDate(date){\n if(date){\n let day = this.transformDate(date, this.getformatSelectedDate());\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null\n }\n public getformatSelectedDate(){\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM'\n /* if(lang === 'en' )\n format = 'MMMM d, EEEE'; */\n return format;\n }\n\n public getFormatSelectedDate2() {\n let lang = this.translate.currentLang;\n let format = 'd, MMM YYYY'\n /* if(lang === 'en' )\n format = 'MMMM d, EEEE'; */\n return format;\n }\n\n public getLocale() {\n let lang = this.translate.currentLang;\n\n if (lang === 'ca') {\n return 'ca-ES';\n } else if (lang === 'en') {\n return 'en-US';\n } else if (lang === 'es') {\n return 'es-ES';\n } else if (lang === 'pt') {\n return 'pt';\n } else if (lang === 'sv') {\n return 'sv-SE';\n } else if (lang === 'no') {\n return 'no-NO';\n } else if (lang === 'ka') {\n return 'ka-GE';\n } else {\n return 'es-ES';\n }\n}\n\n public getStartingDayWeek(){\n let lang = this.translate.currentLang;\n let day = '1'\n if(lang == 'en')\n day = '0'\n\n return day;\n }\n\n\n public getStartingDayMonth(){\n let lang = this.translate.currentLang;\n let day = '1'\n if(lang == 'en')\n day = '0'\n\n return day;\n }\n\n 'dd/MM/y'\n\n public ddMMy(){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/y'\n\n if(lang === 'en' )\n format = 'MM/dd/y';\n\n return format;\n }\n\n public getShortDateFormat(){\n let lang = this.translate.currentLang;\n let format = 'DD/MM/YY'\n\n if(lang === 'en' )\n format = 'MM/DD/YY';\n\n return format;\n }\n\n public ddMMyyyyFormat(date){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/yyyy';\n\n if(lang === 'en' )\n format = 'MM/dd/yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMyyyyFormatES(date){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/yyyy'; \n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMyFormat(date){\n let lang = this.translate.currentLang;\n let format = 'dd MMM, y';\n\n if(lang === 'en' )\n format = 'MMM dd, y';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMyEuroFormat(date){\n let format = 'dd MMM y';\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public ddMMMyyyformat(date){\n\n if (date) {\n let lang = this.translate.currentLang;\n let format = 'dd MMM yyy';\n \n if(lang === 'en')\n format = 'MMM dd yyy';\n \n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1)\n }\n else {\n return '-'\n }\n \n\n }\n\n public MMMMyyyyFormat(date){\n\n let format ='MMMM yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public getDayMonthYearFormat(date){\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM YYYY';\n\n if(lang === 'en' )\n format = 'MMMM, d EEEE YYYY';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public selectedDateFormat(date:string){\n\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM'\n\n /* if(lang === 'en' )\n format = 'MMMM d, YYYY'; */\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public selectedDateFormat2(date:string){\n\n let lang = this.translate.currentLang;\n //let format = 'EEEE, d MMM yyyy';\n\n // if(lang === 'en' )\n let format = 'MMM, dd yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n\n\n\n ddMMyyyyHHmm(date){\n let lang = this.translate.currentLang;\n let format = 'dd/MM/yyyy HH:mm'\n if(lang === 'en')\n format = 'MM/dd/yyyy hh:mm a';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1)\n }\n\n\n public formatDateLongFormat(date?){\n\n if(date){\n let day = this.transformDate(date, this.getLongDateFormat());\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n public yyyyMMddHHmm(date?){\n\n if(date){\n let day = this.transformDate(date, this.yyyyMMddHHmmFormat());\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n yyyyMMddHHmmFormat(){\n let lang = this.translate.currentLang;\n let format = 'yyyy-dd-MM HH:mm';\n\n if(lang === 'en' )\n format = 'yyyy-MM-dd HH:mm a';\n\n return format;\n\n }\n public yyyyMMddTHHmmssSSSZFormat(date?){\n const fechaFormateada =this.datePipe.transform(date, 'yyyy-MM-ddTHH:mm:ss.SSS\\'Z\\'');\n return fechaFormateada;\n }\n\n public getLongDateFormat(){\n let lang = this.translate.currentLang;\n let format = 'EEEE, d MMMM yyyy, HH:mm';\n\n if(lang === 'en' )\n format = 'MMMM, d yyyy, hh:mm a';\n\n return format;\n\n }\n public getDatetimeControlFormat(){\n let lang = this.translate.currentLang;\n let format = 'D MMM YYYY HH:mm'\n\n if(lang === 'en' )\n format = 'MMM D YY hh:mm a';\n\n return format;\n\n }\n\n public getDayMonthFormat(){\n let lang = this.translate.currentLang;\n let format = 'd MMM';\n\n if(lang === 'en' )\n format = 'MMM d';\n\n return format;\n\n }\n\n public getDayDotMonthFormat(){\n let lang = this.translate.currentLang;\n let format = 'd. MMM';\n\n if(lang === 'en' )\n format = 'MMM. d';\n\n return format;\n\n }\n\n public getSelectedWeek(date:string){\n\n let lang = this.translate.currentLang;\n let format = 'E d MMM'\n\n if(lang === 'en' )\n format = 'MMM d, E';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public getSelectedWeekFullDay(date:string){\n\n let lang = this.translate.currentLang;\n let format = 'EEE d MMM'\n\n if(lang === 'en' )\n format = 'MMM d, EEE';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1);\n }\n\n public formatDate(date?){\n if(date){\n date = new Date(date)\n\n if(this.isToday(date))\n return this.datePipe.transform(date, this.getTimeFormat())\n else{\n let format = this.getDateFormat2()\n return this.transformDate(date, format)\n }\n }\n return null;\n }\n\n public getFormatTime(date){\n if(date){\n date = new Date(date)\n return this.datePipe.transform(date, this.getTimeFormat2())\n }\n return null;\n }\n\n public getDateMonDay(date){\n let lang = this.translate.currentLang;\n let format = 'MMM d';\n if(date){\n date = new Date(date)\n return this.transformDate(date, format, lang)\n } \n return null;\n }\n\n convertLocalizedDateToEnglish(dateString: string) {\n // Mapea los meses abreviados en portugués a sus equivalentes en inglés\n const monthsMap = {\n // Meses en español\n 'ene': 'Jan', 'feb': 'Feb', 'mar': 'Mar', 'abr': 'Apr',\n 'may': 'May', 'jun': 'Jun', 'jul': 'Jul', 'ago': 'Aug',\n 'sep': 'Sep', 'oct': 'Oct', 'nov': 'Nov', 'dic': 'Dec',\n // Meses en portugués\n 'jan.': 'Jan', 'fev.': 'Feb', 'mar.': 'Mar', 'abr.': 'Apr',\n 'mai.': 'May', 'jun.': 'Jun', 'jul.': 'Jul', 'ago.': 'Aug',\n 'set.': 'Sep', 'out.': 'Oct', 'nov.': 'Nov', 'dez.': 'Dec'\n };\n\n // Busca y reemplaza el mes en portugués o español por el equivalente en inglés\n for (const [localizedMonth, enMonth] of Object.entries(monthsMap)) {\n if (dateString.includes(localizedMonth)) {\n dateString = dateString.replace(localizedMonth, enMonth);\n break;\n }\n }\n\n // Devuelve el string en un formato válido para el constructor de Date\n return dateString;\n}\n\n transformDateyyyyMMdd(date) {\n return this.datePipe.transform(date, 'yyyy-MM-dd');\n }\n \n\n\n ddMMyyyy(date){\n let lang = this.translate.currentLang;\n let format = 'dd-MM-yyyy'\n if(lang === 'en')\n format = 'MM-dd-yyyy';\n\n let day = this.transformDate(date, format);\n return day[0].toUpperCase() + day.slice(1)\n }\n\n highchartsDatesFornmat(){\n\n let lang = this.translate.currentLang;\n let format = {};\n if(lang == 'en'){\n // %b: Short month, like 'Jan',%e Day of the month, 1 through 31\n format = {\n millisecond: '%H:%M:%S.%L',\n second: '%l:%M:%S %P',\n minute: '%l:%M %p',\n hour: '%l:%M %p',\n day: '%b. %e',\n week: '%b. %e',\n month: '%b \\'%y',\n year: '%Y'\n }\n }else{\n format = {\n millisecond: '%H:%M:%S.%L',\n second: '%H:%M:%S',\n minute: '%H:%M',\n hour: '%H:%M',\n day: '%e. %b',\n week: '%e. %b',\n month: '%b \\'%y',\n year: '%Y'\n }\n }\n return format;\n }\n\n yyyyMMddFormat(date){\n //console.log(\"DATE date: \", date);\n let lang = this.translate.currentLang;\n //console.log(\"DATE lang: \", lang);\n let format = 'yyyy-MM-dd';\n\n if(lang == 'en')\n format = 'yyyy-dd-MM';\n\n //console.log(\"DATE format: \", format);\n\n let day = this.transformDate(date, format);\n\n //console.log(\"DATE day: \", day);\n\n return day[0].toUpperCase() + day.slice(1)\n }\n\n convert12to24format(time){\n\n //console.log(\"TIME 12to24: \",time);\n var hours = Number(time.match(/^(\\d+)/)[1]);\n var minutes = Number(time.match(/:(\\d+)/)[1]);\n var AMPM = time.match(/\\s(.*)$/)[1];\n if(AMPM == \"PM\" && hours<12) hours = hours+12;\n if(AMPM == \"AM\" && hours==12) hours = hours-12;\n var sHours = hours.toString();\n var sMinutes = minutes.toString();\n if(hours<10) sHours = \"0\" + sHours;\n if(minutes<10) sMinutes = \"0\" + sMinutes;\n\n let h = sHours + \":\" + sMinutes;\n\n //console.log(\"HOURS: \",h);\n return h;\n }\n\n format24h(time) {\n let lang = this.translate.currentLang;\n if(lang === 'en'){\n // Check correct time format and split into components\n time = time.toString ().match (/^([01]\\d|2[0-3])(:)([0-5]\\d)(:[0-5]\\d)?$/) || [time];\n\n if (time.length > 1) { // If time format correct\n time = time.slice (1); // Remove full string match value\n time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM\n time[0] = +time[0] % 12 || 12; // Adjust hours\n }\n return time.join (''); // return adjusted time or original string\n }\n\n //console.log(time);\n \n return time;\n\n }\n\n isAmericanFormat(){\n return this.translate.currentLang === 'en';\n }\n\n getTimeFormat(){\n let lang = this.translate.currentLang;\n let format = 'HH:mm'\n\n if(lang === 'en' )\n format = 'hh:mm a';\n\n return format;\n }\n\n getTimeFormat2(){\n let format = 'HH:mm'\n return format;\n }\n\n isToday(mDate: Date){\n let date = new Date()\n if(date.getDate() === mDate.getDate() && date.getMonth() === mDate.getMonth() && date.getFullYear() === mDate.getFullYear())\n return true\n return false\n }\n\n transformDate(date, format, locale?) {\n const datePipe: DatePipe = new DatePipe(locale || this.getLocale()); // Usa locale si se pasa, o por defecto a getLocale()\n return datePipe.transform(date, format);\n }\n\n getCalendarDay(epoch: number): string {\n if (!epoch) {\n return null;\n }\n let timeString = 'h:mm A';\n const today = this.translate.instant('agenda.today');\n const yesterday = this.translate.instant('agenda.yesterday');\n return moment(epoch).calendar(null, {\n sameDay: `[${today}] ` + timeString,\n lastDay: `[${yesterday}] ` + timeString,\n lastWeek : 'DD/MM/YY ' + timeString,\n sameElse: 'DD/MM/YY ' + timeString,\n nextDay : 'DD/MM/YY ' + timeString,\n });\n }\n\n getCalendarDay2(epoch: number): string {\n if (!epoch) {\n return null;\n }\n let timeString = this.getTimeFormat();\n let dateString = this.getShortDateFormat();\n const today = this.translate.instant('agenda.today');\n const yesterday = this.translate.instant('agenda.yesterday');\n return moment(epoch).calendar(null, {\n sameDay: `[${today}] ` + timeString,\n lastDay: `[${yesterday}] ` + timeString,\n sameElse: dateString + ' ' + timeString,\n lastWeek : dateString + ' ' + timeString,\n nextDay : dateString + ' ' + timeString\n });\n }\n\n\n getCalendarDayTime(epoch: number): string {\n if (!epoch) {\n return null;\n }\n let timeString = this.getTimeFormat();\n let lang = this.translate.currentLang;\n const today = this.translate.instant('agenda.today');\n const yesterday = this.translate.instant('agenda.yesterday');\n const to = this.translate.instant('agenda.to');\n\n const m = moment\n m.locale(lang)\n\n const dateString = 'MMM, ddd DD YYYY';\n\n return m(epoch).calendar(null, {\n sameDay: `[${today}] ` + `[${to}] ` + timeString,\n lastDay: `[${yesterday}] ` + `[${to}] ` + timeString,\n sameElse: dateString + ' ' + `[${to}] ` + timeString,\n lastWeek: dateString + ' ' + `[${to}] ` + timeString,\n nextDay : dateString + ' ' + `[${to}] ` + timeString\n })\n}\n\n // return epoch string as specified format\n formatEpoch(epoch): string {\n return this.getCalendarDay(epoch);\n }\n\n getToday(){\n const tzoffset = (new Date()).getTimezoneOffset() * 60000; // offset in milliseconds\n const localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1);\n let date = localISOTime// this.dateService.selectedDateFormat(localISOTime);\n return date\n }\n\n getCurrentTime(){\n const tzoffset = (new Date()).getTimezoneOffset() * 60000; // offset in milliseconds\n const localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1);\n let date = localISOTime// this.dateService.selectedDateFormat(localISOTime);\n return new Date(Date.now() - tzoffset).getTime().toLocaleString();\n }\n\n public yyyyMMddHHmm1(date?){\n\n if(date){\n let day = this.transformDate(date, 'yyyy-MM-dd HH:mm');\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n public yyyyMMddHHmmss(date?){\n if(date){\n let day = this.transformDate(date, 'yyyy-MM-dd HH:mm:ss');\n //console.log(\"selected Day\", day);\n return day[0].toUpperCase() + day.slice(1);\n }\n return null;\n }\n\n\n\n\n formatDateHour(d){\n var auxdate = d.split('T')\n let date = new Date(auxdate[0]);\n // d = d.replace(' ', 'T')\n // let date0 = new Date(d).toISOString();\n // let date = new Date(date0);\n date.setHours(23);\n date.setMinutes(59);\n return date;\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { LanguageService } from './language.service';\nimport * as HighCharts from 'highcharts';\nimport 'highcharts/highcharts-more';\n// import highchartsMore from 'highcharts/highcharts-more';\n// highchartsMore(HighCharts);\nimport moment from 'moment';\nimport { DatePipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nexport interface serie {\n name: string,\n type?: string,\n colorKey?: string,\n pointWidth?: number,\n colorByPoint?: boolean,\n color?: string,\n data: Array<any>,\n lineWidth?: number,\n marker?: {\n radius: number\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HighchartsService {\n weekdaysES = ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sábado']\n weekdaysCA = ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', 'Divendres', 'Dissabte']\n weeksDay = []\n title: string;\n graphData = [];\n ranges: any;\n units: string;\n series: any[] = []\n xAxis: any\n yAxis: any\n minY: any\n maxY: any\n graphBaseOn: string\n pointWidth: number;\n withTooltip = false\n extraTooltip: any;\n scrollMinWidth = 550\n constructor(\n private languageService: LanguageService,\n private translate: TranslateService\n ) { }\n\n setTitle(title){\n this.title = title\n }\n\n setUnits(units){\n this.units = units\n }\n\n setLocale() {\n return this.languageService.getCurrent();\n }\n\n setPointWidth(interval): number{\n switch (interval) {\n case '1d': \n return 12;\n case '1w': \n return 12; \n case '1m': \n return 8; \n case '1y': \n return 12; \n default:\n return 20;\n }\n }\n\n setScrollMinWidth(interval){\n switch (interval) {\n case '1d': \n this.scrollMinWidth = 600;\n break\n case '1w': \n this.scrollMinWidth = 500; \n break\n case '1m': \n this.scrollMinWidth = 600; \n break\n case '1y': \n this.scrollMinWidth = 500; \n break\n default:\n this.scrollMinWidth = 500;\n }\n }\n\n addTooltip(interval){\n switch (interval) {\n case '1d': \n this.withTooltip = false;\n break\n case '1w': \n this.withTooltip = false; \n break\n case '1m': \n this.withTooltip = true; \n break\n case '1y': \n break \n this.withTooltip = false;\n default:\n this.withTooltip = false;\n }\n }\n\n getWeekday(){\n return (this.setLocale() == 'es') ? this.weekdaysES : this.weekdaysCA\n }\n\n setSeries(name, data, pointWidth?, lineWidth?, color?, colorKey?, colorByPoint?){\n const serie_name = name? name: this.units;\n const serie_data = (data && data.length > 0)? data: this.graphData\n const serie_pointWidth = pointWidth? pointWidth:this.pointWidth\n const serie_colorByPoint = colorByPoint? true:false;\n let serie: serie = { name: serie_name, data: serie_data, pointWidth:serie_pointWidth, colorByPoint: serie_colorByPoint}\n //if (pointWidth != undefined) serie['pointWidth'] = pointWidth\n if (lineWidth) serie['lineWidth'] = lineWidth\n if (color) serie['color'] = color\n if (colorKey) serie['colorKey'] = colorKey\n this.series = []\n this.series.push(serie)\n }\n\n // type: this.typeChart,\n // maxRange: this.min.getTime(),\n // categories: this.withTooltip? this.graphDates: null\n setXAxis(type, categories, maxRange?){\n this.xAxis = {type: type, maxRange: maxRange, categories: categories, crosshair: true}\n }\n\n setYAxis(minY,maxY, ranges, text){\n //console.log('[ActivityGoalPage] generateChart() maxY: ', maxY);\n //Solo para HPC requieren que el valor mínimo de gráfica sea 0, aquí valido que si no hay valores negativos se el minY = 0;\n const y_min = minY;// (minY > 0) ? 0 : minY;\n const y_max = (maxY)? maxY: this.maxY\n const y_title = {text: text, align: 'high'}\n this.yAxis = {min: y_min, max: y_max, alignTicks: false, tickInterval: null, startOnTick: false, title:y_title, opposite: true, plotBands: ranges}\n }\n\n setMinY(valuesA, valuesB){\n if(valuesA && valuesB && valuesB.length > 0){\n const A = Math.min.apply(null, valuesA)\n const B = Math.min.apply(null, valuesB)\n this.minY = A>B? B:A\n return this.minY\n }else{\n this.minY = Math.min.apply(null, valuesA)\n return this.minY\n }\n }\n\n setMaxY(valuesA, valuesB){\n if(valuesA && valuesB && valuesB.length > 0){\n const A = Math.max.apply(null, valuesA)\n const B = Math.max.apply(null, valuesB)\n this.maxY = A>B? A:B\n return this.maxY\n }else{\n this.maxY = Math.max.apply(null, valuesA)\n return this.maxY\n }\n }\n\n\n getOptionsChart(graphBaseOn) {\n ////console.log('[ActivityGoalPage] generateChart() graphBaseOn: ', graphBaseOn);\n let charts //= HighCharts\n switch (graphBaseOn) {\n case 'avg': \n //charts.chart('container', {\n charts = {\n chart: {\n renderTo: 'container',\n type: 'column',\n zoomType: 'x',\n scrollablePlotArea: {\n minWidth: this.scrollMinWidth,\n scrollPositionX: 1\n } \n },\n title: {\n text: this.title \n },\n xAxis: this.xAxis,\n yAxis: this.yAxis,\n rangeSelector: {\n enabled: true\n },\n plotOptions: {\n series: {\n allowPointSelect: true,\n borderWidth: 1,\n dataLabels: {\n enabled: true,\n format: '{point.y}'\n },\n }\n },\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n series: this.series,\n tooltip: {\n valueSuffix: ` ${this.units}`\n },\n lang: {\n weekdays: this.getWeekday()\n }\n }\n //);\n break;\n case 'range': \n //charts.chart('container', {\n charts = {\n chart: {\n renderTo: 'container',\n type: 'arearange',\n zoomType: 'x',\n scrollablePlotArea: {\n minWidth: this.scrollMinWidth,\n scrollPositionX: 1\n } \n },\n title: {\n text: this.title \n },\n xAxis: this.xAxis,\n yAxis: this.yAxis,\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n series: this.series,\n tooltip: {\n valueSuffix: ` ${this.units}`\n },\n lang: {\n weekdays: this.getWeekday()\n }\n }\n //);\n \n break;\n case 'lasValue': //barra o punto valor de 0 al inicio\n default:\n //charts.chart('container', {\n charts = {\n chart: {\n renderTo: 'container',\n type: 'column',\n zoomType: 'x',\n scrollablePlotArea: {\n minWidth: this.scrollMinWidth,\n scrollPositionX: 1\n } \n },\n title: {\n text: this.title \n },\n xAxis: this.xAxis,\n yAxis: this.yAxis,\n rangeSelector: {\n enabled: true\n },\n plotOptions: {\n series: {\n allowPointSelect: true,\n borderWidth: 1,\n dataLabels: {\n enabled: true,\n format: '{point.y}'\n },\n }\n },\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n series: this.series,\n tooltip: {\n valueSuffix: ` ${this.units}`\n },\n lang: {\n weekdays: this.getWeekday()\n }\n }\n //);\n break;\n }\n\n\n if(this.withTooltip){\n let tool = `<table><tr><th colspan=\"1\">{point.key} ${this.extraTooltip}</th></tr>` //\n HighCharts.setOptions({\n tooltip: {\n headerFormat: tool,\n },\n });\n }\n\n return charts\n }\n\n groupByCategory(interval, element){\n let language= this.languageService.getCurrent();\n ////console.log('[HighchartsService] groupByCategory ', element.date_value);\n let elementDate = new Date(element.date_value);\n let groupByDate = \"\";\n let tooltip = \"\";\n ////console.log('[HighchartsService] groupByCategory ', element.date_value);\n switch (interval) {\n case '1d':// group by day\n let hour = element.date?.split(' ')[1]\n groupByDate = hour\n // let isAllValue = (this.graphBaseOn == 'lasValue' || this.graphBaseOn == 'range')? true:false\n // groupByDate = isAllValue? hour : hour.split(':')[0] + ':' + hour.split(':')[1];\n tooltip = moment(elementDate, \"YYYY-MM-DD\").locale('es').date() + '/' + elementDate.toLocaleString('es-ES', { month: 'short' }) + '/' + elementDate.getFullYear()+' '+groupByDate;\n break;\n case '1w':\n let date = this.formatSelectedDate(element.date_value)\n let day = date.toLocaleString(language, { weekday: 'short' })\n groupByDate = this.titleCase(day) +' '+ this.formatSelectedDate2(element.date_value, 'd')\n tooltip = moment(elementDate, \"YYYY-MM-DD\").locale('es').date() + '/' + elementDate.toLocaleString('es-ES', { month: 'short' }) + '/' + elementDate.getFullYear();\n break;\n case '1m':\n //let month = elementDate.toLocaleString('es-ES', { month: 'short' });\n groupByDate = this.formatSelectedDate2(element.date_value, 'd') //+ ' ' + month\n tooltip = moment(elementDate, \"YYYY-MM-DD\").locale('es').date() + '/' + elementDate.toLocaleString('es-ES', { month: 'short' }) + '/' + elementDate.getFullYear();\n break;\n case '1y':\n let month = new Date(); month.setMonth(Number(element.date_value)-1); \n groupByDate = month.toLocaleString(language, { month: 'short' })\n groupByDate = this.titleCase(groupByDate) ;\n tooltip = month.toLocaleString(language, { month: 'short' }) + '/' + month.getFullYear();\n break;\n default:\n break\n }\n return {groupByDate: groupByDate, tooltip: tooltip}\n }\n\n formatSelectedDate2(d, format) {\n var auxdate = d.split(' ')\n d = d.replace(' ', 'T')\n let date0 = new Date(d).toUTCString();\n let date = new Date(date0);\n let time = auxdate[1];\n date.setHours(time.substring(0, 2));\n date.setMinutes(time.substring(3, 5));\n let language = this.languageService.getCurrent();\n const datePipe: DatePipe = new DatePipe('en');\n return datePipe.transform(date, format);\n }\n\n formatSelectedDate(d) {\n var auxdate = d.split(' ')\n d = d.replace(' ', 'T')\n let date0 = new Date(d).toUTCString();\n let date = new Date(date0);\n let time = auxdate[1];\n date.setHours(time.substring(0, 2));\n date.setMinutes(time.substring(3, 5));\n return date\n }\n\n titleCase(word){\n return word.charAt(0).toUpperCase() + word.slice(1)\n }\n\n getGroupedData(json, interval, withoToltip?:boolean){\n let withTooltip: boolean = false\n let tooltip = []\n let groupData: any;\n let groups = []\n let valuesA = [];\n let valuesB = [];\n let datesA = [];\n let graphData = [];\n let graphBaseOn = json.graphBaseOn\n this.graphBaseOn = json.graphBaseOn;\n switch (graphBaseOn) {\n case 'average': \n case 'avg': \n groups = json.values.reduce((groups, element) => {\n const value = Number(element.avg);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].value = 0;\n }\n groups[group.groupByDate].value += value;\n groups[group.groupByDate].tooltip = group.tooltip \n return groups;\n }, {}); \n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].value);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].value]);\n \n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, graphData: graphData}\n break;\n\n case 'range': \n groups = json.values.reduce((groups, element) => {\n const valueMax = Number(element.max);\n const valueMin = Number(element.min);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].valueMax = 0;\n groups[group.groupByDate].valueMin = 0;\n }\n groups[group.groupByDate].valueMax += valueMax;\n groups[group.groupByDate].valueMin += valueMin;\n groups[group.groupByDate].tooltip = group.tooltip\n \n return groups;\n }, {});\n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].valueMax);\n valuesB.push(groups[date].valueMin);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].valueMin, groups[date].valueMax]);\n \n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, valuesB: valuesB, graphData: graphData}\n break;\n\n case 'sum': \n groups = json.values.reduce((groups, element) => {\n const value = Number(element.value);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].value = 0;\n }\n groups[group.groupByDate].value += value;\n groups[group.groupByDate].tooltip = group.tooltip \n return groups;\n }, {}); \n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].value);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].value]);\n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, graphData: graphData}\n break;\n\n case 'lasValue': \n default:\n json.values.forEach(element => {\n const value = Number(element.value);\n const group = this.groupByCategory(interval, element)\n // If date doesn't exist in array, then create it\n if (!groups[group.groupByDate]) {\n groups[group.groupByDate] = [];\n groups[group.groupByDate].value = 0;\n }\n groups[group.groupByDate].value += value;\n groups[group.groupByDate].tooltip = group.tooltip \n })\n ////console.log('[HighchartsService] rangeGraph', groups); \n Object.keys(groups).map((date) => {\n datesA.push(date);\n valuesA.push(groups[date].value);\n // if(withTooltip)\n // graphData.push({y: groups[date].total, tooltip: groups[date].tooltip});\n // else\n if(withTooltip)\n tooltip.push(groups[date].tooltip)\n graphData.push([date, groups[date].value]); \n }); \n ////console.log('[HighchartsService] graphData', graphData);\n groupData = {dates: datesA, valuesA: valuesA, graphData: graphData}\n break\n }\n return groupData;\n }\n\n getRanges(element, min, max) {\n let normalValue = []\n let outRangeValue = []\n let dangerValue = []\n let value = []\n let ranges = element.ranges;\n\n ranges.forEach(range => {\n var r = [];\n var color;\n\n /*\n * No toma en cuenta los decimales con coma (,)\n */\n range.value1 = parseFloat(range.value1?.replace(\",\",\".\"));\n range.value2 = parseFloat(range.value2?.replace(\",\",\".\"));\n\n if (range.rangeCondition == '>' || range.rangeCondition == '=>') {\n r[\"from\"] = range.value1;\n const maxValue = this.getMaxRange(range.value1, max) ;\n //console.log('[ActivityGoalPage] maxValue ', maxValue);\n r[\"to\"] = this.getMaxRange(range.value1, max) ;\n }\n\n if (range.rangeCondition == '<' || range.rangeCondition == '<=') {\n r[\"from\"] = min;\n r[\"to\"] = range.value1;\n }\n\n if (range.rangeCondition == 'a<x<b') {\n r[\"from\"] = range.value1;\n r[\"to\"] = range.value2;\n }\n\n if (range.rangeType == \"success\")\n color = 'rgba(96, 173, 121, 0.1)';\n else if (range.rangeType == \"warning\")\n color = 'rgba(245, 157, 24, 0.1)'; //'rgb(243, 156, 18, 0.1)'\n else if (range.rangeType == \"danger\")\n color = 'rgba(245, 46, 24, 0.1)'; //'rgb(231, 76, 60, 0.1)'\n\n r[\"color\"] = color;\n value.push(r);\n\n if (range.rangeType === \"success\") {\n normalValue.push(range.conditionString)\n }\n else if (range.rangeType == \"warning\") {\n outRangeValue.push(range.conditionString)\n }\n else if (range.rangeType == \"danger\") {\n dangerValue.push(range.conditionString)\n }\n\n });\n if (value?.length > 0) {\n let rangesElement = {\n name: element.name,\n description: element.description,\n value: value,\n normalValue: normalValue,\n outRangeValue: outRangeValue,\n dangerValue: dangerValue\n }\n //console.log('[ActivityGoalPage] getRanges() ranges: ', rangesElement);\n return rangesElement\n }\n else return undefined\n }\n //Aqui se setea el valor max en Y sumando el rango máximo y valor máximo ingresado divdido entre 2\n getMaxRange(rangeMax, max){\n let value1 = Number(rangeMax)\n let value2 = Number(max)\n if(value2 <= value1)\n this.maxY = value1 + value2/2; \n else \n this.maxY = value2\n return this.maxY \n }\n\n setHighchartsOptions(json, params){\n let opt = json?.graphBaseOn\n let interval = params.interval\n let name = json?.name\n let typeChart = ''\n let valuesA = [];\n let valuesB = [];\n let datesA = [];\n let graphData = [];\n let ranges;\n let minY;\n let maxY;\n let pointWidth = 20\n let units = json?.units\n\n this.units = json.units\n\n const data = this.getGroupedData(json, interval);\n graphData = data?.graphData\n valuesA = data?.valuesA\n valuesB = data?.valuesB\n datesA = data?.dates\n\n minY = this.setMinY( valuesA, valuesB);\n maxY = this.setMaxY( valuesA, valuesB);\n ranges = this.getRanges(json, minY, maxY)\n this.ranges = ranges\n pointWidth = this.setPointWidth(interval)\n\n //console.log(\"* valuesA: \", valuesA);\n //console.log(\"* valuesB: \", valuesB);\n //console.log(\"* dates: \", datesA);\n //console.log(\"* graphic: \", graphData);\n\n switch (opt) {\n case 'range':\n typeChart = 'arearange'\n break; \n case 'sum':\n case 'avg':\n case 'lasValue': \n default:\n typeChart = 'category'\n break;\n }\n\n this.setXAxis(typeChart, datesA)\n this.setYAxis(minY,maxY, ranges, units)\n this.setSeries(name, graphData, pointWidth)\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nexport class ComponentsApp {\n goal: boolean;\n advices: boolean;\n news: boolean;\n agenda: boolean;\n reminder: boolean;\n diet: boolean;\n drug: boolean;\n game: boolean;\n element: boolean;\n form: boolean;\n chat: boolean;\n doc_diagnostic: boolean;\n contacta: boolean;\n medication: boolean;\n constructor(goal: boolean,advices: boolean,news: boolean, agenda: boolean, reminder: boolean, diet: boolean, drug: boolean, game: boolean, element: boolean, form: boolean, chat: boolean,doc_diagnostic: boolean, contacta: boolean, medication: boolean){\n this.goal = goal\n this.advices = advices\n this.news = news\n this.agenda = agenda\n this.reminder = reminder\n this.diet = diet\n this.drug = drug\n this.game = game\n this.element = element\n this.form = form\n this.chat = chat\n this.doc_diagnostic = doc_diagnostic\n this.contacta = contacta\n this.medication = medication\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RolesService {\n component: ComponentsApp;\n isProfessional: boolean;\n userType: any;\n constructor() { \n this.setProfessional(false)\n this.activatedAllComponents(true)\n //this.customAllComponents(true,false,true,false,false,false,false,true,true,true,true, false, true)\n }\n\n activatedAllComponents(enable: boolean){\n this.component = new ComponentsApp(enable, enable,enable,enable,enable,enable,enable,enable,enable,enable,enable, enable,enable, enable )\n }\n\n customAllComponents(goal: boolean,advices: boolean,news: boolean, agenda: boolean, reminder: boolean, diet: boolean, drug: boolean, game: boolean, element: boolean, form: boolean, chat: boolean, doc_diagnostic: boolean, contacta: boolean, medication: boolean){\n this.component = new ComponentsApp(goal, advices, news, agenda, reminder, diet, drug, game, element, form, chat, doc_diagnostic, contacta, medication )\n }\n\n setProfessional(professional){\n this.isProfessional = professional? true: false\n \n }\n}\n","import { Injectable } from '@angular/core';\nimport { Preferences } from '@capacitor/preferences';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n\n constructor() {\n Preferences.migrate();\n }\n\n saveFirstTimeLoad(val): void {\n Preferences.set({ key: 'firstTime', value: val});\n }\n saveFirstTimeLoad2(val): void {\n Preferences.set({key:'firstTime2', value:val});\n }\n\n async isFirstTimeLoad() {\n const result = await Preferences.get({ key: 'firstTime' });\n if (result == null) { //si no hay valor previo\n return true; //retornamos true\n }\n\n return JSON.parse(result.value);\n\n }\n\n async isFirstTimeLoad2() {\n const result = await Preferences.get({ key: 'firstTime2' });\n if (result == null) { //si no hay valor previo\n return true; //retornamos true\n }\n\n return JSON.parse(result.value);\n\n }\n\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\nimport { AlertController, ToastController } from '@ionic/angular';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n constructor(\n public snackBar: MatSnackBar,\n private zone: NgZone,\n public alertCtrl: AlertController,\n private translate: TranslateService,\n private toastController: ToastController\n ) { }\n\n showSuccess(message: string): void {\n // Had an issue with the snackbar being ran outside of angular's zone.\n this.zone.run(() => {\n // The second parameter is the text in the button. \n // In the third, we send in the css class for the snack bar.\n const config = new MatSnackBarConfig();\n config.panelClass = ['custom-class'];\n config.verticalPosition = 'bottom';\n config.horizontalPosition = 'center';\n config.duration = 3000;\n this.snackBar.open(message,'', config);\n \n });\n }\n\n showError(error: string): void {\n \n let message:string;\n if(error.includes('ERR_INTERNET_DISCONNECTED') || error.toLowerCase().includes('network error') || error.toLowerCase().includes('unknown error'))\n message = this.translate.instant('commons.error-network');\n else if(error.includes('Timeout has occurred'))\n message = this.translate.instant('commons.error-timeout');\n else\n message = error;\n \n\n this.zone.run(() => {\n\n const config = new MatSnackBarConfig();\n config.panelClass = ['example-pizza-party'];\n config.verticalPosition = 'bottom';\n config.horizontalPosition = 'center';\n config.duration = 3000;\n this.snackBar.open(message,'X', config);\n \n //console.log(\"NotificationService\", message);\n \n });\n }\n\n //Toast\n displayToastSuccessful() { \n try {\n this.toastController.dismiss().then(() => {\n }).catch(() => {\n }).finally(() => {\n //console.log('Closed')\n });\n } catch(e) {}\n \n this.toastController.create({\n position: 'middle', //'middle', 'bottom'\n cssClass: 'toast-custom-class',\n animated: true,\n duration: 2000,\n }).then((toast) => {\n toast.present();\n });\n }\n\n displayToastPusher(message) { \n try {\n this.toastController.dismiss().then(() => {\n }).catch(() => {\n }).finally(() => {\n //console.log('Closed')\n });\n } catch(e) {}\n \n this.toastController.create({\n position: 'middle', //'middle', 'bottom'\n cssClass: 'toast-pusher-class',\n message: message,\n animated: true,\n duration: 30000,\n buttons: [{\n text: 'Cerrar',\n icon: 'close',\n role: 'cancel',\n handler: () => {\n //console.log('Cancel clicked');\n }\n }\n ]\n }).then((toast) => {\n toast.present();\n });\n }\n\n\n async confirmAllNotification(message) {\n const alert = await this.alertCtrl.create({\n cssClass: 'my-alert-class',\n message: message ,\n buttons: [\n {\n text: this.translate.instant(\"button.ok\"),\n handler: (data) => {\n \n }\n }\n ]\n });\n\n await alert.present();\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { Network } from '@capacitor/network';\nimport { Capacitor } from '@capacitor/core';\nimport { Platform } from '@ionic/angular';\nimport { fromEvent, merge, of, Observable } from 'rxjs';\nimport { mapTo } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NetworkService {\n\n private online$: Observable<boolean>;\n\n constructor(public platform: Platform) {\n if (Capacitor.isNativePlatform()) {\n // Native device: use Capacitor Network listener\n this.online$ = new Observable<boolean>(observer => {\n // Emit current status\n Network.getStatus().then(status => observer.next(status.connected));\n\n // Listen for changes\n Network.addListener('networkStatusChange', (status) => {\n observer.next(status.connected);\n });\n });\n } else {\n // Browser: fallback to window events\n this.online$ = merge(\n of(navigator.onLine),\n fromEvent(window, 'online').pipe(mapTo(true)),\n fromEvent(window, 'offline').pipe(mapTo(false))\n );\n }\n }\n\n public getNetworkStatus(): Observable<boolean> {\n return this.online$;\n }\n\n // Optional helper: get full network info once\n public async getNetworkType(): Promise<string> {\n const status = await Network.getStatus();\n return status.connectionType; // e.g., 'wifi', 'cellular', 'none'\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingService {\n loadingSub: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n /**\n * Contains in-progress loading requests\n */\n loadingMap: Map<string, boolean> = new Map<string, boolean>();\n\n constructor() { }\n\n /**\n * Sets the loadingSub property value based on the following:\n * - If loading is true, add the provided url to the loadingMap with a true value, set loadingSub value to true\n * - If loading is false, remove the loadingMap entry and only when the map is empty will we set loadingSub to false\n * This pattern ensures if there are multiple requests awaiting completion, we don't set loading to false before\n * other requests have completed. At the moment, this function is only called from the @link{HttpRequestInterceptor}\n * @param loading {boolean}\n * @param url {string}\n */\n setLoading(loading: boolean, url: string): void {\n if (!url) {\n throw new Error('The request URL must be provided to the LoadingService.setLoading function');\n }\n if (loading === true) {\n this.loadingMap.set(url, loading);\n this.loadingSub.next(true);\n }else if (loading === false && this.loadingMap.has(url)) {\n this.loadingMap.delete(url);\n }\n if (this.loadingMap.size === 0) {\n this.loadingSub.next(false);\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { Capacitor } from '@capacitor/core';\nimport { Platform } from '@ionic/angular';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggingService {\n \n constructor(private platform: Platform) { }\n\n logError(message) {\n\n // Send errors to be saved here\n if (Capacitor.isNativePlatform()) {\n console.error(\"Error log: \", message);\n }else{\n console.error(\"Error log: \", message);\n }\n \n return;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorService {\n\n constructor() { }\n\n\ngetClientMessage(error: any): any {\n\n if(error.constructor == Array){\n return error.toString();\n }else if(error.constructor == Object){\n return JSON.stringify(error);\n }else if(typeof error == 'object'){\n return error.message ? error.message : 'error';\n }else{\n return error;\n } \n \n}\n\ngetClientStack(error: Error): string {\n return error.stack;\n}\n\ngetServerMessage(error: HttpErrorResponse): string {\n \n if(error.constructor == Array){\n return error;\n }else if(error.constructor == Object){\n return JSON.stringify(error);\n }else if(typeof error == 'object'){\n return error.message;\n }else{\n return error;\n } \n \n}\n\ngetServerStack(error: HttpErrorResponse): string {\n // handle stack trace\n return 'stack';\n}\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Capacitor } from '@capacitor/core';\nimport { CallCapacitor } from '@doole/videocall-notications-plugins';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OpentokService {\n\n agendaId$: string;\n token$: string;\n sessionId$: string;\n apiKey$: string;\n\n private callEventSubject = new Subject<ICallEvent>();\n callEvent$ = this.callEventSubject.asObservable();\n\n constructor() {\n if (Capacitor.isNativePlatform()) {\n CallCapacitor.addListener('disconnected-call', () => {\n this.emitCallEvent({ type: \"hangup\" });\n })\n }\n }\n\n emitCallEvent(data: ICallEvent) {\n this.callEventSubject.next(data);\n }\n\n}\n\ninterface ICallEvent {\n type: 'hangup';\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Environment, FIREBASE_CONFIG_TOKEN } from '../configuration';\nimport { Router, RouterEvent, NavigationEnd } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\n// Init for the web\nimport \"@capacitor-community/firebase-analytics\";\nimport {FirebaseAnalytics} from '@capacitor-community/firebase-analytics';\nimport { Platform } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnalyticsService {\n analyticsEnabled = true;\n constructor( @Inject(FIREBASE_CONFIG_TOKEN) private environment: Environment,public platform: Platform,private router: Router) {\n this.initFb();\n this.router.events.pipe(\n filter((e): e is NavigationEnd => e instanceof NavigationEnd),\n ).subscribe((e: RouterEvent) => {\n //console.log('route changed: ', e.url);\n //this.setScreenName(e.url)\n });\n }\n\n async initFb() {\n\n if (this.platform.is('mobileweb')){\n //console.log(\"initializeFirebase: \", environment.firebase)\n await FirebaseAnalytics.initializeFirebase(this.environment.firebase);\n }\n\n\n this.toggleAnalytics();\n }\n\n setUserId(userId) {\n const setUserId = async () => {\n await FirebaseAnalytics.setUserId({\n userId: userId,\n });\n }\n\n return setUserId;\n }\n\n setProperty(property, value) {\n const setUserProperty = async () => {\n await FirebaseAnalytics.setUserProperty({\n name: property,\n value: value,\n });\n };\n\n return setUserProperty\n }\n\n logEvent(name: string, params: Object) {\n const logEvent = async () => {\n await FirebaseAnalytics.logEvent({\n name: name,\n params: params\n });\n }\n\n return logEvent\n }\n\n setScreenName(screenName, nameOverride?) {\n FirebaseAnalytics.setScreenName({\n screenName: screenName,\n nameOverride: nameOverride,\n });\n }\n\n async toggleAnalytics() {\n const setCollectionEnabled = async () => {\n await FirebaseAnalytics.setCollectionEnabled({\n enabled: this.analyticsEnabled,\n });\n }\n\n return setCollectionEnabled;\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { ApiEndpointsService } from '../api-endpoints.service';\nimport { HttpService } from '../http.service';\nimport { HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SharedCarePlanService {\n\n constructor(\n private http: HttpService,\n private api: ApiEndpointsService,\n ) { }\n\n\n getAPI_SCP_goals(): Observable<any> {\n let path = `sharecareplan/goals`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_SCP_goals(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_procedures(): Observable<any> {\n let path = `rehabilify/sharedcareplan/medical-procedures`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_SCP_procedures(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_prescribedApp(): Observable<any> {\n let path = `rehabilify/prescribed-apps`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPI_SCP_procedures(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPI_SCP_StatusContent(): Observable<any> {\n let path = `sharecareplan/content/group/new-content-statuses`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //console.log(`[DooleService] getAPI_SCP_StatusContent(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPIExercises(params?): Observable<any> {\n let path = 'rehabilify/sharedcareplan/exercises';\n const endpoint = this.api.getEndpoint(path);\n let httpParams = new HttpParams()\n httpParams = (params?.tags) ? httpParams.append('tags', params?.tags) : httpParams\n httpParams = (params?.interactions) ? httpParams.append('interactions', params?.interactions) : httpParams\n httpParams = (params?.readingTime) ? httpParams.append('readingTime', params?.readingTime) : httpParams\n\n return this.http.get(endpoint, httpParams).pipe(\n map((res: any) => {\n //console.log(`[DooleService] getAPIExercises(${path}) res: `, res);\n return res;\n })\n );\n }\n\n get_APi_ACP_monitoring(): Observable<any> {\n let path = `rehabilify/sharedcareplan/monitoring`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\nget_APi_ACP_forms(): Observable<any> {\n let path = `rehabilify/sharedcareplan/forms`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n get_APi_ACP_medication(): Observable<any> {\n let path = `rehabilify/sharedcareplan/medication-plan`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] getAPIagendaID(${path}) res: `, res);\n return res;\n })\n );\n }\n\n\n post_API_ACP_declined_acepted(model, model_id, type, coments?): Observable<any> {\n let path = `sharecareplan/content/acepted-or-declined`;\n let params = {\n 'model': model,\n 'model_id': model_id,\n 'type': type,\n 'comments': coments\n \n } \n const endpoint = this.api.getEndpoint(path);\n return this.http.post(endpoint, params).pipe(\n map((res: any) => {\n ////console.log(`[DooleService] postAPIdrugIntake(${path}) res: `, res);\n return res;\n\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n\n canViewGoals:boolean = true\n canManageGoals:boolean = true\n canViewForms:boolean = true\n canViewAnswerForms:boolean = true\n canViewExercises:boolean = true\n canViewDiets:boolean = true\n canViewRecipes:boolean = true\n canViewGames:boolean = true\n canViewMonitoring:boolean = true\n canManageMonitoring:boolean = true\n canViewAdvices:boolean = true\n canViewMedicalProcedures:boolean = true\n canViewNews:boolean = true\n canViewTestimonials:boolean = true\n canViewMedicalTests:boolean = true\n canManageMedicalTests:boolean = true\n canViewMedication:boolean = true\n canManageMedication:boolean = true\n canViewMedicationPlans:boolean = true\n canViewEvents:boolean = true\n canManageEvents:boolean = true\n canAccessVideocall:boolean = true\n canManageMessages:boolean = true\n canSeeCenters:boolean = true\n colorCargiver:boolean = false\n \n\n constructor() { }\n\n setPermissions(permissions:any) {\n this.canViewGoals = permissions.includes(\"canViewGoals\") ? true : false;\n this.canManageGoals = this.canViewGoals && permissions.includes(\"canManageGoals\") ? true : false;\n this.canViewForms = permissions.includes(\"canViewForms\") ? true : false;\n this.canViewAnswerForms = permissions.includes(\"canViewAnswerForms\") ? true : false;\n this.canViewExercises = permissions.includes(\"canViewExercises\") ? true : false;\n this.canViewDiets = permissions.includes(\"canViewDiets\") ? true : false;\n this.canViewRecipes = permissions.includes(\"canViewRecipes\") ? true : false;\n this.canViewGames = permissions.includes(\"canViewGames\") ? true : false; \n this.canViewMonitoring = permissions.includes(\"canViewMonitoring\") ? true : false;\n this.canManageMonitoring = this.canViewMonitoring && permissions.includes(\"canManageMonitoring\") ? true : false;\n this.canViewAdvices = permissions.includes(\"canViewAdvices\") ? true : false;\n this.canViewMedicalProcedures = permissions.includes(\"canViewMedicalProcedures\") ? true : false;\n this.canViewNews = permissions.includes(\"canViewNews\") ? true : false;\n this.canViewTestimonials = permissions.includes(\"canViewTestimonials\") ? true : false;\n this.canViewMedicalTests = permissions.includes(\"canViewMedicalTests\") ? true : false;\n this.canManageMedicalTests = this.canViewMedicalTests && permissions.includes(\"canManageMedicalTests\") ? true : false;\n this.canViewMedication = permissions.includes(\"canViewMedication\") ? true : false;\n this.canManageMedication = this.canViewMedication && permissions.includes(\"canManageMedication\") ? true : false;\n this.canViewMedicationPlans = permissions.includes(\"canViewMedicationPlans\") ? true : false;\n this.canViewEvents = permissions.includes(\"canViewEvents\") ? true : false;\n this.canManageEvents = this.canViewEvents && permissions.includes(\"canManageEvents\") ? true : false;\n this.canAccessVideocall = this.canViewEvents && permissions.includes(\"canAccessVideocall\") ? true : false; \n this.canManageMessages = permissions.includes(\"canManageMessages\") ? true : false;\n this.canSeeCenters = permissions.includes(\"canSeeCenters\") ? true : false; \n this.colorCargiver = permissions.includes(\"colorCargiver\") ? true : false; \n }\n\n resetPermissions(){\n this.canViewGoals = true\n this.canManageGoals = true\n this.canViewForms = true\n this.canViewAnswerForms = true\n this.canViewExercises = true\n this.canViewDiets = true\n this.canViewRecipes = true\n this.canViewGames = true\n this.canViewMonitoring = true\n this.canManageMonitoring = true\n this.canViewAdvices = true\n this.canViewMedicalProcedures = true\n this.canViewNews = true\n this.canViewTestimonials = true\n this.canViewMedicalTests = true\n this.canManageMedicalTests = true\n this.canViewMedication = true\n this.canManageMedication = true\n this.canViewMedicationPlans = true\n this.canViewEvents = true\n this.canManageEvents = true\n this.canManageMessages = true\n this.canSeeCenters= true\n this.canAccessVideocall = true;\n this.colorCargiver=false;\n }\n}\n","import { Inject } from '@angular/core';\nimport { Observable, of, combineLatest, ReplaySubject } from 'rxjs';\nimport { delay, map, startWith } from 'rxjs/operators';\nimport { Environment, FIREBASE_CONFIG_TOKEN } from '../configuration';\n\n\nexport class ShellModel {\n isShell = false;\n \n}\n\nexport class DataStore<T> {\n // We wait on purpose 2 secs on local environment when fetching from json to simulate the backend roundtrip.\n // However, in production you should set this delay to 0 in the environment.prod file.\n // tslint:disable-next-line:max-line-length\n private networkDelay = (this.environment.appShellConfig && this.environment.appShellConfig.networkDelay) ? this.environment.appShellConfig.networkDelay : 0;\n\n private timeline: ReplaySubject<T & ShellModel> = new ReplaySubject(1);\n\n constructor(@Inject(FIREBASE_CONFIG_TOKEN) private environment: Environment,private shellModel: T) { }\n\n // Static function with generics\n // (ref: https://stackoverflow.com/a/24293088/1116959)\n // Append a shell (T & ShellModel) to every value (T) emmited to the timeline\n public static AppendShell<T>(dataObservable: Observable<T>, shellModel: T, networkDelay = 400): Observable<T & ShellModel> {\n const delayObservable = of(true).pipe(\n delay(networkDelay)\n );\n\n // Assign shell flag accordingly\n // (ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n return combineLatest([\n delayObservable,\n dataObservable\n ]).pipe(\n // Dismiss unnecessary delayValue\n map(([delayValue, dataValue]: [boolean, T]): (T & ShellModel) => Object.assign(dataValue, {isShell: false})),\n // Set the shell model as the initial value\n startWith(Object.assign(shellModel, {isShell: true}))\n );\n }\n\n load(dataSourceObservable: Observable<T>, networkDelay?: number): void {\n // tslint:disable-next-line:no-shadowed-variable\n const delay = (typeof networkDelay === 'number') ? networkDelay : this.networkDelay;\n\n let processedDataSource: Observable<any>;\n\n // If no network delay, then don't show shell\n if (delay === 0) {\n processedDataSource = dataSourceObservable;\n } else {\n processedDataSource = DataStore.AppendShell(dataSourceObservable, this.shellModel, delay);\n }\n\n processedDataSource\n .subscribe((dataValue: T & ShellModel) => {\n this.timeline.next(dataValue);\n });\n }\n\n public get state(): Observable<T & ShellModel> {\n return this.timeline.asObservable();\n }\n}\n","import { ShellModel } from '../../../utils/data-store';\n\nexport class FirebaseProfileModel extends ShellModel {\n image: string;\n name: string;\n role: string;\n description: string;\n email: string;\n provider: string;\n phoneNumber: string;\n\n constructor() {\n super();\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { AngularFireAuth } from '@angular/fire/compat/auth';\nimport { Observable, Subject, from, of } from 'rxjs';\nimport { DataStore } from '../../../utils/data-store';\nimport { FirebaseProfileModel } from './firebase-profile.model';\nimport { Platform } from '@ionic/angular';\nimport { filter, map } from 'rxjs/operators';\n\nimport firebase from \"firebase/compat/app\";\n//import { cfaSignIn, cfaSignOut } from 'capacitor-firebase-auth';\nimport { isPlatformBrowser } from '@angular/common';\nimport { User, Auth } from 'firebase/auth';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FirebaseAuthService {\n\n currentUser: User;\n userProviderAdditionalInfo: any;\n profileDataStore: DataStore<FirebaseProfileModel>;\n redirectResult: Subject<any> = new Subject<any>();\n\n\n constructor(\n public angularFire: AngularFireAuth,\n public platform: Platform,\n @Inject(PLATFORM_ID) private platformId: object\n ) {\n if (isPlatformBrowser(this.platformId)) {\n this.angularFire.onAuthStateChanged((user) => {\n if (user) {\n // User is signed in.\n this.currentUser = user;\n } else {\n // No user is signed in.\n this.currentUser = null;\n }\n });\n\n if (!this.platform.is('capacitor')) {\n // when using signInWithRedirect, this listens for the redirect results\n this.angularFire.getRedirectResult()\n .then((result) => {\n // result.credential.accessToken gives you the Provider Access Token. You can use it to access the Provider API.\n if (result.user) {\n this.userProviderAdditionalInfo = result.additionalUserInfo.profile;\n this.redirectResult.next(result);\n }\n }, (error) => {\n this.redirectResult.next({error: error.code});\n });\n }\n }\n }\n\n getRedirectResult(): Observable<any> {\n return this.redirectResult.asObservable();\n }\n\n getPhotoURL(signInProviderId: string, photoURL: string): string {\n // Default imgs are too small and our app needs a bigger image\n switch (signInProviderId) {\n case 'facebook.com':\n return photoURL + '?height=400';\n case 'password':\n return 'https://s3-us-west-2.amazonaws.com/ionicthemes/otros/avatar-placeholder.png';\n case 'twitter.com':\n return photoURL.replace('_normal', '_400x400');\n case 'google.com':\n return photoURL.split('=')[0];\n default:\n return photoURL;\n }\n }\n\n signOut(): Observable<any> {\n if (this.platform.is('capacitor')) {\n //return cfaSignOut();\n } else {\n return from(this.angularFire.signOut());\n }\n return null\n }\n\n signInWithEmail(email: string, password: string): Promise<firebase.auth.UserCredential> {\n return this.angularFire.signInWithEmailAndPassword(email, password);\n }\n\n signUpWithEmail(email: string, password: string): Promise<firebase.auth.UserCredential> {\n return this.angularFire.createUserWithEmailAndPassword(email, password);\n }\n\n socialSignIn(providerName: string, scopes?: Array<string>): Observable<any> {\n if (this.platform.is('capacitor')) {\n //return cfaSignIn(providerName);\n } else {\n\n const provider = new firebase.auth.OAuthProvider(providerName);\n ////console.log(\"provider. \", provider);\n if (scopes) {\n scopes.forEach(scope => {\n provider.addScope(scope);\n });\n }\n\n\n if (this.platform.is('desktop')) {\n return from(this.angularFire.signInWithPopup(provider));\n } else {\n // web but not desktop, for example mobile PWA\n return from(this.angularFire.signInWithRedirect(provider));\n }\n }\n return null\n }\n\n signInWithGoogle() {\n const provider = new firebase.auth.GoogleAuthProvider();\n ////console.log(\"provider: \", provider);\n const scopes = ['profile', 'email'];\n return this.socialSignIn(provider.providerId, scopes);\n }\n\n signInWithTwitter() {\n const provider = new firebase.auth.TwitterAuthProvider();\n return this.socialSignIn(provider.providerId);\n }\n\n public getProfileDataSource(): Observable<FirebaseProfileModel> {\n // we need to do this differentiation because there is a bug in\n // platform capacitor ios when executing this.angularFire.user\n if (this.platform.is('capacitor')) {\n return of(this.setUserModelForProfile());\n } else {\n return this.angularFire.user\n .pipe(\n filter((user: User) => user != null),\n map((user: User) => {\n return this.setUserModelForProfile();\n })\n );\n }\n }\n\n private setUserModelForProfile(): FirebaseProfileModel {\n const userModel = new FirebaseProfileModel();\n const provierData = this.currentUser.providerData[0];\n const userData = this.userProviderAdditionalInfo ? this.userProviderAdditionalInfo : provierData;\n userModel.image = this.getPhotoURL(provierData.providerId, provierData.photoURL);\n userModel.name = userData.name || userData.displayName || 'What\\'s your name?';\n userModel.role = 'How would you describe yourself?';\n userModel.description = userData.description || 'Anything else you would like to share with the world?';\n userModel.phoneNumber = userData.phoneNumber || 'Is there a number where I can reach you?';\n userModel.email = userData.email || 'Where can I send you emails?';\n userModel.provider = (provierData.providerId !== 'password') ? provierData.providerId : 'Credentials';\n\n return userModel;\n }\n\n public getProfileStore(dataSource: Observable<FirebaseProfileModel>): DataStore<FirebaseProfileModel> {\n // Initialize the model specifying that it is a shell model\n const shellModel: FirebaseProfileModel = new FirebaseProfileModel();\n //this.profileDataStore = new DataStore(shellModel);\n // Trigger the loading mechanism (with shell) in the dataStore\n this.profileDataStore.load(dataSource);\n return this.profileDataStore;\n }\n}\n","/*\n * Public API Surface of service-lib\n */\n\nexport * from './lib/service-lib.component';\nexport * from './lib/service-lib.module';\n/*\n * Public API Surface of landing-lib\n */\n\nexport * from './lib/services/api-endpoints.service';\nexport * from './lib/services/authentication.service';\nexport * from './lib/services/change-endpoints.service';\nexport * from './lib/services/encryption.service';\nexport * from './lib/services/token.service';\nexport * from './lib/services/doole.service';\nexport * from './lib/services/navigation.service';\nexport * from './lib/services/language.service';\nexport * from './lib/services/http.service';\nexport * from './lib/services/date.service';\nexport * from './lib/services/highcharts.service';\nexport * from './lib/services/roles.service';\nexport * from './lib/services/storage.service';\nexport * from './lib/services/notification.service';\nexport * from './lib/services/network.service';\nexport * from './lib/services/loading.service';\nexport * from './lib/services/logging.service';\nexport * from './lib/services/error.service';\nexport * from './lib/services/events.service';\nexport * from './lib/services/opentok.service';\nexport * from './lib/services/analytics.service';\n\nexport * from './lib/services/shared-care-plan/shared-care-plan.service';\nexport * from './lib/services/error.service';\nexport * from './lib/services/navigation.service';\nexport * from './lib/services/permission.service';\nexport * from './lib/utils/data-store';\n\nexport * from './lib/services/firebase/auth/firebase-auth.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ChangeEndpointsService","i1.EncryptionService","i2.TokenService","i3.ApiEndpointsService","i4","i7.ChangeEndpointsService","i2.AuthenticationService","i1.AuthenticationService","i4.HttpService","i5.ApiEndpointsService","i6.Events","i7","i8","i9","i1","i2","i3","i1.LanguageService","map","i1.HttpService","i2.ApiEndpointsService"],"mappings":"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"}