@doolehealth/service-lib 0.0.1
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.
- package/README.md +24 -0
- package/esm2022/doolehealth-service-lib.mjs +5 -0
- package/esm2022/lib/configuration.mjs +5 -0
- package/esm2022/lib/models/user.mjs +2 -0
- package/esm2022/lib/service-lib.component.mjs +19 -0
- package/esm2022/lib/service-lib.module.mjs +33 -0
- package/esm2022/lib/services/analytics.service.mjs +73 -0
- package/esm2022/lib/services/api-endpoints.service.mjs +51 -0
- package/esm2022/lib/services/authentication.service.mjs +400 -0
- package/esm2022/lib/services/change-endpoints.service.mjs +90 -0
- package/esm2022/lib/services/date.service.mjs +419 -0
- package/esm2022/lib/services/doole.service.mjs +1299 -0
- package/esm2022/lib/services/encryption.service.mjs +31 -0
- package/esm2022/lib/services/error.service.mjs +49 -0
- package/esm2022/lib/services/events.service.mjs +63 -0
- package/esm2022/lib/services/highcharts.service.mjs +621 -0
- package/esm2022/lib/services/http.service.mjs +124 -0
- package/esm2022/lib/services/language.service.mjs +38 -0
- package/esm2022/lib/services/loading.service.mjs +45 -0
- package/esm2022/lib/services/logging.service.mjs +28 -0
- package/esm2022/lib/services/navigation.service.mjs +41 -0
- package/esm2022/lib/services/network.service.mjs +42 -0
- package/esm2022/lib/services/notification.service.mjs +202 -0
- package/esm2022/lib/services/opentok.service.mjs +25 -0
- package/esm2022/lib/services/roles.service.mjs +44 -0
- package/esm2022/lib/services/storage.service.mjs +37 -0
- package/esm2022/lib/services/token.service.mjs +59 -0
- package/esm2022/lib/util/chatParameters.mjs +17 -0
- package/esm2022/lib/util/data-store.mjs +54 -0
- package/esm2022/lib/util/environment.mjs +29 -0
- package/esm2022/lib/util/language.model.mjs +3 -0
- package/esm2022/lib/util/notification-options.mjs +245 -0
- package/esm2022/lib/util/query-string-parameters.mjs +11 -0
- package/esm2022/lib/util/url-builder.mjs +15 -0
- package/esm2022/public-api.mjs +30 -0
- package/fesm2022/doolehealth-service-lib.mjs +4025 -0
- package/fesm2022/doolehealth-service-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/configuration.d.ts +46 -0
- package/lib/models/user.d.ts +133 -0
- package/lib/service-lib.component.d.ts +5 -0
- package/lib/service-lib.module.d.ts +13 -0
- package/lib/services/analytics.service.d.ts +17 -0
- package/lib/services/api-endpoints.service.d.ts +13 -0
- package/lib/services/authentication.service.d.ts +102 -0
- package/lib/services/change-endpoints.service.d.ts +38 -0
- package/lib/services/date.service.d.ts +58 -0
- package/lib/services/doole.service.d.ts +169 -0
- package/lib/services/encryption.service.d.ts +9 -0
- package/lib/services/error.service.d.ts +11 -0
- package/lib/services/events.service.d.ts +32 -0
- package/lib/services/highcharts.service.d.ts +69 -0
- package/lib/services/http.service.d.ts +28 -0
- package/lib/services/language.service.d.ts +15 -0
- package/lib/services/loading.service.d.ts +22 -0
- package/lib/services/logging.service.d.ts +9 -0
- package/lib/services/navigation.service.d.ts +13 -0
- package/lib/services/network.service.d.ts +14 -0
- package/lib/services/notification.service.d.ts +25 -0
- package/lib/services/opentok.service.d.ts +17 -0
- package/lib/services/roles.service.d.ts +28 -0
- package/lib/services/storage.service.d.ts +10 -0
- package/lib/services/token.service.d.ts +16 -0
- package/lib/util/chatParameters.d.ts +25 -0
- package/lib/util/data-store.d.ts +13 -0
- package/lib/util/environment.d.ts +18 -0
- package/lib/util/language.model.d.ts +4 -0
- package/lib/util/notification-options.d.ts +145 -0
- package/lib/util/query-string-parameters.d.ts +6 -0
- package/lib/util/url-builder.d.ts +9 -0
- package/package.json +38 -0
- package/public-api.d.ts +23 -0
|
@@ -0,0 +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/util/query-string-parameters.ts","../../../projects/service-lib/src/lib/util/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/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/util/notification-options.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/public-api.ts","../../../projects/service-lib/src/doolehealth-service-lib.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'dev-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_DOOLE_ENDPOINT : string;\n DOOLE_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 PUSHERS_CONFIG_TOKEN = new InjectionToken<PushersConfig>('pushers.config');\nexport const FIREBASE_CONFIG_TOKEN = new InjectionToken<Environment>('environment');","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {IonicModule } from '@ionic/angular'\nimport { ServiceLibComponent } from './service-lib.component';\nimport { CONFIGURACION_TOKEN, Configuracion, Environment, FIREBASE_CONFIG_TOKEN, PUSHERS_CONFIG_TOKEN, PusherKey, PushersConfig } from './configuration';\n\nexport interface LibConfig {\n \n}\n\n@NgModule({\n declarations: [ServiceLibComponent],\n imports: [\n CommonModule,\n ],\n exports: [\n ServiceLibComponent\n ]\n})\nexport class ServiceLibModule { \n\n static forRoot(config: Configuracion, configPushers:PushersConfig , environment : Environment ): ModuleWithProviders<ServiceLibModule> {\n return {\n ngModule: ServiceLibModule,\n providers: [\n { provide: CONFIGURACION_TOKEN, useValue: config },\n { provide: PUSHERS_CONFIG_TOKEN, useValue: configPushers },\n { provide: FIREBASE_CONFIG_TOKEN, useValue: environment },\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 { Injectable, Inject } from '@angular/core';\nimport { AngularFireModule } from '@angular/fire/compat';\nimport { BehaviorSubject } from 'rxjs';\nimport { CONFIGURACION_TOKEN, Configuracion, PUSHERS_CONFIG_TOKEN, PusherKey, PushersConfig } from '../configuration';\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 constants: Configuracion,\n @Inject(PUSHERS_CONFIG_TOKEN) private pusher: PushersConfig,) {\n this.addEndPoint()\n this.setDefaultEndPoint()\n }\n\n public async addEndPoint(){ \n this._LIST_ENPOINT = [] \n this._LIST_ENPOINT.push({ \n id:0,\n name: 'enviroment.production', \n api: this.constants.API_DOOLE_ENDPOINT, \n endpoint: this.constants.DOOLE_ENDPOINT,\n device_ios: {ios_push: 'ios_dev', ios_voip: 'iosvoipdev'},\n pusher_key: this.pusher.PUSHER_KEY_PRO,\n color: 'primary',\n settings_bio: 'settings-bio0',\n biometric: 'biometric0',\n show_bio_dialog: 'show-bio-dialog0',\n registered_user: 'registered-user0',\n }) \n this._LIST_ENPOINT.push({\n id:1,\n name: 'enviroment.development', \n api: this.constants.API_ENDPOINT_DEV, \n endpoint: this.constants.ENDPOINT_DEV,\n device_ios: {ios_push: 'ios_dev', ios_voip: 'iosvoipdev'},\n pusher_key: this.pusher.PUSHER_KEY_DEV,\n color: 'warning',\n settings_bio: 'settings-bio1',\n biometric: 'biometric1',\n show_bio_dialog: 'show-bio-dialog1',\n registered_user: 'registered-user1',\n \n })\n // device_ios: {ios_push: 'ios', ios_voip: 'iosvoip'},\n }\n\n public setEndPoint(index){\n console.log(\"DINTRE DEL LIB\");\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.setIndexEndPointLocalstorage(index)\n this._endpointIndex.next(index); \n }\n\n setIndexEndPointLocalstorage(endpoint) {\n localStorage.setItem(ENDPOINT, JSON.stringify(endpoint));\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","\nimport { Injectable } from '@angular/core';\nimport { UrlBuilder } from '../util/url-builder';\nimport { QueryStringParameters } from '../util/query-string-parameters';\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 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 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}\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 TOKEN_KEY = 'token';\nconst INTRO_KEY = 'intro';\nconst TOKENS = 'tokens';\nconst TWO_FACTOR_CENTER = 'two-factor-center';\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 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@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n isAuthenticated: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n public user?: User;\n public isRecovery: boolean = false;\n public action?: string;\n public id_user?: 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 public version_app?:string;\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 : any) {\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);\n //this.registerDevice(this.voipDeviceToken, (this.indexEndPoint!==0)?'iosvoipdev':'iosvoip');\n }\n\n }\n\n this.user = new User(res.idUser, credentials.password, res.name, res.first_name, res.temporary_url);\n \n this.id_user = res.idUser;\n this.setUserLocalstorage(this.user)\n this.setTwoFactor(res.twoFactorCenter)\n if (res?.familyUnit.length > 0) {\n this.user.listFamilyUnit = res.familyUnit;\n }\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: any) {\n console.log(`[AuthenticationService] setUserLocalstorage()`, user);\n Preferences.set({\n key: 'user',\n value: JSON.stringify(user)\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: any): 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: any) {\n this.isFamily = true;\n let s: string = user['name'];\n let fullname = s.split(',');\n this.user = new User(user.id, '', fullname[0].replace(',',''), fullname[1], user.thumbnail);\n this.user.familyUnit = user.id;\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 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(',',''), 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 return Boolean(val.value)\n });\n }\n\n async setShowIntroLocalstorage() {\n await Preferences.set({\n key: 'showIntro',\n value: 'true'\n });\n }\n\n setTwoFactor(tfCenter: any){\n localStorage.setItem('two-factor-center', tfCenter);\n }\n\n async logout1(): Promise<void>{\n console.log('logout');\n this.isAuthenticated.next(false);\n const enviroment = this.endpoints._ENVIROMENT\n //localStorage.removeItem(enviroment?.registered_user)\n await Preferences.remove({ key: 'user' }).then((val) => { });\n return Preferences.remove({ key: TOKEN_KEY });\n }\n\n logout(allDevices?): Observable<any> {\n this.getAllTokenDevices()\n let params = {\n tokens: this.tokens,\n allDevices: allDevices? allDevices: false\n }\n console.log('logout', params );\n let path = 'patient/logout'\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 const enviroment = this.endpoints._ENVIROMENT\n //localStorage.removeItem(enviroment?.registered_user)\n Preferences.remove({ key: 'user' }).then((val) => { });\n Preferences.remove({ key: TOKEN_KEY });\n return res;\n })\n );\n}\ngetAllTokenDevices(){\n let list = JSON.parse(localStorage.getItem(TOKENS))\n this.tokens = list? list:[]\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 console.log(\"response IOSDEV\", platform);\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 };\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.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 localStorage.setItem(TOKENS,JSON.stringify(this.tokens))\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 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 async redirectUnauthenticated() {\n const translateService = this.injector.get(TranslateService)\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\n setCanceledGoogleFitLocalstorage(mostrar: string) {\n localStorage.setItem('cancelGoogleFit', mostrar);\n }\n\n getCanceledGoogleFitLocalstorage():boolean {\n const value = localStorage.getItem('cancelGoogleFit')\n console.log(\"Booelan: \", value);\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 '../services/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): any {\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 { FileTransfer, FileUploadOptions, FileTransferObject } from '@awesome-cordova-plugins/file-transfer/ngx';\nimport { ApiEndpointsService } from '../services/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 { File } from '@awesome-cordova-plugins/file/ngx';\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 '../util/query-string-parameters';\nimport { ShellChatModel, ShellMessageModel, ShellRecipientModel } from '../util/chatParameters';\nimport { AuthenticationService } from '../services/authentication.service'\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 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.getDooleEndpoint('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\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 console.log(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 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 downloadFile(url, destination): Observable<any> {\n var result: any = [];\n const fileTransfer: FileTransferObject = this.transfer.create();\n var path = null;\n\n if (this.platform.is('ios')) {\n path = this.file.documentsDirectory;\n } else {\n path = this.file.dataDirectory;\n }\n\n //console.log(\"downloadFile\", url, destination, 'path,destination', path, destination);\n return new Observable((observer) => {\n //console.log(\"before CheckFile\", this.file);\n this.file.checkFile(path, destination).then(res => {\n //console.log(\"*res*\", res);\n if (res) {\n //console.log(\"exists\", res);\n result[\"success\"] = true;\n result[\"downloaded\"] = true;\n result[\"file\"] = path + destination;//normalizeURL(this.file.cacheDirectory + destination);\n result[\"fileNormalized\"] = Capacitor.convertFileSrc(path + destination);\n return observer.next(result);\n }\n }, error => {\n //console.log(\"not exists\");\n fileTransfer.onProgress(event => { //descarreguem\n if (event.lengthComputable) {\n //console.log(event.loaded / event.total);\n result[\"status\"] = \"downloading\";\n result[\"downloaded\"] = false;\n result[\"percent\"] = Math.round((event.loaded / event.total) * 100);\n return observer.next(result);\n }\n });\n\n return fileTransfer.download(url, path + destination).then((entry) => {\n //console.log('*download:* ' + url + \" \" + entry.toURL());\n result[\"success\"] = true;\n result[\"downloaded\"] = true;\n result[\"file\"] = entry.toURL();//normalizeURL(this.file.cacheDirectory + destination);\n result[\"fileNormalized\"] = Capacitor.convertFileSrc(path + destination);\n return observer.next(result);\n }, (error) => {\n //console.log(error);\n result[\"success\"] = false;\n result[\"downloaded\"] = false;\n //console.log(\"error download \" + url);\n //console.log(result);\n return observer.next(result);\n })\n });\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 header: 'Info',\n message: message,\n backdropDismiss: false,\n buttons: ['OK']\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 header: header,\n message: message,\n backdropDismiss: dismiss,\n buttons: [\n {\n text: 'OK',\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 : 'Ok'\n const alert = await this.alertController.create({\n cssClass: 'my-alert-class',\n message: message,\n buttons: [buttonName]\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 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\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 getAPIStaffSlots(params: { id: number, date: string }): Observable<any> {\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 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\n getAPIinformationSummary(params: Object){\n let path = 'home'\n const endpoint = this.api.getEndpoint(path);\n console.log('home params', params)\n return this.http.post(endpoint, params).pipe(\n map(res => res)\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 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 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 //forms-Tracking\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 //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 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 \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 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 getAPIdetailDiets(id: any): Observable<any> {\n let path = `diet/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).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 const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //console.log(`[DooleService] getAPIdetailRecipe(${path}) res: `, res);\n return res;\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 /** get news **/\n getAPIlistNews(): Observable<any> {\n let path = 'user/news';\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).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 return this.http.get(endpoint).pipe(\n map((res: any) => {\n //console.log(`[DooleService] getAPIdetailNew(${path}) res: `, res);\n return res;\n })\n );\n }\n\n getAPISearchNews(query: any): Observable<any> {\n let path = 'news';\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] getAPISearchNews(${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 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 getAPIdetailAdvices(id: any): Observable<any> {\n let path = `advice/${id}`;\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n //console.log(`[DooleService] getAPIdetailAdvices(${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 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 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 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 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 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 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 getAPILevelInfo(challengeId, levelId, params?): Observable<any> {\n let path = 'user/challenge/'+challengeId+'/level/'+ levelId+'/goals'\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n console.log(`[DooleService] getAPILevelInfo(${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 getAPIChallenges( params?): Observable<any> {\n let path = 'user/challenges'\n\n const endpoint = this.api.getEndpoint(path);\n return this.http.get(endpoint).pipe(\n map((res: any) => {\n console.log(`[DooleService] getAPIChallenges(${path}) res: `, res);\n return res;\n })\n );\n }\n\n\n\n\n getAPImessage(id, params): Observable<any> {\n let path = 'user/message/' + id\n let httpParams = new HttpParams();\n httpParams = params?.page? httpParams.append('page', params?.page) : httpParams\n httpParams = params?.user? httpParams.append('user', params?.user) : 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 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 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\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 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\n setPushNotification(pushNotification: any){\n this.pushNotification = pushNotification;\n }\n\n getPushNotification(){\n return this.pushNotification;\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 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 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\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Location } from \"@angular/common\";\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n\n private history: string[] = [];\n \n constructor(private router: Router, private location: Location, /* private modalCtrl: ModalController */) {\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.pop();\n if (this.history?.length > 0)\n this.location.back()\n else \n this.router.navigateByUrl(\"/home\");\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}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LanguageModel } from '../util/language.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n languages: Array<LanguageModel> = new Array<LanguageModel>();\n\n constructor(public translate: TranslateService, ) {\n this.languages.push(\n { name: 'Català', code: 'ca' },\n { name: 'Español', code: 'es' },\n { name: 'English', code: 'en' }\n );\n }\n\n getLanguages() {\n return this.languages;\n }\n\n public changeLanguage(langCode: string) {\n\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 getLanguageAPI() : string {\n let lang = this.translate.currentLang ? this.translate.currentLang : this.translate.getDefaultLang();\n return lang == 'es'?'cs':lang;\n }\n\n public setLenguageLocalstorage(language){\n this.changeLanguage(language);\n localStorage.setItem('language', 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 date;\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 getLocale(){\n let lang = this.translate.currentLang;\n let locale = 'es-ES'\n if(lang === 'ca'){\n locale = 'ca-ES'\n }else if(lang === 'en')\n locale = 'en-US';\n\n return locale;\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 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 ddMMMyyyformat(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 }\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\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 date;\n\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 date;\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\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 }\n return date;\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 public yyyyMMddTHHmmssSSSZFormat(date?){\n const fechaFormateada =this.datePipe.transform(date, 'yyyy-MM-ddTHH:mm:ss.SSS\\'Z\\'');\n return fechaFormateada;\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\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 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 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) {\n const datePipe: DatePipe = new DatePipe(this.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 dateString = this.getLongFormat();\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 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\n}\n","import { Injectable } from '@angular/core';\nimport { LanguageService } from './language.service'\nimport * as HighCharts from 'highcharts';\nimport highchartsMore from 'highcharts/highcharts-more';\nhighchartsMore(HighCharts);\nimport moment from 'moment';\nimport { DatePipe } from '@angular/common';\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 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 ) { }\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 break;\n }\n }\n\n addTooltip(interval: string) {\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 this.withTooltip = false;\n break;\n default:\n this.withTooltip = false;\n break;\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 //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(this.returnShortDate(), { month: 'short' }) + '/' + elementDate.getFullYear()+' '+groupByDate;\n break;\n case '1w':\n let date = this.formatSelectedDate(element.date_value)\n let day = date.toLocaleString(this.returnShortDate(), { 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(this.returnShortDate(), { 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(this.returnShortDate(), { 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(this.returnShortDate(), { month: 'short' })\n groupByDate = this.titleCase(groupByDate) ;\n tooltip = month.toLocaleString(this.returnShortDate(), { month: 'short' }) + '/' + month.getFullYear();\n break;\n default:\n break\n }\n return {groupByDate: groupByDate, tooltip: tooltip}\n }\n\n returnShortDate(): string{\n const idioma = this.setLocale();\n switch (idioma) {\n case 'es':\n return 'es-ES';\n case 'en':\n return 'en-US';\n case 'ca':\n return 'ca-ES';\n case 'fr':\n return 'fr-FR';\n default:\n return idioma;\n }\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\n // Con este codigo solo se hace sumatoria de los pasos en los dias. los demas atributos solo muestra el ultimo valor\n if(element.element_id !== 38){//aca es 38\n if (!groups[group.groupByDate]) { \n groups[group.groupByDate] = [];\n groups[group.groupByDate].value = value;\n groups[group.groupByDate].tooltip = group.tooltip}\n // }\n }else{\n \n groups[group.groupByDate].value += value;\n groups[group.groupByDate].tooltip = group.tooltip \n }})\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 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){\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 }\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 )\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){\n this.component = new ComponentsApp(goal, advices, news, agenda, reminder, diet, drug, game, element, form, chat, doc_diagnostic, contacta )\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","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}\n\nexport enum ContentTypePath {\n //ADVICES\n Advices = '/advices',\n AdvicesDetail= '/advices-detail',\n //AGENDA\n Agenda = '/agenda',\n AgendaAppointment = Agenda + '/list-appointment',\n AgendaDetail= Agenda +'/detail',\n\n //CHALLENGES\n Challenges = '/profile/challenges',\n ChallengesDetail = '/home/health-path/detail',\n //DIETS \n Diets= '/journal', \n DietsDetail= Diets + '/diets-detail',\n //EXERCISE\n Exercises= '/exercices', \n ExercisesDetail = Exercises + '/exercices-detail',\n //FORM\n Forms= '/tracking', \n FormDetail = '/tracking/form',\n //GAME \n Games= '/journal', // '/games'\n GamesDetail = '/journal/games-detail',\n //GOALS \n Goals = '/profile/goals',\n //HOME\n Home = '/home',\n //MEDICAL PROCEDURES\n MedicalProcedure= '/procedures', \n //MEDICAL TEST\n MedicalTest= '/document-detail', \n //MEDICATION\n Medication= '/jounal/', \n MedicationDetail = '/drugs-detail', // Medication Plan\n //MESSAGE\n Message = '/contact/chat/conversation',\n //GRAPHIS\n Monitoring= '/activity-goal', \n //NEWS\n News = '/news',\n NewsDetail = '/new-detail',\n //REMINDERS\n ReminderDetail = '/agenda/reminder/',\n\n //TRACKING OR FOLLOW UP\n Tracking= '/tracking',\n //INFORMED COSENT\n InformedConsent = '/informed-consent', \n //medical-directory\n MedicalDirectory = '/medical-directory', \n //AgenderCIta\n Bookings = '/bookings', \n\n}","import { Injectable, NgZone } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\nimport { AlertController, Platform, ToastController } from '@ionic/angular';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ContentTypePath } from \"../util/notification-options\"\nimport { Router } from '@angular/router';\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 private _zone: NgZone, private platform: Platform, private router: Router,\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 redirecPushNotification(data, notification?) {\n\n\n switch (data.action) {\n\n case \"SHARECAREPLAN\":\n this._zone.run(() => {\n this.router.navigate( [ContentTypePath.Home], { state: { data: data, openNotificationAlertDialog: true} });\n });\n\n break;\n\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\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 \"FORM\":\n this._zone.run(() => {\n this.router.navigate( [ContentTypePath.Forms, { id: data.id }], { state: { data: data } });\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 \"VIDEOCALL\":\n //return \"VIDEOCALL\";\n break;\n case \"ADVICE\":\n this._zone.run(() => {\n this.router.navigateByUrl('/home').then(() => {\n this.router.navigate( [ContentTypePath.AdvicesDetail], { state: { data: data, id: data.id }});\n });\n });\n break;\n case \"NEWS\":\n this._zone.run(() => {\n this.router.navigateByUrl('/home').then(() => {\n this.router.navigate( [ContentTypePath.NewsDetail],{state:{data:data, id:data.id}});\n });\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 \"AGENDA\":\n this._zone.run(() => {\n this.router.navigate( [ContentTypePath.AgendaDetail], { 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 \"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 \"EXERCISE\":\n this._zone.run(() => {\n this.router.navigate([ContentTypePath.Exercises], { state: { data: data, id: data.id, programable_id: data.programable_play_id } });\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\n","import { Injectable } from '@angular/core';\nimport { Network } from '@awesome-cordova-plugins/network/ngx';\nimport { Platform } from '@ionic/angular';\nimport { fromEvent, merge, of, Observable } from 'rxjs';\nimport { mapTo } from 'rxjs/operators';\nimport { Capacitor } from '@capacitor/core';\n@Injectable({\n providedIn: 'root'\n})\nexport class NetworkService {\n\n private online$: Observable<boolean> = undefined;\n\n constructor(public network: Network, public platform: Platform) {\n this.online$ = new Observable(observer => {\n observer.next(true);\n }).pipe(mapTo(true));\n\n if (Capacitor.isNativePlatform()) {\n // on Device\n console.log('on Device');\n this.online$ = merge(\n this.network.onConnect().pipe(mapTo(true)),\n this.network.onDisconnect().pipe(mapTo(false))\n );\n } else {\n // on Browser\n console.log('on Browser');\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 getNetworkType(): string {\n return this.network.type;\n }\n\n public getNetworkStatus(): Observable<boolean> {\n return this.online$;\n }\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 { Platform } from '@ionic/angular';\nimport { Capacitor } from '@capacitor/core';\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 { 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 CallCapacitor.addListener('disconnected-call', () => {\n this.emitCallEvent({ type: \"hangup\" });\n })\n }\n\n emitCallEvent(data: ICallEvent) {\n this.callEventSubject.next(data);\n }\n\n}\n\ninterface ICallEvent {\n type: 'hangup';\n}\n","import { Injectable, Inject } from '@angular/core';\n\n// Init for the web\nimport {FirebaseAnalytics} from '@capacitor-community/firebase-analytics';\nimport { Platform } from '@ionic/angular';\nimport { Environment, FIREBASE_CONFIG_TOKEN } from '../configuration';\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) {\n this.initFb();\n }\n\n async initFb() {\n\n if (this.platform.is('mobileweb')){\n console.log(\"initializeFirebase: \", this.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 async setScreenName(screenName, nameOverride?) {\n await 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","/*\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ChangeEndpointsService","TOKEN_KEY","i1.EncryptionService","i2.TokenService","i3.ApiEndpointsService","i4","i7.ChangeEndpointsService","i2.AuthenticationService","i1.AuthenticationService","i2","i4.HttpService","i5.ApiEndpointsService","i6.Events","i7","i8","i1","i1.LanguageService","i3"],"mappings":"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"}
|