wm-menu 1.2.9 → 1.3.0
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/bundles/wm-menu.umd.js +7 -24
- package/bundles/wm-menu.umd.js.map +1 -1
- package/bundles/wm-menu.umd.min.js +2 -2
- package/bundles/wm-menu.umd.min.js.map +1 -1
- package/esm2015/lib/wm-menu/services/wm-menu-alerta-panico.service.js +4 -21
- package/esm2015/lib/wm-menu/wm-menu.component.js +5 -5
- package/esm5/lib/wm-menu/services/wm-menu-alerta-panico.service.js +4 -21
- package/esm5/lib/wm-menu/wm-menu.component.js +5 -5
- package/fesm2015/wm-menu.js +7 -24
- package/fesm2015/wm-menu.js.map +1 -1
- package/fesm5/wm-menu.js +7 -24
- package/fesm5/wm-menu.js.map +1 -1
- package/lib/wm-menu/wm-menu.component.d.ts +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://wm-menu/lib/wm-menu/model/wm-menu-cuenta.model.ts","ng://wm-menu/lib/wm-menu/services/wm-menu-servicio.service.ts","ng://wm-menu/lib/wm-menu/services/wm-menu-alerta-panico.service.ts","ng://wm-menu/lib/wm-menu/wm-menu.component.ts","ng://wm-menu/lib/wm-menu.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","MenuSecundario","this","hijos","WmMenuServicioService","http","iconRegistry","sanitizer","prototype","menuApiObtener","url","idUsuario","token","codLogicaParametro","headers","HttpHeaders","Authorization","myParams","HttpParams","append","toString","get","params","pipe","map","resp","catchError","error","throwError","mapearMenu","respApi","sort","a","b","Posicion","element","Icono","startsWith","iconSvg","addSvgIcon","bypassSecurityTrustResourceUrl","obtenerMenu","idMenuPadre","menu","IdMenuPadre","push","titulo","IdiomaRecurso","Url","icono","descripcion","Descripcion","IdMenu","menuIdiomasObtener","almacenamientoApiObtener","HttpClient","MatIconRegistry","DomSanitizer","Injectable","providedIn","WmMenuAlertaPanicoService","wmMenuServicioService","alternateTitle","audio","isPlaying","IdsAlertasPanicoActivas","Set","soundTimeout","isRunning","console","log","iniciarProceso","intervalMs","callback","urlObtenerParametro","rutaAudio","_this","forEach","evento","document","addEventListener","subscribe","Valor","storedIds","localStorage","getItem","JSON","parse","ejecutarProceso_1","setTimeout","once","stopProcess","subscription","unsubscribe","ngOnDestroy","stopSound","stopFlashingTitle","playSound","Audio","loop","play","then","catch","pause","currentTime","clearTimeout","startFlashingTitle","toggle","originalTitle","title","intervalId","setInterval","clearInterval","revisarAlertasPendientes","urlObtenerAlertasPanico","decodedToken","JwtHelperService","decodeToken","alertasIds_1","alerta","IdAlertaPanico","id","includes","delete","newAlerts","filter","has","add","size","clear","setItem","stringify","Array","from","WmMenuComponent","wmMenuAlertaPanicoService","intervaloPeticionesMs","menuSecundarioSel","menuLateralAbierto","menuIdioma","ngOnInit","cargarMenuCuenta","urlMenu","menuPrincipal","urlIdiomas","urlBaseAlmacenamiento","utilizado","Utilizado","total","Total","porcentajeUtilizado","Math","round","clickMenuPrincipal","menuPrincipalSel","clickMenuSecundario","menuSecundario","urlCuentaSeguridad","CambiarContrasenna","activar2fa","Configurar2fa","urlguiasOnline","_a","guiasOnline","CerrarSesion","hijo","Input","Component","selector","template","WmMenuModule","NgModule","declarations","imports","BrowserModule","MatToolbarModule","MatSidenavModule","MatListModule","MatButtonModule","MatIconModule","MatMenuModule","MatRippleModule","HttpClientModule","JwtModule","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export class MenuSecundario {\r\n icono: string;\r\n titulo: string;\r\n hijos: MenuSecundarioHijo[] = [];\r\n}\r\n\r\nexport class MenuSecundarioHijo {\r\n icono: string;\r\n titulo: string;\r\n url: string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MenuPrincipal } from '../model/wm-menu-principal.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WmMenuServicioService {\r\n\r\n constructor(private http: HttpClient, private iconRegistry: MatIconRegistry, private sanitizer: DomSanitizer) { }\r\n\r\n menuApiObtener(url:string, idUsuario: string, token:string, codLogicaParametro = \"\"): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n \r\n let myParams = new HttpParams();\r\n if (codLogicaParametro.length > 0) {\r\n myParams = myParams.append(\"codLogica\", codLogicaParametro);\r\n }\r\n myParams = myParams.append(\"ctrlActivo\", \"true\");\r\n myParams = myParams.append(\"conPadres\", \"true\");\r\n if (idUsuario != null)\r\n myParams = myParams.append(\"idUsuario\", idUsuario.toString());\r\n\r\n return this.http.get(url, { headers, params: myParams }).pipe(\r\n map(resp => {\r\n return resp;\r\n }),\r\n catchError(error => {\r\n return throwError(error.error);\r\n })\r\n );\r\n }\r\n\r\n mapearMenu(respApi: any): MenuPrincipal[] {\r\n respApi = respApi.sort((a, b) => a.Posicion > b.Posicion?\"1\":\"-1\");\r\n\r\n for (const key in respApi) {\r\n const element = respApi[key];\r\n if (element.Icono.startsWith(\"http\")) {\r\n var iconSvg = 'wm-icon-menu-' + key;\r\n this.iconRegistry.addSvgIcon(\r\n iconSvg,\r\n this.sanitizer.bypassSecurityTrustResourceUrl(element.Icono));\r\n respApi[key].Icono = iconSvg;\r\n }\r\n }\r\n\r\n return this.obtenerMenu(respApi);\r\n }\r\n\r\n\r\n private obtenerMenu(respApi: any, idMenuPadre?: Number): MenuPrincipal[] {\r\n var menu: MenuPrincipal[] = [];\r\n for (const key in respApi) {\r\n if (respApi[key].IdMenuPadre == idMenuPadre || (!idMenuPadre && respApi[key].IdMenuPadre == null)) {\r\n menu.push({\r\n titulo: respApi[key].IdiomaRecurso,\r\n url: respApi[key].Url,\r\n icono: respApi[key].Icono,\r\n descripcion: respApi[key].Descripcion,\r\n hijos: this.obtenerMenu(respApi, respApi[key].IdMenu)\r\n });\r\n }\r\n }\r\n return menu;\r\n }\r\n\r\n menuIdiomasObtener(url:string, idUsuario: string, token:string): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n\r\n return this.http.get(url).pipe(\r\n map(resp => {\r\n return resp;\r\n }),\r\n catchError(error => {\r\n return throwError(error.error);\r\n })\r\n );\r\n }\r\n \r\n almacenamientoApiObtener(url:string, idUsuario: string, token:string): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n \r\n let myParams = new HttpParams();\r\n\r\n if (idUsuario != null)\r\n myParams = myParams.append(\"idUsuario\", idUsuario.toString());\r\n \r\n return this.http.get(url, { headers, params: myParams }).pipe(\r\n map(resp => {\r\n return resp;\r\n }),\r\n catchError(error => {\r\n return throwError(error.error);\r\n })\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { WmMenuServicioService } from './wm-menu-servicio.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WmMenuAlertaPanicoService {\r\n\r\n private intervalId: any;\r\n private alternateTitle = 'Alerta de Pánico Recibida';\r\n private originalTitle: string;\r\n private audio: HTMLAudioElement | null = null;\r\n private isPlaying = false; // Controla si el sonido ya está reproduciéndose\r\n public formulario: any;\r\n private IdsAlertasPanicoActivas: Set<number> = new Set(); // Almacena los IDs de las alertas ya manejadas\r\n private soundTimeout: any = null; // Controla el temporizador del sonido\r\n private rutaAudio: string;\r\n constructor(private wmMenuServicioService: WmMenuServicioService) { \r\n console.log('WmMenuAlertaPanicoService inicializado.');\r\n }\r\n\r\n private subscription: any;\r\n private isRunning: boolean = false;\r\n\r\n iniciarProceso(\r\n intervalMs: number,\r\n callback: () => void,\r\n urlObtenerParametro: string,\r\n token: string,\r\n rutaAudio: string\r\n ): void {\r\n console.log('iniciarProceso llamado con parámetros:', { intervalMs, urlObtenerParametro, token, rutaAudio });\r\n this.rutaAudio = rutaAudio;\r\n\r\n const iniciarConInteraccion = () => {\r\n console.log('iniciarConInteraccion ejecutado.');\r\n this.wmMenuServicioService\r\n .menuApiObtener(urlObtenerParametro, null, token, 'ReporteAlertasPanico')\r\n .subscribe((resp) => {\r\n console.log('Respuesta obtenida de menuApiObtener:', resp);\r\n if (resp && resp.length > 0 && resp[0].Valor == 1) {\r\n if (this.isRunning) {\r\n console.log('Proceso ya está corriendo.');\r\n return;\r\n }\r\n\r\n const storedIds = localStorage.getItem('ALERTAS_PANICO_ACTIVAS_WM');\r\n this.IdsAlertasPanicoActivas = storedIds ? new Set(JSON.parse(storedIds)) : new Set();\r\n console.log('IdsAlertasPanicoActivas inicializado:', this.IdsAlertasPanicoActivas);\r\n\r\n const ejecutarProceso = () => {\r\n console.log('ejecutarProceso iniciado.');\r\n this.isRunning = true;\r\n callback();\r\n setTimeout(() => {\r\n this.isRunning = false;\r\n ejecutarProceso();\r\n }, intervalMs);\r\n };\r\n\r\n ejecutarProceso();\r\n }\r\n });\r\n };\r\n\r\n ['drag', 'click'].forEach(evento => {\r\n console.log(`Evento ${evento} registrado para iniciar proceso.`);\r\n document.addEventListener(\r\n evento,\r\n () => {\r\n iniciarConInteraccion();\r\n },\r\n { once: true }\r\n );\r\n });\r\n }\r\n\r\n stopProcess(): void {\r\n console.log('stopProcess ejecutado.');\r\n this.isRunning = false;\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n console.log('ngOnDestroy ejecutado.');\r\n this.stopSound();\r\n this.stopFlashingTitle();\r\n }\r\n\r\n playSound(): void {\r\n console.log('playSound llamado.');\r\n if (this.isPlaying) return; // Evita reproducir si ya está sonando\r\n this.isPlaying = true;\r\n if (!this.audio) {\r\n this.audio = new Audio(this.rutaAudio); // Ruta al archivo de sonido\r\n }\r\n console.log(\"Audio cargado: \", this.audio)\r\n this.audio.loop = true; // Reproducir en bucle\r\n this.audio.play()\r\n .then(() => {\r\n console.log('Sonido reproduciéndose.');\r\n // Detener el sonido después de 10 segundos\r\n this.soundTimeout = setTimeout(() => {\r\n this.stopSound();\r\n }, 10000); // Detener después de 10 segundos\r\n })\r\n .catch(error => {\r\n console.error('Error al reproducir el sonido:', error);\r\n });\r\n }\r\n\r\n stopSound(): void {\r\n console.log('stopSound llamado.');\r\n if (this.audio) {\r\n this.audio.pause();\r\n this.audio.currentTime = 0; // Reinicia el sonido\r\n }\r\n this.isPlaying = false; // Restablece la bandera\r\n if (this.soundTimeout) {\r\n clearTimeout(this.soundTimeout); // Asegura que el temporizador se borre\r\n this.soundTimeout = null;\r\n }\r\n }\r\n\r\n startFlashingTitle(): void {\r\n console.log('startFlashingTitle llamado.');\r\n let toggle = false;\r\n\r\n // Almacenar el título original si aún no se ha guardado\r\n if (!this.originalTitle) {\r\n this.originalTitle = document.title;\r\n }\r\n\r\n if (!this.intervalId) {\r\n this.intervalId = setInterval(() => {\r\n // Alternar entre el título alternativo y el título original\r\n document.title = toggle ? this.alternateTitle : this.originalTitle;\r\n toggle = !toggle;\r\n }, 1000); // Cambia el título cada segundo\r\n }\r\n }\r\n\r\n stopFlashingTitle(): void {\r\n console.log('stopFlashingTitle llamado.');\r\n if (this.intervalId) {\r\n clearInterval(this.intervalId);\r\n this.intervalId = null;\r\n document.title = this.originalTitle; // Restaura a vacío\r\n }\r\n }\r\n\r\n revisarAlertasPendientes(urlObtenerAlertasPanico: string, token: string): void {\r\n console.log('revisarAlertasPendientes llamado con parámetros:', { urlObtenerAlertasPanico, token });\r\n const helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(token);\r\n this.wmMenuServicioService\r\n .menuApiObtener(urlObtenerAlertasPanico, decodedToken['id_usuario'], token)\r\n .subscribe((resp) => {\r\n console.log('Respuesta obtenida de revisarAlertasPendientes:', resp);\r\n if (resp && resp.length > 0) {\r\n\r\n const alertasIds = resp.map(alerta => alerta.IdAlertaPanico);\r\n console.log('IDs de alertas obtenidas:', alertasIds);\r\n\r\n // Eliminar IDs que no están en la respuesta del servicio\r\n this.IdsAlertasPanicoActivas.forEach((id) => {\r\n if (!alertasIds.includes(id)) {\r\n this.IdsAlertasPanicoActivas.delete(id);\r\n }\r\n });\r\n\r\n // Filtrar alertas nuevas\r\n const newAlerts = resp.filter(alerta => !this.IdsAlertasPanicoActivas.has(alerta.IdAlertaPanico));\r\n\r\n // Agregar las nuevas alertas a la lista activa\r\n newAlerts.forEach(alerta => this.IdsAlertasPanicoActivas.add(alerta.IdAlertaPanico));\r\n if (this.IdsAlertasPanicoActivas.size > 0) {\r\n this.startFlashingTitle();\r\n }\r\n // Si hay nuevas alertas, dispara notificacion sonora\r\n if (newAlerts.length > 0) {\r\n this.playSound();\r\n }\r\n } else {\r\n // Si no hay alertas en la respuesta, limpiar la lista\r\n this.IdsAlertasPanicoActivas.clear();\r\n this.stopFlashingTitle();\r\n }\r\n // Actualizar localStorage con los IDs activos\r\n localStorage.setItem('ALERTAS_PANICO_ACTIVAS_WM', JSON.stringify(Array.from(this.IdsAlertasPanicoActivas)));\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { MenuPrincipal } from './model/wm-menu-principal.model';\r\nimport { MenuSecundario } from './model/wm-menu-cuenta.model';\r\nimport { WmMenuServicioService } from './services/wm-menu-servicio.service';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { WmMenuAlertaPanicoService } from './services/wm-menu-alerta-panico.service';\r\n\r\n@Component({\r\n selector: 'wm-menu',\r\n templateUrl: './wm-menu.component.html',\r\n styleUrls: ['./wm-menu.component.scss']\r\n})\r\nexport class WmMenuComponent implements OnInit {\r\n @Input() logo: string;\r\n @Input() colorFondo: string;\r\n @Input() colorTexto: string;\r\n @Input() menuPrincipal: MenuPrincipal[];\r\n @Input() menuSecundario: MenuSecundario[];\r\n\r\n @Input() urlMenu: string; \r\n @Input() token: string;\r\n @Input() urlCuentaSeguridad: string;\r\n @Input() activar2fa: string;\r\n @Input() urlguiasOnline: string;\r\n @Input() urlObtenerAlertasPanico: string;\r\n @Input() urlObtenerParametro: string;\r\n @Input() rutaAudio: string;\r\n\r\n @Input() nombreCliente: string;\r\n @Input() nombreUsuario: string;\r\n @Input() versionWeb: string;\r\n @Input() urlBaseAlmacenamiento: string;\r\n\r\n @Input() urlIdiomas: string;\r\n\r\n private intervaloPeticionesMs = 60000;\r\n \r\n menuPrincipalSel: MenuPrincipal;\r\n menuSecundarioSel: MenuSecundario = new MenuSecundario();\r\n menuLateralAbierto: Boolean = false;\r\n porcentajeUtilizado : number;\r\n menuIdioma : any = [];\r\n\r\n constructor(private wmMenuServicioService: WmMenuServicioService, private wmMenuAlertaPanicoService: WmMenuAlertaPanicoService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.wmMenuAlertaPanicoService.iniciarProceso(this.intervaloPeticionesMs, () => this.wmMenuAlertaPanicoService.revisarAlertasPendientes(this.urlObtenerAlertasPanico, this.token), this.urlObtenerParametro, this.token, this.rutaAudio);\r\n\r\n\r\n this.cargarMenuCuenta();\r\n\r\n if (this.urlMenu && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.wmMenuServicioService\r\n .menuApiObtener(this.urlMenu, decodedToken[\"id_usuario\"], this.token)\r\n .subscribe((resp) => {\r\n this.menuPrincipal = this.wmMenuServicioService.mapearMenu(resp);\r\n });\r\n }\r\n\r\n if (this.urlIdiomas && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.wmMenuServicioService\r\n .menuIdiomasObtener(this.urlIdiomas, decodedToken[\"id_usuario\"], this.token)\r\n .subscribe((resp) => {\r\n this.menuIdioma = resp;\r\n this.cargarMenuCuenta();\r\n });\r\n }\r\n\r\n if (this.urlBaseAlmacenamiento && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.wmMenuServicioService\r\n .almacenamientoApiObtener(this.urlBaseAlmacenamiento, decodedToken[\"id_usuario\"], this.token)\r\n .subscribe((resp) => {\r\n let utilizado = resp[0] && resp[0].Utilizado ? resp[0].Utilizado : 0;\r\n let total = resp[0] && resp[0].Total ? resp[0].Total : 0;\r\n this.porcentajeUtilizado = Math.round((utilizado / total) * 100);\r\n });\r\n }\r\n }\r\n\r\n clickMenuPrincipal(i: number) {\r\n if (this.menuPrincipal[i].hijos && this.menuPrincipal[i].hijos.length) {\r\n if (this.menuPrincipalSel == this.menuPrincipal[i]) {\r\n this.menuPrincipalSel = null;\r\n } else {\r\n this.menuPrincipalSel = this.menuPrincipal[i];\r\n }\r\n }\r\n }\r\n\r\n clickMenuSecundario(i: number) {\r\n this.menuSecundarioSel = this.menuSecundario[i];\r\n this.menuPrincipalSel = null;\r\n }\r\n\r\n cargarMenuCuenta(){\r\n if (this.urlCuentaSeguridad && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.menuSecundario = [{\r\n titulo: decodedToken[\"unique_name\"],\r\n icono: \"account_circle\",\r\n hijos: [\r\n { titulo: decodedToken[\"unique_name\"], url: \"\", icono: \"person\" },\r\n { titulo: this.menuIdioma && this.menuIdioma.CambiarContrasenna ? this.menuIdioma.CambiarContrasenna : \"Cambiar contraseña\", url: this.urlCuentaSeguridad + \"CambioContrasena\", icono: \"vpn_key\" },\r\n this.activar2fa == \"1\" ? { titulo: this.menuIdioma && this.menuIdioma.Configurar2fa ? this.menuIdioma.Configurar2fa : \"Configurar 2FA\", url: this.urlCuentaSeguridad + \"Habilitacion2FA\", icono: \"verified_user\" } : null,\r\n this.urlguiasOnline != null && this.urlguiasOnline !== \"\" && this.urlguiasOnline?.length != 0 ? { titulo: this.menuIdioma && this.menuIdioma.guiasOnline ? this.menuIdioma.guiasOnline : \"Guias Online\", url: this.urlguiasOnline, icono: \"menu_book\" } : null,\r\n { titulo: this.menuIdioma && this.menuIdioma.CerrarSesion ? this.menuIdioma.CerrarSesion : \"Cerrar sesión\", url: this.urlCuentaSeguridad + \"CerrarSesion\", icono: \"exit_to_app\" }].filter(hijo => hijo != null),\r\n }];\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule} from '@angular/material/sidenav';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatRippleModule } from \"@angular/material/core\";\r\n\r\nimport { WmMenuComponent } from './wm-menu/wm-menu.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { JwtModule } from '@auth0/angular-jwt';\r\n\r\n\r\n@NgModule({\r\n declarations: [WmMenuComponent],\r\n imports: [\r\n BrowserModule,\r\n MatToolbarModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatRippleModule,\r\n HttpClientModule,\r\n JwtModule\r\n ],\r\n exports: [WmMenuComponent]\r\n})\r\nexport class WmMenuModule { }\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://wm-menu/lib/wm-menu/model/wm-menu-cuenta.model.ts","ng://wm-menu/lib/wm-menu/services/wm-menu-servicio.service.ts","ng://wm-menu/lib/wm-menu/services/wm-menu-alerta-panico.service.ts","ng://wm-menu/lib/wm-menu/wm-menu.component.ts","ng://wm-menu/lib/wm-menu.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","MenuSecundario","this","hijos","WmMenuServicioService","http","iconRegistry","sanitizer","prototype","menuApiObtener","url","idUsuario","token","codLogicaParametro","headers","HttpHeaders","Authorization","myParams","HttpParams","append","toString","get","params","pipe","map","resp","catchError","error","throwError","mapearMenu","respApi","sort","a","b","Posicion","element","Icono","startsWith","iconSvg","addSvgIcon","bypassSecurityTrustResourceUrl","obtenerMenu","idMenuPadre","menu","IdMenuPadre","push","titulo","IdiomaRecurso","Url","icono","descripcion","Descripcion","IdMenu","menuIdiomasObtener","almacenamientoApiObtener","HttpClient","MatIconRegistry","DomSanitizer","Injectable","providedIn","WmMenuAlertaPanicoService","wmMenuServicioService","alternateTitle","audio","isPlaying","IdsAlertasPanicoActivas","Set","soundTimeout","isRunning","iniciarProceso","intervalMs","callback","urlObtenerParametro","rutaAudio","_this","forEach","evento","document","addEventListener","subscribe","Valor","storedIds","localStorage","getItem","JSON","parse","ejecutarProceso_1","setTimeout","once","stopProcess","subscription","unsubscribe","ngOnDestroy","stopSound","stopFlashingTitle","playSound","Audio","loop","play","then","catch","console","log","pause","currentTime","clearTimeout","startFlashingTitle","toggle","originalTitle","title","intervalId","setInterval","clearInterval","revisarAlertasPendientes","urlObtenerAlertasPanico","decodedToken","JwtHelperService","decodeToken","alertasIds_1","alerta","IdAlertaPanico","id","includes","delete","newAlerts","filter","has","add","size","clear","setItem","stringify","Array","from","WmMenuComponent","alertaPanicoService","menuSecundarioSel","menuLateralAbierto","menuIdioma","intervaloPeticionesMs","ngOnInit","cargarMenuCuenta","urlMenu","menuPrincipal","urlIdiomas","urlBaseAlmacenamiento","utilizado","Utilizado","total","Total","porcentajeUtilizado","Math","round","clickMenuPrincipal","menuPrincipalSel","clickMenuSecundario","menuSecundario","urlCuentaSeguridad","CambiarContrasenna","activar2fa","Configurar2fa","urlguiasOnline","_a","guiasOnline","CerrarSesion","hijo","Input","Component","selector","template","WmMenuModule","NgModule","declarations","imports","BrowserModule","MatToolbarModule","MatSidenavModule","MatListModule","MatButtonModule","MatIconModule","MatMenuModule","MatRippleModule","HttpClientModule","JwtModule","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export class MenuSecundario {\r\n icono: string;\r\n titulo: string;\r\n hijos: MenuSecundarioHijo[] = [];\r\n}\r\n\r\nexport class MenuSecundarioHijo {\r\n icono: string;\r\n titulo: string;\r\n url: string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MenuPrincipal } from '../model/wm-menu-principal.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WmMenuServicioService {\r\n\r\n constructor(private http: HttpClient, private iconRegistry: MatIconRegistry, private sanitizer: DomSanitizer) { }\r\n\r\n menuApiObtener(url:string, idUsuario: string, token:string, codLogicaParametro = \"\"): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n \r\n let myParams = new HttpParams();\r\n if (codLogicaParametro.length > 0) {\r\n myParams = myParams.append(\"codLogica\", codLogicaParametro);\r\n }\r\n myParams = myParams.append(\"ctrlActivo\", \"true\");\r\n myParams = myParams.append(\"conPadres\", \"true\");\r\n if (idUsuario != null)\r\n myParams = myParams.append(\"idUsuario\", idUsuario.toString());\r\n\r\n return this.http.get(url, { headers, params: myParams }).pipe(\r\n map(resp => {\r\n return resp;\r\n }),\r\n catchError(error => {\r\n return throwError(error.error);\r\n })\r\n );\r\n }\r\n\r\n mapearMenu(respApi: any): MenuPrincipal[] {\r\n respApi = respApi.sort((a, b) => a.Posicion > b.Posicion?\"1\":\"-1\");\r\n\r\n for (const key in respApi) {\r\n const element = respApi[key];\r\n if (element.Icono.startsWith(\"http\")) {\r\n var iconSvg = 'wm-icon-menu-' + key;\r\n this.iconRegistry.addSvgIcon(\r\n iconSvg,\r\n this.sanitizer.bypassSecurityTrustResourceUrl(element.Icono));\r\n respApi[key].Icono = iconSvg;\r\n }\r\n }\r\n\r\n return this.obtenerMenu(respApi);\r\n }\r\n\r\n\r\n private obtenerMenu(respApi: any, idMenuPadre?: Number): MenuPrincipal[] {\r\n var menu: MenuPrincipal[] = [];\r\n for (const key in respApi) {\r\n if (respApi[key].IdMenuPadre == idMenuPadre || (!idMenuPadre && respApi[key].IdMenuPadre == null)) {\r\n menu.push({\r\n titulo: respApi[key].IdiomaRecurso,\r\n url: respApi[key].Url,\r\n icono: respApi[key].Icono,\r\n descripcion: respApi[key].Descripcion,\r\n hijos: this.obtenerMenu(respApi, respApi[key].IdMenu)\r\n });\r\n }\r\n }\r\n return menu;\r\n }\r\n\r\n menuIdiomasObtener(url:string, idUsuario: string, token:string): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n\r\n return this.http.get(url).pipe(\r\n map(resp => {\r\n return resp;\r\n }),\r\n catchError(error => {\r\n return throwError(error.error);\r\n })\r\n );\r\n }\r\n \r\n almacenamientoApiObtener(url:string, idUsuario: string, token:string): Observable<any> {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n \r\n let myParams = new HttpParams();\r\n\r\n if (idUsuario != null)\r\n myParams = myParams.append(\"idUsuario\", idUsuario.toString());\r\n \r\n return this.http.get(url, { headers, params: myParams }).pipe(\r\n map(resp => {\r\n return resp;\r\n }),\r\n catchError(error => {\r\n return throwError(error.error);\r\n })\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { WmMenuServicioService } from './wm-menu-servicio.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WmMenuAlertaPanicoService {\r\n\r\n private intervalId: any;\r\n private alternateTitle = 'Alerta de Pánico Recibida';\r\n private originalTitle: string;\r\n private audio: HTMLAudioElement | null = null;\r\n private isPlaying = false; // Controla si el sonido ya está reproduciéndose\r\n public formulario: any;\r\n private IdsAlertasPanicoActivas: Set<number> = new Set(); // Almacena los IDs de las alertas ya manejadas\r\n private soundTimeout: any = null; // Controla el temporizador del sonido\r\n private rutaAudio: string;\r\n constructor(private wmMenuServicioService: WmMenuServicioService) { }\r\n\r\n private subscription: any;\r\n private isRunning: boolean = false;\r\n\r\n iniciarProceso(\r\n intervalMs: number,\r\n callback: () => void,\r\n urlObtenerParametro: string,\r\n token: string,\r\n rutaAudio: string\r\n ): void {\r\n this.rutaAudio = rutaAudio;\r\n \r\n const iniciarConInteraccion = () => {\r\n this.wmMenuServicioService\r\n .menuApiObtener(urlObtenerParametro, null, token, 'ReporteAlertasPanico')\r\n .subscribe((resp) => {\r\n // validar si el parametro ReporteAlertasPanico esta encendido\r\n if (resp && resp.length > 0 && resp[0].Valor == 1) {\r\n if (this.isRunning) {\r\n return;\r\n }\r\n // Inicializar la variable desde localStorage\r\n const storedIds = localStorage.getItem('ALERTAS_PANICO_ACTIVAS_WM');\r\n this.IdsAlertasPanicoActivas = storedIds ? new Set(JSON.parse(storedIds)) : new Set();\r\n \r\n const ejecutarProceso = () => {\r\n this.isRunning = true;\r\n callback();\r\n setTimeout(() => {\r\n this.isRunning = false;\r\n ejecutarProceso();\r\n }, intervalMs);\r\n };\r\n \r\n ejecutarProceso();\r\n }\r\n });\r\n };\r\n \r\n ['drag', 'click'].forEach(evento => {\r\n document.addEventListener(\r\n evento,\r\n () => {\r\n iniciarConInteraccion();\r\n },\r\n { once: true }\r\n );\r\n });\r\n\r\n }\r\n \r\n\r\n stopProcess(): void {\r\n this.isRunning = false;\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stopSound();\r\n this.stopFlashingTitle();\r\n }\r\n\r\n playSound(): void {\r\n if (this.isPlaying) return; // Evita reproducir si ya está sonando\r\n\r\n this.isPlaying = true;\r\n if (!this.audio) {\r\n this.audio = new Audio(this.rutaAudio); // Ruta al archivo de sonido\r\n }\r\n\r\n this.audio.loop = true; // Reproducir en bucle\r\n this.audio.play()\r\n .then(() => {\r\n // Detener el sonido después de 10 segundos\r\n this.soundTimeout = setTimeout(() => {\r\n this.stopSound();\r\n }, 10000); // Detener después de 10 segundos\r\n })\r\n .catch(error => {\r\n console.log('Error al reproducir el sonido:', error);\r\n });\r\n }\r\n\r\n stopSound(): void {\r\n if (this.audio) {\r\n this.audio.pause();\r\n this.audio.currentTime = 0; // Reinicia el sonido\r\n }\r\n this.isPlaying = false; // Restablece la bandera\r\n if (this.soundTimeout) {\r\n clearTimeout(this.soundTimeout); // Asegura que el temporizador se borre\r\n this.soundTimeout = null;\r\n }\r\n }\r\n\r\n startFlashingTitle(): void {\r\n let toggle = false;\r\n \r\n // Almacenar el título original si aún no se ha guardado\r\n if (!this.originalTitle) {\r\n this.originalTitle = document.title;\r\n }\r\n \r\n if (!this.intervalId) {\r\n this.intervalId = setInterval(() => {\r\n // Alternar entre el título alternativo y el título original\r\n document.title = toggle ? this.alternateTitle : this.originalTitle;\r\n toggle = !toggle;\r\n }, 1000); // Cambia el título cada segundo\r\n }\r\n }\r\n\r\n stopFlashingTitle(): void {\r\n if (this.intervalId) {\r\n clearInterval(this.intervalId);\r\n this.intervalId = null;\r\n document.title = this.originalTitle; // Restaura a vacío\r\n }\r\n }\r\n\r\n revisarAlertasPendientes(urlObtenerAlertasPanico: string, token: string): void {\r\n const helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(token);\r\n this.wmMenuServicioService\r\n .menuApiObtener(urlObtenerAlertasPanico, decodedToken['id_usuario'], token)\r\n .subscribe((resp) => {\r\n if (resp && resp.length > 0) {\r\n \r\n const alertasIds = resp.map(alerta => alerta.IdAlertaPanico);\r\n\r\n // Eliminar IDs que no están en la respuesta del servicio\r\n this.IdsAlertasPanicoActivas.forEach((id) => {\r\n if (!alertasIds.includes(id)) {\r\n this.IdsAlertasPanicoActivas.delete(id);\r\n }\r\n });\r\n\r\n // Filtrar alertas nuevas\r\n const newAlerts = resp.filter(alerta => !this.IdsAlertasPanicoActivas.has(alerta.IdAlertaPanico));\r\n\r\n // Agregar las nuevas alertas a la lista activa\r\n newAlerts.forEach(alerta => this.IdsAlertasPanicoActivas.add(alerta.IdAlertaPanico));\r\n if (this.IdsAlertasPanicoActivas.size > 0) {\r\n this.startFlashingTitle();\r\n }\r\n // Si hay nuevas alertas, dispara notificacion sonora\r\n if (newAlerts.length > 0) {\r\n this.playSound();\r\n }\r\n } else {\r\n // Si no hay alertas en la respuesta, limpiar la lista\r\n this.IdsAlertasPanicoActivas.clear();\r\n this.stopFlashingTitle();\r\n }\r\n // Actualizar localStorage con los IDs activos\r\n localStorage.setItem('ALERTAS_PANICO_ACTIVAS_WM', JSON.stringify(Array.from(this.IdsAlertasPanicoActivas)));\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { MenuPrincipal } from './model/wm-menu-principal.model';\r\nimport { MenuSecundario } from './model/wm-menu-cuenta.model';\r\nimport { WmMenuServicioService } from './services/wm-menu-servicio.service';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { WmMenuAlertaPanicoService } from './services/wm-menu-alerta-panico.service';\r\n\r\n@Component({\r\n selector: 'wm-menu',\r\n templateUrl: './wm-menu.component.html',\r\n styleUrls: ['./wm-menu.component.scss']\r\n})\r\nexport class WmMenuComponent implements OnInit {\r\n @Input() logo: string;\r\n @Input() colorFondo: string;\r\n @Input() colorTexto: string;\r\n @Input() menuPrincipal: MenuPrincipal[];\r\n @Input() menuSecundario: MenuSecundario[];\r\n\r\n @Input() urlMenu: string; \r\n @Input() token: string;\r\n @Input() urlCuentaSeguridad: string;\r\n @Input() activar2fa: string;\r\n @Input() urlguiasOnline: string;\r\n @Input() urlObtenerAlertasPanico: string;\r\n @Input() urlObtenerParametro: string;\r\n @Input() rutaAudio: string;\r\n\r\n @Input() nombreCliente: string;\r\n @Input() nombreUsuario: string;\r\n @Input() versionWeb: string;\r\n @Input() urlBaseAlmacenamiento: string;\r\n\r\n @Input() urlIdiomas: string;\r\n\r\n menuPrincipalSel: MenuPrincipal;\r\n menuSecundarioSel: MenuSecundario = new MenuSecundario();\r\n menuLateralAbierto: Boolean = false;\r\n porcentajeUtilizado : number;\r\n menuIdioma : any = [];\r\n private intervaloPeticionesMs = 60000;\r\n\r\n constructor(private wmMenuServicioService: WmMenuServicioService, private alertaPanicoService: WmMenuAlertaPanicoService) { }\r\n\r\n ngOnInit(): void {\r\n this.cargarMenuCuenta();\r\n\r\n this.alertaPanicoService.iniciarProceso(this.intervaloPeticionesMs, () => this.alertaPanicoService.revisarAlertasPendientes(this.urlObtenerAlertasPanico, this.token), this.urlObtenerParametro, this.token, this.rutaAudio);\r\n\r\n if (this.urlMenu && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.wmMenuServicioService\r\n .menuApiObtener(this.urlMenu, decodedToken[\"id_usuario\"], this.token)\r\n .subscribe((resp) => {\r\n this.menuPrincipal = this.wmMenuServicioService.mapearMenu(resp);\r\n });\r\n }\r\n\r\n if (this.urlIdiomas && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.wmMenuServicioService\r\n .menuIdiomasObtener(this.urlIdiomas, decodedToken[\"id_usuario\"], this.token)\r\n .subscribe((resp) => {\r\n this.menuIdioma = resp;\r\n this.cargarMenuCuenta();\r\n });\r\n }\r\n\r\n if (this.urlBaseAlmacenamiento && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.wmMenuServicioService\r\n .almacenamientoApiObtener(this.urlBaseAlmacenamiento, decodedToken[\"id_usuario\"], this.token)\r\n .subscribe((resp) => {\r\n let utilizado = resp[0] && resp[0].Utilizado ? resp[0].Utilizado : 0;\r\n let total = resp[0] && resp[0].Total ? resp[0].Total : 0;\r\n this.porcentajeUtilizado = Math.round((utilizado / total) * 100);\r\n });\r\n }\r\n }\r\n\r\n clickMenuPrincipal(i: number) {\r\n if (this.menuPrincipal[i].hijos && this.menuPrincipal[i].hijos.length) {\r\n if (this.menuPrincipalSel == this.menuPrincipal[i]) {\r\n this.menuPrincipalSel = null;\r\n } else {\r\n this.menuPrincipalSel = this.menuPrincipal[i];\r\n }\r\n }\r\n }\r\n\r\n clickMenuSecundario(i: number) {\r\n this.menuSecundarioSel = this.menuSecundario[i];\r\n this.menuPrincipalSel = null;\r\n }\r\n\r\n cargarMenuCuenta(){\r\n if (this.urlCuentaSeguridad && this.token) {\r\n var helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(this.token);\r\n this.menuSecundario = [{\r\n titulo: decodedToken[\"unique_name\"],\r\n icono: \"account_circle\",\r\n hijos: [\r\n { titulo: decodedToken[\"unique_name\"], url: \"\", icono: \"person\" },\r\n { titulo: this.menuIdioma && this.menuIdioma.CambiarContrasenna ? this.menuIdioma.CambiarContrasenna : \"Cambiar contraseña\", url: this.urlCuentaSeguridad + \"CambioContrasena\", icono: \"vpn_key\" },\r\n this.activar2fa == \"1\" ? { titulo: this.menuIdioma && this.menuIdioma.Configurar2fa ? this.menuIdioma.Configurar2fa : \"Configurar 2FA\", url: this.urlCuentaSeguridad + \"Habilitacion2FA\", icono: \"verified_user\" } : null,\r\n this.urlguiasOnline != null && this.urlguiasOnline !== \"\" && this.urlguiasOnline?.length != 0 ? { titulo: this.menuIdioma && this.menuIdioma.guiasOnline ? this.menuIdioma.guiasOnline : \"Guias Online\", url: this.urlguiasOnline, icono: \"menu_book\" } : null,\r\n { titulo: this.menuIdioma && this.menuIdioma.CerrarSesion ? this.menuIdioma.CerrarSesion : \"Cerrar sesión\", url: this.urlCuentaSeguridad + \"CerrarSesion\", icono: \"exit_to_app\" }].filter(hijo => hijo != null),\r\n }];\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule} from '@angular/material/sidenav';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatRippleModule } from \"@angular/material/core\";\r\n\r\nimport { WmMenuComponent } from './wm-menu/wm-menu.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { JwtModule } from '@auth0/angular-jwt';\r\n\r\n\r\n@NgModule({\r\n declarations: [WmMenuComponent],\r\n imports: [\r\n BrowserModule,\r\n MatToolbarModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatRippleModule,\r\n HttpClientModule,\r\n JwtModule\r\n ],\r\n exports: [WmMenuComponent]\r\n})\r\nexport class WmMenuModule { }\r\n"]}
|
|
@@ -13,27 +13,22 @@ let WmMenuAlertaPanicoService = class WmMenuAlertaPanicoService {
|
|
|
13
13
|
this.IdsAlertasPanicoActivas = new Set(); // Almacena los IDs de las alertas ya manejadas
|
|
14
14
|
this.soundTimeout = null; // Controla el temporizador del sonido
|
|
15
15
|
this.isRunning = false;
|
|
16
|
-
console.log('WmMenuAlertaPanicoService inicializado.');
|
|
17
16
|
}
|
|
18
17
|
iniciarProceso(intervalMs, callback, urlObtenerParametro, token, rutaAudio) {
|
|
19
|
-
console.log('iniciarProceso llamado con parámetros:', { intervalMs, urlObtenerParametro, token, rutaAudio });
|
|
20
18
|
this.rutaAudio = rutaAudio;
|
|
21
19
|
const iniciarConInteraccion = () => {
|
|
22
|
-
console.log('iniciarConInteraccion ejecutado.');
|
|
23
20
|
this.wmMenuServicioService
|
|
24
21
|
.menuApiObtener(urlObtenerParametro, null, token, 'ReporteAlertasPanico')
|
|
25
22
|
.subscribe((resp) => {
|
|
26
|
-
|
|
23
|
+
// validar si el parametro ReporteAlertasPanico esta encendido
|
|
27
24
|
if (resp && resp.length > 0 && resp[0].Valor == 1) {
|
|
28
25
|
if (this.isRunning) {
|
|
29
|
-
console.log('Proceso ya está corriendo.');
|
|
30
26
|
return;
|
|
31
27
|
}
|
|
28
|
+
// Inicializar la variable desde localStorage
|
|
32
29
|
const storedIds = localStorage.getItem('ALERTAS_PANICO_ACTIVAS_WM');
|
|
33
30
|
this.IdsAlertasPanicoActivas = storedIds ? new Set(JSON.parse(storedIds)) : new Set();
|
|
34
|
-
console.log('IdsAlertasPanicoActivas inicializado:', this.IdsAlertasPanicoActivas);
|
|
35
31
|
const ejecutarProceso = () => {
|
|
36
|
-
console.log('ejecutarProceso iniciado.');
|
|
37
32
|
this.isRunning = true;
|
|
38
33
|
callback();
|
|
39
34
|
setTimeout(() => {
|
|
@@ -46,48 +41,41 @@ let WmMenuAlertaPanicoService = class WmMenuAlertaPanicoService {
|
|
|
46
41
|
});
|
|
47
42
|
};
|
|
48
43
|
['drag', 'click'].forEach(evento => {
|
|
49
|
-
console.log(`Evento ${evento} registrado para iniciar proceso.`);
|
|
50
44
|
document.addEventListener(evento, () => {
|
|
51
45
|
iniciarConInteraccion();
|
|
52
46
|
}, { once: true });
|
|
53
47
|
});
|
|
54
48
|
}
|
|
55
49
|
stopProcess() {
|
|
56
|
-
console.log('stopProcess ejecutado.');
|
|
57
50
|
this.isRunning = false;
|
|
58
51
|
if (this.subscription) {
|
|
59
52
|
this.subscription.unsubscribe();
|
|
60
53
|
}
|
|
61
54
|
}
|
|
62
55
|
ngOnDestroy() {
|
|
63
|
-
console.log('ngOnDestroy ejecutado.');
|
|
64
56
|
this.stopSound();
|
|
65
57
|
this.stopFlashingTitle();
|
|
66
58
|
}
|
|
67
59
|
playSound() {
|
|
68
|
-
console.log('playSound llamado.');
|
|
69
60
|
if (this.isPlaying)
|
|
70
61
|
return; // Evita reproducir si ya está sonando
|
|
71
62
|
this.isPlaying = true;
|
|
72
63
|
if (!this.audio) {
|
|
73
64
|
this.audio = new Audio(this.rutaAudio); // Ruta al archivo de sonido
|
|
74
65
|
}
|
|
75
|
-
console.log("Audio cargado: ", this.audio);
|
|
76
66
|
this.audio.loop = true; // Reproducir en bucle
|
|
77
67
|
this.audio.play()
|
|
78
68
|
.then(() => {
|
|
79
|
-
console.log('Sonido reproduciéndose.');
|
|
80
69
|
// Detener el sonido después de 10 segundos
|
|
81
70
|
this.soundTimeout = setTimeout(() => {
|
|
82
71
|
this.stopSound();
|
|
83
72
|
}, 10000); // Detener después de 10 segundos
|
|
84
73
|
})
|
|
85
74
|
.catch(error => {
|
|
86
|
-
console.
|
|
75
|
+
console.log('Error al reproducir el sonido:', error);
|
|
87
76
|
});
|
|
88
77
|
}
|
|
89
78
|
stopSound() {
|
|
90
|
-
console.log('stopSound llamado.');
|
|
91
79
|
if (this.audio) {
|
|
92
80
|
this.audio.pause();
|
|
93
81
|
this.audio.currentTime = 0; // Reinicia el sonido
|
|
@@ -99,7 +87,6 @@ let WmMenuAlertaPanicoService = class WmMenuAlertaPanicoService {
|
|
|
99
87
|
}
|
|
100
88
|
}
|
|
101
89
|
startFlashingTitle() {
|
|
102
|
-
console.log('startFlashingTitle llamado.');
|
|
103
90
|
let toggle = false;
|
|
104
91
|
// Almacenar el título original si aún no se ha guardado
|
|
105
92
|
if (!this.originalTitle) {
|
|
@@ -114,7 +101,6 @@ let WmMenuAlertaPanicoService = class WmMenuAlertaPanicoService {
|
|
|
114
101
|
}
|
|
115
102
|
}
|
|
116
103
|
stopFlashingTitle() {
|
|
117
|
-
console.log('stopFlashingTitle llamado.');
|
|
118
104
|
if (this.intervalId) {
|
|
119
105
|
clearInterval(this.intervalId);
|
|
120
106
|
this.intervalId = null;
|
|
@@ -122,16 +108,13 @@ let WmMenuAlertaPanicoService = class WmMenuAlertaPanicoService {
|
|
|
122
108
|
}
|
|
123
109
|
}
|
|
124
110
|
revisarAlertasPendientes(urlObtenerAlertasPanico, token) {
|
|
125
|
-
console.log('revisarAlertasPendientes llamado con parámetros:', { urlObtenerAlertasPanico, token });
|
|
126
111
|
const helper = new JwtHelperService();
|
|
127
112
|
const decodedToken = helper.decodeToken(token);
|
|
128
113
|
this.wmMenuServicioService
|
|
129
114
|
.menuApiObtener(urlObtenerAlertasPanico, decodedToken['id_usuario'], token)
|
|
130
115
|
.subscribe((resp) => {
|
|
131
|
-
console.log('Respuesta obtenida de revisarAlertasPendientes:', resp);
|
|
132
116
|
if (resp && resp.length > 0) {
|
|
133
117
|
const alertasIds = resp.map(alerta => alerta.IdAlertaPanico);
|
|
134
|
-
console.log('IDs de alertas obtenidas:', alertasIds);
|
|
135
118
|
// Eliminar IDs que no están en la respuesta del servicio
|
|
136
119
|
this.IdsAlertasPanicoActivas.forEach((id) => {
|
|
137
120
|
if (!alertasIds.includes(id)) {
|
|
@@ -170,4 +153,4 @@ WmMenuAlertaPanicoService = __decorate([
|
|
|
170
153
|
})
|
|
171
154
|
], WmMenuAlertaPanicoService);
|
|
172
155
|
export { WmMenuAlertaPanicoService };
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20tbWVudS1hbGVydGEtcGFuaWNvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly93bS1tZW51LyIsInNvdXJjZXMiOlsibGliL3dtLW1lbnUvc2VydmljZXMvd20tbWVudS1hbGVydGEtcGFuaWNvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUtuRSxJQUFhLHlCQUF5QixHQUF0QyxNQUFhLHlCQUF5QjtJQVdwQyxZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQVJ4RCxtQkFBYyxHQUFHLDJCQUEyQixDQUFDO1FBRTdDLFVBQUssR0FBNEIsSUFBSSxDQUFDO1FBQ3RDLGNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxnREFBZ0Q7UUFFbkUsNEJBQXVCLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQywrQ0FBK0M7UUFDakcsaUJBQVksR0FBUSxJQUFJLENBQUMsQ0FBQyxzQ0FBc0M7UUFPaEUsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUpqQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUtELGNBQWMsQ0FDWixVQUFrQixFQUNsQixRQUFvQixFQUNwQixtQkFBMkIsRUFDM0IsS0FBYSxFQUNiLFNBQWlCO1FBRWpCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0NBQXdDLEVBQUUsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEVBQUU7WUFDakMsT0FB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RUFBRSxDQUFDO2lCQUMzQjtnQkFDRCxxREFBcUQ7Z0JBQ3JELElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztpQkFDbEI7YUFDRjtpQkFBTTtnQkFDTCxzREFBc0Q7Z0JBQ3RELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7YUFDMUI7WUFDRCw4Q0FBOEM7WUFDOUMsWUFBWSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUVGLENBQUE7O1lBbEw0QyxxQkFBcUI7OztBQVhyRCx5QkFBeUI7SUFIckMsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztHQUNXLHlCQUF5QixDQTZMckM7U0E3TFkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcclxuaW1wb3J0IHsgV21NZW51U2VydmljaW9TZXJ2aWNlIH0gZnJvbSAnLi93bS1tZW51LXNlcnZpY2lvLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV21NZW51QWxlcnRhUGFuaWNvU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgaW50ZXJ2YWxJZDogYW55O1xyXG4gIHByaXZhdGUgYWx0ZXJuYXRlVGl0bGUgPSAnQWxlcnRhIGRlIFDDoW5pY28gUmVjaWJpZGEnO1xyXG4gIHByaXZhdGUgb3JpZ2luYWxUaXRsZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgYXVkaW86IEhUTUxBdWRpb0VsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGlzUGxheWluZyA9IGZhbHNlOyAvLyBDb250cm9sYSBzaSBlbCBzb25pZG8geWEgZXN0w6EgcmVwcm9kdWNpw6luZG9zZVxyXG4gIHB1YmxpYyBmb3JtdWxhcmlvOiBhbnk7XHJcbiAgcHJpdmF0ZSBJZHNBbGVydGFzUGFuaWNvQWN0aXZhczogU2V0PG51bWJlcj4gPSBuZXcgU2V0KCk7IC8vIEFsbWFjZW5hIGxvcyBJRHMgZGUgbGFzIGFsZXJ0YXMgeWEgbWFuZWphZGFzXHJcbiAgcHJpdmF0ZSBzb3VuZFRpbWVvdXQ6IGFueSA9IG51bGw7IC8vIENvbnRyb2xhIGVsIHRlbXBvcml6YWRvciBkZWwgc29uaWRvXHJcbiAgcHJpdmF0ZSBydXRhQXVkaW86IHN0cmluZztcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdtTWVudVNlcnZpY2lvU2VydmljZTogV21NZW51U2VydmljaW9TZXJ2aWNlKSB7IFxyXG4gICAgY29uc29sZS5sb2coJ1dtTWVudUFsZXJ0YVBhbmljb1NlcnZpY2UgaW5pY2lhbGl6YWRvLicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IGFueTtcclxuICBwcml2YXRlIGlzUnVubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpbmljaWFyUHJvY2VzbyhcclxuICAgIGludGVydmFsTXM6IG51bWJlcixcclxuICAgIGNhbGxiYWNrOiAoKSA9PiB2b2lkLFxyXG4gICAgdXJsT2J0ZW5lclBhcmFtZXRybzogc3RyaW5nLFxyXG4gICAgdG9rZW46IHN0cmluZyxcclxuICAgIHJ1dGFBdWRpbzogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnaW5pY2lhclByb2Nlc28gbGxhbWFkbyBjb24gcGFyw6FtZXRyb3M6JywgeyBpbnRlcnZhbE1zLCB1cmxPYnRlbmVyUGFyYW1ldHJvLCB0b2tlbiwgcnV0YUF1ZGlvIH0pO1xyXG4gICAgdGhpcy5ydXRhQXVkaW8gPSBydXRhQXVkaW87XHJcblxyXG4gICAgY29uc3QgaW5pY2lhckNvbkludGVyYWNjaW9uID0gKCkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnaW5pY2lhckNvbkludGVyYWNjaW9uIGVqZWN1dGFkby4nKTtcclxuICAgICAgdGhpcy53bU1lbnVTZXJ2aWNpb1NlcnZpY2VcclxuICAgICAgICAubWVudUFwaU9idGVuZXIodXJsT2J0ZW5lclBhcmFtZXRybywgbnVsbCwgdG9rZW4sICdSZXBvcnRlQWxlcnRhc1BhbmljbycpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1Jlc3B1ZXN0YSBvYnRlbmlkYSBkZSBtZW51QXBpT2J0ZW5lcjonLCByZXNwKTtcclxuICAgICAgICAgIGlmIChyZXNwICYmIHJlc3AubGVuZ3RoID4gMCAmJiByZXNwWzBdLlZhbG9yID09IDEpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1Byb2Nlc28geWEgZXN0w6EgY29ycmllbmRvLicpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3Qgc3RvcmVkSWRzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0FMRVJUQVNfUEFOSUNPX0FDVElWQVNfV00nKTtcclxuICAgICAgICAgICAgdGhpcy5JZHNBbGVydGFzUGFuaWNvQWN0aXZhcyA9IHN0b3JlZElkcyA/IG5ldyBTZXQoSlNPTi5wYXJzZShzdG9yZWRJZHMpKSA6IG5ldyBTZXQoKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0lkc0FsZXJ0YXNQYW5pY29BY3RpdmFzIGluaWNpYWxpemFkbzonLCB0aGlzLklkc0FsZXJ0YXNQYW5pY29BY3RpdmFzKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGVqZWN1dGFyUHJvY2VzbyA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZWplY3V0YXJQcm9jZXNvIGluaWNpYWRvLicpO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNSdW5uaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGVqZWN1dGFyUHJvY2VzbygpO1xyXG4gICAgICAgICAgICAgIH0sIGludGVydmFsTXMpO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgZWplY3V0YXJQcm9jZXNvKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIFsnZHJhZycsICdjbGljayddLmZvckVhY2goZXZlbnRvID0+IHtcclxuICAgICAgY29uc29sZS5sb2coYEV2ZW50byAke2V2ZW50b30gcmVnaXN0cmFkbyBwYXJhIGluaWNpYXIgcHJvY2Vzby5gKTtcclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgICBldmVudG8sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgaW5pY2lhckNvbkludGVyYWNjaW9uKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IG9uY2U6IHRydWUgfVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvY2VzcygpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdzdG9wUHJvY2VzcyBlamVjdXRhZG8uJyk7XHJcbiAgICB0aGlzLmlzUnVubmluZyA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCduZ09uRGVzdHJveSBlamVjdXRhZG8uJyk7XHJcbiAgICB0aGlzLnN0b3BTb3VuZCgpO1xyXG4gICAgdGhpcy5zdG9wRmxhc2hpbmdUaXRsZSgpO1xyXG4gIH1cclxuXHJcbiAgcGxheVNvdW5kKCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ3BsYXlTb3VuZCBsbGFtYWRvLicpO1xyXG4gICAgaWYgKHRoaXMuaXNQbGF5aW5nKSByZXR1cm47IC8vIEV2aXRhIHJlcHJvZHVjaXIgc2kgeWEgZXN0w6Egc29uYW5kb1xyXG4gICAgdGhpcy5pc1BsYXlpbmcgPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLmF1ZGlvKSB7XHJcbiAgICAgIHRoaXMuYXVkaW8gPSBuZXcgQXVkaW8odGhpcy5ydXRhQXVkaW8pOyAvLyBSdXRhIGFsIGFyY2hpdm8gZGUgc29uaWRvXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcIkF1ZGlvIGNhcmdhZG86IFwiLCB0aGlzLmF1ZGlvKVxyXG4gICAgdGhpcy5hdWRpby5sb29wID0gdHJ1ZTsgLy8gUmVwcm9kdWNpciBlbiBidWNsZVxyXG4gICAgdGhpcy5hdWRpby5wbGF5KClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdTb25pZG8gcmVwcm9kdWNpw6luZG9zZS4nKTtcclxuICAgICAgICAvLyBEZXRlbmVyIGVsIHNvbmlkbyBkZXNwdcOpcyBkZSAxMCBzZWd1bmRvc1xyXG4gICAgICAgIHRoaXMuc291bmRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BTb3VuZCgpO1xyXG4gICAgICAgIH0sIDEwMDAwKTsgLy8gRGV0ZW5lciBkZXNwdcOpcyBkZSAxMCBzZWd1bmRvc1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFsIHJlcHJvZHVjaXIgZWwgc29uaWRvOicsIGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9wU291bmQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnc3RvcFNvdW5kIGxsYW1hZG8uJyk7XHJcbiAgICBpZiAodGhpcy5hdWRpbykge1xyXG4gICAgICB0aGlzLmF1ZGlvLnBhdXNlKCk7XHJcbiAgICAgIHRoaXMuYXVkaW8uY3VycmVudFRpbWUgPSAwOyAvLyBSZWluaWNpYSBlbCBzb25pZG9cclxuICAgIH1cclxuICAgIHRoaXMuaXNQbGF5aW5nID0gZmFsc2U7IC8vIFJlc3RhYmxlY2UgbGEgYmFuZGVyYVxyXG4gICAgaWYgKHRoaXMuc291bmRUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNvdW5kVGltZW91dCk7IC8vIEFzZWd1cmEgcXVlIGVsIHRlbXBvcml6YWRvciBzZSBib3JyZVxyXG4gICAgICB0aGlzLnNvdW5kVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGFydEZsYXNoaW5nVGl0bGUoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnc3RhcnRGbGFzaGluZ1RpdGxlIGxsYW1hZG8uJyk7XHJcbiAgICBsZXQgdG9nZ2xlID0gZmFsc2U7XHJcblxyXG4gICAgLy8gQWxtYWNlbmFyIGVsIHTDrXR1bG8gb3JpZ2luYWwgc2kgYcO6biBubyBzZSBoYSBndWFyZGFkb1xyXG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsVGl0bGUpIHtcclxuICAgICAgdGhpcy5vcmlnaW5hbFRpdGxlID0gZG9jdW1lbnQudGl0bGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmludGVydmFsSWQpIHtcclxuICAgICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIC8vIEFsdGVybmFyIGVudHJlIGVsIHTDrXR1bG8gYWx0ZXJuYXRpdm8geSBlbCB0w610dWxvIG9yaWdpbmFsXHJcbiAgICAgICAgZG9jdW1lbnQudGl0bGUgPSB0b2dnbGUgPyB0aGlzLmFsdGVybmF0ZVRpdGxlIDogdGhpcy5vcmlnaW5hbFRpdGxlO1xyXG4gICAgICAgIHRvZ2dsZSA9ICF0b2dnbGU7XHJcbiAgICAgIH0sIDEwMDApOyAvLyBDYW1iaWEgZWwgdMOtdHVsbyBjYWRhIHNlZ3VuZG9cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0b3BGbGFzaGluZ1RpdGxlKCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ3N0b3BGbGFzaGluZ1RpdGxlIGxsYW1hZG8uJyk7XHJcbiAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcclxuICAgICAgdGhpcy5pbnRlcnZhbElkID0gbnVsbDtcclxuICAgICAgZG9jdW1lbnQudGl0bGUgPSB0aGlzLm9yaWdpbmFsVGl0bGU7IC8vIFJlc3RhdXJhIGEgdmFjw61vXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXZpc2FyQWxlcnRhc1BlbmRpZW50ZXModXJsT2J0ZW5lckFsZXJ0YXNQYW5pY286IHN0cmluZywgdG9rZW46IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ3JldmlzYXJBbGVydGFzUGVuZGllbnRlcyBsbGFtYWRvIGNvbiBwYXLDoW1ldHJvczonLCB7IHVybE9idGVuZXJBbGVydGFzUGFuaWNvLCB0b2tlbiB9KTtcclxuICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBoZWxwZXIuZGVjb2RlVG9rZW4odG9rZW4pO1xyXG4gICAgdGhpcy53bU1lbnVTZXJ2aWNpb1NlcnZpY2VcclxuICAgICAgLm1lbnVBcGlPYnRlbmVyKHVybE9idGVuZXJBbGVydGFzUGFuaWNvLCBkZWNvZGVkVG9rZW5bJ2lkX3VzdWFyaW8nXSwgdG9rZW4pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3ApID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnUmVzcHVlc3RhIG9idGVuaWRhIGRlIHJldmlzYXJBbGVydGFzUGVuZGllbnRlczonLCByZXNwKTtcclxuICAgICAgICBpZiAocmVzcCAmJiByZXNwLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICBjb25zdCBhbGVydGFzSWRzID0gcmVzcC5tYXAoYWxlcnRhID0+IGFsZXJ0YS5JZEFsZXJ0YVBhbmljbyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnSURzIGRlIGFsZXJ0YXMgb2J0ZW5pZGFzOicsIGFsZXJ0YXNJZHMpO1xyXG5cclxuICAgICAgICAgIC8vIEVsaW1pbmFyIElEcyBxdWUgbm8gZXN0w6FuIGVuIGxhIHJlc3B1ZXN0YSBkZWwgc2VydmljaW9cclxuICAgICAgICAgIHRoaXMuSWRzQWxlcnRhc1Bhbmljb0FjdGl2YXMuZm9yRWFjaCgoaWQpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFhbGVydGFzSWRzLmluY2x1ZGVzKGlkKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuSWRzQWxlcnRhc1Bhbmljb0FjdGl2YXMuZGVsZXRlKGlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgLy8gRmlsdHJhciBhbGVydGFzIG51ZXZhc1xyXG4gICAgICAgICAgY29uc3QgbmV3QWxlcnRzID0gcmVzcC5maWx0ZXIoYWxlcnRhID0+ICF0aGlzLklkc0FsZXJ0YXNQYW5pY29BY3RpdmFzLmhhcyhhbGVydGEuSWRBbGVydGFQYW5pY28pKTtcclxuXHJcbiAgICAgICAgICAvLyBBZ3JlZ2FyIGxhcyBudWV2YXMgYWxlcnRhcyBhIGxhIGxpc3RhIGFjdGl2YVxyXG4gICAgICAgICAgbmV3QWxlcnRzLmZvckVhY2goYWxlcnRhID0+IHRoaXMuSWRzQWxlcnRhc1Bhbmljb0FjdGl2YXMuYWRkKGFsZXJ0YS5JZEFsZXJ0YVBhbmljbykpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuSWRzQWxlcnRhc1Bhbmljb0FjdGl2YXMuc2l6ZSA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydEZsYXNoaW5nVGl0bGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIFNpIGhheSBudWV2YXMgYWxlcnRhcywgZGlzcGFyYSBub3RpZmljYWNpb24gc29ub3JhXHJcbiAgICAgICAgICBpZiAobmV3QWxlcnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF5U291bmQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gU2kgbm8gaGF5IGFsZXJ0YXMgZW4gbGEgcmVzcHVlc3RhLCBsaW1waWFyIGxhIGxpc3RhXHJcbiAgICAgICAgICB0aGlzLklkc0FsZXJ0YXNQYW5pY29BY3RpdmFzLmNsZWFyKCk7XHJcbiAgICAgICAgICB0aGlzLnN0b3BGbGFzaGluZ1RpdGxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgbG9jYWxTdG9yYWdlIGNvbiBsb3MgSURzIGFjdGl2b3NcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnQUxFUlRBU19QQU5JQ09fQUNUSVZBU19XTScsIEpTT04uc3RyaW5naWZ5KEFycmF5LmZyb20odGhpcy5JZHNBbGVydGFzUGFuaWNvQWN0aXZhcykpKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20tbWVudS1hbGVydGEtcGFuaWNvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly93bS1tZW51LyIsInNvdXJjZXMiOlsibGliL3dtLW1lbnUvc2VydmljZXMvd20tbWVudS1hbGVydGEtcGFuaWNvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUtuRSxJQUFhLHlCQUF5QixHQUF0QyxNQUFhLHlCQUF5QjtJQVdwQyxZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQVJ4RCxtQkFBYyxHQUFHLDJCQUEyQixDQUFDO1FBRTdDLFVBQUssR0FBNEIsSUFBSSxDQUFDO1FBQ3RDLGNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxnREFBZ0Q7UUFFbkUsNEJBQXVCLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQywrQ0FBK0M7UUFDakcsaUJBQVksR0FBUSxJQUFJLENBQUMsQ0FBQyxzQ0FBc0M7UUFLaEUsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUhpQyxDQUFDO0lBS3JFLGNBQWMsQ0FDWixVQUFrQixFQUNsQixRQUFvQixFQUNwQixtQkFBMkIsRUFDM0IsS0FBYSxFQUNiLFNBQWlCO1FBRWpCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxxQkFBcUI7aUJBQ3ZCLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDO2lCQUN4RSxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDbEIsOERBQThEO2dCQUM5RCxJQUFJ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QUcsQ0FBQyxFQUFFO29CQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQ2xCO2FBQ0Y7aUJBQU07Z0JBQ0wsc0RBQXNEO2dCQUN0RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsOENBQThDO1lBQzlDLFlBQVksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FFRixDQUFBOztZQW5LNEMscUJBQXFCOzs7QUFYckQseUJBQXlCO0lBSHJDLFVBQVUsQ0FBQztRQUNWLFVBQVUsRUFBRSxNQUFNO0tBQ25CLENBQUM7R0FDVyx5QkFBeUIsQ0E4S3JDO1NBOUtZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSnd0SGVscGVyU2VydmljZSB9IGZyb20gJ0BhdXRoMC9hbmd1bGFyLWp3dCc7XHJcbmltcG9ydCB7IFdtTWVudVNlcnZpY2lvU2VydmljZSB9IGZyb20gJy4vd20tbWVudS1zZXJ2aWNpby5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdtTWVudUFsZXJ0YVBhbmljb1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGludGVydmFsSWQ6IGFueTtcclxuICBwcml2YXRlIGFsdGVybmF0ZVRpdGxlID0gJ0FsZXJ0YSBkZSBQw6FuaWNvIFJlY2liaWRhJztcclxuICBwcml2YXRlIG9yaWdpbmFsVGl0bGU6IHN0cmluZztcclxuICBwcml2YXRlIGF1ZGlvOiBIVE1MQXVkaW9FbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBpc1BsYXlpbmcgPSBmYWxzZTsgLy8gQ29udHJvbGEgc2kgZWwgc29uaWRvIHlhIGVzdMOhIHJlcHJvZHVjacOpbmRvc2VcclxuICBwdWJsaWMgZm9ybXVsYXJpbzogYW55O1xyXG4gIHByaXZhdGUgSWRzQWxlcnRhc1Bhbmljb0FjdGl2YXM6IFNldDxudW1iZXI+ID0gbmV3IFNldCgpOyAvLyBBbG1hY2VuYSBsb3MgSURzIGRlIGxhcyBhbGVydGFzIHlhIG1hbmVqYWRhc1xyXG4gIHByaXZhdGUgc291bmRUaW1lb3V0OiBhbnkgPSBudWxsOyAvLyBDb250cm9sYSBlbCB0ZW1wb3JpemFkb3IgZGVsIHNvbmlkb1xyXG4gIHByaXZhdGUgcnV0YUF1ZGlvOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3bU1lbnVTZXJ2aWNpb1NlcnZpY2U6IFdtTWVudVNlcnZpY2lvU2VydmljZSkgeyB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBhbnk7XHJcbiAgcHJpdmF0ZSBpc1J1bm5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgaW5pY2lhclByb2Nlc28oXHJcbiAgICBpbnRlcnZhbE1zOiBudW1iZXIsXHJcbiAgICBjYWxsYmFjazogKCkgPT4gdm9pZCxcclxuICAgIHVybE9idGVuZXJQYXJhbWV0cm86IHN0cmluZyxcclxuICAgIHRva2VuOiBzdHJpbmcsXHJcbiAgICBydXRhQXVkaW86IHN0cmluZ1xyXG4gICk6IHZvaWQge1xyXG4gICAgdGhpcy5ydXRhQXVkaW8gPSBydXRhQXVkaW87XHJcbiAgXHJcbiAgICBjb25zdCBpbmljaWFyQ29uSW50ZXJhY2Npb24gPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMud21NZW51U2VydmljaW9TZXJ2aWNlXHJcbiAgICAgICAgLm1lbnVBcGlPYnRlbmVyKHVybE9idGVuZXJQYXJhbWV0cm8sIG51bGwsIHRva2VuLCAnUmVwb3J0ZUFsZXJ0YXNQYW5pY28nKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3ApID0+IHtcclxuICAgICAgICAgIC8vIHZhbGlkYXIgc2kgZWwgcGFyYW1ldHJvIFJlcG9ydGVBbGVydGFzUGFuaWNvIGVzdGEgZW5jZW5kaWRvXHJcbiAgICAgICAgICBpZiAocmVzcCAmJiByZXNwLmxlbmd0aCA+IDAgJiYgcmVzcFswXS5WYWxvciA9PSAxKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUnVubmluZykge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBJbmljaWFsaXphciBsYSB2YXJpYWJsZSBkZXNkZSBsb2NhbFN0b3JhZ2VcclxuICAgICAgICAgICAgY29uc3Qgc3RvcmVkSWRzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0FMRVJUQVNfUEFOSUNPX0FDVElWQVNfV00nKTtcclxuICAgICAgICAgICAgdGhpcy5JZHNBbGVydGFzUGFuaWNvQWN0aXZhcyA9IHN0b3JlZElkcyA/IG5ldyBTZXQoSlNPTi5wYXJzZShzdG9yZWRJZHMpKSA6IG5ldyBTZXQoKTtcclxuICBcclxuICAgICAgICAgICAgY29uc3QgZWplY3V0YXJQcm9jZXNvID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNSdW5uaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGVqZWN1dGFyUHJvY2VzbygpO1xyXG4gICAgICAgICAgICAgIH0sIGludGVydmFsTXMpO1xyXG4gICAgICAgICAgICB9O1xyXG4gIFxyXG4gICAgICAgICAgICBlamVjdXRhclByb2Nlc28oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgXHJcbiAgICBbJ2RyYWcnLCAnY2xpY2snXS5mb3JFYWNoKGV2ZW50byA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICAgZXZlbnRvLFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGluaWNpYXJDb25JbnRlcmFjY2lvbigpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyBvbmNlOiB0cnVlIH1cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgXHJcblxyXG4gIHN0b3BQcm9jZXNzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3BTb3VuZCgpO1xyXG4gICAgdGhpcy5zdG9wRmxhc2hpbmdUaXRsZSgpO1xyXG4gIH1cclxuXHJcbiAgcGxheVNvdW5kKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNQbGF5aW5nKSByZXR1cm47IC8vIEV2aXRhIHJlcHJvZHVjaXIgc2kgeWEgZXN0w6Egc29uYW5kb1xyXG5cclxuICAgIHRoaXMuaXNQbGF5aW5nID0gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5hdWRpbykge1xyXG4gICAgICB0aGlzLmF1ZGlvID0gbmV3IEF1ZGlvKHRoaXMucnV0YUF1ZGlvKTsgLy8gUnV0YSBhbCBhcmNoaXZvIGRlIHNvbmlkb1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXVkaW8ubG9vcCA9IHRydWU7IC8vIFJlcHJvZHVjaXIgZW4gYnVjbGVcclxuICAgIHRoaXMuYXVkaW8ucGxheSgpXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAvLyBEZXRlbmVyIGVsIHNvbmlkbyBkZXNwdcOpcyBkZSAxMCBzZWd1bmRvc1xyXG4gICAgICAgIHRoaXMuc291bmRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BTb3VuZCgpO1xyXG4gICAgICAgIH0sIDEwMDAwKTsgLy8gRGV0ZW5lciBkZXNwdcOpcyBkZSAxMCBzZWd1bmRvc1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBhbCByZXByb2R1Y2lyIGVsIHNvbmlkbzonLCBlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RvcFNvdW5kKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXVkaW8pIHtcclxuICAgICAgdGhpcy5hdWRpby5wYXVzZSgpO1xyXG4gICAgICB0aGlzLmF1ZGlvLmN1cnJlbnRUaW1lID0gMDsgLy8gUmVpbmljaWEgZWwgc29uaWRvXHJcbiAgICB9XHJcbiAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlOyAvLyBSZXN0YWJsZWNlIGxhIGJhbmRlcmFcclxuICAgIGlmICh0aGlzLnNvdW5kVGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zb3VuZFRpbWVvdXQpOyAvLyBBc2VndXJhIHF1ZSBlbCB0ZW1wb3JpemFkb3Igc2UgYm9ycmVcclxuICAgICAgdGhpcy5zb3VuZFRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRGbGFzaGluZ1RpdGxlKCk6IHZvaWQge1xyXG4gICAgbGV0IHRvZ2dsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgLy8gQWxtYWNlbmFyIGVsIHTDrXR1bG8gb3JpZ2luYWwgc2kgYcO6biBubyBzZSBoYSBndWFyZGFkb1xyXG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsVGl0bGUpIHtcclxuICAgICAgdGhpcy5vcmlnaW5hbFRpdGxlID0gZG9jdW1lbnQudGl0bGU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBpZiAoIXRoaXMuaW50ZXJ2YWxJZCkge1xyXG4gICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgLy8gQWx0ZXJuYXIgZW50cmUgZWwgdMOtdHVsbyBhbHRlcm5hdGl2byB5IGVsIHTDrXR1bG8gb3JpZ2luYWxcclxuICAgICAgICBkb2N1bWVudC50aXRsZSA9IHRvZ2dsZSA/IHRoaXMuYWx0ZXJuYXRlVGl0bGUgOiB0aGlzLm9yaWdpbmFsVGl0bGU7XHJcbiAgICAgICAgdG9nZ2xlID0gIXRvZ2dsZTtcclxuICAgICAgfSwgMTAwMCk7IC8vIENhbWJpYSBlbCB0w610dWxvIGNhZGEgc2VndW5kb1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RvcEZsYXNoaW5nVGl0bGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcclxuICAgICAgdGhpcy5pbnRlcnZhbElkID0gbnVsbDtcclxuICAgICAgZG9jdW1lbnQudGl0bGUgPSB0aGlzLm9yaWdpbmFsVGl0bGU7IC8vIFJlc3RhdXJhIGEgdmFjw61vXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXZpc2FyQWxlcnRhc1BlbmRpZW50ZXModXJsT2J0ZW5lckFsZXJ0YXNQYW5pY286IHN0cmluZywgdG9rZW46IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgaGVscGVyID0gbmV3IEp3dEhlbHBlclNlcnZpY2UoKTtcclxuICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGhlbHBlci5kZWNvZGVUb2tlbih0b2tlbik7XHJcbiAgICB0aGlzLndtTWVudVNlcnZpY2lvU2VydmljZVxyXG4gICAgICAubWVudUFwaU9idGVuZXIodXJsT2J0ZW5lckFsZXJ0YXNQYW5pY28sIGRlY29kZWRUb2tlblsnaWRfdXN1YXJpbyddLCB0b2tlbilcclxuICAgICAgLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwICYmIHJlc3AubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBjb25zdCBhbGVydGFzSWRzID0gcmVzcC5tYXAoYWxlcnRhID0+IGFsZXJ0YS5JZEFsZXJ0YVBhbmljbyk7XHJcblxyXG4gICAgICAgICAgLy8gRWxpbWluYXIgSURzIHF1ZSBubyBlc3TDoW4gZW4gbGEgcmVzcHVlc3RhIGRlbCBzZXJ2aWNpb1xyXG4gICAgICAgICAgdGhpcy5JZHNBbGVydGFzUGFuaWNvQWN0aXZhcy5mb3JFYWNoKChpZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWFsZXJ0YXNJZHMuaW5jbHVkZXMoaWQpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5JZHNBbGVydGFzUGFuaWNvQWN0aXZhcy5kZWxldGUoaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAvLyBGaWx0cmFyIGFsZXJ0YXMgbnVldmFzXHJcbiAgICAgICAgICBjb25zdCBuZXdBbGVydHMgPSByZXNwLmZpbHRlcihhbGVydGEgPT4gIXRoaXMuSWRzQWxlcnRhc1Bhbmljb0FjdGl2YXMuaGFzKGFsZXJ0YS5JZEFsZXJ0YVBhbmljbykpO1xyXG5cclxuICAgICAgICAgIC8vIEFncmVnYXIgbGFzIG51ZXZhcyBhbGVydGFzIGEgbGEgbGlzdGEgYWN0aXZhXHJcbiAgICAgICAgICBuZXdBbGVydHMuZm9yRWFjaChhbGVydGEgPT4gdGhpcy5JZHNBbGVydGFzUGFuaWNvQWN0aXZhcy5hZGQoYWxlcnRhLklkQWxlcnRhUGFuaWNvKSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5JZHNBbGVydGFzUGFuaWNvQWN0aXZhcy5zaXplID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0Rmxhc2hpbmdUaXRsZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gU2kgaGF5IG51ZXZhcyBhbGVydGFzLCBkaXNwYXJhIG5vdGlmaWNhY2lvbiBzb25vcmFcclxuICAgICAgICAgIGlmIChuZXdBbGVydHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXlTb3VuZCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBTaSBubyBoYXkgYWxlcnRhcyBlbiBsYSByZXNwdWVzdGEsIGxpbXBpYXIgbGEgbGlzdGFcclxuICAgICAgICAgIHRoaXMuSWRzQWxlcnRhc1Bhbmljb0FjdGl2YXMuY2xlYXIoKTtcclxuICAgICAgICAgIHRoaXMuc3RvcEZsYXNoaW5nVGl0bGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWN0dWFsaXphciBsb2NhbFN0b3JhZ2UgY29uIGxvcyBJRHMgYWN0aXZvc1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdBTEVSVEFTX1BBTklDT19BQ1RJVkFTX1dNJywgSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbSh0aGlzLklkc0FsZXJ0YXNQYW5pY29BY3RpdmFzKSkpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -5,17 +5,17 @@ import { WmMenuServicioService } from './services/wm-menu-servicio.service';
|
|
|
5
5
|
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
6
6
|
import { WmMenuAlertaPanicoService } from './services/wm-menu-alerta-panico.service';
|
|
7
7
|
let WmMenuComponent = class WmMenuComponent {
|
|
8
|
-
constructor(wmMenuServicioService,
|
|
8
|
+
constructor(wmMenuServicioService, alertaPanicoService) {
|
|
9
9
|
this.wmMenuServicioService = wmMenuServicioService;
|
|
10
|
-
this.
|
|
11
|
-
this.intervaloPeticionesMs = 60000;
|
|
10
|
+
this.alertaPanicoService = alertaPanicoService;
|
|
12
11
|
this.menuSecundarioSel = new MenuSecundario();
|
|
13
12
|
this.menuLateralAbierto = false;
|
|
14
13
|
this.menuIdioma = [];
|
|
14
|
+
this.intervaloPeticionesMs = 60000;
|
|
15
15
|
}
|
|
16
16
|
ngOnInit() {
|
|
17
|
-
this.wmMenuAlertaPanicoService.iniciarProceso(this.intervaloPeticionesMs, () => this.wmMenuAlertaPanicoService.revisarAlertasPendientes(this.urlObtenerAlertasPanico, this.token), this.urlObtenerParametro, this.token, this.rutaAudio);
|
|
18
17
|
this.cargarMenuCuenta();
|
|
18
|
+
this.alertaPanicoService.iniciarProceso(this.intervaloPeticionesMs, () => this.alertaPanicoService.revisarAlertasPendientes(this.urlObtenerAlertasPanico, this.token), this.urlObtenerParametro, this.token, this.rutaAudio);
|
|
19
19
|
if (this.urlMenu && this.token) {
|
|
20
20
|
var helper = new JwtHelperService();
|
|
21
21
|
const decodedToken = helper.decodeToken(this.token);
|
|
@@ -146,4 +146,4 @@ WmMenuComponent = __decorate([
|
|
|
146
146
|
})
|
|
147
147
|
], WmMenuComponent);
|
|
148
148
|
export { WmMenuComponent };
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly93bS1tZW51LyIsInNvdXJjZXMiOlsibGliL3dtLW1lbnUvd20tbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQU9yRixJQUFhLGVBQWUsR0FBNUIsTUFBYSxlQUFlO0lBK0J4QixZQUFvQixxQkFBNEMsRUFBVSx5QkFBb0Q7UUFBMUcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFVLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFSdEgsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBR3RDLHNCQUFpQixHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3pELHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUVwQyxlQUFVLEdBQVMsRUFBRSxDQUFDO0lBRTRHLENBQUM7SUFFbkksUUFBUTtRQUVKLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUd6TyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4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QUFFO3VEQUFrQztBQUVqQztJQUFSLEtBQUssRUFBRTtnREFBaUI7QUFDaEI7SUFBUixLQUFLLEVBQUU7OENBQWU7QUFDZDtJQUFSLEtBQUssRUFBRTsyREFBNEI7QUFDM0I7SUFBUixLQUFLLEVBQUU7bURBQW9CO0FBQ25CO0lBQVIsS0FBSyxFQUFFO3VEQUF3QjtBQUN2QjtJQUFSLEtBQUssRUFBRTtnRUFBaUM7QUFDaEM7SUFBUixLQUFLLEVBQUU7NERBQTZCO0FBQzVCO0lBQVIsS0FBSyxFQUFFO2tEQUFtQjtBQUVsQjtJQUFSLEtBQUssRUFBRTtzREFBdUI7QUFDdEI7SUFBUixLQUFLLEVBQUU7c0RBQXVCO0FBQ3RCO0lBQVIsS0FBSyxFQUFFO21EQUFvQjtBQUNuQjtJQUFSLEtBQUssRUFBRTs4REFBK0I7QUFFOUI7SUFBUixLQUFLLEVBQUU7bURBQW9CO0FBckJuQixlQUFlO0lBTDNCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxTQUFTO1FBQ25CLGdpTUFBdUM7O0tBRTFDLENBQUM7R0FDVyxlQUFlLENBeUczQjtTQXpHWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVQcmluY2lwYWwgfSBmcm9tICcuL21vZGVsL3dtLW1lbnUtcHJpbmNpcGFsLm1vZGVsJztcclxuaW1wb3J0IHsgTWVudVNlY3VuZGFyaW8gfSBmcm9tICcuL21vZGVsL3dtLW1lbnUtY3VlbnRhLm1vZGVsJztcclxuaW1wb3J0IHsgV21NZW51U2VydmljaW9TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93bS1tZW51LXNlcnZpY2lvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcclxuaW1wb3J0IHsgV21NZW51QWxlcnRhUGFuaWNvU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd20tbWVudS1hbGVydGEtcGFuaWNvLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3dtLW1lbnUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dtLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vd20tbWVudS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXbU1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgbG9nbzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY29sb3JGb25kbzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY29sb3JUZXh0bzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgbWVudVByaW5jaXBhbDogTWVudVByaW5jaXBhbFtdO1xyXG4gICAgQElucHV0KCkgbWVudVNlY3VuZGFyaW86IE1lbnVTZWN1bmRhcmlvW107XHJcblxyXG4gICAgQElucHV0KCkgdXJsTWVudTogc3RyaW5nOyBcclxuICAgIEBJbnB1dCgpIHRva2VuOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1cmxDdWVudGFTZWd1cmlkYWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFjdGl2YXIyZmE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHVybGd1aWFzT25saW5lOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1cmxPYnRlbmVyQWxlcnRhc1Bhbmljbzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdXJsT2J0ZW5lclBhcmFtZXRybzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcnV0YUF1ZGlvOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KCkgbm9tYnJlQ2xpZW50ZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgbm9tYnJlVXN1YXJpbzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdmVyc2lvbldlYjogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdXJsQmFzZUFsbWFjZW5hbWllbnRvOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KCkgdXJsSWRpb21hczogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgaW50ZXJ2YWxvUGV0aWNpb25lc01zID0gNjAwMDA7XHJcbiAgICBcclxuICAgIG1lbnVQcmluY2lwYWxTZWw6IE1lbnVQcmluY2lwYWw7XHJcbiAgICBtZW51U2VjdW5kYXJpb1NlbDogTWVudVNlY3VuZGFyaW8gPSBuZXcgTWVudVNlY3VuZGFyaW8oKTtcclxuICAgIG1lbnVMYXRlcmFsQWJpZXJ0bzogQm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcG9yY2VudGFqZVV0aWxpemFkbyA6IG51bWJlcjtcclxuICAgIG1lbnVJZGlvbWEgOiBhbnkgPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdtTWVudVNlcnZpY2lvU2VydmljZTogV21NZW51U2VydmljaW9TZXJ2aWNlLCBwcml2YXRlIHdtTWVudUFsZXJ0YVBhbmljb1NlcnZpY2U6IFdtTWVudUFsZXJ0YVBhbmljb1NlcnZpY2UpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMud21NZW51QWxlcnRhUGFuaWNvU2VydmljZS5pbmljaWFyUHJvY2Vzbyh0aGlzLmludGVydmFsb1BldGljaW9uZXNNcywgKCkgPT4gdGhpcy53bU1lbnVBbGVydGFQYW5pY29TZXJ2aWNlLnJldmlzYXJBbGVydGFzUGVuZGllbnRlcyh0aGlzLnVybE9idGVuZXJBbGVydGFzUGFuaWNvLCB0aGlzLnRva2VuKSwgdGhpcy51cmxPYnRlbmVyUGFyYW1ldHJvLCB0aGlzLnRva2VuLCB0aGlzLnJ1dGFBdWRpbyk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmNhcmdhck1lbnVDdWVudGEoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudXJsTWVudSAmJiB0aGlzLnRva2VuKSB7XHJcbiAgICAgICAgICAgIHZhciBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBoZWxwZXIuZGVjb2RlVG9rZW4odGhpcy50b2tlbik7XHJcbiAgICAgICAgICAgIHRoaXMud21NZW51U2VydmljaW9TZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAubWVudUFwaU9idGVuZXIodGhpcy51cmxNZW51LCBkZWNvZGVkVG9rZW5bXCJpZF91c3VhcmlvXCJdLCB0aGlzLnRva2VuKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVudVByaW5jaXBhbCA9IHRoaXMud21NZW51U2VydmljaW9TZXJ2aWNlLm1hcGVhck1lbnUocmVzcCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVybElkaW9tYXMgJiYgdGhpcy50b2tlbikge1xyXG4gICAgICAgICAgICB2YXIgaGVscGVyID0gbmV3IEp3dEhlbHBlclNlcnZpY2UoKTtcclxuICAgICAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gaGVscGVyLmRlY29kZVRva2VuKHRoaXMudG9rZW4pO1xyXG4gICAgICAgICAgICB0aGlzLndtTWVudVNlcnZpY2lvU2VydmljZVxyXG4gICAgICAgICAgICAgICAgLm1lbnVJZGlvbWFzT2J0ZW5lcih0aGlzLnVybElkaW9tYXMsIGRlY29kZWRUb2tlbltcImlkX3VzdWFyaW9cIl0sIHRoaXMudG9rZW4pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVJZGlvbWEgPSByZXNwO1xyXG4gICAgICAgICAgICAgICAgICAgdGhpcy5jYXJnYXJNZW51Q3VlbnRhKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVybEJhc2VBbG1hY2VuYW1pZW50byAmJiB0aGlzLnRva2VuKSB7XHJcbiAgICAgICAgICAgIHZhciBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBoZWxwZXIuZGVjb2RlVG9rZW4odGhpcy50b2tlbik7XHJcbiAgICAgICAgICAgIHRoaXMud21NZW51U2VydmljaW9TZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuYWxtYWNlbmFtaWVudG9BcGlPYnRlbmVyKHRoaXMudXJsQmFzZUFsbWFjZW5hbWllbnRvLCBkZWNvZGVkVG9rZW5bXCJpZF91c3VhcmlvXCJdLCB0aGlzLnRva2VuKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB1dGlsaXphZG8gPSByZXNwWzBdICYmIHJlc3BbMF0uVXRpbGl6YWRvID8gcmVzcFswXS5VdGlsaXphZG8gOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0b3RhbCA9IHJlc3BbMF0gJiYgcmVzcFswXS5Ub3RhbCA/IHJlc3BbMF0uVG90YWwgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9yY2VudGFqZVV0aWxpemFkbyA9IE1hdGgucm91bmQoKHV0aWxpemFkbyAvIHRvdGFsKSAqIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tNZW51UHJpbmNpcGFsKGk6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLm1lbnVQcmluY2lwYWxbaV0uaGlqb3MgJiYgdGhpcy5tZW51UHJpbmNpcGFsW2ldLmhpam9zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tZW51UHJpbmNpcGFsU2VsID09IHRoaXMubWVudVByaW5jaXBhbFtpXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51UHJpbmNpcGFsU2VsID0gbnVsbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVudVByaW5jaXBhbFNlbCA9IHRoaXMubWVudVByaW5jaXBhbFtpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGlja01lbnVTZWN1bmRhcmlvKGk6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubWVudVNlY3VuZGFyaW9TZWwgPSB0aGlzLm1lbnVTZWN1bmRhcmlvW2ldO1xyXG4gICAgICAgIHRoaXMubWVudVByaW5jaXBhbFNlbCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY2FyZ2FyTWVudUN1ZW50YSgpe1xyXG4gICAgICAgIGlmICh0aGlzLnVybEN1ZW50YVNlZ3VyaWRhZCAmJiB0aGlzLnRva2VuKSB7XHJcbiAgICAgICAgICAgIHZhciBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBoZWxwZXIuZGVjb2RlVG9rZW4odGhpcy50b2tlbik7XHJcbiAgICAgICAgICAgIHRoaXMubWVudVNlY3VuZGFyaW8gPSBbe1xyXG4gICAgICAgICAgICAgICAgdGl0dWxvOiBkZWNvZGVkVG9rZW5bXCJ1bmlxdWVfbmFtZVwiXSxcclxuICAgICAgICAgICAgICAgIGljb25vOiBcImFjY291bnRfY2lyY2xlXCIsXHJcbiAgICAgICAgICAgICAgICBoaWpvczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgdGl0dWxvOiBkZWNvZGVkVG9rZW5bXCJ1bmlxdWVfbmFtZVwiXSwgdXJsOiBcIlwiLCBpY29ubzogXCJwZXJzb25cIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgdGl0dWxvOiB0aGlzLm1lbnVJZGlvbWEgJiYgdGhpcy5tZW51SWRpb21hLkNhbWJpYXJDb250cmFzZW5uYSA/IHRoaXMubWVudUlkaW9tYS5DYW1iaWFyQ29udHJhc2VubmEgOiBcIkNhbWJpYXIgY29udHJhc2XDsWFcIiwgdXJsOiB0aGlzLnVybEN1ZW50YVNlZ3VyaWRhZCArIFwiQ2FtYmlvQ29udHJhc2VuYVwiLCBpY29ubzogXCJ2cG5fa2V5XCIgfSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXIyZmEgPT0gXCIxXCIgPyB7IHRpdHVsbzogdGhpcy5tZW51SWRpb21hICYmIHRoaXMubWVudUlkaW9tYS5Db25maWd1cmFyMmZhID8gdGhpcy5tZW51SWRpb21hLkNvbmZpZ3VyYXIyZmEgOiBcIkNvbmZpZ3VyYXIgMkZBXCIsIHVybDogdGhpcy51cmxDdWVudGFTZWd1cmlkYWQgKyBcIkhhYmlsaXRhY2lvbjJGQVwiLCBpY29ubzogXCJ2ZXJpZmllZF91c2VyXCIgfSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cmxndWlhc09ubGluZSAhPSBudWxsICYmIHRoaXMudXJsZ3VpYXNPbmxpbmUgIT09IFwiXCIgJiYgdGhpcy51cmxndWlhc09ubGluZT8ubGVuZ3RoICE9IDAgPyB7IHRpdHVsbzogdGhpcy5tZW51SWRpb21hICYmIHRoaXMubWVudUlkaW9tYS5ndWlhc09ubGluZSA/IHRoaXMubWVudUlkaW9tYS5ndWlhc09ubGluZSA6IFwiR3VpYXMgT25saW5lXCIsIHVybDogdGhpcy51cmxndWlhc09ubGluZSwgaWNvbm86IFwibWVudV9ib29rXCIgfSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0aXR1bG86IHRoaXMubWVudUlkaW9tYSAmJiB0aGlzLm1lbnVJZGlvbWEuQ2VycmFyU2VzaW9uID8gdGhpcy5tZW51SWRpb21hLkNlcnJhclNlc2lvbiA6IFwiQ2VycmFyIHNlc2nDs25cIiwgdXJsOiB0aGlzLnVybEN1ZW50YVNlZ3VyaWRhZCArIFwiQ2VycmFyU2VzaW9uXCIsIGljb25vOiBcImV4aXRfdG9fYXBwXCIgfV0uZmlsdGVyKGhpam8gPT4gaGlqbyAhPSBudWxsKSxcclxuICAgICAgICAgICAgfV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly93bS1tZW51LyIsInNvdXJjZXMiOlsibGliL3dtLW1lbnUvd20tbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQU9yRixJQUFhLGVBQWUsR0FBNUIsTUFBYSxlQUFlO0lBOEJ4QixZQUFvQixxQkFBNEMsRUFBVSxtQkFBOEM7UUFBcEcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMkI7UUFOeEgsc0JBQWlCLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUM7UUFDekQsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRXBDLGVBQVUsR0FBUyxFQUFFLENBQUM7UUFDZCwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFFc0YsQ0FBQztJQUU3SCxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdO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QUU7dURBQWtDO0FBRWpDO0lBQVIsS0FBSyxFQUFFO2dEQUFpQjtBQUNoQjtJQUFSLEtBQUssRUFBRTs4Q0FBZTtBQUNkO0lBQVIsS0FBSyxFQUFFOzJEQUE0QjtBQUMzQjtJQUFSLEtBQUssRUFBRTttREFBb0I7QUFDbkI7SUFBUixLQUFLLEVBQUU7dURBQXdCO0FBQ3ZCO0lBQVIsS0FBSyxFQUFFO2dFQUFpQztBQUNoQztJQUFSLEtBQUssRUFBRTs0REFBNkI7QUFDNUI7SUFBUixLQUFLLEVBQUU7a0RBQW1CO0FBRWxCO0lBQVIsS0FBSyxFQUFFO3NEQUF1QjtBQUN0QjtJQUFSLEtBQUssRUFBRTtzREFBdUI7QUFDdEI7SUFBUixLQUFLLEVBQUU7bURBQW9CO0FBQ25CO0lBQVIsS0FBSyxFQUFFOzhEQUErQjtBQUU5QjtJQUFSLEtBQUssRUFBRTttREFBb0I7QUFyQm5CLGVBQWU7SUFMM0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLFNBQVM7UUFDbkIsZ2lNQUF1Qzs7S0FFMUMsQ0FBQztHQUNXLGVBQWUsQ0FzRzNCO1NBdEdZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudVByaW5jaXBhbCB9IGZyb20gJy4vbW9kZWwvd20tbWVudS1wcmluY2lwYWwubW9kZWwnO1xyXG5pbXBvcnQgeyBNZW51U2VjdW5kYXJpbyB9IGZyb20gJy4vbW9kZWwvd20tbWVudS1jdWVudGEubW9kZWwnO1xyXG5pbXBvcnQgeyBXbU1lbnVTZXJ2aWNpb1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dtLW1lbnUtc2VydmljaW8uc2VydmljZSc7XHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5pbXBvcnQgeyBXbU1lbnVBbGVydGFQYW5pY29TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93bS1tZW51LWFsZXJ0YS1wYW5pY28uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnd20tbWVudScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vd20tbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi93bS1tZW51LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFdtTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBsb2dvOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjb2xvckZvbmRvOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjb2xvclRleHRvOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBtZW51UHJpbmNpcGFsOiBNZW51UHJpbmNpcGFsW107XHJcbiAgICBASW5wdXQoKSBtZW51U2VjdW5kYXJpbzogTWVudVNlY3VuZGFyaW9bXTtcclxuXHJcbiAgICBASW5wdXQoKSB1cmxNZW51OiBzdHJpbmc7IFxyXG4gICAgQElucHV0KCkgdG9rZW46IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHVybEN1ZW50YVNlZ3VyaWRhZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYWN0aXZhcjJmYTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdXJsZ3VpYXNPbmxpbmU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHVybE9idGVuZXJBbGVydGFzUGFuaWNvOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1cmxPYnRlbmVyUGFyYW1ldHJvOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBydXRhQXVkaW86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKSBub21icmVDbGllbnRlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBub21icmVVc3VhcmlvOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB2ZXJzaW9uV2ViOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1cmxCYXNlQWxtYWNlbmFtaWVudG86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKSB1cmxJZGlvbWFzOiBzdHJpbmc7XHJcblxyXG4gICAgbWVudVByaW5jaXBhbFNlbDogTWVudVByaW5jaXBhbDtcclxuICAgIG1lbnVTZWN1bmRhcmlvU2VsOiBNZW51U2VjdW5kYXJpbyA9IG5ldyBNZW51U2VjdW5kYXJpbygpO1xyXG4gICAgbWVudUxhdGVyYWxBYmllcnRvOiBCb29sZWFuID0gZmFsc2U7XHJcbiAgICBwb3JjZW50YWplVXRpbGl6YWRvIDogbnVtYmVyO1xyXG4gICAgbWVudUlkaW9tYSA6IGFueSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBpbnRlcnZhbG9QZXRpY2lvbmVzTXMgPSA2MDAwMDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdtTWVudVNlcnZpY2lvU2VydmljZTogV21NZW51U2VydmljaW9TZXJ2aWNlLCBwcml2YXRlIGFsZXJ0YVBhbmljb1NlcnZpY2U6IFdtTWVudUFsZXJ0YVBhbmljb1NlcnZpY2UpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FyZ2FyTWVudUN1ZW50YSgpO1xyXG5cclxuICAgICAgICB0aGlzLmFsZXJ0YVBhbmljb1NlcnZpY2UuaW5pY2lhclByb2Nlc28odGhpcy5pbnRlcnZhbG9QZXRpY2lvbmVzTXMsICgpID0+IHRoaXMuYWxlcnRhUGFuaWNvU2VydmljZS5yZXZpc2FyQWxlcnRhc1BlbmRpZW50ZXModGhpcy51cmxPYnRlbmVyQWxlcnRhc1BhbmljbywgdGhpcy50b2tlbiksIHRoaXMudXJsT2J0ZW5lclBhcmFtZXRybywgdGhpcy50b2tlbiwgdGhpcy5ydXRhQXVkaW8pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy51cmxNZW51ICYmIHRoaXMudG9rZW4pIHtcclxuICAgICAgICAgICAgdmFyIGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGhlbHBlci5kZWNvZGVUb2tlbih0aGlzLnRva2VuKTtcclxuICAgICAgICAgICAgdGhpcy53bU1lbnVTZXJ2aWNpb1NlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5tZW51QXBpT2J0ZW5lcih0aGlzLnVybE1lbnUsIGRlY29kZWRUb2tlbltcImlkX3VzdWFyaW9cIl0sIHRoaXMudG9rZW4pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW51UHJpbmNpcGFsID0gdGhpcy53bU1lbnVTZXJ2aWNpb1NlcnZpY2UubWFwZWFyTWVudShyZXNwKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudXJsSWRpb21hcyAmJiB0aGlzLnRva2VuKSB7XHJcbiAgICAgICAgICAgIHZhciBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBoZWxwZXIuZGVjb2RlVG9rZW4odGhpcy50b2tlbik7XHJcbiAgICAgICAgICAgIHRoaXMud21NZW51U2VydmljaW9TZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAubWVudUlkaW9tYXNPYnRlbmVyKHRoaXMudXJsSWRpb21hcywgZGVjb2RlZFRva2VuW1wiaWRfdXN1YXJpb1wiXSwgdGhpcy50b2tlbilcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgICAgIHRoaXMubWVudUlkaW9tYSA9IHJlc3A7XHJcbiAgICAgICAgICAgICAgICAgICB0aGlzLmNhcmdhck1lbnVDdWVudGEoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudXJsQmFzZUFsbWFjZW5hbWllbnRvICYmIHRoaXMudG9rZW4pIHtcclxuICAgICAgICAgICAgdmFyIGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGhlbHBlci5kZWNvZGVUb2tlbih0aGlzLnRva2VuKTtcclxuICAgICAgICAgICAgdGhpcy53bU1lbnVTZXJ2aWNpb1NlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5hbG1hY2VuYW1pZW50b0FwaU9idGVuZXIodGhpcy51cmxCYXNlQWxtYWNlbmFtaWVudG8sIGRlY29kZWRUb2tlbltcImlkX3VzdWFyaW9cIl0sIHRoaXMudG9rZW4pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHV0aWxpemFkbyA9IHJlc3BbMF0gJiYgcmVzcFswXS5VdGlsaXphZG8gPyByZXNwWzBdLlV0aWxpemFkbyA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRvdGFsID0gcmVzcFswXSAmJiByZXNwWzBdLlRvdGFsID8gcmVzcFswXS5Ub3RhbCA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3JjZW50YWplVXRpbGl6YWRvID0gTWF0aC5yb3VuZCgodXRpbGl6YWRvIC8gdG90YWwpICogMTAwKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGlja01lbnVQcmluY2lwYWwoaTogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubWVudVByaW5jaXBhbFtpXS5oaWpvcyAmJiB0aGlzLm1lbnVQcmluY2lwYWxbaV0uaGlqb3MubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1lbnVQcmluY2lwYWxTZWwgPT0gdGhpcy5tZW51UHJpbmNpcGFsW2ldKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVQcmluY2lwYWxTZWwgPSBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51UHJpbmNpcGFsU2VsID0gdGhpcy5tZW51UHJpbmNpcGFsW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrTWVudVNlY3VuZGFyaW8oaTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5tZW51U2VjdW5kYXJpb1NlbCA9IHRoaXMubWVudVNlY3VuZGFyaW9baV07XHJcbiAgICAgICAgdGhpcy5tZW51UHJpbmNpcGFsU2VsID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjYXJnYXJNZW51Q3VlbnRhKCl7XHJcbiAgICAgICAgaWYgKHRoaXMudXJsQ3VlbnRhU2VndXJpZGFkICYmIHRoaXMudG9rZW4pIHtcclxuICAgICAgICAgICAgdmFyIGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGhlbHBlci5kZWNvZGVUb2tlbih0aGlzLnRva2VuKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51U2VjdW5kYXJpbyA9IFt7XHJcbiAgICAgICAgICAgICAgICB0aXR1bG86IGRlY29kZWRUb2tlbltcInVuaXF1ZV9uYW1lXCJdLFxyXG4gICAgICAgICAgICAgICAgaWNvbm86IFwiYWNjb3VudF9jaXJjbGVcIixcclxuICAgICAgICAgICAgICAgIGhpam9zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0aXR1bG86IGRlY29kZWRUb2tlbltcInVuaXF1ZV9uYW1lXCJdLCB1cmw6IFwiXCIsIGljb25vOiBcInBlcnNvblwiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0aXR1bG86IHRoaXMubWVudUlkaW9tYSAmJiB0aGlzLm1lbnVJZGlvbWEuQ2FtYmlhckNvbnRyYXNlbm5hID8gdGhpcy5tZW51SWRpb21hLkNhbWJpYXJDb250cmFzZW5uYSA6IFwiQ2FtYmlhciBjb250cmFzZcOxYVwiLCB1cmw6IHRoaXMudXJsQ3VlbnRhU2VndXJpZGFkICsgXCJDYW1iaW9Db250cmFzZW5hXCIsIGljb25vOiBcInZwbl9rZXlcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhcjJmYSA9PSBcIjFcIiA/IHsgdGl0dWxvOiB0aGlzLm1lbnVJZGlvbWEgJiYgdGhpcy5tZW51SWRpb21hLkNvbmZpZ3VyYXIyZmEgPyB0aGlzLm1lbnVJZGlvbWEuQ29uZmlndXJhcjJmYSA6IFwiQ29uZmlndXJhciAyRkFcIiwgdXJsOiB0aGlzLnVybEN1ZW50YVNlZ3VyaWRhZCArIFwiSGFiaWxpdGFjaW9uMkZBXCIsIGljb25vOiBcInZlcmlmaWVkX3VzZXJcIiB9IDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVybGd1aWFzT25saW5lICE9IG51bGwgJiYgdGhpcy51cmxndWlhc09ubGluZSAhPT0gXCJcIiAmJiB0aGlzLnVybGd1aWFzT25saW5lPy5sZW5ndGggIT0gMCA/IHsgdGl0dWxvOiB0aGlzLm1lbnVJZGlvbWEgJiYgdGhpcy5tZW51SWRpb21hLmd1aWFzT25saW5lID8gdGhpcy5tZW51SWRpb21hLmd1aWFzT25saW5lIDogXCJHdWlhcyBPbmxpbmVcIiwgdXJsOiB0aGlzLnVybGd1aWFzT25saW5lLCBpY29ubzogXCJtZW51X2Jvb2tcIiB9IDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICB7IHRpdHVsbzogdGhpcy5tZW51SWRpb21hICYmIHRoaXMubWVudUlkaW9tYS5DZXJyYXJTZXNpb24gPyB0aGlzLm1lbnVJZGlvbWEuQ2VycmFyU2VzaW9uIDogXCJDZXJyYXIgc2VzacOzblwiLCB1cmw6IHRoaXMudXJsQ3VlbnRhU2VndXJpZGFkICsgXCJDZXJyYXJTZXNpb25cIiwgaWNvbm86IFwiZXhpdF90b19hcHBcIiB9XS5maWx0ZXIoaGlqbyA9PiBoaWpvICE9IG51bGwpLFxyXG4gICAgICAgICAgICB9XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|