wm-menu 1.3.0 → 1.4.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.
Files changed (30) hide show
  1. package/bundles/wm-menu.umd.js +361 -7
  2. package/bundles/wm-menu.umd.js.map +1 -1
  3. package/bundles/wm-menu.umd.min.js +2 -2
  4. package/bundles/wm-menu.umd.min.js.map +1 -1
  5. package/esm2015/lib/wm-menu/asistente-datos/asistente-datos-api.service.js +52 -0
  6. package/esm2015/lib/wm-menu/asistente-datos/asistente-datos.component.js +178 -0
  7. package/esm2015/lib/wm-menu/asistente-datos/reconocimiento-voz.service.js +77 -0
  8. package/esm2015/lib/wm-menu/services/wm-menu-servicio.service.js +9 -1
  9. package/esm2015/lib/wm-menu/wm-menu.component.js +31 -3
  10. package/esm2015/lib/wm-menu.module.js +9 -2
  11. package/esm2015/wm-menu.js +4 -1
  12. package/esm5/lib/wm-menu/asistente-datos/asistente-datos-api.service.js +53 -0
  13. package/esm5/lib/wm-menu/asistente-datos/asistente-datos.component.js +194 -0
  14. package/esm5/lib/wm-menu/asistente-datos/reconocimiento-voz.service.js +79 -0
  15. package/esm5/lib/wm-menu/services/wm-menu-servicio.service.js +9 -1
  16. package/esm5/lib/wm-menu/wm-menu.component.js +35 -3
  17. package/esm5/lib/wm-menu.module.js +9 -2
  18. package/esm5/wm-menu.js +4 -1
  19. package/fesm2015/wm-menu.js +336 -5
  20. package/fesm2015/wm-menu.js.map +1 -1
  21. package/fesm5/wm-menu.js +359 -5
  22. package/fesm5/wm-menu.js.map +1 -1
  23. package/lib/wm-menu/asistente-datos/asistente-datos-api.service.d.ts +26 -0
  24. package/lib/wm-menu/asistente-datos/asistente-datos.component.d.ts +39 -0
  25. package/lib/wm-menu/asistente-datos/reconocimiento-voz.service.d.ts +7 -0
  26. package/lib/wm-menu/services/wm-menu-servicio.service.d.ts +1 -0
  27. package/lib/wm-menu/wm-menu.component.d.ts +7 -0
  28. package/package.json +1 -1
  29. package/wm-menu.d.ts +3 -0
  30. package/wm-menu.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wm-menu.umd.js","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"],"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"],"names":["HttpHeaders","HttpParams","map","catchError","throwError","HttpClient","MatIconRegistry","DomSanitizer","Injectable","JwtHelperService","Input","Component","NgModule","BrowserModule","MatToolbarModule","MatSidenavModule","MatListModule","MatButtonModule","MatIconModule","MatMenuModule","MatRippleModule","HttpClientModule","JwtModule"],"mappings":"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"}
