general-library-union 2.5.39 → 2.5.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/esm2022/general-library-union.mjs +5 -0
  2. package/esm2022/public-api.mjs +177 -0
  3. package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +40 -0
  4. package/esm2022/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.mjs +28 -0
  5. package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +192 -0
  6. package/esm2022/src/app/core/componentes/footer/footer.component.mjs +16 -0
  7. package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +272 -0
  8. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.mjs +11 -0
  9. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.mjs +124 -0
  10. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.mjs +73 -0
  11. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.mjs +59 -0
  12. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.mjs +21 -0
  13. package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +67 -0
  14. package/esm2022/src/app/core/componentes/menu/menu.component.mjs +37 -0
  15. package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +93 -0
  16. package/esm2022/src/app/core/core.module.mjs +23 -0
  17. package/esm2022/src/app/core/errores/authentication.error.mjs +7 -0
  18. package/esm2022/src/app/core/modelos/error-response.model.mjs +2 -0
  19. package/esm2022/src/app/core/modelos/table-column.model.mjs +2 -0
  20. package/esm2022/src/app/core/modelos/user.model.mjs +7 -0
  21. package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +230 -0
  22. package/esm2022/src/app/core/servicios/auth.service.mjs +185 -0
  23. package/esm2022/src/app/core/servicios/cargar-control-funcionalidad.service.mjs +57 -0
  24. package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +44 -0
  25. package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +148 -0
  26. package/esm2022/src/app/core/servicios/guardias/auth.guard.mjs +66 -0
  27. package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +35 -0
  28. package/esm2022/src/app/core/servicios/interceptores/token-interceptor.service.mjs +120 -0
  29. package/esm2022/src/app/core/servicios/loading.service.mjs +43 -0
  30. package/esm2022/src/app/core/servicios/menu.service.mjs +146 -0
  31. package/esm2022/src/app/core/servicios/storage.service.mjs +68 -0
  32. package/esm2022/src/app/core/servicios/template.service.mjs +99 -0
  33. package/esm2022/src/app/core/servicios/toast.service.mjs +98 -0
  34. package/esm2022/src/app/core/servicios/utils.service.mjs +324 -0
  35. package/esm2022/src/app/core/sharedlib.module.mjs +16 -0
  36. package/esm2022/src/app/core/utilidades/color.util.mjs +177 -0
  37. package/esm2022/src/app/layout/api/menuchangeevent.mjs +2 -0
  38. package/esm2022/src/app/layout/app.breadcrumb.component.mjs +71 -0
  39. package/esm2022/src/app/layout/app.footer.component.mjs +18 -0
  40. package/esm2022/src/app/layout/app.layout.component.mjs +188 -0
  41. package/esm2022/src/app/layout/app.layout.module.mjs +15 -0
  42. package/esm2022/src/app/layout/app.menu.component.mjs +51 -0
  43. package/esm2022/src/app/layout/app.menu.service.mjs +24 -0
  44. package/esm2022/src/app/layout/app.menuitem.component.mjs +296 -0
  45. package/esm2022/src/app/layout/app.menuprofile.component.mjs +78 -0
  46. package/esm2022/src/app/layout/app.rightmenu.component.mjs +24 -0
  47. package/esm2022/src/app/layout/app.sidebar.component.mjs +92 -0
  48. package/esm2022/src/app/layout/app.topbar.component.mjs +345 -0
  49. package/esm2022/src/app/layout/service/app.layout.service.mjs +134 -0
  50. package/esm2022/src/app/publico/pages/login/login.page.mjs +129 -0
  51. package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +51 -0
  52. package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +167 -0
  53. package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +20 -0
  54. package/esm2022/src/app/seguridad/constantes/ConstantesGenerales.mjs +30 -0
  55. package/esm2022/src/app/seguridad/constantes/ReporteEntradaConstantes.mjs +19 -0
  56. package/esm2022/src/app/seguridad/modelos/AplicacionModel.mjs +8 -0
  57. package/esm2022/src/app/seguridad/modelos/ArchivoPortalModel.mjs +14 -0
  58. package/esm2022/src/app/seguridad/modelos/AtributoPuntoModel.mjs +9 -0
  59. package/esm2022/src/app/seguridad/modelos/AtributoSSOportalModel.mjs +17 -0
  60. package/esm2022/src/app/seguridad/modelos/AuditoriaArchivoModel.mjs +11 -0
  61. package/esm2022/src/app/seguridad/modelos/CargueLineaModel.mjs +13 -0
  62. package/esm2022/src/app/seguridad/modelos/ColoresRGB.mjs +18 -0
  63. package/esm2022/src/app/seguridad/modelos/ColumnaFuenteModel.mjs +9 -0
  64. package/esm2022/src/app/seguridad/modelos/ColumnaWraperModel.mjs +6 -0
  65. package/esm2022/src/app/seguridad/modelos/ComplementoModel.mjs +7 -0
  66. package/esm2022/src/app/seguridad/modelos/ComponentePaginaModel.mjs +21 -0
  67. package/esm2022/src/app/seguridad/modelos/ConexionModel.mjs +14 -0
  68. package/esm2022/src/app/seguridad/modelos/ContenidoHtmlPortalModel.mjs +21 -0
  69. package/esm2022/src/app/seguridad/modelos/ControlFuncionModel.mjs +8 -0
  70. package/esm2022/src/app/seguridad/modelos/CorreoModel.mjs +35 -0
  71. package/esm2022/src/app/seguridad/modelos/CorreoWSModel.mjs +37 -0
  72. package/esm2022/src/app/seguridad/modelos/CruceRecursoPuntoModel.mjs +14 -0
  73. package/esm2022/src/app/seguridad/modelos/DatoInicioModel.mjs +6 -0
  74. package/esm2022/src/app/seguridad/modelos/EjecucionReporteDataModel.mjs +14 -0
  75. package/esm2022/src/app/seguridad/modelos/EmpresaModel.mjs +25 -0
  76. package/esm2022/src/app/seguridad/modelos/EmpresaSeguridadModel.mjs +19 -0
  77. package/esm2022/src/app/seguridad/modelos/EntradaComplementoModel.mjs +7 -0
  78. package/esm2022/src/app/seguridad/modelos/EtiquetaModel.mjs +5 -0
  79. package/esm2022/src/app/seguridad/modelos/Etiquetas.mjs +12 -0
  80. package/esm2022/src/app/seguridad/modelos/ForeingWraperModel.mjs +6 -0
  81. package/esm2022/src/app/seguridad/modelos/FuenteCampoAtributoModel.mjs +16 -0
  82. package/esm2022/src/app/seguridad/modelos/FuenteCampoModel.mjs +17 -0
  83. package/esm2022/src/app/seguridad/modelos/FuenteDato.mjs +19 -0
  84. package/esm2022/src/app/seguridad/modelos/FuenteEntradaModel.mjs +9 -0
  85. package/esm2022/src/app/seguridad/modelos/FuenteGeneralModel.mjs +37 -0
  86. package/esm2022/src/app/seguridad/modelos/FuenteLineaServicioModel.mjs +16 -0
  87. package/esm2022/src/app/seguridad/modelos/FuenteProcesoGeneralModel.mjs +11 -0
  88. package/esm2022/src/app/seguridad/modelos/FuenteServicioModel.mjs +51 -0
  89. package/esm2022/src/app/seguridad/modelos/FuncionalidadModel.mjs +10 -0
  90. package/esm2022/src/app/seguridad/modelos/GeneralModel.mjs +15 -0
  91. package/esm2022/src/app/seguridad/modelos/GrupoAccesoModel.mjs +7 -0
  92. package/esm2022/src/app/seguridad/modelos/GrupoControlFuncionModel.mjs +10 -0
  93. package/esm2022/src/app/seguridad/modelos/GrupoFuenteModel.mjs +13 -0
  94. package/esm2022/src/app/seguridad/modelos/GrupoPermisoModel.mjs +14 -0
  95. package/esm2022/src/app/seguridad/modelos/JoinFromModel.mjs +5 -0
  96. package/esm2022/src/app/seguridad/modelos/ListaServicioModel.mjs +17 -0
  97. package/esm2022/src/app/seguridad/modelos/LlaveForaneaModel.mjs +7 -0
  98. package/esm2022/src/app/seguridad/modelos/LoginModel.mjs +15 -0
  99. package/esm2022/src/app/seguridad/modelos/MensajeSistemaModel.mjs +8 -0
  100. package/esm2022/src/app/seguridad/modelos/MenuPortalModel.mjs +5 -0
  101. package/esm2022/src/app/seguridad/modelos/ModulosModel.mjs +18 -0
  102. package/esm2022/src/app/seguridad/modelos/ObjetoReporteModel.mjs +6 -0
  103. package/esm2022/src/app/seguridad/modelos/PaginaPortalModel.mjs +20 -0
  104. package/esm2022/src/app/seguridad/modelos/ParametroComponenteModel.mjs +9 -0
  105. package/esm2022/src/app/seguridad/modelos/ParametrosGeneralModel.mjs +15 -0
  106. package/esm2022/src/app/seguridad/modelos/PermisoFuncionModel.mjs +9 -0
  107. package/esm2022/src/app/seguridad/modelos/PermisocontenidoModel.mjs +20 -0
  108. package/esm2022/src/app/seguridad/modelos/PeticionModel.mjs +16 -0
  109. package/esm2022/src/app/seguridad/modelos/PreguntaSeguridadModel.mjs +7 -0
  110. package/esm2022/src/app/seguridad/modelos/PropiedadModel.mjs +10 -0
  111. package/esm2022/src/app/seguridad/modelos/PublicacionWebModel.mjs +27 -0
  112. package/esm2022/src/app/seguridad/modelos/PuntoProcesoModel.mjs +7 -0
  113. package/esm2022/src/app/seguridad/modelos/RecursoPunto.mjs +13 -0
  114. package/esm2022/src/app/seguridad/modelos/RecursoPuntoModel.mjs +13 -0
  115. package/esm2022/src/app/seguridad/modelos/ReporteBanda.mjs +8 -0
  116. package/esm2022/src/app/seguridad/modelos/ReporteColumna.mjs +33 -0
  117. package/esm2022/src/app/seguridad/modelos/ReporteColumnario.mjs +69 -0
  118. package/esm2022/src/app/seguridad/modelos/ReporteColumnarioMarcador.mjs +24 -0
  119. package/esm2022/src/app/seguridad/modelos/ReporteEntradaModel.mjs +20 -0
  120. package/esm2022/src/app/seguridad/modelos/ReporteFuenteModel.mjs +124 -0
  121. package/esm2022/src/app/seguridad/modelos/ReporteMarcador.mjs +40 -0
  122. package/esm2022/src/app/seguridad/modelos/ReporteSoporte.mjs +10 -0
  123. package/esm2022/src/app/seguridad/modelos/ReporteTabla.mjs +13 -0
  124. package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +9 -0
  125. package/esm2022/src/app/seguridad/modelos/RolModel.mjs +39 -0
  126. package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +28 -0
  127. package/esm2022/src/app/seguridad/modelos/SistemaMensajeModel.mjs +9 -0
  128. package/esm2022/src/app/seguridad/modelos/SitioPortalModel.mjs +25 -0
  129. package/esm2022/src/app/seguridad/modelos/TablaFromModel.mjs +5 -0
  130. package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +54 -0
  131. package/esm2022/src/app/seguridad/modelos/TextoModel.mjs +9 -0
  132. package/esm2022/src/app/seguridad/modelos/TipoEtiqueta.mjs +8 -0
  133. package/esm2022/src/app/seguridad/modelos/UnionModel.mjs +12 -0
  134. package/esm2022/src/app/seguridad/modelos/UsuarioModel.mjs +53 -0
  135. package/esm2022/src/app/seguridad/modelos/UsuariogrupoModel.mjs +24 -0
  136. package/esm2022/src/app/seguridad/modelos/aplicacion-propiedad-model.mjs +15 -0
  137. package/esm2022/src/app/seguridad/modelos/contenidoCorreoModel.mjs +10 -0
  138. package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +151 -0
  139. package/esm2022/src/app/shared/servicios/cargar-archivos.service.mjs +54 -0
  140. package/esm2022/src/app/shared/servicios/cargar-mapas.service.mjs +46 -0
  141. package/esm2022/src/app/shared/servicios/encriptado-basico.service.mjs +53 -0
  142. package/esm2022/src/app/shared/servicios/general.service.mjs +104 -0
  143. package/esm2022/src/app/shared/servicios/parametros-navegacion.service.mjs +21 -0
  144. package/esm2022/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.mjs +370 -0
  145. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +187 -0
  146. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.mjs +85 -0
  147. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.mjs +347 -0
  148. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +206 -0
  149. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +328 -0
  150. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +1569 -0
  151. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.mjs +105 -0
  152. package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +103 -0
  153. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +588 -0
  154. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +177 -0
  155. package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +749 -0
  156. package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +331 -0
  157. package/esm2022/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.mjs +96 -0
  158. package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +675 -0
  159. package/esm2022/src/app/webcommon/pipes/dashboard.pipe.mjs +86 -0
  160. package/esm2022/src/app/webcommon/pipes/fuente.pipe.mjs +201 -0
  161. package/esm2022/src/app/webcommon/pipes/general.pipe.mjs +916 -0
  162. package/esm2022/src/app/webcommon/pipes/reporte-columnario.pipe.mjs +115 -0
  163. package/esm2022/src/app/webcommon/pipes/reporte-fuente.pipe.mjs +301 -0
  164. package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +267 -0
  165. package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +128 -0
  166. package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +293 -0
  167. package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +269 -0
  168. package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +515 -0
  169. package/esm2022/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.mjs +64 -0
  170. package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +159 -0
  171. package/esm2022/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.mjs +89 -0
  172. package/esm2022/src/app/webcommon/services/carguelinea.service.mjs +69 -0
  173. package/esm2022/src/app/webcommon/services/dashboard.service.mjs +253 -0
  174. package/esm2022/src/app/webcommon/services/ejecucionreporte.service.mjs +114 -0
  175. package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +88 -0
  176. package/esm2022/src/app/webcommon/services/fuentegeneral.service.mjs +68 -0
  177. package/esm2022/src/app/webcommon/services/homologacion.service.mjs +50 -0
  178. package/esm2022/src/app/webcommon/services/plantillas.service.mjs +129 -0
  179. package/esm2022/src/app/webcommon/services/reportes.service.mjs +95 -0
  180. package/esm2022/src/app/webcommon/webcommon.module.mjs +15 -0
  181. package/esm2022/src/environments/environment.mjs +24 -0
  182. package/fesm2022/general-library-union.mjs +15642 -0
  183. package/fesm2022/general-library-union.mjs.map +1 -0
  184. package/index.d.ts +5 -0
  185. package/package.json +17 -28
  186. package/{public-api.ts → public-api.d.ts} +35 -73
  187. package/src/app/core/componentes/breadcrumb/breadcrumb.component.d.ts +18 -0
  188. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.d.ts +14 -0
  189. package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +34 -0
  190. package/src/app/core/componentes/footer/footer.component.d.ts +9 -0
  191. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +46 -0
  192. package/src/app/core/componentes/formulariodinamico/objetosformulario/{Cambio.ts → Cambio.d.ts} +3 -9
  193. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.d.ts +44 -0
  194. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.d.ts +45 -0
  195. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.d.ts +33 -0
  196. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.d.ts +9 -0
  197. package/src/app/core/componentes/inicio-component/inicio-component.component.d.ts +24 -0
  198. package/src/app/core/componentes/menu/menu.component.d.ts +16 -0
  199. package/src/app/core/componentes/tabla-general/tabla-general.component.d.ts +32 -0
  200. package/src/app/core/core.module.d.ts +8 -0
  201. package/src/app/core/errores/authentication.error.d.ts +3 -0
  202. package/src/app/core/modelos/error-response.model.d.ts +9 -0
  203. package/src/app/core/modelos/table-column.model.d.ts +12 -0
  204. package/src/app/core/modelos/user.model.d.ts +6 -0
  205. package/src/app/core/plantilla-general/plantilla-general.template.d.ts +89 -0
  206. package/src/app/core/servicios/auth.service.d.ts +52 -0
  207. package/src/app/core/servicios/cargar-control-funcionalidad.service.d.ts +19 -0
  208. package/src/app/core/servicios/data-exporter-table.utils.d.ts +8 -0
  209. package/src/app/core/servicios/error-interceptor.service.d.ts +41 -0
  210. package/src/app/core/servicios/guardias/auth.guard.d.ts +17 -0
  211. package/src/app/core/servicios/guardias/publico.guard.d.ts +13 -0
  212. package/src/app/core/servicios/interceptores/token-interceptor.service.d.ts +21 -0
  213. package/src/app/core/servicios/loading.service.d.ts +22 -0
  214. package/src/app/core/servicios/menu.service.d.ts +35 -0
  215. package/src/app/core/servicios/storage.service.d.ts +37 -0
  216. package/src/app/core/servicios/template.service.d.ts +20 -0
  217. package/src/app/core/servicios/toast.service.d.ts +46 -0
  218. package/src/app/core/servicios/utils.service.d.ts +42 -0
  219. package/src/app/core/sharedlib.module.d.ts +6 -0
  220. package/src/app/core/utilidades/color.util.d.ts +70 -0
  221. package/src/app/layout/api/{menuchangeevent.ts → menuchangeevent.d.ts} +1 -1
  222. package/src/app/layout/app.breadcrumb.component.d.ts +28 -0
  223. package/src/app/layout/app.footer.component.d.ts +8 -0
  224. package/src/app/layout/app.layout.component.d.ts +39 -0
  225. package/src/app/layout/app.layout.module.d.ts +6 -0
  226. package/src/app/layout/app.menu.component.d.ts +19 -0
  227. package/src/app/layout/app.menu.service.d.ts +12 -0
  228. package/src/app/layout/app.menuitem.component.d.ts +41 -0
  229. package/src/app/layout/app.menuprofile.component.d.ts +18 -0
  230. package/src/app/layout/app.rightmenu.component.d.ts +10 -0
  231. package/src/app/layout/app.sidebar.component.d.ts +34 -0
  232. package/src/app/layout/app.topbar.component.d.ts +79 -0
  233. package/src/app/layout/service/app.layout.service.d.ts +57 -0
  234. package/src/app/publico/pages/login/login.page.d.ts +40 -0
  235. package/src/app/publico/pages/not-found/not-found.page.d.ts +17 -0
  236. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.d.ts +41 -0
  237. package/src/app/publico/pages/timeout/timeout.page.d.ts +10 -0
  238. package/src/app/seguridad/constantes/ConstantesGenerales.d.ts +25 -0
  239. package/src/app/seguridad/constantes/ReporteEntradaConstantes.d.ts +7 -0
  240. package/src/app/seguridad/modelos/AplicacionModel.d.ts +7 -0
  241. package/src/app/seguridad/modelos/ArchivoPortalModel.d.ts +13 -0
  242. package/src/app/seguridad/modelos/AtributoPuntoModel.d.ts +8 -0
  243. package/src/app/seguridad/modelos/AtributoSSOportalModel.d.ts +16 -0
  244. package/src/app/seguridad/modelos/{AuditoriaArchivoModel.ts → AuditoriaArchivoModel.d.ts} +2 -5
  245. package/src/app/seguridad/modelos/CargueLineaModel.d.ts +12 -0
  246. package/src/app/seguridad/modelos/ColoresRGB.d.ts +17 -0
  247. package/src/app/seguridad/modelos/ColumnaFuenteModel.d.ts +8 -0
  248. package/src/app/seguridad/modelos/{ColumnaWraperModel.ts → ColumnaWraperModel.d.ts} +4 -5
  249. package/src/app/seguridad/modelos/ComplementoModel.d.ts +6 -0
  250. package/src/app/seguridad/modelos/ComponentePaginaModel.d.ts +20 -0
  251. package/src/app/seguridad/modelos/ConexionModel.d.ts +13 -0
  252. package/src/app/seguridad/modelos/{ContenidoHtmlPortalModel.ts → ContenidoHtmlPortalModel.d.ts} +2 -7
  253. package/src/app/seguridad/modelos/ControlFuncionModel.d.ts +7 -0
  254. package/src/app/seguridad/modelos/CorreoModel.d.ts +31 -0
  255. package/src/app/seguridad/modelos/CorreoWSModel.d.ts +33 -0
  256. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.d.ts +13 -0
  257. package/src/app/seguridad/modelos/{DatoInicioModel.ts → DatoInicioModel.d.ts} +3 -4
  258. package/src/app/seguridad/modelos/{EjecucionReporteDataModel.ts → EjecucionReporteDataModel.d.ts} +2 -3
  259. package/src/app/seguridad/modelos/EmpresaModel.d.ts +23 -0
  260. package/src/app/seguridad/modelos/EmpresaSeguridadModel.d.ts +18 -0
  261. package/src/app/seguridad/modelos/{EntradaComplementoModel.ts → EntradaComplementoModel.d.ts} +2 -5
  262. package/src/app/seguridad/modelos/EtiquetaModel.d.ts +4 -0
  263. package/src/app/seguridad/modelos/Etiquetas.d.ts +10 -0
  264. package/src/app/seguridad/modelos/{ForeingWraperModel.ts → ForeingWraperModel.d.ts} +2 -5
  265. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +15 -0
  266. package/src/app/seguridad/modelos/{FuenteCampoModel.ts → FuenteCampoModel.d.ts} +2 -6
  267. package/src/app/seguridad/modelos/FuenteDato.d.ts +18 -0
  268. package/src/app/seguridad/modelos/FuenteEntradaModel.d.ts +8 -0
  269. package/src/app/seguridad/modelos/{FuenteGeneralModel.ts → FuenteGeneralModel.d.ts} +2 -21
  270. package/src/app/seguridad/modelos/FuenteLineaServicioModel.d.ts +16 -0
  271. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.d.ts +10 -0
  272. package/src/app/seguridad/modelos/{FuenteServicioModel.ts → FuenteServicioModel.d.ts} +2 -16
  273. package/src/app/seguridad/modelos/FuncionalidadModel.d.ts +8 -0
  274. package/src/app/seguridad/modelos/GeneralModel.d.ts +8 -0
  275. package/src/app/seguridad/modelos/{GrupoAccesoModel.ts → GrupoAccesoModel.d.ts} +2 -5
  276. package/src/app/seguridad/modelos/GrupoControlFuncionModel.d.ts +9 -0
  277. package/src/app/seguridad/modelos/GrupoFuenteModel.d.ts +13 -0
  278. package/src/app/seguridad/modelos/GrupoPermisoModel.d.ts +13 -0
  279. package/src/app/seguridad/modelos/{JoinFromModel.ts → JoinFromModel.d.ts} +2 -2
  280. package/src/app/seguridad/modelos/ListaServicioModel.d.ts +16 -0
  281. package/src/app/seguridad/modelos/LlaveForaneaModel.d.ts +6 -0
  282. package/src/app/seguridad/modelos/LoginModel.d.ts +17 -0
  283. package/src/app/seguridad/modelos/MensajeSistemaModel.d.ts +7 -0
  284. package/src/app/seguridad/modelos/{MenuPortalModel.ts → MenuPortalModel.d.ts} +1 -2
  285. package/src/app/seguridad/modelos/ModulosModel.d.ts +14 -0
  286. package/src/app/seguridad/modelos/{ObjetoReporteModel.ts → ObjetoReporteModel.d.ts} +2 -3
  287. package/src/app/seguridad/modelos/PaginaPortalModel.d.ts +19 -0
  288. package/src/app/seguridad/modelos/ParametroComponenteModel.d.ts +8 -0
  289. package/src/app/seguridad/modelos/ParametrosGeneralModel.d.ts +8 -0
  290. package/src/app/seguridad/modelos/PermisoFuncionModel.d.ts +8 -0
  291. package/src/app/seguridad/modelos/PermisocontenidoModel.d.ts +18 -0
  292. package/src/app/seguridad/modelos/{PeticionModel.ts → PeticionModel.d.ts} +1 -6
  293. package/src/app/seguridad/modelos/PreguntaSeguridadModel.d.ts +6 -0
  294. package/src/app/seguridad/modelos/PropiedadModel.d.ts +9 -0
  295. package/src/app/seguridad/modelos/PublicacionWebModel.d.ts +25 -0
  296. package/src/app/seguridad/modelos/PuntoProcesoModel.d.ts +6 -0
  297. package/src/app/seguridad/modelos/RecursoPunto.d.ts +12 -0
  298. package/src/app/seguridad/modelos/RecursoPuntoModel.d.ts +12 -0
  299. package/src/app/seguridad/modelos/ReporteBanda.d.ts +7 -0
  300. package/src/app/seguridad/modelos/ReporteColumna.d.ts +32 -0
  301. package/src/app/seguridad/modelos/ReporteColumnario.d.ts +68 -0
  302. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.d.ts +23 -0
  303. package/src/app/seguridad/modelos/{ReporteEntradaModel.ts → ReporteEntradaModel.d.ts} +2 -4
  304. package/src/app/seguridad/modelos/{ReporteFuenteModel.ts → ReporteFuenteModel.d.ts} +16 -70
  305. package/src/app/seguridad/modelos/ReporteMarcador.d.ts +39 -0
  306. package/src/app/seguridad/modelos/ReporteSoporte.d.ts +9 -0
  307. package/src/app/seguridad/modelos/ReporteTabla.d.ts +12 -0
  308. package/src/app/seguridad/modelos/RespuestaModel.d.ts +8 -0
  309. package/src/app/seguridad/modelos/{RolModel.ts → RolModel.d.ts} +4 -8
  310. package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +25 -0
  311. package/src/app/seguridad/modelos/SistemaMensajeModel.d.ts +8 -0
  312. package/src/app/seguridad/modelos/SitioPortalModel.d.ts +24 -0
  313. package/src/app/seguridad/modelos/TablaFromModel.d.ts +4 -0
  314. package/src/app/seguridad/modelos/TareasModel.d.ts +49 -0
  315. package/src/app/seguridad/modelos/TextoModel.d.ts +8 -0
  316. package/src/app/seguridad/modelos/TipoEtiqueta.d.ts +7 -0
  317. package/src/app/seguridad/modelos/UnionModel.d.ts +11 -0
  318. package/src/app/seguridad/modelos/{UsuarioModel.ts → UsuarioModel.d.ts} +5 -16
  319. package/src/app/seguridad/modelos/UsuariogrupoModel.d.ts +22 -0
  320. package/src/app/seguridad/modelos/aplicacion-propiedad-model.d.ts +13 -0
  321. package/src/app/seguridad/modelos/contenidoCorreoModel.d.ts +9 -0
  322. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.d.ts +47 -0
  323. package/src/app/shared/servicios/cargar-archivos.service.d.ts +15 -0
  324. package/src/app/shared/servicios/cargar-mapas.service.d.ts +18 -0
  325. package/src/app/shared/servicios/encriptado-basico.service.d.ts +10 -0
  326. package/src/app/shared/servicios/general.service.d.ts +24 -0
  327. package/src/app/shared/servicios/parametros-navegacion.service.d.ts +9 -0
  328. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.d.ts +78 -0
  329. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.d.ts +79 -0
  330. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.d.ts +29 -0
  331. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.d.ts +69 -0
  332. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.d.ts +51 -0
  333. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.d.ts +77 -0
  334. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +275 -0
  335. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.d.ts +42 -0
  336. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +35 -0
  337. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +143 -0
  338. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.d.ts +49 -0
  339. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.d.ts +128 -0
  340. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.d.ts +64 -0
  341. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.d.ts +33 -0
  342. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.d.ts +149 -0
  343. package/src/app/webcommon/pipes/dashboard.pipe.d.ts +48 -0
  344. package/src/app/webcommon/pipes/fuente.pipe.d.ts +136 -0
  345. package/src/app/webcommon/pipes/general.pipe.d.ts +646 -0
  346. package/src/app/webcommon/pipes/reporte-columnario.pipe.d.ts +59 -0
  347. package/src/app/webcommon/pipes/reporte-fuente.pipe.d.ts +193 -0
  348. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.d.ts +59 -0
  349. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.d.ts +27 -0
  350. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.d.ts +64 -0
  351. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.d.ts +63 -0
  352. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.d.ts +97 -0
  353. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.d.ts +21 -0
  354. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.d.ts +42 -0
  355. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.d.ts +30 -0
  356. package/src/app/webcommon/services/carguelinea.service.d.ts +19 -0
  357. package/src/app/webcommon/services/dashboard.service.d.ts +27 -0
  358. package/src/app/webcommon/services/ejecucionreporte.service.d.ts +34 -0
  359. package/src/app/webcommon/services/fechaUtils.service.d.ts +29 -0
  360. package/src/app/webcommon/services/fuentegeneral.service.d.ts +24 -0
  361. package/src/app/webcommon/services/homologacion.service.d.ts +17 -0
  362. package/src/app/webcommon/services/plantillas.service.d.ts +26 -0
  363. package/src/app/webcommon/services/reportes.service.d.ts +35 -0
  364. package/src/app/webcommon/webcommon.module.d.ts +6 -0
  365. package/src/environments/environment.d.ts +7 -0
  366. package/.browserslistrc +0 -15
  367. package/.editorconfig +0 -16
  368. package/.vscode/extensions.json +0 -4
  369. package/.vscode/launch.json +0 -20
  370. package/.vscode/tasks.json +0 -42
  371. package/angular.json +0 -143
  372. package/karma.conf.js +0 -44
  373. package/ng-package.json +0 -21
  374. package/src/app/app.component.html +0 -12
  375. package/src/app/app.component.scss +0 -0
  376. package/src/app/app.component.spec.ts +0 -29
  377. package/src/app/app.component.ts +0 -34
  378. package/src/app/app.config.ts +0 -43
  379. package/src/app/app.module.ts +0 -10
  380. package/src/app/app.routes.ts +0 -88
  381. package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +0 -6
  382. package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
  383. package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +0 -39
  384. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +0 -1
  385. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
  386. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +0 -31
  387. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +0 -9
  388. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +0 -28
  389. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +0 -32
  390. package/src/app/core/componentes/filtro-general/filtro-general.component.html +0 -34
  391. package/src/app/core/componentes/filtro-general/filtro-general.component.scss +0 -3
  392. package/src/app/core/componentes/filtro-general/filtro-general.component.ts +0 -200
  393. package/src/app/core/componentes/footer/footer.component.html +0 -13
  394. package/src/app/core/componentes/footer/footer.component.scss +0 -3
  395. package/src/app/core/componentes/footer/footer.component.ts +0 -20
  396. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +0 -267
  397. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +0 -21
  398. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +0 -275
  399. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +0 -118
  400. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +0 -76
  401. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +0 -67
  402. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +0 -11
  403. package/src/app/core/componentes/inicio-component/inicio-component.component.html +0 -29
  404. package/src/app/core/componentes/inicio-component/inicio-component.component.scss +0 -69
  405. package/src/app/core/componentes/inicio-component/inicio-component.component.ts +0 -65
  406. package/src/app/core/componentes/menu/menu.component.html +0 -13
  407. package/src/app/core/componentes/menu/menu.component.scss +0 -36
  408. package/src/app/core/componentes/menu/menu.component.ts +0 -35
  409. package/src/app/core/componentes/tabla-general/tabla-general.component.html +0 -90
  410. package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
  411. package/src/app/core/componentes/tabla-general/tabla-general.component.ts +0 -96
  412. package/src/app/core/core.module.ts +0 -22
  413. package/src/app/core/errores/authentication.error.ts +0 -6
  414. package/src/app/core/modelos/error-response.model.ts +0 -9
  415. package/src/app/core/modelos/table-column.model.ts +0 -10
  416. package/src/app/core/modelos/user.model.ts +0 -6
  417. package/src/app/core/plantilla-general/plantilla-general.template.html +0 -139
  418. package/src/app/core/plantilla-general/plantilla-general.template.scss +0 -37
  419. package/src/app/core/plantilla-general/plantilla-general.template.ts +0 -233
  420. package/src/app/core/servicios/auth.service.ts +0 -189
  421. package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +0 -49
  422. package/src/app/core/servicios/data-exporter-table.utils.ts +0 -55
  423. package/src/app/core/servicios/error-interceptor.service.ts +0 -146
  424. package/src/app/core/servicios/guardias/auth.guard.ts +0 -51
  425. package/src/app/core/servicios/guardias/publico.guard.ts +0 -26
  426. package/src/app/core/servicios/interceptores/token-interceptor.service.ts +0 -110
  427. package/src/app/core/servicios/loading.service.ts +0 -48
  428. package/src/app/core/servicios/menu.service.ts +0 -153
  429. package/src/app/core/servicios/storage.service.ts +0 -68
  430. package/src/app/core/servicios/template.service.ts +0 -91
  431. package/src/app/core/servicios/toast.service.ts +0 -96
  432. package/src/app/core/servicios/utils.service.ts +0 -351
  433. package/src/app/core/sharedlib.module.ts +0 -11
  434. package/src/app/core/utilidades/color.util.ts +0 -197
  435. package/src/app/layout/app.breadcrumb.component.html +0 -20
  436. package/src/app/layout/app.breadcrumb.component.ts +0 -78
  437. package/src/app/layout/app.footer.component.html +0 -18
  438. package/src/app/layout/app.footer.component.ts +0 -15
  439. package/src/app/layout/app.layout.component.html +0 -20
  440. package/src/app/layout/app.layout.component.ts +0 -201
  441. package/src/app/layout/app.layout.module.ts +0 -9
  442. package/src/app/layout/app.menu.component.html +0 -6
  443. package/src/app/layout/app.menu.component.ts +0 -51
  444. package/src/app/layout/app.menu.service.ts +0 -23
  445. package/src/app/layout/app.menuitem.component.ts +0 -252
  446. package/src/app/layout/app.menuprofile.component.html +0 -35
  447. package/src/app/layout/app.menuprofile.component.ts +0 -60
  448. package/src/app/layout/app.rightmenu.component.html +0 -72
  449. package/src/app/layout/app.rightmenu.component.ts +0 -24
  450. package/src/app/layout/app.sidebar.component.html +0 -40
  451. package/src/app/layout/app.sidebar.component.ts +0 -81
  452. package/src/app/layout/app.topbar.component.html +0 -214
  453. package/src/app/layout/app.topbar.component.ts +0 -335
  454. package/src/app/layout/config/app.config.component.html +0 -125
  455. package/src/app/layout/config/app.config.component.ts +0 -206
  456. package/src/app/layout/config/app.config.module.ts +0 -11
  457. package/src/app/layout/service/app.layout.service.ts +0 -191
  458. package/src/app/publico/pages/login/login.page.html +0 -53
  459. package/src/app/publico/pages/login/login.page.scss +0 -166
  460. package/src/app/publico/pages/login/login.page.ts +0 -128
  461. package/src/app/publico/pages/not-found/not-found.page.html +0 -35
  462. package/src/app/publico/pages/not-found/not-found.page.scss +0 -2
  463. package/src/app/publico/pages/not-found/not-found.page.ts +0 -46
  464. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +0 -58
  465. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +0 -49
  466. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +0 -176
  467. package/src/app/publico/pages/timeout/timeout.page.html +0 -24
  468. package/src/app/publico/pages/timeout/timeout.page.scss +0 -2
  469. package/src/app/publico/pages/timeout/timeout.page.ts +0 -18
  470. package/src/app/seguridad/constantes/ConstantesGenerales.ts +0 -30
  471. package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +0 -18
  472. package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +0 -13
  473. package/src/app/seguridad/modelos/AplicacionModel.ts +0 -11
  474. package/src/app/seguridad/modelos/ArchivoPortalModel.ts +0 -16
  475. package/src/app/seguridad/modelos/AtributoPuntoModel.ts +0 -9
  476. package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +0 -22
  477. package/src/app/seguridad/modelos/CargueLineaModel.ts +0 -17
  478. package/src/app/seguridad/modelos/ColoresRGB.ts +0 -17
  479. package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +0 -9
  480. package/src/app/seguridad/modelos/ComplementoModel.ts +0 -10
  481. package/src/app/seguridad/modelos/ComponentePaginaModel.ts +0 -22
  482. package/src/app/seguridad/modelos/ConexionModel.ts +0 -15
  483. package/src/app/seguridad/modelos/ControlFuncionModel.ts +0 -10
  484. package/src/app/seguridad/modelos/CorreoModel.ts +0 -45
  485. package/src/app/seguridad/modelos/CorreoWSModel.ts +0 -49
  486. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +0 -14
  487. package/src/app/seguridad/modelos/EmpresaModel.ts +0 -25
  488. package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +0 -19
  489. package/src/app/seguridad/modelos/EtiquetaModel.ts +0 -4
  490. package/src/app/seguridad/modelos/Etiquetas.ts +0 -14
  491. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +0 -21
  492. package/src/app/seguridad/modelos/FuenteDato.ts +0 -19
  493. package/src/app/seguridad/modelos/FuenteEntradaModel.ts +0 -9
  494. package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +0 -19
  495. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +0 -14
  496. package/src/app/seguridad/modelos/FuncionalidadModel.ts +0 -12
  497. package/src/app/seguridad/modelos/GeneralModel.ts +0 -16
  498. package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +0 -12
  499. package/src/app/seguridad/modelos/GrupoFuenteModel.ts +0 -17
  500. package/src/app/seguridad/modelos/GrupoPermisoModel.ts +0 -16
  501. package/src/app/seguridad/modelos/ListaServicioModel.ts +0 -18
  502. package/src/app/seguridad/modelos/LlaveForaneaModel.ts +0 -6
  503. package/src/app/seguridad/modelos/LoginModel.ts +0 -19
  504. package/src/app/seguridad/modelos/MensajeSistemaModel.ts +0 -10
  505. package/src/app/seguridad/modelos/ModulosModel.ts +0 -17
  506. package/src/app/seguridad/modelos/PaginaPortalModel.ts +0 -23
  507. package/src/app/seguridad/modelos/ParametroComponenteModel.ts +0 -9
  508. package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +0 -16
  509. package/src/app/seguridad/modelos/PermisoFuncionModel.ts +0 -11
  510. package/src/app/seguridad/modelos/PermisocontenidoModel.ts +0 -20
  511. package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +0 -9
  512. package/src/app/seguridad/modelos/PropiedadModel.ts +0 -12
  513. package/src/app/seguridad/modelos/PublicacionWebModel.ts +0 -29
  514. package/src/app/seguridad/modelos/PuntoProcesoModel.ts +0 -7
  515. package/src/app/seguridad/modelos/RecursoPunto.ts +0 -13
  516. package/src/app/seguridad/modelos/RecursoPuntoModel.ts +0 -13
  517. package/src/app/seguridad/modelos/ReporteBanda.ts +0 -9
  518. package/src/app/seguridad/modelos/ReporteColumna.ts +0 -33
  519. package/src/app/seguridad/modelos/ReporteColumnario.ts +0 -82
  520. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +0 -31
  521. package/src/app/seguridad/modelos/ReporteMarcador.ts +0 -40
  522. package/src/app/seguridad/modelos/ReporteSoporte.ts +0 -10
  523. package/src/app/seguridad/modelos/ReporteTabla.ts +0 -14
  524. package/src/app/seguridad/modelos/RespuestaModel.ts +0 -10
  525. package/src/app/seguridad/modelos/ServidorCorreoModel.ts +0 -31
  526. package/src/app/seguridad/modelos/SistemaMensajeModel.ts +0 -11
  527. package/src/app/seguridad/modelos/SitioPortalModel.ts +0 -29
  528. package/src/app/seguridad/modelos/TablaFromModel.ts +0 -5
  529. package/src/app/seguridad/modelos/TareasModel.ts +0 -54
  530. package/src/app/seguridad/modelos/TextoModel.ts +0 -11
  531. package/src/app/seguridad/modelos/TipoEtiqueta.ts +0 -8
  532. package/src/app/seguridad/modelos/UnionModel.ts +0 -14
  533. package/src/app/seguridad/modelos/UsuariogrupoModel.ts +0 -27
  534. package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +0 -16
  535. package/src/app/seguridad/modelos/contenidoCorreoModel.ts +0 -13
  536. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +0 -47
  537. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +0 -8
  538. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +0 -141
  539. package/src/app/shared/servicios/cargar-archivos.service.ts +0 -51
  540. package/src/app/shared/servicios/cargar-mapas.service.ts +0 -43
  541. package/src/app/shared/servicios/encriptado-basico.service.ts +0 -54
  542. package/src/app/shared/servicios/encriptador-simetrico.service.ts +0 -29
  543. package/src/app/shared/servicios/general.service.ts +0 -124
  544. package/src/app/shared/servicios/parametros-navegacion.service.ts +0 -20
  545. package/src/app/shared/servicios/plantillas.service.ts +0 -22
  546. package/src/app/shared/utilidades/translate-loader.util.ts +0 -44
  547. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +0 -167
  548. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +0 -11
  549. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +0 -425
  550. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +0 -87
  551. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.scss +0 -0
  552. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts +0 -189
  553. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +0 -117
  554. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.scss +0 -0
  555. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts +0 -87
  556. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +0 -158
  557. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +0 -6
  558. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +0 -345
  559. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +0 -131
  560. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.scss +0 -0
  561. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts +0 -198
  562. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +0 -206
  563. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +0 -3
  564. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +0 -329
  565. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +0 -2114
  566. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +0 -241
  567. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +0 -1677
  568. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +0 -33
  569. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.scss +0 -0
  570. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts +0 -96
  571. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +0 -47
  572. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.scss +0 -0
  573. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts +0 -101
  574. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +0 -394
  575. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +0 -10
  576. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +0 -599
  577. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +0 -130
  578. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.scss +0 -0
  579. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts +0 -172
  580. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +0 -376
  581. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +0 -5
  582. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +0 -749
  583. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +0 -145
  584. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.scss +0 -0
  585. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts +0 -302
  586. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +0 -19
  587. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.scss +0 -0
  588. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts +0 -89
  589. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +0 -713
  590. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.scss +0 -0
  591. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts +0 -688
  592. package/src/app/webcommon/pipes/dashboard.pipe.ts +0 -79
  593. package/src/app/webcommon/pipes/fuente.pipe.ts +0 -207
  594. package/src/app/webcommon/pipes/general.pipe.ts +0 -1043
  595. package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +0 -101
  596. package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +0 -306
  597. package/src/app/webcommon/pipes/sara-general.pipe.ts +0 -289
  598. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +0 -90
  599. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.scss +0 -0
  600. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts +0 -262
  601. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +0 -50
  602. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.scss +0 -0
  603. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts +0 -135
  604. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +0 -41
  605. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.scss +0 -0
  606. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts +0 -283
  607. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +0 -179
  608. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +0 -3
  609. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +0 -266
  610. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +0 -261
  611. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +0 -13
  612. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +0 -519
  613. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +0 -10
  614. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +0 -5
  615. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +0 -58
  616. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +0 -71
  617. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.scss +0 -0
  618. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts +0 -151
  619. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +0 -11
  620. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.scss +0 -0
  621. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts +0 -82
  622. package/src/app/webcommon/services/carguelinea.service.ts +0 -72
  623. package/src/app/webcommon/services/dashboard.service.ts +0 -258
  624. package/src/app/webcommon/services/ejecucionreporte.service.ts +0 -160
  625. package/src/app/webcommon/services/fechaUtils.service.ts +0 -117
  626. package/src/app/webcommon/services/fuentegeneral.service.ts +0 -74
  627. package/src/app/webcommon/services/homologacion.service.ts +0 -49
  628. package/src/app/webcommon/services/plantillas.service.ts +0 -165
  629. package/src/app/webcommon/services/reportes.service.ts +0 -133
  630. package/src/app/webcommon/webcommon.module.ts +0 -11
  631. package/src/environments/environment.prod.ts +0 -3
  632. package/src/environments/environment.ts +0 -25
  633. package/src/favicon.ico +0 -0
  634. package/src/index.html +0 -14
  635. package/src/main.ts +0 -12
  636. package/src/polyfills.ts +0 -53
  637. package/src/test.ts +0 -14
  638. package/tsconfig.app.json +0 -15
  639. package/tsconfig.json +0 -35
  640. package/tsconfig.spec.json +0 -18
