visorus-erp-core 11.0.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/{esm2015/lib/app.module.js → esm2020/lib/app.module.mjs} +4 -4
  2. package/esm2020/lib/components/acreedor/select/select-acreedor.component.mjs +205 -0
  3. package/{esm2015/lib/components/acreedor/services/acreedor.service.js → esm2020/lib/components/acreedor/services/acreedor.service.mjs} +2 -2
  4. package/{esm2015/lib/components/acreedor/services/acreedorCuentaContable.js → esm2020/lib/components/acreedor/services/acreedorCuentaContable.mjs} +2 -2
  5. package/{esm2015/lib/components/agente/services/agente.service.js → esm2020/lib/components/agente/services/agente.service.mjs} +2 -2
  6. package/{esm2015/lib/components/almacen/services/almacen.service.js → esm2020/lib/components/almacen/services/almacen.service.mjs} +2 -2
  7. package/{esm2015/lib/components/banco/services/banco.service.js → esm2020/lib/components/banco/services/banco.service.mjs} +2 -2
  8. package/esm2020/lib/components/caja/session-create/session-create.component.mjs +177 -0
  9. package/{esm2015/lib/components/caja/sessionCaja.service.js → esm2020/lib/components/caja/sessionCaja.service.mjs} +2 -2
  10. package/{esm2015/lib/components/catalogoTipo/services/catalogoTipo.service.js → esm2020/lib/components/catalogoTipo/services/catalogoTipo.service.mjs} +2 -2
  11. package/{esm2015/lib/components/clasificadorTipo/services/clasificadorTipo.service.js → esm2020/lib/components/clasificadorTipo/services/clasificadorTipo.service.mjs} +2 -2
  12. package/{esm2015/lib/components/claveAumentoDisminucion/services/clave-aumento-disminucion.service.js → esm2020/lib/components/claveAumentoDisminucion/services/clave-aumento-disminucion.service.mjs} +2 -2
  13. package/{esm2015/lib/components/claveMovimiento/services/claveMovimiento.service.js → esm2020/lib/components/claveMovimiento/services/claveMovimiento.service.mjs} +2 -2
  14. package/esm2020/lib/components/cliente/select/select-cliente.component.mjs +215 -0
  15. package/{esm2015/lib/components/cliente/services/cliente.service.js → esm2020/lib/components/cliente/services/cliente.service.mjs} +2 -2
  16. package/{esm2015/lib/components/cliente/services/clienteCuentaBanco.service.js → esm2020/lib/components/cliente/services/clienteCuentaBanco.service.mjs} +2 -2
  17. package/{esm2015/lib/components/cliente/services/clienteFlete.service.js → esm2020/lib/components/cliente/services/clienteFlete.service.mjs} +2 -2
  18. package/{esm2015/lib/components/contacto/services/datoContacto.service.js → esm2020/lib/components/contacto/services/datoContacto.service.mjs} +2 -2
  19. package/{esm2015/lib/components/dato-direccion/services/datoDireccion.service.js → esm2020/lib/components/dato-direccion/services/datoDireccion.service.mjs} +2 -2
  20. package/{esm2015/lib/components/departamento/services/departamento.service.js → esm2020/lib/components/departamento/services/departamento.service.mjs} +2 -2
  21. package/{esm2015/lib/components/empresa/services/empresa.service.js → esm2020/lib/components/empresa/services/empresa.service.mjs} +2 -2
  22. package/esm2020/lib/components/error404/error404.component.mjs +21 -0
  23. package/{esm2015/lib/components/flete/services/flete.service.js → esm2020/lib/components/flete/services/flete.service.mjs} +2 -2
  24. package/{esm2015/lib/components/formaPago/services/FormaPago.service.js → esm2020/lib/components/formaPago/services/FormaPago.service.mjs} +2 -2
  25. package/esm2020/lib/components/loading/loading.component.mjs +48 -0
  26. package/{esm2015/lib/components/loading/loading.service.js → esm2020/lib/components/loading/loading.service.mjs} +2 -2
  27. package/esm2020/lib/components/loading-screen/loading-screen.component.mjs +44 -0
  28. package/{esm2015/lib/components/loading-screen/loading-screen.service.js → esm2020/lib/components/loading-screen/loading-screen.service.mjs} +2 -2
  29. package/esm2020/lib/components/login-modal/login-modal.component.mjs +152 -0
  30. package/{esm2015/lib/components/login-modal/login-modal.service.js → esm2020/lib/components/login-modal/login-modal.service.mjs} +2 -2
  31. package/{esm2015/lib/components/moneda/services/moneda.service.js → esm2020/lib/components/moneda/services/moneda.service.mjs} +2 -2
  32. package/{esm2015/lib/components/pdfModal/pdf-modal.component.js → esm2020/lib/components/pdfModal/pdf-modal.component.mjs} +3 -7
  33. package/{esm2015/lib/components/pdfModal/pdf-modal.service.js → esm2020/lib/components/pdfModal/pdf-modal.service.mjs} +2 -2
  34. package/{esm2015/lib/components/persona-fisica/services/personaFisica.service.js → esm2020/lib/components/persona-fisica/services/personaFisica.service.mjs} +2 -2
  35. package/esm2020/lib/components/proveedor/select/select-proveedor.component.mjs +138 -0
  36. package/{esm2015/lib/components/proveedor/services/proveedor.service.js → esm2020/lib/components/proveedor/services/proveedor.service.mjs} +2 -2
  37. package/{esm2015/lib/components/proveedor/services/proveedorCuentaBanco.service.js → esm2020/lib/components/proveedor/services/proveedorCuentaBanco.service.mjs} +2 -2
  38. package/{esm2015/lib/components/proveedor/services/proveedorFlete.service.js → esm2020/lib/components/proveedor/services/proveedorFlete.service.mjs} +2 -2
  39. package/esm2020/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.mjs +143 -0
  40. package/{esm2015/lib/components/seleccion-articulo-informacion/services/articulo-informacion.service.js → esm2020/lib/components/seleccion-articulo-informacion/services/articulo-informacion.service.mjs} +2 -2
  41. package/esm2020/lib/components/selecciona-articulo/selecciona-articulo.component.mjs +493 -0
  42. package/{esm2015/lib/components/selecciona-articulo/stock.service.js → esm2020/lib/components/selecciona-articulo/stock.service.mjs} +2 -2
  43. package/{esm2015/lib/components/serieDocumento/services/serieDocumento.service.js → esm2020/lib/components/serieDocumento/services/serieDocumento.service.mjs} +2 -2
  44. package/{esm2015/lib/components/tipo-contacto/services/tipoContacto.service.js → esm2020/lib/components/tipo-contacto/services/tipoContacto.service.mjs} +2 -2
  45. package/{esm2015/lib/components/ubicacion/services/ubicacion.service.js → esm2020/lib/components/ubicacion/services/ubicacion.service.mjs} +2 -2
  46. package/esm2020/lib/contabilidad/componentes/cclista/cclista.component.mjs +262 -0
  47. package/{esm2015/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.js → esm2020/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.mjs} +6 -13
  48. package/{esm2015/lib/contabilidad/servicios/cuentacontable.service.js → esm2020/lib/contabilidad/servicios/cuentacontable.service.mjs} +2 -2
  49. package/{esm2015/lib/httpInterceptor/httpInterceptor.js → esm2020/lib/httpInterceptor/httpInterceptor.mjs} +2 -2
  50. package/{esm2015/lib/services/auth.service.js → esm2020/lib/services/auth.service.mjs} +2 -2
  51. package/{esm2015/lib/services/authenticated.service.js → esm2020/lib/services/authenticated.service.mjs} +2 -2
  52. package/{esm2015/lib/services/canActivateGuard.service.ts.js → esm2020/lib/services/canActivateGuard.service.ts.mjs} +2 -2
  53. package/{esm2015/lib/services/catalogo-adicional.service.js → esm2020/lib/services/catalogo-adicional.service.mjs} +2 -2
  54. package/{esm2015/lib/services/controlAcceso.service.js → esm2020/lib/services/controlAcceso.service.mjs} +2 -2
  55. package/{esm2015/lib/services/file.service.js → esm2020/lib/services/file.service.mjs} +2 -2
  56. package/{esm2015/lib/services/init.service.js → esm2020/lib/services/init.service.mjs} +2 -2
  57. package/{esm2015/lib/services/message.service.js → esm2020/lib/services/message.service.mjs} +2 -2
  58. package/{esm2015/lib/services/paginate.service.js → esm2020/lib/services/paginate.service.mjs} +2 -2
  59. package/{esm2015/lib/services/personaMoral.service.js → esm2020/lib/services/personaMoral.service.mjs} +2 -2
  60. package/{esm2015/lib/services/versionCheck.service.js → esm2020/lib/services/versionCheck.service.mjs} +2 -2
  61. package/fesm2015/visorus-erp-core.mjs +4066 -0
  62. package/fesm2015/visorus-erp-core.mjs.map +1 -0
  63. package/fesm2020/visorus-erp-core.mjs +3747 -0
  64. package/fesm2020/visorus-erp-core.mjs.map +1 -0
  65. package/lib/app.module.d.ts +3 -3
  66. package/lib/components/acreedor/select/select-acreedor.component.d.ts +2 -2
  67. package/lib/components/acreedor/services/acreedor.service.d.ts +2 -2
  68. package/lib/components/acreedor/services/acreedorCuentaContable.d.ts +2 -2
  69. package/lib/components/agente/services/agente.service.d.ts +2 -2
  70. package/lib/components/almacen/services/almacen.service.d.ts +2 -2
  71. package/lib/components/banco/services/banco.service.d.ts +2 -2
  72. package/lib/components/caja/session-create/session-create.component.d.ts +2 -2
  73. package/lib/components/caja/sessionCaja.service.d.ts +2 -2
  74. package/lib/components/catalogoTipo/services/catalogoTipo.service.d.ts +2 -2
  75. package/lib/components/clasificadorTipo/services/clasificadorTipo.service.d.ts +2 -2
  76. package/lib/components/claveAumentoDisminucion/services/clave-aumento-disminucion.service.d.ts +2 -2
  77. package/lib/components/claveMovimiento/services/claveMovimiento.service.d.ts +2 -2
  78. package/lib/components/cliente/select/select-cliente.component.d.ts +2 -2
  79. package/lib/components/cliente/services/cliente.service.d.ts +2 -2
  80. package/lib/components/cliente/services/clienteCuentaBanco.service.d.ts +2 -2
  81. package/lib/components/cliente/services/clienteFlete.service.d.ts +2 -2
  82. package/lib/components/contacto/services/datoContacto.service.d.ts +2 -2
  83. package/lib/components/dato-direccion/services/datoDireccion.service.d.ts +2 -2
  84. package/lib/components/departamento/services/departamento.service.d.ts +2 -2
  85. package/lib/components/empresa/services/empresa.service.d.ts +2 -2
  86. package/lib/components/error404/error404.component.d.ts +2 -2
  87. package/lib/components/flete/services/flete.service.d.ts +2 -2
  88. package/lib/components/formaPago/services/FormaPago.service.d.ts +2 -2
  89. package/lib/components/loading/loading.component.d.ts +2 -2
  90. package/lib/components/loading/loading.service.d.ts +2 -2
  91. package/lib/components/loading-screen/loading-screen.component.d.ts +2 -2
  92. package/lib/components/loading-screen/loading-screen.service.d.ts +2 -2
  93. package/lib/components/login-modal/login-modal.component.d.ts +2 -2
  94. package/lib/components/login-modal/login-modal.service.d.ts +2 -2
  95. package/lib/components/moneda/services/moneda.service.d.ts +2 -2
  96. package/lib/components/pdfModal/pdf-modal.component.d.ts +2 -2
  97. package/lib/components/pdfModal/pdf-modal.service.d.ts +2 -2
  98. package/lib/components/persona-fisica/services/personaFisica.service.d.ts +2 -2
  99. package/lib/components/proveedor/select/select-proveedor.component.d.ts +2 -2
  100. package/lib/components/proveedor/services/proveedor.service.d.ts +2 -2
  101. package/lib/components/proveedor/services/proveedorCuentaBanco.service.d.ts +2 -2
  102. package/lib/components/proveedor/services/proveedorFlete.service.d.ts +2 -2
  103. package/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.d.ts +2 -2
  104. package/lib/components/seleccion-articulo-informacion/services/articulo-informacion.service.d.ts +2 -2
  105. package/lib/components/selecciona-articulo/selecciona-articulo.component.d.ts +2 -2
  106. package/lib/components/selecciona-articulo/stock.service.d.ts +2 -2
  107. package/lib/components/serieDocumento/services/serieDocumento.service.d.ts +2 -2
  108. package/lib/components/tipo-contacto/services/tipoContacto.service.d.ts +2 -2
  109. package/lib/components/ubicacion/services/ubicacion.service.d.ts +2 -2
  110. package/lib/contabilidad/componentes/cclista/cclista.component.d.ts +2 -2
  111. package/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.d.ts +2 -2
  112. package/lib/contabilidad/servicios/cuentacontable.service.d.ts +2 -2
  113. package/lib/httpInterceptor/httpInterceptor.d.ts +2 -2
  114. package/lib/services/auth.service.d.ts +2 -2
  115. package/lib/services/authenticated.service.d.ts +2 -2
  116. package/lib/services/canActivateGuard.service.ts.d.ts +2 -2
  117. package/lib/services/catalogo-adicional.service.d.ts +2 -2
  118. package/lib/services/controlAcceso.service.d.ts +2 -2
  119. package/lib/services/file.service.d.ts +2 -2
  120. package/lib/services/init.service.d.ts +2 -2
  121. package/lib/services/message.service.d.ts +2 -2
  122. package/lib/services/paginate.service.d.ts +2 -2
  123. package/lib/services/personaMoral.service.d.ts +2 -2
  124. package/lib/services/versionCheck.service.d.ts +2 -2
  125. package/package.json +26 -13
  126. package/bundles/visorus-erp-core.umd.js +0 -5019
  127. package/bundles/visorus-erp-core.umd.js.map +0 -1
  128. package/bundles/visorus-erp-core.umd.min.js +0 -2
  129. package/bundles/visorus-erp-core.umd.min.js.map +0 -1
  130. package/esm2015/lib/components/acreedor/select/select-acreedor.component.js +0 -217
  131. package/esm2015/lib/components/caja/session-create/session-create.component.js +0 -194
  132. package/esm2015/lib/components/cliente/select/select-cliente.component.js +0 -227
  133. package/esm2015/lib/components/error404/error404.component.js +0 -35
  134. package/esm2015/lib/components/loading/loading.component.js +0 -66
  135. package/esm2015/lib/components/loading-screen/loading-screen.component.js +0 -58
  136. package/esm2015/lib/components/login-modal/login-modal.component.js +0 -180
  137. package/esm2015/lib/components/proveedor/select/select-proveedor.component.js +0 -148
  138. package/esm2015/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.js +0 -154
  139. package/esm2015/lib/components/selecciona-articulo/selecciona-articulo.component.js +0 -522
  140. package/esm2015/lib/contabilidad/componentes/cclista/cclista.component.js +0 -274
  141. package/fesm2015/visorus-erp-core.js +0 -3898
  142. package/fesm2015/visorus-erp-core.js.map +0 -1
  143. /package/{esm2015/lib/components/agente/models/Agente.js → esm2020/lib/components/agente/models/Agente.mjs} +0 -0
  144. /package/{esm2015/lib/components/almacen/models/Almacen.js → esm2020/lib/components/almacen/models/Almacen.mjs} +0 -0
  145. /package/{esm2015/lib/components/banco/models/Banco.js → esm2020/lib/components/banco/models/Banco.mjs} +0 -0
  146. /package/{esm2015/lib/components/catalogoTipo/models/CatalogoTipo.js → esm2020/lib/components/catalogoTipo/models/CatalogoTipo.mjs} +0 -0
  147. /package/{esm2015/lib/components/clasificadorTipo/models/ClasificadorTipo.js → esm2020/lib/components/clasificadorTipo/models/ClasificadorTipo.mjs} +0 -0
  148. /package/{esm2015/lib/components/claveMovimiento/models/ClaveMovimiento.js → esm2020/lib/components/claveMovimiento/models/ClaveMovimiento.mjs} +0 -0
  149. /package/{esm2015/lib/components/cliente/models/Cliente.js → esm2020/lib/components/cliente/models/Cliente.mjs} +0 -0
  150. /package/{esm2015/lib/components/cliente/models/ClienteCuentaBanco.js → esm2020/lib/components/cliente/models/ClienteCuentaBanco.mjs} +0 -0
  151. /package/{esm2015/lib/components/cliente/models/ClienteFlete.js → esm2020/lib/components/cliente/models/ClienteFlete.mjs} +0 -0
  152. /package/{esm2015/lib/components/contacto/models/DatoContacto.js → esm2020/lib/components/contacto/models/DatoContacto.mjs} +0 -0
  153. /package/{esm2015/lib/components/dato-direccion/models/DatoDireccion.js → esm2020/lib/components/dato-direccion/models/DatoDireccion.mjs} +0 -0
  154. /package/{esm2015/lib/components/departamento/models/Departamento.js → esm2020/lib/components/departamento/models/Departamento.mjs} +0 -0
  155. /package/{esm2015/lib/components/empresa/models/ConfiguracionEmpresaAdministrativa.js → esm2020/lib/components/empresa/models/ConfiguracionEmpresaAdministrativa.mjs} +0 -0
  156. /package/{esm2015/lib/components/empresa/models/Empresa.js → esm2020/lib/components/empresa/models/Empresa.mjs} +0 -0
  157. /package/{esm2015/lib/components/flete/models/Flete.js → esm2020/lib/components/flete/models/Flete.mjs} +0 -0
  158. /package/{esm2015/lib/components/formaPago/models/FormaPago.js → esm2020/lib/components/formaPago/models/FormaPago.mjs} +0 -0
  159. /package/{esm2015/lib/components/moneda/models/Moneda.js → esm2020/lib/components/moneda/models/Moneda.mjs} +0 -0
  160. /package/{esm2015/lib/components/persona-fisica/models/EstadoCivil.js → esm2020/lib/components/persona-fisica/models/EstadoCivil.mjs} +0 -0
  161. /package/{esm2015/lib/components/persona-fisica/models/Genero.js → esm2020/lib/components/persona-fisica/models/Genero.mjs} +0 -0
  162. /package/{esm2015/lib/components/persona-fisica/models/Persona.js → esm2020/lib/components/persona-fisica/models/Persona.mjs} +0 -0
  163. /package/{esm2015/lib/components/persona-fisica/models/PersonaFisica.js → esm2020/lib/components/persona-fisica/models/PersonaFisica.mjs} +0 -0
  164. /package/{esm2015/lib/components/proveedor/models/Proveedor.js → esm2020/lib/components/proveedor/models/Proveedor.mjs} +0 -0
  165. /package/{esm2015/lib/components/proveedor/models/ProveedorCuentaBanco.js → esm2020/lib/components/proveedor/models/ProveedorCuentaBanco.mjs} +0 -0
  166. /package/{esm2015/lib/components/proveedor/models/ProveedorFlete.js → esm2020/lib/components/proveedor/models/ProveedorFlete.mjs} +0 -0
  167. /package/{esm2015/lib/components/serieDocumento/models/SerieDocumento.js → esm2020/lib/components/serieDocumento/models/SerieDocumento.mjs} +0 -0
  168. /package/{esm2015/lib/components/tipo-contacto/models/TipoContacto.js → esm2020/lib/components/tipo-contacto/models/TipoContacto.mjs} +0 -0
  169. /package/{esm2015/lib/components/ubicacion/models/Ubicacion.js → esm2020/lib/components/ubicacion/models/Ubicacion.mjs} +0 -0
  170. /package/{esm2015/lib/contabilidad/modelos/cuentaContable.model.js → esm2020/lib/contabilidad/modelos/cuentaContable.model.mjs} +0 -0
  171. /package/{esm2015/lib/contabilidad/modelos/normaInfoFinanciera.model.js → esm2020/lib/contabilidad/modelos/normaInfoFinanciera.model.mjs} +0 -0
  172. /package/{esm2015/lib/globalPrimeNg.js → esm2020/lib/globalPrimeNg.mjs} +0 -0
  173. /package/{esm2015/lib/importComponents.js → esm2020/lib/importComponents.mjs} +0 -0
  174. /package/{esm2015/lib/importComponetsConta.js → esm2020/lib/importComponetsConta.mjs} +0 -0
  175. /package/{esm2015/lib/models/PersonaMoral.js → esm2020/lib/models/PersonaMoral.mjs} +0 -0
  176. /package/{esm2015/lib/models/Usuario.js → esm2020/lib/models/Usuario.mjs} +0 -0
  177. /package/{esm2015/lib/models/auth.js → esm2020/lib/models/auth.mjs} +0 -0
  178. /package/{esm2015/lib/services/crud.service.js → esm2020/lib/services/crud.service.mjs} +0 -0
  179. /package/{esm2015/lib/services/global.service.js → esm2020/lib/services/global.service.mjs} +0 -0
  180. /package/{esm2015/lib/utils/tipo_catalogo.ts.js → esm2020/lib/utils/tipo_catalogo.ts.mjs} +0 -0
  181. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  182. /package/{esm2015/visorus-erp-core.js → esm2020/visorus-erp-core.mjs} +0 -0