1
+ {"version":3,"file":"wm-menu.umd.js","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/asistente-datos/reconocimiento-voz.service.ts","ng://wm-menu/lib/wm-menu/asistente-datos/asistente-datos-api.service.ts","ng://wm-menu/lib/wm-menu/asistente-datos/asistente-datos.component.ts","ng://wm-menu/lib/wm-menu.module.ts"],"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\r\n // Funciones (permisos) del usuario autenticado, para gatear features del menú como el\r\n // asistente \"Pregúntale a tus datos\" (CodigoLogica === 'WebChatConsultaIA').\r\n funcionesObtener(url: 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, { headers }).pipe(\r\n map(resp => resp),\r\n catchError(error => throwError(error.error))\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 // Asistente de IA \"Pregúntale a tus datos\" como opción del menú (reemplaza el botón flotante).\r\n // El gateo real lo hace el menú: carga las funciones del usuario (urlObtenerFunciones + token) y\r\n // muestra el asistente solo si tiene WebChatConsultaIA. `mostrarAsistente` es un override opcional\r\n // (ej. harness/dev) que como web component llega string, por eso el getter puedeAsistente.\r\n @Input() urlObtenerFunciones: string;\r\n @Input() mostrarAsistente: boolean | string = false;\r\n @Input() urlAsistenteConsultar: string;\r\n @Input() idiomaAsistente: string = 'es-CO';\r\n asistenteAbierto = false;\r\n private funcionesUsuario: any[] = [];\r\n\r\n get puedeAsistente(): boolean {\r\n const forzado = this.mostrarAsistente === true || this.mostrarAsistente === 'true' || this.mostrarAsistente === '1';\r\n const tienePermiso = this.funcionesUsuario.some((f: any) => f.CodigoLogica === 'WebChatConsultaIA');\r\n return forzado || tienePermiso;\r\n }\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 // Carga las funciones del usuario para gatear el asistente (puedeAsistente / WebChatConsultaIA).\r\n // Si falla (ej. 401), queda vacía y el asistente no se muestra.\r\n if (this.urlObtenerFunciones && this.token) {\r\n this.wmMenuServicioService\r\n .funcionesObtener(this.urlObtenerFunciones, this.token)\r\n .subscribe(\r\n (resp) => { this.funcionesUsuario = resp ?? []; },\r\n () => { this.funcionesUsuario = []; }\r\n );\r\n }\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 { Injectable } from '@angular/core';\r\n\r\n// Envoltorio de la Web Speech API (SpeechRecognition) del navegador — dictado de voz a texto,\r\n// 100% cliente, sin backend. Soportado en Chrome/Edge; SIN soporte en Firefox y de forma\r\n// inconsistente en Safari (limitación real del navegador, no de esta implementación).\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ReconocimientoVozService {\r\n private reconocimiento: any = null;\r\n\r\n estaSoportado(): boolean {\r\n return !!(this.obtenerConstructor());\r\n }\r\n\r\n // onResultado se llama con el texto reconocido hasta el momento (incluye resultados\r\n // provisionales — interimResults: true — para que el cuadro de texto se vea llenar en vivo).\r\n // onFin se llama cuando el reconocimiento termina, ya sea porque el navegador detectó una\r\n // pausa (continuous: false) o porque se llamó a detener().\r\n iniciar(idioma: string, onResultado: (texto: string) => void, onFin: () => void): void {\r\n const SpeechRecognitionCtor = this.obtenerConstructor();\r\n if (!SpeechRecognitionCtor) {\r\n onFin();\r\n return;\r\n }\r\n\r\n this.detener();\r\n\r\n this.reconocimiento = new SpeechRecognitionCtor();\r\n this.reconocimiento.lang = idioma;\r\n this.reconocimiento.continuous = false;\r\n this.reconocimiento.interimResults = true;\r\n\r\n this.reconocimiento.onresult = (evento: any) => {\r\n const texto = Array.from(evento.results)\r\n .map((resultado: any) => resultado[0].transcript)\r\n .join(' ');\r\n onResultado(texto);\r\n };\r\n\r\n this.reconocimiento.onerror = (evento: any) => {\r\n // Motivos típicos (event.error de SpeechRecognitionErrorEvent): \"not-allowed\" (permiso de\r\n // micrófono denegado o sitio sin HTTPS/localhost), \"no-speech\", \"audio-capture\" (sin\r\n // micrófono), \"network\". Se deja en consola porque no hay backend que lo registre y el\r\n // navegador no explica el motivo en la UI.\r\n console.error('Reconocimiento de voz: error -', evento?.error);\r\n this.reconocimiento = null;\r\n onFin();\r\n };\r\n\r\n this.reconocimiento.onend = () => {\r\n this.reconocimiento = null;\r\n onFin();\r\n };\r\n\r\n try {\r\n this.reconocimiento.start();\r\n } catch (e) {\r\n console.error('Reconocimiento de voz: no se pudo iniciar -', e);\r\n this.reconocimiento = null;\r\n onFin();\r\n }\r\n }\r\n\r\n detener(): void {\r\n if (this.reconocimiento) {\r\n this.reconocimiento.onend = null;\r\n this.reconocimiento.onerror = null;\r\n this.reconocimiento.stop();\r\n this.reconocimiento = null;\r\n }\r\n }\r\n\r\n private obtenerConstructor(): any {\r\n return (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition || null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\n\r\nexport interface EConsultaDinamicaApi {\r\n Entidad: string;\r\n Where?: string;\r\n Select?: string;\r\n GroupBy?: string;\r\n OrderBy?: string;\r\n Take: number;\r\n Skip: number;\r\n}\r\n\r\nexport interface RespuestaAsistenteDatos {\r\n Resultado: any[];\r\n Consulta: EConsultaDinamicaApi;\r\n Proveedor: string;\r\n Descripcion?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AsistenteDatosApiService {\r\n // La fija el componente desde su @Input urlConsultar (reemplaza WmChatConfigService.urlConsultar).\r\n public url = '';\r\n\r\n // Mismo origen del JWT que WmSeguridadService.getJWT() en wm-chat: localStorage['WMTKN'],\r\n // descartado si está vencido. Se replica aquí para que el header Authorization sea idéntico\r\n // al del chat original sin depender de un servicio de config externo.\r\n private readonly TOKEN_KEY = 'WMTKN';\r\n private readonly jwtHelper = new JwtHelperService();\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n consultar(pregunta: string, proveedor?: string): Observable<RespuestaAsistenteDatos> {\r\n const headers = new HttpHeaders({\r\n Authorization: `Bearer ${this.obtenerJWT()}`,\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n\r\n return this.http\r\n .post<RespuestaAsistenteDatos>(\r\n this.url,\r\n { Pregunta: pregunta, Proveedor: proveedor },\r\n { headers }\r\n )\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(error.error);\r\n })\r\n );\r\n }\r\n\r\n private obtenerJWT(): string {\r\n const jwt = localStorage.getItem(this.TOKEN_KEY);\r\n\r\n if (jwt) {\r\n try {\r\n return this.jwtHelper.isTokenExpired(jwt) ? null : jwt;\r\n } catch {}\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { ReconocimientoVozService } from './reconocimiento-voz.service';\r\nimport { AsistenteDatosApiService } from './asistente-datos-api.service';\r\n\r\nexport interface MensajeAsistenteDatos {\r\n deUsuario: boolean;\r\n texto?: string;\r\n descripcion?: string;\r\n resultado?: any[];\r\n proveedor?: string;\r\n esError?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'wm-asistente-datos',\r\n templateUrl: './asistente-datos.component.html',\r\n styleUrls: ['./asistente-datos.component.scss'],\r\n})\r\nexport class AsistenteDatosComponent {\r\n @ViewChild('mensajesContainer') private mensajesContainer?: ElementRef<HTMLDivElement>;\r\n\r\n // La apertura/cierre del panel la controla el padre (el menú). El panel solo se renderiza\r\n // cuando `abierto` es true y avisa, vía `cerrarChange`, cuando el usuario toca la X.\r\n @Input() abierto = false;\r\n\r\n // URL del POST de consulta. Se refleja en el api service (propiedad `url`), que es donde se usa.\r\n @Input() set urlConsultar(valor: string) {\r\n if (valor) {\r\n this.asistenteDatosApiService.url = valor;\r\n }\r\n }\r\n\r\n // Idioma para el reconocimiento de voz (Web Speech API).\r\n @Input() idioma = 'es-CO';\r\n\r\n @Output() cerrarChange = new EventEmitter<void>();\r\n\r\n public mensajes: MensajeAsistenteDatos[] = [];\r\n public borrador = '';\r\n // Alterna el alto de la caja del mensaje (compacta ↔ expandida), igual que el \"pedir cambios\"\r\n // del asistente de IA del generador de formularios (ver filasBorrador / onClickExpandirBorrador).\r\n public borradorExpandido = false;\r\n public consultando = false;\r\n // \"Gemini\" o \"Groq\" — mismo selector que el asistente de generación de formularios\r\n // (ver ProveedorIAServicio en el backend).\r\n public proveedorSeleccionado: 'Gemini' | 'Groq' = 'Gemini';\r\n // Dictado por voz (Web Speech API) — sin soporte en Firefox, inconsistente en Safari.\r\n public escuchando = false;\r\n\r\n // Preguntas ya verificadas como respondibles hoy (whitelist + contrato de la IA — ver\r\n // ChatConsultaWhitelistServicio/ChatConsultaPromptServicio en el backend), mostradas como chips\r\n // de sugerencia en el estado vacío del chat.\r\n public chipsSugeridos: string[] = [\r\n '¿Cuántos formularios se diligenciaron hoy?',\r\n '¿Cuántos formularios se diligenciaron esta semana?',\r\n 'Muéstrame los últimos 10 formularios diligenciados',\r\n ];\r\n\r\n constructor(\r\n private asistenteDatosApiService: AsistenteDatosApiService,\r\n private reconocimientoVoz: ReconocimientoVozService\r\n ) {}\r\n\r\n // El padre abre/cierra el panel; aquí solo se avisa que el usuario pidió cerrarlo (botón X).\r\n cerrar(): void {\r\n this.cerrarChange.emit();\r\n }\r\n\r\n // Caja del mensaje compacta (1 fila, como era el chat originalmente) ↔ expandida (6 filas).\r\n // El botón de expandir es el mismo patrón del \"pedir cambios\" del generador.\r\n get filasBorrador(): number {\r\n return this.borradorExpandido ? 6 : 1;\r\n }\r\n\r\n onClickExpandirBorrador(): void {\r\n this.borradorExpandido = !this.borradorExpandido;\r\n }\r\n\r\n get micDisponible(): boolean {\r\n return this.reconocimientoVoz.estaSoportado();\r\n }\r\n\r\n onClickMicrofono(): void {\r\n if (this.escuchando) {\r\n this.reconocimientoVoz.detener();\r\n this.escuchando = false;\r\n return;\r\n }\r\n\r\n if (!this.reconocimientoVoz.estaSoportado()) {\r\n return;\r\n }\r\n\r\n // El resultado del reconocimiento no incluye lo que ya estaba escrito — se guarda antes de\r\n // empezar y se antepone en cada actualización (que llega con la transcripción COMPLETA de\r\n // esta sesión de escucha, no un incremento) para no perder lo que ya había en el campo.\r\n const textoPrevio = this.borrador.trim();\r\n this.escuchando = true;\r\n this.reconocimientoVoz.iniciar(\r\n this.idioma,\r\n (texto) => (this.borrador = textoPrevio ? `${textoPrevio} ${texto}` : texto),\r\n () => (this.escuchando = false)\r\n );\r\n }\r\n\r\n onClickEnviar(textoPreset?: string): void {\r\n const pregunta = (textoPreset ?? this.borrador).trim();\r\n if (!pregunta || this.consultando) {\r\n return;\r\n }\r\n\r\n this.mensajes.push({ deUsuario: true, texto: pregunta });\r\n this.borrador = '';\r\n\r\n // Sin url de consulta no se hace la petición: el usuario ve el mismo error genérico que\r\n // cuando la API falla.\r\n if (!this.asistenteDatosApiService.url) {\r\n this.mensajes.push({\r\n deUsuario: false,\r\n texto: 'No se pudo procesar la consulta.',\r\n esError: true,\r\n });\r\n this.scrollAlFinal();\r\n return;\r\n }\r\n\r\n this.consultando = true;\r\n this.scrollAlFinal();\r\n\r\n this.asistenteDatosApiService.consultar(pregunta, this.proveedorSeleccionado).subscribe({\r\n // El tipo (RespuestaAsistenteDatos) se infiere del Observable: importar la interfaz\r\n // dejaba un import a un símbolo inexistente en el JS de la librería (aviso de rollup).\r\n next: (respuesta) => {\r\n this.consultando = false;\r\n this.mensajes.push({\r\n deUsuario: false,\r\n descripcion: respuesta.Descripcion,\r\n resultado: respuesta.Resultado ?? [],\r\n proveedor: respuesta.Proveedor,\r\n });\r\n this.scrollAlFinal();\r\n },\r\n error: (error) => {\r\n this.consultando = false;\r\n this.mensajes.push({\r\n deUsuario: false,\r\n texto: error?.Mensaje || 'No se pudo procesar la consulta.',\r\n esError: true,\r\n });\r\n this.scrollAlFinal();\r\n },\r\n });\r\n }\r\n\r\n // El nuevo mensaje recién se refleja en el DOM después del siguiente ciclo de detección de\r\n // cambios — por eso el scrollTop se ajusta en un setTimeout(0), no inmediatamente después del\r\n // push, para que scrollHeight ya incluya el mensaje agregado.\r\n private scrollAlFinal(): void {\r\n setTimeout(() => {\r\n const elemento = this.mensajesContainer?.nativeElement;\r\n if (elemento) {\r\n elemento.scrollTop = elemento.scrollHeight;\r\n }\r\n });\r\n }\r\n\r\n columnasDe(resultado: any[]): string[] {\r\n return resultado.length ? Object.keys(resultado[0]) : [];\r\n }\r\n\r\n // El backend devuelve un conteo (ChatConsultaIAServicio.EjecutarConteo) como una sola fila con\r\n // una sola columna llamada literalmente \"Resultado\" — se muestra como número grande en vez de\r\n // como tabla de una celda.\r\n esConteo(resultado: any[]): boolean {\r\n return resultado?.length === 1 && Object.keys(resultado[0]).length === 1 && 'Resultado' in resultado[0];\r\n }\r\n\r\n // Listado con una sola columna (ej. una lista de nombres/ids) — se muestra como texto simple\r\n // en vez de una tabla de una sola columna repetida.\r\n esListaSimple(resultado: any[]): boolean {\r\n return resultado?.length > 0 && !this.esConteo(resultado) && this.columnasDe(resultado).length === 1;\r\n }\r\n\r\n textoListaSimple(resultado: any[]): string {\r\n const columna = this.columnasDe(resultado)[0];\r\n return resultado.map((fila) => fila[columna]).join(', ');\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 { MatTableModule } from '@angular/material/table';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatRippleModule } from \"@angular/material/core\";\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { WmMenuComponent } from './wm-menu/wm-menu.component';\r\nimport { AsistenteDatosComponent } from './wm-menu/asistente-datos/asistente-datos.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, AsistenteDatosComponent],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n MatToolbarModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatTableModule,\r\n MatTooltipModule,\r\n MatRippleModule,\r\n HttpClientModule,\r\n JwtModule\r\n ],\r\n exports: [WmMenuComponent]\r\n})\r\nexport class WmMenuModule { }\r\n"],"names":["HttpHeaders","HttpParams","map","catchError","throwError","HttpClient","MatIconRegistry","DomSanitizer","Injectable","JwtHelperService","Input","Component","EventEmitter","ViewChild","Output","NgModule","BrowserModule","FormsModule","MatToolbarModule","MatSidenavModule","MatListModule","MatButtonModule","MatIconModule","MatMenuModule","MatTableModule","MatTooltipModule","MatRippleModule","HttpClientModule","JwtModule"],"mappings":";;;;;;IAAA;IACA;AACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;AACF;IACO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;AACD;IACO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;AACD;IACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;AACD;IACO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;AACD;IACO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;AACD;IACO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;AACD;IACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;AACD;IACO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;AACD;IACO,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;IAC7C,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACD;IACO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;AACD;IACO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;IAClD,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,IAAI,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;AACD;IACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;AACD;IACO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;AACD;IACO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;AACF;IACO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;AACD;IACO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;AACD;IACO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;AACD;IACO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;AACD;IACO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACF;IACO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;AACD;IACO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;AACD;IACO,SAAS,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE;IAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACnC,QAAQ,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IAC9E,KAAK;IACL,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;AACD;IACO,SAAS,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;IACpE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACnC,QAAQ,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IAC9E,KAAK;IACL,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,CAAC;IACjB;;ICzNA;QAAA;YAGI,UAAK,GAAyB,EAAE,CAAC;SACpC;QAAD,qBAAC;IAAD,CAAC,IAAA;IAED;QAAA;SAIC;QAAD,yBAAC;IAAD,CAAC;;;QCGG,+BAAoB,IAAgB,EAAU,YAA6B,EAAU,SAAuB;YAAxF,SAAI,GAAJ,IAAI,CAAY;YAAU,iBAAY,GAAZ,YAAY,CAAiB;YAAU,cAAS,GAAT,SAAS,CAAc;SAAK;QAEjH,8CAAc,GAAd,UAAe,GAAU,EAAE,SAAiB,EAAE,KAAY,EAAE,kBAAuB;YAAvB,mCAAA,EAAA,uBAAuB;YAC/E,IAAM,OAAO,GAAG,IAAIA,gBAAW,CAAC;gBAC5B,eAAe,EAAE,YAAU,KAAO;aACrC,CAAC,CAAC;YAEH,IAAI,QAAQ,GAAG,IAAIC,eAAU,EAAE,CAAC;YAChC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;aAChE;YACD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACjD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,SAAS,IAAI,IAAI;gBACjB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,SAAA,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CACzDC,aAAG,CAAC,UAAA,IAAI;gBACJ,OAAO,IAAI,CAAC;aACf,CAAC,EACFC,oBAAU,CAAC,UAAA,KAAK;gBACZ,OAAOC,eAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAClC,CAAC,CACL,CAAC;SACL;QAED,0CAAU,GAAV,UAAW,OAAY;YACnB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAC,GAAG,GAAC,IAAI,GAAA,CAAC,CAAC;YAEnE,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;gBACvB,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oBAClC,IAAI,OAAO,GAAG,eAAe,GAAG,GAAG,CAAC;oBACpC,IAAI,CAAC,YAAY,CAAC,UAAU,CACxB,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;iBAChC;aACJ;YAED,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACpC;QAGO,2CAAW,GAAnB,UAAoB,OAAY,EAAE,WAAoB;YAClD,IAAI,IAAI,GAAoB,EAAE,CAAC;YAC/B,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;gBACvB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,WAAW,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE;oBAC/F,IAAI,CAAC,IAAI,CAAC;wBACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa;wBAClC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG;wBACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK;wBACzB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW;wBACrC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;qBACxD,CAAC,CAAC;iBACN;aACJ;YACD,OAAO,IAAI,CAAC;SACf;QAED,kDAAkB,GAAlB,UAAmB,GAAU,EAAE,SAAiB,EAAE,KAAY;YAC1D,IAAM,OAAO,GAAG,IAAIJ,gBAAW,CAAC;gBAC5B,eAAe,EAAE,YAAU,KAAO;aACrC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1BE,aAAG,CAAC,UAAA,IAAI;gBACJ,OAAO,IAAI,CAAC;aACf,CAAC,EACFC,oBAAU,CAAC,UAAA,KAAK;gBACZ,OAAOC,eAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAClC,CAAC,CACL,CAAC;SACL;QAED,wDAAwB,GAAxB,UAAyB,GAAU,EAAE,SAAiB,EAAE,KAAY;YAChE,IAAM,OAAO,GAAG,IAAIJ,gBAAW,CAAC;gBAC5B,eAAe,EAAE,YAAU,KAAO;aACrC,CAAC,CAAC;YAEH,IAAI,QAAQ,GAAG,IAAIC,eAAU,EAAE,CAAC;YAEhC,IAAI,SAAS,IAAI,IAAI;gBACjB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,SAAA,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CACzDC,aAAG,CAAC,UAAA,IAAI;gBACJ,OAAO,IAAI,CAAC;aACf,CAAC,EACFC,oBAAU,CAAC,UAAA,KAAK;gBACZ,OAAOC,eAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAClC,CAAC,CACL,CAAC;SACL;;;QAID,gDAAgB,GAAhB,UAAiB,GAAW,EAAE,KAAa;YACvC,IAAM,OAAO,GAAG,IAAIJ,gBAAW,CAAC;gBAC5B,eAAe,EAAE,YAAU,KAAO;aACrC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC,IAAI,CACvCE,aAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAA,CAAC,EACjBC,oBAAU,CAAC,UAAA,KAAK,IAAI,OAAAC,eAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAA,CAAC,CAC/C,CAAC;SACL;;oBA1GyBC,eAAU;oBAAwBC,oBAAe;oBAAqBC,4BAAY;;;QAFnG,qBAAqB;YAHjCC,eAAU,CAAC;gBACV,UAAU,EAAE,MAAM;aACnB,CAAC;WACW,qBAAqB,CA6GjC;oCAxHD;KAWA;;;QCOE,mCAAoB,qBAA4C;YAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;YARxD,mBAAc,GAAG,2BAA2B,CAAC;YAE7C,UAAK,GAA4B,IAAI,CAAC;YACtC,cAAS,GAAG,KAAK,CAAC;YAElB,4BAAuB,GAAgB,IAAI,GAAG,EAAE,CAAC;YACjD,iBAAY,GAAQ,IAAI,CAAC;YAKzB,cAAS,GAAY,KAAK,CAAC;SAHkC;QAKrE,kDAAc,GAAd,UACE,UAAkB,EAClB,QAAoB,EACpB,mBAA2B,EAC3B,KAAa,EACb,SAAiB;YALnB,iBA8CC;YAvCC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAE3B,IAAM,qBAAqB,GAAG;gBAC5B,KAAI,CAAC,qBAAqB;qBACvB,cAAc,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC;qBACxE,SAAS,CAAC,UAAC,IAAI;;oBAEd,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;wBACjD,IAAI,KAAI,CAAC,SAAS,EAAE;4BAClB,OAAO;yBACR;;wBAED,IAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;wBACpE,KAAI,CAAC,uBAAuB,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;wBAEtF,IAAM,iBAAe,GAAG;4BACtB,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,QAAQ,EAAE,CAAC;4BACX,UAAU,CAAC;gCACT,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gCACvB,iBAAe,EAAE,CAAC;6BACnB,EAAE,UAAU,CAAC,CAAC;yBAChB,CAAC;wBAEF,iBAAe,EAAE,CAAC;qBACnB;iBACF,CAAC,CAAC;aACN,CAAC;YAEF,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,UAAA,MAAM;gBAC9B,QAAQ,CAAC,gBAAgB,CACvB,MAAM,EACN;oBACE,qBAAqB,EAAE,CAAC;iBACzB,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;aACH,CAAC,CAAC;SAEJ;QAGD,+CAAW,GAAX;YACE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;QAED,+CAAW,GAAX;YACE,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAED,6CAAS,GAAT;YAAA,iBAmBC;YAlBC,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACf,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACxC;YAED,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;iBACd,IAAI,CAAC;;gBAEJ,KAAI,CAAC,YAAY,GAAG,UAAU,CAAC;oBAC7B,KAAI,CAAC,SAAS,EAAE,CAAC;iBAClB,EAAE,KAAK,CAAC,CAAC;aACX,CAAC;iBACD,KAAK,CAAC,UAAA,KAAK;gBACV,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;aACtD,CAAC,CAAC;SACN;QAED,6CAAS,GAAT;YACE,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;SACF;QAED,sDAAkB,GAAlB;YAAA,iBAeC;YAdC,IAAI,MAAM,GAAG,KAAK,CAAC;;YAGnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;aACrC;YAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;;oBAE5B,QAAQ,CAAC,KAAK,GAAG,MAAM,GAAG,KAAI,CAAC,cAAc,GAAG,KAAI,CAAC,aAAa,CAAC;oBACnE,MAAM,GAAG,CAAC,MAAM,CAAC;iBAClB,EAAE,IAAI,CAAC,CAAC;aACV;SACF;QAED,qDAAiB,GAAjB;YACE,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;aACrC;SACF;QAED,4DAAwB,GAAxB,UAAyB,uBAA+B,EAAE,KAAa;YAAvE,iBAqCC;YApCC,IAAM,MAAM,GAAG,IAAIC,2BAAgB,EAAE,CAAC;YACtC,IAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,qBAAqB;iBACvB,cAAc,CAAC,uBAAuB,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;iBAC1E,SAAS,CAAC,UAAC,IAAI;gBACd,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBAE3B,IAAM,YAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,cAAc,GAAA,CAAC,CAAC;;oBAG7D,KAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAC,EAAE;wBACtC,IAAI,CAAC,YAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;4BAC5B,KAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;yBACzC;qBACF,CAAC,CAAC;;oBAGH,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,CAAC,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAA,CAAC,CAAC;;oBAGlG,SAAS,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAA,CAAC,CAAC;oBACrF,IAAI,KAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,EAAE;wBACzC,KAAI,CAAC,kBAAkB,EAAE,CAAC;qBAC3B;;oBAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBACxB,KAAI,CAAC,SAAS,EAAE,CAAC;qBAClB;iBACF;qBAAM;;oBAEL,KAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;oBACrC,KAAI,CAAC,iBAAiB,EAAE,CAAC;iBAC1B;;gBAED,YAAY,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;aAC7G,CAAC,CAAC;SACN;;oBAjK0C,qBAAqB;;;QAXrD,yBAAyB;YAHrCD,eAAU,CAAC;gBACV,UAAU,EAAE,MAAM;aACnB,CAAC;WACW,yBAAyB,CA8KrC;wCArLD;KAOA;;;QCoDI,yBAAoB,qBAA4C,EAAU,mBAA8C;YAApG,0BAAqB,GAArB,qBAAqB,CAAuB;YAAU,wBAAmB,GAAnB,mBAAmB,CAA2B;YAnB/G,qBAAgB,GAAqB,KAAK,CAAC;YAE3C,oBAAe,GAAW,OAAO,CAAC;YAC3C,qBAAgB,GAAG,KAAK,CAAC;YACjB,qBAAgB,GAAU,EAAE,CAAC;YASrC,sBAAiB,GAAmB,IAAI,cAAc,EAAE,CAAC;YACzD,uBAAkB,GAAY,KAAK,CAAC;YAEpC,eAAU,GAAS,EAAE,CAAC;YACd,0BAAqB,GAAG,KAAK,CAAC;SAEuF;QAb7H,sBAAI,2CAAc;iBAAlB;gBACI,IAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,GAAG,CAAC;gBACpH,IAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,YAAY,KAAK,mBAAmB,GAAA,CAAC,CAAC;gBACpG,OAAO,OAAO,IAAI,YAAY,CAAC;aAClC;;;WAAA;QAWD,kCAAQ,GAAR;YAAA,iBAgDC;YA/CG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAE,cAAM,OAAA,KAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,KAAI,CAAC,uBAAuB,EAAE,KAAI,CAAC,KAAK,CAAC,GAAA,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;;;YAI7N,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACxC,IAAI,CAAC,qBAAqB;qBACrB,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC;qBACtD,SAAS,CACN,UAAC,IAAI,IAAO,KAAI,CAAC,gBAAgB,IAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA,CAAC,EAAE,EACjD,cAAQ,KAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EAAE,CACxC,CAAC;aACT;YAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC5B,IAAI,MAAM,GAAG,IAAIC,2BAAgB,EAAE,CAAC;gBACpC,IAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,qBAAqB;qBACrB,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;qBACpE,SAAS,CAAC,UAAC,IAAI;oBACZ,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACpE,CAAC,CAAC;aACV;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC/B,IAAI,MAAM,GAAG,IAAIA,2BAAgB,EAAE,CAAC;gBACpC,IAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,qBAAqB;qBACrB,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;qBAC3E,SAAS,CAAC,UAAC,IAAI;oBACb,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,KAAI,CAAC,gBAAgB,EAAE,CAAC;iBAC1B,CAAC,CAAC;aACV;YAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC1C,IAAI,MAAM,GAAG,IAAIA,2BAAgB,EAAE,CAAC;gBACpC,IAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,qBAAqB;qBACrB,wBAAwB,CAAC,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;qBAC5F,SAAS,CAAC,UAAC,IAAI;oBACZ,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;oBACrE,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBACzD,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC;iBACpE,CAAC,CAAC;aACV;SACJ;QAED,4CAAkB,GAAlB,UAAmB,CAAS;YACxB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;gBACnE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;oBAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAChC;qBAAM;oBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBACjD;aACJ;SACJ;QAED,6CAAmB,GAAnB,UAAoB,CAAS;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChC;QAED,0CAAgB,GAAhB;;YACI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACvC,IAAI,MAAM,GAAG,IAAIA,2BAAgB,EAAE,CAAC;gBACpC,IAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,CAAC,cAAc,GAAG,CAAC;wBACnB,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC;wBACnC,KAAK,EAAE,gBAAgB;wBACvB,KAAK,EAAE;4BACH,EAAE,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;4BACjE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,oBAAoB,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;4BAClM,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;4BACzN,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,IAAI,OAAA,IAAI,CAAC,cAAc,0CAAE,MAAM,KAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;4BAC9P,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE;yBAAC,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,IAAI,IAAI,GAAA,CAAC;qBACtN,CAAC,CAAC;aACN;SACJ;;oBAlF0C,qBAAqB;oBAA+B,yBAAyB;;QA9C/G;YAARC,UAAK,EAAE;qDAAc;QACb;YAARA,UAAK,EAAE;2DAAoB;QACnB;YAARA,UAAK,EAAE;2DAAoB;QACnB;YAARA,UAAK,EAAE;8DAAgC;QAC/B;YAARA,UAAK,EAAE;+DAAkC;QAEjC;YAARA,UAAK,EAAE;wDAAiB;QAChB;YAARA,UAAK,EAAE;sDAAe;QACd;YAARA,UAAK,EAAE;mEAA4B;QAC3B;YAARA,UAAK,EAAE;2DAAoB;QACnB;YAARA,UAAK,EAAE;+DAAwB;QACvB;YAARA,UAAK,EAAE;wEAAiC;QAChC;YAARA,UAAK,EAAE;oEAA6B;QAC5B;YAARA,UAAK,EAAE;0DAAmB;QAElB;YAARA,UAAK,EAAE;8DAAuB;QACtB;YAARA,UAAK,EAAE;8DAAuB;QACtB;YAARA,UAAK,EAAE;2DAAoB;QACnB;YAARA,UAAK,EAAE;sEAA+B;QAE9B;YAARA,UAAK,EAAE;2DAAoB;QAMnB;YAARA,UAAK,EAAE;oEAA6B;QAC5B;YAARA,UAAK,EAAE;iEAA4C;QAC3C;YAARA,UAAK,EAAE;sEAA+B;QAC9B;YAARA,UAAK,EAAE;gEAAmC;QA9BlC,eAAe;YAL3BC,cAAS,CAAC;gBACP,QAAQ,EAAE,SAAS;gBACnB,8nNAAuC;;aAE1C,CAAC;WACW,eAAe,CAkI3B;QAAD,sBAAC;KAlID;;ICVA;IACA;IACA;;QAIA;YACY,mBAAc,GAAQ,IAAI,CAAC;SAmEtC;QAjEG,gDAAa,GAAb;YACI,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;SACxC;;;;;QAMD,0CAAO,GAAP,UAAQ,MAAc,EAAE,WAAoC,EAAE,KAAiB;YAA/E,iBA2CC;YA1CG,IAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxD,IAAI,CAAC,qBAAqB,EAAE;gBACxB,KAAK,EAAE,CAAC;gBACR,OAAO;aACV;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;YAEf,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC;YAE1C,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,UAAC,MAAW;gBACvC,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;qBACnC,GAAG,CAAC,UAAC,SAAc,IAAK,OAAA,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,GAAA,CAAC;qBAChD,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,WAAW,CAAC,KAAK,CAAC,CAAC;aACtB,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,UAAC,MAAW;;;;;;gBAKtC,OAAO,CAAC,KAAK,CAAC,gCAAgC,QAAE,MAAM,0CAAE,KAAK,CAAC,CAAC;gBAC/D,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,KAAK,EAAE,CAAC;aACX,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG;gBACxB,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,KAAK,EAAE,CAAC;aACX,CAAC;YAEF,IAAI;gBACA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;aAC/B;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,KAAK,EAAE,CAAC;aACX;SACJ;QAED,0CAAO,GAAP;YACI,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC9B;SACJ;QAEO,qDAAkB,GAA1B;YACI,OAAQ,MAAc,CAAC,iBAAiB,IAAK,MAAc,CAAC,uBAAuB,IAAI,IAAI,CAAC;SAC/F;;QAnEQ,wBAAwB;YAHpCH,eAAU,CAAC;gBACR,UAAU,EAAE,MAAM;aACrB,CAAC;WACW,wBAAwB,CAoEpC;uCA5ED;KAQA;;;QC4BI,kCAAoB,IAAgB;YAAhB,SAAI,GAAJ,IAAI,CAAY;;YAR7B,QAAG,GAAG,EAAE,CAAC;;;;YAKC,cAAS,GAAG,OAAO,CAAC;YACpB,cAAS,GAAG,IAAIC,2BAAgB,EAAE,CAAC;SAEZ;QAExC,4CAAS,GAAT,UAAU,QAAgB,EAAE,SAAkB;YAC1C,IAAM,OAAO,GAAG,IAAIT,gBAAW,CAAC;gBAC5B,aAAa,EAAE,YAAU,IAAI,CAAC,UAAU,EAAI;gBAC5C,cAAc,EAAE,iCAAiC;aACpD,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,IAAI;iBACX,IAAI,CACD,IAAI,CAAC,GAAG,EACR,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAC5C,EAAE,OAAO,SAAA,EAAE,CACd;iBACA,IAAI,CACDG,oBAAU,CAAC,UAAC,KAAK;gBACb,OAAOC,eAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAClC,CAAC,CACL,CAAC;SACT;QAEO,6CAAU,GAAlB;YACI,IAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEjD,IAAI,GAAG,EAAE;gBACL,IAAI;oBACA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;iBAC1D;gBAAC,WAAM,GAAE;aACb;YACD,OAAO,IAAI,CAAC;SACf;;oBA9ByBC,eAAU;;;QAV3B,wBAAwB;YAHpCG,eAAU,CAAC;gBACR,UAAU,EAAE,MAAM;aACrB,CAAC;WACW,wBAAwB,CAyCpC;uCAnED;KA0BA;;;QCgCI,iCACY,wBAAkD,EAClD,iBAA2C;YAD3C,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,sBAAiB,GAAjB,iBAAiB,CAA0B;;;YArC9C,YAAO,GAAG,KAAK,CAAC;;YAUhB,WAAM,GAAG,OAAO,CAAC;YAEhB,iBAAY,GAAG,IAAII,iBAAY,EAAQ,CAAC;YAE3C,aAAQ,GAA4B,EAAE,CAAC;YACvC,aAAQ,GAAG,EAAE,CAAC;;;YAGd,sBAAiB,GAAG,KAAK,CAAC;YAC1B,gBAAW,GAAG,KAAK,CAAC;;;YAGpB,0BAAqB,GAAsB,QAAQ,CAAC;;YAEpD,eAAU,GAAG,KAAK,CAAC;;;;YAKnB,mBAAc,GAAa;gBAC9B,4CAA4C;gBAC5C,oDAAoD;gBACpD,oDAAoD;aACvD,CAAC;SAKE;QAnCK,sBAAI,iDAAY;;iBAAhB,UAAiB,KAAa;gBACnC,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,wBAAwB,CAAC,GAAG,GAAG,KAAK,CAAC;iBAC7C;aACJ;;;WAAA;;QAkCD,wCAAM,GAAN;YACI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;QAID,sBAAI,kDAAa;;;iBAAjB;gBACI,OAAO,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC;aACzC;;;WAAA;QAED,yDAAuB,GAAvB;YACI,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACpD;QAED,sBAAI,kDAAa;iBAAjB;gBACI,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aACjD;;;WAAA;QAED,kDAAgB,GAAhB;YAAA,iBAqBC;YApBG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,OAAO;aACV;YAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,EAAE;gBACzC,OAAO;aACV;;;;YAKD,IAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC1B,IAAI,CAAC,MAAM,EACX,UAAC,KAAK,IAAK,QAAC,KAAI,CAAC,QAAQ,GAAG,WAAW,GAAM,WAAW,SAAI,KAAO,GAAG,KAAK,IAAC,EAC5E,cAAM,QAAC,KAAI,CAAC,UAAU,GAAG,KAAK,IAAC,CAClC,CAAC;SACL;QAED,+CAAa,GAAb,UAAc,WAAoB;YAAlC,iBA+CC;YA9CG,IAAM,QAAQ,GAAG,EAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,QAAQ,GAAE,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC/B,OAAO;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;;;YAInB,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACf,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,kCAAkC;oBACzC,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO;aACV;YAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC;;;gBAGpF,IAAI,EAAE,UAAC,SAAS;;oBACZ,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACf,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,SAAS,QAAE,SAAS,CAAC,SAAS,uCAAI,EAAE,EAAA;wBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;qBACjC,CAAC,CAAC;oBACH,KAAI,CAAC,aAAa,EAAE,CAAC;iBACxB;gBACD,KAAK,EAAE,UAAC,KAAK;;oBACT,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACf,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,OAAA,KAAK,0CAAE,OAAO,KAAI,kCAAkC;wBAC3D,OAAO,EAAE,IAAI;qBAChB,CAAC,CAAC;oBACH,KAAI,CAAC,aAAa,EAAE,CAAC;iBACxB;aACJ,CAAC,CAAC;SACN;;;;QAKO,+CAAa,GAArB;YAAA,iBAOC;YANG,UAAU,CAAC;;gBACP,IAAM,QAAQ,SAAG,KAAI,CAAC,iBAAiB,0CAAE,aAAa,CAAC;gBACvD,IAAI,QAAQ,EAAE;oBACV,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC;iBAC9C;aACJ,CAAC,CAAC;SACN;QAED,4CAAU,GAAV,UAAW,SAAgB;YACvB,OAAO,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SAC5D;;;;QAKD,0CAAQ,GAAR,UAAS,SAAgB;;YACrB,OAAO,OAAA,SAAS,0CAAE,MAAM,MAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SAC3G;;;QAID,+CAAa,GAAb,UAAc,SAAgB;;YAC1B,OAAO,OAAA,SAAS,0CAAE,MAAM,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;SACxG;QAED,kDAAgB,GAAhB,UAAiB,SAAgB;YAC7B,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,GAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5D;;oBA/HqC,wBAAwB;oBAC/B,wBAAwB;;QAzCvB;YAA/BC,cAAS,CAAC,mBAAmB,CAAC;0EAAwD;QAI9E;YAARH,UAAK,EAAE;gEAAiB;QAGhB;YAARA,UAAK,EAAE;mEAIP;QAGQ;YAARA,UAAK,EAAE;+DAAkB;QAEhB;YAATI,WAAM,EAAE;qEAAyC;QAjBzC,uBAAuB;YALnCH,cAAS,CAAC;gBACP,QAAQ,EAAE,oBAAoB;gBAC9B,2lOAA+C;;aAElD,CAAC;WACW,uBAAuB,CAyKnC;QAAD,8BAAC;KAzKD;;;QCqBA;SAA6B;QAAhB,YAAY;YAnBxBI,aAAQ,CAAC;gBACR,YAAY,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;gBACxD,OAAO,EAAE;oBACPC,6BAAa;oBACbC,iBAAW;oBACXC,wBAAgB;oBAChBC,wBAAgB;oBAChBC,kBAAa;oBACbC,sBAAe;oBACfC,kBAAa;oBACbC,kBAAa;oBACbC,oBAAc;oBACdC,wBAAgB;oBAChBC,sBAAe;oBACfC,qBAAgB;oBAChBC,oBAAS;iBACV;gBACD,OAAO,EAAE,CAAC,eAAe,CAAC;aAC3B,CAAC;WACW,YAAY,CAAI;QAAD,mBAAC;KAA7B;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common/http"),require("rxjs/operators"),require("rxjs"),require("@angular/platform-browser"),require("@angular/material/icon"),require("@auth0/angular-jwt"),require("@angular/material/toolbar"),require("@angular/material/sidenav"),require("@angular/material/list"),require("@angular/material/button"),require("@angular/material/menu"),require("@angular/material/core")):"function"==typeof define&&define.amd?define("wm-menu",["exports","@angular/core","@angular/common/http","rxjs/operators","rxjs","@angular/platform-browser","@angular/material/icon","@auth0/angular-jwt","@angular/material/toolbar","@angular/material/sidenav","@angular/material/list","@angular/material/button","@angular/material/menu","@angular/material/core"],e):e((n=n||self)["wm-menu"]={},n.ng.core,n.ng.common.http,n.rxjs.operators,n.rxjs,n.ng.platformBrowser,n.ng.material.icon,n.angularJwt,n.ng.material.toolbar,n.ng.material.sidenav,n.ng.material.list,n.ng.material.button,n.ng.material.menu,n.ng.material.core)}(this,(function(n,e,i,t,o,r,a,u,l,c,s,m,d,p){"use strict";
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@angular/common/http"),require("rxjs/operators"),require("rxjs"),require("@angular/platform-browser"),require("@angular/material/icon"),require("@auth0/angular-jwt"),require("@angular/material/toolbar"),require("@angular/material/sidenav"),require("@angular/material/list"),require("@angular/material/button"),require("@angular/material/menu"),require("@angular/material/table"),require("@angular/material/tooltip"),require("@angular/material/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("wm-menu",["exports","@angular/core","@angular/common/http","rxjs/operators","rxjs","@angular/platform-browser","@angular/material/icon","@auth0/angular-jwt","@angular/material/toolbar","@angular/material/sidenav","@angular/material/list","@angular/material/button","@angular/material/menu","@angular/material/table","@angular/material/tooltip","@angular/material/core","@angular/forms"],n):n((e=e||self)["wm-menu"]={},e.ng.core,e.ng.common.http,e.rxjs.operators,e.rxjs,e.ng.platformBrowser,e.ng.material.icon,e.angularJwt,e.ng.material.toolbar,e.ng.material.sidenav,e.ng.material.list,e.ng.material.button,e.ng.material.menu,e.ng.material.table,e.ng.material.tooltip,e.ng.material.core,e.ng.forms)}(this,(function(e,n,t,i,o,a,r,s,c,l,u,d,p,m,h,f,g){"use strict";
2
2
  /*! *****************************************************************************
3
3
  Copyright (c) Microsoft Corporation.
4
4
 
@@ -12,5 +12,5 @@
12
12
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */function f(n,e,i,t){var o,r=arguments.length,a=r<3?e:null===t?t=Object.getOwnPropertyDescriptor(e,i):t;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(n,e,i,t);else for(var u=n.length-1;u>=0;u--)(o=n[u])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a}var h=function(){this.hijos=[]},g=function(){function n(n,e,i){this.http=n,this.iconRegistry=e,this.sanitizer=i}return n.prototype.menuApiObtener=function(n,e,r,a){void 0===a&&(a="");var u=new i.HttpHeaders({Authorization:"Bearer "+r}),l=new i.HttpParams;return a.length>0&&(l=l.append("codLogica",a)),l=(l=l.append("ctrlActivo","true")).append("conPadres","true"),null!=e&&(l=l.append("idUsuario",e.toString())),this.http.get(n,{headers:u,params:l}).pipe(t.map((function(n){return n})),t.catchError((function(n){return o.throwError(n.error)})))},n.prototype.mapearMenu=function(n){for(var e in n=n.sort((function(n,e){return n.Posicion>e.Posicion?"1":"-1"}))){var i=n[e];if(i.Icono.startsWith("http")){var t="wm-icon-menu-"+e;this.iconRegistry.addSvgIcon(t,this.sanitizer.bypassSecurityTrustResourceUrl(i.Icono)),n[e].Icono=t}}return this.obtenerMenu(n)},n.prototype.obtenerMenu=function(n,e){var i=[];for(var t in n)(n[t].IdMenuPadre==e||!e&&null==n[t].IdMenuPadre)&&i.push({titulo:n[t].IdiomaRecurso,url:n[t].Url,icono:n[t].Icono,descripcion:n[t].Descripcion,hijos:this.obtenerMenu(n,n[t].IdMenu)});return i},n.prototype.menuIdiomasObtener=function(n,e,r){new i.HttpHeaders({Authorization:"Bearer "+r});return this.http.get(n).pipe(t.map((function(n){return n})),t.catchError((function(n){return o.throwError(n.error)})))},n.prototype.almacenamientoApiObtener=function(n,e,r){var a=new i.HttpHeaders({Authorization:"Bearer "+r}),u=new i.HttpParams;return null!=e&&(u=u.append("idUsuario",e.toString())),this.http.get(n,{headers:a,params:u}).pipe(t.map((function(n){return n})),t.catchError((function(n){return o.throwError(n.error)})))},n.ctorParameters=function(){return[{type:i.HttpClient},{type:a.MatIconRegistry},{type:r.DomSanitizer}]},n.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new n(e.ɵɵinject(i.HttpClient),e.ɵɵinject(a.MatIconRegistry),e.ɵɵinject(r.DomSanitizer))},token:n,providedIn:"root"}),n=f([e.Injectable({providedIn:"root"})],n)}(),v=function(){function n(n){this.wmMenuServicioService=n,this.alternateTitle="Alerta de Pánico Recibida",this.audio=null,this.isPlaying=!1,this.IdsAlertasPanicoActivas=new Set,this.soundTimeout=null,this.isRunning=!1}return n.prototype.iniciarProceso=function(n,e,i,t,o){var r=this;this.rutaAudio=o;["drag","click"].forEach((function(o){document.addEventListener(o,(function(){r.wmMenuServicioService.menuApiObtener(i,null,t,"ReporteAlertasPanico").subscribe((function(i){if(i&&i.length>0&&1==i[0].Valor){if(r.isRunning)return;var t=localStorage.getItem("ALERTAS_PANICO_ACTIVAS_WM");r.IdsAlertasPanicoActivas=t?new Set(JSON.parse(t)):new Set;var o=function(){r.isRunning=!0,e(),setTimeout((function(){r.isRunning=!1,o()}),n)};o()}}))}),{once:!0})}))},n.prototype.stopProcess=function(){this.isRunning=!1,this.subscription&&this.subscription.unsubscribe()},n.prototype.ngOnDestroy=function(){this.stopSound(),this.stopFlashingTitle()},n.prototype.playSound=function(){var n=this;this.isPlaying||(this.isPlaying=!0,this.audio||(this.audio=new Audio(this.rutaAudio)),this.audio.loop=!0,this.audio.play().then((function(){n.soundTimeout=setTimeout((function(){n.stopSound()}),1e4)})).catch((function(n){console.log("Error al reproducir el sonido:",n)})))},n.prototype.stopSound=function(){this.audio&&(this.audio.pause(),this.audio.currentTime=0),this.isPlaying=!1,this.soundTimeout&&(clearTimeout(this.soundTimeout),this.soundTimeout=null)},n.prototype.startFlashingTitle=function(){var n=this,e=!1;this.originalTitle||(this.originalTitle=document.title),this.intervalId||(this.intervalId=setInterval((function(){document.title=e?n.alternateTitle:n.originalTitle,e=!e}),1e3))},n.prototype.stopFlashingTitle=function(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null,document.title=this.originalTitle)},n.prototype.revisarAlertasPendientes=function(n,e){var i=this,t=(new u.JwtHelperService).decodeToken(e);this.wmMenuServicioService.menuApiObtener(n,t.id_usuario,e).subscribe((function(n){if(n&&n.length>0){var e=n.map((function(n){return n.IdAlertaPanico}));i.IdsAlertasPanicoActivas.forEach((function(n){e.includes(n)||i.IdsAlertasPanicoActivas.delete(n)}));var t=n.filter((function(n){return!i.IdsAlertasPanicoActivas.has(n.IdAlertaPanico)}));t.forEach((function(n){return i.IdsAlertasPanicoActivas.add(n.IdAlertaPanico)})),i.IdsAlertasPanicoActivas.size>0&&i.startFlashingTitle(),t.length>0&&i.playSound()}else i.IdsAlertasPanicoActivas.clear(),i.stopFlashingTitle();localStorage.setItem("ALERTAS_PANICO_ACTIVAS_WM",JSON.stringify(Array.from(i.IdsAlertasPanicoActivas)))}))},n.ctorParameters=function(){return[{type:g}]},n.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new n(e.ɵɵinject(g))},token:n,providedIn:"root"}),n=f([e.Injectable({providedIn:"root"})],n)}(),b=function(){function n(n,e){this.wmMenuServicioService=n,this.alertaPanicoService=e,this.menuSecundarioSel=new h,this.menuLateralAbierto=!1,this.menuIdioma=[],this.intervaloPeticionesMs=6e4}return n.prototype.ngOnInit=function(){var n=this;if(this.cargarMenuCuenta(),this.alertaPanicoService.iniciarProceso(this.intervaloPeticionesMs,(function(){return n.alertaPanicoService.revisarAlertasPendientes(n.urlObtenerAlertasPanico,n.token)}),this.urlObtenerParametro,this.token,this.rutaAudio),this.urlMenu&&this.token){var e=(new u.JwtHelperService).decodeToken(this.token);this.wmMenuServicioService.menuApiObtener(this.urlMenu,e.id_usuario,this.token).subscribe((function(e){n.menuPrincipal=n.wmMenuServicioService.mapearMenu(e)}))}if(this.urlIdiomas&&this.token){e=(new u.JwtHelperService).decodeToken(this.token);this.wmMenuServicioService.menuIdiomasObtener(this.urlIdiomas,e.id_usuario,this.token).subscribe((function(e){n.menuIdioma=e,n.cargarMenuCuenta()}))}if(this.urlBaseAlmacenamiento&&this.token){e=(new u.JwtHelperService).decodeToken(this.token);this.wmMenuServicioService.almacenamientoApiObtener(this.urlBaseAlmacenamiento,e.id_usuario,this.token).subscribe((function(e){var i=e[0]&&e[0].Utilizado?e[0].Utilizado:0,t=e[0]&&e[0].Total?e[0].Total:0;n.porcentajeUtilizado=Math.round(i/t*100)}))}},n.prototype.clickMenuPrincipal=function(n){this.menuPrincipal[n].hijos&&this.menuPrincipal[n].hijos.length&&(this.menuPrincipalSel==this.menuPrincipal[n]?this.menuPrincipalSel=null:this.menuPrincipalSel=this.menuPrincipal[n])},n.prototype.clickMenuSecundario=function(n){this.menuSecundarioSel=this.menuSecundario[n],this.menuPrincipalSel=null},n.prototype.cargarMenuCuenta=function(){var n;if(this.urlCuentaSeguridad&&this.token){var e=(new u.JwtHelperService).decodeToken(this.token);this.menuSecundario=[{titulo:e.unique_name,icono:"account_circle",hijos:[{titulo:e.unique_name,url:"",icono:"person"},{titulo:this.menuIdioma&&this.menuIdioma.CambiarContrasenna?this.menuIdioma.CambiarContrasenna:"Cambiar contraseña",url:this.urlCuentaSeguridad+"CambioContrasena",icono:"vpn_key"},"1"==this.activar2fa?{titulo:this.menuIdioma&&this.menuIdioma.Configurar2fa?this.menuIdioma.Configurar2fa:"Configurar 2FA",url:this.urlCuentaSeguridad+"Habilitacion2FA",icono:"verified_user"}:null,null!=this.urlguiasOnline&&""!==this.urlguiasOnline&&0!=(null===(n=this.urlguiasOnline)||void 0===n?void 0:n.length)?{titulo:this.menuIdioma&&this.menuIdioma.guiasOnline?this.menuIdioma.guiasOnline:"Guias Online",url:this.urlguiasOnline,icono:"menu_book"}:null,{titulo:this.menuIdioma&&this.menuIdioma.CerrarSesion?this.menuIdioma.CerrarSesion:"Cerrar sesión",url:this.urlCuentaSeguridad+"CerrarSesion",icono:"exit_to_app"}].filter((function(n){return null!=n}))}]}},n.ctorParameters=function(){return[{type:g},{type:v}]},f([e.Input()],n.prototype,"logo",void 0),f([e.Input()],n.prototype,"colorFondo",void 0),f([e.Input()],n.prototype,"colorTexto",void 0),f([e.Input()],n.prototype,"menuPrincipal",void 0),f([e.Input()],n.prototype,"menuSecundario",void 0),f([e.Input()],n.prototype,"urlMenu",void 0),f([e.Input()],n.prototype,"token",void 0),f([e.Input()],n.prototype,"urlCuentaSeguridad",void 0),f([e.Input()],n.prototype,"activar2fa",void 0),f([e.Input()],n.prototype,"urlguiasOnline",void 0),f([e.Input()],n.prototype,"urlObtenerAlertasPanico",void 0),f([e.Input()],n.prototype,"urlObtenerParametro",void 0),f([e.Input()],n.prototype,"rutaAudio",void 0),f([e.Input()],n.prototype,"nombreCliente",void 0),f([e.Input()],n.prototype,"nombreUsuario",void 0),f([e.Input()],n.prototype,"versionWeb",void 0),f([e.Input()],n.prototype,"urlBaseAlmacenamiento",void 0),f([e.Input()],n.prototype,"urlIdiomas",void 0),n=f([e.Component({selector:"wm-menu",template:'<div class="menu" [ngStyle]="{\'background-color\': colorFondo, \'color\': colorTexto}">\r\n <div class="d-lg-none">\r\n <button mat-icon-button (click)="menuLateralAbierto=!menuLateralAbierto; menuPrincipalSel = null">\r\n <mat-icon *ngIf="!menuLateralAbierto" class="animate__animated animate__fadeInRight animate__faster">menu\r\n </mat-icon>\r\n <mat-icon *ngIf="menuLateralAbierto" class="animate__animated animate__fadeInLeft animate__faster">close\r\n </mat-icon>\r\n </button>\r\n </div>\r\n <div class="d-lg-none logo-menu-principal">\r\n <img class="logo" src="{{logo}}">\r\n </div>\r\n <div class="d-none d-lg-block">\r\n <img class="logo" src="{{logo}}">\r\n <div *ngFor="let menuItem of menuPrincipal; let i=index" class="d-inline-block">\r\n\r\n <a *ngIf="menuItem.url" mat-button [href]="menuItem.url" (click)="clickMenuPrincipal(i)">\r\n {{menuItem.titulo}}\r\n </a>\r\n <button *ngIf="!menuItem.url" mat-button (click)="clickMenuPrincipal(i)">\r\n {{menuItem.titulo}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class="info-adicional">\r\n <div class="datos border-r mt-1" *ngIf="nombreCliente">{{nombreCliente}}<mat-icon>people</mat-icon></div>\r\n <div class="datos border-r mt-1" *ngIf="nombreUsuario">{{nombreUsuario}}<mat-icon>person_outline</mat-icon></div>\r\n <div class="version" *ngIf="versionWeb">{{versionWeb}}</div>\r\n <div class="content-idioma" *ngIf="urlIdiomas">\r\n <mat-menu #menuIdiomas="matMenu">\r\n <a mat-menu-item *ngFor="let menuItem of menuIdioma.Culturas" href="{{urlCuentaSeguridad}}CambiarIdioma?culture={{menuItem.Name}}&ReturnUrl=/">\r\n {{menuItem.NativeName}}\r\n </a>\r\n </mat-menu>\r\n <button mat-button [matMenuTriggerFor]="menuIdiomas"><label class="mt-1">{{menuIdioma.Lenguaje}}</label><mat-icon class="icon-idioma">language</mat-icon></button>\r\n </div>\r\n\r\n </div>\r\n <div>\r\n <mat-menu #submenu="matMenu">\r\n <a mat-menu-item *ngFor="let menuItem of menuSecundarioSel.hijos" href="{{menuItem.url}}"\r\n [disabled]="!menuItem.url">\r\n <mat-icon *ngIf="menuItem.icono">{{menuItem.icono}}</mat-icon>\r\n {{menuItem.titulo}}\r\n </a>\r\n </mat-menu>\r\n <button *ngFor="let menuItem of menuSecundario; let i = index" mat-icon-button [matMenuTriggerFor]="submenu"\r\n (click)="clickMenuSecundario(i)">\r\n <mat-icon>{{menuItem.icono}}</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class="menu-lateral d-lg-none animate__animated animate__fadeInRight animate__faster" *ngIf="menuLateralAbierto">\r\n <div class="row">\r\n <div *ngFor="let menuItem of menuPrincipal; let i=index" class="col-sm-6 col-md-4">\r\n <a *ngIf="menuItem.url" [href]="menuItem.url" (click)="clickMenuPrincipal(i)">\r\n <div>\r\n <mat-icon svgIcon="{{menuItem.icono}}">{{menuItem.icono}}</mat-icon>\r\n <p>{{menuItem.titulo}}</p>\r\n </div>\r\n </a>\r\n <span *ngIf="!menuItem.url" (click)="clickMenuPrincipal(i)">\r\n <div>\r\n <mat-icon svgIcon="{{menuItem.icono}}">{{menuItem.icono}}</mat-icon>\r\n <p>{{menuItem.titulo}}</p>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class="sub-menu-fondo animate__animated animate__fadeIn animate__faster" (click)="menuPrincipalSel=null"\r\n *ngIf="menuPrincipalSel"></div>\r\n\r\n<div class="sub-menu animate__animated animate__fadeIn animate__faster" *ngIf="menuPrincipalSel">\r\n <div class="container-fluid">\r\n <div class="row">\r\n <div class="col-12 col-lg-5">\r\n <div class="px-3 px-sm-5 pt-5 pb-lg-5 text-center descripcion-menu">\r\n <mat-icon [ngStyle]="{\'color\': colorFondo}" svgIcon="{{menuPrincipalSel.icono}}">\r\n {{menuPrincipalSel.icono}}</mat-icon>\r\n <p>{{menuPrincipalSel.titulo}}</p>\r\n <p class="text-secondary">{{menuPrincipalSel.descripcion}}</p>\r\n </div>\r\n </div>\r\n <div class="col-12 col-lg-7 my-4">\r\n <div class="px-3 px-md-4 py-2 py-md-2">\r\n <ul class="list-unstyled">\r\n\r\n <li class="mb-3 d-flex" *ngFor="let menuItem of menuPrincipalSel.hijos">\r\n <mat-icon>{{menuItem.icono}}</mat-icon>\r\n <div class="ml-2 flex-fill">\r\n <a href="{{menuItem.url}}" *ngIf="menuItem.url">\r\n <div class="lead mb-2">{{menuItem.titulo}}</div>\r\n </a>\r\n <div class="lead mb-2" *ngIf="!menuItem.url">{{menuItem.titulo}}</div>\r\n\r\n <a href="{{menuSubItem.url}}" class="pl-2 my-2" *ngFor="let menuSubItem of menuItem.hijos">\r\n <div class="text-secondary">{{menuSubItem.titulo}}</div>\r\n </a>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button mat-icon-button class="close-icon d-lg-none" (click)="menuPrincipalSel=null">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n</div>\r\n<div class="alerta-almacenamiento" *ngIf="porcentajeUtilizado >= 100">Su capacidad de almacenamiento ha llegado al {{porcentajeUtilizado}}% , libere espacio o adquiera mayor capacidad</div>',styles:[".menu{height:46px;display:flex;justify-content:space-between;align-items:center;top:0;left:0;right:0;background-color:#1c98a4;color:#fff;padding:0 4px}.menu .d-lg-block .mat-button{font-weight:400;height:46px;line-height:46px}.menu .logo{display:inline-block;height:40px}.menu .logo-menu-principal{position:absolute;display:block;left:65px}.menu .logo-menu-principal>img{display:block;margin:0 -50%}.menu .info-adicional{color:#fff;display:flex;justify-content:end;font-size:13px;position:absolute;right:47px}.menu .info-adicional .border-r{border-right:1px solid #fff}.menu .info-adicional .version{margin:7px 0 0 7px}.menu .info-adicional div.datos{margin:0 2px 0 5px;height:28px}.menu .info-adicional .mat-icon{vertical-align:middle;font-size:17px;color:#fff;line-height:21px;margin-left:2px}.menu .info-adicional button{padding:0 0 0 15px}.menu .info-adicional .content-idioma{margin:-5px 2px 0 5px;display:block;cursor:pointer}.menu .info-adicional .icon-idioma{font-size:17px!important;vertical-align:text-top!important;color:#fffc}.sub-menu{width:100%;position:absolute;top:46px;z-index:1000;background-color:#fff;display:flex;overflow-y:auto;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.sub-menu .close-icon{position:absolute;left:4px;top:4px}.sub-menu .descripcion-menu .mat-icon{color:#1c98a4;width:100px;height:100px}.sub-menu .descripcion-menu p:first-of-type{font-weight:300;font-size:30px;margin:16px 0}.sub-menu .descripcion-menu p:last-of-type{color:#6c757d}.sub-menu li{float:left;width:50%}.sub-menu li>.mat-icon{color:#444}.sub-menu li:nth-child(even){float:right}.sub-menu li a{transition:.5s;display:block}.sub-menu li a:hover{margin-left:8px}.sub-menu li .lead{line-height:24px;color:#212529;font-size:17px}.sub-menu-fondo{background:#272d3357;position:absolute;top:46px;bottom:0;left:0;right:0;z-index:1000}.menu-lateral{width:100%;position:absolute;top:46px;bottom:0;left:0;right:0;z-index:1000;display:flex;flex-direction:column;overflow-y:auto;background:#f7f7f7;padding:20px}.menu-lateral>div>div>*>div{text-align:center;padding:16px;background-color:#fff;margin:0 0 16px;color:#333;cursor:pointer;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.menu-lateral>div>div>*>div>.mat-icon{width:50px;height:50px}.menu-lateral>div>div>*>div>p{padding:0;margin:8px 0 0}a.mat-menu-item{color:#444!important}.alerta-almacenamiento{background:#ffffec;border-bottom:1px solid #efff00;min-height:39px;line-height:36px;font-size:12px;padding:0 0 0 25px}@media (max-width:767.98px){.sub-menu ul{margin:auto;padding:0 10px}.sub-menu ul li{float:none;width:100%}.sub-menu ul li:nth-child(even){float:none}}@media (max-width:991.98px){.sub-menu{bottom:0}}@media (min-width:600px){.logo-menu-principal{left:50%!important}}* :focus,:active{outline:0!important}"]})],n)}(),I=function(){function n(){}return n=f([e.NgModule({declarations:[b],imports:[r.BrowserModule,l.MatToolbarModule,c.MatSidenavModule,s.MatListModule,m.MatButtonModule,a.MatIconModule,d.MatMenuModule,p.MatRippleModule,i.HttpClientModule,u.JwtModule],exports:[b]})],n)}();n.WmMenuAlertaPanicoService=v,n.WmMenuComponent=b,n.WmMenuModule=I,n.WmMenuServicioService=g,Object.defineProperty(n,"__esModule",{value:!0})}));
15
+ ***************************************************************************** */function b(e,n,t,i){var o,a=arguments.length,r=a<3?n:null===i?i=Object.getOwnPropertyDescriptor(n,t):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,n,t,i);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(r=(a<3?o(r):a>3?o(n,t,r):o(n,t))||r);return a>3&&r&&Object.defineProperty(n,t,r),r}var v=function(){this.hijos=[]},x=function(){function e(e,n,t){this.http=e,this.iconRegistry=n,this.sanitizer=t}return e.prototype.menuApiObtener=function(e,n,a,r){void 0===r&&(r="");var s=new t.HttpHeaders({Authorization:"Bearer "+a}),c=new t.HttpParams;return r.length>0&&(c=c.append("codLogica",r)),c=(c=c.append("ctrlActivo","true")).append("conPadres","true"),null!=n&&(c=c.append("idUsuario",n.toString())),this.http.get(e,{headers:s,params:c}).pipe(i.map((function(e){return e})),i.catchError((function(e){return o.throwError(e.error)})))},e.prototype.mapearMenu=function(e){for(var n in e=e.sort((function(e,n){return e.Posicion>n.Posicion?"1":"-1"}))){var t=e[n];if(t.Icono.startsWith("http")){var i="wm-icon-menu-"+n;this.iconRegistry.addSvgIcon(i,this.sanitizer.bypassSecurityTrustResourceUrl(t.Icono)),e[n].Icono=i}}return this.obtenerMenu(e)},e.prototype.obtenerMenu=function(e,n){var t=[];for(var i in e)(e[i].IdMenuPadre==n||!n&&null==e[i].IdMenuPadre)&&t.push({titulo:e[i].IdiomaRecurso,url:e[i].Url,icono:e[i].Icono,descripcion:e[i].Descripcion,hijos:this.obtenerMenu(e,e[i].IdMenu)});return t},e.prototype.menuIdiomasObtener=function(e,n,a){new t.HttpHeaders({Authorization:"Bearer "+a});return this.http.get(e).pipe(i.map((function(e){return e})),i.catchError((function(e){return o.throwError(e.error)})))},e.prototype.almacenamientoApiObtener=function(e,n,a){var r=new t.HttpHeaders({Authorization:"Bearer "+a}),s=new t.HttpParams;return null!=n&&(s=s.append("idUsuario",n.toString())),this.http.get(e,{headers:r,params:s}).pipe(i.map((function(e){return e})),i.catchError((function(e){return o.throwError(e.error)})))},e.prototype.funcionesObtener=function(e,n){var a=new t.HttpHeaders({Authorization:"Bearer "+n});return this.http.get(e,{headers:a}).pipe(i.map((function(e){return e})),i.catchError((function(e){return o.throwError(e.error)})))},e.ctorParameters=function(){return[{type:t.HttpClient},{type:r.MatIconRegistry},{type:a.DomSanitizer}]},e.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(t.HttpClient),n.ɵɵinject(r.MatIconRegistry),n.ɵɵinject(a.DomSanitizer))},token:e,providedIn:"root"}),e=b([n.Injectable({providedIn:"root"})],e)}(),I=function(){function e(e){this.wmMenuServicioService=e,this.alternateTitle="Alerta de Pánico Recibida",this.audio=null,this.isPlaying=!1,this.IdsAlertasPanicoActivas=new Set,this.soundTimeout=null,this.isRunning=!1}return e.prototype.iniciarProceso=function(e,n,t,i,o){var a=this;this.rutaAudio=o;["drag","click"].forEach((function(o){document.addEventListener(o,(function(){a.wmMenuServicioService.menuApiObtener(t,null,i,"ReporteAlertasPanico").subscribe((function(t){if(t&&t.length>0&&1==t[0].Valor){if(a.isRunning)return;var i=localStorage.getItem("ALERTAS_PANICO_ACTIVAS_WM");a.IdsAlertasPanicoActivas=i?new Set(JSON.parse(i)):new Set;var o=function(){a.isRunning=!0,n(),setTimeout((function(){a.isRunning=!1,o()}),e)};o()}}))}),{once:!0})}))},e.prototype.stopProcess=function(){this.isRunning=!1,this.subscription&&this.subscription.unsubscribe()},e.prototype.ngOnDestroy=function(){this.stopSound(),this.stopFlashingTitle()},e.prototype.playSound=function(){var e=this;this.isPlaying||(this.isPlaying=!0,this.audio||(this.audio=new Audio(this.rutaAudio)),this.audio.loop=!0,this.audio.play().then((function(){e.soundTimeout=setTimeout((function(){e.stopSound()}),1e4)})).catch((function(e){console.log("Error al reproducir el sonido:",e)})))},e.prototype.stopSound=function(){this.audio&&(this.audio.pause(),this.audio.currentTime=0),this.isPlaying=!1,this.soundTimeout&&(clearTimeout(this.soundTimeout),this.soundTimeout=null)},e.prototype.startFlashingTitle=function(){var e=this,n=!1;this.originalTitle||(this.originalTitle=document.title),this.intervalId||(this.intervalId=setInterval((function(){document.title=n?e.alternateTitle:e.originalTitle,n=!n}),1e3))},e.prototype.stopFlashingTitle=function(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null,document.title=this.originalTitle)},e.prototype.revisarAlertasPendientes=function(e,n){var t=this,i=(new s.JwtHelperService).decodeToken(n);this.wmMenuServicioService.menuApiObtener(e,i.id_usuario,n).subscribe((function(e){if(e&&e.length>0){var n=e.map((function(e){return e.IdAlertaPanico}));t.IdsAlertasPanicoActivas.forEach((function(e){n.includes(e)||t.IdsAlertasPanicoActivas.delete(e)}));var i=e.filter((function(e){return!t.IdsAlertasPanicoActivas.has(e.IdAlertaPanico)}));i.forEach((function(e){return t.IdsAlertasPanicoActivas.add(e.IdAlertaPanico)})),t.IdsAlertasPanicoActivas.size>0&&t.startFlashingTitle(),i.length>0&&t.playSound()}else t.IdsAlertasPanicoActivas.clear(),t.stopFlashingTitle();localStorage.setItem("ALERTAS_PANICO_ACTIVAS_WM",JSON.stringify(Array.from(t.IdsAlertasPanicoActivas)))}))},e.ctorParameters=function(){return[{type:x}]},e.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(x))},token:e,providedIn:"root"}),e=b([n.Injectable({providedIn:"root"})],e)}(),y=function(){function e(e,n){this.wmMenuServicioService=e,this.alertaPanicoService=n,this.mostrarAsistente=!1,this.idiomaAsistente="es-CO",this.asistenteAbierto=!1,this.funcionesUsuario=[],this.menuSecundarioSel=new v,this.menuLateralAbierto=!1,this.menuIdioma=[],this.intervaloPeticionesMs=6e4}return Object.defineProperty(e.prototype,"puedeAsistente",{get:function(){var e=!0===this.mostrarAsistente||"true"===this.mostrarAsistente||"1"===this.mostrarAsistente,n=this.funcionesUsuario.some((function(e){return"WebChatConsultaIA"===e.CodigoLogica}));return e||n},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;if(this.cargarMenuCuenta(),this.alertaPanicoService.iniciarProceso(this.intervaloPeticionesMs,(function(){return e.alertaPanicoService.revisarAlertasPendientes(e.urlObtenerAlertasPanico,e.token)}),this.urlObtenerParametro,this.token,this.rutaAudio),this.urlObtenerFunciones&&this.token&&this.wmMenuServicioService.funcionesObtener(this.urlObtenerFunciones,this.token).subscribe((function(n){e.funcionesUsuario=null!=n?n:[]}),(function(){e.funcionesUsuario=[]})),this.urlMenu&&this.token){var n=(new s.JwtHelperService).decodeToken(this.token);this.wmMenuServicioService.menuApiObtener(this.urlMenu,n.id_usuario,this.token).subscribe((function(n){e.menuPrincipal=e.wmMenuServicioService.mapearMenu(n)}))}if(this.urlIdiomas&&this.token){n=(new s.JwtHelperService).decodeToken(this.token);this.wmMenuServicioService.menuIdiomasObtener(this.urlIdiomas,n.id_usuario,this.token).subscribe((function(n){e.menuIdioma=n,e.cargarMenuCuenta()}))}if(this.urlBaseAlmacenamiento&&this.token){n=(new s.JwtHelperService).decodeToken(this.token);this.wmMenuServicioService.almacenamientoApiObtener(this.urlBaseAlmacenamiento,n.id_usuario,this.token).subscribe((function(n){var t=n[0]&&n[0].Utilizado?n[0].Utilizado:0,i=n[0]&&n[0].Total?n[0].Total:0;e.porcentajeUtilizado=Math.round(t/i*100)}))}},e.prototype.clickMenuPrincipal=function(e){this.menuPrincipal[e].hijos&&this.menuPrincipal[e].hijos.length&&(this.menuPrincipalSel==this.menuPrincipal[e]?this.menuPrincipalSel=null:this.menuPrincipalSel=this.menuPrincipal[e])},e.prototype.clickMenuSecundario=function(e){this.menuSecundarioSel=this.menuSecundario[e],this.menuPrincipalSel=null},e.prototype.cargarMenuCuenta=function(){var e;if(this.urlCuentaSeguridad&&this.token){var n=(new s.JwtHelperService).decodeToken(this.token);this.menuSecundario=[{titulo:n.unique_name,icono:"account_circle",hijos:[{titulo:n.unique_name,url:"",icono:"person"},{titulo:this.menuIdioma&&this.menuIdioma.CambiarContrasenna?this.menuIdioma.CambiarContrasenna:"Cambiar contraseña",url:this.urlCuentaSeguridad+"CambioContrasena",icono:"vpn_key"},"1"==this.activar2fa?{titulo:this.menuIdioma&&this.menuIdioma.Configurar2fa?this.menuIdioma.Configurar2fa:"Configurar 2FA",url:this.urlCuentaSeguridad+"Habilitacion2FA",icono:"verified_user"}:null,null!=this.urlguiasOnline&&""!==this.urlguiasOnline&&0!=(null===(e=this.urlguiasOnline)||void 0===e?void 0:e.length)?{titulo:this.menuIdioma&&this.menuIdioma.guiasOnline?this.menuIdioma.guiasOnline:"Guias Online",url:this.urlguiasOnline,icono:"menu_book"}:null,{titulo:this.menuIdioma&&this.menuIdioma.CerrarSesion?this.menuIdioma.CerrarSesion:"Cerrar sesión",url:this.urlCuentaSeguridad+"CerrarSesion",icono:"exit_to_app"}].filter((function(e){return null!=e}))}]}},e.ctorParameters=function(){return[{type:x},{type:I}]},b([n.Input()],e.prototype,"logo",void 0),b([n.Input()],e.prototype,"colorFondo",void 0),b([n.Input()],e.prototype,"colorTexto",void 0),b([n.Input()],e.prototype,"menuPrincipal",void 0),b([n.Input()],e.prototype,"menuSecundario",void 0),b([n.Input()],e.prototype,"urlMenu",void 0),b([n.Input()],e.prototype,"token",void 0),b([n.Input()],e.prototype,"urlCuentaSeguridad",void 0),b([n.Input()],e.prototype,"activar2fa",void 0),b([n.Input()],e.prototype,"urlguiasOnline",void 0),b([n.Input()],e.prototype,"urlObtenerAlertasPanico",void 0),b([n.Input()],e.prototype,"urlObtenerParametro",void 0),b([n.Input()],e.prototype,"rutaAudio",void 0),b([n.Input()],e.prototype,"nombreCliente",void 0),b([n.Input()],e.prototype,"nombreUsuario",void 0),b([n.Input()],e.prototype,"versionWeb",void 0),b([n.Input()],e.prototype,"urlBaseAlmacenamiento",void 0),b([n.Input()],e.prototype,"urlIdiomas",void 0),b([n.Input()],e.prototype,"urlObtenerFunciones",void 0),b([n.Input()],e.prototype,"mostrarAsistente",void 0),b([n.Input()],e.prototype,"urlAsistenteConsultar",void 0),b([n.Input()],e.prototype,"idiomaAsistente",void 0),e=b([n.Component({selector:"wm-menu",template:'<div class="menu" [ngStyle]="{\'background-color\': colorFondo, \'color\': colorTexto}">\r\n <div class="d-lg-none">\r\n <button mat-icon-button (click)="menuLateralAbierto=!menuLateralAbierto; menuPrincipalSel = null">\r\n <mat-icon *ngIf="!menuLateralAbierto" class="animate__animated animate__fadeInRight animate__faster">menu\r\n </mat-icon>\r\n <mat-icon *ngIf="menuLateralAbierto" class="animate__animated animate__fadeInLeft animate__faster">close\r\n </mat-icon>\r\n </button>\r\n </div>\r\n <div class="d-lg-none logo-menu-principal">\r\n <img class="logo" src="{{logo}}">\r\n </div>\r\n <div class="d-none d-lg-block">\r\n <img class="logo" src="{{logo}}">\r\n <div *ngFor="let menuItem of menuPrincipal; let i=index" class="d-inline-block">\r\n\r\n <a *ngIf="menuItem.url" mat-button [href]="menuItem.url" (click)="clickMenuPrincipal(i)">\r\n {{menuItem.titulo}}\r\n </a>\r\n <button *ngIf="!menuItem.url" mat-button (click)="clickMenuPrincipal(i)">\r\n {{menuItem.titulo}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class="info-adicional">\r\n <div class="datos border-r mt-1 boton-asistente-datos" *ngIf="puedeAsistente" matTooltip="Pregúntale a tus datos" (click)="asistenteAbierto = !asistenteAbierto">\r\n <span class="icono-asistente-fab"></span>\r\n </div>\r\n <div class="datos border-r mt-1" *ngIf="nombreCliente">{{nombreCliente}}<mat-icon>people</mat-icon></div>\r\n <div class="datos border-r mt-1" *ngIf="nombreUsuario">{{nombreUsuario}}<mat-icon>person_outline</mat-icon></div>\r\n <div class="version" *ngIf="versionWeb">{{versionWeb}}</div>\r\n <div class="content-idioma" *ngIf="urlIdiomas">\r\n <mat-menu #menuIdiomas="matMenu">\r\n <a mat-menu-item *ngFor="let menuItem of menuIdioma.Culturas" href="{{urlCuentaSeguridad}}CambiarIdioma?culture={{menuItem.Name}}&ReturnUrl=/">\r\n {{menuItem.NativeName}}\r\n </a>\r\n </mat-menu>\r\n <button mat-button [matMenuTriggerFor]="menuIdiomas"><label class="mt-1">{{menuIdioma.Lenguaje}}</label><mat-icon class="icon-idioma">language</mat-icon></button>\r\n </div>\r\n\r\n </div>\r\n <div>\r\n <mat-menu #submenu="matMenu">\r\n <a mat-menu-item *ngFor="let menuItem of menuSecundarioSel.hijos" href="{{menuItem.url}}"\r\n [disabled]="!menuItem.url">\r\n <mat-icon *ngIf="menuItem.icono">{{menuItem.icono}}</mat-icon>\r\n {{menuItem.titulo}}\r\n </a>\r\n </mat-menu>\r\n <button *ngFor="let menuItem of menuSecundario; let i = index" mat-icon-button [matMenuTriggerFor]="submenu"\r\n (click)="clickMenuSecundario(i)">\r\n <mat-icon>{{menuItem.icono}}</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class="menu-lateral d-lg-none animate__animated animate__fadeInRight animate__faster" *ngIf="menuLateralAbierto">\r\n <div class="row">\r\n <div *ngFor="let menuItem of menuPrincipal; let i=index" class="col-sm-6 col-md-4">\r\n <a *ngIf="menuItem.url" [href]="menuItem.url" (click)="clickMenuPrincipal(i)">\r\n <div>\r\n <mat-icon svgIcon="{{menuItem.icono}}">{{menuItem.icono}}</mat-icon>\r\n <p>{{menuItem.titulo}}</p>\r\n </div>\r\n </a>\r\n <span *ngIf="!menuItem.url" (click)="clickMenuPrincipal(i)">\r\n <div>\r\n <mat-icon svgIcon="{{menuItem.icono}}">{{menuItem.icono}}</mat-icon>\r\n <p>{{menuItem.titulo}}</p>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class="sub-menu-fondo animate__animated animate__fadeIn animate__faster" (click)="menuPrincipalSel=null"\r\n *ngIf="menuPrincipalSel"></div>\r\n\r\n<div class="sub-menu animate__animated animate__fadeIn animate__faster" *ngIf="menuPrincipalSel">\r\n <div class="container-fluid">\r\n <div class="row">\r\n <div class="col-12 col-lg-5">\r\n <div class="px-3 px-sm-5 pt-5 pb-lg-5 text-center descripcion-menu">\r\n <mat-icon [ngStyle]="{\'color\': colorFondo}" svgIcon="{{menuPrincipalSel.icono}}">\r\n {{menuPrincipalSel.icono}}</mat-icon>\r\n <p>{{menuPrincipalSel.titulo}}</p>\r\n <p class="text-secondary">{{menuPrincipalSel.descripcion}}</p>\r\n </div>\r\n </div>\r\n <div class="col-12 col-lg-7 my-4">\r\n <div class="px-3 px-md-4 py-2 py-md-2">\r\n <ul class="list-unstyled">\r\n\r\n <li class="mb-3 d-flex" *ngFor="let menuItem of menuPrincipalSel.hijos">\r\n <mat-icon>{{menuItem.icono}}</mat-icon>\r\n <div class="ml-2 flex-fill">\r\n <a href="{{menuItem.url}}" *ngIf="menuItem.url">\r\n <div class="lead mb-2">{{menuItem.titulo}}</div>\r\n </a>\r\n <div class="lead mb-2" *ngIf="!menuItem.url">{{menuItem.titulo}}</div>\r\n\r\n <a href="{{menuSubItem.url}}" class="pl-2 my-2" *ngFor="let menuSubItem of menuItem.hijos">\r\n <div class="text-secondary">{{menuSubItem.titulo}}</div>\r\n </a>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button mat-icon-button class="close-icon d-lg-none" (click)="menuPrincipalSel=null">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n</div>\r\n<div class="alerta-almacenamiento" *ngIf="porcentajeUtilizado >= 100">Su capacidad de almacenamiento ha llegado al {{porcentajeUtilizado}}% , libere espacio o adquiera mayor capacidad</div>\r\n\r\n\x3c!-- Asistente "Pregúntale a tus datos": panel flotante que se abre desde el botón del menú. --\x3e\r\n<wm-asistente-datos *ngIf="puedeAsistente" [abierto]="asistenteAbierto" [urlConsultar]="urlAsistenteConsultar"\r\n [idioma]="idiomaAsistente" (cerrarChange)="asistenteAbierto = false"></wm-asistente-datos>',styles:[".menu{height:46px;display:flex;justify-content:space-between;align-items:center;top:0;left:0;right:0;background-color:#1c98a4;color:#fff;padding:0 4px}.menu .d-lg-block .mat-button{font-weight:400;height:46px;line-height:46px}.menu .logo{display:inline-block;height:40px}.menu .logo-menu-principal{position:absolute;display:block;left:65px}.menu .logo-menu-principal>img{display:block;margin:0 -50%}.menu .info-adicional{color:#fff;display:flex;justify-content:end;font-size:13px;position:absolute;right:47px}.menu .info-adicional .border-r{border-right:1px solid #fff}.menu .info-adicional .version{margin:7px 0 0 7px}.menu .info-adicional div.datos{margin:0 2px 0 5px;height:28px}.menu .info-adicional .boton-asistente-datos{cursor:pointer;padding-right:10px}.menu .info-adicional .mat-icon{vertical-align:middle;font-size:17px;color:#fff;line-height:21px;margin-left:2px}.menu .info-adicional button{padding:0 0 0 15px}.menu .info-adicional .content-idioma{margin:-5px 2px 0 5px;display:block;cursor:pointer}.menu .info-adicional .icon-idioma{font-size:17px!important;vertical-align:text-top!important;color:#fffc}.sub-menu{width:100%;position:absolute;top:46px;z-index:1000;background-color:#fff;display:flex;overflow-y:auto;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.sub-menu .close-icon{position:absolute;left:4px;top:4px}.sub-menu .descripcion-menu .mat-icon{color:#1c98a4;width:100px;height:100px}.sub-menu .descripcion-menu p:first-of-type{font-weight:300;font-size:30px;margin:16px 0}.sub-menu .descripcion-menu p:last-of-type{color:#6c757d}.sub-menu li{float:left;width:50%}.sub-menu li>.mat-icon{color:#444}.sub-menu li:nth-child(even){float:right}.sub-menu li a{transition:.5s;display:block}.sub-menu li a:hover{margin-left:8px}.sub-menu li .lead{line-height:24px;color:#212529;font-size:17px}.sub-menu-fondo{background:#272d3357;position:absolute;top:46px;bottom:0;left:0;right:0;z-index:1000}.menu-lateral{width:100%;position:absolute;top:46px;bottom:0;left:0;right:0;z-index:1000;display:flex;flex-direction:column;overflow-y:auto;background:#f7f7f7;padding:20px}.menu-lateral>div>div>*>div{text-align:center;padding:16px;background-color:#fff;margin:0 0 16px;color:#333;cursor:pointer;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.menu-lateral>div>div>*>div>.mat-icon{width:50px;height:50px}.menu-lateral>div>div>*>div>p{padding:0;margin:8px 0 0}a.mat-menu-item{color:#444!important}.alerta-almacenamiento{background:#ffffec;border-bottom:1px solid #efff00;min-height:39px;line-height:36px;font-size:12px;padding:0 0 0 25px}@media (max-width:767.98px){.sub-menu ul{margin:auto;padding:0 10px}.sub-menu ul li{float:none;width:100%}.sub-menu ul li:nth-child(even){float:none}}@media (max-width:991.98px){.sub-menu{bottom:0}}@media (min-width:600px){.logo-menu-principal{left:50%!important}}* :focus,:active{outline:0!important}.icono-asistente-fab{display:inline-block;width:32px;height:32px;vertical-align:middle;background:url(data:image/png;base64,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) center/contain no-repeat}"]})],e)}(),w=function(){function e(){this.reconocimiento=null}return e.prototype.estaSoportado=function(){return!!this.obtenerConstructor()},e.prototype.iniciar=function(e,n,t){var i=this,o=this.obtenerConstructor();if(o){this.detener(),this.reconocimiento=new o,this.reconocimiento.lang=e,this.reconocimiento.continuous=!1,this.reconocimiento.interimResults=!0,this.reconocimiento.onresult=function(e){var t=Array.from(e.results).map((function(e){return e[0].transcript})).join(" ");n(t)},this.reconocimiento.onerror=function(e){var n;console.error("Reconocimiento de voz: error -",null===(n=e)||void 0===n?void 0:n.error),i.reconocimiento=null,t()},this.reconocimiento.onend=function(){i.reconocimiento=null,t()};try{this.reconocimiento.start()}catch(e){console.error("Reconocimiento de voz: no se pudo iniciar -",e),this.reconocimiento=null,t()}}else t()},e.prototype.detener=function(){this.reconocimiento&&(this.reconocimiento.onend=null,this.reconocimiento.onerror=null,this.reconocimiento.stop(),this.reconocimiento=null)},e.prototype.obtenerConstructor=function(){return window.SpeechRecognition||window.webkitSpeechRecognition||null},e.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=b([n.Injectable({providedIn:"root"})],e)}(),A=function(){function e(e){this.http=e,this.url="",this.TOKEN_KEY="WMTKN",this.jwtHelper=new s.JwtHelperService}return e.prototype.consultar=function(e,n){var a=new t.HttpHeaders({Authorization:"Bearer "+this.obtenerJWT(),"Content-Type":"application/json; charset=utf-8"});return this.http.post(this.url,{Pregunta:e,Proveedor:n},{headers:a}).pipe(i.catchError((function(e){return o.throwError(e.error)})))},e.prototype.obtenerJWT=function(){var e=localStorage.getItem(this.TOKEN_KEY);if(e)try{return this.jwtHelper.isTokenExpired(e)?null:e}catch(e){}return null},e.ctorParameters=function(){return[{type:t.HttpClient}]},e.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(t.HttpClient))},token:e,providedIn:"root"}),e=b([n.Injectable({providedIn:"root"})],e)}(),k=function(){function e(e,t){this.asistenteDatosApiService=e,this.reconocimientoVoz=t,this.abierto=!1,this.idioma="es-CO",this.cerrarChange=new n.EventEmitter,this.mensajes=[],this.borrador="",this.borradorExpandido=!1,this.consultando=!1,this.proveedorSeleccionado="Gemini",this.escuchando=!1,this.chipsSugeridos=["¿Cuántos formularios se diligenciaron hoy?","¿Cuántos formularios se diligenciaron esta semana?","Muéstrame los últimos 10 formularios diligenciados"]}return Object.defineProperty(e.prototype,"urlConsultar",{set:function(e){e&&(this.asistenteDatosApiService.url=e)},enumerable:!0,configurable:!0}),e.prototype.cerrar=function(){this.cerrarChange.emit()},Object.defineProperty(e.prototype,"filasBorrador",{get:function(){return this.borradorExpandido?6:1},enumerable:!0,configurable:!0}),e.prototype.onClickExpandirBorrador=function(){this.borradorExpandido=!this.borradorExpandido},Object.defineProperty(e.prototype,"micDisponible",{get:function(){return this.reconocimientoVoz.estaSoportado()},enumerable:!0,configurable:!0}),e.prototype.onClickMicrofono=function(){var e=this;if(this.escuchando)return this.reconocimientoVoz.detener(),void(this.escuchando=!1);if(this.reconocimientoVoz.estaSoportado()){var n=this.borrador.trim();this.escuchando=!0,this.reconocimientoVoz.iniciar(this.idioma,(function(t){return e.borrador=n?n+" "+t:t}),(function(){return e.escuchando=!1}))}},e.prototype.onClickEnviar=function(e){var n=this,t=(null!=e?e:this.borrador).trim();if(t&&!this.consultando){if(this.mensajes.push({deUsuario:!0,texto:t}),this.borrador="",!this.asistenteDatosApiService.url)return this.mensajes.push({deUsuario:!1,texto:"No se pudo procesar la consulta.",esError:!0}),void this.scrollAlFinal();this.consultando=!0,this.scrollAlFinal(),this.asistenteDatosApiService.consultar(t,this.proveedorSeleccionado).subscribe({next:function(e){var t;n.consultando=!1,n.mensajes.push({deUsuario:!1,descripcion:e.Descripcion,resultado:(t=e.Resultado,null!=t?t:[]),proveedor:e.Proveedor}),n.scrollAlFinal()},error:function(e){var t;n.consultando=!1,n.mensajes.push({deUsuario:!1,texto:(null===(t=e)||void 0===t?void 0:t.Mensaje)||"No se pudo procesar la consulta.",esError:!0}),n.scrollAlFinal()}})}},e.prototype.scrollAlFinal=function(){var e=this;setTimeout((function(){var n,t=null===(n=e.mensajesContainer)||void 0===n?void 0:n.nativeElement;t&&(t.scrollTop=t.scrollHeight)}))},e.prototype.columnasDe=function(e){return e.length?Object.keys(e[0]):[]},e.prototype.esConteo=function(e){var n;return 1===(null===(n=e)||void 0===n?void 0:n.length)&&1===Object.keys(e[0]).length&&"Resultado"in e[0]},e.prototype.esListaSimple=function(e){var n;return(null===(n=e)||void 0===n?void 0:n.length)>0&&!this.esConteo(e)&&1===this.columnasDe(e).length},e.prototype.textoListaSimple=function(e){var n=this.columnasDe(e)[0];return e.map((function(e){return e[n]})).join(", ")},e.ctorParameters=function(){return[{type:A},{type:w}]},b([n.ViewChild("mensajesContainer")],e.prototype,"mensajesContainer",void 0),b([n.Input()],e.prototype,"abierto",void 0),b([n.Input()],e.prototype,"urlConsultar",null),b([n.Input()],e.prototype,"idioma",void 0),b([n.Output()],e.prototype,"cerrarChange",void 0),e=b([n.Component({selector:"wm-asistente-datos",template:'\x3c!-- Panel (abierto) --\x3e\r\n<div class="chat-ia-panel" *ngIf="abierto">\r\n <div class="chat-ia-header">\r\n <div class="chat-ia-header-info">\r\n <div class="chat-ia-header-icono">\r\n <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.8">\r\n <path d="M4 5h16v10H9l-4 4V15H4z"></path>\r\n </svg>\r\n </div>\r\n <div>\r\n <div class="chat-ia-titulo">Pregúntale a tus Datos</div>\r\n <div class="chat-ia-subtitulo">Consulta tus reportes en lenguaje natural</div>\r\n </div>\r\n </div>\r\n <div class="chat-ia-cerrar" (click)="cerrar()">\r\n <svg width="14" height="14" viewBox="0 0 24 24" stroke="#fff" stroke-width="2" fill="none" stroke-linecap="round">\r\n <path d="M6 6l12 12M18 6L6 18"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n\r\n <div class="chat-ia-mensajes" #mensajesContainer>\r\n <div class="chat-ia-bienvenida-texto">Hola, soy tu asistente de datos de Snap Forms. Pregúntame lo que quieras saber sobre tu operación.</div>\r\n\r\n <div class="chat-ia-mensaje" *ngFor="let mensaje of mensajes" [class.chat-ia-mensaje-usuario]="mensaje.deUsuario">\r\n <div class="chat-ia-burbuja" [class.chat-ia-burbuja-error]="mensaje.esError">\r\n <span *ngIf="mensaje.texto">{{ mensaje.texto }}</span>\r\n\r\n <ng-container *ngIf="mensaje.resultado">\r\n <div class="chat-ia-descripcion" *ngIf="mensaje.descripcion">{{ mensaje.descripcion }}</div>\r\n\r\n <div class="chat-ia-sin-resultados" *ngIf="mensaje.resultado.length === 0">La consulta no encontró resultados.</div>\r\n\r\n <div class="chat-ia-stat" *ngIf="esConteo(mensaje.resultado)">\r\n <div class="chat-ia-stat-valor">{{ mensaje.resultado[0].Resultado | number }}</div>\r\n </div>\r\n\r\n <div class="chat-ia-lista-simple" *ngIf="esListaSimple(mensaje.resultado)">{{ textoListaSimple(mensaje.resultado) }}</div>\r\n\r\n <div class="chat-ia-tabla-resultado" *ngIf="mensaje.resultado.length > 0 && !esConteo(mensaje.resultado) && !esListaSimple(mensaje.resultado)">\r\n <table mat-table [dataSource]="mensaje.resultado">\r\n <ng-container *ngFor="let columna of columnasDe(mensaje.resultado)" [matColumnDef]="columna">\r\n <th mat-header-cell *matHeaderCellDef>{{ columna }}</th>\r\n <td mat-cell *matCellDef="let fila">{{ fila[columna] }}</td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef="columnasDe(mensaje.resultado)"></tr>\r\n <tr mat-row *matRowDef="let fila; columns: columnasDe(mensaje.resultado);"></tr>\r\n </table>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class="chat-ia-pensando" *ngIf="consultando">\r\n <span class="chat-ia-dot"></span><span class="chat-ia-dot"></span><span class="chat-ia-dot"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="chips-chat-ia">\r\n <span class="chip-chat-ia" *ngFor="let chip of chipsSugeridos"\r\n (click)="onClickEnviar(chip)">{{ chip }}</span>\r\n </div>\r\n\r\n <div class="chat-ia-entrada">\r\n <div class="chat-ia-caja-entrada">\r\n <mat-icon class="chat-ia-expandir" (click)="onClickExpandirBorrador()">{{ borradorExpandido ? \'close_fullscreen\' : \'open_in_full\' }}</mat-icon>\r\n <textarea [rows]="filasBorrador" [(ngModel)]="borrador" (keydown.enter)="$event.preventDefault(); onClickEnviar()"\r\n [class.chat-ia-textarea-expandido]="borradorExpandido"\r\n placeholder="Escribe tu pregunta..."></textarea>\r\n <div class="chat-ia-pie-entrada">\r\n <button class="chat-ia-selector-modelo" [matMenuTriggerFor]="menuModeloChatIA" type="button">\r\n <span *ngIf="proveedorSeleccionado === \'Gemini\'">Gemini</span>\r\n <span *ngIf="proveedorSeleccionado === \'Groq\'">Groq</span>\r\n <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round">\r\n <path d="M6 9l6 6 6-6"></path>\r\n </svg>\r\n </button>\r\n <button class="chat-ia-microfono" [class.chat-ia-microfono-activo]="escuchando" *ngIf="micDisponible"\r\n (click)="onClickMicrofono()" type="button">\r\n <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\r\n <path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"></path>\r\n <path d="M19 10v2a7 7 0 0 1-14 0v-2"></path>\r\n <line x1="12" y1="19" x2="12" y2="23"></line>\r\n </svg>\r\n </button>\r\n <button class="chat-ia-enviar" [disabled]="!borrador.trim() || consultando" (click)="onClickEnviar()" type="button">\r\n <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">\r\n <path d="M12 19V6"></path>\r\n <path d="M5 13l7-7 7 7"></path>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<mat-menu #menuModeloChatIA="matMenu" class="menu-modelo-chat-ia">\r\n <button mat-menu-item [class.opcion-activa]="proveedorSeleccionado === \'Gemini\'"\r\n (click)="proveedorSeleccionado = \'Gemini\'">\r\n <span>Gemini</span>\r\n <svg *ngIf="proveedorSeleccionado === \'Gemini\'" class="chat-ia-check" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">\r\n <path d="M20 6L9 17l-5-5"></path>\r\n </svg>\r\n </button>\r\n <button mat-menu-item [class.opcion-activa]="proveedorSeleccionado === \'Groq\'"\r\n (click)="proveedorSeleccionado = \'Groq\'">\r\n <span>Groq</span>\r\n <svg *ngIf="proveedorSeleccionado === \'Groq\'" class="chat-ia-check" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">\r\n <path d="M20 6L9 17l-5-5"></path>\r\n </svg>\r\n </button>\r\n</mat-menu>\r\n',styles:[":host{position:fixed;right:32px;bottom:32px;z-index:1000;font-family:Roboto,sans-serif}.chat-ia-panel{width:450px;height:650px;max-width:calc(100vw - 48px);max-height:calc(100vh - 96px);background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(20,25,30,.28);display:flex;flex-direction:column;overflow:hidden}.chat-ia-header{background:linear-gradient(135deg,#7c5ce0,#5f42bd);padding:16px 18px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.chat-ia-header-info{display:flex;align-items:center;gap:10px;min-width:0}.chat-ia-header-icono{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex:none}.chat-ia-titulo{color:#fff;font-size:14px;font-weight:500}.chat-ia-subtitulo{color:rgba(255,255,255,.75);font-size:11px;margin-top:1px}.chat-ia-cerrar{width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.85;flex:none}.chat-ia-cerrar:hover{opacity:1}.chat-ia-mensajes{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:16px;background:#fbfafc}.chat-ia-mensaje{display:flex}.chat-ia-mensaje .chat-ia-burbuja{max-width:88%;background:#f2eefb;color:#26313a;border-radius:14px 14px 14px 3px;padding:10px 13px;font-size:13px;line-height:1.5}.chat-ia-mensaje .chat-ia-burbuja-error{background:#fdecea;color:#7a1f14}.chat-ia-mensaje.chat-ia-mensaje-usuario{justify-content:flex-end}.chat-ia-mensaje.chat-ia-mensaje-usuario .chat-ia-burbuja{background:#7c5ce0;color:#fff;border-radius:14px 14px 3px}.chat-ia-bienvenida-texto{align-self:flex-start;max-width:88%;background:#f2eefb;color:#26313a;border-radius:14px 14px 14px 3px;padding:10px 13px;font-size:13px;line-height:1.5}.chips-chat-ia{flex:none;display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}.chip-chat-ia{border:1px solid #e7e2f5;background:#f2eefb;color:#5f42bd;border-radius:14px;padding:5px 10px;font-size:11px;cursor:pointer}.chip-chat-ia:hover{background:#e7ddfa}.chat-ia-descripcion{font-size:13px;line-height:1.5;margin-bottom:6px}.chat-ia-sin-resultados{color:#5a5a5a;font-style:italic}.chat-ia-stat{margin-top:4px}.chat-ia-stat-valor{font-size:30px;font-weight:600;color:#5f42bd;line-height:1.15;font-variant-numeric:proportional-nums}.chat-ia-lista-simple,.chat-ia-tabla-resultado{margin-top:4px;background:#fff;border-radius:10px;padding:8px 10px}.chat-ia-lista-simple{font-size:13px;line-height:1.5}.chat-ia-tabla-resultado{overflow-x:auto;max-width:100%;padding:4px 10px}.chat-ia-tabla-resultado table{font-size:12px;background:0 0}.chat-ia-tabla-resultado th.mat-header-cell{color:#6b6478;font-weight:600;padding:0 14px 5px 0;border-bottom:1px solid #f0edf7;white-space:nowrap}.chat-ia-tabla-resultado td.mat-cell{padding:7px 14px 0 0;white-space:nowrap;font-variant-numeric:tabular-nums}.chat-ia-pensando{align-self:flex-start;background:#f2eefb;padding:12px 16px;border-radius:14px 14px 14px 3px;display:flex;gap:5px;flex-shrink:0}.chat-ia-dot{width:6px;height:6px;border-radius:50%;background:#9a93ae;-webkit-animation:1.1s ease-in-out infinite chatIaBlink;animation:1.1s ease-in-out infinite chatIaBlink}.chat-ia-dot:nth-child(2){-webkit-animation-delay:.15s;animation-delay:.15s}.chat-ia-dot:nth-child(3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes chatIaBlink{0%,100%,80%{opacity:.25}40%{opacity:1}}@keyframes chatIaBlink{0%,100%,80%{opacity:.25}40%{opacity:1}}.chat-ia-entrada{padding:10px 14px 14px;border-top:1px solid #e9f2ee;flex-shrink:0}.chat-ia-caja-entrada{position:relative;background:#f2f7f5;border:1px solid #e6efea;border-radius:18px;padding:10px 12px 8px}.chat-ia-caja-entrada textarea{border:none;outline:0;background:0 0;width:100%;font:inherit;font-size:13.5px;color:#26313a;resize:none;line-height:1.45;max-height:110px;overflow-y:auto;display:block;padding:0 28px 0 0}.chat-ia-caja-entrada textarea.chat-ia-textarea-expandido{max-height:160px}.chat-ia-caja-entrada textarea::-webkit-input-placeholder{color:#9a93ae}.chat-ia-caja-entrada textarea::-moz-placeholder{color:#9a93ae}.chat-ia-caja-entrada textarea:-ms-input-placeholder{color:#9a93ae}.chat-ia-caja-entrada textarea::-ms-input-placeholder{color:#9a93ae}.chat-ia-caja-entrada textarea::placeholder{color:#9a93ae}.chat-ia-expandir{position:absolute;top:8px;right:10px;font-size:17px;height:17px;width:17px;color:#9a9a9a;cursor:pointer}.chat-ia-pie-entrada{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:8px}.chat-ia-selector-modelo{display:inline-flex;align-items:center;gap:4px;border:none;background:0 0;color:#4e5d57;border-radius:14px;padding:5px 9px;font-size:11.5px;font-weight:600;cursor:pointer}.chat-ia-enviar{width:32px;height:32px;border-radius:50%;border:none;background:#7c5ce0;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.chat-ia-enviar:disabled{background:#dce6e1;color:#a9bab3;cursor:default}.chat-ia-microfono{width:28px;height:28px;border-radius:50%;border:none;background:0 0;color:#6b6478;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.chat-ia-microfono:hover{background:#f2eefb}.chat-ia-microfono.chat-ia-microfono-activo{color:#fff;background:#e05a5a;-webkit-animation:1.1s ease-in-out infinite chatIaBlink;animation:1.1s ease-in-out infinite chatIaBlink}::ng-deep .mat-menu-panel.menu-modelo-chat-ia{min-width:132px;border:1px solid #e6efea;border-radius:10px;box-shadow:0 12px 26px rgba(20,25,30,.16)}::ng-deep .mat-menu-panel.menu-modelo-chat-ia .mat-menu-content{padding:4px}::ng-deep .mat-menu-panel.menu-modelo-chat-ia .mat-menu-item{display:flex;align-items:center;justify-content:space-between;gap:8px;height:auto;line-height:normal;padding:7px 10px;font-size:12px;color:#26313a;border-radius:7px}::ng-deep .mat-menu-panel.menu-modelo-chat-ia .mat-menu-item.opcion-activa{background:#f2f7f5}::ng-deep .mat-menu-panel.menu-modelo-chat-ia .mat-menu-item .chat-ia-check{color:#7c5ce0}"]})],e)}(),j=function(){function e(){}return e=b([n.NgModule({declarations:[y,k],imports:[a.BrowserModule,g.FormsModule,c.MatToolbarModule,l.MatSidenavModule,u.MatListModule,d.MatButtonModule,r.MatIconModule,p.MatMenuModule,m.MatTableModule,h.MatTooltipModule,f.MatRippleModule,t.HttpClientModule,s.JwtModule],exports:[y]})],e)}();e.WmMenuAlertaPanicoService=I,e.WmMenuComponent=y,e.WmMenuModule=j,e.WmMenuServicioService=x,e.ɵa=k,e.ɵb=A,e.ɵc=w,Object.defineProperty(e,"__esModule",{value:!0})}));
16
16
  //# sourceMappingURL=wm-menu.umd.min.js.map