@@ -0,0 +1,324 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-cookie-service";
5
+ export class UtilsService {
6
+ cookieService;
7
+ document;
8
+ RESERVADAS_SQL_NOPUEDECONTENER = [';'];
9
+ reservadas = ['ALTER', 'DELETE', 'DROP', 'MODIFY', 'CREATE', 'DATABASE', 'TABLE', 'UPDATE', 'TRIGGER', 'GRANT', 'REVOKE', 'CALL', 'INSERT', 'TRUNCATE', 'USE', '--'];
10
+ constructor(cookieService, document) {
11
+ this.cookieService = cookieService;
12
+ this.document = document;
13
+ }
14
+ generarLlave() {
15
+ let result = '';
16
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
17
+ const charactersLength = 32;
18
+ for (let i = 0; i < charactersLength; i++) {
19
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
20
+ }
21
+ return result.toLowerCase();
22
+ }
23
+ generarPin(cantidad) {
24
+ let result = '';
25
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
26
+ for (let i = 0; i < cantidad; i++) {
27
+ result += characters.charAt(Math.floor(Math.random() * cantidad));
28
+ }
29
+ return result.toLowerCase();
30
+ }
31
+ rightpad(str, length, char) {
32
+ if (str === undefined) {
33
+ return null;
34
+ }
35
+ if (typeof str !== 'string' || typeof length !== 'number') {
36
+ throw new TypeError('Los argumentos deben ser una cadena y un número.');
37
+ }
38
+ if (str.length >= length) {
39
+ return str;
40
+ }
41
+ char = char || ' '; // Utiliza un espacio como carácter de relleno si no se proporciona uno
42
+ var padLength = length - str.length;
43
+ var padding = char.repeat(padLength);
44
+ return str + padding;
45
+ }
46
+ validarCampoNumerico(event) {
47
+ const input = event.target;
48
+ const regex = /[^0-9]/gi;
49
+ input.value = input.value.replace(regex, '');
50
+ }
51
+ isNotBlank(str) {
52
+ return str != null && str.trim().length > 0;
53
+ }
54
+ isBlank(str) {
55
+ return str == null || str?.trim() === '';
56
+ }
57
+ validarCampoObligatorio(valor) {
58
+ // Verificar si el valor no es null ni undefined
59
+ if (valor !== null && valor !== undefined) {
60
+ // Verificar si el valor no es una cadena vacía (en caso de ser una cadena)
61
+ if (typeof valor === 'string' && valor.trim() === '') {
62
+ return false;
63
+ }
64
+ // Verificar si el valor no es un arreglo vacío (en caso de ser un arreglo)
65
+ if (Array.isArray(valor) && valor.length === 0) {
66
+ return false;
67
+ }
68
+ /*if (typeof valor === 'object' && Object.keys(valor).length === 0) {
69
+ return false;
70
+ }*/
71
+ return true;
72
+ }
73
+ return false;
74
+ }
75
+ capitalizeFully(inputString) {
76
+ if (!inputString) {
77
+ return '';
78
+ }
79
+ const words = inputString.split(' ');
80
+ const capitalizedWords = words.map(word => {
81
+ if (word.length > 0) {
82
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
83
+ }
84
+ return '';
85
+ });
86
+ const result = capitalizedWords.join(' ');
87
+ return result;
88
+ }
89
+ ordenarSelectItemsAlfabeticamente(arrayDeObjetos) {
90
+ arrayDeObjetos.sort((a, b) => {
91
+ const nombreA = a.label.toLowerCase();
92
+ const nombreB = b.label.toLowerCase();
93
+ if (nombreA < nombreB) {
94
+ return -1;
95
+ }
96
+ if (nombreA > nombreB) {
97
+ return 1;
98
+ }
99
+ return 0;
100
+ });
101
+ return arrayDeObjetos;
102
+ }
103
+ obtenerParametroDeURL(urlString, parametro) {
104
+ const url = new URL(urlString);
105
+ const searchParams = new URLSearchParams(url.search);
106
+ return searchParams.get(parametro);
107
+ }
108
+ validarEmail(email) {
109
+ const patronEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
110
+ return patronEmail.test(email);
111
+ }
112
+ obtenerBase() {
113
+ var basePortal = null;
114
+ var paginaActual = window.location.href;
115
+ var url = new URL(paginaActual);
116
+ var params = new URLSearchParams(url.search);
117
+ if (paginaActual.toString().includes('PortalSara')) {
118
+ for (var match of paginaActual.matchAll(/(?<inicio>.*)\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
119
+ basePortal = match.groups?.seguridad;
120
+ }
121
+ }
122
+ else if (params?.get('us_id')) {
123
+ paginaActual = window.parent.location.href;
124
+ for (var match of paginaActual.matchAll(/(?<inicio>.*)\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
125
+ basePortal = match.groups?.seguridad;
126
+ }
127
+ }
128
+ else {
129
+ const regex = /^.*?\/\/.*?\/(.*?)\//g; // Expresión regular para obtener la primera parte de la URL
130
+ const match = Array.from(paginaActual.matchAll(regex));
131
+ if (match && match[0] && match[0][1]) {
132
+ basePortal = match[0][1];
133
+ }
134
+ }
135
+ return basePortal;
136
+ }
137
+ validarEspacio(caracter) {
138
+ const regex = /\s/; // La expresión regular para espacios en blanco
139
+ return regex.test(caracter); // Devuelve true si el carácter es un espacio en blanco
140
+ }
141
+ validarTextoSQL(valor, obligatorio, select, longitud, validarSentencia) {
142
+ // Verifica obligatoriedad
143
+ if (obligatorio && (valor == null || valor.trim().length == 0 || valor == '--')) {
144
+ return 'Obligatorio';
145
+ }
146
+ // Verifica longitud máxima
147
+ if (longitud > 0) {
148
+ if (valor != null && valor != '--' && valor.length > longitud) {
149
+ return 'Longitud maxima de ' + longitud;
150
+ }
151
+ }
152
+ // Realiza las demás validacion solo en el caso de que la cadena SQL/valor no sea vacia
153
+ if (valor == null || valor.trim().length == 0 || valor == '--')
154
+ return null;
155
+ if (validarSentencia) {
156
+ if (select) {
157
+ if (!valor.toUpperCase().startsWith('SELECT')) {
158
+ return 'El texto debe iniciar con la palabra Select';
159
+ }
160
+ }
161
+ else {
162
+ if (valor.toUpperCase().includes('SELECT')) {
163
+ return 'No puede contener la palabra Select';
164
+ }
165
+ }
166
+ }
167
+ var indice;
168
+ var mensaje;
169
+ this.RESERVADAS_SQL_NOPUEDECONTENER.forEach(item => {
170
+ if (valor.includes(item)) {
171
+ mensaje = 'No puede contener ' + item;
172
+ }
173
+ });
174
+ this.reservadas.forEach(item => {
175
+ if (valor.toUpperCase().includes(item.toUpperCase())) {
176
+ indice = (valor.toUpperCase().indexOf(item.toUpperCase()));
177
+ if (indice == 0 || (this.validarEspacio(valor.charAt(indice - 1)) && this.validarEspacio(valor.charAt(item.length + indice)))) {
178
+ mensaje = 'No puede contener ' + item;
179
+ }
180
+ }
181
+ });
182
+ return mensaje;
183
+ }
184
+ sleep(ms) {
185
+ return new Promise((resolve) => setTimeout(resolve, ms));
186
+ }
187
+ validarTextoArchivoJasper(texto) {
188
+ if (texto.trim() == '' || texto == null) {
189
+ return "El campo no puede estar vacio";
190
+ }
191
+ if (texto.match("^[^\\D].*")) {
192
+ return "El campo no puede iniciar con numeros";
193
+ }
194
+ if (texto.match("^[^\\S].*")) {
195
+ return "El campo no puede iniciar con caracteres en blanco";
196
+ }
197
+ if (!texto.match("^[^\\W].*")) {
198
+ return "El campo no puede iniciar con caracteres especiales";
199
+ }
200
+ return null;
201
+ }
202
+ resizeWindowIFrame() {
203
+ if (window.frameElement != null) {
204
+ this.resizeIframeKeepPosition(window.frameElement);
205
+ }
206
+ }
207
+ /**
208
+ * Funcion para mantener la posición actual en el iframe.
209
+ * @param obj es un "FrameElement"
210
+ */
211
+ resizeIframeKeepPosition(obj) {
212
+ var ifrm = obj;
213
+ var doc = ifrm.contentDocument ? ifrm.contentDocument : ifrm.contentWindow.document;
214
+ var tamanio = this.getDocHeight(doc) + 40;
215
+ ifrm.style.height = tamanio + "px";
216
+ }
217
+ getDocHeight(doc) {
218
+ let navegador = this.obtenerNavegador().toLowerCase();
219
+ var height = 0;
220
+ doc = doc || document;
221
+ var body = doc.body, html = doc.documentElement;
222
+ height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
223
+ if (navegador.indexOf('firefox') !== -1) {
224
+ if (doc.formDetalleConvocatoria) {
225
+ let cantidadMiles = height / 1000;
226
+ height = height + 600 + (cantidadMiles * 40);
227
+ }
228
+ }
229
+ // console.warn('FCO : llama a getDocHeight');
230
+ return height;
231
+ }
232
+ obtenerNavegador() {
233
+ var ua = navigator.userAgent, tem, M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
234
+ if (/trident/i.test(M[1])) {
235
+ tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
236
+ return 'IE ' + (tem[1] || '');
237
+ }
238
+ if (M[1] === 'Chrome') {
239
+ tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
240
+ if (tem != null)
241
+ return tem.slice(1).join(' ').replace('OPR', 'Opera');
242
+ }
243
+ M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
244
+ if ((tem = ua.match(/version\/(\d+)/i)) != null)
245
+ M.splice(1, 1, tem[1]);
246
+ return M.join(' ');
247
+ }
248
+ obtenerUrlApi(urlapi) {
249
+ if (urlapi) {
250
+ return urlapi;
251
+ }
252
+ switch (this.getTokenKey('aplicacion')) {
253
+ case '1':
254
+ return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');
255
+ case '13':
256
+ return window['env']['urlapimana'] ? window['env']['urlapimana'] : this.cookieService.get('urlnucleo');
257
+ case '10':
258
+ return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');
259
+ //return window['env']['urlapi'] ? window['env']['urlapi'] : this.cookieService.get('urlnucleo');
260
+ case '77':
261
+ return window['env']['urlapimanaaps'] ? window['env']['urlapimanaaps'] : this.cookieService.get('urlnucleo');
262
+ default:
263
+ return this.cookieService.get('urlnucleo');
264
+ }
265
+ }
266
+ getTokenKey(key) {
267
+ try {
268
+ const data = this._decodeToken();
269
+ return data[key].toString();
270
+ }
271
+ catch (error) {
272
+ return undefined;
273
+ }
274
+ }
275
+ _decodeToken() {
276
+ try {
277
+ const token = this.getItem('token', '');
278
+ const data = token.split('.')[1];
279
+ return JSON.parse(atob(data));
280
+ }
281
+ catch (error) {
282
+ throw error;
283
+ }
284
+ }
285
+ getItem(key, defaultValue) {
286
+ return localStorage.getItem(this.obtenerBase() + '_' + key) ?? defaultValue;
287
+ }
288
+ cambiarTema(tema) {
289
+ localStorage.setItem(this.obtenerBase() + '_' + 'tema', tema);
290
+ let linkTema = this.document.getElementById('temaApp');
291
+ linkTema.href = `${tema}.css`;
292
+ }
293
+ calcularPosicionDialog() {
294
+ var parentWindow = window.parent;
295
+ var obj = window.frameElement;
296
+ var ifrm = obj;
297
+ if (ifrm) {
298
+ const scrollTop = parentWindow.pageYOffset || parentWindow.document.documentElement.scrollTop || parentWindow.document.body.scrollTop || 0;
299
+ const dialog = document.querySelector('.p-dialog');
300
+ if (dialog) {
301
+ const scrollHeight = parentWindow.document.documentElement.scrollHeight;
302
+ const mitadScrollHeight = scrollHeight / 2;
303
+ const inicio = -mitadScrollHeight;
304
+ dialog.style.top = `${inicio + 50 + (scrollTop)}px`;
305
+ }
306
+ }
307
+ }
308
+ validarPalabra(texto) {
309
+ const pletras = /^[a-zA-Z][0-9a-zA-Z]*$/;
310
+ return pletras.test(texto);
311
+ }
312
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, deps: [{ token: i1.CookieService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
313
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, providedIn: 'root' });
314
+ }
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, decorators: [{
316
+ type: Injectable,
317
+ args: [{
318
+ providedIn: 'root'
319
+ }]
320
+ }], ctorParameters: () => [{ type: i1.CookieService }, { type: Document, decorators: [{
321
+ type: Inject,
322
+ args: [DOCUMENT]
323
+ }] }] });
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUtIO0lBQXdEO0lBSHBFLDhCQUE4QixHQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsVUFBVSxHQUFVLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFFbkwsWUFBb0IsYUFBNEIsRUFBNEIsUUFBa0I7UUFBMUUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUM5RixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxVQUFVLEdBQUcsZ0VBQWdFLENBQUM7UUFDcEYsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxP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Q29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgUkVTRVJWQURBU19TUUxfTk9QVUVERUNPTlRFTkVSOiBhbnlbXSA9IFsnOyddXG4gIHByaXZhdGUgcmVzZXJ2YWRhczogYW55W10gPSBbJ0FMVEVSJywgJ0RFTEVURScsICdEUk9QJywgJ01PRElGWScsICdDUkVBVEUnLCAnREFUQUJBU0UnLCAnVEFCTEUnLCAnVVBEQVRFJywgJ1RSSUdHRVInLCAnR1JBTlQnLCAnUkVWT0tFJywgJ0NBTEwnLCAnSU5TRVJUJywgJ1RSVU5DQVRFJywgJ1VTRScsICctLSddXG4gIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LCl7XG4gIH1cbiAgXG4gIHB1YmxpYyBnZW5lcmFyTGxhdmUoKSB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICAgIGNvbnN0IGNoYXJhY3RlcnNMZW5ndGggPSAzMjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnNMZW5ndGg7IGkrKykge1xuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnNMZW5ndGgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuXG5cbiAgcHVibGljIGdlbmVyYXJQaW4oY2FudGlkYWQ6IG51bWJlcikge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbnRpZGFkOyBpKyspIHtcbiAgICAgIHJlc3VsdCArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjYW50aWRhZCkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHJpZ2h0cGFkKHN0ciwgbGVuZ3RoLCBjaGFyKSB7XG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBsZW5ndGggIT09ICdudW1iZXInKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMb3MgYXJndW1lbnRvcyBkZWJlbiBzZXIgdW5hIGNhZGVuYSB5IHVuIG7Dum1lcm8uJyk7XG4gICAgfVxuXG4gICAgaWYgKHN0ci5sZW5ndGggPj0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cblxuICAgIGNoYXIgPSBjaGFyIHx8ICcgJzsgLy8gVXRpbGl6YSB1biBlc3BhY2lvIGNvbW8gY2Fyw6FjdGVyIGRlIHJlbGxlbm8gc2kgbm8gc2UgcHJvcG9yY2lvbmEgdW5vXG5cbiAgICB2YXIgcGFkTGVuZ3RoID0gbGVuZ3RoIC0gc3RyLmxlbmd0aDtcbiAgICB2YXIgcGFkZGluZyA9IGNoYXIucmVwZWF0KHBhZExlbmd0aCk7XG5cbiAgICByZXR1cm4gc3RyICsgcGFkZGluZztcbiAgfVxuXG4gIHZhbGlkYXJDYW1wb051bWVyaWNvKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldDtcbiAgICBjb25zdCByZWdleCA9IC9bXjAtOV0vZ2k7XG4gICAgaW5wdXQudmFsdWUgPSBpbnB1dC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gIH1cblxuICBpc05vdEJsYW5rKHN0cjogc3RyaW5nIHwgU3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdHIgIT0gbnVsbCAmJiBzdHIudHJpbSgpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBpc0JsYW5rKHN0cjogc3RyaW5nIHwgU3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdHIgPT0gbnVsbCB8fCBzdHI/LnRyaW0oKSA9PT0gJyc7XG4gIH1cblxuICB2YWxpZGFyQ2FtcG9PYmxpZ2F0b3Jpbyh2YWxvcik6IGJvb2xlYW4ge1xuICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyBudWxsIG5pIHVuZGVmaW5lZFxuICAgIGlmICh2YWxvciAhPT0gbnVsbCAmJiB2YWxvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBWZXJpZmljYXIgc2kgZWwgdmFsb3Igbm8gZXMgdW5hIGNhZGVuYSB2YWPDrWEgKGVuIGNhc28gZGUgc2VyIHVuYSBjYWRlbmEpXG4gICAgICBpZiAodHlwZW9mIHZhbG9yID09PSAnc3RyaW5nJyAmJiB2YWxvci50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyB1biBhcnJlZ2xvIHZhY8OtbyAoZW4gY2FzbyBkZSBzZXIgdW4gYXJyZWdsbylcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbG9yKSAmJiB2YWxvci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLyppZiAodHlwZW9mIHZhbG9yID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWxvcikubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0qL1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNhcGl0YWxpemVGdWxseShpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWlucHV0U3RyaW5nKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IHdvcmRzID0gaW5wdXRTdHJpbmcuc3BsaXQoJyAnKTtcbiAgICBjb25zdCBjYXBpdGFsaXplZFdvcmRzID0gd29yZHMubWFwKHdvcmQgPT4ge1xuICAgICAgaWYgKHdvcmQubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBjYXBpdGFsaXplZFdvcmRzLmpvaW4oJyAnKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgb3JkZW5hclNlbGVjdEl0ZW1zQWxmYWJldGljYW1lbnRlKGFycmF5RGVPYmpldG9zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBhcnJheURlT2JqZXRvcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCBub21icmVBID0gYS5sYWJlbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3Qgbm9tYnJlQiA9IGIubGFiZWwudG9Mb3dlckNhc2UoKTtcblxuICAgICAgaWYgKG5vbWJyZUEgPCBub21icmVCKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGlmIChub21icmVBID4gbm9tYnJlQikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH0pO1xuICAgIHJldHVybiBhcnJheURlT2JqZXRvcztcbiAgfVxuXG4gIG9idGVuZXJQYXJhbWV0cm9EZVVSTCh1cmxTdHJpbmc6IHN0cmluZywgcGFyYW1ldHJvOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHVybFN0cmluZyk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmwuc2VhcmNoKTtcbiAgICByZXR1cm4gc2VhcmNoUGFyYW1zLmdldChwYXJhbWV0cm8pO1xuICB9XG5cbiAgdmFsaWRhckVtYWlsKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRyb25FbWFpbCA9IC9eW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLH0kLztcbiAgICByZXR1cm4gcGF0cm9uRW1haWwudGVzdChlbWFpbCk7XG4gIH1cblxuICBvYnRlbmVyQmFzZSgpOiAoc3RyaW5nIHwgbnVsbCkge1xuXG4gICAgdmFyIGJhc2VQb3J0YWw6IHN0cmluZyA9IG51bGw7XG4gICAgdmFyIHBhZ2luYUFjdHVhbDogYW55ID0gd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICB2YXIgdXJsID0gbmV3IFVSTChwYWdpbmFBY3R1YWwpO1xuICAgIHZhciBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybC5zZWFyY2gpO1xuICAgIGlmIChwYWdpbmFBY3R1YWwudG9TdHJpbmcoKS5pbmNsdWRlcygnUG9ydGFsU2FyYScpKSB7XG4gICAgICBmb3IgKHZhciBtYXRjaCBvZiBwYWdpbmFBY3R1YWwubWF0Y2hBbGwoLyg/PGluaWNpbz4uKilcXC8oPzxzZWd1cmlkYWQ+LiopXFwvKD88c2l0aW8+LiopXFwvKD88cGFnaW5hPi4qKS9nKSkge1xuICAgICAgICBiYXNlUG9ydGFsID0gbWF0Y2guZ3JvdXBzPy5zZWd1cmlkYWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwYXJhbXM/LmdldCgndXNfaWQnKSkge1xuICAgICAgcGFnaW5hQWN0dWFsID0gd2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmO1xuICAgICAgZm9yICh2YXIgbWF0Y2ggb2YgcGFnaW5hQWN0dWFsLm1hdGNoQWxsKC8oPzxpbmljaW8+LiopXFwvKD88c2VndXJpZGFkPi4qKVxcLyg/PHNpdGlvPi4qKVxcLyg/PHBhZ2luYT4uKikvZykpIHtcbiAgICAgICAgYmFzZVBvcnRhbCA9IG1hdGNoLmdyb3Vwcz8uc2VndXJpZGFkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eLio/XFwvXFwvLio/XFwvKC4qPylcXC8vZzsgLy8gRXhwcmVzacOzbiByZWd1bGFyIHBhcmEgb2J0ZW5lciBsYSBwcmltZXJhIHBhcnRlIGRlIGxhIFVSTFxuICAgICAgY29uc3QgbWF0Y2ggPSBBcnJheS5mcm9tKHBhZ2luYUFjdHVhbC5tYXRjaEFsbChyZWdleCkpO1xuXG4gICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMF0gJiYgbWF0Y2hbMF1bMV0pIHtcbiAgICAgICAgYmFzZVBvcnRhbCA9IG1hdGNoWzBdWzFdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYmFzZVBvcnRhbDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhckVzcGFjaW8oY2FyYWN0ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gL1xccy87IC8vIExhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGVzcGFjaW9zIGVuIGJsYW5jb1xuICAgIHJldHVybiByZWdleC50ZXN0KGNhcmFjdGVyKTsgLy8gRGV2dWVsdmUgdHJ1ZSBzaSBlbCBjYXLDoWN0ZXIgZXMgdW4gZXNwYWNpbyBlbiBibGFuY29cbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGFyVGV4dG9TUUwodmFsb3I6IHN0cmluZywgb2JsaWdhdG9yaW86IGJvb2xlYW4sIHNlbGVjdDogYm9vbGVhbiwgbG9uZ2l0dWQ6IG51bWJlciwgdmFsaWRhclNlbnRlbmNpYTogYm9vbGVhbik6IChzdHJpbmcgfCBudWxsKSB7XG4gICAgLy8gVmVyaWZpY2Egb2JsaWdhdG9yaWVkYWRcbiAgICBpZiAob2JsaWdhdG9yaW8gJiYgKHZhbG9yID09IG51bGwgfHwgdmFsb3IudHJpbSgpLmxlbmd0aCA9PSAwIHx8IHZhbG9yID09ICctLScpKSB7XG4gICAgICByZXR1cm4gJ09ibGlnYXRvcmlvJztcbiAgICB9XG4gICAgLy8gVmVyaWZpY2EgbG9uZ2l0dWQgbcOheGltYVxuICAgIGlmIChsb25naXR1ZCA+IDApIHtcbiAgICAgIGlmICh2YWxvciAhPSBudWxsICYmIHZhbG9yICE9ICctLScgJiYgdmFsb3IubGVuZ3RoID4gbG9uZ2l0dWQpIHtcbiAgICAgICAgcmV0dXJuICdMb25naXR1ZCBtYXhpbWEgZGUgJyArIGxvbmdpdHVkO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBSZWFsaXphIGxhcyBkZW3DoXMgdmFsaWRhY2lvbiBzb2xvIGVuIGVsIGNhc28gZGUgcXVlIGxhIGNhZGVuYSBTUUwvdmFsb3Igbm8gc2VhIHZhY2lhXG4gICAgaWYgKHZhbG9yID09IG51bGwgfHwgdmFsb3IudHJpbSgpLmxlbmd0aCA9PSAwIHx8IHZhbG9yID09ICctLScpXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGlmICh2YWxpZGFyU2VudGVuY2lhKSB7XG4gICAgICBpZiAoc2VsZWN0KSB7XG4gICAgICAgIGlmICghdmFsb3IudG9VcHBlckNhc2UoKS5zdGFydHNXaXRoKCdTRUxFQ1QnKSkge1xuICAgICAgICAgIHJldHVybiAnRWwgdGV4dG8gZGViZSBpbmljaWFyIGNvbiBsYSBwYWxhYnJhIFNlbGVjdCc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2YWxvci50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdTRUxFQ1QnKSkge1xuICAgICAgICAgIHJldHVybiAnTm8gcHVlZGUgY29udGVuZXIgbGEgcGFsYWJyYSBTZWxlY3QnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBpbmRpY2U6IG51bWJlcjtcbiAgICB2YXIgbWVuc2FqZTogc3RyaW5nO1xuICAgIHRoaXMuUkVTRVJWQURBU19TUUxfTk9QVUVERUNPTlRFTkVSLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAodmFsb3IuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgbWVuc2FqZSA9ICdObyBwdWVkZSBjb250ZW5lciAnICsgaXRlbTtcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMucmVzZXJ2YWRhcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKHZhbG9yLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoaXRlbS50b1VwcGVyQ2FzZSgpKSkge1xuICAgICAgICBpbmRpY2UgPSAodmFsb3IudG9VcHBlckNhc2UoKS5pbmRleE9mKGl0ZW0udG9VcHBlckNhc2UoKSkpO1xuICAgICAgICBpZiAoaW5kaWNlID09IDAgfHwgKHRoaXMudmFsaWRhckVzcGFjaW8odmFsb3IuY2hhckF0KGluZGljZSAtIDEpKSAmJiB0aGlzLnZhbGlkYXJFc3BhY2lvKHZhbG9yLmNoYXJBdChpdGVtLmxlbmd0aCArIGluZGljZSkpKSkge1xuICAgICAgICAgIG1lbnNhamUgPSAnTm8gcHVlZGUgY29udGVuZXIgJyArIGl0ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBtZW5zYWplO1xuICB9XG5cbiAgc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuICB9XG5cbiAgdmFsaWRhclRleHRvQXJjaGl2b0phc3Blcih0ZXh0bzogc3RyaW5nKTogKHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodGV4dG8udHJpbSgpID09ICcnIHx8IHRleHRvID09IG51bGwpIHtcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGVzdGFyIHZhY2lvXCI7XG4gICAgfVxuICAgIGlmICh0ZXh0by5tYXRjaChcIl5bXlxcXFxEXS4qXCIpKSB7XG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBpbmljaWFyIGNvbiBudW1lcm9zXCI7XG4gICAgfVxuICAgIGlmICh0ZXh0by5tYXRjaChcIl5bXlxcXFxTXS4qXCIpKSB7XG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBpbmljaWFyIGNvbiBjYXJhY3RlcmVzIGVuIGJsYW5jb1wiO1xuICAgIH1cbiAgICBpZiAoIXRleHRvLm1hdGNoKFwiXlteXFxcXFddLipcIikpIHtcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGluaWNpYXIgY29uIGNhcmFjdGVyZXMgZXNwZWNpYWxlc1wiO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJlc2l6ZVdpbmRvd0lGcmFtZSgpIHtcblx0XHRpZiAoIHdpbmRvdy5mcmFtZUVsZW1lbnQgIT0gbnVsbCkge1xuXHRcdFx0dGhpcy5yZXNpemVJZnJhbWVLZWVwUG9zaXRpb24od2luZG93LmZyYW1lRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cdFxuXHQvKipcblx0ICogRnVuY2lvbiBwYXJhIG1hbnRlbmVyIGxhIHBvc2ljacOzbiBhY3R1YWwgZW4gZWwgaWZyYW1lLlxuXHQgKiBAcGFyYW0gb2JqIGVzIHVuIFwiRnJhbWVFbGVtZW50XCJcblx0ICovXG5cdHByaXZhdGUgcmVzaXplSWZyYW1lS2VlcFBvc2l0aW9uKG9iaikge1xuXHRcdFxuXHRcdHZhciBpZnJtID0gb2JqO1xuXHRcdHZhciBkb2MgPSBpZnJtLmNvbnRlbnREb2N1bWVudCA/IGlmcm0uY29udGVudERvY3VtZW50OiBpZnJtLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gICAgdmFyIHRhbWFuaW86IG51bWJlcj0gIHRoaXMuZ2V0RG9jSGVpZ2h0KCBkb2MgKSAgKyA0MFxuXHRcdGlmcm0uc3R5bGUuaGVpZ2h0ID0gdGFtYW5pbyArIFwicHhcIjtcblx0fVxuXG5cdHByaXZhdGUgZ2V0RG9jSGVpZ2h0KGRvYyl7XG5cdFxuXHRcdGxldCBuYXZlZ2Fkb3IgPSB0aGlzLm9idGVuZXJOYXZlZ2Fkb3IoKS50b0xvd2VyQ2FzZSgpO1xuXHRcdHZhciBoZWlnaHQgPSAwO1xuXHRcdGRvYyA9IGRvYyB8fCBkb2N1bWVudDtcblx0XHR2YXIgYm9keSA9IGRvYy5ib2R5LCBodG1sID0gZG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRoZWlnaHQgPSBNYXRoLm1heCggYm9keS5zY3JvbGxIZWlnaHQsIGJvZHkub2Zmc2V0SGVpZ2h0LCBcblx0XHRodG1sLmNsaWVudEhlaWdodCwgaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwub2Zmc2V0SGVpZ2h0ICk7XG5cdFx0XG5cdFx0aWYgKG5hdmVnYWRvci5pbmRleE9mKCdmaXJlZm94JykgIT09IC0xKXtcblx0XHRcdGlmKGRvYy5mb3JtRGV0YWxsZUNvbnZvY2F0b3JpYSl7XG5cdFx0XHRcdGxldCBjYW50aWRhZE1pbGVzID0gaGVpZ2h0IC8gMTAwMDtcblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0ICsgNjAwICsgKGNhbnRpZGFkTWlsZXMqNDApXG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHQvL1x0Y29uc29sZS53YXJuKCdGQ08gOiBsbGFtYSBhIGdldERvY0hlaWdodCcpO1xuXHRcblx0XHRyZXR1cm4gaGVpZ2h0O1xuXHR9XG5cblx0b2J0ZW5lck5hdmVnYWRvcigpe1xuXHRcdHZhciB1YT0gbmF2aWdhdG9yLnVzZXJBZ2VudCwgdGVtLCBcblx0XHRNPSB1YS5tYXRjaCgvKG9wZXJhfGNocm9tZXxzYWZhcml8ZmlyZWZveHxtc2llfHRyaWRlbnQoPz1cXC8pKVxcLz9cXHMqKFxcZCspL2kpIHx8IFtdO1xuXHRcdGlmKC90cmlkZW50L2kudGVzdChNWzFdKSl7XG5cdFx0XHR0ZW09ICAvXFxicnZbIDpdKyhcXGQrKS9nLmV4ZWModWEpIHx8IFtdO1xuXHRcdFx0cmV0dXJuICdJRSAnKyh0ZW1bMV0gfHwgJycpO1xuXHRcdH1cblx0XHRpZihNWzFdPT09ICdDaHJvbWUnKXtcblx0XHRcdHRlbT0gdWEubWF0Y2goL1xcYihPUFJ8RWRnZSlcXC8oXFxkKykvKTtcblx0XHRcdGlmKHRlbSE9IG51bGwpIHJldHVybiB0ZW0uc2xpY2UoMSkuam9pbignICcpLnJlcGxhY2UoJ09QUicsICdPcGVyYScpO1xuXHRcdH1cblx0XHRNPSBNWzJdPyBbTVsxXSwgTVsyXV06IFtuYXZpZ2F0b3IuYXBwTmFtZSwgbmF2aWdhdG9yLmFwcFZlcnNpb24sICctPyddO1xuXHRcdGlmKCh0ZW09IHVhLm1hdGNoKC92ZXJzaW9uXFwvKFxcZCspL2kpKSE9IG51bGwpIE0uc3BsaWNlKDEsIDEsIHRlbVsxXSk7XG5cdFx0cmV0dXJuIE0uam9pbignICcpO1xuXHR9XG5cbiAgb2J0ZW5lclVybEFwaSh1cmxhcGk/OiBzdHJpbmcgKTogc3RyaW5nIHtcbiAgICBpZiAodXJsYXBpKXtcbiAgICAgIHJldHVybiB1cmxhcGk7XG4gICAgfVxuICAgIHN3aXRjaCAodGhpcy5nZXRUb2tlbktleSgnYXBsaWNhY2lvbicpKSB7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xuICAgICAgY2FzZSAnMTMnOlxuICAgICAgICByZXR1cm4gd2luZG93WydlbnYnXVsndXJsYXBpbWFuYSddID8gd2luZG93WydlbnYnXVsndXJsYXBpbWFuYSddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgICBjYXNlICcxMCc6XG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICAgICAgLy9yZXR1cm4gd2luZG93WydlbnYnXVsndXJsYXBpJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGknXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xuICAgICAgY2FzZSAnNzcnOlxuICAgICAgICByZXR1cm4gd2luZG93WydlbnYnXVsndXJsYXBpbWFuYWFwcyddID8gd2luZG93WydlbnYnXVsndXJsYXBpbWFuYWFwcyddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gIHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG9rZW5LZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5fZGVjb2RlVG9rZW4oKTtcbiAgICAgIHJldHVybiBkYXRhW2tleV0udG9TdHJpbmcoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZWNvZGVUb2tlbigpOiBhbnkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0SXRlbSgndG9rZW4nLCAnJyk7XG4gICAgICBjb25zdCBkYXRhID0gdG9rZW4uc3BsaXQoJy4nKVsxXTtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGF0b2IoZGF0YSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBnZXRJdGVtKGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm9idGVuZXJCYXNlKCkgKyAnXycgKyAga2V5KSA/PyBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBjYW1iaWFyVGVtYSh0ZW1hIDogKCd0ZW1hQ2xhcm8nIHwgJ3RlbWFPc2N1cm8nKSl7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5vYnRlbmVyQmFzZSgpICsgJ18nICsndGVtYScsIHRlbWEpO1xuICAgIGxldCBsaW5rVGVtYSA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbWFBcHAnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG4gICAgbGlua1RlbWEuaHJlZiA9IGAke3RlbWF9LmNzc2BcbiAgfVxuXG4gIGNhbGN1bGFyUG9zaWNpb25EaWFsb2coKSB7XG4gICAgdmFyIHBhcmVudFdpbmRvdzogV2luZG93ID0gd2luZG93LnBhcmVudDtcbiAgICB2YXIgb2JqOiBhbnkgPSB3aW5kb3cuZnJhbWVFbGVtZW50IDtcbiAgICB2YXIgaWZybSA9IG9iajtcbiAgICBpZiAoaWZybSkge1xuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gcGFyZW50V2luZG93LnBhZ2VZT2Zmc2V0IHx8IHBhcmVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IHBhcmVudFdpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcCB8fCAwO1xuICAgICAgY29uc3QgZGlhbG9nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnAtZGlhbG9nJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAoZGlhbG9nKSB7XG4gICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHBhcmVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAgICAgIGNvbnN0IG1pdGFkU2Nyb2xsSGVpZ2h0ID0gc2Nyb2xsSGVpZ2h0IC8gMjtcbiAgICAgICAgY29uc3QgaW5pY2lvID0gLW1pdGFkU2Nyb2xsSGVpZ2h0O1xuICAgICAgICBkaWFsb2cuc3R5bGUudG9wID0gYCR7aW5pY2lvICsgNTAgKyAoc2Nyb2xsVG9wICkgfXB4YDsgICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhclBhbGFicmEodGV4dG86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBsZXRyYXMgPSAvXlthLXpBLVpdWzAtOWEtekEtWl0qJC87XG4gICAgcmV0dXJuIHBsZXRyYXMudGVzdCh0ZXh0byk7XG4gIH1cbn0iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SharedLibModule {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SharedLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: SharedLibModule });
6
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SharedLibModule });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SharedLibModule, decorators: [{
9
+ type: NgModule,
10
+ args: [{
11
+ declarations: [],
12
+ imports: [],
13
+ exports: []
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkbGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zaGFyZWRsaWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXpDLE1BQU0sT0FBTyxlQUFlO3VHQUFmLGVBQWU7d0dBQWYsZUFBZTt3R0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQVIzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUNiO29CQUNELE9BQU8sRUFBRSxFQUNOO29CQUNILE9BQU8sRUFBRSxFQUNSO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBdLFxuICBleHBvcnRzOiBbXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTGliTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,177 @@
1
+ export class ColorUtil {
2
+ /**
3
+ * Define las variables CSS del tema y las agrega al documento.
4
+ * Se definene 9 colores alternativos más el color principal.
5
+ * Adicional se agregan las componentes HSL del color para hacer
6
+ * variaciones personalizadas y ajustar la opacidad.
7
+ * @param color Color principal del tema
8
+ */
9
+ static addPalleteToRoot(color) {
10
+ const head = (document.head || document.getElementsByTagName('head')[0]);
11
+ const style = document.createElement('style');
12
+ const { hue, saturation, lightness } = this.RGB2HSL(color);
13
+ const contrast = this.contrastColor(color) === 1 ? '--color-50' : '--color-900';
14
+ const intermediateColors = [50, 75, 85];
15
+ let index = 0;
16
+ const css = ':root { ' +
17
+ this._generatePalette(color)
18
+ .map((color, position) => {
19
+ if (index < 100) {
20
+ index = intermediateColors[position] ? intermediateColors[position] : 100;
21
+ }
22
+ else {
23
+ index += 100;
24
+ }
25
+ return `--color-${index}: ${color};`;
26
+ })
27
+ .join('') +
28
+ `--color-h: ${hue};` +
29
+ `--color-s: ${saturation}%;` +
30
+ `--color-l: ${lightness}%;` +
31
+ `--color-contrast: var(${contrast});` +
32
+ '}';
33
+ style.type = 'text/css';
34
+ style.appendChild(document.createTextNode(css));
35
+ head.appendChild(style);
36
+ }
37
+ /**
38
+ * Mezcla dos colores en proporción a un porcentaje para obtener un
39
+ * nuevo color.
40
+ * @param baseColor Color base para mezclar
41
+ * @param color Color que se quiere mezclar
42
+ * @param weight Porcentaje que se quiere mezclar. Entre 0 y 1
43
+ * @returns Color resultante en formato RGB (#AABBCC)
44
+ */
45
+ static mix(baseColor, color, weight) {
46
+ const newColor = [];
47
+ baseColor = this._normalizeColor(baseColor);
48
+ color = this._normalizeColor(color);
49
+ const rgbColorBase = this._getRGBValues(baseColor);
50
+ const rgbColorAdjust = this._getRGBValues(color);
51
+ ['red', 'green', 'blue'].forEach((part) => {
52
+ newColor.push(Math.round(rgbColorAdjust[part] + (rgbColorBase[part] - rgbColorAdjust[part]) * weight)
53
+ .toString(16)
54
+ .padStart(2, '0'));
55
+ });
56
+ return '#' + newColor.join('');
57
+ }
58
+ /**
59
+ * Aclara un color proporcionalmente.
60
+ * @param color Color base para modificar
61
+ * @param percent Porcentaje de blanco que se agrega
62
+ * @returns Nuevo color más claro
63
+ */
64
+ static tint(color, percent) {
65
+ return this.mix('#fff', color, percent);
66
+ }
67
+ /**
68
+ * Oscurece un color proporcionalmente.
69
+ * @param color Color base para modificar
70
+ * @param percent Porcentaje de negro que se agrega
71
+ * @returns Nuevo color más oscuro
72
+ */
73
+ static shade(color, percent) {
74
+ return this.mix('#000', color, percent);
75
+ }
76
+ /**
77
+ * Transforma un color en RGB a su equivalente en formato HSL
78
+ * @param color Color en formato RGB
79
+ * @returns Arreglo de componentes HSL
80
+ */
81
+ static RGB2HSL(color) {
82
+ color = this._normalizeColor(color);
83
+ let { red, green, blue } = this._getRGBValues(color);
84
+ red /= 255;
85
+ green /= 255;
86
+ blue /= 255;
87
+ const max = Math.max(red, green, blue);
88
+ const min = Math.min(red, green, blue);
89
+ let hue = 0;
90
+ let saturation = 0;
91
+ let lightness = (max + min) / 2;
92
+ if (max != min) {
93
+ const delta = max - min;
94
+ saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);
95
+ switch (max) {
96
+ case red:
97
+ hue = (green - blue) / delta + (green < blue ? 6 : 0);
98
+ break;
99
+ case green:
100
+ hue = (blue - red) / delta + 2;
101
+ break;
102
+ case blue:
103
+ hue = (red - green) / delta + 4;
104
+ break;
105
+ }
106
+ hue /= 6;
107
+ }
108
+ hue = Math.round(hue * 360);
109
+ saturation = Math.round(saturation * 100);
110
+ lightness = Math.round(lightness * 100);
111
+ return { hue, saturation, lightness };
112
+ }
113
+ /**
114
+ * Retorna 1 (blanco) o 0 (negro) para contrastar el color enviado.
115
+ * @param color Color del cual se quiere buscar el contraste
116
+ * @returns Blanco o Negro en RGB
117
+ */
118
+ static contrastColor(color) {
119
+ color = this._normalizeColor(color);
120
+ const { red, green, blue } = this._getRGBValues(color);
121
+ return red * 0.299 + green * 0.587 + blue * 0.114 > 186 ? 0 : 1;
122
+ }
123
+ /**
124
+ * Valida que la cadena de texto represente un color RGB válido y
125
+ * retorna las componentes del color en formato de seis caracteres.
126
+ * @param color Color en formato RGB. Ejemplo: (#000)
127
+ * @returns String del color sin el simbolo #
128
+ */
129
+ static _normalizeColor(color) {
130
+ const rgbColor = color.match(/^#([0-9A-F]{3}|[0-9A-F]{6})$/i);
131
+ if (!rgbColor) {
132
+ throw new Error(`${color} is not a RGB color.`);
133
+ }
134
+ const colorParts = rgbColor[1].toLowerCase();
135
+ if (colorParts.length === 3) {
136
+ return colorParts.replace(/(.)/g, '$1$1');
137
+ }
138
+ return colorParts;
139
+ }
140
+ /**
141
+ * Transforma un color Hexadecimal a Decimal en sus respectivas
142
+ * comopnenetes.
143
+ * @param color Color en Hecadecimal para descomponer
144
+ * @returns Un objeto {red, green, blue} en decimal
145
+ */
146
+ static _getRGBValues(color) {
147
+ const red = parseInt(color.slice(0, 2), 16);
148
+ const green = parseInt(color.slice(2, 4), 16);
149
+ const blue = parseInt(color.slice(4, 6), 16);
150
+ return { red, green, blue };
151
+ }
152
+ /**
153
+ * Define una paleta de 10 colores, 5 más claros y 4 más oscuros basados
154
+ * en el color principal. El color principal será el color medio de la paleta
155
+ * @param color Color base para definir los demás colores
156
+ * @returns Arreglo de todos los colores de la paleta
157
+ */
158
+ static _generatePalette(color) {
159
+ const palette = [];
160
+ for (let i = 0; i < 5; i++) {
161
+ if (i === 0) {
162
+ palette.push(this.tint(color, (5 - i) * 0.19));
163
+ palette.push(this.tint(color, (4.8 - i) * 0.19));
164
+ palette.push(this.tint(color, (4.55 - i) * 0.19));
165
+ }
166
+ else {
167
+ palette.push(this.tint(color, (5 - i) * 0.19));
168
+ }
169
+ }
170
+ palette.push(color);
171
+ for (let i = 1; i < 5; i++) {
172
+ palette.push(this.shade(color, i * 0.15));
173
+ }
174
+ return palette;
175
+ }
176
+ }
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS91dGlsaWRhZGVzL2NvbG9yLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVM7SUFDcEI7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQWE7UUFDbkMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBb0IsQ0FBQztRQUM1RixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBcUIsQ0FBQztRQUNsRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUVoRixNQUFNLGtCQUFrQixHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUN2QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLEdBQUcsR0FDUCxVQUFVO1lBQ1YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztpQkFDekIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUN2QixJQUFHLEtBQUssR0FBRyxHQUFHLEVBQUMsQ0FBQztvQkFDZCxLQUFLLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFH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O1FBQ0gsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb2xvclV0aWwge1xuICAvKipcbiAgICogRGVmaW5lIGxhcyB2YXJpYWJsZXMgQ1NTIGRlbCB0ZW1hIHkgbGFzIGFncmVnYSBhbCBkb2N1bWVudG8uXG4gICAqIFNlIGRlZmluZW5lIDkgY29sb3JlcyBhbHRlcm5hdGl2b3MgbcOhcyBlbCBjb2xvciBwcmluY2lwYWwuXG4gICAqIEFkaWNpb25hbCBzZSBhZ3JlZ2FuIGxhcyBjb21wb25lbnRlcyBIU0wgZGVsIGNvbG9yIHBhcmEgaGFjZXJcbiAgICogdmFyaWFjaW9uZXMgcGVyc29uYWxpemFkYXMgeSBhanVzdGFyIGxhIG9wYWNpZGFkLlxuICAgKiBAcGFyYW0gY29sb3IgQ29sb3IgcHJpbmNpcGFsIGRlbCB0ZW1hXG4gICAqL1xuICBzdGF0aWMgYWRkUGFsbGV0ZVRvUm9vdChjb2xvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaGVhZCA9IChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0pIGFzIEhUTUxIZWFkRWxlbWVudDtcbiAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJykgYXMgSFRNTFN0eWxlRWxlbWVudDtcbiAgICBjb25zdCB7IGh1ZSwgc2F0dXJhdGlvbiwgbGlnaHRuZXNzIH0gPSB0aGlzLlJHQjJIU0woY29sb3IpO1xuICAgIGNvbnN0IGNvbnRyYXN0ID0gdGhpcy5jb250cmFzdENvbG9yKGNvbG9yKSA9PT0gMSA/ICctLWNvbG9yLTUwJyA6ICctLWNvbG9yLTkwMCc7XG5cbiAgICBjb25zdCBpbnRlcm1lZGlhdGVDb2xvcnMgPSBbNTAsIDc1LCA4NV1cbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGNvbnN0IGNzcyA9XG4gICAgICAnOnJvb3QgeyAnICtcbiAgICAgIHRoaXMuX2dlbmVyYXRlUGFsZXR0ZShjb2xvcilcbiAgICAgICAgLm1hcCgoY29sb3IsIHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgaWYoaW5kZXggPCAxMDApe1xuICAgICAgICAgICAgaW5kZXggPSBpbnRlcm1lZGlhdGVDb2xvcnNbcG9zaXRpb25dID8gaW50ZXJtZWRpYXRlQ29sb3JzW3Bvc2l0aW9uXSA6IDEwMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5kZXggKz0gMTAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYC0tY29sb3ItJHtpbmRleH06ICR7Y29sb3J9O2A7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcnKSArXG4gICAgICBgLS1jb2xvci1oOiAke2h1ZX07YCArXG4gICAgICBgLS1jb2xvci1zOiAke3NhdHVyYXRpb259JTtgICtcbiAgICAgIGAtLWNvbG9yLWw6ICR7bGlnaHRuZXNzfSU7YCArXG4gICAgICBgLS1jb2xvci1jb250cmFzdDogdmFyKCR7Y29udHJhc3R9KTtgICtcbiAgICAgICd9JztcbiAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXpjbGEgZG9zIGNvbG9yZXMgZW4gcHJvcG9yY2nDs24gYSB1biBwb3JjZW50YWplIHBhcmEgb2J0ZW5lciB1blxuICAgKiBudWV2byBjb2xvci5cbiAgICogQHBhcmFtIGJhc2VDb2xvciBDb2xvciBiYXNlIHBhcmEgbWV6Y2xhclxuICAgKiBAcGFyYW0gY29sb3IgQ29sb3IgcXVlIHNlIHF1aWVyZSBtZXpjbGFyXG4gICAqIEBwYXJhbSB3ZWlnaHQgUG9yY2VudGFqZSBxdWUgc2UgcXVpZXJlIG1lemNsYXIuIEVudHJlIDAgeSAxXG4gICAqIEByZXR1cm5zIENvbG9yIHJlc3VsdGFudGUgZW4gZm9ybWF0byBSR0IgKCNBQUJCQ0MpXG4gICAqL1xuICBzdGF0aWMgbWl4KGJhc2VDb2xvcjogc3RyaW5nLCBjb2xvcjogc3RyaW5nLCB3ZWlnaHQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgbmV3Q29sb3IgPSBbXTtcbiAgICBiYXNlQ29sb3IgPSB0aGlzLl9ub3JtYWxpemVDb2xvcihiYXNlQ29sb3IpO1xuICAgIGNvbG9yID0gdGhpcy5fbm9ybWFsaXplQ29sb3IoY29sb3IpO1xuXG4gICAgY29uc3QgcmdiQ29sb3JCYXNlID0gdGhpcy5fZ2V0UkdCVmFsdWVzKGJhc2VDb2xvcik7XG4gICAgY29uc3QgcmdiQ29sb3JBZGp1c3QgPSB0aGlzLl9nZXRSR0JWYWx1ZXMoY29sb3IpO1xuXG4gICAgWydyZWQnLCAnZ3JlZW4nLCAnYmx1ZSddLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICAgIG5ld0NvbG9yLnB1c2goXG4gICAgICAgIE1hdGgucm91bmQocmdiQ29sb3JBZGp1c3RbcGFydF0gKyAocmdiQ29sb3JCYXNlW3BhcnRdIC0gcmdiQ29sb3JBZGp1c3RbcGFydF0pICogd2VpZ2h0KVxuICAgICAgICAgIC50b1N0cmluZygxNilcbiAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAnIycgKyBuZXdDb2xvci5qb2luKCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2xhcmEgdW4gY29sb3IgcHJvcG9yY2lvbmFsbWVudGUuXG4gICAqIEBwYXJhbSBjb2xvciBDb2xvciBiYXNlIHBhcmEgbW9kaWZpY2FyXG4gICAqIEBwYXJhbSBwZXJjZW50IFBvcmNlbnRhamUgZGUgYmxhbmNvIHF1ZSBzZSBhZ3JlZ2FcbiAgICogQHJldHVybnMgTnVldm8gY29sb3IgbcOhcyBjbGFyb1xuICAgKi9cbiAgc3RhdGljIHRpbnQoY29sb3I6IHN0cmluZywgcGVyY2VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5taXgoJyNmZmYnLCBjb2xvciwgcGVyY2VudCk7XG4gIH1cblxuICAvKipcbiAgICogT3NjdXJlY2UgdW4gY29sb3IgcHJvcG9yY2lvbmFsbWVudGUuXG4gICAqIEBwYXJhbSBjb2xvciBDb2xvciBiYXNlIHBhcmEgbW9kaWZpY2FyXG4gICAqIEBwYXJhbSBwZXJjZW50ICBQb3JjZW50YWplIGRlIG5lZ3JvIHF1ZSBzZSBhZ3JlZ2FcbiAgICogQHJldHVybnMgTnVldm8gY29sb3IgbcOhcyBvc2N1cm9cbiAgICovXG4gIHN0YXRpYyBzaGFkZShjb2xvcjogc3RyaW5nLCBwZXJjZW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1peCgnIzAwMCcsIGNvbG9yLCBwZXJjZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1hIHVuIGNvbG9yIGVuIFJHQiBhIHN1IGVxdWl2YWxlbnRlIGVuIGZvcm1hdG8gSFNMXG4gICAqIEBwYXJhbSBjb2xvciBDb2xvciBlbiBmb3JtYXRvIFJHQlxuICAgKiBAcmV0dXJucyBBcnJlZ2xvIGRlIGNvbXBvbmVudGVzIEhTTFxuICAgKi9cbiAgc3RhdGljIFJHQjJIU0woY29sb3I6IHN0cmluZyk6IHsgaHVlOiBudW1iZXI7IHNhdHVyYXRpb246IG51bWJlcjsgbGlnaHRuZXNzOiBudW1iZXIgfSB7XG4gICAgY29sb3IgPSB0aGlzLl9ub3JtYWxpemVDb2xvcihjb2xvcik7XG5cbiAgICBsZXQgeyByZWQsIGdyZWVuLCBibHVlIH0gPSB0aGlzLl9nZXRSR0JWYWx1ZXMoY29sb3IpO1xuICAgIHJlZCAvPSAyNTU7XG4gICAgZ3JlZW4gLz0gMjU1O1xuICAgIGJsdWUgLz0gMjU1O1xuXG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgocmVkLCBncmVlbiwgYmx1ZSk7XG4gICAgY29uc3QgbWluID0gTWF0aC5taW4ocmVkLCBncmVlbiwgYmx1ZSk7XG5cbiAgICBsZXQgaHVlID0gMDtcbiAgICBsZXQgc2F0dXJhdGlvbiA9IDA7XG4gICAgbGV0IGxpZ2h0bmVzcyA9IChtYXggKyBtaW4pIC8gMjtcblxuICAgIGlmIChtYXggIT0gbWluKSB7XG4gICAgICBjb25zdCBkZWx0YSA9IG1heCAtIG1pbjtcbiAgICAgIHNhdHVyYXRpb24gPSBsaWdodG5lc3MgPiAwLjUgPyBkZWx0YSAvICgyIC0gbWF4IC0gbWluKSA6IGRlbHRhIC8gKG1heCArIG1pbik7XG4gICAgICBzd2l0Y2ggKG1heCkge1xuICAgICAgICBjYXNlIHJlZDpcbiAgICAgICAgICBodWUgPSAoZ3JlZW4gLSBibHVlKSAvIGRlbHRhICsgKGdyZWVuIDwgYmx1ZSA/IDYgOiAwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBncmVlbjpcbiAgICAgICAgICBodWUgPSAoYmx1ZSAtIHJlZCkgLyBkZWx0YSArIDI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgYmx1ZTpcbiAgICAgICAgICBodWUgPSAocmVkIC0gZ3JlZW4pIC8gZGVsdGEgKyA0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaHVlIC89IDY7XG4gICAgfVxuXG4gICAgaHVlID0gTWF0aC5yb3VuZChodWUgKiAzNjApO1xuICAgIHNhdHVyYXRpb24gPSBNYXRoLnJvdW5kKHNhdHVyYXRpb24gKiAxMDApO1xuICAgIGxpZ2h0bmVzcyA9IE1hdGgucm91bmQobGlnaHRuZXNzICogMTAwKTtcblxuICAgIHJldHVybiB7IGh1ZSwgc2F0dXJhdGlvbiwgbGlnaHRuZXNzIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSAxIChibGFuY28pIG8gMCAobmVncm8pIHBhcmEgY29udHJhc3RhciBlbCBjb2xvciBlbnZpYWRvLlxuICAgKiBAcGFyYW0gY29sb3IgQ29sb3IgZGVsIGN1YWwgc2UgcXVpZXJlIGJ1c2NhciBlbCBjb250cmFzdGVcbiAgICogQHJldHVybnMgQmxhbmNvIG8gTmVncm8gZW4gUkdCXG4gICAqL1xuICBzdGF0aWMgY29udHJhc3RDb2xvcihjb2xvcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb2xvciA9IHRoaXMuX25vcm1hbGl6ZUNvbG9yKGNvbG9yKTtcbiAgICBjb25zdCB7IHJlZCwgZ3JlZW4sIGJsdWUgfSA9IHRoaXMuX2dldFJHQlZhbHVlcyhjb2xvcik7XG4gICAgcmV0dXJuIHJlZCAqIDAuMjk5ICsgZ3JlZW4gKiAwLjU4NyArIGJsdWUgKiAwLjExNCA+IDE4NiA/IDAgOiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYSBxdWUgbGEgY2FkZW5hIGRlIHRleHRvIHJlcHJlc2VudGUgdW4gY29sb3IgUkdCIHbDoWxpZG8geVxuICAgKiByZXRvcm5hIGxhcyBjb21wb25lbnRlcyBkZWwgY29sb3IgZW4gZm9ybWF0byBkZSBzZWlzIGNhcmFjdGVyZXMuXG4gICAqIEBwYXJhbSBjb2xvciBDb2xvciBlbiBmb3JtYXRvIFJHQi4gRWplbXBsbzogKCMwMDApXG4gICAqIEByZXR1cm5zIFN0cmluZyBkZWwgY29sb3Igc2luIGVsIHNpbWJvbG8gI1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX25vcm1hbGl6ZUNvbG9yKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJnYkNvbG9yID0gY29sb3IubWF0Y2goL14jKFswLTlBLUZdezN9fFswLTlBLUZdezZ9KSQvaSk7XG4gICAgaWYgKCFyZ2JDb2xvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2NvbG9yfSBpcyBub3QgYSBSR0IgY29sb3IuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29sb3JQYXJ0cyA9IHJnYkNvbG9yWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGNvbG9yUGFydHMubGVuZ3RoID09PSAzKSB7XG4gICAgICByZXR1cm4gY29sb3JQYXJ0cy5yZXBsYWNlKC8oLikvZywgJyQxJDEnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sb3JQYXJ0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1hIHVuIGNvbG9yIEhleGFkZWNpbWFsIGEgRGVjaW1hbCBlbiBzdXMgcmVzcGVjdGl2YXNcbiAgICogY29tb3BuZW5ldGVzLlxuICAgKiBAcGFyYW0gY29sb3IgQ29sb3IgZW4gSGVjYWRlY2ltYWwgcGFyYSBkZXNjb21wb25lclxuICAgKiBAcmV0dXJucyBVbiBvYmpldG8ge3JlZCwgZ3JlZW4sIGJsdWV9IGVuIGRlY2ltYWxcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9nZXRSR0JWYWx1ZXMoY29sb3I6IHN0cmluZyk6IHsgcmVkOiBudW1iZXI7IGdyZWVuOiBudW1iZXI7IGJsdWU6IG51bWJlciB9IHtcbiAgICBjb25zdCByZWQgPSBwYXJzZUludChjb2xvci5zbGljZSgwLCAyKSwgMTYpO1xuICAgIGNvbnN0IGdyZWVuID0gcGFyc2VJbnQoY29sb3Iuc2xpY2UoMiwgNCksIDE2KTtcbiAgICBjb25zdCBibHVlID0gcGFyc2VJbnQoY29sb3Iuc2xpY2UoNCwgNiksIDE2KTtcbiAgICByZXR1cm4geyByZWQsIGdyZWVuLCBibHVlIH07XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHVuYSBwYWxldGEgZGUgMTAgY29sb3JlcywgNSBtw6FzIGNsYXJvcyB5IDQgbcOhcyBvc2N1cm9zIGJhc2Fkb3NcbiAgICogZW4gZWwgY29sb3IgcHJpbmNpcGFsLiBFbCBjb2xvciBwcmluY2lwYWwgc2Vyw6EgZWwgY29sb3IgbWVkaW8gZGUgbGEgcGFsZXRhXG4gICAqIEBwYXJhbSBjb2xvciBDb2xvciBiYXNlIHBhcmEgZGVmaW5pciBsb3MgZGVtw6FzIGNvbG9yZXNcbiAgICogQHJldHVybnMgQXJyZWdsbyBkZSB0b2RvcyBsb3MgY29sb3JlcyBkZSBsYSBwYWxldGFcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9nZW5lcmF0ZVBhbGV0dGUoY29sb3I6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBwYWxldHRlID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspIHtcbiAgICAgIGlmKGkgPT09IDApIHtcbiAgICAgICAgcGFsZXR0ZS5wdXNoKHRoaXMudGludChjb2xvciwgKDUgLSBpKSAqIDAuMTkpKTtcbiAgICAgICAgcGFsZXR0ZS5wdXNoKHRoaXMudGludChjb2xvciwgKDQuOCAtIGkpICogMC4xOSkpO1xuICAgICAgICBwYWxldHRlLnB1c2godGhpcy50aW50KGNvbG9yLCAoNC41NSAtIGkpICogMC4xOSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFsZXR0ZS5wdXNoKHRoaXMudGludChjb2xvciwgKDUgLSBpKSAqIDAuMTkpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFsZXR0ZS5wdXNoKGNvbG9yKTtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IDU7IGkrKykge1xuICAgICAgcGFsZXR0ZS5wdXNoKHRoaXMuc2hhZGUoY29sb3IsIGkgKiAwLjE1KSk7XG4gICAgfVxuICAgIHJldHVybiBwYWxldHRlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWNoYW5nZWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBpL21lbnVjaGFuZ2VldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZW51Q2hhbmdlRXZlbnQge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHJvdXRlRXZlbnQ/OiBib29sZWFuO1xufSJdfQ==