@@ -1,274 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { CuentaContableService } from '../../servicios/cuentacontable.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../servicios/cuentacontable.service";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "primeng/inputtext";
7
- import * as i4 from "primeng/treetable";
8
- import * as i5 from "primeng/api";
9
- import * as i6 from "@angular/common";
10
- import * as i7 from "primeng/button";
11
- function CclistaComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "tr");
13
- i0.ɵɵelementStart(1, "th", 5);
14
- i0.ɵɵtext(2, "Cuenta contable");
15
- i0.ɵɵelementEnd();
16
- i0.ɵɵelementStart(3, "th", 5);
17
- i0.ɵɵtext(4, "Descripci\u00F3n");
18
- i0.ɵɵelementEnd();
19
- i0.ɵɵelementStart(5, "th", 6);
20
- i0.ɵɵtext(6, "Naturaleza");
21
- i0.ɵɵelementEnd();
22
- i0.ɵɵelementStart(7, "th", 7);
23
- i0.ɵɵtext(8, "Tipo");
24
- i0.ɵɵelementEnd();
25
- i0.ɵɵelementStart(9, "th", 8);
26
- i0.ɵɵtext(10, "Acciones");
27
- i0.ɵɵelementEnd();
28
- i0.ɵɵelementEnd();
29
- } }
30
- function CclistaComponent_ng_template_4_button_12_Template(rf, ctx) { if (rf & 1) {
31
- const _r8 = i0.ɵɵgetCurrentView();
32
- i0.ɵɵelementStart(0, "button", 16);
33
- i0.ɵɵlistener("click", function CclistaComponent_ng_template_4_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const rowData_r3 = i0.ɵɵnextContext().rowData; const ctx_r6 = i0.ɵɵnextContext(); return ctx_r6.selectCuentaContable(rowData_r3); });
34
- i0.ɵɵelementEnd();
35
- } }
36
- function CclistaComponent_ng_template_4_button_13_Template(rf, ctx) { if (rf & 1) {
37
- const _r11 = i0.ɵɵgetCurrentView();
38
- i0.ɵɵelementStart(0, "button", 16);
39
- i0.ɵɵlistener("click", function CclistaComponent_ng_template_4_button_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const rowData_r3 = i0.ɵɵnextContext().rowData; const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.selectCuentaContable(rowData_r3); });
40
- i0.ɵɵelementEnd();
41
- } }
42
- function CclistaComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
43
- i0.ɵɵelementStart(0, "tr");
44
- i0.ɵɵelementStart(1, "td", 9);
45
- i0.ɵɵelement(2, "p-treeTableToggler", 10);
46
- i0.ɵɵtext(3);
47
- i0.ɵɵelementEnd();
48
- i0.ɵɵelementStart(4, "td", 9);
49
- i0.ɵɵtext(5);
50
- i0.ɵɵelementEnd();
51
- i0.ɵɵelementStart(6, "td", 11);
52
- i0.ɵɵtext(7);
53
- i0.ɵɵelementEnd();
54
- i0.ɵɵelementStart(8, "td", 12);
55
- i0.ɵɵtext(9);
56
- i0.ɵɵelementEnd();
57
- i0.ɵɵelementStart(10, "td", 13);
58
- i0.ɵɵelementStart(11, "div", 14);
59
- i0.ɵɵtemplate(12, CclistaComponent_ng_template_4_button_12_Template, 1, 0, "button", 15);
60
- i0.ɵɵtemplate(13, CclistaComponent_ng_template_4_button_13_Template, 1, 0, "button", 15);
61
- i0.ɵɵelementEnd();
62
- i0.ɵɵelementEnd();
63
- i0.ɵɵelementEnd();
64
- } if (rf & 2) {
65
- const rowNode_r2 = ctx.$implicit;
66
- const rowData_r3 = ctx.rowData;
67
- const ctx_r1 = i0.ɵɵnextContext();
68
- i0.ɵɵadvance(2);
69
- i0.ɵɵproperty("rowNode", rowNode_r2);
70
- i0.ɵɵadvance(1);
71
- i0.ɵɵtextInterpolate1(" ", rowData_r3.cuentaContable, " ");
72
- i0.ɵɵadvance(2);
73
- i0.ɵɵtextInterpolate1(" ", rowData_r3.descripcion, " ");
74
- i0.ɵɵadvance(2);
75
- i0.ɵɵtextInterpolate1(" ", rowData_r3.naturaleza, " ");
76
- i0.ɵɵadvance(2);
77
- i0.ɵɵtextInterpolate1(" ", rowData_r3.tipo, " ");
78
- i0.ɵɵadvance(3);
79
- i0.ɵɵproperty("ngIf", ctx_r1.typeAccount == 1 && rowData_r3.cuentaRegistro);
80
- i0.ɵɵadvance(1);
81
- i0.ɵɵproperty("ngIf", ctx_r1.typeAccount == 2 && !rowData_r3.cuentaRegistro);
82
- } }
83
- const _c0 = function () { return { width: "100%" }; };
84
- export class CclistaComponent {
85
- constructor(_cuentaContableService) {
86
- this._cuentaContableService = _cuentaContableService;
87
- this.cuentasContables = [];
88
- this.maxH = 720;
89
- this.query = "";
90
- this.tempAccounts = [];
91
- this.evSelectedAccount = new EventEmitter();
92
- }
93
- ngOnInit() {
94
- this.maxH = window.innerHeight - 320;
95
- this.obtenerCuentasContablesRecursivo();
96
- }
97
- obtenerCuentasContablesRecursivo() {
98
- this._cuentaContableService.obtieneCuentasContablesRecursivo().subscribe((result) => {
99
- if (result) {
100
- this.cuentasContables = result;
101
- this.sortAccounts();
102
- }
103
- });
104
- }
105
- sortAccounts() {
106
- this.cuentasContables.sort(function (a, b) {
107
- // get symbol for string
108
- let characterBreak = '.';
109
- const listA = a.data.cuentaContable.split(characterBreak);
110
- const listB = b.data.cuentaContable.split(characterBreak);
111
- if (listA.length > 0 && listB.length > 0) {
112
- if (listA.length === listB.length) {
113
- for (let i = 0; i < listA.length; i++) {
114
- if (parseInt(listA[i]) > parseInt(listB[i])) {
115
- return 1;
116
- }
117
- if (parseInt(listA[i]) < parseInt(listB[i])) {
118
- return -1;
119
- }
120
- }
121
- return 0;
122
- }
123
- if (listA.length < listB.length) {
124
- for (let i = 0; i < listA.length; i++) {
125
- if (parseInt(listA[i]) > parseInt(listB[i])) {
126
- return 1;
127
- }
128
- if (parseInt(listA[i]) < parseInt(listB[i])) {
129
- return -1;
130
- }
131
- }
132
- return -1;
133
- }
134
- if (listB.length < listA.length) {
135
- for (let i = 0; i < listB.length; i++) {
136
- if (parseInt(listA[i]) > parseInt(listB[i])) {
137
- return 1;
138
- }
139
- if (parseInt(listA[i]) < parseInt(listB[i])) {
140
- return -1;
141
- }
142
- }
143
- return 1;
144
- }
145
- }
146
- return 0;
147
- });
148
- for (let item of this.cuentasContables) {
149
- if (item.children) {
150
- this.sortItem(item);
151
- }
152
- }
153
- this.tempAccounts = this.cuentasContables;
154
- }
155
- sortItem(account) {
156
- account.children.sort(function (a, b) {
157
- // get symbol for string
158
- let characterBreak = '.';
159
- const listA = a.data.cuentaContable.split(characterBreak);
160
- const listB = b.data.cuentaContable.split(characterBreak);
161
- if (listA.length > 0 && listB.length > 0) {
162
- if (listA.length === listB.length) {
163
- for (let i = 0; i < listA.length; i++) {
164
- if (parseInt(listA[i]) > parseInt(listB[i])) {
165
- return 1;
166
- }
167
- if (parseInt(listA[i]) < parseInt(listB[i])) {
168
- return -1;
169
- }
170
- }
171
- return 0;
172
- }
173
- if (listA.length < listB.length) {
174
- for (let i = 0; i < listA.length; i++) {
175
- if (parseInt(listA[i]) > parseInt(listB[i])) {
176
- return 1;
177
- }
178
- if (parseInt(listA[i]) < parseInt(listB[i])) {
179
- return -1;
180
- }
181
- }
182
- return -1;
183
- }
184
- if (listB.length < listA.length) {
185
- for (let i = 0; i < listB.length; i++) {
186
- if (parseInt(listA[i]) > parseInt(listB[i])) {
187
- return 1;
188
- }
189
- if (parseInt(listA[i]) < parseInt(listB[i])) {
190
- return -1;
191
- }
192
- }
193
- return 1;
194
- }
195
- }
196
- return 0;
197
- });
198
- for (let item of account.children) {
199
- this.sortItem(item);
200
- }
201
- }
202
- selectCuentaContable(account) {
203
- this.evSelectedAccount.emit(account);
204
- }
205
- filterAccounts(evt) {
206
- if (!evt) {
207
- const temp = this.resetAccount();
208
- this.cuentasContables = temp;
209
- return;
210
- }
211
- this.cuentasContables = this.browseAccount(this.tempAccounts);
212
- }
213
- resetAccount() {
214
- this.query = '';
215
- let accounts = [];
216
- for (let cc of this.tempAccounts) {
217
- accounts.push(cc);
218
- }
219
- return accounts;
220
- }
221
- browseAccount(accounts) {
222
- let listAccounts = [];
223
- if (this.query === '') {
224
- const temp = this.resetAccount();
225
- this.cuentasContables = temp;
226
- }
227
- else {
228
- for (let account of accounts) {
229
- if (account.data.cuentaContable.toString().toLowerCase().includes(this.query.toLowerCase()) || account.data.descripcion.toString().toLowerCase().includes(this.query.toLowerCase())) {
230
- listAccounts = listAccounts.concat({
231
- data: account.data,
232
- children: this.browseAccount(account.children)
233
- });
234
- }
235
- else {
236
- listAccounts = listAccounts.concat(this.browseAccount(account.children));
237
- }
238
- }
239
- return listAccounts;
240
- }
241
- }
242
- }
243
- /** @nocollapse */ CclistaComponent.ɵfac = function CclistaComponent_Factory(t) { return new (t || CclistaComponent)(i0.ɵɵdirectiveInject(i1.CuentaContableService)); };
244
- /** @nocollapse */ CclistaComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CclistaComponent, selectors: [["lib-cclista"]], inputs: { isShared: "isShared", typeAccount: "typeAccount" }, outputs: { evSelectedAccount: "evSelectedAccount" }, decls: 5, vars: 8, consts: [["type", "text", "pInputText", "", "placeholder", "Cuenta o descripci\u00F3n", 2, "width", "100%", 3, "ngModel", "ngModelChange", "keyup"], [2, "padding", "10px"], [3, "value", "scrollable", "scrollHeight", "resizableColumns"], ["pTemplate", "header"], ["pTemplate", "body", "style", "width: 100%;"], [2, "width", "150px"], [2, "width", "90px"], [2, "width", "60px"], [2, "width", "200px"], [1, "ui-resizable-column", 2, "width", "150px"], [3, "rowNode"], [1, "ui-resizable-column", 2, "width", "90px"], [1, "ui-resizable-column", 2, "width", "60px"], [1, "ui-resizable-column", 2, "width", "200px"], [1, "button-row"], ["pButton", "", "type", "button", "icon", "pi pi-check", "class", "ui-button-raised ui-button-success", 3, "click", 4, "ngIf"], ["pButton", "", "type", "button", "icon", "pi pi-check", 1, "ui-button-raised", "ui-button-success", 3, "click"]], template: function CclistaComponent_Template(rf, ctx) { if (rf & 1) {
245
- i0.ɵɵelementStart(0, "input", 0);
246
- i0.ɵɵlistener("ngModelChange", function CclistaComponent_Template_input_ngModelChange_0_listener($event) { return ctx.query = $event; })("keyup", function CclistaComponent_Template_input_keyup_0_listener($event) { return ctx.filterAccounts($event); });
247
- i0.ɵɵelementEnd();
248
- i0.ɵɵelementStart(1, "div", 1);
249
- i0.ɵɵelementStart(2, "p-treeTable", 2);
250
- i0.ɵɵtemplate(3, CclistaComponent_ng_template_3_Template, 11, 0, "ng-template", 3);
251
- i0.ɵɵtemplate(4, CclistaComponent_ng_template_4_Template, 14, 7, "ng-template", 4);
252
- i0.ɵɵelementEnd();
253
- i0.ɵɵelementEnd();
254
- } if (rf & 2) {
255
- i0.ɵɵproperty("ngModel", ctx.query);
256
- i0.ɵɵadvance(2);
257
- i0.ɵɵstyleMap(i0.ɵɵpureFunction0(7, _c0));
258
- i0.ɵɵproperty("value", ctx.cuentasContables ? ctx.cuentasContables : ctx.tempAccounts)("scrollable", true)("scrollHeight", ctx.maxH + "px")("resizableColumns", true);
259
- } }, directives: [i2.DefaultValueAccessor, i3.InputText, i2.NgControlStatus, i2.NgModel, i4.TreeTable, i5.PrimeTemplate, i4.TreeTableToggler, i6.NgIf, i7.ButtonDirective], styles: [""] });
260
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CclistaComponent, [{
261
- type: Component,
262
- args: [{
263
- selector: 'lib-cclista',
264
- templateUrl: './cclista.component.html',
265
- styleUrls: ['./cclista.component.css']
266
- }]
267
- }], function () { return [{ type: i1.CuentaContableService }]; }, { isShared: [{
268
- type: Input
269
- }], typeAccount: [{
270
- type: Input
271
- }], evSelectedAccount: [{
272
- type: Output
273
- }] }); })();
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NsaXN0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbnRhYmlsaWRhZC9jb21wb25lbnRlcy9jY2xpc3RhL2NjbGlzdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb250YWJpbGlkYWQvY29tcG9uZW50ZXMvY2NsaXN0YS9jY2xpc3RhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7SUNHbkUsMEJBQUk7SUFDQSw2QkFBMEI7SUFBQSwrQkFBZTtJQUFBLGlCQUFLO0lBQzlDLDZCQUEwQjtJQUFBLGdDQUFXO0lBQUEsaUJBQUs7SUFDMUMsNkJBQXlCO0lBQUEsMEJBQVU7SUFBQSxpQkFBSztJQUN4Qyw2QkFBeUI7SUFBQSxvQkFBSTtJQUFBLGlCQUFLO0lBQ2xDLDZCQUEwQjtJQUFBLHlCQUFRO0lBQUEsaUJBQUs7SUFDM0MsaUJBQUs7Ozs7SUFtQk8sa0NBQXFMO0lBQXpGLHlRQUF1QztJQUFrRCxpQkFBUzs7OztJQUM5TCxrQ0FBc0w7SUFBMUYsMFFBQXVDO0lBQW1ELGlCQUFTOzs7SUFqQjNNLDBCQUFJO0lBQ0EsNkJBQXNEO0lBQ2xELHlDQUE2RDtJQUM3RCxZQUNKO0lBQUEsaUJBQUs7SUFDTCw2QkFBc0Q7SUFDbEQsWUFDSjtJQUFBLGlCQUFLO0lBQ0wsOEJBQXFEO0lBQ2pELFlBQ0o7SUFBQSxpQkFBSztJQUNMLDhCQUFxRDtJQUNqRCxZQUNKO0lBQUEsaUJBQUs7SUFDTCwrQkFBc0Q7SUFDbEQsZ0NBQXdCO0lBQ3BC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QyxRQUFRLENBQUM7cUJBQy9DLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUMxRTthQUNGO1lBQ0QsT0FBTyxZQUFZLENBQUM7U0FDckI7SUFDSCxDQUFDOzttR0FqTFUsZ0JBQWdCO3dFQUFoQixnQkFBZ0I7UUNUN0IsZ0NBQTJJO1FBQXJELHdJQUFtQixxRkFBVSwwQkFBc0IsSUFBaEM7UUFBekcsaUJBQTJJO1FBRTNJLDhCQUE0QjtRQUN4QixzQ0FBNEs7UUFDeEssa0ZBUWM7UUFDZCxrRkFzQmM7UUFDbEIsaUJBQWM7UUFDbEIsaUJBQU07O1FBckNnRixtQ0FBbUI7UUFHWCxlQUEwQjtRQUExQix5Q0FBMEI7UUFBdkcsc0ZBQXdELG9CQUFBLGlDQUFBLDBCQUFBOzt1RkRNNUQsZ0JBQWdCO2NBTDVCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsV0FBVyxFQUFFLDBCQUEwQjtnQkFDdkMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7YUFDdkM7d0VBSUMsUUFBUTtrQkFEUCxLQUFLO1lBR04sV0FBVztrQkFEVixLQUFLO1lBR04saUJBQWlCO2tCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VlbnRhQ29udGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsb3MvY3VlbnRhQ29udGFibGUubW9kZWwnO1xuaW1wb3J0IHsgQ3VlbnRhQ29udGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljaW9zL2N1ZW50YWNvbnRhYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2NsaXN0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jY2xpc3RhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2NsaXN0YS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2NsaXN0YUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgaXNTaGFyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHR5cGVBY2NvdW50OiBudW1iZXI7XG4gIEBPdXRwdXQoKVxuICBldlNlbGVjdGVkQWNjb3VudDogRXZlbnRFbWl0dGVyPEN1ZW50YUNvbnRhYmxlTW9kZWw+O1xuICBjdWVudGFzQ29udGFibGVzOiBhbnlbXSA9IFtdO1xuICBtYXhIID0gNzIwO1xuICBxdWVyeTogYW55ID0gXCJcIjtcbiAgdGVtcEFjY291bnRzOiBDdWVudGFDb250YWJsZU1vZGVsW10gPSBbXTtcblxuICBjdWVudGFTZWxlY2Npb25hZGE6IEN1ZW50YUNvbnRhYmxlTW9kZWw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY3VlbnRhQ29udGFibGVTZXJ2aWNlOiBDdWVudGFDb250YWJsZVNlcnZpY2UpIHtcbiAgICB0aGlzLmV2U2VsZWN0ZWRBY2NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDdWVudGFDb250YWJsZU1vZGVsPigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tYXhIID0gd2luZG93LmlubmVySGVpZ2h0IC0gMzIwO1xuICAgIHRoaXMub2J0ZW5lckN1ZW50YXNDb250YWJsZXNSZWN1cnNpdm8oKTtcbiAgfVxuXG4gIG9idGVuZXJDdWVudGFzQ29udGFibGVzUmVjdXJzaXZvKCkge1xuICAgIHRoaXMuX2N1ZW50YUNvbnRhYmxlU2VydmljZS5vYnRpZW5lQ3VlbnRhc0NvbnRhYmxlc1JlY3Vyc2l2bygpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jdWVudGFzQ29udGFibGVzID0gcmVzdWx0O1xuICAgICAgICB0aGlzLnNvcnRBY2NvdW50cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc29ydEFjY291bnRzKCkge1xuICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAvLyBnZXQgc3ltYm9sIGZvciBzdHJpbmdcbiAgICAgIGxldCBjaGFyYWN0ZXJCcmVhayA9ICcuJztcbiAgICAgIGNvbnN0IGxpc3RBOiBhbnlbXSA9IGEuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG4gICAgICBjb25zdCBsaXN0QjogYW55W10gPSBiLmRhdGEuY3VlbnRhQ29udGFibGUuc3BsaXQoY2hhcmFjdGVyQnJlYWspO1xuXG4gICAgICBpZiAobGlzdEEubGVuZ3RoID4gMCAmJiBsaXN0Qi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPT09IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA8IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qi5sZW5ndGggPCBsaXN0QS5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RCLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuY3VlbnRhc0NvbnRhYmxlcykge1xuICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5zb3J0SXRlbShpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50ZW1wQWNjb3VudHMgPSB0aGlzLmN1ZW50YXNDb250YWJsZXM7XG4gIH1cblxuICBzb3J0SXRlbShhY2NvdW50OiBhbnkpIHtcbiAgICBhY2NvdW50LmNoaWxkcmVuLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIC8vIGdldCBzeW1ib2wgZm9yIHN0cmluZ1xuICAgICAgbGV0IGNoYXJhY3RlckJyZWFrID0gJy4nO1xuICAgICAgY29uc3QgbGlzdEE6IGFueVtdID0gYS5kYXRhLmN1ZW50YUNvbnRhYmxlLnNwbGl0KGNoYXJhY3RlckJyZWFrKTtcbiAgICAgIGNvbnN0IGxpc3RCOiBhbnlbXSA9IGIuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG4gICAgICBpZiAobGlzdEEubGVuZ3RoID4gMCAmJiBsaXN0Qi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPT09IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA8IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qi5sZW5ndGggPCBsaXN0QS5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RCLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBmb3IgKGxldCBpdGVtIG9mIGFjY291bnQuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuc29ydEl0ZW0oaXRlbSk7XG4gICAgfVxuICB9XG5cblxuXG4gIHNlbGVjdEN1ZW50YUNvbnRhYmxlKGFjY291bnQ6IEN1ZW50YUNvbnRhYmxlTW9kZWwpIHtcbiAgICB0aGlzLmV2U2VsZWN0ZWRBY2NvdW50LmVtaXQoYWNjb3VudCk7XG4gIH1cblxuICBmaWx0ZXJBY2NvdW50cyhldnQ6IGFueSkge1xuICAgIGlmICghZXZ0KSB7XG4gICAgICBjb25zdCB0ZW1wID0gdGhpcy5yZXNldEFjY291bnQoKTtcbiAgICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRlbXA7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRoaXMuYnJvd3NlQWNjb3VudCh0aGlzLnRlbXBBY2NvdW50cyk7XG4gIH1cblxuICByZXNldEFjY291bnQoKSB7XG4gICAgdGhpcy5xdWVyeSA9ICcnO1xuICAgIGxldCBhY2NvdW50cyA9IFtdO1xuICAgIGZvciAobGV0IGNjIG9mIHRoaXMudGVtcEFjY291bnRzKSB7XG4gICAgICBhY2NvdW50cy5wdXNoKGNjKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY291bnRzO1xuICB9XG5cblxuXG4gIGJyb3dzZUFjY291bnQoYWNjb3VudHM6IGFueSkge1xuICAgIGxldCBsaXN0QWNjb3VudHM6IGFueVtdID0gW107XG4gICAgaWYgKHRoaXMucXVlcnkgPT09ICcnKSB7XG4gICAgICBjb25zdCB0ZW1wID0gdGhpcy5yZXNldEFjY291bnQoKTtcbiAgICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRlbXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGFjY291bnQgb2YgYWNjb3VudHMpIHtcbiAgICAgICAgaWYgKGFjY291bnQuZGF0YS5jdWVudGFDb250YWJsZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5xdWVyeS50b0xvd2VyQ2FzZSgpKSB8fCBhY2NvdW50LmRhdGEuZGVzY3JpcGNpb24udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMucXVlcnkudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICBsaXN0QWNjb3VudHMgPSBsaXN0QWNjb3VudHMuY29uY2F0KHtcbiAgICAgICAgICAgIGRhdGE6IGFjY291bnQuZGF0YSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLmJyb3dzZUFjY291bnQoYWNjb3VudC5jaGlsZHJlbilcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsaXN0QWNjb3VudHMgPSBsaXN0QWNjb3VudHMuY29uY2F0KHRoaXMuYnJvd3NlQWNjb3VudChhY2NvdW50LmNoaWxkcmVuKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBsaXN0QWNjb3VudHM7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgcElucHV0VGV4dCBwbGFjZWhvbGRlcj1cIkN1ZW50YSBvIGRlc2NyaXBjacOzblwiIFsobmdNb2RlbCldPVwicXVlcnlcIiAoa2V5dXApPVwiZmlsdGVyQWNjb3VudHMoJGV2ZW50KVwiPlxuXG48ZGl2IHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cbiAgICA8cC10cmVlVGFibGUgW3ZhbHVlXT1cImN1ZW50YXNDb250YWJsZXM/Y3VlbnRhc0NvbnRhYmxlczp0ZW1wQWNjb3VudHNcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCIgW3N0eWxlXT1cInt3aWR0aDogJzEwMCUnfSBcIiBbc2Nyb2xsSGVpZ2h0XT1cIm1heEggKyAncHgnXCIgW3Jlc2l6YWJsZUNvbHVtbnNdPVwidHJ1ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPkN1ZW50YSBjb250YWJsZTwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPkRlc2NyaXBjacOzbjwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+TmF0dXJhbGV6YTwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDYwcHg7XCI+VGlwbzwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPkFjY2lvbmVzPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd05vZGUgbGV0LXJvd0RhdGE9XCJyb3dEYXRhXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZVRvZ2dsZXIgW3Jvd05vZGVdPVwicm93Tm9kZVwiPjwvcC10cmVlVGFibGVUb2dnbGVyPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEuY3VlbnRhQ29udGFibGV9fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEuZGVzY3JpcGNpb259fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7cm93RGF0YS5uYXR1cmFsZXphfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInVpLXJlc2l6YWJsZS1jb2x1bW5cIiBzdHlsZT1cIndpZHRoOiA2MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEudGlwb319XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogMjAwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1jaGVja1wiIGNsYXNzPVwidWktYnV0dG9uLXJhaXNlZCB1aS1idXR0b24tc3VjY2Vzc1wiIChjbGljayk9XCJzZWxlY3RDdWVudGFDb250YWJsZShyb3dEYXRhKVwiICpuZ0lmPVwidHlwZUFjY291bnQ9PTEgJiYgcm93RGF0YS5jdWVudGFSZWdpc3Ryb1wiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktY2hlY2tcIiBjbGFzcz1cInVpLWJ1dHRvbi1yYWlzZWQgdWktYnV0dG9uLXN1Y2Nlc3NcIiAoY2xpY2spPVwic2VsZWN0Q3VlbnRhQ29udGFibGUocm93RGF0YSlcIiAqbmdJZj1cInR5cGVBY2NvdW50PT0yICYmICFyb3dEYXRhLmN1ZW50YVJlZ2lzdHJvXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10cmVlVGFibGU+XG48L2Rpdj4iXX0=