@doolehealth/service-lib 0.0.4 → 0.0.6
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 +112 -13
- package/esm2022/lib/configuration.mjs +1 -1
- package/esm2022/lib/models/notifications/notification-options.mjs +192 -0
- package/esm2022/lib/models/shared-care-plan.mjs +223 -0
- package/esm2022/lib/models/user.mjs +1 -1
- package/esm2022/lib/service-lib.component.mjs +5 -5
- package/esm2022/lib/service-lib.module.mjs +4 -4
- package/esm2022/lib/services/analytics.service.mjs +20 -11
- package/esm2022/lib/services/api-endpoints.service.mjs +22 -6
- package/esm2022/lib/services/authentication.service.mjs +74 -52
- package/esm2022/lib/services/change-endpoints.service.mjs +46 -22
- package/esm2022/lib/services/date.service.mjs +106 -45
- package/esm2022/lib/services/doole.service.mjs +658 -221
- package/esm2022/lib/services/encryption.service.mjs +3 -3
- package/esm2022/lib/services/error.service.mjs +3 -3
- package/esm2022/lib/services/events.service.mjs +5 -5
- package/esm2022/lib/services/firebase/auth/firebase-auth.service.mjs +154 -0
- package/esm2022/lib/services/firebase/auth/firebase-profile.model.mjs +7 -0
- package/esm2022/lib/services/health.service.mjs +303 -0
- package/esm2022/lib/services/highcharts.service.mjs +37 -67
- package/esm2022/lib/services/http.service.mjs +14 -14
- package/esm2022/lib/services/language.model.mjs +3 -0
- package/esm2022/lib/services/language.service.mjs +6 -6
- package/esm2022/lib/services/loading.service.mjs +3 -3
- package/esm2022/lib/services/logging.service.mjs +4 -4
- package/esm2022/lib/services/navigation.service.mjs +108 -9
- package/esm2022/lib/services/network.service.mjs +7 -7
- package/esm2022/lib/services/notification.service.mjs +10 -96
- package/esm2022/lib/services/opentok.service.mjs +10 -7
- package/esm2022/lib/services/permission.service.mjs +94 -0
- package/esm2022/lib/services/roles.service.mjs +9 -8
- package/esm2022/lib/services/shared-care-plan/shared-care-plan.service.mjs +103 -0
- package/esm2022/lib/services/storage.service.mjs +3 -3
- package/esm2022/lib/services/token.service.mjs +7 -7
- package/esm2022/lib/utils/chatParameters.mjs +17 -0
- package/esm2022/lib/utils/data-store.mjs +62 -0
- package/esm2022/lib/utils/query-string-parameters.mjs +11 -0
- package/esm2022/lib/utils/url-builder.mjs +15 -0
- package/esm2022/public-api.mjs +8 -9
- package/fesm2022/doolehealth-service-lib.mjs +2055 -1228
- package/fesm2022/doolehealth-service-lib.mjs.map +1 -1
- package/lib/configuration.d.ts +4 -2
- package/lib/{util → models/notifications}/notification-options.d.ts +0 -32
- package/lib/models/shared-care-plan.d.ts +206 -0
- package/lib/models/user.d.ts +2 -0
- package/lib/service-lib.component.d.ts +1 -1
- package/lib/services/analytics.service.d.ts +6 -3
- package/lib/services/api-endpoints.service.d.ts +3 -0
- package/lib/services/authentication.service.d.ts +27 -25
- package/lib/services/change-endpoints.service.d.ts +1 -0
- package/lib/services/date.service.d.ts +15 -8
- package/lib/services/doole.service.d.ts +64 -23
- package/lib/services/{auth → firebase/auth}/firebase-auth.service.d.ts +1 -1
- package/lib/services/{auth → firebase/auth}/firebase-profile.model.d.ts +1 -1
- package/lib/services/health.service.d.ts +49 -0
- package/lib/services/highcharts.service.d.ts +1 -2
- package/lib/services/http.service.d.ts +1 -1
- package/lib/services/language.service.d.ts +1 -1
- package/lib/services/navigation.service.d.ts +6 -1
- package/lib/services/notification.service.d.ts +2 -7
- package/lib/services/permission.service.d.ts +33 -0
- package/lib/services/roles.service.d.ts +3 -2
- package/lib/services/shared-care-plan/shared-care-plan.service.d.ts +20 -0
- package/lib/{util → utils}/data-store.d.ts +3 -1
- package/package.json +2 -15
- package/public-api.d.ts +7 -8
- package/esm2022/lib/services/auth/firebase-auth.service.mjs +0 -155
- package/esm2022/lib/services/auth/firebase-profile.model.mjs +0 -7
- package/esm2022/lib/services/pusher/pusher-alarm.service.mjs +0 -39
- package/esm2022/lib/services/pusher/pusher-challenge-notifications.service.mjs +0 -110
- package/esm2022/lib/services/pusher/pusher-connection.service.mjs +0 -73
- package/esm2022/lib/services/pusher/pusher-message.service.mjs +0 -27
- package/esm2022/lib/services/pusher/pusher-notification.service.mjs +0 -116
- package/esm2022/lib/util/chatParameters.mjs +0 -17
- package/esm2022/lib/util/data-store.mjs +0 -54
- package/esm2022/lib/util/environment.mjs +0 -29
- package/esm2022/lib/util/language.model.mjs +0 -3
- package/esm2022/lib/util/notification-options.mjs +0 -245
- package/esm2022/lib/util/query-string-parameters.mjs +0 -11
- package/esm2022/lib/util/url-builder.mjs +0 -15
- package/lib/services/pusher/pusher-alarm.service.d.ts +0 -16
- package/lib/services/pusher/pusher-challenge-notifications.service.d.ts +0 -40
- package/lib/services/pusher/pusher-connection.service.d.ts +0 -24
- package/lib/services/pusher/pusher-message.service.d.ts +0 -13
- package/lib/services/pusher/pusher-notification.service.d.ts +0 -32
- package/lib/util/environment.d.ts +0 -18
- /package/lib/{util → services}/language.model.d.ts +0 -0
- /package/lib/{util → utils}/chatParameters.d.ts +0 -0
- /package/lib/{util → utils}/query-string-parameters.d.ts +0 -0
- /package/lib/{util → utils}/url-builder.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,24 +1,123 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Guía para Compilar y Publicar la Librería `service-lib`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Introducción
|
|
4
|
+
Este documento detalla el proceso para compilar y publicar la librería interna `service-lib` de manera eficiente y organizada. Sigue estos pasos para garantizar que el paquete cumpla con los estándares de la empresa.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
---
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
> Note: Don't forget to add `--project service-lib` or else it will be added to the default project in your `angular.json` file.
|
|
8
|
+
## 1. Compilar la Librería
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### Paso 1: Verificar la Configuración
|
|
11
|
+
Antes de comenzar, asegúrate de que el archivo `package.json` de tu librería tenga el formato correcto en el campo `name`:
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"name": "@doolehealth/service-lib",
|
|
16
|
+
"version": "x.x.x", // Asegúrate de usar el formato correcto de versionado semántico
|
|
17
|
+
...
|
|
18
|
+
}
|
|
19
|
+
```
|
|
13
20
|
|
|
14
|
-
|
|
21
|
+
### Paso 2: Ejecutar el Comando de Build
|
|
15
22
|
|
|
16
|
-
|
|
23
|
+
Para compilar la librería, utiliza el comando:
|
|
17
24
|
|
|
18
|
-
|
|
25
|
+
```bash
|
|
26
|
+
ng build service-lib
|
|
27
|
+
```
|
|
28
|
+
Esto generará un directorio `dist/service-lib` donde se encontrará la versión compilada de la librería.
|
|
19
29
|
|
|
20
|
-
|
|
30
|
+
---
|
|
21
31
|
|
|
22
|
-
##
|
|
32
|
+
## 2. Publicar la Librería en NPM
|
|
33
|
+
|
|
34
|
+
### Paso 1: Verificar el Package Ready para Publicar
|
|
35
|
+
|
|
36
|
+
1. Ve al directorio generado al compilar la librería:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
cd dist/service-lib
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
2. Asegúrate de que el archivo `package.json` tenga el nombre correcto, siguiendo el formato:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"name": "@doolehealth/service-lib",
|
|
47
|
+
"version": "x.x.x",
|
|
48
|
+
"main": "index.js",
|
|
49
|
+
...
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Paso 2: Autenticarse en NPM
|
|
54
|
+
Si no estás autenticado en tu cuenta de NPM, ejecuta:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm login
|
|
58
|
+
```
|
|
59
|
+
Esto te pedirá:
|
|
60
|
+
- Tu usuario de NPM.
|
|
61
|
+
- Contraseña.
|
|
62
|
+
- Correo electrónico asociado.
|
|
63
|
+
|
|
64
|
+
### Paso 3: Publicar en NPM
|
|
65
|
+
|
|
66
|
+
Desde el directorio `dist/service-lib`, ejecuta:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm publish
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Nota:** Asegúrate de que la versión de la librería no sea repetida. Si intentas publicar con una versión existente, NPM rechazará la publicación.
|
|
73
|
+
|
|
74
|
+
Si es necesario, actualiza la versión en el `package.json` antes de publicar. Por ejemplo, incrementa la versión en el formato **semántico** (major.minor.patch):
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
"version": "1.0.1"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Paso 4: Confirmar la Publicación
|
|
81
|
+
|
|
82
|
+
Una vez publicada, puedes verificar que la librería esté disponible ejecutando:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npm view @doolehealth/service-lib
|
|
86
|
+
```
|
|
87
|
+
Esto mostrará información de la versión publicada y otros detalles.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 3. Notas Importantes
|
|
92
|
+
|
|
93
|
+
1. **Verificar Dependencias**: Antes de compilar y publicar, asegúrate de que todas las dependencias necesarias estén correctamente instaladas.
|
|
94
|
+
2. **Evitar Versiones Duplicadas**: Cada nueva versión publicada debe tener un número único. Utiliza versionado semántico para mantener el control.
|
|
95
|
+
3. **Publicación Interna**: Este proceso es para publicar librerías internas de la empresa y no deben ser accesibles al público general.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Resumen de Comandos
|
|
100
|
+
|
|
101
|
+
1. Compilar la librería:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
ng build service-lib
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
2. Acceder al directorio compilado:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
cd dist/service-lib
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
3. Publicar en NPM:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npm publish
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
**ATENCIÓN:**
|
|
122
|
+
- La configuración del `name` en el `package.json` debe seguir el formato `@doolehealth/nombrelibreria`.
|
|
23
123
|
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -2,4 +2,4 @@ import { InjectionToken } from '@angular/core';
|
|
|
2
2
|
export const CONFIGURACION_TOKEN = new InjectionToken('configuracion');
|
|
3
3
|
export const PUSHERS_CONFIG_TOKEN = new InjectionToken('pushers.config');
|
|
4
4
|
export const FIREBASE_CONFIG_TOKEN = new InjectionToken('environment');
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NlcnZpY2UtbGliL3NyYy9saWIvY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0QvQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsZUFBZSxDQUFDLENBQUM7QUFDdEYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQWdCLGdCQUFnQixDQUFDLENBQUM7QUFDeEYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYWNpb24ge1xuICBMSVNUX0VOUE9JTlQ6IEFycmF5PGFueT47XG4gIElOREVYOiBudW1iZXI7XG4gIEFQSV9QUk9EX0VORFBPSU5UOnN0cmluZztcbiAgUFJPRF9FTkRQT0lOVDpzdHJpbmc7XG4gIEFQSV9QUkVfRU5EUE9JTlQ6c3RyaW5nO1xuICBQUkVfRU5EUE9JTlQ6c3RyaW5nO1xuICBBUElfRU5EUE9JTlRfREVWOiBzdHJpbmc7XG4gIEVORFBPSU5UX0RFVjogc3RyaW5nO1xuICBhcHBsZUFwcElkOiBzdHJpbmc7XG4gIGFuZHJvaWRCdW5kbGVJZDogc3RyaW5nO1xuICBWSURFT0NBTExfVVJMOiBzdHJpbmc7XG4gIFBSSU1BUllfQ09MT1I6IHN0cmluZztcbiAgZ29vZ2xlRml0UGFja2FnZUlEIDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1c2hlcnNDb25maWcge1xuICBQVVNIRVJfS0VZX1BSTzogUHVzaGVyS2V5O1xuICBQVVNIRVJfS0VZX0RFVjogUHVzaGVyS2V5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1c2hlcktleXsgXG4gIGFwcF9pZDogc3RyaW5nLCBcbiAga2V5OiBzdHJpbmcsIFxuICBzZWNyZXQ6IHN0cmluZywgXG4gIGNsdXN0ZXI6IHN0cmluZywgXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnR7IFxuICBwcm9kdWN0aW9uOiBib29sZWFuLCBcbiAgYXBwU2hlbGxDb25maWc6IEFwcFNoZWxsQ29uZmlnLCBcbiAgZmlyZWJhc2U6IEZpcmViYXNlLCBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBTaGVsbENvbmZpZ3sgXG4gIGRlYnVnOiBib29sZWFuLCBcbiAgbmV0d29ya0RlbGF5OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaXJlYmFzZXsgXG4gIGFwaUtleTogc3RyaW5nLCBcbiAgYXV0aERvbWFpbjogc3RyaW5nLCBcbiAgZGF0YWJhc2VVUkw6IHN0cmluZywgXG4gIHByb2plY3RJZDogc3RyaW5nLCBcbiAgc3RvcmFnZUJ1Y2tldDogc3RyaW5nLCBcbiAgbWVzc2FnaW5nU2VuZGVySWQ6IHN0cmluZywgXG4gIGFwcElkOiBzdHJpbmcsIFxuICBtZWFzdXJlbWVudElkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IENPTkZJR1VSQUNJT05fVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29uZmlndXJhY2lvbj4oJ2NvbmZpZ3VyYWNpb24nKTtcbmV4cG9ydCBjb25zdCBQVVNIRVJTX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQdXNoZXJzQ29uZmlnPigncHVzaGVycy5jb25maWcnKTtcbmV4cG9ydCBjb25zdCBGSVJFQkFTRV9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48RW52aXJvbm1lbnQ+KCdlbnZpcm9ubWVudCcpOyJdfQ==
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
export var NotificationsType;
|
|
2
|
+
(function (NotificationsType) {
|
|
3
|
+
NotificationsType["ADVICES"] = "advices";
|
|
4
|
+
NotificationsType["AGENDA"] = "agenda";
|
|
5
|
+
NotificationsType["COMMUNICATIONS"] = "communications";
|
|
6
|
+
NotificationsType["DIETS"] = "diets";
|
|
7
|
+
NotificationsType["EXERCISES"] = "exercises";
|
|
8
|
+
NotificationsType["FORMS"] = "forms";
|
|
9
|
+
NotificationsType["GAMES"] = "games";
|
|
10
|
+
NotificationsType["GOALS"] = "goals";
|
|
11
|
+
NotificationsType["MEDICATIONS"] = "medication_plans";
|
|
12
|
+
NotificationsType["MESSAGES"] = "messages";
|
|
13
|
+
NotificationsType["NEWS"] = "news";
|
|
14
|
+
NotificationsType["OFFERS"] = "offers";
|
|
15
|
+
NotificationsType["PROMOTE_CONTENT"] = "promote-content";
|
|
16
|
+
NotificationsType["PROCEDURES"] = "medical_procedures";
|
|
17
|
+
NotificationsType["REMINDERS"] = "reminder";
|
|
18
|
+
//Shared care plan
|
|
19
|
+
NotificationsType["MONITORING"] = "monitoring";
|
|
20
|
+
NotificationsType["INFORMED_CONSENT"] = "informed_consent";
|
|
21
|
+
NotificationsType["LIFE_STILE_HABITS"] = "life_style_habits";
|
|
22
|
+
NotificationsType["SHARED_CARE_PLAN"] = "shared_care_plan";
|
|
23
|
+
NotificationsType["AddButtonMedicalTest"] = "add_document";
|
|
24
|
+
NotificationsType["TESTIMONIALS"] = "testimonials";
|
|
25
|
+
NotificationsType["AddButtonTodayDrug"] = "drugs-detail";
|
|
26
|
+
NotificationsType["AddButtonHealthCharts"] = "activity-goal";
|
|
27
|
+
})(NotificationsType || (NotificationsType = {}));
|
|
28
|
+
export var NotificationsTypeBO;
|
|
29
|
+
(function (NotificationsTypeBO) {
|
|
30
|
+
NotificationsTypeBO["ADVICES"] = "App\\Advice";
|
|
31
|
+
NotificationsTypeBO["AGENDA"] = "App\\Agenda";
|
|
32
|
+
NotificationsTypeBO["CHALLENGE_LEVEL"] = "App\\LevelAccomplishment";
|
|
33
|
+
NotificationsTypeBO["DIAGNOSTIC_TEST"] = "App\\DiagnosticTest";
|
|
34
|
+
NotificationsTypeBO["DIETS"] = "App\\Diet";
|
|
35
|
+
NotificationsTypeBO["DRUG"] = "App\\DrugIntake";
|
|
36
|
+
NotificationsTypeBO["EXERCISES"] = "App\\Exercise";
|
|
37
|
+
NotificationsTypeBO["FORMS"] = "App\\FormAnswer";
|
|
38
|
+
NotificationsTypeBO["GAMES"] = "App\\Game";
|
|
39
|
+
NotificationsTypeBO["GAME_PLAY"] = "App\\GamePlay";
|
|
40
|
+
//GOALS = "App\\Goalable",
|
|
41
|
+
NotificationsTypeBO["MEDICAL_PROCEDURE"] = "App\\MedicalProcedure";
|
|
42
|
+
NotificationsTypeBO["MEDICATIONS"] = "App\\MedicationPlan";
|
|
43
|
+
NotificationsTypeBO["MESSAGES"] = "App\\Message";
|
|
44
|
+
NotificationsTypeBO["NEWS"] = "App\\News";
|
|
45
|
+
NotificationsTypeBO["PROGRAMABLE_PLAY"] = "App\\ProgramablePlay";
|
|
46
|
+
NotificationsTypeBO["REMINDERS"] = "App\\Reminder";
|
|
47
|
+
NotificationsTypeBO["REMINDERS_EXECUTION"] = "App\\ReminderExecution";
|
|
48
|
+
NotificationsTypeBO["SHARED_CARE_PLAN"] = "App\\ShareCarePlan";
|
|
49
|
+
})(NotificationsTypeBO || (NotificationsTypeBO = {}));
|
|
50
|
+
export var NOTIFICATIONS_TYPE_BO;
|
|
51
|
+
(function (NOTIFICATIONS_TYPE_BO) {
|
|
52
|
+
NOTIFICATIONS_TYPE_BO["AGENDA"] = "App\\Notifications\\AgendaCreated";
|
|
53
|
+
NOTIFICATIONS_TYPE_BO["APPOINTMENTS_VISIT"] = "App\\Notifications\\VisitOnlineNotification";
|
|
54
|
+
NOTIFICATIONS_TYPE_BO["ADVICES"] = "App\\Notifications\\AdviceCreated";
|
|
55
|
+
NOTIFICATIONS_TYPE_BO["CHALLENGE_LEVEL"] = "App\\Notifications\\LevelAccomplishmentCompletedNotification";
|
|
56
|
+
NOTIFICATIONS_TYPE_BO["DIETS"] = "App\\Notifications\\DietCreated";
|
|
57
|
+
NOTIFICATIONS_TYPE_BO["DRUG"] = "App\\Notifications\\DrugIntakeTime";
|
|
58
|
+
NOTIFICATIONS_TYPE_BO["EXERCISES"] = "App\\Notifications\\ExerciseCreated";
|
|
59
|
+
NOTIFICATIONS_TYPE_BO["EXERCISES_PLAY"] = "App\\Notifications\\ExercisePlaySchedule";
|
|
60
|
+
NOTIFICATIONS_TYPE_BO["FORMS"] = "App\\Notifications\\FormAnswerSchedule";
|
|
61
|
+
NOTIFICATIONS_TYPE_BO["GAMES"] = "App\\Notifications\\GamePlaySchedule";
|
|
62
|
+
NOTIFICATIONS_TYPE_BO["MESSAGES"] = "App\\Notifications\\MessageNotification";
|
|
63
|
+
NOTIFICATIONS_TYPE_BO["NEWS"] = "App\\Notifications\\NewsNotification";
|
|
64
|
+
NOTIFICATIONS_TYPE_BO["REMINDERS"] = "App\\Notifications\\ReminderTime";
|
|
65
|
+
NOTIFICATIONS_TYPE_BO["SHARED_CARE_PLAN"] = "App\\Notifications\\SharedCarePlanAddContentNotification";
|
|
66
|
+
// MEDICATIONS = "",
|
|
67
|
+
// GOALS = "",
|
|
68
|
+
// MEDICAL_PROCEDURE = "",
|
|
69
|
+
// DIAGNOSTIC_TEST = "",
|
|
70
|
+
// PROGRAMABLE_PLAY = "",
|
|
71
|
+
})(NOTIFICATIONS_TYPE_BO || (NOTIFICATIONS_TYPE_BO = {}));
|
|
72
|
+
export var NotificationsTypeColor;
|
|
73
|
+
(function (NotificationsTypeColor) {
|
|
74
|
+
NotificationsTypeColor["ADVICES"] = "#2356f9";
|
|
75
|
+
NotificationsTypeColor["AGENDA"] = "#6950ce";
|
|
76
|
+
NotificationsTypeColor["CHALLENGE_LEVEL"] = "#BDC3C7";
|
|
77
|
+
NotificationsTypeColor["DIAGNOSTIC_TEST"] = "#1A8E92";
|
|
78
|
+
NotificationsTypeColor["DIETS"] = "#E67E22";
|
|
79
|
+
NotificationsTypeColor["DRUG"] = "#5AC445";
|
|
80
|
+
NotificationsTypeColor["EXERCISES"] = "#f53d3d";
|
|
81
|
+
NotificationsTypeColor["FORMS"] = "#2356f9";
|
|
82
|
+
NotificationsTypeColor["GAMES"] = "#9B59B6";
|
|
83
|
+
NotificationsTypeColor["GAME_PLAY"] = "#9B59B6";
|
|
84
|
+
//GOALS = '#1A8E92',
|
|
85
|
+
NotificationsTypeColor["MEDICAL_PROCEDURE"] = "#EC7579";
|
|
86
|
+
NotificationsTypeColor["MEDICATIONS"] = "#25CAD0";
|
|
87
|
+
NotificationsTypeColor["MESSAGES"] = "#25CAD0";
|
|
88
|
+
NotificationsTypeColor["NEWS"] = "#2356f9";
|
|
89
|
+
NotificationsTypeColor["PROGRAMABLE_PLAY"] = "#7F8C8D";
|
|
90
|
+
NotificationsTypeColor["REMINDERS"] = "#6950ce";
|
|
91
|
+
NotificationsTypeColor["REMINDERS_EXECUTION"] = "#6950ce";
|
|
92
|
+
NotificationsTypeColor["SHARED_CARE_PLAN"] = "#BA0186";
|
|
93
|
+
})(NotificationsTypeColor || (NotificationsTypeColor = {}));
|
|
94
|
+
export class NotificationOptions {
|
|
95
|
+
constructor() {
|
|
96
|
+
this.agenda = { type: NotificationsType.AGENDA, mail: 'agendaNotificationMail', app: 'agendaNotificationApp', old: null };
|
|
97
|
+
this.reminder = { type: NotificationsType.REMINDERS, mail: 'reminderNotificationMail', app: 'reminderNotificationApp', old: null };
|
|
98
|
+
this.diets = { type: NotificationsType.DIETS, mail: 'dietsNotificationMail', app: 'dietsNotificationApp', old: 'dietsNotificaton' };
|
|
99
|
+
this.medication = { type: NotificationsType.MEDICATIONS, mail: ['drugIntakeNotificationMail', 'medicationPlanExpiredNotificationEmail'], app: ['drugIntakeNotificationApp', 'medicationPlanExpiredNotificationApp'], old: null };
|
|
100
|
+
this.goals = { type: NotificationsType.GOALS, mail: 'goalsNotificationMail', app: 'goalsNotificationApp', old: 'goalsNotificaton' };
|
|
101
|
+
this.advices = { type: NotificationsType.ADVICES, mail: 'advicesNotificationMail', app: 'advicesNotificationApp', old: 'advicesNotificaton' };
|
|
102
|
+
this.forms = { type: NotificationsType.FORMS, mail: 'formNotificationMail', app: 'formNotificationApp', old: 'formNotificaton' };
|
|
103
|
+
this.messages = { type: NotificationsType.MESSAGES, mail: 'messagesNotificationMail', app: 'messagesNotificationApp', old: 'messagesNotificaton' };
|
|
104
|
+
this.news = { type: NotificationsType.NEWS, mail: 'newsNotificationMail', app: 'newsNotificationApp', old: null };
|
|
105
|
+
this.games = { type: NotificationsType.GAMES, mail: 'gamePlayNotificationMail', app: 'gamePlayNotificationApp', old: null };
|
|
106
|
+
this.exercises = { type: NotificationsType.EXERCISES, mail: 'exercisePlayNotificationMail', app: 'exercisePlayNotificationApp', old: null };
|
|
107
|
+
this.list_options = [];
|
|
108
|
+
//Aqui se añaden todas las notificaciones que queremos que aparezca en setting.page
|
|
109
|
+
this.options = [this.agenda, this.reminder, this.diets, this.medication, this.goals, this.advices, this.forms, this.messages, this.news, this.games, this.exercises];
|
|
110
|
+
this.setAllNotifications();
|
|
111
|
+
}
|
|
112
|
+
setAllNotifications() {
|
|
113
|
+
const ItembyRole = JSON.parse(localStorage.getItem('showItembyRole'));
|
|
114
|
+
const showItembyRole = Object.keys(ItembyRole);
|
|
115
|
+
showItembyRole.forEach(element => {
|
|
116
|
+
// resultado = this.options.filter(animal => animal != element);
|
|
117
|
+
for (let index = 0; index < this.options.length; index++) {
|
|
118
|
+
if (element === this.options[index].type) {
|
|
119
|
+
// delete(this.options[index])
|
|
120
|
+
this.options.splice(index, 1);
|
|
121
|
+
index--;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
this.options.forEach(opt => {
|
|
126
|
+
opt['translate'] = this.setTranslate(opt);
|
|
127
|
+
opt['on_mail'] = false;
|
|
128
|
+
opt['on_app'] = false;
|
|
129
|
+
const notification = opt;
|
|
130
|
+
this.list_options.push(notification);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
getListOptions() {
|
|
134
|
+
return this.list_options;
|
|
135
|
+
}
|
|
136
|
+
setTranslate(opt) {
|
|
137
|
+
switch (opt?.type) {
|
|
138
|
+
case NotificationsType.COMMUNICATIONS:
|
|
139
|
+
return 'setting.subtitle_communications';
|
|
140
|
+
case NotificationsType.AGENDA:
|
|
141
|
+
return 'setting.subtitle_appointment';
|
|
142
|
+
case NotificationsType.REMINDERS:
|
|
143
|
+
return 'setting.subtitle_reminders';
|
|
144
|
+
case NotificationsType.DIETS:
|
|
145
|
+
return 'setting.subtitle_diets';
|
|
146
|
+
case NotificationsType.MEDICATIONS:
|
|
147
|
+
return 'setting.subtitle_medication';
|
|
148
|
+
case NotificationsType.GOALS:
|
|
149
|
+
return 'setting.subtitle_goals';
|
|
150
|
+
case NotificationsType.ADVICES:
|
|
151
|
+
return 'setting.subtitle_advices';
|
|
152
|
+
case NotificationsType.NEWS:
|
|
153
|
+
return 'setting.subtitle_release';
|
|
154
|
+
case NotificationsType.PROCEDURES:
|
|
155
|
+
return 'setting.subtitle_procedure';
|
|
156
|
+
case NotificationsType.OFFERS:
|
|
157
|
+
return 'setting.subtitle_offers';
|
|
158
|
+
case NotificationsType.FORMS:
|
|
159
|
+
return 'setting.subtitle_form';
|
|
160
|
+
case NotificationsType.MESSAGES:
|
|
161
|
+
return 'setting.subtitle_messages';
|
|
162
|
+
case NotificationsType.GAMES:
|
|
163
|
+
return 'setting.subtitle_games';
|
|
164
|
+
case NotificationsType.PROMOTE_CONTENT:
|
|
165
|
+
return 'setting.subtitle_release'; // return 'setting.subtitle_promoteContent';
|
|
166
|
+
case NotificationsType.EXERCISES:
|
|
167
|
+
return 'setting.subtitle_exercises';
|
|
168
|
+
default:
|
|
169
|
+
return '';
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
setAppMailField(list, json) {
|
|
173
|
+
list.forEach(opt => {
|
|
174
|
+
opt.on_app = this.isOnApp(opt, json);
|
|
175
|
+
opt.on_mail = this.isOnMail(opt, json);
|
|
176
|
+
});
|
|
177
|
+
return list;
|
|
178
|
+
}
|
|
179
|
+
isOnApp(opt, json) {
|
|
180
|
+
if (typeof opt.app === 'string')
|
|
181
|
+
return json[opt.app] == '1' ? true : false;
|
|
182
|
+
else
|
|
183
|
+
return json[opt.app[0]] == '1' ? true : false;
|
|
184
|
+
}
|
|
185
|
+
isOnMail(opt, json) {
|
|
186
|
+
if (typeof opt.mail === 'string')
|
|
187
|
+
return json[opt.mail] == '1' ? true : false;
|
|
188
|
+
else
|
|
189
|
+
return json[opt.mail[0]] == '1' ? true : false;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZXJ2aWNlLWxpYi9zcmMvbGliL21vZGVscy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE1BQU0sQ0FBTixJQUFZLGlCQXlCWDtBQXpCRCxXQUFZLGlCQUFpQjtJQUN6Qix3Q0FBbUIsQ0FBQTtJQUNuQixzQ0FBaUIsQ0FBQTtJQUNqQixzREFBaUMsQ0FBQTtJQUNqQyxvQ0FBZSxDQUFBO0lBQ2YsNENBQXVCLENBQUE7SUFDdkIsb0NBQWUsQ0FBQTtJQUNmLG9DQUFlLENBQUE7SUFDZixvQ0FBZSxDQUFBO0lBQ2YscURBQWdDLENBQUE7SUFDaEMsMENBQXFCLENBQUE7SUFDckIsa0NBQWEsQ0FBQTtJQUNiLHNDQUFpQixDQUFBO0lBQ2pCLHdEQUFtQyxDQUFBO0lBQ25DLHNEQUFpQyxDQUFBO0lBQ2pDLDJDQUFzQixDQUFBO0lBQ3RCLGtCQUFrQjtJQUNsQiw4Q0FBeUIsQ0FBQTtJQUN6QiwwREFBcUMsQ0FBQTtJQUNyQyw0REFBdUMsQ0FBQTtJQUN2QywwREFBcUMsQ0FBQTtJQUNyQywwREFBb0MsQ0FBQTtJQUNwQyxrREFBNEIsQ0FBQTtJQUM1Qix3REFBbUMsQ0FBQTtJQUNuQyw0REFBdUMsQ0FBQTtBQUMzQyxDQUFDLEVBekJXLGlCQUFpQixLQUFqQixpQkFBaUIsUUF5QjVCO0FBRUQsTUFBTSxDQUFOLElBQVksbUJBb0JYO0FBcEJELFdBQVksbUJBQW1CO0lBQzNCLDhDQUF1QixDQUFBO0lBQ3ZCLDZDQUFzQixDQUFBO0lBQ3RCLG1FQUE0QyxDQUFBO0lBQzVDLDhEQUF1QyxDQUFBO0lBQ3ZDLDBDQUFtQixDQUFBO0lBQ25CLCtDQUF3QixDQUFBO0lBQ3hCLGtEQUEyQixDQUFBO0lBQzNCLGdEQUF5QixDQUFBO0lBQ3pCLDBDQUFtQixD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QUssQ0FBQTtJQUNuRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbk9wdCB7XG4gICAgdHJhbnNsYXRlPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbiAgICBpdGVtX2V4cGFuZGVkPzogYm9vbGVhbjtcbiAgICBtYWlsPzogYW55O1xuICAgIGFwcD86IGFueTtcbiAgICBvbl9tYWlsPzpib29sZWFuO1xuICAgIG9uX2FwcD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIE5vdGlmaWNhdGlvbnNUeXBlIHtcbiAgICBBRFZJQ0VTID0gJ2FkdmljZXMnLFxuICAgIEFHRU5EQSA9ICdhZ2VuZGEnLFxuICAgIENPTU1VTklDQVRJT05TID0gJ2NvbW11bmljYXRpb25zJyxcbiAgICBESUVUUyA9ICdkaWV0cycsXG4gICAgRVhFUkNJU0VTID0gJ2V4ZXJjaXNlcycsXG4gICAgRk9STVMgPSAnZm9ybXMnLFxuICAgIEdBTUVTID0gJ2dhbWVzJyxcbiAgICBHT0FMUyA9ICdnb2FscycsXG4gICAgTUVESUNBVElPTlMgPSAnbWVkaWNhdGlvbl9wbGFucycsXG4gICAgTUVTU0FHRVMgPSAnbWVzc2FnZXMnLFxuICAgIE5FV1MgPSAnbmV3cycsXG4gICAgT0ZGRVJTID0gJ29mZmVycycsXG4gICAgUFJPTU9URV9DT05URU5UID0gJ3Byb21vdGUtY29udGVudCcsXG4gICAgUFJPQ0VEVVJFUyA9ICdtZWRpY2FsX3Byb2NlZHVyZXMnLFxuICAgIFJFTUlOREVSUyA9ICdyZW1pbmRlcicsXG4gICAgLy9TaGFyZWQgY2FyZSBwbGFuXG4gICAgTU9OSVRPUklORyA9ICdtb25pdG9yaW5nJywgXG4gICAgSU5GT1JNRURfQ09OU0VOVCA9ICdpbmZvcm1lZF9jb25zZW50JyxcbiAgICBMSUZFX1NUSUxFX0hBQklUUyA9ICdsaWZlX3N0eWxlX2hhYml0cycsXG4gICAgU0hBUkVEX0NBUkVfUExBTiA9ICdzaGFyZWRfY2FyZV9wbGFuJyxcbiAgICBBZGRCdXR0b25NZWRpY2FsVGVzdD0gJ2FkZF9kb2N1bWVudCcsXG4gICAgVEVTVElNT05JQUxTPSAndGVzdGltb25pYWxzJyxcbiAgICBBZGRCdXR0b25Ub2RheURydWcgPSAnZHJ1Z3MtZGV0YWlsJyxcbiAgICBBZGRCdXR0b25IZWFsdGhDaGFydHMgPSAnYWN0aXZpdHktZ29hbCdcbn1cblxuZXhwb3J0IGVudW0gTm90aWZpY2F0aW9uc1R5cGVCTyB7XG4gICAgQURWSUNFUyA9IFwiQXBwXFxcXEFkdmljZVwiLFxuICAgIEFHRU5EQSA9IFwiQXBwXFxcXEFnZW5kYVwiLFxuICAgIENIQUxMRU5HRV9MRVZFTCA9IFwiQXBwXFxcXExldmVsQWNjb21wbGlzaG1lbnRcIixcbiAgICBESUFHTk9TVElDX1RFU1QgPSBcIkFwcFxcXFxEaWFnbm9zdGljVGVzdFwiLFxuICAgIERJRVRTID0gXCJBcHBcXFxcRGlldFwiLFxuICAgIERSVUcgPSBcIkFwcFxcXFxEcnVnSW50YWtlXCIsXG4gICAgRVhFUkNJU0VTID0gXCJBcHBcXFxcRXhlcmNpc2VcIixcbiAgICBGT1JNUyA9IFwiQXBwXFxcXEZvcm1BbnN3ZXJcIixcbiAgICBHQU1FUyA9IFwiQXBwXFxcXEdhbWVcIixcbiAgICBHQU1FX1BMQVkgPSBcIkFwcFxcXFxHYW1lUGxheVwiLFxuICAgIC8vR09BTFMgPSBcIkFwcFxcXFxHb2FsYWJsZVwiLFxuICAgIE1FRElDQUxfUFJPQ0VEVVJFID0gXCJBcHBcXFxcTWVkaWNhbFByb2NlZHVyZVwiLFxuICAgIE1FRElDQVRJT05TID0gXCJBcHBcXFxcTWVkaWNhdGlvblBsYW5cIixcbiAgICBNRVNTQUdFUyA9IFwiQXBwXFxcXE1lc3NhZ2VcIixcbiAgICBORVdTID0gXCJBcHBcXFxcTmV3c1wiLFxuICAgIFBST0dSQU1BQkxFX1BMQVkgPSBcIkFwcFxcXFxQcm9ncmFtYWJsZVBsYXlcIixcbiAgICBSRU1JTkRFUlMgPSBcIkFwcFxcXFxSZW1pbmRlclwiLCBcbiAgICBSRU1JTkRFUlNfRVhFQ1VUSU9OID1cIkFwcFxcXFxSZW1pbmRlckV4ZWN1dGlvblwiLFxuICAgIFNIQVJFRF9DQVJFX1BMQU4gPSBcIkFwcFxcXFxTaGFyZUNhcmVQbGFuXCJcbn1cblxuZXhwb3J0IGVudW0gTk9USUZJQ0FUSU9OU19UWVBFX0JPIHtcbiAgICBBR0VOREEgPSBcIkFwcFxcXFxOb3RpZmljYXRpb25zXFxcXEFnZW5kYUNyZWF0ZWRcIixcbiAgICBBUFBPSU5UTUVOVFNfVklTSVQgPSBcIkFwcFxcXFxOb3RpZmljYXRpb25zXFxcXFZpc2l0T25saW5lTm90aWZpY2F0aW9uXCIsIFxuICAgIEFEVklDRVMgPSBcIkFwcFxcXFxOb3RpZmljYXRpb25zXFxcXEFkdmljZUNyZWF0ZWRcIixcbiAgICBDSEFMTEVOR0VfTEVWRUwgPSBcIkFwcFxcXFxOb3RpZmljYXRpb25zXFxcXExldmVsQWNjb21wbGlzaG1lbnRDb21wbGV0ZWROb3RpZmljYXRpb25cIixcbiAgICBESUVUUyA9IFwiQXBwXFxcXE5vdGlmaWNhdGlvbnNcXFxcRGlldENyZWF0ZWRcIixcbiAgICBEUlVHID0gXCJBcHBcXFxcTm90aWZpY2F0aW9uc1xcXFxEcnVnSW50YWtlVGltZVwiLFxuICAgIEVYRVJDSVNFUyA9IFwiQXBwXFxcXE5vdGlmaWNhdGlvbnNcXFxcRXhlcmNpc2VDcmVhdGVkXCIsXG4gICAgRVhFUkNJU0VTX1BMQVkgPSBcIkFwcFxcXFxOb3RpZmljYXRpb25zXFxcXEV4ZXJjaXNlUGxheVNjaGVkdWxlXCIsIFxuICAgIEZPUk1TID0gXCJBcHBcXFxcTm90aWZpY2F0aW9uc1xcXFxGb3JtQW5zd2VyU2NoZWR1bGVcIixcbiAgICBHQU1FUyA9IFwiQXBwXFxcXE5vdGlmaWNhdGlvbnNcXFxcR2FtZVBsYXlTY2hlZHVsZVwiLFxuICAgIE1FU1NBR0VTID0gXCJBcHBcXFxcTm90aWZpY2F0aW9uc1xcXFxNZXNzYWdlTm90aWZpY2F0aW9uXCIsXG4gICAgTkVXUyA9IFwiQXBwXFxcXE5vdGlmaWNhdGlvbnNcXFxcTmV3c05vdGlmaWNhdGlvblwiLFxuICAgIFJFTUlOREVSUyA9IFwiQXBwXFxcXE5vdGlmaWNhdGlvbnNcXFxcUmVtaW5kZXJUaW1lXCIsIFxuICAgIFNIQVJFRF9DQVJFX1BMQU4gPSBcIkFwcFxcXFxOb3RpZmljYXRpb25zXFxcXFNoYXJlZENhcmVQbGFuQWRkQ29udGVudE5vdGlmaWNhdGlvblwiXG4gICAgLy8gTUVESUNBVElPTlMgPSBcIlwiLFxuICAgIC8vIEdPQUxTID0gIFwiXCIsXG4gICAgLy8gTUVESUNBTF9QUk9DRURVUkUgPSBcIlwiLFxuICAgIC8vIERJQUdOT1NUSUNfVEVTVCA9IFwiXCIsXG4gICAgLy8gUFJPR1JBTUFCTEVfUExBWSA9IFwiXCIsXG59XG5cbmV4cG9ydCBlbnVtIE5vdGlmaWNhdGlvbnNUeXBlQ29sb3Ige1xuICAgIEFEVklDRVMgPSAgJyMyMzU2ZjknLFxuICAgIEFHRU5EQSA9ICcjNjk1MGNlJyxcbiAgICBDSEFMTEVOR0VfTEVWRUwgPSAnI0JEQzNDNycsXG4gICAgRElBR05PU1RJQ19URVNUID0gJyMxQThFOTInLFxuICAgIERJRVRTID0gJyNFNjdFMjInLFxuICAgIERSVUcgPSAnIzVBQzQ0NScsXG4gICAgRVhFUkNJU0VTID0gJyNmNTNkM2QnLFxuICAgIEZPUk1TID0gJyMyMzU2ZjknLFxuICAgIEdBTUVTID0gJyM5QjU5QjYnLFxuICAgIEdBTUVfUExBWSA9ICcjOUI1OUI2JyxcbiAgICAvL0dPQUxTID0gJyMxQThFOTInLFxuICAgIE1FRElDQUxfUFJPQ0VEVVJFID0gJyNFQzc1NzknLFxuICAgIE1FRElDQVRJT05TID0gJyMyNUNBRDAnLFxuICAgIE1FU1NBR0VTID0gJyMyNUNBRDAnLFxuICAgIE5FV1MgPSAnIzIzNTZmOScsXG4gICAgUFJPR1JBTUFCTEVfUExBWSA9ICcjN0Y4QzhEJyxcbiAgICBSRU1JTkRFUlMgPSAgJyM2OTUwY2UnLCBcbiAgICBSRU1JTkRFUlNfRVhFQ1VUSU9OID0gICcjNjk1MGNlJyxcbiAgICBTSEFSRURfQ0FSRV9QTEFOID0gJyNCQTAxODYnXG59XG5cblxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbk9wdGlvbnMge1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGFnZW5kYTogYW55ID0ge3R5cGU6ICBOb3RpZmljYXRpb25zVHlwZS5BR0VOREEsIG1haWw6ICdhZ2VuZGFOb3RpZmljYXRpb25NYWlsJywgYXBwOiAnYWdlbmRhTm90aWZpY2F0aW9uQXBwJywgb2xkOiBudWxsfTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVtaW5kZXI6IGFueSA9IHt0eXBlOiAgTm90aWZpY2F0aW9uc1R5cGUuUkVNSU5ERVJTLCBtYWlsOiAncmVtaW5kZXJOb3RpZmljYXRpb25NYWlsJywgYXBwOiAncmVtaW5kZXJOb3RpZmljYXRpb25BcHAnLCBvbGQ6IG51bGx9O1xuICAgIHB1YmxpYyByZWFkb25seSBkaWV0czogYW55ID0ge3R5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLkRJRVRTLCBtYWlsOiAnZGlldHNOb3RpZmljYXRpb25NYWlsJywgYXBwOiAnZGlldHNOb3RpZmljYXRpb25BcHAnLCBvbGQ6ICdkaWV0c05vdGlmaWNhdG9uJ307XG4gICAgcHVibGljIHJlYWRvbmx5IG1lZGljYXRpb246IGFueSA9IHt0eXBlOiBOb3RpZmljYXRpb25zVHlwZS5NRURJQ0FUSU9OUywgbWFpbDogWydkcnVnSW50YWtlTm90aWZpY2F0aW9uTWFpbCcsICdtZWRpY2F0aW9uUGxhbkV4cGlyZWROb3RpZmljYXRpb25FbWFpbCddLCBhcHA6IFsnZHJ1Z0ludGFrZU5vdGlmaWNhdGlvbkFwcCcsICdtZWRpY2F0aW9uUGxhbkV4cGlyZWROb3RpZmljYXRpb25BcHAnXSwgb2xkOiBudWxsfTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZ29hbHM6IGFueSA9IHt0eXBlOiBOb3RpZmljYXRpb25zVHlwZS5HT0FMUywgbWFpbDogJ2dvYWxzTm90aWZpY2F0aW9uTWFpbCcsIGFwcDogJ2dvYWxzTm90aWZpY2F0aW9uQXBwJywgb2xkOiAnZ29hbHNOb3RpZmljYXRvbid9O1xuICAgIHB1YmxpYyByZWFkb25seSBhZHZpY2VzOiBhbnkgPSB7dHlwZTogTm90aWZpY2F0aW9uc1R5cGUuQURWSUNFUywgbWFpbDogJ2FkdmljZXNOb3RpZmljYXRpb25NYWlsJywgYXBwOiAnYWR2aWNlc05vdGlmaWNhdGlvbkFwcCcsIG9sZDogJ2FkdmljZXNOb3RpZmljYXRvbid9O1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtczogYW55ID0ge3R5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLkZPUk1TLCBtYWlsOiAnZm9ybU5vdGlmaWNhdGlvbk1haWwnLCBhcHA6ICdmb3JtTm90aWZpY2F0aW9uQXBwJywgb2xkOiAnZm9ybU5vdGlmaWNhdG9uJ307XG4gICAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzOiBhbnkgPSB7dHlwZTogTm90aWZpY2F0aW9uc1R5cGUuTUVTU0FHRVMsIG1haWw6ICdtZXNzYWdlc05vdGlmaWNhdGlvbk1haWwnLCBhcHA6ICdtZXNzYWdlc05vdGlmaWNhdGlvbkFwcCcsIG9sZDogJ21lc3NhZ2VzTm90aWZpY2F0b24nfTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmV3czogYW55ID0ge3R5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLk5FV1MsIG1haWw6ICduZXdzTm90aWZpY2F0aW9uTWFpbCcsIGFwcDogJ25ld3NOb3RpZmljYXRpb25BcHAnLCBvbGQ6IG51bGx9O1xuICAgIHB1YmxpYyByZWFkb25seSBnYW1lczogYW55ID0ge3R5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLkdBTUVTLCBtYWlsOiAnZ2FtZVBsYXlOb3RpZmljYXRpb25NYWlsJywgYXBwOiAnZ2FtZVBsYXlOb3RpZmljYXRpb25BcHAnLCBvbGQ6IG51bGx9O1xuICAgIHB1YmxpYyByZWFkb25seSBleGVyY2lzZXM6IGFueSA9IHt0eXBlOiBOb3RpZmljYXRpb25zVHlwZS5FWEVSQ0lTRVMsIG1haWw6ICdleGVyY2lzZVBsYXlOb3RpZmljYXRpb25NYWlsJywgYXBwOiAnZXhlcmNpc2VQbGF5Tm90aWZpY2F0aW9uQXBwJywgb2xkOiBudWxsfTtcblxuICAgIFxuICAgIHByaXZhdGUgbGlzdF9vcHRpb25zOiBub3RpZmljYXRpb25PcHRbXSA9IFtdO1xuICAgIC8vQXF1aSBzZSBhw7FhZGVuIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyBxdWUgcXVlcmVtb3MgcXVlIGFwYXJlemNhIGVuIHNldHRpbmcucGFnZVxuICAgIHByaXZhdGUgb3B0aW9ucyA9IFsgdGhpcy5hZ2VuZGEsIHRoaXMucmVtaW5kZXIsIHRoaXMuZGlldHMsIHRoaXMubWVkaWNhdGlvbiwgdGhpcy5nb2FscywgdGhpcy5hZHZpY2VzLCB0aGlzLmZvcm1zLCB0aGlzLm1lc3NhZ2VzLCB0aGlzLm5ld3MsIHRoaXMuZ2FtZXMsIHRoaXMuZXhlcmNpc2VzXTtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXRBbGxOb3RpZmljYXRpb25zKClcbiAgICB9XG5cbiAgICBzZXRBbGxOb3RpZmljYXRpb25zKCl7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBJdGVtYnlSb2xlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2hvd0l0ZW1ieVJvbGUnKSk7XG4gICAgICAgIGNvbnN0IHNob3dJdGVtYnlSb2xlID0gT2JqZWN0LmtleXMoSXRlbWJ5Um9sZSk7IFxuICAgICAgICBzaG93SXRlbWJ5Um9sZS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAvLyByZXN1bHRhZG8gPSB0aGlzLm9wdGlvbnMuZmlsdGVyKGFuaW1hbCA9PiBhbmltYWwgIT0gZWxlbWVudCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLmxlbmd0aDsgaW5kZXgrKyl7XG4gICAgICAgICAgICAgICAgaWYoZWxlbWVudCA9PT0gdGhpcy5vcHRpb25zW2luZGV4XS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAvLyBkZWxldGUodGhpcy5vcHRpb25zW2luZGV4XSlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0gICAgICAgICAgICBcbiAgICAgICAgfSk7XG5cbiAgICAgIFxuICAgICAgICBcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2gob3B0ID0+IHtcbiAgICAgICAgICAgIG9wdFsndHJhbnNsYXRlJ10gPSB0aGlzLnNldFRyYW5zbGF0ZShvcHQpO1xuICAgICAgICAgICAgb3B0Wydvbl9tYWlsJ10gPSBmYWxzZTtcbiAgICAgICAgICAgIG9wdFsnb25fYXBwJ10gPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbjogbm90aWZpY2F0aW9uT3B0ID0gb3B0XG4gICAgICAgICAgICB0aGlzLmxpc3Rfb3B0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBnZXRMaXN0T3B0aW9ucygpe1xuICAgICAgICByZXR1cm4gdGhpcy5saXN0X29wdGlvbnNcbiAgICB9XG5cbiAgICBzZXRUcmFuc2xhdGUob3B0KXtcbiAgICAgICAgc3dpdGNoIChvcHQ/LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uc1R5cGUuQ09NTVVOSUNBVElPTlM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX2NvbW11bmljYXRpb25zJztcbiAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uc1R5cGUuQUdFTkRBOlxuICAgICAgICAgICAgICAgIHJldHVybiAnc2V0dGluZy5zdWJ0aXRsZV9hcHBvaW50bWVudCc7XG4gICAgICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbnNUeXBlLlJFTUlOREVSUzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NldHRpbmcuc3VidGl0bGVfcmVtaW5kZXJzJztcbiAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uc1R5cGUuRElFVFM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX2RpZXRzJztcbiAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uc1R5cGUuTUVESUNBVElPTlM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX21lZGljYXRpb24nO1xuICAgICAgICAgICAgY2FzZSAgTm90aWZpY2F0aW9uc1R5cGUuR09BTFM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX2dvYWxzJztcbiAgICAgICAgICAgIGNhc2UgIE5vdGlmaWNhdGlvbnNUeXBlLkFEVklDRVM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX2FkdmljZXMnOyAgICAgXG4gICAgICAgICAgICBjYXNlICBOb3RpZmljYXRpb25zVHlwZS5ORVdTOlxuICAgICAgICAgICAgICAgIHJldHVybiAnc2V0dGluZy5zdWJ0aXRsZV9yZWxlYXNlJztcbiAgICAgICAgICAgIGNhc2UgIE5vdGlmaWNhdGlvbnNUeXBlLlBST0NFRFVSRVM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX3Byb2NlZHVyZSc7XG4gICAgICAgICAgICBjYXNlICBOb3RpZmljYXRpb25zVHlwZS5PRkZFUlM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX29mZmVycyc7XG4gICAgICAgICAgICBjYXNlICBOb3RpZmljYXRpb25zVHlwZS5GT1JNUzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NldHRpbmcuc3VidGl0bGVfZm9ybSc7IFxuICAgICAgICAgICAgY2FzZSAgTm90aWZpY2F0aW9uc1R5cGUuTUVTU0FHRVM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX21lc3NhZ2VzJztcbiAgICAgICAgICAgIGNhc2UgIE5vdGlmaWNhdGlvbnNUeXBlLkdBTUVTOlxuICAgICAgICAgICAgICAgIHJldHVybiAnc2V0dGluZy5zdWJ0aXRsZV9nYW1lcyc7XG4gICAgICAgICAgICBjYXNlICBOb3RpZmljYXRpb25zVHlwZS5QUk9NT1RFX0NPTlRFTlQ6IFxuICAgICAgICAgICAgICAgIHJldHVybiAnc2V0dGluZy5zdWJ0aXRsZV9yZWxlYXNlJzsgICAgICAgLy8gICAgIHJldHVybiAnc2V0dGluZy5zdWJ0aXRsZV9wcm9tb3RlQ29udGVudCc7XG4gICAgICAgICAgICBjYXNlICBOb3RpZmljYXRpb25zVHlwZS5FWEVSQ0lTRVM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzZXR0aW5nLnN1YnRpdGxlX2V4ZXJjaXNlcyc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEFwcE1haWxGaWVsZChsaXN0LCBqc29uKXtcbiAgICAgICAgbGlzdC5mb3JFYWNoKG9wdCA9PiB7XG4gICAgICAgICAgICBvcHQub25fYXBwID0gdGhpcy5pc09uQXBwKG9wdCwganNvbilcbiAgICAgICAgICAgIG9wdC5vbl9tYWlsID0gdGhpcy5pc09uTWFpbChvcHQsIGpzb24pXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBsaXN0XG4gICAgfVxuXG5cbiAgICBpc09uQXBwKG9wdCwganNvbik6IGJvb2xlYW57XG4gICAgICAgIGlmKHR5cGVvZiBvcHQuYXBwID09PSAnc3RyaW5nJykgXG4gICAgICAgICAgICByZXR1cm4ganNvbltvcHQuYXBwXSA9PSAnMSc/IHRydWU6ZmFsc2VcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIGpzb25bb3B0LmFwcFswXV0gPT0gJzEnPyB0cnVlOmZhbHNlXG4gICAgfVxuXG4gICAgaXNPbk1haWwob3B0LCBqc29uKTogYm9vbGVhbntcbiAgICAgICAgaWYodHlwZW9mIG9wdC5tYWlsID09PSAnc3RyaW5nJykgXG4gICAgICAgICAgICByZXR1cm4ganNvbltvcHQubWFpbF0gPT0gJzEnPyB0cnVlOmZhbHNlXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiBqc29uW29wdC5tYWlsWzBdXSA9PSAnMSc/IHRydWU6ZmFsc2VcbiAgICB9XG59Il19
|