{"version":3,"file":"main.js","mappings":"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ACN,CAAC;CAEJ;;;;;;;;;;;;;;;;ACrBD,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,0CAA0C;CAC7D,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;;;;;AChBpB;AAC4B;AAE9B;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,yFAAsB,EAAE,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;;;;;;AClNA,iEAAe,ycAAyc,wCAAwC,0IAA0I,gBAAgB,0EAA0E,aAAa,qVAAqV,QAAQ,+JAA+J,eAAe,oCAAoC,SAAS,oaAAoa,iCAAiC,kMAAkM,SAAS,sNAAsN,iCAAiC,0RAA0R,iCAAiC,usEAAusE,oCAAoC,8QAA8Q,iBAAiB,+ZAA+Z,2CAA2C,kIAAkI,yMAAyM,sCAAsC,sBAAsB,aAAa,sBAAsB,cAAc,uBAAuB,4HAA4H;;;;;;;;;;;;;;;ACA1gM,iEAAe,8LAA8L;;;;;;;;;;;;;;;ACA7M,iEAAe,kGAAkG,YAAY,iCAAiC;;;;;;;;;;;;;;;ACA9J,iEAAe,6BAA6B;;;;;;;;;;;;;;;ACA5C,iEAAe,uTAAuT,cAAc,IAAI,mCAAmC,gSAAgS,MAAM,mHAAmH,kJAAkJ,sOAAsO,oLAAoL,KAAK,UAAU,+FAA+F;;;;;;;;;;;;;;;ACA96C,iEAAe,0IAA0I,0BAA0B,+BAA+B;;;;;;;;;;;;;;;ACAlN,iEAAe,gXAAgX,UAAU,yMAAyM,aAAa,uGAAuG;;;;;;;;;;;;;;;ACAtsB,iEAAe,4CAA4C,OAAO,SAAS;;;;;;;;;;ACA3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/api/auth/auth.service.ts","./src/app/api/bajas/bajas.service.ts","./src/app/api/chat/chat.service.ts","./src/app/api/contacto/contacto.service.ts","./src/app/api/departamentos/departamentos.service.ts","./src/app/api/documentacion/documentacion.service.ts","./src/app/api/ficheros/ficheros.service.ts","./src/app/api/gastos/gastos.service.ts","./src/app/api/geo/geo.service.ts","./src/app/api/horas-extra/horas-extra.service.ts","./src/app/api/login/login.service.ts","./src/app/api/main.service.ts","./src/app/api/notificaciones/notificaciones.service.ts","./src/app/api/perfil/perfil.service.ts","./src/app/api/permisos/permisos.service.ts","./src/app/api/quiosco/quiosco.service.ts","./src/app/api/registros/registros.service.ts","./src/app/api/reservas/reservas.service.ts","./src/app/api/resumen/resumen.service.ts","./src/app/api/solicitudes/solicitudes.service.ts","./src/app/api/tareas/tareas.service.ts","./src/app/api/teams/teams.service.ts","./src/app/api/tipos/tipos.service.ts","./src/app/api/vacaciones/vacaciones.service.ts","./src/app/api/versiones/versiones.service.ts","./src/app/api/visitas/visitas.service.ts","./src/app/api/wiki/wiki.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/calendar/calendar.component.ts","./src/app/components/combobox/combobox.component.ts","./src/app/components/components/components.module.ts","./src/app/components/file-selector-with-camera-option/file-selector-with-camera-option.component.ts","./src/app/components/fv-calendar/fv-calendar.component.ts","./src/app/components/loader/loader.component.ts","./src/app/components/pdf-viewer/pdf-viewer.component.ts","./src/app/components/popover-info-ficheros/popover-info-ficheros.component.ts","./src/app/database/adjuntos/adjuntosTable.ts","./src/app/database/database.service.ts","./src/app/models/database/generic/databaseTable.ts","./src/app/models/general/apiService.ts","./src/app/models/general/paging.ts","./src/app/pages/bajas-view/bajas-view.resolver.ts","./src/app/pages/chat-view/chat-view-resolver.ts","./src/app/pages/confirmacion-jornada/confirmacion-jornada.resolver.ts","./src/app/pages/edit-observaciones/edit-observaciones.resolver.ts","./src/app/pages/gastos-view/gastos-view-resolver.ts","./src/app/pages/horario-personalizado-presencia/horario-personalizado-presencia.resolver.ts","./src/app/pages/horas-extra-view/horas-extra-view-resolver.ts","./src/app/pages/permisos-view/permisos-view.resolver.ts","./src/app/pages/proyectos-fin-jornada/proyectos-fin-jornada.resolver.ts","./src/app/pages/quioscoconfiguracion/quioscoconfiguracion-centros.resolver.ts","./src/app/pages/quioscoconfiguracion/quioscoconfiguracion-subtipos.resolver.ts","./src/app/pages/quioscoconfiguracion/quioscoconfiguracion.resolver.ts","./src/app/pages/reservas-view/reservas-view.resolver.ts","./src/app/pages/solicitud-cambio-hora/solicitud-cambio-hora.resolver.ts","./src/app/pages/solicitudes/solicitudes-resolver.ts","./src/app/pages/vacaciones-view/vacaciones-view.resolver.ts","./src/app/pages/wiki-view/wiki-view-resolver.ts","./src/app/pipes/date-transform.pipe.ts","./src/app/pipes/formatear-hora.pipe.ts","./src/app/pipes/formatear-importe.ts","./src/app/pipes/formatear-minutos.pipe.ts","./src/app/pipes/month-name.pipe.ts","./src/app/pipes/month-shortname.ts","./src/app/pipes/pipes.module.ts","./src/app/pipes/safe-html.pipe.ts","./src/app/pipes/safe-url.pipe.ts","./src/app/services/alert.service.ts","./src/app/services/config.service.ts","./src/app/services/globales.service.ts","./src/app/services/loader.service.ts","./src/app/services/log.service.ts","./src/app/services/util.service.ts","./src/app/util/util.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/@ionic/core/dist/esm|lazy|/^/.*/.entry/.js$/|include: /.entry/.js$/|exclude: /.system/.entry/.js$/|groupOptions: {}|namespace object","./src/app/app.component.html","./src/app/components/calendar/calendar.component.html","./src/app/components/combobox/combobox.component.html","./src/app/components/file-selector-with-camera-option/file-selector-with-camera-option.component.html","./src/app/components/fv-calendar/fv-calendar.component.html","./src/app/components/loader/loader.component.html","./src/app/components/pdf-viewer/pdf-viewer.component.html","./src/app/components/popover-info-ficheros/popover-info-ficheros.component.html","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["import ApiService from \"src/app/models/general/apiService\";\r\nimport { MainService } from \"../main.service\";\r\nimport { ConfigService } from \"src/app/services/config.service\";\r\nimport LoginMethodClass from \"src/app/models/auth/loginMethodClass\";\r\nimport LoginMethodsResponse from \"src/app/models/auth/loginMethodsResponse\";\r\nimport CheckLogin365Response from \"src/app/models/auth/checkLogin365Response\";\r\nimport LoginMethodsRequest from \"src/app/models/auth/loginMethodsRequest\";\r\nimport SendLink365Email from \"src/app/models/auth/sendLink365Email\";\r\n\r\nexport class AuthService extends ApiService {\r\n\r\n constructor(\r\n public service: MainService,\r\n public _config: ConfigService\r\n ) {\r\n super(service)\r\n }\r\n\r\n public async getLoginMethods(request: LoginMethodsRequest): Promise {\r\n return await this.service.HttpPost('/api/auth/getLoginMethods2', request, this._config.getUrlInstances())\r\n }\r\n\r\n public async createLogin365(idLogin: string, userName: string): Promise {\r\n return await this.service.HttpPost('/api/auth/createLogin365', {\r\n IdLogin: idLogin,\r\n Username: userName\r\n }, this._config.getUrlInstances())\r\n }\r\n\r\n public async checkLogin365(idLogin: string, userName: string): Promise {\r\n return await this.service.HttpPost('/api/auth/checkLogin365', {\r\n IdLogin: idLogin,\r\n Username: userName\r\n }, this._config.getUrlInstances())\r\n }\r\n\r\n public async sendLink365Email(userName: string, lang: string): Promise {\r\n return await this.service.HttpPost('/api/auth/sendLink365Email', {\r\n Username: userName,\r\n Lang: lang\r\n }, this._config.getUrlInstances())\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport BajasModel from 'src/app/models/bajas/bajas';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport FiltrosVacacionesModel from 'src/app/models/vacaciones/filtrosVacaciones';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class BajasService extends ApiService {\r\n\r\n public async getBajasById(id: number): Promise {\r\n return await this.service.HttpGet('/bajas/getbajasbyid', {\r\n id: id\r\n })\r\n }\r\n\r\n public async getBajasListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosVacacionesModel): Promise> {\r\n return await this.service.HttpGet('/bajas/getlistadobajas', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Anio: filtro.anio || \"\",\r\n filtro_Estado: filtro.estadoId != null ? filtro.estadoId : \"\"\r\n })\r\n }\r\n\r\n public async getNuevaBaja(bajas: BajasModel): Promise {\r\n return await this.service.HttpGet('/bajas/getnuevabaja', {\r\n data: JSON.stringify(bajas)\r\n })\r\n }\r\n\r\n public async insertarBajas(bajas: BajasModel): Promise {\r\n return await this.service.HttpPut('/bajas/insertarbajas', bajas)\r\n }\r\n\r\n public async getTiposBajas(): Promise {\r\n return await this.service.HttpGet('/bajas/gettiposbajas')\r\n }\r\n\r\n public async getEstadosCombo(): Promise {\r\n return await this.service.HttpGet('/bajas/getestadoscombo')\r\n }\r\n\r\n public async getFiltroAniosBajas(): Promise {\r\n return await this.service.HttpGet('/bajas/getfiltroaniosbajas')\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport FiltrosVacacionesModel from 'src/app/models/vacaciones/filtrosVacaciones';\r\nimport { MainService } from '../main.service';\r\nimport ChatModel from 'src/app/models/chats/chat';\r\nimport SubirFicheroJSONModel from 'src/app/models/ficheros/subirFicheroJson';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class ChatService extends ApiService {\r\n\r\n public async getChatsListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosVacacionesModel): Promise> {\r\n return await this.service.HttpGet('/chat/getlistadochats', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Anio: filtro.anio || '',\r\n filtro_EstadoId: filtro.estadoId != null ? filtro.estadoId : ''\r\n })\r\n }\r\n\r\n public async getEstadosCombo(): Promise {\r\n return await this.service.HttpGet('/chat/getestadoscombo')\r\n }\r\n\r\n public async getFiltroAniosChats(): Promise {\r\n return await this.service.HttpGet('/chat/getfiltroanioschats')\r\n }\r\n\r\n public async getChatBySalaId(SalaId: string): Promise {\r\n return await this.service.HttpGet('/chat/getchatbysalaid', {\r\n SalaId: SalaId\r\n })\r\n }\r\n\r\n public async insertarFichero(ficheros: SubirFicheroJSONModel): Promise {\r\n return await this.service.HttpPut('/chat/insertarfichero', ficheros)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class ContactoService extends ApiService {\r\n\r\n public async solicitudContacto(comentario: string): Promise {\r\n return await this.service.HttpPost('/contacto/solicitudContacto', {\r\n Comentario: comentario\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class DepartamentosService extends ApiService {\r\n\r\n public async getDepartamentosCombo(): Promise> {\r\n return await this.service.HttpGet('/departamentos/getdepartamentoscombo')\r\n }\r\n\r\n public async getDepartamentosComboIncludeAll(): Promise> {\r\n return await this.service.HttpGet('/departamentos/getdepartamentoscomboincludeall')\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport DocumentacionModel from 'src/app/models/documentacion/documentacion';\r\nimport TiposdocumentacionModel from 'src/app/models/documentacion/tiposdocumentacion';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class DocumentacionService extends ApiService {\r\n\r\n public async getTiposDocumentacionListado(start: number, limit: number, pin: string): Promise> {\r\n return await this.service.HttpGet('/documentacion/getlistadotiposdocumentacion', {\r\n start: start,\r\n limit: limit,\r\n pin: pin\r\n })\r\n }\r\n\r\n public async getDocumentacionListado(start: number, limit: number, TipoId: number, pin: string): Promise> {\r\n return await this.service.HttpGet('/documentacion/getlistadodocumentacion', {\r\n start: start,\r\n limit: limit,\r\n TipoId: TipoId,\r\n pin: pin\r\n })\r\n }\r\n\r\n public async getTienePin(): Promise {\r\n return await this.service.HttpGet('/documentacion/gettienepin')\r\n }\r\n\r\n public async getRecuperarPin(): Promise {\r\n return await this.service.HttpGet('/documentacion/recuperarpin')\r\n }\r\n\r\n public async insertarPin(pin: string): Promise {\r\n return await this.service.HttpPut('/documentacion/insertarpin', {\r\n pin: pin\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport FicherosModel from 'src/app/models/bajas/ficheros';\r\nimport SubirFicheroJSONModel from 'src/app/models/ficheros/subirFicheroJson';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class FicherosService extends ApiService {\r\n\r\n public async subirFichero(formData: FormData): Promise {\r\n return await this.service.HttpPutFormData('/ficheros/subirfichero', formData)\r\n }\r\n\r\n public async subirFicheroJson(data: SubirFicheroJSONModel): Promise {\r\n return await this.service.HttpPost('/ficheros/subirFicheroJSON', data)\r\n }\r\n\r\n public async subirFicheroandsave(formData: FormData): Promise {\r\n return await this.service.HttpPutFormData('/ficheros/subirficheroandsave', formData)\r\n }\r\n\r\n public async confirmarFicherosTemporales(ficheros: FicherosModel[]): Promise {\r\n return await this.service.HttpPost('/ficheros/confirmarficherostemporales', ficheros)\r\n }\r\n\r\n public async eliminarFicheros(ficheros: FicherosModel[]): Promise {\r\n return await this.service.HttpPost('/ficheros/eliminarficheros', ficheros)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport FiltrosVacacionesModel from 'src/app/models/vacaciones/filtrosVacaciones';\r\nimport { MainService } from '../main.service';\r\nimport GastosModel from 'src/app/models/gastos/gastosModel';\r\nimport TiposGastosModel from 'src/app/models/gastos/tiposGastosModel';\r\nimport MetodosPagoModel from 'src/app/models/gastos/metodosPagoModel';\r\nimport ApiService from 'src/app/models/general/apiService';\r\nimport ProyectosModel from 'src/app/models/proyectos/proyectos';\r\nimport MesFiltroModel from 'src/app/models/gastos/mesFiltro';\r\n\r\nexport class GastosService extends ApiService {\r\n\r\n //#region Filtros\r\n\r\n public async getEstadosCombo(): Promise {\r\n return await this.service.HttpGet('/gastos/getestadoscombo')\r\n }\r\n\r\n public async getFiltroAniosGastos(): Promise {\r\n return await this.service.HttpGet('/gastos/getfiltroaniosgastos')\r\n }\r\n\r\n public async getFiltroMesesGastos(): Promise {\r\n return await this.service.HttpGet('/gastos/getfiltromesesgastos')\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Get\r\n\r\n public async getGastosListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosVacacionesModel): Promise> {\r\n return await this.service.HttpGet('/gastos/getlistadogastosnew', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Anio: filtro.anio || '',\r\n filtro_Mes: filtro.mes || '',\r\n filtro_EstadoId: filtro.estadoId != null ? filtro.estadoId : ''\r\n })\r\n }\r\n\r\n public async getGastosById(id: number): Promise {\r\n return await this.service.HttpGet('/gastos/getgastosbyid', {\r\n id: id\r\n })\r\n }\r\n\r\n public async getNuevoGasto(gastos: GastosModel): Promise {\r\n return await this.service.HttpGet('/gastos/getnuevogasto', {\r\n data: JSON.stringify(gastos)\r\n })\r\n }\r\n\r\n public async getProyectos(): Promise {\r\n return await this.service.HttpGet('/gastos/getproyectos')\r\n }\r\n\r\n public async getTiposGastos(): Promise {\r\n return await this.service.HttpGet('/gastos/gettiposgastos')\r\n }\r\n\r\n public async getMetodosPago(): Promise {\r\n return await this.service.HttpGet('/gastos/getmetodospago')\r\n }\r\n\r\n public async getActividades(): Promise {\r\n return await this.service.HttpGet('/gastos/getactividades')\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Post\r\n\r\n public async insertarGastos(gastos: GastosModel): Promise {\r\n return await this.service.HttpPut('/gastos/insertargastos', gastos)\r\n }\r\n\r\n public async deleteGastos(id: number): Promise {\r\n await this.service.HttpDelete('/gastos/eliminargastos', {\r\n id: id\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport PaisModel from 'src/app/models/geo/pais';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class GeoService extends ApiService {\r\n\r\n public async getPaises(): Promise> {\r\n return await this.service.HttpGet('/geo/paises')\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport FiltrosVacacionesModel from 'src/app/models/vacaciones/filtrosVacaciones';\r\nimport { MainService } from '../main.service';\r\nimport HorasextraModel from '../../models/horasextra/horasextra';\r\nimport HorasextraHorasModel from 'src/app/models/horasextra/horasExtraHoras';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class HorasExtraService extends ApiService {\r\n\r\n //#region Filtros\r\n\r\n public async getEstadosCombo(): Promise {\r\n return await this.service.HttpGet('/horasExtra/getestadoscombo')\r\n }\r\n\r\n public async getFiltroAniosHorasExtra(): Promise {\r\n return await this.service.HttpGet('/horasExtra/getfiltroanioshorasextra')\r\n }\r\n\r\n public async getTipologiasCombo(): Promise {\r\n return await this.service.HttpGet('/horasExtra/getcombotipologias')\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Get\r\n\r\n public async getHorasExtraListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosVacacionesModel): Promise> {\r\n return await this.service.HttpGet('/horasExtra/getlistadohorasextra', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Anio: filtro.anio || '',\r\n filtro_EstadoId: filtro.estadoId != null ? filtro.estadoId : ''\r\n })\r\n }\r\n\r\n public async getHorasExtraById(id: number): Promise {\r\n return await this.service.HttpGet('/horasExtra/gethorasextrabyid', {\r\n id: id\r\n })\r\n }\r\n\r\n public async getNuevaHoraExtra(horasExtra: HorasextraModel): Promise {\r\n return await this.service.HttpGet('/horasExtra/getnuevahoraextra', {\r\n data: JSON.stringify(horasExtra)\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Post\r\n\r\n public async insertarHorasExtra(horasExtra: HorasextraModel): Promise {\r\n return await this.service.HttpPut('/horasExtra/insertarhorasextra', horasExtra)\r\n }\r\n\r\n public async deleteHorasExtra(id: number): Promise {\r\n await this.service.HttpDelete('/horasExtra/eliminarhorasextra', {\r\n id: id\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainService } from '../main.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport LoginModel from '../../models/login/login';\r\nimport LoginInstanceModel from '../../models/login/loginInstance';\r\nimport { GlobalesService } from '../../services/globales.service';\r\nimport RegistroModel from '../../models/registro/registro';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class LoginService extends ApiService {\r\n public Nombre: string\r\n public DNI: string\r\n public Iniciales: string\r\n public TieneFoto: boolean\r\n public Email: string\r\n public Entidad: string\r\n public NombreCompleto: string\r\n public EsAdmin: boolean\r\n public ImgLogo: string\r\n public UsarGPS: boolean\r\n public MostrarHorasTotalizadasJornada: boolean\r\n public GuardarUbicacionExacta: boolean\r\n public MostrarCercaLejos: boolean\r\n public ModuloVacaciones: boolean\r\n public ModuloBajas: boolean\r\n public ModuloPermisos: boolean\r\n public ModuloReservas: boolean\r\n public ModuloProyectos: boolean\r\n public ModuloHorasExtra: boolean\r\n public ModuloGastos: boolean\r\n public ModuloChat: boolean\r\n public ModuloWiki: boolean\r\n public ModuloTeam: boolean\r\n public ComentariosEnFichajes: boolean\r\n public ResumenAppMovil: boolean\r\n public EstadisticasAppMovil: boolean\r\n public EsQuiosco: boolean\r\n public UsuarioPuedeModificarFichajes: boolean\r\n public GuardaFoto: boolean\r\n public AlmacenFicherosId: number\r\n public AccesoProyectosFinJornada: boolean\r\n public MinimumAccuracy: number\r\n\r\n constructor(\r\n public service: MainService,\r\n public _config: ConfigService,\r\n private _translate: TranslateService,\r\n ) {\r\n super(service)\r\n }\r\n\r\n public async configureServiceParams(res: LoginInstanceModel): Promise {\r\n this.Nombre = res.NombreCompleto\r\n this.DNI = res.UserName\r\n this.Iniciales = res.Iniciales\r\n this.TieneFoto = res.TieneFoto\r\n this.Email = res.Email\r\n this.Entidad = res.Entidad\r\n this.UsarGPS = res.UsarGPS\r\n this.ImgLogo = res.ImgLogo\r\n this.NombreCompleto = res.NombreCompleto\r\n this.MostrarHorasTotalizadasJornada = res.MostrarHorasTotalizadasJornada\r\n this.EsAdmin = res.EsAdmin\r\n this.GuardarUbicacionExacta = res.GuardarUbicacionExacta\r\n this.MostrarCercaLejos = res.MostrarCercaLejos\r\n this.ModuloVacaciones = res.ModuloVacaciones\r\n this.ModuloBajas = res.ModuloBajas\r\n this.ModuloPermisos = res.ModuloPermisos\r\n this.ModuloReservas = res.ModuloReservas\r\n this.ModuloProyectos = res.ModuloProyectos\r\n this.ModuloHorasExtra = res.ModuloHorasExtra\r\n this.ModuloGastos = res.ModuloGastos\r\n this.ModuloChat = res.ModuloChat\r\n this.AccesoProyectosFinJornada = res.AccesoProyectosFinJornada\r\n this.ModuloWiki = res.ModuloWiki\r\n this.ModuloTeam = res.ModuloTeam\r\n this.ComentariosEnFichajes = res.ComentariosEnFichajes\r\n this.ResumenAppMovil = res.ResumenAppMovil\r\n this.EstadisticasAppMovil = res.EstadisticasAppMovil\r\n this.EsQuiosco = res.EsQuiosco\r\n this.service.loginToken = res.Token\r\n this.GuardaFoto = res.GuardaFoto\r\n this.AlmacenFicherosId = res.AlmacenFicherosId\r\n this.MinimumAccuracy = res.MinimumAccuracy || 500\r\n\r\n GlobalesService.language = res.Language || GlobalesService.language\r\n GlobalesService.EnableNotifications = res.EnableNotifications || false\r\n GlobalesService.UsuarioPuedeModificarFichajes = res.UsuarioPuedeModificarFichajes || false\r\n GlobalesService.NumComunicadosSinLeer = res.NumComunicacionesSinLeer || 0\r\n GlobalesService.NumChatsSinLeer = res.NumChatsSinLeer || 0\r\n GlobalesService.VerJornadaPrevista = res.VerJornadaPrevista\r\n GlobalesService.RequerirGPSEnAppMovil = res.RequerirGPSEnAppMovil\r\n GlobalesService.AccesoPeople = res.AccesoPeople || false\r\n\r\n let userLang = GlobalesService.language\r\n await this._translate.use(userLang).toPromise()\r\n }\r\n\r\n public async LoginWithToken(): Promise {\r\n let res = await this.service.HttpGet('/login/loginWithToken')\r\n GlobalesService.EntornoPruebas = res?.Environment === 'Debug'\r\n\r\n await this.configureServiceParams(res)\r\n\r\n let result = {\r\n user: '',\r\n pass: '',\r\n AccesoFichaje: res.AccesoFichaje,\r\n AccesoVacaciones: res.AccesoVacaciones,\r\n AccesoBajas: res.AccesoBajas,\r\n AccesoPermisos: res.AccesoPermisos,\r\n AccesoResumen: res.AccesoResumen,\r\n AccesoEstadisticas: res.AccesoEstadisticas,\r\n AccesoRetribuciones: res.AccesoRetribuciones,\r\n AccesoModelo145: res.AccesoModelo145,\r\n MostrarConexionGPSEnApp: res.MostrarConexionGPSEnApp,\r\n EsQuiosco: res.EsQuiosco,\r\n AccesoDocumentacion: res.AccesoDocumentacion,\r\n Language: res.Language,\r\n AccesoPeople: res.AccesoPeople\r\n }\r\n if (GlobalesService.language) result.Language = GlobalesService.language\r\n return result\r\n }\r\n\r\n public async login(UserName: string, Password: string): Promise {\r\n let res = await this.service.HttpPost('/api/login', {\r\n UserName: UserName,\r\n Password: Password\r\n }, this._config.getUrlInstances())\r\n \r\n // Obtenemos la URL de la instancia de TrackPeople a utilizar.\r\n let instanceURL = res.InstanceURL\r\n this._config.setUrlService(instanceURL + '/api')\r\n this._config.setUrlInstanceRoot(instanceURL)\r\n this.service.URL = instanceURL + '/api'\r\n GlobalesService.EntornoPruebas = res?.Environment === 'Debug'\r\n\r\n await this.configureServiceParams(res)\r\n\r\n return {\r\n user: UserName,\r\n pass: Password,\r\n AccesoFichaje: res.AccesoFichaje,\r\n AccesoVacaciones: res.AccesoVacaciones,\r\n AccesoBajas: res.AccesoBajas,\r\n AccesoPermisos: res.AccesoPermisos,\r\n AccesoResumen: res.AccesoResumen,\r\n AccesoEstadisticas: res.AccesoEstadisticas,\r\n AccesoRetribuciones: res.AccesoRetribuciones,\r\n AccesoModelo145: res.AccesoModelo145,\r\n MostrarConexionGPSEnApp: res.MostrarConexionGPSEnApp,\r\n EsQuiosco: res.EsQuiosco,\r\n AccesoDocumentacion: res.AccesoDocumentacion,\r\n Language: res.Language,\r\n AccesoPeople: res.AccesoPeople\r\n }\r\n\r\n }\r\n\r\n public async recovery(user: string): Promise {\r\n return this.service.HttpGet('/api/login/recovery', {\r\n \"user\": user\r\n }, this._config.getUrlInstances())\r\n }\r\n\r\n public async registro(registro: RegistroModel): Promise {\r\n return this.service.HttpPost('/entidades/register2', registro, null)\r\n }\r\n\r\n public async setLanguage(language: string): Promise {\r\n await this.service.HttpGet('/login/setLanguage', {\r\n language: language\r\n })\r\n }\r\n\r\n public async LogOut(token: string): Promise {\r\n await this.service.HttpPost('/webPush/LogOut', {\r\n Token: token\r\n })\r\n }\r\n\r\n public async SetPushToken(token: string): Promise {\r\n await this.service.HttpPost('/webPush/SetPushToken', {\r\n Token: token\r\n })\r\n }\r\n\r\n public async updatePhoto(photo: string): Promise {\r\n await this.service.HttpPost('/userPhoto/updatePhoto', {\r\n photo: photo\r\n })\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { AppComponent } from '../app.component';\r\nimport ResultClass from '../models/general/result';\r\nimport usuarioFichajeQuioscoModel from '../models/quiosco/usuarioFichajeQuioscoModel';\r\nimport { ConfigService } from '../services/config.service';\r\nimport { BajasService } from './bajas/bajas.service';\r\nimport { ContactoService } from './contacto/contacto.service';\r\nimport { DepartamentosService } from './departamentos/departamentos.service';\r\nimport { DocumentacionService } from './documentacion/documentacion.service';\r\nimport { FicherosService } from './ficheros/ficheros.service';\r\nimport { GeoService } from './geo/geo.service';\r\nimport { LoginService } from './login/login.service';\r\nimport { NotificacionesService } from './notificaciones/notificaciones.service';\r\nimport { TareasService } from './tareas/tareas.service';\r\nimport { PermisosService } from './permisos/permisos.service';\r\nimport { QuioscoService } from './quiosco/quiosco.service';\r\nimport { VisitasService } from './visitas/visitas.service';\r\nimport { RegistrosService } from './registros/registros.service';\r\nimport { ReservasService } from './reservas/reservas.service';\r\nimport { ResumenService } from './resumen/resumen.service';\r\nimport { SolicitudesService } from './solicitudes/solicitudes.service';\r\nimport { TeamsService } from './teams/teams.service';\r\nimport { TiposService } from './tipos/tipos.service';\r\nimport { VacacionesService } from './vacaciones/vacaciones.service';\r\nimport { WikiService } from './wiki/wiki.service';\r\nimport { VersionesService } from './versiones/versiones.service';\r\nimport { PerfilService } from './perfil/perfil.service';\r\nimport { HorasExtraService } from './horas-extra/horas-extra.service';\r\nimport { GastosService } from './gastos/gastos.service';\r\nimport { ChatService } from './chat/chat.service';\r\nimport { LogService } from '../services/log.service';\r\nimport {\r\n BehaviorSubject,\r\n Observable,\r\n OperatorFunction,\r\n Subject,\r\n catchError,\r\n defer,\r\n firstValueFrom,\r\n interval,\r\n map,\r\n of,\r\n retry,\r\n takeUntil,\r\n tap,\r\n throwError,\r\n timeout,\r\n timer,\r\n} from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './auth/auth.service';\r\nimport { NavController } from '@ionic/angular';\r\nimport { GlobalesService } from '../services/globales.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MainService {\r\n //#region Servicios\r\n\r\n public Auth = new AuthService(this, this.config);\r\n public Login = new LoginService(this, this.config, this.translate);\r\n public Registros = new RegistrosService(this);\r\n public Tipos = new TiposService(this);\r\n public Geo = new GeoService(this);\r\n public Vacaciones = new VacacionesService(this);\r\n public Bajas = new BajasService(this);\r\n public Tareas = new TareasService(this);\r\n public Permisos = new PermisosService(this);\r\n public Reservas = new ReservasService(this);\r\n public HorasExtra = new HorasExtraService(this);\r\n public Gastos = new GastosService(this);\r\n public Ficheros = new FicherosService(this);\r\n public Resumen = new ResumenService(this);\r\n public Quiosco = new QuioscoService(this);\r\n public Visitas = new VisitasService(this);\r\n public Wiki = new WikiService(this);\r\n public Notificaciones = new NotificacionesService(this);\r\n public Departamentos = new DepartamentosService(this);\r\n public Teams = new TeamsService(this);\r\n public Solicitudes = new SolicitudesService(this);\r\n public Documentacion = new DocumentacionService(this);\r\n public Contacto = new ContactoService(this);\r\n public Versiones = new VersionesService(this, this.config);\r\n public Perfil = new PerfilService(this);\r\n public Chat = new ChatService(this);\r\n\r\n //#endregion\r\n\r\n //#region Propiedades\r\n\r\n public URL: string;\r\n public loginToken: string;\r\n public lastRequest: any;\r\n public sessionTimeout: number = 80000;\r\n public usuarioSimulado: usuarioFichajeQuioscoModel;\r\n public fromQueryStringLogin: boolean = false;\r\n public RequestActiveSubject = new BehaviorSubject(false);\r\n private numRequests: number = 0;\r\n private requestTimeout: number = 120000;\r\n public SegundosDesconexionQuiosco: number =\r\n this.config.getUrlService().indexOf('localhost') != -1 ? 1500 : 15;\r\n public CuentaAtrasQuioscoSubject = new BehaviorSubject(null);\r\n\r\n //#endregion\r\n\r\n //#region Constructor\r\n\r\n constructor(\r\n private config: ConfigService,\r\n private http: HttpClient,\r\n private log: LogService,\r\n private translate: TranslateService,\r\n private zone: NgZone,\r\n private navCtrl: NavController\r\n ) {\r\n this.URL = config.getUrlService();\r\n this.cancelTimerQuioscoSubject.subscribe(() => {\r\n this.CuentaAtrasQuioscoSubject.next(null);\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Funciones Kiosko\r\n\r\n public quioscoLogoutSubject = new Subject<{\r\n mensaje?: string;\r\n redirect?: boolean;\r\n }>();\r\n public cancelTimerQuioscoSubject = new Subject();\r\n\r\n public async startTimerQuiosco(): Promise {\r\n this.cancelTimerQuioscoSubject.next();\r\n if (this.numRequests > 0) {\r\n return;\r\n }\r\n this.CuentaAtrasQuioscoSubject.next(this.SegundosDesconexionQuiosco);\r\n await timer(1);\r\n interval(1000)\r\n .pipe(takeUntil(this.cancelTimerQuioscoSubject))\r\n .subscribe((counter) => {\r\n if (counter >= this.SegundosDesconexionQuiosco - 1) {\r\n let lang = GlobalesService.language;\r\n let DescontectadoText = 'Desconectado por inactividad...';\r\n\r\n switch (lang) {\r\n case 'es':\r\n DescontectadoText = 'Desconectado por inactividad...';\r\n break;\r\n\r\n case 'en':\r\n DescontectadoText = 'Disconnected due to inactivity...';\r\n break;\r\n\r\n case 'pt':\r\n DescontectadoText = 'Desligado por inatividade...';\r\n break;\r\n\r\n case 'de':\r\n DescontectadoText =\r\n 'Verbindung wegen Inaktivität unterbrochen...';\r\n break;\r\n\r\n default:\r\n DescontectadoText = 'Desconectado por inactividad...';\r\n break;\r\n }\r\n\r\n this.CuentaAtrasQuioscoSubject.next(0);\r\n this.cancelTimerQuioscoSubject.next();\r\n this.quioscoLogoutSubject.next({\r\n mensaje: DescontectadoText,\r\n redirect: true,\r\n });\r\n } else {\r\n this.CuentaAtrasQuioscoSubject.next(\r\n this.SegundosDesconexionQuiosco - (counter + 1)\r\n );\r\n }\r\n });\r\n }\r\n\r\n public conexionVisitas() {\r\n this.SegundosDesconexionQuiosco = 60;\r\n GlobalesService.PantallaVisita = true;\r\n\r\n this.startTimerQuiosco();\r\n }\r\n\r\n public desconexionVisitas() {\r\n this.SegundosDesconexionQuiosco =\r\n this.config.getUrlService().indexOf('localhost') != -1 ? 1500 : 15;\r\n GlobalesService.PantallaVisita = false;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Configuración de la petición\r\n\r\n private ConfigureHeaders(contentType?: string): HttpHeaders {\r\n if (contentType == null) contentType = 'application/json';\r\n let headers = new HttpHeaders();\r\n if ((contentType as any) !== false) {\r\n headers = headers.append('Content-Type', contentType);\r\n }\r\n if (this.loginToken != null) {\r\n headers = headers.append('Access-Token', this.loginToken);\r\n }\r\n if (this.usuarioSimulado?.Token != null) {\r\n headers = headers.append('Usuario-Simulado', this.usuarioSimulado.Token);\r\n }\r\n return headers;\r\n }\r\n\r\n private ConfigureParams(params: any): HttpParams {\r\n params = params || {};\r\n let httpParams = new HttpParams();\r\n for (let param in params) {\r\n if (params[param] != null) {\r\n httpParams = httpParams.append(param, params[param]?.toString() || '');\r\n } else {\r\n httpParams = httpParams.append(param, '');\r\n }\r\n }\r\n return httpParams;\r\n }\r\n\r\n private ResultClassPipe(): OperatorFunction {\r\n return map((result: ResultClass) => {\r\n if (result.Error && result.Error.HasError) {\r\n throw new Error(result.Error.Message);\r\n }\r\n return result.content;\r\n });\r\n }\r\n\r\n private HandleResultClassErrorSimple(): OperatorFunction {\r\n return retry({\r\n delay: async (error, retryCount) => {\r\n if (error != null && error.status == 401 && retryCount < 3) {\r\n let requestAction = error.headers.get('Request-Action');\r\n if (requestAction == 'RefreshToken') {\r\n // Hacemos la solicitud via fetch, para no entrar en bucle infinito si el servicio devuelve un 401 al solicitar el token nuevo\r\n let request = await fetch(this.URL + '/auth/refreshToken', {\r\n headers: {\r\n 'Access-Token': this.loginToken,\r\n },\r\n });\r\n\r\n if (!(request.status >= 200 && request.status < 300)) {\r\n if (request.status == 401) {\r\n this.navCtrl.navigateRoot('login');\r\n throw new Error('La sesión ha caducado.');\r\n } else {\r\n try {\r\n let json: ResultClass = await request.json();\r\n if (json.Error && json.Error.HasError) {\r\n throw new Error(json.Error.Message);\r\n }\r\n } catch (ex) {\r\n throw new Error(ex?.message || 'Acceso denegado.');\r\n }\r\n }\r\n }\r\n try {\r\n let json: ResultClass = await request.json();\r\n this.loginToken = json.content;\r\n localStorage.setItem('token', this.loginToken);\r\n if (retryCount < 3) {\r\n return of();\r\n } else {\r\n throw new Error('Acceso denegado.');\r\n }\r\n } catch (ex) {\r\n throw new Error(ex?.message || 'Acceso denegado.');\r\n }\r\n } else if (requestAction == 'RefreshTokenUsuarioSimulado') {\r\n // Hacemos la solicitud via fetch, para no entrar en bucle infinito si el servicio devuelve un 401 al solicitar el token nuevo\r\n let request = await fetch(\r\n this.URL + '/auth/refreshTokenUsuarioSimulado',\r\n {\r\n headers: {\r\n 'Usuario-Simulado': this.loginToken,\r\n },\r\n }\r\n );\r\n\r\n if (!(request.status >= 200 && request.status < 300)) {\r\n if (request.status == 401) {\r\n this.navCtrl.navigateRoot('login');\r\n throw new Error('La sesión ha caducado.');\r\n } else {\r\n try {\r\n let json: ResultClass = await request.json();\r\n if (json.Error && json.Error.HasError) {\r\n throw new Error(json.Error.Message);\r\n }\r\n } catch (ex) {\r\n throw new Error(ex?.message || 'Acceso denegado.');\r\n }\r\n }\r\n }\r\n try {\r\n let json: ResultClass = await request.json();\r\n this.usuarioSimulado.Token = json.content;\r\n if (retryCount < 3) {\r\n return of();\r\n } else {\r\n throw new Error('Acceso denegado.');\r\n }\r\n } catch (ex) {\r\n throw new Error(ex?.message || 'Acceso denegado.');\r\n }\r\n } else {\r\n // Tenemos un error 401. Redireccionamos al Login y devolvemos un error indicando que la sesión ha caducado.\r\n // Es MUY IMPORTANTE que cuando programemos servicios en la API distingamos entre 401 y 403. 401 es que NO ESTÁS\r\n // AUTENTICADO, mientras que 403 es que ESTÁS AUTENTICADO PERO NO TIENES PERMISO PARA ESE RECURSO. Con esta implementación\r\n // un 401 te tirará al login, mientras que un 403 te dará error pero seguirás con la sesión iniciada.\r\n this.navCtrl.navigateRoot('login');\r\n throw new Error('La sesión ha caducado.');\r\n }\r\n }\r\n\r\n let result: ResultClass =\r\n error?.error || 'Se ha producido un error.';\r\n if (result?.Error?.Message != null) {\r\n throw new Error(\r\n result?.Error?.Message || 'Se ha producido un error.'\r\n );\r\n } else {\r\n throw error;\r\n }\r\n },\r\n });\r\n }\r\n\r\n private TapRespuestaCorrectaPipe(): OperatorFunction {\r\n return tap(() => {\r\n this.addNumRequests(-1);\r\n });\r\n }\r\n\r\n private TimeoutPipe(): OperatorFunction {\r\n return timeout(this.requestTimeout);\r\n }\r\n\r\n private CaptureErrorPipe(): OperatorFunction {\r\n return catchError((err) => {\r\n this.addNumRequests(-1);\r\n let message = err?.message || 'Se ha producido un error';\r\n return throwError(() => new Error(message));\r\n });\r\n }\r\n\r\n private addNumRequests(amount: number): void {\r\n this.numRequests += amount;\r\n if (this.numRequests < 0) this.numRequests = 0;\r\n this.zone.run(() => {\r\n if (this.numRequests > 0) {\r\n this.cancelTimerQuioscoSubject.next();\r\n this.CuentaAtrasQuioscoSubject.next(null);\r\n } else {\r\n if (this.usuarioSimulado != null) {\r\n this.startTimerQuiosco();\r\n }\r\n }\r\n this.RequestActiveSubject.next(this.numRequests > 0);\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Funciones HTTP\r\n\r\n public HttpGet(url: string, params?: any, baseUrl?: string): Promise {\r\n this.addNumRequests(1);\r\n baseUrl = baseUrl || this.URL;\r\n let pipes: OperatorFunction[] = [];\r\n pipes.push(this.ResultClassPipe());\r\n pipes.push(this.HandleResultClassErrorSimple());\r\n pipes.push(this.TapRespuestaCorrectaPipe());\r\n pipes.push(this.TimeoutPipe());\r\n pipes.push(this.CaptureErrorPipe());\r\n return firstValueFrom(\r\n this.HttpGetObservable(baseUrl + url, {\r\n headers: this.ConfigureHeaders(),\r\n params: this.ConfigureParams(params),\r\n withCredentials: true,\r\n }).pipe(...(pipes as [OperatorFunction]))\r\n );\r\n }\r\n\r\n public HttpPost(url: string, params?: any, baseUrl?: string): Promise {\r\n this.addNumRequests(1);\r\n baseUrl = baseUrl || this.URL;\r\n let pipes: OperatorFunction[] = [];\r\n pipes.push(this.ResultClassPipe());\r\n pipes.push(this.HandleResultClassErrorSimple());\r\n pipes.push(this.TapRespuestaCorrectaPipe());\r\n pipes.push(this.TimeoutPipe());\r\n pipes.push(this.CaptureErrorPipe());\r\n params = params || {};\r\n return firstValueFrom(\r\n this.HttpPostObservable(baseUrl + url, JSON.stringify(params), {\r\n headers: this.ConfigureHeaders(),\r\n withCredentials: true,\r\n }).pipe(...(pipes as [OperatorFunction]))\r\n );\r\n }\r\n\r\n public HttpPostFormData(\r\n url: string,\r\n formData: FormData,\r\n baseUrl?: string\r\n ): Promise {\r\n this.addNumRequests(1);\r\n baseUrl = baseUrl || this.URL;\r\n let pipes: OperatorFunction[] = [];\r\n pipes.push(this.ResultClassPipe());\r\n pipes.push(this.HandleResultClassErrorSimple());\r\n pipes.push(this.TapRespuestaCorrectaPipe());\r\n pipes.push(this.TimeoutPipe());\r\n pipes.push(this.CaptureErrorPipe());\r\n return firstValueFrom(\r\n this.HttpPostObservable(baseUrl + url, formData, {\r\n headers: this.ConfigureHeaders(false as any),\r\n withCredentials: true,\r\n }).pipe(...(pipes as [OperatorFunction]))\r\n );\r\n }\r\n\r\n public HttpPut(url: string, params?: any, baseUrl?: string): Promise {\r\n this.addNumRequests(1);\r\n baseUrl = baseUrl || this.URL;\r\n let pipes: OperatorFunction[] = [];\r\n pipes.push(this.ResultClassPipe());\r\n pipes.push(this.HandleResultClassErrorSimple());\r\n pipes.push(this.TapRespuestaCorrectaPipe());\r\n pipes.push(this.TimeoutPipe());\r\n pipes.push(this.CaptureErrorPipe());\r\n params = params || {};\r\n return firstValueFrom(\r\n this.HttpPutObservable(baseUrl + url, JSON.stringify(params), {\r\n headers: this.ConfigureHeaders(),\r\n withCredentials: true,\r\n }).pipe(...(pipes as [OperatorFunction]))\r\n );\r\n }\r\n\r\n public HttpPutFormData(\r\n url: string,\r\n formData: FormData,\r\n baseUrl?: string\r\n ): Promise {\r\n this.addNumRequests(1);\r\n baseUrl = baseUrl || this.URL;\r\n let pipes: OperatorFunction[] = [];\r\n pipes.push(this.ResultClassPipe());\r\n pipes.push(this.HandleResultClassErrorSimple());\r\n pipes.push(this.TapRespuestaCorrectaPipe());\r\n pipes.push(this.TimeoutPipe());\r\n pipes.push(this.CaptureErrorPipe());\r\n return firstValueFrom(\r\n this.HttpPutObservable(baseUrl + url, formData, {\r\n headers: this.ConfigureHeaders(false as any),\r\n withCredentials: true,\r\n }).pipe(...(pipes as [OperatorFunction]))\r\n );\r\n }\r\n\r\n public HttpDelete(\r\n url: string,\r\n params?: any,\r\n baseUrl?: string\r\n ): Promise {\r\n this.addNumRequests(1);\r\n baseUrl = baseUrl || this.URL;\r\n let pipes: OperatorFunction[] = [];\r\n pipes.push(this.ResultClassPipe());\r\n pipes.push(this.HandleResultClassErrorSimple());\r\n pipes.push(this.TapRespuestaCorrectaPipe());\r\n pipes.push(this.TimeoutPipe());\r\n pipes.push(this.CaptureErrorPipe());\r\n return firstValueFrom(\r\n this.HttpDeleteObservable(baseUrl + url, {\r\n headers: this.ConfigureHeaders(),\r\n params: this.ConfigureParams(params),\r\n withCredentials: true,\r\n }).pipe(...(pipes as [OperatorFunction]))\r\n );\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Funciones Custom HTTP\r\n\r\n /* Utilizaremos estas funciones para procesar el Token cada vez que se disparan, de esta forma podremos reautenticarnos mediante el Retry\r\n de HandleHttpErrorPipe */\r\n\r\n private HttpGetObservable(\r\n url: string,\r\n params: {\r\n headers: HttpHeaders;\r\n params: HttpParams;\r\n withCredentials: boolean;\r\n }\r\n ): Observable {\r\n return defer(() => {\r\n if (this.loginToken != null) {\r\n params.headers = params.headers.delete('Access-Token');\r\n params.headers = params.headers.append('Access-Token', this.loginToken);\r\n }\r\n if (this.usuarioSimulado?.Token != null) {\r\n params.headers = params.headers.delete('Usuario-Simulado');\r\n params.headers = params.headers.append(\r\n 'Usuario-Simulado',\r\n this.usuarioSimulado.Token\r\n );\r\n }\r\n return this.http.get(url, {\r\n headers: params.headers,\r\n params: params.params,\r\n withCredentials: params.withCredentials,\r\n });\r\n });\r\n }\r\n\r\n private HttpPostObservable(\r\n url: string,\r\n body: string | FormData,\r\n params: {\r\n headers: HttpHeaders;\r\n withCredentials: boolean;\r\n }\r\n ): Observable {\r\n return defer(() => {\r\n if (this.loginToken != null) {\r\n params.headers = params.headers.delete('Access-Token');\r\n params.headers = params.headers.append('Access-Token', this.loginToken);\r\n }\r\n if (this.usuarioSimulado?.Token != null) {\r\n params.headers = params.headers.delete('Usuario-Simulado');\r\n params.headers = params.headers.append(\r\n 'Usuario-Simulado',\r\n this.usuarioSimulado.Token\r\n );\r\n }\r\n return this.http.post(url, body, {\r\n headers: params.headers,\r\n withCredentials: params.withCredentials,\r\n });\r\n });\r\n }\r\n\r\n private HttpPutObservable(\r\n url: string,\r\n body: string | FormData,\r\n params: {\r\n headers: HttpHeaders;\r\n withCredentials: boolean;\r\n }\r\n ): Observable {\r\n return defer(() => {\r\n if (this.loginToken != null) {\r\n params.headers = params.headers.delete('Access-Token');\r\n params.headers = params.headers.append('Access-Token', this.loginToken);\r\n }\r\n if (this.usuarioSimulado?.Token != null) {\r\n params.headers = params.headers.delete('Usuario-Simulado');\r\n params.headers = params.headers.append(\r\n 'Usuario-Simulado',\r\n this.usuarioSimulado.Token\r\n );\r\n }\r\n return this.http.put(url, body, {\r\n headers: params.headers,\r\n withCredentials: params.withCredentials,\r\n });\r\n });\r\n }\r\n\r\n private HttpDeleteObservable(\r\n url: string,\r\n params: {\r\n headers: HttpHeaders;\r\n params: HttpParams;\r\n withCredentials: boolean;\r\n }\r\n ): Observable {\r\n return defer(() => {\r\n if (this.loginToken != null) {\r\n params.headers = params.headers.delete('Access-Token');\r\n params.headers = params.headers.append('Access-Token', this.loginToken);\r\n }\r\n if (this.usuarioSimulado?.Token != null) {\r\n params.headers = params.headers.delete('Usuario-Simulado');\r\n params.headers = params.headers.append(\r\n 'Usuario-Simulado',\r\n this.usuarioSimulado.Token\r\n );\r\n }\r\n return this.http.delete(url, {\r\n headers: params.headers,\r\n params: params.params,\r\n withCredentials: params.withCredentials,\r\n });\r\n });\r\n }\r\n\r\n //#endregion\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class NotificacionesService extends ApiService {\r\n\r\n public async guardarTokenFirebase(tokenString: string): Promise {\r\n // Por alguna razón hace un POST pero pasa los parámetros por QueryString, para mantener compatibilidad sin romper la función HttpPost atacamos directamente a la URL\r\n await this.service.HttpPost(`/notificaciones/guardarTokenFirebase?tokenString=${encodeURIComponent(tokenString)}`, null)\r\n }\r\n\r\n public async eliminarTokenFirebase(tokenString: string): Promise {\r\n await this.service.HttpGet('/notificaciones/eliminarTokenFirebase', {\r\n tokenString: tokenString\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainService } from '../main.service';\r\nimport RetribucionesModel from '../../models/perfil/retribuciones';\r\nimport ComboModel from '../../models/vacaciones/combo';\r\nimport Modelo145Model from '../../models/ob/Modelo145';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class PerfilService extends ApiService {\r\n\r\n public async getListadoRetribuciones(): Promise {\r\n return await this.service.HttpGet('/perfil/getretribuciones', {\r\n \r\n })\r\n }\r\n\r\n public async getModelo145Usr(): Promise {\r\n return await this.service.HttpGet('/perfil/getmodelo145')\r\n }\r\n\r\n public async getSituacionesFamiliares(): Promise {\r\n return await this.service.HttpGet('/perfil/getsituacionesfamiliares')\r\n }\r\n\r\n public async getDiscapacidades(): Promise {\r\n return await this.service.HttpGet('/perfil/getdiscapacidades')\r\n }\r\n\r\n public async insertarModelo145(modelo: Modelo145Model): Promise {\r\n return await this.service.HttpPut('/perfil/modelo145', modelo)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport PermisosModel from 'src/app/models/permisos/permisos';\r\nimport PermisosConvenioModel from 'src/app/models/permisos/permisosConvenio';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport FiltrosVacacionesModel from 'src/app/models/vacaciones/filtrosVacaciones';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class PermisosService extends ApiService {\r\n\r\n //#region Listado\r\n\r\n public async getPermisosListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosVacacionesModel): Promise> {\r\n return await this.service.HttpGet('/permisos/getlistadopermisos', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Anio: filtro.anio || '',\r\n filtro_Estado: filtro.estadoId != null ? filtro.estadoId : ''\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Filtros\r\n\r\n public async getEstadosCombo(): Promise {\r\n return await this.service.HttpGet('/permisos/getestadoscombo')\r\n }\r\n\r\n public async getFiltroAniosPermisos(): Promise {\r\n return await this.service.HttpGet('/permisos/getfiltroaniospermisos')\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Form\r\n\r\n public async getNuevoPermiso(permisos: PermisosModel): Promise {\r\n return await this.service.HttpGet('/permisos/getnuevopermiso', {\r\n data: JSON.stringify(permisos)\r\n })\r\n }\r\n\r\n public async getResumenPermisos(permisos: PermisosModel): Promise {\r\n return await this.service.HttpGet('/permisos/getresumenpermisos', {\r\n data: JSON.stringify(permisos)\r\n })\r\n }\r\n\r\n public async obtenerInformacionDiasPermisos(permisos: PermisosModel): Promise {\r\n return await this.service.HttpGet('/permisos/obtenerinformaciondiaspermisos', {\r\n data: JSON.stringify(permisos)\r\n })\r\n }\r\n\r\n public async insertarPermisos(permisos: PermisosModel): Promise {\r\n return await this.service.HttpPut('/permisos/insertarpermisos', permisos)\r\n }\r\n\r\n public async getConveniosFamilias(): Promise {\r\n return await this.service.HttpGet('/permisos/getconveniosfamilias')\r\n }\r\n\r\n //#endregion\r\n\r\n //#region View\r\n\r\n public async getPermisosById(id: number): Promise {\r\n return await this.service.HttpGet('/permisos/getpermisosbyid', {\r\n id: id\r\n })\r\n }\r\n\r\n public async deletePeticionPermisos(id: number): Promise {\r\n return await this.service.HttpDelete('/permisos/eliminarpeticionpermisos', {\r\n id: id\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport FicherosModel from 'src/app/models/bajas/ficheros';\r\nimport usuarioFichajeQuioscoModel from 'src/app/models/quiosco/usuarioFichajeQuioscoModel';\r\nimport { MainService } from '../main.service';\r\nimport ConfiguracionResultModel from 'src/app/models/quiosco/configuracionResult';\r\nimport ConfiguracionCentrosModel from 'src/app/models/quiosco/configuracionCentros';\r\nimport ConfiguracionSubtiposModel from 'src/app/models/quiosco/configuracionSubtipos';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class QuioscoService extends ApiService {\r\n\r\n public async getLoginByCodigoPin(codigo: string): Promise {\r\n return await this.service.HttpGet('/quiosco/getloginbypin', {\r\n pin: codigo\r\n })\r\n }\r\n\r\n public async comprobarPasswordLogout(password: string): Promise {\r\n return await this.service.HttpGet('/quiosco/comprobarpasswordlogout', {\r\n password: password\r\n })\r\n }\r\n\r\n public async setUrlFotoFichaje(fichero: FicherosModel): Promise {\r\n return await this.service.HttpPost('/quiosco/seturlfotofichaje', fichero)\r\n }\r\n\r\n public async getConfiguracionQuiosco(): Promise {\r\n return await this.service.HttpGet('/quiosco/getConfiguracionQuiosco')\r\n }\r\n\r\n public async getCentros(): Promise {\r\n return await this.service.HttpGet('/quiosco/getCentros')\r\n }\r\n\r\n public async getSubtiposRegistros(): Promise {\r\n return await this.service.HttpGet('/quiosco/getSubtiposRegistros')\r\n }\r\n\r\n public async saveConfiguracion2(configuracion: ConfiguracionResultModel): Promise {\r\n return await this.service.HttpPost('/quiosco/saveConfiguracion2', configuracion)\r\n }\r\n\r\n public async getMensajeInformativoFichaje(): Promise {\r\n return await this.service.HttpGet('/quiosco/getMensajeInformativoFichaje')\r\n }\r\n\r\n public async getPermiteVisitas(): Promise {\r\n return await this.service.HttpGet('/quiosco/getPermiteVisitas')\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport singularDate from 'src/app/models/general/singularDate';\r\nimport ProyectosHorasModel from 'src/app/models/proyectos/proyectosHoras';\r\nimport BalanceModel from 'src/app/models/registros/balance';\r\nimport EditObservacionesModel from 'src/app/models/registros/editObservaciones';\r\nimport HorasTrabajaHoyModel from 'src/app/models/registros/horasTrabajaHoy';\r\nimport PuedeFicharModel from 'src/app/models/registros/puedeFichar';\r\nimport RegistrosModel from 'src/app/models/registros/registros';\r\nimport ResumenJornadaModel from 'src/app/models/registros/resumenJornada';\r\nimport { MainService } from '../main.service';\r\nimport RegistrosTotalizadosModel from 'src/app/models/registros/registrosTotalizados';\r\nimport ResumenJornadaTurnosModel from 'src/app/models/registros/resumenTurno';\r\nimport ResumenTurno from 'src/app/models/registros/resumenTurno';\r\nimport RegistroModel from 'src/app/models/registro/registro';\r\nimport ApiService from 'src/app/models/general/apiService';\r\nimport PagingWithUltimoRegistro from 'src/app/models/general/pagingWithUltimoRegistro';\r\n\r\nexport class RegistrosService extends ApiService {\r\n\r\n public async getRegistros(filtro_fecha: string): Promise {\r\n return this.service.HttpGet('/registros/listado', {\r\n filtro_fecha: filtro_fecha\r\n })\r\n }\r\n\r\n public async getRegistro(id: number): Promise {\r\n return await this.service.HttpGet('/registros/byId', {\r\n id: id\r\n })\r\n }\r\n\r\n public async getRegistrosHoy(): Promise> {\r\n return await this.service.HttpGet('/registros/registrosHoy')\r\n }\r\n\r\n public async saveRegistros(registro: RegistrosModel): Promise {\r\n return await this.service.HttpPost('/registros', registro)\r\n }\r\n\r\n public async deleteRegistro(id: number): Promise {\r\n return await this.service.HttpDelete('/registros', {\r\n id: id\r\n })\r\n }\r\n\r\n public async puedeFichar(): Promise {\r\n return await this.service.HttpGet('/registros/puedeFichar')\r\n }\r\n\r\n public async estaEnDistancia(latitud: number, longitud: number, timeZone: string): Promise {\r\n return await this.service.HttpGet('/registros/estaEnDistanciaLatLngTz', {\r\n latitud: latitud ? latitud.toString() : '',\r\n longitud: longitud ? longitud.toString() : '',\r\n timeZone: timeZone\r\n })\r\n }\r\n\r\n public async horasTrabajoHoy(): Promise {\r\n return await this.service.HttpGet('/registros/horasTrabajoHoyNew')\r\n }\r\n\r\n public async balanceMinutos(timeZone: string): Promise {\r\n return await this.service.HttpGet('/registros/balanceMinutosWithTimeZone', {\r\n timeZone: (timeZone || '')\r\n })\r\n }\r\n\r\n public async insertarRegistro(tipo: number, observaciones: string, latitud: number, longitud: number, accuracy: number, timeZone: string, proyectoId: number): Promise {\r\n return await this.service.HttpGet('/registros/insertarRegistroWithTimeZone', {\r\n tipo: tipo ? tipo.toString() : '',\r\n observaciones: observaciones || '',\r\n latitud: latitud ? latitud.toString() : '',\r\n longitud: longitud ? longitud.toString(): '',\r\n accuracy: accuracy ? accuracy.toString(): '',\r\n timeZone: timeZone || '',\r\n proyectoId: proyectoId ? proyectoId.toString() : ''\r\n })\r\n }\r\n\r\n public async guardarFichajeSugerido(tipo: number, observaciones: string, latitud: number, longitud: number, accuracy: number, timeZone: string): Promise {\r\n return await this.service.HttpGet('/registros/guardarFichajeSugeridoWithTimeZone', {\r\n tipo: tipo ? tipo.toString() : '',\r\n observaciones: observaciones || '',\r\n latitud: latitud ? latitud.toString() : '',\r\n longitud: longitud ? longitud.toString() : '',\r\n accuracy: accuracy ? accuracy.toString() : '',\r\n timeZone: timeZone || ''\r\n })\r\n }\r\n\r\n public async insertarRegistroPersonalizado(tipo: number, observaciones: string, latitud: number, longitud: number, accuracy: number, hora: string, pausas: string, timeZone: string): Promise {\r\n return await this.service.HttpGet('/registros/insertarRegistroPersonalizadoWithTimeZone', {\r\n tipo: tipo ? tipo.toString() : '',\r\n observaciones: observaciones || '',\r\n latitud: latitud ? latitud.toString() : '',\r\n longitud: longitud ? longitud.toString() : '',\r\n accuracy: accuracy ? accuracy.toString() : '',\r\n hora: hora,\r\n pausas: pausas,\r\n timeZone: timeZone || ''\r\n })\r\n }\r\n\r\n public async insertarRegistroPersonalizadoPresencia(tipo: number, observaciones: string, latitud: number, longitud: number, accuracy: number, modificar: boolean, hora: string, timeZone: string): Promise {\r\n return await this.service.HttpGet('/registros/insertarRegistroPersonalizadoPresenciaWithTimeZone', {\r\n tipo: tipo?.toString() || '',\r\n observaciones: observaciones || '',\r\n latitud: latitud?.toString() || '',\r\n longitud: longitud?.toString() || '',\r\n accuracy: accuracy?.toString() || '',\r\n modificar: (modificar || false).toString(),\r\n hora: hora,\r\n timeZone: timeZone || ''\r\n })\r\n }\r\n\r\n public async getCalendario(ano: number, mes: number): Promise {\r\n return await this.service.HttpGet('/registros/getCalendario', {\r\n ano: ano,\r\n mes: mes\r\n })\r\n }\r\n\r\n public async getLeyendaTurnos(ano: number, mes: number): Promise {\r\n return await this.service.HttpGet('/registros/getLeyendaTurnos', {\r\n ano: ano,\r\n mes: mes\r\n })\r\n }\r\n\r\n public async cargaMensajeConfirmacionJornada(): Promise {\r\n let timeZone = (Intl.DateTimeFormat().resolvedOptions().timeZone) || \"\"\r\n return await this.service.HttpGet('/registros/cargaMensajeConfirmacionJornadaWithTimeZone', {\r\n timeZone: timeZone\r\n })\r\n }\r\n\r\n public async cargaResumenTurno(): Promise {\r\n return await this.service.HttpGet('/registros/cargaResumenTurno')\r\n }\r\n\r\n public async rectificarFinJornada(): Promise {\r\n return await this.service.HttpGet('/registros/rectificarFinJornada')\r\n }\r\n\r\n public async cargaObservaciones(id: number): Promise {\r\n return await this.service.HttpGet('/registros/cargaObservaciones', {\r\n id: id\r\n })\r\n }\r\n\r\n public async cargaSolicitudCambioHora(id: number): Promise {\r\n return await this.service.HttpGet('/registros/cargaSolicitudCambioHora', {\r\n id: id\r\n })\r\n }\r\n\r\n public async saveObservaciones(id: number, observaciones: string): Promise {\r\n return await this.service.HttpPost('/registros/observaciones', {\r\n id: id,\r\n observaciones: observaciones,\r\n HoraActualizadaFichaje: null\r\n })\r\n }\r\n\r\n public async solicitarCambioHora(id: number, observaciones: string, HoraActualizadaFichaje: string): Promise {\r\n return await this.service.HttpPost('/registros/solicitarCambioHora', {\r\n id: id,\r\n observaciones: observaciones,\r\n HoraActualizadaFichaje: HoraActualizadaFichaje\r\n })\r\n }\r\n\r\n public async cambiarProyecto(latitud: number, longitud: number, timeZone: string, proyectoId: number): Promise {\r\n return await this.service.HttpGet('/registros/cambiarProyectoWithTimeZone', {\r\n latitud: latitud ? latitud.toString() : '',\r\n longitud: longitud ? longitud.toString() : '',\r\n timeZone: timeZone || '',\r\n proyectoId: proyectoId ? proyectoId.toString() : ''\r\n })\r\n }\r\n\r\n public async guardarHorasProyectos(horasProyectos: ProyectosHorasModel[], fecha: string): Promise {\r\n return await this.service.HttpPost('/registros/guardarHorasProyectos', {\r\n horas: horasProyectos,\r\n fecha: fecha\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport ReservasModel from 'src/app/models/reservas/reservas';\r\nimport SalasModel from 'src/app/models/reservas/salas';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport FiltrosVacacionesModel from 'src/app/models/vacaciones/filtrosVacaciones';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class ReservasService extends ApiService {\r\n\r\n //#region Get\r\n\r\n public async getReservasListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosVacacionesModel): Promise> {\r\n return await this.service.HttpGet('/reservas/getlistadoreservas', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Anio: filtro.anio || '',\r\n filtro_EstadoId: filtro.estadoId != null ? filtro.estadoId : ''\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Filtros\r\n\r\n public async getEstadosCombo(): Promise {\r\n return await this.service.HttpGet('/reservas/getestadoscombo')\r\n }\r\n\r\n public async getSalasSelector(padreId: string): Promise {\r\n return await this.service.HttpGet('/reservas/getsalasselector', {\r\n padreId: padreId\r\n })\r\n }\r\n\r\n public async getFiltroAniosReservas(): Promise {\r\n return await this.service.HttpGet('/reservas/getfiltroaniosreservas')\r\n }\r\n\r\n public async getReservaById(id: number): Promise {\r\n return await this.service.HttpGet('/reservas/getreservasbyid', {\r\n id: id\r\n })\r\n }\r\n\r\n public async getHorasOcupadas(SalaId: string, fechaFiltroInicio: string, fechaFiltroFin: string): Promise {\r\n return await this.service.HttpGet('/reservas/gethorasocupadas', {\r\n SalaId: SalaId,\r\n fechaFiltroInicio: fechaFiltroInicio,\r\n fechaFiltroFin: fechaFiltroFin\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Post\r\n\r\n public async insertarReservas(reservas: ReservasModel): Promise {\r\n return await this.service.HttpPut('/reservas/insertarreservas', reservas)\r\n }\r\n\r\n public async deleteReserva(id: number): Promise {\r\n await this.service.HttpDelete('/reservas/eliminarreserva', {\r\n id: id\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainService } from '../main.service';\r\nimport GraficoTiemposPausasModel from 'src/app/models/resumen/datosGraficos'\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class ResumenService extends ApiService {\r\n\r\n public async getDataGraficoTiemposPausas(fechaInicio: string, fechaFin: string): Promise {\r\n return await this.service.HttpGet('/resumen/getdatosgraficos', {\r\n fechaInicial: fechaInicio,\r\n fechaFinal: fechaFin\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport SolicitudesAnoModel from 'src/app/models/solicitudes/solicitudesAno';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class SolicitudesService extends ApiService {\r\n\r\n public async getSolicitudesAno(): Promise {\r\n return await this.service.HttpGet('/solicitudes/getSolicitudesAno', {\r\n ano: new Date().getFullYear()\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\nimport TareasProyectosModel from 'src/app/models/tareas/tareasProyectos';\r\nimport TareasProyectosResultModel from 'src/app/models/tareas/tareasProyectosResul';\r\nimport TareasModel from 'src/app/models/tareas/tareas';\r\nimport TareasCategoriasModel from 'src/app/models/tareas/tareasCategorias';\r\nimport PagingModel from 'src/app/models/general/paging';\r\n\r\nexport class TareasService extends ApiService {\r\n\r\n public async getTareasDia(filtro_Dia: string): Promise {\r\n return await this.service.HttpGet('/tareas/gettareasdia', {\r\n filtro_Dia: filtro_Dia\r\n })\r\n }\r\n\r\n public async getTareasBuscador(start: number, limit: number, filtro_Exclude: string, filtro_Busqueda: string, filtro_Dia: string): Promise> {\r\n return await this.service.HttpGet('/tareas/gettareasbuscador', {\r\n start: start,\r\n limit: limit,\r\n filtro_Exclude: filtro_Exclude,\r\n filtro_Busqueda: filtro_Busqueda,\r\n filtro_Dia: filtro_Dia\r\n })\r\n }\r\n\r\n public async getUltimasTreas(filtro_Exclude: string, filtro_Dia: string): Promise {\r\n return await this.service.HttpGet('/tareas/getultimastareas', {\r\n filtro_Exclude: filtro_Exclude,\r\n filtro_Dia: filtro_Dia\r\n })\r\n }\r\n\r\n public async getImputacionesTarea(filtro_Tarea: string): Promise {\r\n return await this.service.HttpGet('/tareas/getimputacionestarea', {\r\n filtro_Tarea: filtro_Tarea\r\n })\r\n }\r\n\r\n public async getCategoriasTareas(): Promise {\r\n return await this.service.HttpGet('/tareas/getcategoriastareas', {\r\n })\r\n }\r\n\r\n public async anclartarea(tareaId: number): Promise {\r\n return await this.service.HttpPut('/tareas/anclartarea', tareaId)\r\n }\r\n\r\n public async insertarImputaciones(tareasProyectosResult: TareasProyectosResultModel): Promise {\r\n return await this.service.HttpPut('/tareas/insertarimputaciones', tareasProyectosResult)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport FiltrosTeamModel from 'src/app/models/team/filtrosTeam';\r\nimport TeamsModel from 'src/app/models/team/teams';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class TeamsService extends ApiService {\r\n\r\n public async getTeamsListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosTeamModel): Promise> {\r\n return this.service.HttpGet('/team/getteamlist', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Departamento: filtro.departamentoId || '',\r\n filtro_Nombre: filtro.texto\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport { MainService } from '../main.service';\r\nimport TiposModel from '../../models/tipos/tipos'\r\nimport ProyectosResModel from 'src/app/models/proyectos/proyectosRes';\r\nimport ProyectoHorasRes from 'src/app/models/proyectos/proyectoHorasRes';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class TiposService extends ApiService {\r\n\r\n public async getTipos(): Promise> {\r\n return this.service.HttpGet('/tipos/allTipos')\r\n }\r\n\r\n public async getProyectos(): Promise {\r\n return await this.service.HttpGet('/tipos/allProyectos')\r\n }\r\n\r\n public async getProyectosHoras(fecha: string): Promise {\r\n return await this.service.HttpGet('/tipos/allProyectosHoras', {\r\n fecha: fecha\r\n })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingModel from 'src/app/models/general/paging';\r\nimport singularDate from 'src/app/models/general/singularDate';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\nimport FiltrosVacacionesModel from 'src/app/models/vacaciones/filtrosVacaciones';\r\nimport VacacionesModel from 'src/app/models/vacaciones/vacaciones';\r\nimport VacacionesInfoModel from 'src/app/models/vacaciones/vacacionesInfo';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class VacacionesService extends ApiService {\r\n\r\n //#region Info Resumen\r\n\r\n public async getNuevoVacaciones(vacaciones: VacacionesModel): Promise {\r\n return await this.service.HttpGet('/vacaciones/getnuevovacaciones', {\r\n data: JSON.stringify(vacaciones)\r\n })\r\n }\r\n\r\n public async getInfoVacaciones(): Promise {\r\n return await this.service.HttpGet('/vacaciones/getresumenvacaciones')\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Vacaciones\r\n\r\n public async getVacacionesById(id: number): Promise {\r\n return await this.service.HttpGet('/vacaciones/getvacacionesbyid', {\r\n id: id\r\n })\r\n }\r\n\r\n public async obtenerInformacionDiasVacaciones(vacaciones: VacacionesModel): Promise {\r\n return await this.service.HttpGet('/vacaciones/obtenerinformaciondiasvacaciones', {\r\n data: JSON.stringify(vacaciones)\r\n })\r\n }\r\n\r\n public async getVacacionesListado(start: number, limit: number, sort: string, dir: string, filtro: FiltrosVacacionesModel): Promise> {\r\n return await this.service.HttpGet('/vacaciones/getlistadovacaciones', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir,\r\n filtro_Anio: filtro.anio || '',\r\n filtro_Estado: filtro.estadoId != null ? filtro.estadoId : ''\r\n })\r\n }\r\n\r\n public async insertarVacaciones(vacaciones: VacacionesModel): Promise {\r\n return await this.service.HttpPut('/vacaciones/insertarvacaciones', vacaciones)\r\n }\r\n\r\n public async deletePeticionVacaciones(id: number): Promise {\r\n await this.service.HttpDelete('/vacaciones/eliminarpeticionvacaciones', {\r\n id: id\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Calendario\r\n\r\n public async getCalendario(anos: number[]): Promise {\r\n return await this.service.HttpGet('/vacaciones/getCalendario', {\r\n anios: JSON.stringify(anos)\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Filtros\r\n\r\n public async getEstadosCombo(): Promise {\r\n return await this.service.HttpGet('/vacaciones/getestadoscombo')\r\n }\r\n\r\n public async getFiltroAniosVacaciones(): Promise {\r\n return await this.service.HttpGet('/vacaciones/getfiltroaniosvacaciones')\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MainService } from '../main.service';\r\nimport VersionAppModel from '../../models/versiones/versionApp';\r\nimport { GlobalesService } from '../../services/globales.service';\r\nimport { ConfigService } from '../../services/config.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class VersionesService extends ApiService {\r\n\r\n constructor(\r\n public service: MainService,\r\n private _config: ConfigService\r\n ) { \r\n super(service)\r\n }\r\n\r\n public async getVersionesApp(): Promise {\r\n return await this.service.HttpGet('/api/versiones/versionesApp', {\r\n version: GlobalesService.version\r\n }, this._config.getUrlInstances())\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport ApiService from 'src/app/models/general/apiService';\r\nimport PreguntasVisitasModel from 'src/app/models/visitas/preguntasVisitas';\r\nimport TiposVisitasModel from 'src/app/models/visitas/tiposVisitas';\r\nimport VisitasModel from 'src/app/models/visitas/visitas';\r\n\r\nexport class VisitasService extends ApiService {\r\n\r\n public async getTiposVisitas(): Promise {\r\n return await this.service.HttpGet('/visitas/gettiposvisitas')\r\n }\r\n\r\n public async getDatosVisita(TipoVisitaId): Promise {\r\n return await this.service.HttpGet('/visitas/getdatosvisita', {\r\n TipoVisitaId: TipoVisitaId\r\n })\r\n }\r\n\r\n public async insertarVisita(visita: VisitasModel): Promise {\r\n return await this.service.HttpPut('/visitas/insertarvisitas', visita)\r\n }\r\n\r\n public async finalizarVisita(DNI: String): Promise {\r\n return await this.service.HttpPut('/visitas/finalizarvisitas', DNI)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PagingWithSinLeerModel from 'src/app/models/general/pagingWithSinLeer';\r\nimport WikiModel from 'src/app/models/wiki/wiki';\r\nimport { MainService } from '../main.service';\r\nimport ApiService from 'src/app/models/general/apiService';\r\n\r\nexport class WikiService extends ApiService {\r\n\r\n //#region Listado\r\n\r\n public async getWikiListado(start: number, limit: number, sort: string, dir: string): Promise> {\r\n return await this.service.HttpGet('/wiki/getlistadowiki', {\r\n start: start,\r\n limit: limit,\r\n sort: sort,\r\n dir: dir\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region View\r\n\r\n public async getWikiById(id: number): Promise {\r\n return await this.service.HttpGet('/wiki/getwikibyid', {\r\n id: id\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\r\nimport { BajasViewResolver } from './pages/bajas-view/bajas-view.resolver';\r\nimport { ConfirmacionJornadaResolver } from './pages/confirmacion-jornada/confirmacion-jornada.resolver';\r\nimport { EditObservacionesResolver } from './pages/edit-observaciones/edit-observaciones.resolver';\r\nimport { HorasExtraViewResolver } from './pages/horas-extra-view/horas-extra-view-resolver';\r\nimport { PermisosViewResolver } from './pages/permisos-view/permisos-view.resolver';\r\nimport { ProyectosFinJornadaResolver } from './pages/proyectos-fin-jornada/proyectos-fin-jornada.resolver';\r\nimport { ReservasViewResolver } from './pages/reservas-view/reservas-view.resolver';\r\nimport { SolicitudCambioHoraResolver } from './pages/solicitud-cambio-hora/solicitud-cambio-hora.resolver';\r\nimport { SolicitudesResolver } from './pages/solicitudes/solicitudes-resolver';\r\nimport { VacacionesViewResolver } from './pages/vacaciones-view/vacaciones-view.resolver';\r\nimport { WikiViewResolver } from './pages/wiki-view/wiki-view-resolver';\r\nimport { QuioscoconfiguracionResolver } from './pages/quioscoconfiguracion/quioscoconfiguracion.resolver';\r\nimport { QuioscoconfiguracionCentrosResolver } from './pages/quioscoconfiguracion/quioscoconfiguracion-centros.resolver';\r\nimport { QuioscoconfiguracionSubtiposResolver } from './pages/quioscoconfiguracion/quioscoconfiguracion-subtipos.resolver';\r\nimport { GastosViewResolver } from './pages/gastos-view/gastos-view-resolver';\r\nimport { ChatViewResolver } from './pages/chat-view/chat-view-resolver';\r\nimport { HorarioPersonalizadoPresenciaResolver } from './pages/horario-personalizado-presencia/horario-personalizado-presencia.resolver';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'login',\r\n loadChildren: () => import('./pages/login/login.module').then(m => m.LoginPageModule)\r\n },\r\n {\r\n path: 'registro',\r\n loadChildren: () => import('./pages/registro/registro.module').then(m => m.RegistroPageModule)\r\n },\r\n {\r\n path: 'recovery',\r\n loadChildren: () => import('./pages/recovery/recovery.module').then(m => m.RecoveryPageModule)\r\n },\r\n {\r\n path: 'registro-completado',\r\n loadChildren: () => import('./pages/registro-completado/registro-completado.module').then(m => m.RegistroCompletadoPageModule)\r\n },\r\n {\r\n path: 'registro-completado-movil',\r\n loadChildren: () => import('./pages/registro-completado-movil/registro-completado-movil.module').then(m => m.RegistroCompletadoMovilPageModule)\r\n },\r\n {\r\n path: 'home',\r\n loadChildren: () => import('./pages/home/home.module').then(m => m.HomePageModule)\r\n },\r\n {\r\n path: 'edit-observaciones/:id',\r\n resolve: {\r\n registro: EditObservacionesResolver\r\n },\r\n loadChildren: () => import('./pages/edit-observaciones/edit-observaciones.module').then(m => m.EditObservacionesPageModule)\r\n },\r\n {\r\n path: 'solicitud-cambio-hora/:id',\r\n resolve: {\r\n registro: SolicitudCambioHoraResolver\r\n },\r\n loadChildren: () => import('./pages/solicitud-cambio-hora/solicitud-cambio-hora.module').then(m => m.SolicitudCambioHoraPageModule)\r\n },\r\n {\r\n path: 'registros-list',\r\n loadChildren: () => import('./pages/registros-list/registros-list.module').then(m => m.RegistrosListPageModule)\r\n },\r\n {\r\n path: 'resumen',\r\n loadChildren: () => import('./pages/resumen/resumen.module').then(m => m.ResumenPageModule)\r\n },\r\n {\r\n path: 'solicitudes',\r\n resolve: {\r\n solicitudesAno: SolicitudesResolver\r\n },\r\n loadChildren: () => import('./pages/solicitudes/solicitudes.module').then(m => m.SolicitudesPageModule)\r\n },\r\n {\r\n path: 'vacaciones',\r\n loadChildren: () => import('./pages/vacaciones/vacaciones.module').then(m => m.VacacionesPageModule)\r\n },\r\n {\r\n path: 'permisos-list',\r\n loadChildren: () => import('./pages/permisos-list/permisos-list.module').then(m => m.PermisosListPageModule)\r\n },\r\n {\r\n path: 'bajas-list',\r\n loadChildren: () => import('./pages/bajas-list/bajas-list.module').then(m => m.BajasListPageModule)\r\n },\r\n {\r\n path: 'reservas-list',\r\n loadChildren: () => import('./pages/reservas-list/reservas-list.module').then(m => m.ReservasListPageModule)\r\n },\r\n {\r\n path: 'vacaciones-list',\r\n loadChildren: () => import('./pages/vacaciones-list/vacaciones-list.module').then(m => m.VacacionesListPageModule)\r\n },\r\n {\r\n path: 'vacaciones-view/:id',\r\n resolve: {\r\n vacaciones: VacacionesViewResolver\r\n },\r\n loadChildren: () => import('./pages/vacaciones-view/vacaciones-view.module').then(m => m.VacacionesViewPageModule)\r\n },\r\n {\r\n path: 'bajas-view/:id',\r\n resolve: {\r\n bajas: BajasViewResolver\r\n },\r\n loadChildren: () => import('./pages/bajas-view/bajas-view.module').then(m => m.BajasViewPageModule)\r\n },\r\n {\r\n path: 'bajas-form',\r\n loadChildren: () => import('./pages/bajas-form/bajas-form.module').then(m => m.BajasFormPageModule)\r\n },\r\n {\r\n path: 'permisos-view/:id',\r\n resolve: {\r\n permisos: PermisosViewResolver\r\n },\r\n loadChildren: () => import('./pages/permisos-view/permisos-view.module').then(m => m.PermisosViewPageModule)\r\n },\r\n {\r\n path: 'permisos-form',\r\n loadChildren: () => import('./pages/permisos-form/permisos-form.module').then(m => m.PermisosFormPageModule)\r\n },\r\n {\r\n path: 'permisos-modal',\r\n loadChildren: () => import('./pages/permisos-modal/permisos-modal.module').then(m => m.PermisosModalPageModule)\r\n },\r\n {\r\n path: 'vacaciones-form',\r\n loadChildren: () => import('./pages/vacaciones-form/vacaciones-form.module').then(m => m.VacacionesFormPageModule)\r\n },\r\n {\r\n path: 'reservas-form',\r\n loadChildren: () => import('./pages/reservas-form/reservas-form.module').then(m => m.ReservasFormPageModule)\r\n },\r\n {\r\n path: 'reservas-modal',\r\n loadChildren: () => import('./pages/reservas-modal/reservas-modal.module').then(m => m.ReservasModalPageModule)\r\n },\r\n {\r\n path: 'reservas-view/:id',\r\n resolve: {\r\n reservas: ReservasViewResolver,\r\n },\r\n loadChildren: () => import('./pages/reservas-view/reservas-view.module').then(m => m.ReservasViewPageModule)\r\n },\r\n {\r\n path: 'documentacion-pin',\r\n loadChildren: () => import('./pages/documentacion-pin/documentacion-pin.module').then(m => m.DocumentacionPinPageModule)\r\n },\r\n {\r\n path: 'documentacion-tipos',\r\n loadChildren: () => import('./pages/documentacion-tipos/documentacion-tipos.module').then(m => m.DocumentacionTiposPageModule)\r\n },\r\n {\r\n path: 'documentacion/:id',\r\n loadChildren: () => import('./pages/documentacion/documentacion.module').then(m => m.DocumentacionPageModule)\r\n },\r\n {\r\n path: 'team',\r\n loadChildren: () => import('./pages/team/team.module').then(m => m.TeamPageModule)\r\n },\r\n {\r\n path: 'wiki-list',\r\n loadChildren: () => import('./pages/wiki-list/wiki-list.module').then(m => m.WikiListPageModule)\r\n },\r\n {\r\n path: 'wiki-view/:id',\r\n resolve: {\r\n wiki: WikiViewResolver\r\n },\r\n loadChildren: () => import('./pages/wiki-view/wiki-view.module').then(m => m.WikiViewPageModule)\r\n },\r\n {\r\n path: 'configuracion',\r\n loadChildren: () => import('./pages/configuracion/configuracion.module').then(m => m.ConfiguracionPageModule)\r\n },\r\n {\r\n path: 'update',\r\n loadChildren: () => import('./pages/update/update.module').then(m => m.UpdatePageModule)\r\n },\r\n {\r\n path: 'privacidad',\r\n loadChildren: () => import('./pages/privacidad/privacidad.module').then(m => m.PrivacidadPageModule)\r\n },\r\n {\r\n path: 'confirmacion-jornada/:tipoid',\r\n resolve: {\r\n resumenJornada: ConfirmacionJornadaResolver\r\n },\r\n loadChildren: () => import('./pages/confirmacion-jornada/confirmacion-jornada.module').then(m => m.ConfirmacionJornadaPageModule)\r\n },\r\n {\r\n path: 'horario-personalizado/:tipoid',\r\n resolve: {\r\n resumenJornada: ConfirmacionJornadaResolver\r\n },\r\n loadChildren: () => import('./pages/horario-personalizado/horario-personalizado.module').then(m => m.HorarioPersonalizadoPageModule)\r\n },\r\n {\r\n path: 'quiosco-foto',\r\n loadChildren: () => import('./pages/quiosco-foto/quiosco-foto.module').then(m => m.QuioscoFotoPageModule)\r\n },\r\n {\r\n path: 'quiosco',\r\n loadChildren: () => import('./pages/quiosco/quiosco.module').then(m => m.QuioscoPageModule)\r\n },\r\n {\r\n path: 'proyectos-fin-jornada/:fecha',\r\n resolve: {\r\n proyectos: ProyectosFinJornadaResolver\r\n },\r\n loadChildren: () => import('./pages/proyectos-fin-jornada/proyectos-fin-jornada.module').then(m => m.ProyectosFinJornadaPageModule)\r\n },\r\n {\r\n path: 'proyectos-fin-jornada',\r\n resolve: {\r\n proyectos: ProyectosFinJornadaResolver\r\n },\r\n loadChildren: () => import('./pages/proyectos-fin-jornada/proyectos-fin-jornada.module').then(m => m.ProyectosFinJornadaPageModule)\r\n },\r\n {\r\n path: 'storeupdate',\r\n loadChildren: () => import('./pages/storeupdate/storeupdate.module').then(m => m.StoreupdatePageModule)\r\n },\r\n {\r\n path: 'modelo145',\r\n loadChildren: () => import('./pages/modelo145/modelo145.module').then(m => m.Modelo145PageModule)\r\n },\r\n {\r\n path: 'ascendiente-usuario',\r\n loadChildren: () => import('./pages/ascendiente-usuario/ascendiente-usuario.module').then(m => m.AscendienteUsuarioPageModule)\r\n },\r\n {\r\n path: 'hijo-usuario',\r\n loadChildren: () => import('./pages/hijo-usuario/hijo-usuario.module').then(m => m.HijoUsuarioPageModule)\r\n },\r\n {\r\n path: 'horas-extra-list',\r\n loadChildren: () => import('./pages/horas-extra-list/horas-extra-list.module').then(m => m.HorasExtraListPageModule)\r\n },\r\n {\r\n path: 'horas-extra-form',\r\n loadChildren: () => import('./pages/horas-extra-form/horas-extra-form.module').then(m => m.HorasExtraFormPageModule)\r\n },\r\n {\r\n path: 'horas-extra-view/:id',\r\n resolve: {\r\n horasExtra: HorasExtraViewResolver\r\n },\r\n loadChildren: () => import('./pages/horas-extra-view/horas-extra-view.module').then(m => m.HorasExtraViewPageModule)\r\n },\r\n {\r\n path: 'horas-extra-modal',\r\n loadChildren: () => import('./pages/horas-extra-modal/horas-extra-modal.module').then(m => m.HorasExtraModalPageModule)\r\n },\r\n {\r\n path: 'gastos-list',\r\n loadChildren: () => import('./pages/gastos-list/gastos-list.module').then( m => m.GastosListPageModule)\r\n },\r\n {\r\n path: 'gastos-form',\r\n loadChildren: () => import('./pages/gastos-form/gastos-form.module').then( m => m.GastosFormPageModule)\r\n },\r\n {\r\n path: 'gastos-view/:id',\r\n resolve: {\r\n gastos: GastosViewResolver\r\n },\r\n loadChildren: () => import('./pages/gastos-view/gastos-view.module').then( m => m.GastosViewPageModule)\r\n },\r\n {\r\n path: 'quioscoconfiguracion',\r\n resolve: {\r\n configuracionQuiosco: QuioscoconfiguracionResolver,\r\n centros: QuioscoconfiguracionCentrosResolver,\r\n subTipos: QuioscoconfiguracionSubtiposResolver\r\n },\r\n loadChildren: () => import('./pages/quioscoconfiguracion/quioscoconfiguracion.module').then( m => m.QuioscoconfiguracionPageModule)\r\n },\r\n {\r\n path: 'chat-list',\r\n loadChildren: () => import('./pages/chat-list/chat-list.module').then( m => m.ChatListPageModule)\r\n },\r\n {\r\n path: 'chat-view/:SalaId',\r\n resolve: {\r\n SalaId: ChatViewResolver\r\n },\r\n loadChildren: () => import('./pages/chat-view/chat-view.module').then( m => m.ChatViewPageModule)\r\n },\r\n {\r\n path: 'horario-personalizado-presencia/:tipoid',\r\n resolve: {\r\n datosTurno: HorarioPersonalizadoPresenciaResolver\r\n },\r\n loadChildren: () => import('./pages/horario-personalizado-presencia/horario-personalizado-presencia.module').then( m => m.HorarioPersonalizadoPresenciaPageModule)\r\n },\r\n {\r\n path: 'chat-view-modal',\r\n loadChildren: () => import('./pages/chat-view-modal/chat-view-modal.module').then( m => m.ChatViewModalPageModule)\r\n },\r\n {\r\n path: 'gastos-form-modal',\r\n loadChildren: () => import('./pages/gastos-form-modal/gastos-form-modal.module').then( m => m.GastosFormModalPageModule)\r\n },\r\n {\r\n path: 'tareas-view',\r\n loadChildren: () => import('./pages/tareas-view/tareas-view.module').then( m => m.TareasViewPageModule)\r\n },\r\n {\r\n path: 'tareas-form',\r\n loadChildren: () => import('./pages/tareas-form/tareas-form.module').then( m => m.TareasFormPageModule)\r\n },\r\n {\r\n path: 'tareas-buscador',\r\n loadChildren: () => import('./pages/tareas-buscador/tareas-buscador.module').then( m => m.TareasBuscadorPageModule)\r\n },\r {\n path: 'gastos-proyectos-modal',\n loadChildren: () => import('./pages/gastos-proyectos-modal/gastos-proyectos-modal.module').then( m => m.GastosProyectosModalPageModule)\n },\n {\n path: 'visitas-registro',\n loadChildren: () => import('./pages/visitas-registro/visitas-registro.module').then( m => m.VisitasRegistroPageModule)\n },\n {\n path: 'visitas-tipo',\n loadChildren: () => import('./pages/visitas-tipo/visitas-tipo.module').then( m => m.VisitasTipoPageModule)\n },\n {\n path: 'visitas-preguntas',\n loadChildren: () => import('./pages/visitas-preguntas/visitas-preguntas.module').then( m => m.VisitasPreguntasPageModule)\n },\n {\n path: 'visitas-salida',\n loadChildren: () => import('./pages/visitas-salida/visitas-salida.module').then( m => m.VisitasSalidaPageModule)\n },\n\n\r\n\r\n\r\n\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, NgZone } from '@angular/core';\r\nimport { MenuController, NavController, Platform } from '@ionic/angular';\r\nimport { ConfigService } from './services/config.service';\r\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\r\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\r\nimport { AlertService } from './services/alert.service';\r\nimport { MainService } from './api/main.service';\r\nimport { SwUpdate } from '@angular/service-worker';\r\nimport { LocationStrategy } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { GlobalesService } from './services/globales.service';\r\nimport { IonicConfig } from '@ionic/core';\r\nimport { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';\r\nimport Util from './util/util';\r\nimport NotificationModel from './models/notification/notification';\r\nimport usuarioFichajeQuioscoModel from './models/quiosco/usuarioFichajeQuioscoModel';\r\nimport { LoaderService } from './services/loader.service';\r\nimport { TeamPage } from './pages/team/team.page';\r\nimport { LogService } from './services/log.service';\r\nimport { UtilService } from './services/util.service';\r\nimport { Subject, defer, fromEvent, takeUntil } from 'rxjs';\r\nimport { Deeplinks } from '@ionic-native/deeplinks/ngx';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: 'app.component.html',\r\n styleUrls: ['app.component.scss'],\r\n})\r\nexport class AppComponent {\r\n messagesSent: number[] = [];\r\n public appPages = [];\r\n public user: {\r\n Nombre?: string;\r\n DNI?: string;\r\n Iniciales?: string;\r\n TieneFoto?: boolean;\r\n TeamPageieneFoto?: boolean;\r\n esAdmin?: boolean;\r\n Email?: string;\r\n };\r\n public displayingExitMessage: boolean;\r\n public version: string;\r\n public timer: string;\r\n public static instance: AppComponent;\r\n public showTimer: boolean;\r\n public timerInterval: any;\r\n public quiosco: boolean;\r\n public URLFoto: string;\r\n public autotoken: boolean = false;\r\n public showLogs: boolean = false;\r\n private destroy$ = new Subject();\r\n public get EntornoPruebas(): boolean {\r\n return GlobalesService.EntornoPruebas;\r\n }\r\n\r\n constructor(\r\n public menuCtrl: MenuController,\r\n public _config: ConfigService,\r\n private platform: Platform,\r\n private splashScreen: SplashScreen,\r\n private statusBar: StatusBar,\r\n private nav: NavController,\r\n private alertService: AlertService,\r\n public service: MainService,\r\n private updates: SwUpdate,\r\n private locationStrategy: LocationStrategy,\r\n private router: Router,\r\n private screenOrientation: ScreenOrientation,\r\n private _translate: TranslateService,\r\n private loader: LoaderService,\r\n public log: LogService,\r\n private util: UtilService,\r\n private zone: NgZone,\r\n public config: ConfigService,\r\n public globales: GlobalesService,\r\n private deeplinks: Deeplinks\r\n ) {\r\n this.displayingExitMessage = false;\r\n // check if back or forward button is pressed.\r\n this.locationStrategy.onPopState(() => {\r\n // set isBackButtonClicked to true.\r\n GlobalesService.backClicked = true;\r\n //history.forward();\r\n //return false;\r\n });\r\n\r\n this.autotoken = this.service.fromQueryStringLogin;\r\n this.version = GlobalesService.version;\r\n\r\n if (location.href.indexOf('resetLogin=true') > -1) {\r\n localStorage.setItem('token', '');\r\n localStorage.setItem('autologin', '0');\r\n }\r\n\r\n if (\r\n location.href.indexOf('autotoken') != -1 &&\r\n location.href.indexOf('instanceurl') != -1\r\n ) {\r\n this.service.fromQueryStringLogin = true;\r\n if (this.getParameterByName('showLogout') == 'true') {\r\n this.service.fromQueryStringLogin = false;\r\n }\r\n localStorage.setItem('autologin', '1');\r\n localStorage.setItem('token', this.getParameterByName('autotoken'));\r\n localStorage.setItem(\r\n 'instanceURL',\r\n this.getParameterByName('instanceurl')\r\n );\r\n }\r\n\r\n this.user = {};\r\n\r\n this.initializeApp();\r\n\r\n let userLang = navigator.language.split('-')[0] || 'en';\r\n userLang = /(en|es|pt|de)/gi.test(userLang) ? userLang : 'en';\r\n\r\n GlobalesService.language = userLang;\r\n this._translate.use(userLang);\r\n\r\n //this.URLFoto = this.service.URL + '/userPhoto/foto?token=' + '&rnd=' + Math.random().toString();\r\n\r\n GlobalesService.getRecargarMenuObservable().subscribe(async () => {\r\n this.autotoken = this.service.fromQueryStringLogin;\r\n\r\n this.quiosco = this.service.Login.EsQuiosco;\r\n\r\n let modulosSolicitudes = [];\r\n if (this.service.Login.ModuloBajas && GlobalesService.AccesoBajas) {\r\n modulosSolicitudes.push('bajas');\r\n }\r\n if (this.service.Login.ModuloPermisos && GlobalesService.AccesoPermisos) {\r\n modulosSolicitudes.push('permisos');\r\n }\r\n if (\r\n this.service.Login.ModuloVacaciones &&\r\n GlobalesService.AccesoVacaciones\r\n ) {\r\n modulosSolicitudes.push('vacaciones');\r\n }\r\n if (this.service.Login.ModuloReservas) {\r\n modulosSolicitudes.push('reservas');\r\n }\r\n if (this.service.Login.ModuloHorasExtra) {\r\n modulosSolicitudes.push('horas extra');\r\n }\r\n if (this.service.Login.ModuloGastos) {\r\n modulosSolicitudes.push('gastos');\r\n }\r\n let tieneUnicoModuloSolicitudes = modulosSolicitudes.length == 1;\r\n\r\n let modulosResumen = [];\r\n if (\r\n this.service.Login.ResumenAppMovil &&\r\n GlobalesService.AccesoResumen &&\r\n GlobalesService.AccesoFichaje\r\n ) {\r\n modulosResumen.push('Resumen');\r\n }\r\n if (\r\n this.service.Login.EstadisticasAppMovil &&\r\n GlobalesService.AccesoEstadisticas &&\r\n GlobalesService.AccesoFichaje\r\n ) {\r\n modulosResumen.push('Estadisticas');\r\n }\r\n\r\n let tieneUnicoModuloResumen = modulosResumen.length == 1;\r\n\r\n this.appPages = [\r\n {\r\n title: await this._translate.get('Menu.Inicio').toPromise(),\r\n url: '/home',\r\n icon: 'fal fa-home-lg-alt',\r\n visible: GlobalesService.AccesoFichaje,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Calendario').toPromise(),\r\n url: '/registros-list',\r\n icon: 'fal fa-calendar-day',\r\n visible:\r\n GlobalesService.AccesoFichaje ||\r\n modulosSolicitudes.length > 0 ||\r\n this.service.Login.ModuloProyectos ||\r\n this.service.Login.AccesoProyectosFinJornada,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Resumen').toPromise(),\r\n url: '/resumen',\r\n icon: 'fal fa-tachometer-alt-fast',\r\n visible:\r\n this.service.Login.ResumenAppMovil &&\r\n GlobalesService.AccesoResumen &&\r\n GlobalesService.AccesoFichaje &&\r\n tieneUnicoModuloResumen,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Estadisticas').toPromise(),\r\n url: '/resumen',\r\n icon: 'fal fa-tachometer-alt-fast',\r\n visible:\r\n this.service.Login.EstadisticasAppMovil &&\r\n GlobalesService.AccesoEstadisticas &&\r\n GlobalesService.AccesoFichaje &&\r\n tieneUnicoModuloResumen,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Resumen').toPromise(),\r\n url: '/resumen',\r\n icon: 'fal fa-tachometer-alt-fast',\r\n visible: modulosResumen.length > 1,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Vacaciones').toPromise(),\r\n url: '/vacaciones',\r\n icon: 'fal fa-plane',\r\n visible:\r\n this.service.Login.ModuloVacaciones &&\r\n GlobalesService.AccesoVacaciones &&\r\n tieneUnicoModuloSolicitudes,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Bajas').toPromise(),\r\n url: '/bajas-list',\r\n icon: 'fal fa-comment-medical',\r\n visible:\r\n this.service.Login.ModuloBajas &&\r\n GlobalesService.AccesoBajas &&\r\n tieneUnicoModuloSolicitudes,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Permisos').toPromise(),\r\n url: '/permisos-list',\r\n icon: 'fal fa-hands-helping',\r\n visible:\r\n this.service.Login.ModuloPermisos &&\r\n GlobalesService.AccesoPermisos &&\r\n tieneUnicoModuloSolicitudes,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Reservas').toPromise(),\r\n url: '/reservas-list',\r\n icon: 'fal fa-user-clock',\r\n visible:\r\n this.service.Login.ModuloReservas && tieneUnicoModuloSolicitudes,\r\n },\r\n {\r\n title: await this._translate.get('Menu.HorasExtra').toPromise(),\r\n url: '/horas-extra-list',\r\n icon: 'fal fa-business-time',\r\n visible:\r\n this.service.Login.ModuloHorasExtra && tieneUnicoModuloSolicitudes,\r\n },\r\n {\r\n title: await this._translate.get('Solicitudes.Gastos').toPromise(),\r\n url: '/gastos-list',\r\n icon: 'fal fa-receipt',\r\n visible:\r\n this.service.Login.ModuloGastos && tieneUnicoModuloSolicitudes,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Solicitudes').toPromise(),\r\n url: '/solicitudes',\r\n icon: 'fal fa-hands-helping',\r\n visible: modulosSolicitudes.length > 1,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Documentacion').toPromise(),\r\n url: '/documentacion-pin',\r\n icon: 'fal fa-folder-open',\r\n visible: GlobalesService.AccesoDocumentacion,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Team').toPromise(),\r\n url: '/team',\r\n icon: 'fal fa-users',\r\n visible:\r\n this.service.Login.ModuloTeam && GlobalesService.AccesoPeople,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Comunicados').toPromise(),\r\n url: '/wiki-list',\r\n icon: 'fal fa-bullhorn',\r\n visible: this.service.Login.ModuloWiki,\r\n badgeNumber: GlobalesService.NumComunicadosSinLeer,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Privacidad').toPromise(),\r\n url: '/privacidad',\r\n icon: 'fal fa-file-contract',\r\n visible: false,\r\n },\r\n {\r\n title: 'Chat',\r\n url: '/chat-list',\r\n icon: 'fal fa-comment-alt-lines',\r\n visible: this.service.Login.ModuloChat,\r\n badgeNumber: GlobalesService.NumChatsSinLeer,\r\n },\r\n {\r\n title: await this._translate.get('Menu.Titulo').toPromise(),\r\n url: '/configuracion',\r\n icon: 'fal fa-id-card-alt',\r\n visible: !this.service.Login.EsQuiosco,\r\n },\r\n {\r\n title: 'Proyectos',\r\n url: '/tareas-view',\r\n icon: 'fal fa-briefcase',\r\n visible: false,\r\n },\r\n ];\r\n\r\n let pages = JSON.parse(JSON.stringify(this.appPages));\r\n this.appPages = [];\r\n for (let i = 0; i < pages.length; i++) {\r\n if (pages[i].visible) {\r\n this.appPages.push(pages[i]);\r\n }\r\n }\r\n\r\n this.user = {\r\n Nombre:\r\n this.service.usuarioSimulado == null\r\n ? this.service.Login.Nombre\r\n : this.service.usuarioSimulado.NombreCompleto,\r\n DNI:\r\n this.service.usuarioSimulado == null\r\n ? this.service.Login.DNI\r\n : this.service.usuarioSimulado.DNI,\r\n Iniciales:\r\n this.service.usuarioSimulado == null\r\n ? this.service.Login.Iniciales\r\n : this.service.usuarioSimulado.Iniciales,\r\n TieneFoto:\r\n this.service.usuarioSimulado == null\r\n ? this.service.Login.TieneFoto\r\n : this.service.usuarioSimulado.TieneFoto,\r\n esAdmin:\r\n this.service.usuarioSimulado == null\r\n ? this.service.Login.EsAdmin\r\n : false,\r\n Email:\r\n this.service.usuarioSimulado == null\r\n ? this.service.Login.Email\r\n : this.service.usuarioSimulado.Email,\r\n };\r\n\r\n if (this.service.usuarioSimulado != null) {\r\n this.URLFoto =\r\n this.service.URL +\r\n '/userPhoto/foto?token=' +\r\n this.service.usuarioSimulado.Token +\r\n '&rnd=' +\r\n Math.random().toString() +\r\n '&width=64&height=64';\r\n } else {\r\n this.URLFoto =\r\n this.service.URL +\r\n '/userPhoto/foto?token=' +\r\n this.service.loginToken +\r\n '&rnd=' +\r\n Math.random().toString() +\r\n '&width=64&height=64';\r\n }\r\n });\r\n }\r\n\r\n public async ngOnInit(): Promise {\r\n this.service.quioscoLogoutSubject\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(async (config) => {\r\n this.zone.run(async () => {\r\n if (config.mensaje != null && config.mensaje.trim().length > 0) {\r\n AppComponent.instance.alertService.showToast(config.mensaje);\r\n }\r\n if (config.redirect) {\r\n await AppComponent.instance.nav.navigateForward(`quiosco`);\r\n }\r\n });\r\n });\r\n let startTimerQuiosco = () => {\r\n if (\r\n this.service.usuarioSimulado != null ||\r\n GlobalesService.PantallaVisita\r\n ) {\r\n this.service.startTimerQuiosco();\r\n }\r\n };\r\n [\r\n 'keypress',\r\n 'keydown',\r\n 'keyup',\r\n 'touchstart',\r\n 'click',\r\n 'pointerdown',\r\n 'mousedown',\r\n ].forEach((eventName) =>\r\n fromEvent(document, eventName)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => startTimerQuiosco())\r\n );\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private getParameterByName(name: any): string {\r\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n var regexS = '[\\\\?&]' + name + '=([^&#]*)';\r\n var regex = new RegExp(regexS);\r\n var results = regex.exec(window.location.href);\r\n if (results == null) return '';\r\n else return decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n }\r\n\r\n public async initializeApp(): Promise {\r\n AppComponent.instance = this;\r\n\r\n this.platform.ready().then(() => {\r\n try {\r\n if (this.platform.is('ios') || this.platform.is('android')) {\r\n this.deeplinks\r\n .route({\r\n '/signin': 'signin',\r\n '/signin/': 'signin',\r\n 'https://app.trackpeople.es/signin/': 'signin',\r\n })\r\n .subscribe(async (match) => {\r\n let url: URL | null;\r\n if (typeof match.$link == 'string') {\r\n url = new URL(match.$link);\r\n } else {\r\n url = new URL(match.$link.url);\r\n }\r\n if (url.pathname.startsWith('/signin')) {\r\n let query = new URLSearchParams(url.search);\r\n if (\r\n query.get('autotoken') != null &&\r\n query.get('instanceurl') != null &&\r\n query.get('showLogout') == 'true'\r\n ) {\r\n localStorage.setItem('autologin', '1');\r\n localStorage.setItem('token', query.get('autotoken'));\r\n localStorage.setItem('instanceURL', query.get('instanceurl'));\r\n this.nav.navigateRoot('/login', {\r\n queryParams: { timestamp: new Date().getTime() },\r\n });\r\n // Si ya estamos en la página de login, no se autologuea, por lo que disparamos un observable al que solo nos conectamos en la página de login.\r\n this.globales.RedoLogin.next();\r\n }\r\n }\r\n });\r\n }\r\n } catch (ex) {\r\n console.warn(ex);\r\n }\r\n\r\n if (!this.platform.is('ios')) {\r\n this.statusBar.styleBlackTranslucent();\r\n } else {\r\n this.statusBar.styleDefault();\r\n }\r\n // Si se dispara antes uno de los eventos que ocultan la Splash que el DeviceReady la función no se ejecuta\r\n // correctamente así que ocultamos la Splash desde aquí.\r\n if (GlobalesService.hideSplash) {\r\n this.splashScreen.hide();\r\n Util.HideSplashPWA();\r\n }\r\n\r\n this.nav.navigateRoot('/login');\r\n\r\n this.platform.pause.subscribe(() => {\r\n var event = new Event('blur');\r\n window.dispatchEvent(event);\r\n });\r\n\r\n this.platform.resume.subscribe(() => {\r\n var event = new Event('focus');\r\n window.dispatchEvent(event);\r\n });\r\n\r\n this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.PORTRAIT);\r\n\r\n if (typeof window['FirebasePlugin'] != 'undefined') {\r\n if (window['FirebasePlugin'] != null) {\r\n window['FirebasePlugin'].onMessageReceived(\r\n (message: any) => {\r\n console.log(\r\n `FirebasePlugin: onMessageReceived ${this.util.GetStackTrace()}`\r\n );\r\n\r\n console.log(\r\n `Objeto JSON notificación: ${JSON.stringify(message, null, 4)}`\r\n );\r\n\r\n console.log('Message type: ' + message.messageType);\r\n if (\r\n message.messageType === 'notification' ||\r\n message.messageType == 'data'\r\n ) {\r\n if (GlobalesService.notificationEvent != null) {\r\n if (window['timeoutNotificacion'] != null) {\r\n clearTimeout(window['timeoutNotificacion']);\r\n }\r\n window['timeoutNotificacion'] = setTimeout(() => {\r\n window['timeoutNotificacion'] = null;\r\n GlobalesService.notificationEvent(message);\r\n }, 500);\r\n }\r\n }\r\n },\r\n (err) => {\r\n console.error(err);\r\n }\r\n );\r\n }\r\n }\r\n\r\n this.platform.backButton.subscribe(async () => {\r\n if (!this.displayingExitMessage) {\r\n if (GlobalesService.rootPages.indexOf(this.router.url) != -1) {\r\n if (!this.platform.is('ios')) {\r\n this.displayingExitMessage = true;\r\n\r\n let DeseaSalirAplicacion = await this._translate\r\n .get('General.DeseaSalirAplicacion')\r\n .toPromise();\r\n let SalirTrackPeople = await this._translate\r\n .get('General.SalirTrackPeople')\r\n .toPromise();\r\n let Si = await this._translate.get('General.Si').toPromise();\r\n let No = await this._translate.get('General.No').toPromise();\r\n\r\n this.alertService\r\n .showConfirm(DeseaSalirAplicacion, SalirTrackPeople, Si, No)\r\n .then((result) => {\r\n if (result) {\r\n // Solo funciona en Android por ahora, en iOS de todos modos no se dispara el evento del botón de atrás\r\n try {\r\n navigator['app'].exitApp();\r\n } catch (ex) {}\r\n }\r\n this.displayingExitMessage = false;\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n GlobalesService.notificationEvent = async (message) => {\r\n const oNotificacion: NotificationModel = {\r\n title: message['title'],\r\n body: message['body'],\r\n tipoNotificacion: message['tipoNotificacion'],\r\n objId: message['objId'],\r\n tap: message['tap'],\r\n };\r\n\r\n console.log(\r\n `Llega un evento de notificación ${this.util.GetStackTrace()}`\r\n );\r\n\r\n switch (oNotificacion.tipoNotificacion.toString()) {\r\n case '0': // Solo mensaje\r\n this.alertService.showMessage(\r\n oNotificacion.body,\r\n oNotificacion.title,\r\n 'Aceptar'\r\n );\r\n break;\r\n case '1': // Comunicado.\r\n try {\r\n let objIdComunicado: number = 0;\r\n if (\r\n oNotificacion.objId != undefined &&\r\n oNotificacion.objId != null\r\n ) {\r\n objIdComunicado = parseInt(oNotificacion.objId.toString(), 10);\r\n }\r\n if (objIdComunicado > 0) {\r\n let resp = await this.alertService.showConfirm(\r\n oNotificacion.body + '

¿Quieres verlo ahora?',\r\n 'Nuevo comunicado',\r\n 'Sí',\r\n 'No'\r\n );\r\n if (resp) {\r\n this.nav.navigateForward(`wiki-view/${objIdComunicado}`);\r\n }\r\n }\r\n } catch (ex) {\r\n this.alertService.showToast('No se pudo abrir el comunicado.');\r\n }\r\n break;\r\n case '2': // Chat.\r\n try {\r\n if (message['tap']) {\r\n let objIdChat: string = '0';\r\n if (\r\n oNotificacion.objId != undefined &&\r\n oNotificacion.objId != null\r\n ) {\r\n objIdChat = oNotificacion.objId;\r\n }\r\n if (objIdChat != '0') {\r\n let resp = await this.alertService.showConfirm(\r\n 'Tienes un nuevo mensaje en el chat.

¿Quieres verlo ahora?',\r\n 'Nuevo chat',\r\n 'Sí',\r\n 'No'\r\n );\r\n if (resp) {\r\n this.nav.navigateForward(`chat-view/${objIdChat}`);\r\n }\r\n }\r\n }\r\n } catch (ex) {\r\n this.alertService.showToast('No se pudo abrir el comunicado.');\r\n }\r\n break;\r\n }\r\n };\r\n\r\n GlobalesService.readyFired = true;\r\n });\r\n }\r\n\r\n public async logOut() {\r\n await this.loader.show('Desconectando...');\r\n localStorage.removeItem('lastFirebaseTokenStored');\r\n\r\n if (typeof window['FirebasePlugin'] != 'undefined') {\r\n if (window['FirebasePlugin'] != null) {\r\n window['FirebasePlugin'].getToken(\r\n async (token) => {\r\n if (token !== null) {\r\n await this.deleteToken(token);\r\n\r\n localStorage.setItem('token', '');\r\n localStorage.setItem('autologin', '0');\r\n GlobalesService.aniosDisponibles = null;\r\n GlobalesService.publishRecargarMenu();\r\n this.service.loginToken = null;\r\n this.service.usuarioSimulado = null;\r\n this.service.cancelTimerQuioscoSubject.next();\r\n this.loader.hideAll().then(() => {\r\n this.nav.navigateRoot('login');\r\n });\r\n } else {\r\n localStorage.setItem('token', '');\r\n localStorage.setItem('autologin', '0');\r\n GlobalesService.aniosDisponibles = null;\r\n GlobalesService.publishRecargarMenu();\r\n this.service.loginToken = null;\r\n this.service.usuarioSimulado = null;\r\n this.service.cancelTimerQuioscoSubject.next();\r\n this.loader.hideAll().then(() => {\r\n this.nav.navigateRoot('login');\r\n });\r\n }\r\n },\r\n (error) => {\r\n localStorage.setItem('token', '');\r\n localStorage.setItem('autologin', '0');\r\n GlobalesService.aniosDisponibles = null;\r\n GlobalesService.publishRecargarMenu();\r\n this.service.loginToken = null;\r\n this.service.usuarioSimulado = null;\r\n this.service.cancelTimerQuioscoSubject.next();\r\n this.loader.hideAll().then(() => {\r\n this.nav.navigateRoot('login');\r\n });\r\n }\r\n );\r\n } else {\r\n localStorage.setItem('token', '');\r\n localStorage.setItem('autologin', '0');\r\n GlobalesService.aniosDisponibles = null;\r\n GlobalesService.publishRecargarMenu();\r\n this.service.loginToken = null;\r\n this.service.usuarioSimulado = null;\r\n this.service.cancelTimerQuioscoSubject.next();\r\n this.loader.hideAll().then(() => {\r\n this.nav.navigateRoot('login');\r\n });\r\n }\r\n } else {\r\n let pushToken = window['pushToken'];\r\n if (pushToken != null) {\r\n try {\r\n await this.service.Login.LogOut(pushToken);\r\n } catch (ex) {\r\n console.log(\r\n 'No se pudo eliminar el token de notificaciones PUSH porque el servicio devolvió error.'\r\n );\r\n }\r\n }\r\n\r\n localStorage.setItem('token', '');\r\n localStorage.setItem('autologin', '0');\r\n GlobalesService.aniosDisponibles = null;\r\n GlobalesService.publishRecargarMenu();\r\n this.service.loginToken = null;\r\n this.service.usuarioSimulado = null;\r\n this.service.cancelTimerQuioscoSubject.next();\r\n this.loader.hideAll().then(() => {\r\n this.nav.navigateRoot('login');\r\n });\r\n }\r\n }\r\n\r\n public static logoutGlobal() {\r\n AppComponent.instance.logOut();\r\n }\r\n\r\n public intranet() {\r\n window.open(\r\n `${this._config.getUrlInstanceRoot()}/Private/Intranet/Security/Login.aspx?access_token=${encodeURIComponent(\r\n this.service.loginToken\r\n )}`,\r\n '_blank'\r\n );\r\n }\r\n\r\n public analytics(p) {\r\n setTimeout(async () => {\r\n try {\r\n gtag('event', 'Menu', { event_category: 'Menu', event_label: p.title });\r\n } catch (ex) {}\r\n }, 0);\r\n }\r\n\r\n public privacidad() {\r\n this.nav.navigateRoot('/privacidad');\r\n this.menuCtrl.toggle();\r\n }\r\n\r\n public async deleteToken(token: string): Promise {\r\n try {\r\n await this.service.Notificaciones.eliminarTokenFirebase(token);\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n this.loader.hideAll();\r\n }\r\n return;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\n\r\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\r\nimport { StatusBar } from '@ionic-native/status-bar/ngx'\r\nimport { ScreenOrientation } from '@ionic-native/screen-orientation/ngx'\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\n\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http'\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader'\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core'\r\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\r\nimport { FileTransfer } from '@ionic-native/file-transfer/ngx';\r\nimport { FileOpener } from '@ionic-native/file-opener/ngx';\r\nimport { File } from '@ionic-native/file/ngx';\r\nimport { CameraPreview } from '@ionic-native/camera-preview/ngx'\r\nimport { InAppBrowser } from '@ionic-native/in-app-browser/ngx';\r\nimport { GlobalesService } from './services/globales.service';\r\nimport { ComponentsModule } from './components/components/components.module';\r\nimport { Deeplinks } from '@ionic-native/deeplinks/ngx';\r\n\r\nimport { RECAPTCHA_V3_SITE_KEY, RecaptchaV3Module } from 'ng-recaptcha'\r\nimport { Camera } from '@ionic-native/camera/ngx';\r\n\r\nexport function customTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, './assets/i18n/', '.json?v=' + GlobalesService.version)\r\n}\r\n\r\nconst botonesAtras = {\r\n \"es\": \"Atrás\",\r\n \"en\": \"Back\",\r\n \"pt\": \"Voltar\",\r\n \"de\": \"Hinter\"\r\n};\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n entryComponents: [],\r\n imports: [\r\n BrowserModule,\r\n IonicModule.forRoot({\r\n backButtonText: botonesAtras[GlobalesService.language]\r\n }),\r\n AppRoutingModule,\r\n HttpClientModule,\r\n ComponentsModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: customTranslateLoader,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n ServiceWorkerModule.register('my-service-worker.js', {\r\n enabled: environment.production,\r\n // Register the ServiceWorker as soon as the app is stable\r\n // or after 30 seconds (whichever comes first).\r\n registrationStrategy: 'registerWhenStable:30000'\r\n }),\r\n RecaptchaV3Module\r\n ],\r\n providers: [\r\n StatusBar,\r\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },\r\n SplashScreen,\r\n ScreenOrientation,\r\n FileTransfer,\r\n FileOpener,\r\n File,\r\n CameraPreview,\r\n InAppBrowser,\r\n Deeplinks,\r\n { provide: RECAPTCHA_V3_SITE_KEY, useValue: environment.siteKeyReCaptcha },\r\n Camera\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NavParams, PopoverController } from '@ionic/angular';\r\nimport singularDate from 'src/app/models/general/singularDate';\r\nimport { UtilService } from 'src/app/services/util.service';\r\nimport * as moment from 'moment'\r\nimport dateObj from 'src/app/models/general/dateObj';\r\n\r\n@Component({\r\n selector: 'app-calendar',\r\n templateUrl: './calendar.component.html',\r\n styleUrls: ['./calendar.component.scss']\r\n})\r\nexport class CalendarComponent implements OnInit {\r\n public maxYearsLock = 2\r\n public fecha: string\r\n public callback: (fecha: Date) => void;\r\n public startDate: Date;\r\n public endDate: Date;\r\n public dateLimit: Date;\r\n public startLimit: boolean;\r\n public endLimit: boolean;\r\n public currentEvents: singularDate[] = [];\r\n public pedirVacaciones: boolean;\r\n\r\n constructor(\r\n public popoverController: PopoverController,\r\n private navParams: NavParams,\r\n private utils: UtilService,\r\n ) { \r\n\r\n this.callback = null\r\n this.startDate = null\r\n this.endDate = null\r\n this.dateLimit = null\r\n this.startLimit = false\r\n this.endLimit = false\r\n this.pedirVacaciones = false\r\n\r\n }\r\n\r\n public ngOnInit() {\r\n\r\n if (this.navParams.data.callback) {\r\n this.callback = this.navParams.data.callback;\r\n }\r\n\r\n if (this.navParams.data.startDate) {\r\n this.startDate = this.utils.stringToFecha(this.navParams.data.startDate);\r\n }\r\n\r\n if (this.navParams.data.endDate) {\r\n this.endDate = this.utils.stringToFecha(this.navParams.data.endDate);\r\n }\r\n\r\n if (this.navParams.data.dateLimit) {\r\n this.dateLimit = this.utils.stringToFecha(this.navParams.data.dateLimit);\r\n }\r\n\r\n if (this.navParams.data.startLimit) {\r\n this.startLimit = this.navParams.data.startLimit;\r\n }\r\n\r\n if (this.navParams.data.endLimit) {\r\n this.endLimit = this.navParams.data.endLimit;\r\n }\r\n\r\n if (this.navParams.data.events) {\r\n this.currentEvents = this.navParams.data.events\r\n }\r\n\r\n if (this.navParams.data.pedirVacaciones) {\r\n this.pedirVacaciones = this.navParams.data.pedirVacaciones\r\n }\r\n\r\n this.lockDates();\r\n\r\n }\r\n\r\n public onDaySelect(date: dateObj) {\r\n\r\n let dateSelected = moment({ year: date.year, month: date.month, date: date.date }).toDate()\r\n\r\n if (this.dateLimit != null && this.startLimit) {\r\n if (dateSelected >= this.dateLimit) {\r\n if (this.pedirVacaciones) {\r\n if (!this.isDateOnEvent(dateSelected)) {\r\n this.callback(dateSelected)\r\n this.popoverController.dismiss()\r\n }\r\n } else {\r\n this.callback(dateSelected)\r\n this.popoverController.dismiss()\r\n }\r\n }\r\n } else if (this.dateLimit != null && this.endLimit) {\r\n if (dateSelected <= this.dateLimit) {\r\n this.callback(dateSelected)\r\n this.popoverController.dismiss()\r\n }\r\n } else {\r\n if (this.pedirVacaciones) {\r\n if (!this.isDateOnEvent(dateSelected)) {\r\n this.callback(dateSelected)\r\n this.popoverController.dismiss()\r\n }\r\n } else {\r\n this.callback(dateSelected)\r\n this.popoverController.dismiss()\r\n }\r\n }\r\n }\r\n\r\n private isDateOnEvent(date: Date): boolean {\r\n for (let i = 0; i < this.currentEvents.length; i++) {\r\n let evento = this.currentEvents[i];\r\n if (date.getDate() == evento.date && date.getMonth() == evento.month && date.getFullYear() == evento.year && !evento.eventClass.includes(\"DiaFestivo\") && !evento.eventClass.includes(\"bajas\") && !evento.eventClass.includes(\"vacaciones\") && !evento.eventClass.includes(\"permisos\") && !evento.eventClass.includes(\"reservas\") && !evento.eventClass.includes(\"horasExtra\") && !evento.eventClass.includes(\"turnos\")) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public async lockDates() {\r\n\r\n let currentEventsOriginal: singularDate[] = JSON.parse(JSON.stringify(this.currentEvents));\r\n let addClassDisable = (y, m, d) => {\r\n let encontrado = false;\r\n for (let i = 0; i < currentEventsOriginal.length && !encontrado; i++) {\r\n let event = currentEventsOriginal[i];\r\n if (event.year == y && event.month == m && event.date == d) {\r\n let eliminado = false;\r\n encontrado = true;\r\n for (let j = 0; j < this.currentEvents.length && !eliminado; j++) {\r\n let cEvent = this.currentEvents[j];\r\n if (cEvent.year == y && cEvent.month == m && cEvent.date == d) {\r\n this.currentEvents.splice(j, 1)\r\n eliminado = true\r\n }\r\n }\r\n }\r\n }\r\n this.currentEvents.push({ year: y, month: m, date: d, eventClass: 'disableDay' });\r\n }\r\n if (this.dateLimit != null && this.dateLimit != undefined && this.startLimit) {\r\n let yearLock: number = this.dateLimit.getFullYear();\r\n let monthLock: number = this.dateLimit.getMonth();\r\n let dayLock: number = this.dateLimit.getDate();\r\n let month: number = 0;\r\n if (this.startDate != null) {\r\n this.maxYearsLock = moment().year() - this.startDate.getFullYear();\r\n }\r\n let year: number = yearLock - this.maxYearsLock;\r\n\r\n while (year < yearLock || (month <= monthLock && year <= yearLock)) {\r\n\r\n let monthDays = moment({ year: year, month: month }).daysInMonth();\r\n\r\n if (month < monthLock || year < yearLock) {\r\n for (let i = 1; i <= monthDays; i++) {\r\n addClassDisable(year, month, i)\r\n }\r\n } else {\r\n for (let i = 1; i < dayLock; i++) {\r\n addClassDisable(year, month, i)\r\n }\r\n }\r\n if (month == 11) {\r\n year += 1;\r\n month = 0;\r\n } else {\r\n month += 1;\r\n }\r\n }\r\n }\r\n\r\n if (this.dateLimit != null && this.dateLimit != undefined && this.endLimit) {\r\n let yearLock: number = this.dateLimit.getFullYear();\r\n let monthLock: number = this.dateLimit.getMonth();\r\n let dayLock: number = this.dateLimit.getDate();\r\n let month: number = monthLock;\r\n let year: number = yearLock;\r\n if (this.endDate != null) {\r\n this.maxYearsLock = this.endDate.getFullYear() - moment().year();\r\n }\r\n let maxYearLock = yearLock + this.maxYearsLock;\r\n let diasMesLock = moment(this.dateLimit).daysInMonth();\r\n\r\n while ((year > yearLock || (month >= monthLock && year >= yearLock)) && year <= maxYearLock) {\r\n\r\n let monthDays = moment({ year: year, month: month }).daysInMonth();\r\n\r\n if (month > monthLock || year > yearLock) {\r\n for (let i = 1; i <= monthDays; i++) {\r\n addClassDisable(year, month, i)\r\n }\r\n } else {\r\n for (let i = dayLock + 1; i <= diasMesLock; i++) {\r\n addClassDisable(year, month, i)\r\n }\r\n }\r\n if (month == 11) {\r\n year += 1;\r\n month = 0;\r\n } else {\r\n month += 1;\r\n }\r\n }\r\n }\r\n\r\n } \r\n\r\n}\r\n","import { Component, Input, OnInit, Output } from '@angular/core';\r\nimport { PopoverController } from '@ionic/angular';\r\nimport ComboModel from 'src/app/models/vacaciones/combo';\r\n\r\n@Component({\r\n selector: 'app-combobox',\r\n templateUrl: './combobox.component.html',\r\n styleUrls: ['./combobox.component.scss'],\r\n})\r\nexport class ComboboxComponent implements OnInit {\r\n @Output() selectedValue = (e: number) => {}\r\n @Input() values: ComboModel[]\r\n\r\n constructor(\r\n public popoverController: PopoverController\r\n ) {}\r\n\r\n public ngOnInit() {}\r\n\r\n public onSelect(value: any) {\r\n this.popoverController.dismiss();\r\n this.selectedValue(value);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FvCalendarComponent } from '../fv-calendar/fv-calendar.component';\r\nimport { ComboboxComponent } from '../combobox/combobox.component';\r\nimport { CalendarComponent } from '../calendar/calendar.component';\r\nimport { PipesModule } from 'src/app/pipes/pipes.module';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { PopoverInfoFicherosComponent } from '../popover-info-ficheros/popover-info-ficheros.component';\r\nimport { LoaderComponent } from '../loader/loader.component';\r\nimport { PdfViewerComponent } from '../pdf-viewer/pdf-viewer.component';\r\nimport { FileSelectorWithCameraOptionComponent } from '../file-selector-with-camera-option/file-selector-with-camera-option.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FvCalendarComponent,\r\n CalendarComponent, \r\n ComboboxComponent, \r\n PopoverInfoFicherosComponent,\r\n LoaderComponent,\r\n PdfViewerComponent,\r\n FileSelectorWithCameraOptionComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n PipesModule,\r\n IonicModule\r\n ],\r\n exports: [\r\n FvCalendarComponent, \r\n CalendarComponent, \r\n ComboboxComponent, \r\n PopoverInfoFicherosComponent,\r\n LoaderComponent,\r\n PdfViewerComponent,\r\n FileSelectorWithCameraOptionComponent\r\n ]\r\n})\r\nexport class ComponentsModule { }\r\n","import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { ActionSheetController, Platform } from '@ionic/angular';\nimport { Camera } from '@ionic-native/camera/ngx'\nimport { File as FileNative } from '@ionic-native/file/ngx'\nimport { UtilService } from 'src/app/services/util.service';\n\n@Component({\n selector: 'app-file-selector-with-camera-option',\n templateUrl: './file-selector-with-camera-option.component.html',\n styleUrls: ['./file-selector-with-camera-option.component.scss'],\n})\nexport class FileSelectorWithCameraOptionComponent implements OnInit {\n\n @Input(\"accept\") public accept: string = \"image/*,application/pdf\"\n @Output(\"on-file-select\") public onFileSelectEvent = new EventEmitter();\n\n constructor(\n private actionSheetController: ActionSheetController,\n private camera: Camera,\n private file: FileNative,\n private util: UtilService,\n private platform: Platform\n ) { }\n\n ngOnInit() {}\n\n @HostListener(\"click\") async onClick(): Promise {\n // Mostramos action sheet para que el usuario elija si quiere adjuntar un archivo o hacer una foto\n if (window[\"cordova\"] != null && this.platform.is(\"android\")) {\n const actionSheet = await this.actionSheetController.create({\n header: 'Adjuntar archivo',\n buttons: [\n {\n text: 'Hacer foto',\n handler: () => this.openCamera()\n },\n {\n text: 'Seleccionar archivo',\n handler: () => this.selectFile()\n }\n ]\n })\n \n actionSheet.present()\n }\n else {\n this.selectFile()\n }\n }\n\n public async openCamera(): Promise {\n let imageData = await this.camera.getPicture({\n quality: 90,\n destinationType: this.camera.DestinationType.DATA_URL,\n sourceType: this.camera.PictureSourceType.CAMERA,\n encodingType: this.camera.EncodingType.JPEG\n })\n let file = this.util.dataURItoBlob(imageData, `Image_${new Date().getTime()}.jpg`)\n this.onFileSelectEvent.emit([file])\n }\n\n public selectFile(): void {\n const input = document.createElement('input')\n input.setAttribute('type', 'file')\n input.setAttribute('multiple', 'true')\n input.setAttribute('accept', this.accept)\n input.style.display = 'none'\n input.addEventListener('change', (event: any) => {\n const files: File[] = Array.from(event.target.files)\n this.onFileSelectEvent.emit(files)\n })\n\n document.body.appendChild(input)\n input.click()\n document.body.removeChild(input)\n }\n\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport dateObj from 'src/app/models/general/dateObj';\r\nimport singularDate from 'src/app/models/general/singularDate';\r\nimport * as moment from 'moment'\r\nimport * as _ from 'lodash'\r\nimport { GlobalesService } from 'src/app/services/globales.service';\r\nimport { UtilService } from 'src/app/services/util.service';\r\n\r\n@Component({\r\n selector: 'app-fv-calendar',\r\n templateUrl: './fv-calendar.component.html',\r\n styleUrls: ['./fv-calendar.component.scss'],\r\n})\r\nexport class FvCalendarComponent implements OnInit {\r\n\r\n @Output() public onDaySelect = new EventEmitter();\r\n @Output() public onMonthSelect = new EventEmitter();\r\n @Input() public events: Array = [];\r\n @Input() public lang: string;\r\n @Input() public dateSelected: Date;\r\n @Input() public startDate: Date;\r\n @Input() public endDate: Date;\r\n\r\n public allowBack: boolean = true;\r\n public allowForward: boolean = true;\r\n\r\n public currentYear: number = moment().year();\r\n public currentMonth: number = moment().month();\r\n public currentDate: number = moment().date();\r\n public currentDay: number = moment().day();\r\n\r\n public displayYear: number = moment().year();\r\n public displayMonth: number = moment().month();\r\n\r\n public dateArray: Array = []; // Array for all the days of the month\r\n public weekArray = []; // Array for each row of the calendar\r\n public lastSelect: number = 0; // Record the last clicked location\r\n\r\n public weekHead: string[] = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\r\n\r\n constructor(public util: UtilService) {\r\n this.today();\r\n this.createMonth(this.displayYear, this.displayMonth);\r\n }\r\n\r\n public ngOnInit() { }\r\n\r\n public ngOnChanges() {\r\n this.displayYear = this.dateSelected != null ? this.dateSelected.getFullYear() : this.displayYear;\r\n this.displayMonth = this.dateSelected != null ? this.dateSelected.getMonth() : this.displayMonth;\r\n this.createMonth(this.displayYear, this.displayMonth);\r\n }\r\n\r\n public ngAfterContentInit() {\r\n if (!this.lang) { this.lang = 'en'; }\r\n if (this.lang === 'es') {\r\n this.weekHead = ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'];\r\n }\r\n\r\n if (GlobalesService.language == \"es\") {\r\n this.lang = \"es\";\r\n this.weekHead = ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'];\r\n } else if (GlobalesService.language == \"pt\") {\r\n this.lang = \"pt\";\r\n this.weekHead = ['Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'];\r\n } else if (GlobalesService.language == \"en\") {\r\n this.lang = \"en\";\r\n this.weekHead = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\r\n } else if (GlobalesService.language == \"de\") {\r\n this.lang = \"de\";\r\n this.weekHead = ['Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam', 'Son'];\r\n } else {\r\n this.lang = \"es\";\r\n this.weekHead = ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'];\r\n }\r\n\r\n }\r\n\r\n // Jump to today\r\n public today() {\r\n this.displayYear = this.currentYear;\r\n this.displayMonth = this.currentMonth;\r\n this.createMonth(this.currentYear, this.currentMonth);\r\n\r\n // Mark today as a selection\r\n let todayIndex = _.findIndex(this.dateArray, {\r\n year: this.currentYear,\r\n month: this.currentMonth,\r\n date: this.currentDate,\r\n isThisMonth: true\r\n })\r\n this.lastSelect = todayIndex;\r\n this.dateArray[todayIndex].isSelect = true;\r\n\r\n this.onDaySelect.emit(this.dateArray[todayIndex]);\r\n }\r\n\r\n public isInEvents(year, month, date) {\r\n var i = 0, len = this.events != undefined ? this.events.length : 0;\r\n for (; i < len; i++) {\r\n if (this.events[i].year == year && this.events[i].month == month && this.events[i].date == date) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public getEventClass(year, month, date) {\r\n var i = 0, len = this.events.length;\r\n for (; i < len; i++) {\r\n if (this.events[i].year == year && this.events[i].month == month && this.events[i].date == date) {\r\n return this.events[i].eventClass;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n public getColorTurno(year, month, date) {\r\n var i = 0, len = this.events.length;\r\n for (; i < len; i++) {\r\n if (this.events[i].year == year && this.events[i].month == month && this.events[i].date == date) {\r\n return this.events[i].colorTurno;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n public createMonth(year: number, month: number) {\r\n\r\n this.dateArray = []; // Clear last month's data\r\n this.weekArray = []; // Clear week data\r\n\r\n let firstDay;\r\n // The day of the week on the first day of the current month of\r\n // selection determines how many days to take out last month. Sunday\r\n // does not show last month, Monday shows the previous month, Tuesday\r\n // shows the last two days\r\n\r\n let preMonthDays; // The number of days for the previous month\r\n let monthDays; // The number of days for the month\r\n let weekDays: Array = [];\r\n\r\n firstDay = moment({ year: year, month: month, date: 1 }).day();\r\n // The number of days last month\r\n if (month === 0) {\r\n preMonthDays = moment({ year: year - 1, month: 11 }).daysInMonth();\r\n } else {\r\n preMonthDays = moment({ year: year, month: month - 1 }).daysInMonth();\r\n }\r\n // The number of days this month\r\n monthDays = moment({ year: year, month: month }).daysInMonth();\r\n\r\n // PREVIOUS MONTH\r\n // Add the last few days of the previous month to the array\r\n if (firstDay !== 1) { // Monday doesn't need to be shown for the previous month\r\n let lastMonthStart = preMonthDays - firstDay + 1; // From the last few months start\r\n if (firstDay == 0) {\r\n lastMonthStart -= 7;\r\n }\r\n for (let i = 1; i < (firstDay == 0 ? 7 : firstDay); i++) {\r\n if (month === 0) {\r\n this.dateArray.push({\r\n year: year - 1,\r\n month: 11,\r\n date: lastMonthStart + i,\r\n isThisMonth: false,\r\n isToday: false,\r\n isSelect: false,\r\n hasEvent: (this.isInEvents(year, 11, lastMonthStart + i)) ? true : false,\r\n eventClass: (this.isInEvents(year, 11, lastMonthStart + i)) ? this.getEventClass(year - 1, 11, lastMonthStart + i) : '',\r\n colorTurno: (this.isInEvents(year, 11, lastMonthStart + i)) ? this.getColorTurno(year - 1, 11, lastMonthStart + i) : ''\r\n })\r\n } else {\r\n this.dateArray.push({\r\n year: year,\r\n month: month - 1,\r\n date: lastMonthStart + i,\r\n isThisMonth: false,\r\n isToday: false,\r\n isSelect: false,\r\n hasEvent: (this.isInEvents(year, month - 1, lastMonthStart + i)) ? true : false,\r\n eventClass: (this.isInEvents(year, month - 1, lastMonthStart + i)) ? this.getEventClass(year, month - 1, lastMonthStart + i) : '',\r\n colorTurno: (this.isInEvents(year, month - 1, lastMonthStart + i)) ? this.getColorTurno(year, month - 1, lastMonthStart + i) : ''\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n // Add the numeral for this month to the array\r\n for (let i = 0; i < monthDays; i++) {\r\n this.dateArray.push({\r\n year: year,\r\n month: month,\r\n date: i + 1,\r\n isThisMonth: true,\r\n isToday: false,\r\n isSelect: false,\r\n hasEvent: (this.isInEvents(year, month, i + 1)) ? true : false,\r\n eventClass: (this.isInEvents(year, month, i + 1)) ? this.getEventClass(year, month, i + 1) : '',\r\n colorTurno: (this.isInEvents(year, month, i + 1)) ? this.getColorTurno(year, month, i + 1) : ''\r\n })\r\n }\r\n\r\n if (this.currentYear === year && this.currentMonth === month) {\r\n let todayIndex = _.findIndex(this.dateArray, {\r\n year: this.currentYear,\r\n month: this.currentMonth,\r\n date: this.currentDate,\r\n isThisMonth: true\r\n })\r\n this.dateArray[todayIndex].isToday = true;\r\n }\r\n\r\n // Add the number of days next month to the array, with some months showing 6 weeks and some months showing 5 weeks\r\n if (this.dateArray.length % 7 !== 0) {\r\n let nextMonthAdd = 7 - this.dateArray.length % 7\r\n for (let i = 0; i < nextMonthAdd; i++) {\r\n if (month === 11) {\r\n this.dateArray.push({\r\n year: year + 1,\r\n month: 0,\r\n date: i + 1,\r\n isThisMonth: false,\r\n isToday: false,\r\n isSelect: false,\r\n hasEvent: (this.isInEvents(year + 1, 0, i + 1)) ? true : false,\r\n eventClass: (this.isInEvents(year + 1, 0, i + 1)) ? this.getEventClass(year + 1, 0, i + 1) : '',\r\n colorTurno: (this.isInEvents(year + 1, 0, i + 1)) ? this.getColorTurno(year + 1, 0, i + 1) : ''\r\n })\r\n } else {\r\n this.dateArray.push({\r\n year: year,\r\n month: month + 1,\r\n date: i + 1,\r\n isThisMonth: false,\r\n isToday: false,\r\n isSelect: false,\r\n hasEvent: (this.isInEvents(year, month + 1, i + 1)) ? true : false,\r\n eventClass: (this.isInEvents(year, month + 1, i + 1)) ? this.getEventClass(year, month + 1, i + 1) : '',\r\n colorTurno: (this.isInEvents(year, month + 1, i + 1)) ? this.getColorTurno(year, month + 1, i + 1) : ''\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n // All date data is now added to the dateArray array\r\n\r\n // Insert the date data into the new array every seven days\r\n for (let i = 0; i < this.dateArray.length / 7; i++) {\r\n for (let j = 0; j < 7; j++) {\r\n weekDays.push(this.dateArray[i * 7 + j]);\r\n }\r\n this.weekArray.push(weekDays);\r\n weekDays = [];\r\n }\r\n }\r\n\r\n public back() {\r\n\r\n let executeBack = () => {\r\n // Decrementing the year if necessary\r\n if (this.displayMonth === 0) {\r\n this.displayYear--;\r\n this.displayMonth = 11;\r\n } else {\r\n this.displayMonth--;\r\n }\r\n this.onMonthSelect.emit({\r\n 'year': this.displayYear,\r\n 'month': this.displayMonth\r\n });\r\n this.createMonth(this.displayYear, this.displayMonth);\r\n }\r\n if (this.startDate != null && moment.isDate(this.startDate)) {\r\n let month = this.startDate.getMonth();\r\n let year = this.startDate.getFullYear();\r\n if (!(this.displayYear == year && this.displayMonth == month)) {\r\n let backDate = moment({ year: this.displayYear, month: this.displayMonth, date: 1 }).add(-1, \"months\");\r\n if (backDate.year() == year && backDate.month() == month) {\r\n this.allowBack = false;\r\n this.allowForward = true;\r\n } else {\r\n this.allowBack = true;\r\n this.allowForward = true;\r\n }\r\n executeBack();\r\n }\r\n } else {\r\n this.allowBack = true;\r\n this.allowForward = true;\r\n executeBack();\r\n }\r\n\r\n }\r\n\r\n public forward() {\r\n\r\n let executeForward = () => {\r\n // Incrementing the year if necessary\r\n if (this.displayMonth === 11) {\r\n this.displayYear++;\r\n this.displayMonth = 0;\r\n } else {\r\n this.displayMonth++;\r\n }\r\n this.onMonthSelect.emit({\r\n 'year': this.displayYear,\r\n 'month': this.displayMonth\r\n });\r\n this.createMonth(this.displayYear, this.displayMonth);\r\n }\r\n\r\n if (this.endDate != null && moment.isDate(this.endDate)) {\r\n let month = this.endDate.getMonth();\r\n let year = this.endDate.getFullYear();\r\n if (!(this.displayYear == year && this.displayMonth >= month)) {\r\n let nextDate = moment({ year: this.displayYear, month: this.displayMonth, date: 1 }).add(1, \"months\");\r\n if (nextDate.year() == year && nextDate.month() == month) {\r\n this.allowBack = true;\r\n this.allowForward = false;\r\n } else {\r\n this.allowBack = true;\r\n this.allowForward = true;\r\n }\r\n executeForward();\r\n }\r\n } else {\r\n this.allowBack = true;\r\n this.allowForward = true;\r\n executeForward();\r\n }\r\n\r\n\r\n }\r\n\r\n // Select a day, click event\r\n public daySelect(day, i, j) {\r\n // First clear the last click status\r\n if (this.lastSelect < this.dateArray.length) {\r\n this.dateArray[this.lastSelect].isSelect = false;\r\n }\r\n // Store this clicked status\r\n this.lastSelect = i * 7 + j;\r\n this.dateArray[i * 7 + j].isSelect = true;\r\n\r\n this.onDaySelect.emit(day);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { LoaderService } from 'src/app/services/loader.service';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss'],\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n public isLoading: Subject = this.loaderService.isLoading;\r\n\r\n constructor(\r\n public loaderService: LoaderService\r\n ) { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { IonModal } from '@ionic/angular';\r\nimport { DatabaseService } from 'src/app/database/database.service';\r\nimport AdjuntosClass from 'src/app/models/database/tableModels/adjuntosClass';\r\nimport { LoaderService } from 'src/app/services/loader.service';\r\nimport Util from 'src/app/util/util';\r\n\r\n@Component({\r\n selector: 'fv-pdf-viewer',\r\n templateUrl: './pdf-viewer.component.html',\r\n styleUrls: ['./pdf-viewer.component.scss']\r\n})\r\nexport class PdfViewerComponent {\r\n\r\n //#region Propiedades\r\n \r\n public Filename: string\r\n @ViewChild(\"mdlEditar\") public mdlEditar: IonModal\r\n @ViewChild(\"iframePDF\") public iframePDF: ElementRef\r\n\r\n //#endregion\r\n\r\n //#region Constructor\r\n\r\n constructor(\r\n private database: DatabaseService,\r\n private loader: LoaderService\r\n ) { }\r\n\r\n //#endregion\r\n\r\n //#region Funciones\r\n\r\n public async open(fileName: string, pdfBase64: string): Promise {\r\n await this.loader.show('Cargando...') \r\n\r\n // Guardamos el adjunto en IndexedDB para poder editarlo\r\n let adjunto: AdjuntosClass = {\r\n LocalId: 1,\r\n AdjuntoData: pdfBase64,\r\n FileName: fileName\r\n }\r\n this.Filename = fileName\r\n await this.database.Adjuntos.update(adjunto)\r\n\r\n await this.loader.hide()\r\n\r\n this.mdlEditar.isOpen = true\r\n\r\n // Cargamos el fichero en el visor\r\n let adjuntoId = 1\r\n sessionStorage.setItem('idbattach', adjuntoId.toString())\r\n let url = `/assets/pdfviewer/viewer.html`\r\n\r\n await Util.Sleep(1)\r\n\r\n this.iframePDF.nativeElement.src = url\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { GlobalesService } from 'src/app/services/globales.service';\r\n\r\n@Component({\r\n selector: 'app-popover-info-ficheros',\r\n templateUrl: './popover-info-ficheros.component.html',\r\n styleUrls: ['./popover-info-ficheros.component.scss'],\r\n})\r\nexport class PopoverInfoFicherosComponent implements OnInit {\r\n\r\n @Input() public lang: string;\r\n public texto: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n public ngAfterContentInit() {\r\n if (!this.lang) { this.lang = 'en'; }\r\n\r\n if (GlobalesService.language == \"es\") {\r\n this.lang = \"es\";\r\n this.texto = \"Campo opcional. Podrás adjuntar documentación en cualquier momento.\";\r\n } else if (GlobalesService.language == \"pt\") {\r\n this.lang = \"pt\";\r\n this.texto = \"Campo opcional. Você pode anexar documentação a qualquer momento.\";\r\n } else if (GlobalesService.language == \"en\") {\r\n this.lang = \"en\";\r\n this.texto = \"Optional field. You can attach documentation at any time.\";\r\n } else if (GlobalesService.language == \"de\") {\r\n this.lang = \"de\";\r\n this.texto = \"Optionales Feld. Sie können jederzeit Dokumentationen anhängen.\";\r\n } else {\r\n this.lang = \"es\";\r\n this.texto = \"Campo opcional. Podrás adjuntar documentación en cualquier momento.\";\r\n }\r\n\r\n }\r\n\r\n}\r\n","import DatabaseTable from \"src/app/models/database/generic/databaseTable\";\r\nimport AdjuntosClass from \"src/app/models/database/tableModels/adjuntosClass\";\r\nimport PagingModel from \"src/app/models/general/paging\";\r\n\r\nexport default class AdjuntosTable extends DatabaseTable {\r\n\r\n public async getAll(): Promise {\r\n return await this.GetAllRecords()\r\n }\r\n\r\n public async getByLocalId(Id: number): Promise {\r\n let records = await this.GetRecordsById(0, 1, Id, Id)\r\n if (records.length) {\r\n return records[0]\r\n }\r\n return null\r\n }\r\n\r\n public async getPaged(start: number, limit: number): Promise> {\r\n let count = await this.GetRecordsCount()\r\n let data = await this.GetRecordsPage(start, limit)\r\n\r\n let result = new PagingModel()\r\n result.total = count\r\n result.count = data.length\r\n result.collection = data\r\n return result\r\n }\r\n\r\n public async update(record: AdjuntosClass): Promise {\r\n return await this.UpdateRecord(record)\r\n }\r\n\r\n public async delete(record: AdjuntosClass): Promise {\r\n await this.DeleteRecord(record.LocalId)\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { IDBPDatabase, IDBPTransaction } from 'idb';\r\nimport DatabaseTable from '../models/database/generic/databaseTable';\r\nimport AdjuntosTable from './adjuntos/adjuntosTable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DatabaseService {\r\n\r\n //#region Constructor\r\n\r\n constructor() { \r\n\r\n // Ñapilla para exponer la base de datos al Window para poder depurar, solo en versión local\r\n if (location.hostname == 'localhost' && window[\"database\"] == null) {\r\n window[\"database\"] = this\r\n }\r\n\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Tablas\r\n\r\n public Tables: DatabaseTable[] = []\r\n\r\n public Adjuntos = new AdjuntosTable(this, {\r\n primaryKeyField: \"LocalId\",\r\n autoIncrement: true,\r\n tableName: \"Adjuntos\"\r\n })\r\n\r\n //#endregion\r\n\r\n //#region Base de datos\r\n\r\n public Name: string = 'TrackPeople'\r\n public Version: number = 1\r\n\r\n //#endregion\r\n\r\n //#region Actualización de stores\r\n\r\n public async UpgradeDatabases(db: IDBPDatabase, transaction: IDBPTransaction): Promise {\r\n for (let table of this.Tables) {\r\n await table.UpgradeTable(db, transaction)\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import {IDBPDatabase, IDBPTransaction, openDB} from 'idb'\r\nimport { DatabaseService } from 'src/app/database/database.service'\r\nimport IndexModel from '../model/indexModel'\r\nimport TableConfig from '../model/tableConfig'\r\n\r\nexport default class DatabaseTable {\r\n\r\n //#region Propiedades\r\n\r\n public database: DatabaseService\r\n protected tableName: string\r\n protected primaryKeyField: string\r\n protected autoIncrement: boolean\r\n protected indexes: IndexModel[] = []\r\n private TablesChecked: boolean = false\r\n\r\n //#endregion\r\n\r\n //#region Constructor\r\n\r\n constructor(database: DatabaseService, config: TableConfig) {\r\n this.database = database\r\n this.tableName = config.tableName\r\n this.primaryKeyField = config.primaryKeyField || 'Id'\r\n this.autoIncrement = config.autoIncrement\r\n this.indexes = config.indexes || []\r\n if (this.autoIncrement == null) this.autoIncrement = true\r\n this.database.Tables.push(this)\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Creación de la tabla\r\n\r\n protected async CheckDatabaseUpgrade(): Promise {\r\n if (this.TablesChecked) return\r\n\r\n if (!('indexedDB' in window)) {\r\n throw new Error('Su navegador no es compatible con IndexedDB. El visor de PDF fallará.')\r\n }\r\n\r\n await openDB(this.database.Name, this.database.Version, {\r\n upgrade: (db, oldVer, newVer, transaction) => {\r\n this.database.UpgradeDatabases(db, transaction)\r\n }\r\n })\r\n\r\n this.TablesChecked = true\r\n }\r\n\r\n public async UpgradeTable(db: IDBPDatabase, transaction: IDBPTransaction): Promise {\r\n if (!db.objectStoreNames.contains(this.tableName)) {\r\n const store = db.createObjectStore(this.tableName, {\r\n keyPath: this.primaryKeyField,\r\n autoIncrement: this.autoIncrement\r\n })\r\n this.indexes.forEach(p => {\r\n store.createIndex(p.Name, p.Field, {\r\n unique: p.Unique\r\n })\r\n })\r\n } else {\r\n let store = transaction.objectStore(this.tableName)\r\n this.indexes.forEach(p => {\r\n if (!store.indexNames.contains(p.Name)) {\r\n store.createIndex(p.Name, p.Field, {\r\n unique: p.Unique\r\n })\r\n }\r\n })\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Funciones\r\n\r\n protected async GetAllRecords(): Promise {\r\n await this.CheckDatabaseUpgrade()\r\n const db = await openDB(this.database.Name, this.database.Version)\r\n const allValues: T[] = await db.getAll(this.tableName)\r\n return allValues\r\n }\r\n\r\n protected async GetRecordsPage(start: number, limit: number): Promise {\r\n await this.CheckDatabaseUpgrade()\r\n const db = await openDB(this.database.Name, this.database.Version)\r\n const tx = await db.transaction(this.tableName, 'readonly')\r\n let cursor = await tx.store.openCursor()\r\n if (!cursor) {\r\n return []\r\n }\r\n let data: T[] = []\r\n if (start > await tx.store.count()) {\r\n return []\r\n }\r\n if (start > 0) {\r\n await cursor.advance(start)\r\n }\r\n for (let i = 0; (i < limit) && cursor; ++i) {\r\n data.push(cursor.value as T)\r\n cursor = await cursor.continue()\r\n }\r\n return data\r\n }\r\n\r\n protected async GetRecordsCount(): Promise {\r\n await this.CheckDatabaseUpgrade()\r\n const db = await openDB(this.database.Name, this.database.Version)\r\n const tx = await db.transaction(this.tableName, 'readonly')\r\n let count = await tx.store.count()\r\n return count\r\n }\r\n\r\n protected async GetRecordsCountIndex(indexName: string, lowerBound?: any, upperBound?: any): Promise {\r\n await this.CheckDatabaseUpgrade()\r\n const db = await openDB(this.database.Name, this.database.Version)\r\n const tx = await db.transaction(this.tableName, 'readonly')\r\n\r\n let range: IDBKeyRange\r\n if (lowerBound != null && upperBound != null) {\r\n range = IDBKeyRange.bound(lowerBound, upperBound)\r\n } else if (lowerBound == null && upperBound != null) {\r\n range = IDBKeyRange.upperBound(upperBound)\r\n } else if (lowerBound != null && upperBound == null) {\r\n range = IDBKeyRange.lowerBound(lowerBound)\r\n }\r\n\r\n const index = tx.store.index(indexName)\r\n return await index.count(range)\r\n }\r\n\r\n protected async GetRecordsById(start: number, limit: number, lowerBound?: any, upperBound?: any): Promise {\r\n await this.CheckDatabaseUpgrade()\r\n const db = await openDB(this.database.Name, this.database.Version)\r\n const tx = await db.transaction(this.tableName, 'readonly')\r\n let range: IDBKeyRange\r\n if (lowerBound != null && upperBound != null) {\r\n range = IDBKeyRange.bound(lowerBound, upperBound)\r\n } else if (lowerBound == null && upperBound != null) {\r\n range = IDBKeyRange.upperBound(upperBound)\r\n } else if (lowerBound != null && upperBound == null) {\r\n range = IDBKeyRange.lowerBound(lowerBound)\r\n }\r\n\r\n const index = tx.store\r\n let cursor = await index.openCursor(range)\r\n\r\n if (!cursor) {\r\n return []\r\n }\r\n\r\n let data: T[] = []\r\n if (start > await index.count(range)) {\r\n return []\r\n }\r\n if (start > 0) {\r\n await cursor.advance(start)\r\n }\r\n for (let i = 0; (i < limit) && cursor; ++i) {\r\n data.push(cursor.value as T)\r\n cursor = await cursor.continue()\r\n }\r\n return data\r\n }\r\n\r\n protected async GetRecordsByIndex(start: number, limit: number, indexName: string, lowerBound?: any, upperBound?: any): Promise {\r\n await this.CheckDatabaseUpgrade()\r\n const db = await openDB(this.database.Name, this.database.Version)\r\n const tx = await db.transaction(this.tableName, 'readonly')\r\n let range: IDBKeyRange\r\n if (lowerBound != null && upperBound != null) {\r\n range = IDBKeyRange.bound(lowerBound, upperBound)\r\n } else if (lowerBound == null && upperBound != null) {\r\n range = IDBKeyRange.upperBound(upperBound)\r\n } else if (lowerBound != null && upperBound == null) {\r\n range = IDBKeyRange.lowerBound(lowerBound)\r\n }\r\n\r\n const index = tx.store.index(indexName)\r\n let cursor = await index.openCursor(range)\r\n\r\n if (!cursor) {\r\n return []\r\n }\r\n\r\n let data: T[] = []\r\n if (start > await index.count(range)) {\r\n return []\r\n }\r\n if (start > 0) {\r\n await cursor.advance(start)\r\n }\r\n for (let i = 0; (i < limit) && cursor; ++i) {\r\n data.push(cursor.value as T)\r\n cursor = await cursor.continue()\r\n }\r\n return data\r\n }\r\n \r\n protected async UpdateRecord(record: T): Promise {\r\n await this.CheckDatabaseUpgrade();\r\n const db = await openDB(this.database.Name, this.database.Version);\r\n const tx = await db.transaction(this.tableName, 'readwrite');\r\n \r\n // Guardar el registro y capturar el ID generado\r\n const generatedId = await tx.store.put(record);\r\n await tx.done;\r\n \r\n // Retornar el ID generado\r\n return generatedId;\r\n }\r\n\r\n protected async DeleteRecord(id: any): Promise {\r\n await this.CheckDatabaseUpgrade()\r\n const db = await openDB(this.database.Name, this.database.Version)\r\n const tx = await db.transaction(this.tableName, 'readwrite')\r\n await Promise.all([\r\n tx.store.delete(id),\r\n tx.done\r\n ])\r\n }\r\n\r\n //#endregion\r\n\r\n}","import { MainService } from \"src/app/api/main.service\";\r\n\r\nexport default abstract class ApiService {\r\n\r\n //#region Propiedades\r\n\r\n public service: MainService\r\n\r\n //#endregion\r\n\r\n //#region Constructor\r\n\r\n constructor(service: MainService) {\r\n this.service = service\r\n }\r\n\r\n //#endregion\r\n\r\n}","export default class PagingModel {\r\n public collection: T[]\r\n public count: number\r\n public total: number\r\n public TotalHorasTrabajadas: string\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport BajasModel from \"src/app/models/bajas/bajas\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BajasViewResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const id = parseInt(route.paramMap.get('id'), 10);\r\n if (id == 0) {\r\n throw new Error(await this._translate.get('Bajas.MsgNoEncuentraPeticion').toPromise())\r\n } else {\r\n await this.loader.show(await this._translate.get('Bajas.Cargando').toPromise());\r\n try {\r\n let data = await this.service.Bajas.getBajasById(id)\r\n await this.loader.hideAll()\r\n return data\r\n } catch (ex) {\r\n await this.loader.hideAll();\r\n throw ex\r\n }\r\n }\r\n\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChatViewResolver implements Resolve {\r\n constructor(\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) { }\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n\r\n return route.paramMap.get('SalaId').toString();\r\n\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport ResumenJornadaModel from \"src/app/models/registros/resumenJornada\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmacionJornadaResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await this._translate.get('Confirmacion.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Registros.cargaMensajeConfirmacionJornada()\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport EditObservacionesModel from \"src/app/models/registros/editObservaciones\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditObservacionesResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await this._translate.get('EditObservaciones.Cargando').toPromise())\r\n let id = parseInt(route.paramMap.get('id'), 10)\r\n try {\r\n let data = await this.service.Registros.cargaObservaciones(id)\r\n await this.loader.hideAll()\r\n return data\r\n } catch (ex) {\r\n await this.loader.hideAll()\r\n if (ex != null && ex.message != null) {\r\n this.alertService.showMessage(ex.message, await this._translate.get('EditObservaciones.Atencion').toPromise())\r\n }\r\n throw ex\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\nimport GastosModel from '../../models/gastos/gastosModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GastosViewResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const id = parseInt(route.paramMap.get('id'), 10)\r\n if (id == 0) {\r\n throw new Error(await this._translate.get('Permisos.MsgNoEncuentra').toPromise())\r\n } else {\r\n await this.loader.show(await this._translate.get('Permisos.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Gastos.getGastosById(id)\r\n await this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n await this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\nimport { firstValueFrom } from \"rxjs\";\r\nimport ResumenTurno from \"src/app/models/registros/resumenTurno\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HorarioPersonalizadoPresenciaResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await firstValueFrom(this._translate.get('Confirmacion.Cargando')))\r\n try {\r\n let result = await this.service.Registros.cargaResumenTurno()\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\nimport HorasextraModel from '../../models/horasextra/horasextra';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HorasExtraViewResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const id = parseInt(route.paramMap.get('id'), 10)\r\n if (id == 0) {\r\n throw new Error(await this._translate.get('Permisos.MsgNoEncuentra').toPromise())\r\n } else {\r\n await this.loader.show(await this._translate.get('Permisos.Cargando').toPromise())\r\n try {\r\n let result = await this.service.HorasExtra.getHorasExtraById(id)\r\n await this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n await this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport PermisosModel from \"src/app/models/permisos/permisos\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PermisosViewResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const id = parseInt(route.paramMap.get('id'), 10)\r\n if (id == 0) {\r\n throw new Error(await this._translate.get('Permisos.MsgNoEncuentra').toPromise())\r\n } else {\r\n await this.loader.show(await this._translate.get('Permisos.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Permisos.getPermisosById(id)\r\n await this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n await this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport ProyectosModel from \"src/app/models/proyectos/proyectos\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\nimport ProyectoHorasRes from '../../models/proyectos/proyectoHorasRes';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProyectosFinJornadaResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await this._translate.get('ProyectosFinJornada.Cargando').toPromise())\r\n try {\r\n let fecha = route.paramMap.get('fecha') || ''\r\n let proyectos = await this.service.Tipos.getProyectosHoras(fecha)\r\n proyectos.ListaProyectos = proyectos.ListaProyectos.filter(p => p.Id != null && p.Id > 0)\r\n this.loader.hideAll()\r\n return proyectos\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport ConfiguracionCentrosModel from \"src/app/models/quiosco/configuracionCentros\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QuioscoconfiguracionCentrosResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private loader: LoaderService,\r\n private _translate: TranslateService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await this._translate.get('Confirmacion.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Quiosco.getCentros()\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n } \r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport ConfiguracionSubtiposModel from \"src/app/models/quiosco/configuracionSubtipos\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QuioscoconfiguracionSubtiposResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private loader: LoaderService,\r\n private _translate: TranslateService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await this._translate.get('Confirmacion.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Quiosco.getSubtiposRegistros()\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport ConfiguracionResultModel from \"src/app/models/quiosco/configuracionResult\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QuioscoconfiguracionResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private loader: LoaderService,\r\n private _translate: TranslateService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await this._translate.get('Confirmacion.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Quiosco.getConfiguracionQuiosco()\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport ReservasModel from \"src/app/models/reservas/reservas\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReservasViewResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const id = parseInt(route.paramMap.get('id'), 10)\r\n if (id == 0) {\r\n throw new Error(await this._translate.get('Permisos.MsgNoEncuentra').toPromise())\r\n } else {\r\n await this.loader.show(await this._translate.get('Permisos.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Reservas.getReservaById(id)\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport EditObservacionesModel from \"src/app/models/registros/editObservaciones\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SolicitudCambioHoraResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n await this.loader.show(await this._translate.get('EditObservaciones.Cargando').toPromise())\r\n let id = parseInt(route.paramMap.get('id'), 10)\r\n try {\r\n let data = await this.service.Registros.cargaSolicitudCambioHora(id)\r\n await this.loader.hideAll()\r\n return data\r\n } catch (ex) {\r\n await this.loader.hideAll()\r\n if (ex != null && ex.message != null) {\r\n this.alertService.showMessage(ex.message,await this._translate.get('SolicitudCambioHora.Atencion').toPromise())\r\n }\r\n throw ex\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport SolicitudesAnoModel from \"src/app/models/solicitudes/solicitudesAno\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SolicitudesResolver implements Resolve {\r\n constructor (\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private loader: LoaderService,\r\n private _translate: TranslateService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n try {\r\n await this.loader.show(await this._translate.get('General.Cargando').toPromise())\r\n let result = await this.service.Solicitudes.getSolicitudesAno()\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport VacacionesModel from \"src/app/models/vacaciones/vacaciones\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VacacionesViewResolver implements Resolve {\r\n constructor(\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private _translate: TranslateService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const id = parseInt(route.paramMap.get('id'), 10)\r\n if (id == 0) {\r\n throw new Error(await this._translate.get('Vacaciones.NoEncuentraPeticion').toPromise())\r\n } else {\r\n await this.loader.show(await this._translate.get('Vacaciones.Cargando').toPromise());\r\n try {\r\n let data = await this.service.Vacaciones.getVacacionesById(id)\r\n await this.loader.hideAll()\r\n return data\r\n } catch (ex) {\r\n await this.loader.hideAll()\r\n }\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MainService } from \"src/app/api/main.service\";\r\nimport WikiModel from \"src/app/models/wiki/wiki\";\r\nimport { AlertService } from \"src/app/services/alert.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WikiViewResolver implements Resolve {\r\n constructor(\r\n private service: MainService,\r\n private alertService: AlertService,\r\n private loader: LoaderService,\r\n private _translate: TranslateService\r\n ) { }\r\n\r\n public async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const id = parseInt(route.paramMap.get('id'), 10)\r\n if (id == 0) {\r\n throw new Error(await this._translate.get('Wiki.NoEncuentraSolicitada').toPromise())\r\n } else {\r\n await this.loader.show(await this._translate.get('Permisos.Cargando').toPromise())\r\n try {\r\n let result = await this.service.Wiki.getWikiById(id)\r\n this.loader.hideAll()\r\n return result\r\n } catch (ex) {\r\n this.loader.hideAll()\r\n throw ex\r\n }\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { UtilService } from '../services/util.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { __values } from 'tslib';\r\nimport { promise } from 'protractor';\r\n\r\n@Pipe({\r\n name: 'dateTransform'\r\n})\r\nexport class DateTransformPipe implements PipeTransform {\r\n constructor (\r\n private utils: UtilService,\r\n private _translate: TranslateService\r\n ) {\r\n }\r\n\r\n async transform(value: any, args?: any) {\r\n \r\n if (value != null) {\r\n let date = this.utils.stringToFecha(value)\r\n let arrayMonth = [\r\n await this._translate.get(\"Fechas.Ene\").toPromise(),\r\n await this._translate.get('Fechas.Feb').toPromise(), \r\n await this._translate.get('Fechas.Mar').toPromise(),\r\n await this._translate.get('Fechas.Abr').toPromise(),\r\n await this._translate.get('Fechas.May').toPromise(),\r\n await this._translate.get('Fechas.Jun').toPromise(),\r\n await this._translate.get('Fechas.Jul').toPromise(),\r\n await this._translate.get('Fechas.Ago').toPromise(),\r\n await this._translate.get('Fechas.Sep').toPromise(),\r\n await this._translate.get('Fechas.Oct').toPromise(),\r\n await this._translate.get('Fechas.Nov').toPromise(),\r\n await this._translate.get('Fechas.Dic').toPromise()\r\n ];\r\n let month = arrayMonth[date.getMonth()];\r\n\r\n return date.getDate() + \" \" + month + \" \" + date.getFullYear();\r\n\r\n } else { \r\n return \"\";\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatearHora'\r\n})\r\nexport class FormatearHoraPipe implements PipeTransform {\r\n\r\n transform(value: string, ...args: unknown[]): string {\r\n let dateValue: Date = value as any as Date\r\n if (typeof(value) == 'string') {\r\n dateValue = new Date(dateValue)\r\n }\r\n if (dateValue != null) {\r\n let hours = dateValue.getHours().toString()\r\n let minutes = dateValue.getMinutes().toString()\r\n while (hours.length < 2) hours = `0${hours}`\r\n while (minutes.length < 2) minutes = `0${minutes}`\r\n return `${hours}:${minutes}`\r\n }\r\n return ''\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatearImporte'\r\n})\r\nexport class FormatearImportePipe implements PipeTransform {\r\n\r\n transform(value: number, ...args: unknown[]): string {\r\n\r\n return this.formatearNumero(value, 2, true);\r\n\r\n }\r\n\r\n formatearNumero(number, decimalPositions, showZero, decimalSeparator = \",\", numberSeparator = \".\"): string {\r\n\r\n var enteraString = \"\";\r\n var decimalString = \"\";\r\n\r\n var parteEntera = parseInt(number);\r\n var valorPosicion = 10 ^ decimalPositions;\r\n\r\n if (decimalPositions > 0) {\r\n\r\n if (number != parteEntera) {\r\n\r\n var decimales = number.toString().replace(',', '.').split(\".\")[1];\r\n decimalString = decimalSeparator + (decimales + \"000000000000000000000000000000000000000000000000000\").substring(0, decimalPositions);\r\n\r\n } else if (showZero) {\r\n\r\n //Añadimos tantos ceros como se pidan\r\n for (var x = 0; x < decimalPositions; x++) {\r\n\r\n decimalString += \"0\";\r\n\r\n }\r\n\r\n decimalString = decimalSeparator + decimalString;\r\n\r\n }\r\n\r\n }\r\n\r\n enteraString = parseInt(number).toString();\r\n var enteraStringIntermedio = \"\";\r\n\r\n for (var x = 0; x < enteraString.length; x++) {\r\n\r\n if (x != 0 && ((enteraString.length - x) % 3) == 0) {\r\n\r\n enteraStringIntermedio += numberSeparator;\r\n\r\n }\r\n\r\n enteraStringIntermedio += enteraString[x];\r\n\r\n }\r\n\r\n return enteraStringIntermedio + decimalString;\r\n\r\n}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatearMinutos'\r\n})\r\nexport class FormatearMinutosPipe implements PipeTransform {\r\n\r\n transform(value: number, ...args: unknown[]): string {\r\n let result = \"\"\r\n\r\n let horas = Math.trunc(value / 60)\r\n let minutos = value - (horas * 60)\r\n\r\n result = (horas > 9 ? horas : \"0\" + horas) + \":\" + (minutos > 9 ? minutos : \"0\" + minutos)\r\n\r\n return result\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monthName'\r\n})\r\nexport class MonthNamePipe implements PipeTransform {\r\n private lang: string\r\n transform(value: number, args: string): string {\r\n if (args === 'es') { this.lang = 'es'; }\r\n if (args === 'en') { this.lang = 'en'; }\r\n if (args === 'pt') { this.lang = 'pt'; }\r\n if (args === 'de') { this.lang = 'de'; }\r\n let monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n if (this.lang === 'es') {\r\n monthNames = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];\r\n }\r\n if (this.lang === 'pt') {\r\n monthNames = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];\r\n }\r\n if (this.lang === 'de') {\r\n monthNames = [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"];\r\n }\r\n return monthNames[value - 1];\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monthShortname'\r\n})\r\nexport class MonthShortnamePipe implements PipeTransform {\r\n private lang: string\r\n transform(value: number, args: string): string {\r\n if (args === 'es') { this.lang = 'es'; }\r\n let monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\n if (this.lang === 'es') {\r\n monthNames = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];\r\n }\r\n if (this.lang === 'pt') {\r\n monthNames = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];\r\n }\r\n if (this.lang === 'de') {\r\n monthNames = [\"Jan\", \"Feb\", \"Mär\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\"];\r\n }\r\n return monthNames[value - 1];\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MonthNamePipe } from './month-name.pipe';\r\nimport { DateTransformPipe } from './date-transform.pipe';\r\nimport { FormatearHoraPipe } from './formatear-hora.pipe';\r\nimport { SafeUrlPipe } from './safe-url.pipe';\r\nimport { SafeHtmlPipe } from './safe-html.pipe';\r\nimport { FormatearMinutosPipe } from './formatear-minutos.pipe';\r\nimport { MonthShortnamePipe } from './month-shortname';\r\nimport { FormatearImportePipe } from './formatear-importe';\r\n\r\n@NgModule({\r\n declarations: [MonthNamePipe, MonthShortnamePipe, DateTransformPipe, FormatearHoraPipe, SafeUrlPipe, SafeHtmlPipe, FormatearMinutosPipe, FormatearImportePipe],\r\n imports: [],\r\n exports: [MonthNamePipe, MonthShortnamePipe, DateTransformPipe, FormatearHoraPipe, SafeUrlPipe, SafeHtmlPipe, FormatearMinutosPipe, FormatearImportePipe],\r\n})\r\n\r\nexport class PipesModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n\r\n constructor(\r\n private sanitized: DomSanitizer\r\n ) {}\r\n\r\n transform(value: any, ...args: any): any {\r\n if (value != null) {\r\n\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n\r\n } else { \r\n return \"\";\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeUrl'\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n\r\n constructor(\r\n private sanitized: DomSanitizer\r\n ) {}\r\n\r\n transform(value: any, ...args: any): any {\r\n if (value != null) {\r\n\r\n return this.sanitized.bypassSecurityTrustUrl(value);\r\n\r\n } else { \r\n return \"\";\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AlertController, LoadingController, SpinnerTypes, ToastController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ConfigService } from './config.service';\r\nimport { LoaderService } from './loader.service';\r\nimport { timer } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertService {\r\n\r\n //#region Propiedades\r\n\r\n loader: HTMLIonLoadingElement;\r\n loaders: HTMLIonLoadingElement[];\r\n\r\n nombreAplicacion: string;\r\n\r\n //#endregion\r\n\r\n //#region Constructor\r\n\r\n constructor(\r\n public alertCtrl: AlertController,\r\n public loadingCtrl: LoadingController,\r\n public toastCtrl: ToastController,\r\n private _translate: TranslateService,\r\n public configService: ConfigService,\r\n private loaderService: LoaderService\r\n ) { \r\n this.nombreAplicacion = this.configService.getNombreAplicacion()\r\n this.loaders = []\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Alert\r\n\r\n showMessage(msg: string, _title?: string, textoOk?: string, callbackOnShow?: () => void): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n this.loaderService.hideAll()\r\n\r\n let title: string = this.nombreAplicacion;\r\n if (_title != undefined && _title != null && _title.length > 0) {\r\n title = _title;\r\n }\r\n let strOK: string = 'Ok';\r\n if (textoOk != undefined && textoOk != null && textoOk.length > 0) {\r\n strOK = textoOk;\r\n }\r\n\r\n this.alertCtrl.create({\r\n backdropDismiss: false,\r\n header: title,\r\n message: msg,\r\n buttons: [{\r\n text: strOK,\r\n role: \"cancel\",\r\n cssClass: \"buttonOK\",\r\n handler: () => {\r\n setTimeout(() => {\r\n resolve('cancel');\r\n }, 0);\r\n }\r\n }]\r\n }).then(alerta => {\r\n alerta.present();\r\n if (callbackOnShow != null) {\r\n callbackOnShow();\r\n }\r\n })\r\n\r\n })\r\n }\r\n\r\n showConfirm(msg: string, _title?: string, textoOK?: string, textoCancel?: string, classOk?: string, classCancel?: string, classAlerta?: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n this.loaderService.hideAll()\r\n\r\n classOk = classOk || \"buttonOK\"\r\n classCancel = classCancel || \"buttonCancel\"\r\n\r\n let title: string = this.nombreAplicacion;\r\n if (_title != undefined && _title != null && _title.length > 0) {\r\n title = _title;\r\n }\r\n let strOK: string = 'Sí';\r\n if (textoOK != undefined && textoOK != null && textoOK.length > 0) {\r\n strOK = textoOK;\r\n }\r\n let strCancel: string = 'No';\r\n if (textoCancel != undefined && textoCancel != null && textoCancel.length > 0) {\r\n strCancel = textoCancel;\r\n }\r\n this.alertCtrl.create({\r\n backdropDismiss: false,\r\n header: title,\r\n message: msg,\r\n cssClass: classAlerta,\r\n buttons: [\r\n {\r\n text: strCancel,\r\n role: 'cancel',\r\n cssClass: classCancel,\r\n handler: () => {\r\n setTimeout(() => {\r\n resolve(false);\r\n }, 0)\r\n }\r\n },\r\n {\r\n text: strOK,\r\n cssClass: classOk,\r\n handler: () => {\r\n setTimeout(() => {\r\n resolve(true);\r\n }, 0)\r\n }\r\n }\r\n ]\r\n }).then(alerta => {\r\n alerta.present();\r\n })\r\n\r\n })\r\n }\r\n\r\n showPromptInput1(msg: string, _title?: string, textoOK?: string, textoCancel?: string, inputPlaceholder?: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n this.loaderService.hideAll()\r\n\r\n let title: string = this.nombreAplicacion;\r\n if (_title != undefined && _title != null && _title.length > 0) {\r\n title = _title;\r\n }\r\n let strOK: string = 'Sí';\r\n if (textoOK != undefined && textoOK != null && textoOK.length > 0) {\r\n strOK = textoOK;\r\n }\r\n let strCancel: string = 'No';\r\n if (textoCancel != undefined && textoCancel != null && textoCancel.length > 0) {\r\n strCancel = textoCancel;\r\n }\r\n let strInputPlaceholder: string = '';\r\n if (inputPlaceholder != undefined && inputPlaceholder != null && inputPlaceholder.length > 0) {\r\n strInputPlaceholder = inputPlaceholder;\r\n }\r\n\r\n this.alertCtrl.create({\r\n backdropDismiss: false,\r\n header: title,\r\n message: msg,\r\n inputs: [\r\n {\r\n name: 'input1',\r\n placeholder: strInputPlaceholder\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: strCancel,\r\n role: 'cancel',\r\n cssClass: 'buttonCancel',\r\n handler: () => {\r\n setTimeout(() => {\r\n resolve(false);\r\n }, 1)\r\n }\r\n },\r\n {\r\n text: strOK,\r\n cssClass: 'buttonOK',\r\n handler: data => {\r\n setTimeout(() => {\r\n resolve(data.input1)\r\n }, 1)\r\n }\r\n }\r\n ]\r\n }).then((alerta) => {\r\n alerta.present();\r\n })\r\n\r\n })\r\n\r\n }\r\n\r\n showPromptPassword1(msg: string, _title?: string, textoOK?: string, textoCancel?: string, inputPlaceholder?: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n this.loaderService.hideAll()\r\n\r\n let title: string = this.nombreAplicacion;\r\n if (_title != undefined && _title != null && _title.length > 0) {\r\n title = _title;\r\n }\r\n let strOK: string = 'Sí';\r\n if (textoOK != undefined && textoOK != null && textoOK.length > 0) {\r\n strOK = textoOK;\r\n }\r\n let strCancel: string = 'No';\r\n if (textoCancel != undefined && textoCancel != null && textoCancel.length > 0) {\r\n strCancel = textoCancel;\r\n }\r\n let strInputPlaceholder: string = '';\r\n if (inputPlaceholder != undefined && inputPlaceholder != null && inputPlaceholder.length > 0) {\r\n strInputPlaceholder = inputPlaceholder;\r\n }\r\n\r\n this.alertCtrl.create({\r\n backdropDismiss: false,\r\n header: title,\r\n message: msg,\r\n inputs: [\r\n {\r\n name: 'input1',\r\n placeholder: strInputPlaceholder,\r\n type: 'password'\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: strCancel,\r\n role: 'cancel',\r\n cssClass: 'buttonCancel',\r\n handler: () => {\r\n setTimeout(() => {\r\n resolve(false);\r\n }, 1)\r\n }\r\n },\r\n {\r\n text: strOK,\r\n cssClass: 'buttonOK',\r\n handler: data => {\r\n setTimeout(() => {\r\n resolve(data.input1)\r\n }, 1)\r\n }\r\n }\r\n ]\r\n }).then((alerta) => {\r\n alerta.present();\r\n })\r\n\r\n })\r\n\r\n } \r\n\r\n showPromptInput2(msg: string, _title?: string, textoOK?: string, textoCancel?: string, input1Placeholder?: string, input2Placeholder?: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n this.loaderService.hideAll()\r\n\r\n let title: string = this.nombreAplicacion;\r\n if (_title != undefined && _title != null && _title.length > 0) {\r\n title = _title;\r\n }\r\n let strOK: string = 'Sí';\r\n if (textoOK != undefined && textoOK != null && textoOK.length > 0) {\r\n strOK = textoOK;\r\n }\r\n let strCancel: string = 'No';\r\n if (textoCancel != undefined && textoCancel != null && textoCancel.length > 0) {\r\n strCancel = textoCancel;\r\n }\r\n let strInput1Placeholder: string = '';\r\n if (input1Placeholder != undefined && input1Placeholder != null && input1Placeholder.length > 0) {\r\n strInput1Placeholder = input1Placeholder;\r\n }\r\n let strInput2Placeholder: string = '';\r\n if (input2Placeholder != undefined && input2Placeholder != null && input2Placeholder.length > 0) {\r\n strInput2Placeholder = input2Placeholder;\r\n }\r\n\r\n this.alertCtrl.create({\r\n backdropDismiss: false,\r\n header: title,\r\n message: msg,\r\n inputs: [\r\n {\r\n name: 'input1',\r\n placeholder: strInput1Placeholder\r\n },\r\n {\r\n name: 'input2',\r\n placeholder: strInput2Placeholder\r\n }\r\n ],\r\n buttons: [\r\n {\r\n text: strCancel,\r\n role: 'cancel',\r\n cssClass: 'buttonCancel',\r\n handler: () => {\r\n setTimeout(() => {\r\n resolve(false);\r\n }, 1)\r\n }\r\n },\r\n {\r\n text: strOK,\r\n cssClass: 'buttonOK',\r\n handler: data => {\r\n setTimeout(() => {\r\n resolve(data.input1)\r\n }, 1)\r\n }\r\n }\r\n ]\r\n }).then((alerta) => {\r\n alerta.present();\r\n })\r\n\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Toast\r\n\r\n showToast(message: string, duration?: number): Promise{\r\n return new Promise(async (resolve, reject) => {\r\n if (!duration) duration = 3000\r\n\r\n this.loaderService.hideAll()\r\n\r\n let toast = await this.toastCtrl.create({\r\n message: message,\r\n duration: duration,\r\n position: \"top\",\r\n htmlAttributes: {\r\n tabindex: undefined\r\n }\r\n })\r\n toast.present();\r\n timer(duration + 500).subscribe(() => resolve())\r\n\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LogService } from './log.service';\r\nimport { GlobalesService } from './globales.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService {\r\n private nombreAplicacion: string;\r\n private urlService: string;\r\n private urlInstances: string;\r\n private urlInstanceRoot: string;\r\n private urlDefaultInstance: string;\r\n public cargarRegistro: boolean;\r\n public PushPublicKey: string;\r\n public Debug: boolean = false\r\n\r\n constructor(\r\n public log: LogService,\r\n ) {\r\n this.nombreAplicacion = \"Track People\";\r\n this.cargarRegistro = location.href.indexOf('registro=true') != -1;\r\n\r\n // Producción\r\n this.urlInstances = \"https://instances.trackpeople.es\";\r\n this.urlDefaultInstance = \"https://admin.trackpeople.es\";\r\n this.log.EnableLogs = false\r\n \r\n // // Pruebas\r\n // this.urlInstances = \"http://localhost:44345\"\r\n // this.urlDefaultInstance = \"http://localhost:50734\"\r\n // this.log.EnableLogs = true && (!GlobalesService.isPWA)\r\n // this.Debug = true\r\n\r\n // // Para probar iOS\r\n // this.urlInstances = \"https://instances.trackpeople.es\";\r\n // this.urlDefaultInstance = \"https://admin.trackpeople.es\";\r\n // this.log.EnableLogs = true && (!GlobalesService.isPWA) // Para no cagarla si subimos la PWA por error\r\n // this.Debug = true\r\n\r\n // // Pruebas Emulador Android\r\n // this.urlInstances = \"http://10.10.11.29:5556\"\r\n // this.urlDefaultInstance = \"http://10.10.11.29:5555\"\r\n // this.log.EnableLogs = true && (!GlobalesService.isPWA)\r\n // this.Debug = true\r\n\r\n this.urlService = this.urlDefaultInstance + '/api'\r\n\r\n this.PushPublicKey = \"BLAxwCZEvYidrDr7n-RR3Jw-AwC9-A-hOG2Xn9B9fkMYJpg0HjU-OuauNSSXX7qlwudy0cY3sme3BhBew8QYjGQ\";\r\n\r\n }\r\n\r\n public getUrlService(): string {\r\n return this.urlService;\r\n }\r\n\r\n public setUrlService(url: string): void {\r\n this.urlService = url\r\n }\r\n\r\n public setUrlInstanceRoot(url: string): void {\r\n this.urlInstanceRoot = url\r\n }\r\n\r\n public getUrlInstances(): string {\r\n return this.urlInstances\r\n }\r\n\r\n public getUrlInstanceRoot(): string {\r\n return this.urlInstanceRoot\r\n }\r\n\r\n public getUrlDefaultInstance(): string {\r\n return this.urlDefaultInstance\r\n }\r\n\r\n public getNombreAplicacion() {\r\n return this.nombreAplicacion;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject, firstValueFrom } from 'rxjs';\r\nimport ComboModel from '../models/vacaciones/combo';\r\nimport HijosUsuariosModel from '../models/ob/HijoUsuario';\r\nimport AscendientesUsuariosModel from '../models/ob/AscendienteUsuario';\r\nimport HorasextraHorasModel from '../models/horasextra/horasExtraHoras';\r\nimport ChatParticipantesModel from '../models/chats/chatparticipantes';\r\nimport TareasProyectosResultModel from '../models/tareas/tareasProyectosResul';\r\nimport TareasProyectosModel from '../models/tareas/tareasProyectos';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalesService {\r\n\r\n //#region Propiedades\r\n public static version: string = \"3.3.2\";\r\n public static backClicked: boolean = false;\r\n public static hideSplash: boolean = false;\r\n public static readyFired: boolean = false;\r\n public static AccesoFichaje: boolean = false;\r\n public static AccesoVacaciones: boolean = false;\r\n public static AccesoBajas: boolean = false;\r\n public static AccesoPermisos: boolean = false;\r\n public static AccesoResumen: boolean = false;\r\n public static AccesoEstadisticas: boolean = false;\r\n public static AccesoRetribuciones: boolean = false;\r\n public static AccesoModelo145: boolean = false;\r\n public static AccesoDocumentacion: boolean = false;\r\n public static MostrarConexionGPSEnApp: boolean = false;\r\n public static EnableNotifications: boolean = false;\r\n public static UsuarioPuedeModificarFichajes: boolean = false;\r\n public static NumComunicadosSinLeer: number = 0;\r\n public static OcultarNumComunicadosSinLeer: boolean = false;\r\n public static NumChatsSinLeer: number = 0;\r\n public static VerJornadaPrevista: boolean = true;\r\n public static RequerirGPSEnAppMovil: boolean = false;\r\n public static AccesoPeople: boolean = false;\r\n public static rootPages = [\r\n '/login',\r\n '/home',\r\n '/quiosco'\r\n ]\r\n public static notificationEvent: (message: any) => void\r\n public static MeterPausasObligatorias: boolean = false\r\n public static versionEnProduccion: string\r\n\r\n public static ErrorGenerico: string = \"Ha ocurrido un error de red, revise su conexión a internet.\"\r\n public static EntornoPruebas: boolean = false\r\n\r\n //#endregion\r\n\r\n //#region Vacaciones\r\n\r\n public static aniosDisponibles: number[] = null;\r\n public static estadosVacaciones: ComboModel[] = null;\r\n public static estadosBajas: ComboModel[] = null;\r\n public static estadosPermisos: ComboModel[] = null;\r\n public static estadosReservas: ComboModel[] = null;\r\n public static estadosHorasExtra: ComboModel[] = null;\r\n public static estadosGastos: ComboModel[] = null;\r\n public static estadosChats: ComboModel[] = null;\r\n\r\n public static HorasextraHoras: HorasextraHorasModel = null;\r\n public static ParticipantesOtros: ChatParticipantesModel[] = null;\r\n\r\n public RedoLogin = new Subject()\r\n\r\n //#endregion\r\n\r\n //#region Documentacion\r\n\r\n public static pinDocumentacion: string\r\n\r\n //#endregion\r\n\r\n //#region Modelo 145\r\n\r\n public static situacionesFamiliarList: ComboModel[] = []\r\n public static gradosDiscapacidadList: ComboModel[] = []\r\n\r\n public static hijoUsuario: HijosUsuariosModel\r\n public static ascendienteUsuario: AscendientesUsuariosModel\r\n\r\n //#endregion\r\n\r\n //#region Tareas\r\n\r\n public static FechaTareas: string\r\n public static tareasProyectosResult: TareasProyectosResultModel\r\n public static tareaSel: TareasProyectosModel\r\n\r\n //#endregion\r\n\r\n //#region Traducciones\r\n\r\n public static language: string\r\n\r\n //#endregion\r\n\r\n //#region Observables\r\n\r\n private static RecargarMenuSubject = new Subject()\r\n\r\n public static publishRecargarMenu(): void {\r\n this.RecargarMenuSubject.next()\r\n }\r\n\r\n public static getRecargarMenuObservable(): Subject {\r\n return this.RecargarMenuSubject\r\n }\r\n\r\n // TODO. Descomentar línea correcta\r\n public static get isPWA(): boolean {\r\n return (window.location.host == 'app.trackpeople.es' || window.location.host == 'ultimaapptp.fontventa.com')\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Constructor\r\n\r\n constructor() {\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Quiosco\r\n\r\n public MensajeInformativoFichaje = new BehaviorSubject(\"\")\r\n public PermiteVisitas = new BehaviorSubject(false)\r\n\r\n //Visitas\r\n\r\n public static TipoVisita: number\r\n public static PantallaVisita: boolean = false\r\n\r\n //#endregion\r\n\r\n //#region Para mantener coordenadas GPS entre pantallas\r\n\r\n public CurrentGPSCoordinatesSubject = new BehaviorSubject(null)\r\n public GPSDenegadoSubject = new BehaviorSubject(false)\r\n\r\n // Debido a un problema con Android donde solicitar el permiso nos dispara el onblur y esto causa que nunca recibamos el mensaje de que el usuario ha denegado\r\n // el permiso del GPS, creamos un booleano que usaremos para saber si podemos o no conectarnos al GPS. Intentaremos inicialmente obtener unas coordenadas antes\r\n // de permitir lanzar el Watcher.\r\n public GPSInitialized: boolean = false\r\n\r\n //#endregion\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n private loaders: any[]\r\n public isLoading: Subject;\r\n public loaderText: string;\r\n\r\n constructor() {\r\n this.loaders = [];\r\n this.isLoading = new Subject();\r\n this.loaderText = 'Cargando...';\r\n }\r\n\r\n async show(msg?: string): Promise {\r\n this.loaders.push(`loader${this.loaders.push.length + 1}`)\r\n this.loaderText = (msg != undefined && msg != null && msg.trim().length > 0 ? msg : 'Cargando...');\r\n this.isLoading.next((this.loaders.length > 0));\r\n return;\r\n }\r\n\r\n async hide(): Promise {\r\n if (this.loaders.push.length > 0) this.loaders.pop();\r\n this.isLoading.next((this.loaders.length > 0));\r\n return;\r\n }\r\n\r\n async hideAll(): Promise {\r\n this.loaders = [];\r\n this.isLoading.next(false);\r\n return;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs'\r\nimport { UtilService } from './util.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogService {\r\n\r\n public logs: string[] = []\r\n public logSubject = new Subject()\r\n private _EnableLogs: boolean = false\r\n private consoleLog: any\r\n public get EnableLogs(): boolean {\r\n return this._EnableLogs\r\n }\r\n public errorHandler: any\r\n public set EnableLogs(value: boolean) {\r\n if (value != this._EnableLogs) {\r\n this._EnableLogs = value\r\n if (value) {\r\n this.consoleLog = console.log\r\n console.log = (...args) => {\r\n for (let arg of args) {\r\n this.Log(arg)\r\n this.consoleLog(arg)\r\n }\r\n }\r\n } else {\r\n if (this.consoleLog != null) {\r\n console.log = this.consoleLog\r\n }\r\n }\r\n }\r\n }\r\n\r\n constructor() { \r\n }\r\n\r\n public Log(text: any): void {\r\n if (this.EnableLogs) {\r\n if (typeof(text) == 'object') {\r\n if (text?.message != null && text?.stack != null) {\r\n this.logs.push(`${UtilService.GetHour()} ${text?.stack}`)\r\n } else {\r\n this.logs.push(`${UtilService.GetHour()} ${JSON.stringify(text, null, 4).replace(/\\n/gi, '
')}`)\r\n }\r\n } else {\r\n this.logs.push(`${UtilService.GetHour()} ${text}`)\r\n }\r\n this.logSubject.next(this.logs.join('
'))\r\n }\r\n }\r\n\r\n public Warning(text: string): void {\r\n this.Log(`${text}`)\r\n }\r\n\r\n public Error(text: string): void {\r\n this.Log(`${text}`)\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { firstValueFrom, timer, map, timeout, from } from 'rxjs'\r\ndeclare var NativeFile: typeof window.File\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilService {\r\n\r\n/**\r\n* Secure Hash Algorithm (SHA1)\r\n* http://www.webtoolkit.info/\r\n**/\r\n\r\n public SHA1(msg): string {\r\n function rotate_left(n, s) {\r\n var t4 = (n << s) | (n >>> (32 - s));\r\n return t4;\r\n };\r\n\r\n function lsb_hex(val) {\r\n var str = '';\r\n var i;\r\n var vh;\r\n var vl;\r\n for (i = 0; i <= 6; i += 2) {\r\n vh = (val >>> (i * 4 + 4)) & 0x0f;\r\n vl = (val >>> (i * 4)) & 0x0f;\r\n str += vh.toString(16) + vl.toString(16);\r\n }\r\n return str;\r\n };\r\n\r\n function cvt_hex(val) {\r\n var str = '';\r\n var i;\r\n var v;\r\n for (i = 7; i >= 0; i--) {\r\n v = (val >>> (i * 4)) & 0x0f;\r\n str += v.toString(16);\r\n }\r\n return str;\r\n };\r\n\r\n function Utf8Encode(string) {\r\n string = string.replace(/\\r\\n/g, '\\n');\r\n var utftext = '';\r\n for (var n = 0; n < string.length; n++) {\r\n var c = string.charCodeAt(n);\r\n if (c < 128) {\r\n utftext += String.fromCharCode(c);\r\n } else if ((c > 127) && (c < 2048)) {\r\n utftext += String.fromCharCode((c >> 6) | 192);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n } else {\r\n utftext += String.fromCharCode((c >> 12) | 224);\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n }\r\n return utftext;\r\n };\r\n var blockstart;\r\n var i, j;\r\n var W = new Array(80);\r\n var H0 = 0x67452301;\r\n var H1 = 0xEFCDAB89;\r\n var H2 = 0x98BADCFE;\r\n var H3 = 0x10325476;\r\n var H4 = 0xC3D2E1F0;\r\n var A, B, C, D, E;\r\n var temp;\r\n msg = Utf8Encode(msg);\r\n var msg_len = msg.length;\r\n var word_array = new Array();\r\n for (i = 0; i < msg_len - 3; i += 4) {\r\n j = msg.charCodeAt(i) << 24 | msg.charCodeAt(i + 1) << 16 |\r\n msg.charCodeAt(i + 2) << 8 | msg.charCodeAt(i + 3);\r\n word_array.push(j);\r\n }\r\n switch (msg_len % 4) {\r\n case 0:\r\n i = 0x080000000;\r\n break;\r\n case 1:\r\n i = msg.charCodeAt(msg_len - 1) << 24 | 0x0800000;\r\n break;\r\n case 2:\r\n i = msg.charCodeAt(msg_len - 2) << 24 | msg.charCodeAt(msg_len - 1) << 16 | 0x08000;\r\n break;\r\n case 3:\r\n i = msg.charCodeAt(msg_len - 3) << 24 | msg.charCodeAt(msg_len - 2) << 16 | msg.charCodeAt(msg_len - 1) << 8 | 0x80;\r\n break;\r\n }\r\n word_array.push(i);\r\n while ((word_array.length % 16) != 14) word_array.push(0);\r\n word_array.push(msg_len >>> 29);\r\n word_array.push((msg_len << 3) & 0x0ffffffff);\r\n for (blockstart = 0; blockstart < word_array.length; blockstart += 16) {\r\n for (i = 0; i < 16; i++) W[i] = word_array[blockstart + i];\r\n for (i = 16; i <= 79; i++) W[i] = rotate_left(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\r\n A = H0;\r\n B = H1;\r\n C = H2;\r\n D = H3;\r\n E = H4;\r\n for (i = 0; i <= 19; i++) {\r\n temp = (rotate_left(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;\r\n E = D;\r\n D = C;\r\n C = rotate_left(B, 30);\r\n B = A;\r\n A = temp;\r\n }\r\n for (i = 20; i <= 39; i++) {\r\n temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;\r\n E = D;\r\n D = C;\r\n C = rotate_left(B, 30);\r\n B = A;\r\n A = temp;\r\n }\r\n for (i = 40; i <= 59; i++) {\r\n temp = (rotate_left(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;\r\n E = D;\r\n D = C;\r\n C = rotate_left(B, 30);\r\n B = A;\r\n A = temp;\r\n }\r\n for (i = 60; i <= 79; i++) {\r\n temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;\r\n E = D;\r\n D = C;\r\n C = rotate_left(B, 30);\r\n B = A;\r\n A = temp;\r\n }\r\n H0 = (H0 + A) & 0x0ffffffff;\r\n H1 = (H1 + B) & 0x0ffffffff;\r\n H2 = (H2 + C) & 0x0ffffffff;\r\n H3 = (H3 + D) & 0x0ffffffff;\r\n H4 = (H4 + E) & 0x0ffffffff;\r\n }\r\n var temp: any = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);\r\n\r\n return temp.toLowerCase();\r\n }\r\n\r\n\r\n public formatDate(date): string {\r\n\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2) month = '0' + month;\r\n if (day.length < 2) day = '0' + day;\r\n\r\n return [year, month, day].join('-');\r\n }\r\n\r\n //(Pasa fecha string de formato inglés a fecha javascript) Pasar Año/Mes/Dia y te devuelve una fecha de javascript a prueba de zonas horarias (sin las horas solo da la fecha)\r\n public dateFromString(str): Date {\r\n let a = str.split(/[^0-9]/).map((s) => { return parseInt(s, 10) });\r\n return new Date(a[0], a[1] - 1 || 0, a[2] || 1, a[3] || 0, a[4] || 0, a[5] || 0, a[6] || 0);\r\n };\r\n\r\n //(Pasa fecha string de formato español a fecha javascript) Pasar Día-Mes-Año y te devuelve una fecha de javascript a prueba de zonas horarias (sin las horas solo da la fecha)\r\n public stringToFecha(str): Date {\r\n if (str != null) {\r\n let regex = /(\\d?\\d)[\\-|\\/](\\d?\\d)[\\-|\\/](\\d{4})/gi;\r\n let regex2 = /(\\d{4})[\\-|\\/](\\d?\\d)[\\-|\\/](\\d?\\d)/gi;\r\n let results = regex.exec(str);\r\n let results2 = regex2.exec(str);\r\n if (results) {\r\n return this.dateFromString(results[3] + \"/\" + (results[2]) + \"/\" + results[1]);\r\n } else {\r\n return this.dateFromString(results2[1] + \"/\" + (results2[2]) + \"/\" + results2[3]);\r\n }\r\n } else {\r\n return null\r\n } \r\n };\r\n\r\n public fechaString(str: string): string {\r\n if (str != null) {\r\n let regex = /(\\d?\\d)[\\-|\\/](\\d?\\d)[\\-|\\/](\\d{4})/gi;\r\n let regex2 = /(\\d{4})[\\-|\\/](\\d?\\d)[\\-|\\/](\\d?\\d)/gi;\r\n let results = regex.exec(str);\r\n let results2 = regex2.exec(str);\r\n if (results) {\r\n return [results[3], results[2], results[1]].join('-');\r\n } else {\r\n return [results2[1], results2[2], results2[3]].join('-');\r\n }\r\n } \r\n }\r\n\r\n public getDayOfWeekShortByStr(str: string): string {\r\n if (str != null) {\r\n let fecha = this.stringToFecha(str)\r\n return this.getDayOfWeekShort(fecha);\r\n }\r\n\r\n }\r\n\r\n public getDayOfWeekShort(fecha: Date): string {\r\n if (fecha != null && fecha instanceof Date) {\r\n let dia = fecha.getDay();\r\n if (!isNaN(dia)) {\r\n let dias = [\"Dom.\", \"Lun.\", \"Mar.\", \"Mié.\", \"Jue.\", \"Vie.\", \"Sáb.\"]\r\n return dias[dia];\r\n } \r\n } \r\n return \"\";\r\n \r\n }\r\n\r\n public deg2rad(deg: number): number {\r\n return deg * (Math.PI/180)\r\n }\r\n\r\n public getDistanceFromLatLonInKm(lat1: number, lon1: number, lat2: number, lon2: number): number {\r\n var R = 6371; // Radius of the earth in km\r\n var dLat = this.deg2rad(lat2-lat1); // deg2rad below\r\n var dLon = this.deg2rad(lon2-lon1); \r\n var a = \r\n Math.sin(dLat/2) * Math.sin(dLat/2) +\r\n Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) * \r\n Math.sin(dLon/2) * Math.sin(dLon/2)\r\n ; \r\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); \r\n var d = R * c; // Distance in km\r\n return d;\r\n }\r\n\r\n static isNullOrUndefined(object: any): object is null | undefined {\r\n return object === null || object === undefined;\r\n }\r\n\r\n public Aclarar(color: string): string {\r\n let colorTo = [0, 0, 0] // En RGB\r\n let opacity: number = 0 // Opacidad para oscurecer.\r\n\r\n let val = color\r\n val = val.replace('#', '')\r\n let regex = /([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?/gi\r\n let values = regex.exec(val)\r\n let r = parseInt(values[1], 16)\r\n let g = parseInt(values[2], 16)\r\n let b = parseInt(values[3], 16)\r\n let a = parseInt(values[4], 16)\r\n if (isNaN(a) || a == null) {\r\n a = 255\r\n }\r\n let nR = colorTo[0]\r\n let nG = colorTo[1]\r\n let nB = colorTo[2]\r\n\r\n let rR = Math.floor(r * (100 - opacity) / 100 + nR * (opacity) / 100)\r\n let rG = Math.floor(g * (100 - opacity) / 100 + nG * (opacity) / 100)\r\n let rB = Math.floor(b * (100 - opacity) / 100 + nB * (opacity) / 100)\r\n let rA = 0x3c\r\n\r\n let result = `#${rR.toString(16).padStart(2, '0')}${rG.toString(16).padStart(2, '0')}${rB.toString(16).padStart(2, '0')}${rA.toString(16).padStart(2, '0')}`\r\n \r\n return result\r\n\r\n }\r\n\r\n public Sleep(milliseconds: number): Promise {\r\n return firstValueFrom(timer(milliseconds).pipe(map((x) => undefined)))\r\n }\r\n\r\n public GetStackTrace(): any {\r\n var obj: any = {};\r\n Error.captureStackTrace(obj, this.GetStackTrace);\r\n return obj.stack?.toString()?.replace(/Error(\\n|\\s)*at/, 'at ');\r\n };\r\n\r\n public static GetHour(): string {\r\n let result = ''\r\n let dt = new Date()\r\n result += (dt.getDate() < 10 ? '0' + dt.getDate().toString() : dt.getDate().toString()) + '/'\r\n result += ((dt.getMonth() + 1) < 10 ? '0' + (dt.getMonth() + 1).toString() : (dt.getMonth() + 1).toString()) + '/'\r\n result += dt.getFullYear().toString() + ' '\r\n result += (dt.getHours() < 10 ? '0' + dt.getHours().toString() : dt.getHours().toString()) + ':'\r\n result += (dt.getMinutes() < 10 ? '0' + dt.getMinutes().toString() : dt.getMinutes().toString()) + ':'\r\n result += (dt.getSeconds() < 10 ? '0' + dt.getSeconds().toString() : dt.getSeconds().toString()) + '.'\r\n result += (dt.getMilliseconds().toString().padStart(3, '0'))\r\n return result\r\n }\r\n\r\n public static GetCurrentHour(): string {\r\n let result = ''\r\n let dt = new Date()\r\n result += (dt.getHours() < 10 ? '0' + dt.getHours().toString() : dt.getHours().toString()) + ':'\r\n result += (dt.getMinutes() < 10 ? '0' + dt.getMinutes().toString() : dt.getMinutes().toString())\r\n return result\r\n }\r\n\r\n public guid(): string {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1)\r\n }\r\n return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`\r\n }\r\n\r\n public createWhiteImage(width: number, height: number): string {\r\n const canvas = document.createElement('canvas')\r\n canvas.width = width\r\n canvas.height = height\r\n\r\n const context = canvas.getContext('2d')\r\n\r\n if (context) {\r\n context.fillStyle = 'white'\r\n context.fillRect(0, 0, width, height)\r\n } else {\r\n throw new Error('No se pudo obtener el contexto 2D.')\r\n }\r\n\r\n const dataURL = canvas.toDataURL('image/png')\r\n\r\n return dataURL\r\n }\r\n\r\n public async DownloadFileBase64(url: string, params?: any, requestTimeout?: number): Promise {\r\n params = params || {}\r\n requestTimeout = requestTimeout || 30000\r\n try {\r\n const headers: Record = {}\r\n const query = new URLSearchParams()\r\n for (let name in params) {\r\n query.append(name, params[name]?.toString() || '')\r\n }\r\n const response: Response = await fetch(`${url}${query[\"size\"] ? `?${query.toString()}` : ''}`, {\r\n headers: headers\r\n })\r\n if (response.ok) {\r\n const blob: Blob = await response.blob()\r\n const base64String: string = await firstValueFrom(from(new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.onloadend = () => resolve(reader.result as string)\r\n reader.onerror = reject\r\n reader.readAsDataURL(blob)\r\n })).pipe(\r\n timeout(requestTimeout)\r\n ))\r\n return base64String\r\n } else {\r\n throw new Error(`La solicitud para descargar el fichero fallón con código ${response.status}`)\r\n }\r\n } catch (ex) {\r\n throw new Error(`Error al descargar el fichero: ${ex?.message}`)\r\n }\r\n }\r\n\r\n public dataURItoBlob(dataURI: string, fileName: string): File {\r\n // convert base64 to raw binary data held in a string\r\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\r\n var byteString = atob(dataURI.split(',')[1]);\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\r\n // write the bytes of the string to an ArrayBuffer\r\n var ab = new ArrayBuffer(byteString.length);\r\n var ia = new Uint8Array(ab);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n //New Code\r\n let blob = new Blob([ab], {type: mimeString});\r\n return new NativeFile([blob], fileName)\r\n }\r\n\r\n constructor() { }\r\n}\r\n","import { firstValueFrom, from, timeout } from \"rxjs\"\r\n\r\ndeclare var hideSplash: () => void\r\n\r\nexport default class Util {\r\n public static HideSplashPWA() {\r\n try {\r\n if (window.location.host == 'app.trackpeople.es' || window.location.host == 'ultimaapptp.fontventa.com') {\r\n hideSplash()\r\n }\r\n } catch (ex) {}\r\n }\r\n\r\n public static Sleep(milliseconds: number): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve()\r\n }, milliseconds)\r\n })\r\n }\r\n\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n siteKeyReCaptcha: '6Ld6zGcqAAAAAPJKu2tY0whTPWKsEO50aEc4CGyq'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","var map = {\n\t\"./ion-accordion_2.entry.js\": [\n\t\t83477,\n\t\t\"node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js\"\n\t],\n\t\"./ion-action-sheet.entry.js\": [\n\t\t67196,\n\t\t\"node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js\"\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t38081,\n\t\t\"node_modules_ionic_core_dist_esm_ion-alert_entry_js\"\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t75017,\n\t\t\"node_modules_ionic_core_dist_esm_ion-app_8_entry_js\"\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t69721,\n\t\t\"node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js\"\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t99216,\n\t\t\"node_modules_ionic_core_dist_esm_ion-back-button_entry_js\"\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t96612,\n\t\t\"node_modules_ionic_core_dist_esm_ion-backdrop_entry_js\"\n\t],\n\t\"./ion-breadcrumb_2.entry.js\": [\n\t\t42694,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js\"\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t22938,\n\t\t\"node_modules_ionic_core_dist_esm_ion-button_2_entry_js\"\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t51379,\n\t\t\"node_modules_ionic_core_dist_esm_ion-card_5_entry_js\"\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t97552,\n\t\t\"node_modules_ionic_core_dist_esm_ion-checkbox_entry_js\"\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t37218,\n\t\t\"node_modules_ionic_core_dist_esm_ion-chip_entry_js\"\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t97479,\n\t\t\"node_modules_ionic_core_dist_esm_ion-col_3_entry_js\"\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t64134,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js\"\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t71439,\n\t\t\"node_modules_ionic_core_dist_esm_ion-fab_3_entry_js\"\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t76397,\n\t\t\"node_modules_ionic_core_dist_esm_ion-img_entry_js\"\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t33296,\n\t\t\"node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js\"\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t12413,\n\t\t\"node_modules_ionic_core_dist_esm_ion-input_entry_js\"\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t39411,\n\t\t\"node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js\"\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t99133,\n\t\t\"node_modules_ionic_core_dist_esm_ion-item_8_entry_js\"\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t79003,\n\t\t\"node_modules_ionic_core_dist_esm_ion-loading_entry_js\"\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t96065,\n\t\t\"node_modules_ionic_core_dist_esm_ion-menu_3_entry_js\"\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t86991,\n\t\t\"node_modules_ionic_core_dist_esm_ion-modal_entry_js\"\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t82947,\n\t\t\"node_modules_ionic_core_dist_esm_ion-nav_2_entry_js\"\n\t],\n\t\"./ion-picker-column-internal.entry.js\": [\n\t\t25919,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js\"\n\t],\n\t\"./ion-picker-internal.entry.js\": [\n\t\t93109,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js\"\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t99459,\n\t\t\"node_modules_ionic_core_dist_esm_ion-popover_entry_js\"\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t20301,\n\t\t\"node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js\"\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t43799,\n\t\t\"node_modules_ionic_core_dist_esm_ion-radio_2_entry_js\"\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t12140,\n\t\t\"node_modules_ionic_core_dist_esm_ion-range_entry_js\"\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t86197,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js\"\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t41975,\n\t\t\"node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js\"\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t58387,\n\t\t\"node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js\"\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t98659,\n\t\t\"node_modules_ionic_core_dist_esm_ion-route_4_entry_js\"\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t26404,\n\t\t\"node_modules_ionic_core_dist_esm_ion-searchbar_entry_js\"\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t85253,\n\t\t\"node_modules_ionic_core_dist_esm_ion-segment_2_entry_js\"\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t92619,\n\t\t\"node_modules_ionic_core_dist_esm_ion-select_3_entry_js\"\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t82871,\n\t\t\"node_modules_ionic_core_dist_esm_ion-slide_2_entry_js\"\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t17668,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-spinner_entry_js\"\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t55342,\n\t\t\"node_modules_ionic_core_dist_esm_ion-split-pane_entry_js\"\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t174,\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js\"\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t86185,\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab_2_entry_js\"\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t97337,\n\t\t\"node_modules_ionic_core_dist_esm_ion-text_entry_js\"\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t4833,\n\t\t\"node_modules_ionic_core_dist_esm_ion-textarea_entry_js\"\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t9468,\n\t\t\"node_modules_ionic_core_dist_esm_ion-toast_entry_js\"\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t25705,\n\t\t\"node_modules_ionic_core_dist_esm_ion-toggle_entry_js\"\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t87463,\n\t\t\"node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 50863;\nmodule.exports = webpackAsyncContext;","export default \"\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\\"corner\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{user.Iniciales}}
\\r\\n
\\r\\n
\\r\\n

{{user.Nombre}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
    \\r\\n
  • \\r\\n \\r\\n \\r\\n 0\\\" color=\\\"warning\\\">{{p.badgeNumber}}\\r\\n {{p.title}}\\r\\n
  • \\r\\n
  • \\r\\n \\r\\n \\r\\n Logs\\r\\n
  • \\r\\n
  • \\r\\n {{ 'Menu.AccesoAdmin' | translate }}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n v {{version}}\\r\\n
\\r\\n
\\r\\n |\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\\"Puntos\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Cerrar\\r\\n \\r\\n Logs\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Pruebas\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{service.CuentaAtrasQuioscoSubject | async}}\\r\\n
\\r\\n
\\r\\n \\r\\n Permiso de GPS denegado\\r\\n \\r\\n \\r\\n \\r\\n Precisión: {{coordinates.accuracy}}. Latitud: {{coordinates.latitude}}. Longitud: {{coordinates.longitude}}.\\r\\n \\r\\n \\r\\n Sin GPS\\r\\n \\r\\n \\r\\n
\";","export default \"\";","export default \"\\r\\n \\r\\n {{item.texto}}\\r\\n \\r\\n\";","export default \"\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{displayYear}} - {{displayMonth + 1 | monthName:lang}}
\\r\\n
\\r\\n
\\r\\n \\r\\n {{head}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
{{day.date}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\";","export default \"
\\r\\n
\\r\\n

{{loaderService.loaderText}}

\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{Filename}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"

\\r\\n {{texto}}\\r\\n

\";","var map = {\n\t\"./af\": 32139,\n\t\"./af.js\": 32139,\n\t\"./ar\": 22600,\n\t\"./ar-dz\": 81001,\n\t\"./ar-dz.js\": 81001,\n\t\"./ar-kw\": 99842,\n\t\"./ar-kw.js\": 99842,\n\t\"./ar-ly\": 9826,\n\t\"./ar-ly.js\": 9826,\n\t\"./ar-ma\": 15452,\n\t\"./ar-ma.js\": 15452,\n\t\"./ar-sa\": 11802,\n\t\"./ar-sa.js\": 11802,\n\t\"./ar-tn\": 4094,\n\t\"./ar-tn.js\": 4094,\n\t\"./ar.js\": 22600,\n\t\"./az\": 96375,\n\t\"./az.js\": 96375,\n\t\"./be\": 2086,\n\t\"./be.js\": 2086,\n\t\"./bg\": 85236,\n\t\"./bg.js\": 85236,\n\t\"./bm\": 81704,\n\t\"./bm.js\": 81704,\n\t\"./bn\": 94506,\n\t\"./bn-bd\": 34466,\n\t\"./bn-bd.js\": 34466,\n\t\"./bn.js\": 94506,\n\t\"./bo\": 47891,\n\t\"./bo.js\": 47891,\n\t\"./br\": 93348,\n\t\"./br.js\": 93348,\n\t\"./bs\": 84848,\n\t\"./bs.js\": 84848,\n\t\"./ca\": 35928,\n\t\"./ca.js\": 35928,\n\t\"./cs\": 31839,\n\t\"./cs.js\": 31839,\n\t\"./cv\": 59151,\n\t\"./cv.js\": 59151,\n\t\"./cy\": 35761,\n\t\"./cy.js\": 35761,\n\t\"./da\": 56686,\n\t\"./da.js\": 56686,\n\t\"./de\": 85177,\n\t\"./de-at\": 2311,\n\t\"./de-at.js\": 2311,\n\t\"./de-ch\": 54407,\n\t\"./de-ch.js\": 54407,\n\t\"./de.js\": 85177,\n\t\"./dv\": 79729,\n\t\"./dv.js\": 79729,\n\t\"./el\": 60430,\n\t\"./el.js\": 60430,\n\t\"./en-au\": 28430,\n\t\"./en-au.js\": 28430,\n\t\"./en-ca\": 61139,\n\t\"./en-ca.js\": 61139,\n\t\"./en-gb\": 56747,\n\t\"./en-gb.js\": 56747,\n\t\"./en-ie\": 79466,\n\t\"./en-ie.js\": 79466,\n\t\"./en-il\": 52121,\n\t\"./en-il.js\": 52121,\n\t\"./en-in\": 41167,\n\t\"./en-in.js\": 41167,\n\t\"./en-nz\": 62030,\n\t\"./en-nz.js\": 62030,\n\t\"./en-sg\": 43646,\n\t\"./en-sg.js\": 43646,\n\t\"./eo\": 73126,\n\t\"./eo.js\": 73126,\n\t\"./es\": 38819,\n\t\"./es-do\": 69293,\n\t\"./es-do.js\": 69293,\n\t\"./es-mx\": 65304,\n\t\"./es-mx.js\": 65304,\n\t\"./es-us\": 66068,\n\t\"./es-us.js\": 66068,\n\t\"./es.js\": 38819,\n\t\"./et\": 23291,\n\t\"./et.js\": 23291,\n\t\"./eu\": 1400,\n\t\"./eu.js\": 1400,\n\t\"./fa\": 70043,\n\t\"./fa.js\": 70043,\n\t\"./fi\": 16138,\n\t\"./fi.js\": 16138,\n\t\"./fil\": 11466,\n\t\"./fil.js\": 11466,\n\t\"./fo\": 76803,\n\t\"./fo.js\": 76803,\n\t\"./fr\": 65523,\n\t\"./fr-ca\": 697,\n\t\"./fr-ca.js\": 697,\n\t\"./fr-ch\": 69001,\n\t\"./fr-ch.js\": 69001,\n\t\"./fr.js\": 65523,\n\t\"./fy\": 21116,\n\t\"./fy.js\": 21116,\n\t\"./ga\": 66151,\n\t\"./ga.js\": 66151,\n\t\"./gd\": 93094,\n\t\"./gd.js\": 93094,\n\t\"./gl\": 11279,\n\t\"./gl.js\": 11279,\n\t\"./gom-deva\": 64458,\n\t\"./gom-deva.js\": 64458,\n\t\"./gom-latn\": 66320,\n\t\"./gom-latn.js\": 66320,\n\t\"./gu\": 78658,\n\t\"./gu.js\": 78658,\n\t\"./he\": 52153,\n\t\"./he.js\": 52153,\n\t\"./hi\": 98732,\n\t\"./hi.js\": 98732,\n\t\"./hr\": 84960,\n\t\"./hr.js\": 84960,\n\t\"./hu\": 76339,\n\t\"./hu.js\": 76339,\n\t\"./hy-am\": 11862,\n\t\"./hy-am.js\": 11862,\n\t\"./id\": 71068,\n\t\"./id.js\": 71068,\n\t\"./is\": 61260,\n\t\"./is.js\": 61260,\n\t\"./it\": 1007,\n\t\"./it-ch\": 78063,\n\t\"./it-ch.js\": 78063,\n\t\"./it.js\": 1007,\n\t\"./ja\": 6854,\n\t\"./ja.js\": 6854,\n\t\"./jv\": 92390,\n\t\"./jv.js\": 92390,\n\t\"./ka\": 35958,\n\t\"./ka.js\": 35958,\n\t\"./kk\": 67216,\n\t\"./kk.js\": 67216,\n\t\"./km\": 61061,\n\t\"./km.js\": 61061,\n\t\"./kn\": 24060,\n\t\"./kn.js\": 24060,\n\t\"./ko\": 55216,\n\t\"./ko.js\": 55216,\n\t\"./ku\": 50894,\n\t\"./ku.js\": 50894,\n\t\"./ky\": 609,\n\t\"./ky.js\": 609,\n\t\"./lb\": 3591,\n\t\"./lb.js\": 3591,\n\t\"./lo\": 38381,\n\t\"./lo.js\": 38381,\n\t\"./lt\": 56118,\n\t\"./lt.js\": 56118,\n\t\"./lv\": 67889,\n\t\"./lv.js\": 67889,\n\t\"./me\": 94274,\n\t\"./me.js\": 94274,\n\t\"./mi\": 39226,\n\t\"./mi.js\": 39226,\n\t\"./mk\": 528,\n\t\"./mk.js\": 528,\n\t\"./ml\": 27938,\n\t\"./ml.js\": 27938,\n\t\"./mn\": 35456,\n\t\"./mn.js\": 35456,\n\t\"./mr\": 94393,\n\t\"./mr.js\": 94393,\n\t\"./ms\": 93647,\n\t\"./ms-my\": 33049,\n\t\"./ms-my.js\": 33049,\n\t\"./ms.js\": 93647,\n\t\"./mt\": 26097,\n\t\"./mt.js\": 26097,\n\t\"./my\": 66277,\n\t\"./my.js\": 66277,\n\t\"./nb\": 67245,\n\t\"./nb.js\": 67245,\n\t\"./ne\": 3988,\n\t\"./ne.js\": 3988,\n\t\"./nl\": 42557,\n\t\"./nl-be\": 20478,\n\t\"./nl-be.js\": 20478,\n\t\"./nl.js\": 42557,\n\t\"./nn\": 9046,\n\t\"./nn.js\": 9046,\n\t\"./oc-lnc\": 83131,\n\t\"./oc-lnc.js\": 83131,\n\t\"./pa-in\": 51731,\n\t\"./pa-in.js\": 51731,\n\t\"./pl\": 8409,\n\t\"./pl.js\": 8409,\n\t\"./pt\": 41178,\n\t\"./pt-br\": 56558,\n\t\"./pt-br.js\": 56558,\n\t\"./pt.js\": 41178,\n\t\"./ro\": 84138,\n\t\"./ro.js\": 84138,\n\t\"./ru\": 73380,\n\t\"./ru.js\": 73380,\n\t\"./sd\": 42889,\n\t\"./sd.js\": 42889,\n\t\"./se\": 22774,\n\t\"./se.js\": 22774,\n\t\"./si\": 53776,\n\t\"./si.js\": 53776,\n\t\"./sk\": 9597,\n\t\"./sk.js\": 9597,\n\t\"./sl\": 93871,\n\t\"./sl.js\": 93871,\n\t\"./sq\": 44228,\n\t\"./sq.js\": 44228,\n\t\"./sr\": 40774,\n\t\"./sr-cyrl\": 61928,\n\t\"./sr-cyrl.js\": 61928,\n\t\"./sr.js\": 40774,\n\t\"./ss\": 83176,\n\t\"./ss.js\": 83176,\n\t\"./sv\": 52422,\n\t\"./sv.js\": 52422,\n\t\"./sw\": 52530,\n\t\"./sw.js\": 52530,\n\t\"./ta\": 5731,\n\t\"./ta.js\": 5731,\n\t\"./te\": 18025,\n\t\"./te.js\": 18025,\n\t\"./tet\": 53934,\n\t\"./tet.js\": 53934,\n\t\"./tg\": 99958,\n\t\"./tg.js\": 99958,\n\t\"./th\": 84251,\n\t\"./th.js\": 84251,\n\t\"./tk\": 65494,\n\t\"./tk.js\": 65494,\n\t\"./tl-ph\": 38568,\n\t\"./tl-ph.js\": 38568,\n\t\"./tlh\": 73158,\n\t\"./tlh.js\": 73158,\n\t\"./tr\": 49574,\n\t\"./tr.js\": 49574,\n\t\"./tzl\": 64311,\n\t\"./tzl.js\": 64311,\n\t\"./tzm\": 99990,\n\t\"./tzm-latn\": 42380,\n\t\"./tzm-latn.js\": 42380,\n\t\"./tzm.js\": 99990,\n\t\"./ug-cn\": 52356,\n\t\"./ug-cn.js\": 52356,\n\t\"./uk\": 54934,\n\t\"./uk.js\": 54934,\n\t\"./ur\": 84515,\n\t\"./ur.js\": 84515,\n\t\"./uz\": 40058,\n\t\"./uz-latn\": 41875,\n\t\"./uz-latn.js\": 41875,\n\t\"./uz.js\": 40058,\n\t\"./vi\": 13325,\n\t\"./vi.js\": 13325,\n\t\"./x-pseudo\": 39208,\n\t\"./x-pseudo.js\": 39208,\n\t\"./yo\": 18742,\n\t\"./yo.js\": 18742,\n\t\"./zh-cn\": 42378,\n\t\"./zh-cn.js\": 42378,\n\t\"./zh-hk\": 4569,\n\t\"./zh-hk.js\": 4569,\n\t\"./zh-mo\": 74671,\n\t\"./zh-mo.js\": 74671,\n\t\"./zh-tw\": 20259,\n\t\"./zh-tw.js\": 20259\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":[],"sourceRoot":"webpack:///"}