{"version":3,"sources":["./src/app/app.component.html","./src/app/libs/ruvpp-angular2-comun/indicador-carga/indicador-carga.componente.html","./src/app/pages/abierto/abierto.component.html","./src/app/pages/administrador/administrador.component.html","./src/app/pages/catalogo-elementos/catalogo-elementos.component.html","./src/app/pages/catalogo-espacios/catalogo-espacios.component.html","./src/app/pages/catalogo-mano-obra/catalogo-mano-obra.component.html","./src/app/pages/catalogo-materiales/catalogo-materiales.component.html","./src/app/pages/catalogo-prototipos/catalogo-prototipos.component.html","./src/app/pages/example/example.component.html","./src/app/pages/login/login.component.html","./src/app/pages/menu/menu.component.html","./src/app/pages/portada-inicio/portada-inicio.component.html","./src/app/pages/portada-simulador-admin/portada-simulador-admin.component.html","./src/app/pages/portada-simulador/portada-simulador.component.html","./src/app/pages/simulador-prototipos/simulador-prototipos.component.html","./src/app/pages/simulador/simulador.component.html","./node_modules/tslib/tslib.es6.js","./src/$_lazy_route_resource lazy namespace object","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/datos/simulador.service.ts","./src/app/libs/ruvpp-angular2-comun/FormValidation.ts","./src/app/libs/ruvpp-angular2-comun/HttpSession.ts","./src/app/libs/ruvpp-angular2-comun/ServicioAlertas.ts","./src/app/libs/ruvpp-angular2-comun/ServicioDatosBase.ts","./src/app/libs/ruvpp-angular2-comun/indicador-carga/index.ts","./src/app/libs/ruvpp-angular2-comun/indicador-carga/indicador-carga.componente.css","./src/app/libs/ruvpp-angular2-comun/indicador-carga/indicador-carga.componente.ts","./src/app/libs/ruvpp-angular2-comun/indicador-carga/indicador-carga.servicio.ts","./src/app/pages/abierto/abierto.component.css","./src/app/pages/abierto/abierto.component.ts","./src/app/pages/abierto/styles.css","./src/app/pages/administrador/administrador.component.ts","./src/app/pages/catalogo-elementos/catalogo-elementos.component.ts","./src/app/pages/catalogo-espacios/catalogo-espacios.component.ts","./src/app/pages/catalogo-mano-obra/catalogo-mano-obra.component.ts","./src/app/pages/catalogo-materiales/catalogo-materiales.component.ts","./src/app/pages/catalogo-prototipos/catalogo-prototipos.component.ts","./src/app/pages/example/example.component.css","./src/app/pages/example/example.component.ts","./src/app/pages/login/login.component.ts","./src/app/pages/menu/menu.component.ts","./src/app/pages/portada-inicio/portada-inicio.component.ts","./src/app/pages/portada-simulador-admin/portada-simulador-admin.component.ts","./src/app/pages/portada-simulador/portada-simulador.component.ts","./src/app/pages/simulador-prototipos/simulador-prototipos.component.ts","./src/app/pages/simulador/simulador.component.ts","./src/assets/css/styles.css","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["export default \"\\r\\nSimulador de autoproducci�n del RUV - Contenedor de tabs\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Acciones de vivienda\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n

\\r\\n \\r\\n    \\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de elementos seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Clave\\r\\n \\r\\n Tipo de Elemento\\r\\n \\r\\n Nombre\\r\\n \\r\\n Entrada\\r\\n
\\r\\n \\r\\n {{ row.clave}} {{ row.nombreTipoElemento}} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de precios unitarios\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Clave\\r\\n \\r\\n Nombre tipo mano de Obra\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Nombre del Material\\r\\n \\r\\n Unidad Comercial\\r\\n \\r\\n Cantidad Comercial\\r\\n \\r\\n Unidad Obra\\r\\n \\r\\n Cantidad Unidad Obra\\r\\n \\r\\n Precio Unidad Obra\\r\\n \\r\\n Costo Elemento\\r\\n \\r\\n Precio\\r\\n
{{ row.clave}} {{ row.nombreTipoManoObra}} {{ row.nombreElemento}} {{ row.nombreMaterial}} {{ row.unidadComercial}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObra}} {{ row.precioUnidadObra}} {{ row.costoElemento}} {{ row.costoElementoxCantidad|currency:\\\"MXN\\\":\\\"symbol\\\"}}
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de costo mano de obra\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Clave\\r\\n \\r\\n Nombre tipo mano de Obra\\r\\n \\r\\n Nombre tipo de elemento\\r\\n \\r\\n Nombre del elemento\\r\\n \\r\\n Nombre personal\\r\\n \\r\\n Salario semanal\\r\\n \\r\\n Rendimiento x semana\\r\\n \\r\\n Costo elemento\\r\\n \\r\\n Costo elemento 132\\r\\n \\r\\n Precio\\r\\n
{{ row.clave}} {{ row.nombreTipoManoObra}} {{ row.nombreTipoElemento}} {{ row.nombreElemento}} {{ row.nombrePersonal}} {{ row.salarioSemanal}} {{ row.rendimientoxSemana}} {{ row.costoElemento}} {{ row.costoElemento132}} {{ row.costoElemento132xCantidad|currency:\\\"MXN\\\":\\\"symbol\\\"}}
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de precios unitarios\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Clave\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Material\\r\\n \\r\\n Largo comercial\\r\\n \\r\\n Unidad comercial\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Largo comercial\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n Largo unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.clave}} {{ row.nombreElementoEsp}} {{ row.material}} {{ row.largoComercial}} {{ row.unidadComercial}} {{ row.cantidadComercial}} {{ row.largoComercialDos}} {{ row.cantidadComercialDos}} {{ row.unidadObra}} {{ row.cantidadUnidadObra}} {{ row.largoUnidadObra}} {{ row.cantidadUnidadObraDos}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Lista de espacios\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n 0\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Nombre\\r\\n \\r\\n Tipo de Espacio\\r\\n \\r\\n Detalle\\r\\n
{{ row.nombreEspacio}}{{ row.nombreTipoEspacio}} \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de elementos seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Clave\\r\\n \\r\\n Tipo de Elemento\\r\\n \\r\\n Nombre\\r\\n \\r\\n Entrada\\r\\n
\\r\\n \\r\\n {{ row.clave}} {{ row.nombreTipoElemento}} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{espacioForm.nombreEspacio_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n    \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de mano de obra\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre tipo Elemento\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Material\\r\\n \\r\\n Unidad de Medida\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreTipoElemento}} {{ row.nombreElementoEsp}} {{ row.material}} {{ row.unidadMedida}} {{ row.cantidadUnidadObra}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de materiales\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre del material\\r\\n \\r\\n Unidad comercial\\r\\n \\r\\n Pecio UC\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreMaterial}} {{ row.unidadComercial}} {{ row.precioUC}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObra}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de prototipos\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n 0\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Nombre\\r\\n \\r\\n Tipo de Prototipo\\r\\n \\r\\n Detalle\\r\\n
{{ row.nombrePrototipo}} {{ row.nombreTipoPrototipo}} \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de espacios seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Tipo de Espacio\\r\\n \\r\\n Nombre\\r\\n \\r\\n Detalle\\r\\n
{{ row.nombreTipoEspacio}} {{ row.nombreEspacio}} \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{prototipoForm.nombrePrototipo_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n    \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de mano de obra\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre tipo Elemento\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Material\\r\\n \\r\\n Unidad de Medida\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreTipoElemento}} {{ row.nombreElementoEsp}} {{ row.material}} {{ row.unidadMedida}} {{ row.cantidadUnidadObra}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de materiales\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre del material\\r\\n \\r\\n Unidad comercial\\r\\n \\r\\n Pecio UC\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreMaterial}} {{ row.unidadComercial}} {{ row.precioUC}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObra}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Nombre\\r\\n \\r\\n\\r\\n \\r\\n Eliminar\\r\\n
{{ row.nombreArchivo}} \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
  • {{file.name}} - {{file.size}} bytes
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de elementos seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Clave\\r\\n \\r\\n Tipo de Elemento\\r\\n \\r\\n Nombre\\r\\n \\r\\n Entrada\\r\\n
\\r\\n\\r\\n {{ row.clave}} {{ row.nombreTipoElemento}} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","export default \"\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Acciones de vivienda\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n

\\r\\n \\r\\n    \\r\\n \\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de elementos seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Clave\\r\\n \\r\\n Tipo de Elemento\\r\\n \\r\\n Nombre\\r\\n \\r\\n Entrada\\r\\n
\\r\\n \\r\\n {{ row.clave}} {{ row.nombreTipoElemento}} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de precios unitarios\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Clave\\r\\n \\r\\n Nombre tipo mano de Obra\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Nombre del Material\\r\\n \\r\\n Unidad Comercial\\r\\n \\r\\n Cantidad Comercial\\r\\n \\r\\n Unidad Obra\\r\\n \\r\\n Cantidad Unidad Obra\\r\\n \\r\\n Precio Unidad Obra\\r\\n \\r\\n Costo Elemento\\r\\n \\r\\n Precio\\r\\n
{{ row.clave}} {{ row.nombreTipoManoObra}} {{ row.nombreElemento}} {{ row.nombreMaterial}} {{ row.unidadComercial}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObra}} {{ row.precioUnidadObra}} {{ row.costoElemento}} {{ row.costoElementoxCantidad|currency:\\\"MXN\\\":\\\"symbol\\\"}}
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de costo mano de obra\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Clave\\r\\n \\r\\n Nombre tipo mano de Obra\\r\\n \\r\\n Nombre tipo de elemento\\r\\n \\r\\n Nombre del elemento\\r\\n \\r\\n Nombre personal\\r\\n \\r\\n Salario semanal\\r\\n \\r\\n Rendimiento x semana\\r\\n \\r\\n Costo elemento\\r\\n \\r\\n Costo elemento 132\\r\\n \\r\\n Precio\\r\\n
{{ row.clave}} {{ row.nombreTipoManoObra}} {{ row.nombreTipoElemento}} {{ row.nombreElemento}} {{ row.nombrePersonal}} {{ row.salarioSemanal}} {{ row.rendimientoxSemana}} {{ row.costoElemento}} {{ row.costoElemento132}} {{ row.costoElemento132xCantidad|currency:\\\"MXN\\\":\\\"symbol\\\"}}
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de precios unitarios\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Clave\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Material\\r\\n \\r\\n Largo comercial\\r\\n \\r\\n Unidad comercial\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Largo comercial\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n Largo unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.clave}} {{ row.nombreElementoEsp}} {{ row.material}} {{ row.largoComercial}} {{ row.unidadComercial}} {{ row.cantidadComercial}} {{ row.largoComercialDos}} {{ row.cantidadComercialDos}} {{ row.unidadObra}} {{ row.cantidadUnidadObra}} {{ row.largoUnidadObra}} {{ row.cantidadUnidadObraDos}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Lista de espacios\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n 0\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Nombre\\r\\n \\r\\n Tipo de Espacio\\r\\n \\r\\n Detalle\\r\\n \\r\\n Editar\\r\\n \\r\\n Clonar\\r\\n \\r\\n Publicar\\r\\n
\\r\\n \\r\\n {{ row.nombreEspacio}}{{ row.nombreTipoEspacio}} \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de elementos seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Clave\\r\\n \\r\\n Tipo de Elemento\\r\\n \\r\\n Nombre\\r\\n \\r\\n Entrada\\r\\n
\\r\\n \\r\\n {{ row.clave}} {{ row.nombreTipoElemento}} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{espacioForm.nombreEspacio_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n    \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de mano de obra\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre tipo Elemento\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Material\\r\\n \\r\\n Unidad de Medida\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreTipoElemento}} {{ row.nombreElementoEsp}} {{ row.material}} {{ row.unidadMedida}} {{ row.volumenEjecutar}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de materiales\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre del material\\r\\n \\r\\n Unidad comercial\\r\\n \\r\\n Pecio UC\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.material}} {{ row.unidadComercial}} {{ row.precioUC}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObraTotal}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de prototipos\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n 0\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Nombre\\r\\n \\r\\n Tipo de Prototipo\\r\\n \\r\\n Detalle\\r\\n \\r\\n Editar\\r\\n \\r\\n Clonar\\r\\n \\r\\n Publicar\\r\\n
\\r\\n \\r\\n {{ row.nombrePrototipo}} {{ row.nombreTipoPrototipo}} \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de espacios seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Tipo de Espacio\\r\\n \\r\\n Nombre\\r\\n \\r\\n Detalle\\r\\n
{{ row.nombreTipoEspacio}} {{ row.nombreEspacio}} \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{prototipoForm.nombrePrototipo_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n    \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de mano de obra\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre tipo Elemento\\r\\n \\r\\n Nombre del Elemento\\r\\n \\r\\n Material\\r\\n \\r\\n Unidad de Medida\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreTipoElemento}} {{ row.nombreElementoEsp}} {{ row.material}} {{ row.unidadMedida}} {{ row.cantidadUnidadObra}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Total de materiales\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Nombre del material\\r\\n \\r\\n Unidad comercial\\r\\n \\r\\n Pecio UC\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n PU\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreMaterial}} {{ row.unidadComercial}} {{ row.precioUC}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObra}} {{ row.pu}} {{ row.importe}}
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Nombre\\r\\n \\r\\n\\r\\n \\r\\n Eliminar\\r\\n
{{ row.nombreArchivo}} \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
  • {{file.name}} - {{file.size}} bytes
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n Lista de elementos seleccionados\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Clave\\r\\n \\r\\n Tipo de Elemento\\r\\n \\r\\n Nombre\\r\\n \\r\\n Entrada\\r\\n
\\r\\n\\r\\n {{ row.clave}} {{ row.nombreTipoElemento}} \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","export default \"\\r\\n\\r\\nSimulador de autoproducción del RUV - Catálogo de elementos\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Catálogo de elementos

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Clave\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Nombre del elemento\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n Tipo de elemento\\r\\n \\r\\n
\\r\\n
\\r\\n Tipo dato de entrada\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Unidad de medida\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Autoproducción\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n Acabado\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Clave\\r\\n Nombre del Elemento\\r\\n Tipo de elemento\\r\\n Tipo dato de entrada\\r\\n Unidad de medida\\r\\n Autoproducción\\r\\n Acabado\\r\\n Editar\\r\\n Eliminar\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData.clave}}\\r\\n {{rowData.nombreElemento}}\\r\\n {{rowData.nombreTipoElemento}}\\r\\n {{rowData.nombreTipoDatoEntrada}}\\r\\n {{rowData.unidadMedida}}\\r\\n {{rowData.esAutoproduccion}}\\r\\n {{rowData.esAcabado}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Clave\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{Clave_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Nombre del elemento\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{NombreElemento_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo de elemento\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoElemento_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo dato de entrada\\t\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoDatoEntrada_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Unidad de medida\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{UnidadMedida_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Autoproducción\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{Autoproduccion_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Acabado\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{Acabado_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\nSimulador de autoproducción del RUV - Catálogo de espacios\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Catálogo de espacios

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Nombre del espacio\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Tipo de espacio\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Tipo de etapa\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Tipo de piso\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n Nombre del espacio\\r\\n Tipo de espacio\\r\\n Tipo de etapa\\r\\n Tipo de piso\\r\\n Publicar\\r\\n Clonar\\r\\n Editar\\r\\n Eliminar\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData.nombreEspacio}}\\r\\n {{rowData.nombreTipoEspacio}}\\r\\n {{rowData.nombreEtapa}}\\r\\n {{rowData.nombrePiso}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Nombre del elemento\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Clave\\r\\n Tipo de elemento\\r\\n Nombre\\r\\n Entrada\\r\\n Eliminar\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{ rowData.clave}} \\r\\n\\r\\n {{ rowData.nombreTipoElemento}} \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ListaElementos_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Nombre del espacio\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{NombreEspacio_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo de espacio\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoEspacio_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo de etapa\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoEtapa_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo de piso\\t\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoPiso_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\nSimulador de autoproducción del RUV - Catálogo de mano de obra\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Catálogo de mano de obra

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Personal / salario semanal\\r\\n
\\r\\n
\\r\\n Oficial de 1a calificado {{filtro.listPersonalUtilizar[0].salarioSemanal |currency:'':'symbol-narrow'}}\\r\\n
\\r\\n
\\r\\n Ayudante {{filtro.listPersonalUtilizar[1].salarioSemanal |currency:'':'symbol-narrow'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Pareja 1 (1 oficial + 1 ayudante) {{filtro.listPersonalUtilizar[2].salarioSemanal |currency:'':'symbol-narrow'}}\\r\\n
\\r\\n
\\r\\n Pareja 2 (1 oficial + 2 ayudantes) {{filtro.listPersonalUtilizar[3].salarioSemanal |currency:'':'symbol-narrow'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Categoría\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Elemento a construir\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n Unidad de medida\\r\\n \\r\\n
\\r\\n
\\r\\n Personal a utilizar\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Categoría\\r\\n Elemento a construir\\r\\n Unidad de medida\\r\\n Personal a utilizar\\r\\n Rendimiento por semana\\r\\n Costo por semana\\r\\n Volumen a ejecutar\\r\\n Costo del elemento a construir\\r\\n Editar\\r\\n Eliminar\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData.categoria}}\\r\\n {{rowData.elementoConstruir}}\\r\\n {{rowData.unidadMedida}}\\r\\n {{rowData.personalUtilizar}}\\r\\n {{rowData.rendimientoSemana}}\\r\\n {{rowData.costoSemana}}\\r\\n {{rowData.volumenEjecutar}}\\r\\n {{rowData.costoElementoConstruir}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{modalTitulo}}

\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Categoría\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{Categoria_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Elemento a construir\\t\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{NombreElemento_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Unidad de medida\\t\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{UnidadMedida_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Personal a utilizar\\t\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{Personal_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Rendimiento por semana\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{RendimientoSemana_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Costo por semana\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{CostoSemana_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Volumen a ejecutar\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{VolumenEjecutar_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Costo del elemento a construir\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Clave\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{Clave_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Autoproducción\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{EsAutoproduccion_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo dato de entrada\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoDatoEntrada_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo mano de obra\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoManoObra_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\nSimulador de autoproducción del RUV - Catálogo de materiales\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Catálogo de materiales

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Nombre del material\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Unidad comercial\\r\\n \\r\\n
\\r\\n
\\r\\n Unidad de obra\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Incremento calidad\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Nombre del material\\r\\n Unidad comercial\\r\\n Precio UC\\r\\n Unidad de obra\\r\\n Precio unidad de obra\\r\\n Incremento calidad\\r\\n Editar\\r\\n Eliminar\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData.nombreMaterial}}\\r\\n {{rowData.unidadComercial}}\\r\\n {{rowData.precioUC}}\\r\\n {{rowData.unidadObra}}\\r\\n {{rowData.precioUnidadObra}}\\r\\n {{rowData.incrementoCalidad}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Nombre del material\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{NombreMaterial_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Unidad comercial\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{UnidadComercial_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Precio UC\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{PrecioUC_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Unidad de obra\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{UnidadObra_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Precio unidad de obra\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{PrecioUnidadObra_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Incremento calidad\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{IncrementoCalidad_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","export default \"\\r\\n\\r\\nSimulador de autoproducción del RUV - Catálogo de viviendas / prototipos\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Catálogo de viviendas / prototipos

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Nombre del prototipo\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Tipo prototipo\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Nombre tipo prototipo\\r\\n Nombre del prototipo\\r\\n Publicar\\r\\n Editar\\r\\n Eliminar\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData.nombreTipoPrototipo}}\\r\\n {{rowData.nombrePrototipo}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Nombre del prototipo\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{NombrePrototipo_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Tipo de prototipo\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n {{TipoPrototipo_MensajeError.mensaje}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Nombre del espacio\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n {{ListaEspacios_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
NombreEliminar
{{ rowData.nombreEspacio}} \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
  • {{file.name}} - {{file.size}} bytes
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Nombre\\r\\n \\r\\n\\r\\n \\r\\n Eliminar\\r\\n
{{ row.nombreArchivo}} \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\"","export default \"\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData[col.field]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

Router Outlet

\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","export default \"\\r\\n\\r\\n\\r\\nSimulador de autoproducción del RUV - Iniciar sesión\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n

Simulador de autoproducción
 

\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{user_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{password_MensajeError.mensaje}}\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n  
© Derechos reservados RUV 2023\\r\\n
\\r\\n Email: soporte@ruv.org.mx\\r\\n
\\r\\n Teléfono: 800 0077 788\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n\\r\\n
\\r\\n \\r\\n  Principal\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  Iniciar sesión\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  Principal\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  Menú\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\"","export default \"\\r\\n\\r\\n\\r\\n\\r\\nSimulador de autoproducción del RUV - Portada principal\\r\\n\\r\\n\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Guías de apoyo\\r\\n \\r\\n     \\r\\n Iniciar sesión\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n Simulador de autoproducción\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n  \\r\\n

¿Qué necesitas hacer?

\\r\\n  \\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n

Elementos

\\r\\n
Diferentes trabajos que puedes hacer en tu vivienda: colocar puertas o ventanas, pintar, construir muros, escaleras, etc.
\\r\\n
\\r\\n
\\r\\n \\r\\n

Espacios

\\r\\n
Agregar una recámara, baño, u otro tipo de espacio en mi vivienda.
\\r\\n
\\r\\n
\\r\\n \\r\\n

Viviendas

\\r\\n
Construir mi vivienda completa o por etapas en mi terreno.
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n  \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n  \\r\\n
\\r\\n  \\r\\n

\\r\\n
Elementos
\\r\\n  \\r\\n
Espacios
\\r\\n  \\r\\n
Viviendas
\\r\\n

\\r\\n  \\r\\n
\\r\\n  \\r\\n
Iniciar sesión
\\r\\n  \\r\\n
Guías de apoyo
\\r\\n  
 \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n  \\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n

\\r\\n  \\r\\n

\\r\\n Importante\\r\\n

\\r\\n  \\r\\n

\\r\\n Esta información es de carácter meramente INFORMATIVO, únicamente como REFERENCIA. Los costos pueden variar dependiendo de la Entidad y podrían ser actualizados sin previo aviso.\\r\\n

\\r\\n  \\r\\n

\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","export default \"Simulador de autoproducción del RUV - Menú de administrador\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Simulador de autoproducción del RUV

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Bienvenido {{usuario}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Catálogo de materiales

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Catálogo de mano de obra

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Catálogo de elementos

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Catálogo de espacios

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Catálogo de viviendas / prototipos

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Simulador de elementos / espacios

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Simulador de viviendas

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Cerrar sesión

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

› Simulador de autoproducción del RUV

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n ¿Qué necesitas hacer?\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

ELEMENTOS

\\r\\n
\\r\\n \\r\\n
\\r\\n Reparaciones menores, acabados, u otro tipo de trabajos en mi vivienda.\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

ESPACIOS

\\r\\n
\\r\\n \\r\\n
\\r\\n Agregar una recámara, baño, u otro tipo de espacio en mi vivienda.\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

VIVIENDAS

\\r\\n
\\r\\n \\r\\n
\\r\\n Construir una vivienda completa o por etapas.\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Simulador de autoproducción RUV

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Importante\\r\\n
\\r\\n  \\r\\n
\\r\\n La información aquí presentada es sólo con fines informativos y de orientación, sin embargo los costos pueden variar sin previo aviso y son afectados también dependiendo de la zona de la República Mexicana en donde usted reside actualmente.\\r\\n
\\r\\n  \\r\\n
\\r\\n Si desea saber más con gusto le podemos atender en nuestro call center al teléfono 800 0077 788 de lunes a viernes, de las 9:00 am a las 6:30 pm. O por email: soporte@ruv.org.mx.\\r\\n
\\r\\n  \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

\\r\\n

\\r\\n  \\r\\n

\\r\\n Importante\\r\\n

\\r\\n  \\r\\n

\\r\\n Esta información es de carácter meramente informativo, únicamente como referencia. Los costos pueden variar dependiendo de la Entidad y podrán ser actualizados sin previo aviso.\\r\\n

\\r\\n  \\r\\n

\\r\\n

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\"","export default \"Simulador de autoproducción del RUV - Viviendas\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Selecciona la vivienda que deseas cotizar.
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n   Ampliar imagen\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Vivienda modelo {{prototipo.entity.nombreTipoPrototipo}}-{{prototipo.entity.nombrePrototipo}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n El costo total estimado de la obra es: {{CostoTotalProyecto|currency:\\\"\\\":\\\"symbol\\\"}}  \\r\\n \\r\\n (todos los precios son en pesos mexicanos - MXN)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n ETAPA 1 {{row.nombre}} (espacio habitable con acabados mínimos) $ {{row.totalObligatorios|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
+ {{row.totalOpcionales|currency:\\\"\\\":\\\"symbol\\\"}} (acabados seleccionados) = {{row.total|currency:\\\"\\\":\\\"symbol\\\"}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Elige las opciones que deseas agregar a tu proyecto.\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n ¿Agregar etapa {{row.entity.idEtapaPrototipo}}?\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n ETAPA {{row.entity.idEtapaPrototipo}} DE CONSTRUCCIÓN DE LA VIVIENDA (el costo aumenta  {{row.totalObligatorios|currency:\\\"\\\":\\\"symbol\\\"}} + acabados seleccionados {{row.totalOpcionales|currency:\\\"\\\":\\\"symbol\\\"}} = {{row.total|currency:\\\"\\\":\\\"symbol\\\"}})\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n ¿Agregar etapa {{row.entity.idEtapaPrototipo}}?\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n ¿Qué acabados quieres que tenga tu vivienda?\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n ¿Qué acabados quieres que tenga la etapa {{row.entity.idEtapaPrototipo}}?\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n A continuación te compartimos algunos documentos y videos que te serán de utilidad para llevar a cabo la remodelación o construcción de tu vivienda:\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n  Videos\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n  \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{tituloModal}}

\\r\\n
\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
Nombre tipo elementoNombre elementoUnidad de medidaCantidadPrecio U.Importe
{{ row.nombreTipoElemento}}{{ row.nombreElemento}} {{ row.unidadMedida}} {{ row.cantidad}} {{ row.pu}} \\r\\n \\r\\n {{row.subtotal|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n \\r\\n\\r\\n
\\r\\n {{row.subtotal|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n * \\r\\n \\r\\n \\r\\n Honorarios del {{getValorClavePU() * 100}}% para el asesor técnico por los trabajos de factibilidad, proyecto y asesoría en la ejecución de los trabajos.\\r\\n \\r\\n\\r\\n \\r\\n Son los gastos técnicos y administrativos de la constructora y pueden ser diferentes en las empresas, en este simulador representa el {{getValorClavePU() * 100}}% del valor de la obra.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Nombre tipo elemento\\r\\n \\r\\n Nombre del material\\r\\n \\r\\n Unidad de medida\\r\\n \\r\\n Volumen a ejecutar\\r\\n \\r\\n Precio U.\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreTipoElemento}}{{ row.material}}{{ row.unidadMedida}} {{ row.volumenEjecutar}} {{ row.pu}} {{ row.importe|currency:\\\"\\\":\\\"symbol\\\"}}
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n * Se estima en el presupuesto un 32% del subtotal de mano de obra para el pago de las cuotas del IMSS y del INFONAVIT. La responsabilidad de su pago le corresponde a la constructora o al acreditado.\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Nombre del materialUnidad comercialPrecio U.C.Cantidad comercialUnidad de obraCantidad unidad de obraPrecio U.Importe
{{ row.material}} {{ row.unidadComercial}} {{ row.precioUC}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObraTotal}} {{ row.pu}} {{ row.importe|currency:\\\"\\\":\\\"symbol\\\"}}
\\r\\n Total: {{ TotalMateriales|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
ConstruYO con asesoría técnica
\\r\\n Para construir una vivienda nueva o mejorar la que tienes contarás con el apoyo de un asesor técnico registrado en el INFONAVIT.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
ConstruYO con Constructora
\\r\\n Para construir una vivienda o mejorar la que tienes contarás con el apoyo de una constructora registrada en el INFONAVIT.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Acabados económicos
\\r\\n Se refieren aquellos que cumplen con criterios de calidad y son los más baratos.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Acabados medios
\\r\\n Se refieren al precio del acabado final; partiendo del más económico se considera un 20% más. Los materiales que se ven afectados por este posible incremento son, por ejemplo: losetas de piso, WC, lavabos, calentador, pintura, impermeabilizantes, ventanas, puertas, etc. Si elegiste hacer trabajos que no tienen estos materiales, no se verá afectado el costo.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Acabados altos
\\r\\n Se refieren al precio del acabado final; partiendo del más económico se considera un 30% más. Los materiales que se ven afectados por este posible incremento son, por ejemplo: losetas de piso, WC, lavabos, calentador, pintura, impermeabilizantes, ventanas, puertas, etc. Si elegiste hacer trabajos que no tienen estos materiales, no se verá afectado el costo.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n\\r\\n
0 && activeTab=='pestana1'\\\"> Has agregado {{checked.length}} conceptos para cotizar  
\\r\\n\\r\\n
0 && activeTab=='pestana1') ? 'margenarri56': '' }} \\\">\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Selecciona los elementos que deseas cotizar para:
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n\\r\\n \\r\\n {{item.label}}\\r\\n 0\\\">{{item.length}}\\r\\n \\r\\n\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n   Detalles\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Seleccione los espacios que desea cotizar.
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n   Ampliar imagen\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Selecciona el espacio que deseas cotizar:
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Se presentan opciones para el diseño de tu dormitorio, revisa cuál se ajusta a tu vivienda.\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Se presentan opciones para el diseño de tu baño, revisa cuál se ajusta a tu vivienda.\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n   Ampliar imagen\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Seleccione la vivienda que desea cotizar.
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{item.label}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0 \\\">\\r\\n\\r\\n
\\r\\n
\\r\\n   Ampliar imagen\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n De acuerdo con lo que quieres hacer en tu casa, la modalidad que corresponde es:\\r\\n {{ModalidadObra}} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n El COSTO TOTAL ESTIMADO de la obra es: {{CostoTotalProyecto|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Captura la información solicitada en los campos siguientes para hacer el cálculo de los conceptos que seleccionaste previamente.\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
ESPACIOS
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Espacios › {{ampliacion.nombreTipoEspacio}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Tamaño del espacio
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Espacio habitable con acabados mínimos\\r\\n
\\r\\n
\\r\\n Largo (m)\\r\\n \\r\\n
\\r\\n
\\r\\n Ancho (m)\\r\\n \\r\\n
\\r\\n
\\r\\n m2\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n ¿Qué acabados quieres que tenga tu espacio?\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\">\\r\\n\\r\\n
ELEMENTOS
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Elementos › {{item.label}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Concepto
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Cantidad
\\r\\n
\\r\\n
\\r\\n
Unidad
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n {{item2.label}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Cantidad\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{item2.entity. unidadMedida}}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Largo (m)\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Ancho (m)\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{item2.entity. unidadMedida}}  \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Largo (m)\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Ancho (m)\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{item2.entity. unidadMedida}}  \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n NOTA: Podrás accesar a estas funciones después de ingresar los valores solicitados en los campos para los elementos que seleccionaste, y dar clic en el botón \\\"Calcular\\\".
 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n A continuación te compartimos algunos documentos y videos que te serán de utilidad para llevar a cabo la remodelación o construcción de tu vivienda:\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n  Videos\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n  \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n © Derechos reservados RUV 2023  |  Teléfono: 800 0077 788  |  Email: soporte@ruv.org.mx\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{tituloModal}}

\\r\\n
\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Nombre tipo elementoNombre elementoUnidad de medidaCantidadTotal mano de obraTotal materialesPrecio U.Subtotal
{{ row.nombreTipoElemento}}{{ row.nombreElemento}} {{ row.unidadMedida}} {{ row.cantidad}} {{ row.totalManoObra}} {{ row.totalMateriales}} {{ row.pu}} \\r\\n \\r\\n {{row.subtotal|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n \\r\\n\\r\\n
\\r\\n {{row.subtotal|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n * \\r\\n \\r\\n \\r\\n Honorarios del {{getValorClavePU() * 100}}% para el asesor técnico por los trabajos de factibilidad, proyecto y asesoría en la ejecución de los trabajos.\\r\\n \\r\\n\\r\\n \\r\\n Son los gastos técnicos y administrativos de la constructora y pueden ser diferentes en las empresas, en este simulador representa el {{getValorClavePU() * 100}}% del valor de la obra.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Nombre tipo elemento\\r\\n \\r\\n Nombre del material\\r\\n \\r\\n Unidad de medida\\r\\n \\r\\n Volumen a ejecutar\\r\\n \\r\\n Precio U.\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreTipoElemento}} {{ row.material}} {{ row.unidadMedida}} {{ row.volumenEjecutar}} {{ row.pu}} {{ row.importe|currency:\\\"\\\":\\\"symbol\\\"}}
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n * Se estima en el presupuesto un 32% del subtotal de mano de obra para el pago de las cuotas del IMSS y del INFONAVIT. La responsabilidad de su pago le corresponde a la constructora o al acreditado.\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Nombre del materialUnidad comercialPrecio U.C.Cantidad comercialUnidad de obraCantidad unidad de obraPrecio U.Importe
{{ row.material}} {{ row.unidadComercial}} {{ row.precioUC}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObraTotal}} {{ row.pu}} {{ row.importe|currency:\\\"\\\":\\\"symbol\\\"}}
\\r\\n Total: {{ TotalMaterialesElemento|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Costo total de materiales por espacio\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Material\\r\\n \\r\\n Unidad comercial\\r\\n \\r\\n Precio U.C.\\r\\n \\r\\n Cantidad comercial\\r\\n \\r\\n Unidad de obra\\r\\n \\r\\n Cantidad unidad de obra\\r\\n \\r\\n Precio U.\\r\\n \\r\\n Importe\\r\\n
{{ row.materail}} {{ row.unidadComercial}} {{ row.precioUC}} {{ row.cantidadComercial}} {{ row.unidadObra}} {{ row.cantidadUnidadObraTotal}} {{ row.pu}} {{ row.importe|currency:\\\"\\\":\\\"symbol\\\"}}
\\r\\n Total: {{ TotalMaterialesAmpliacion|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Costo de mano de obra de espacio\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Nombre tipo elemento\\r\\n \\r\\n Material\\r\\n \\r\\n Unidad de medida\\r\\n \\r\\n Volumen a ejecutar\\r\\n \\r\\n Precio U.\\r\\n \\r\\n Importe\\r\\n
{{ row.nombreTipoElemento}} {{ row.material}} {{ row.unidadMedida}} {{ row.volumenEjecutar}} {{ row.pu}} {{ row.importe|currency:\\\"\\\":\\\"symbol\\\"}}
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n * Se estima en el presupuesto un 32% del subtotal de mano de obra para el pago de las cuotas del IMSS y del INFONAVIT. La responsabilidad de su pago le corresponde a la constructora o al acreditado.\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Presupuesto\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Nombre tipo elementoNombre del elementoUnidad de medidaCantidadTotal de mano de obraTotal de materialesPrecio U.Importe
{{ row.nombreTipoElemento}}{{ row.nombreElemento}} {{ row.unidadMedida}} {{ row.cantidad}} {{ row.totalManoObra}} {{ row.totalMateriales}} {{ row.pu}} \\r\\n \\r\\n {{row.subtotal|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n \\r\\n\\r\\n
\\r\\n {{row.subtotal|currency:\\\"\\\":\\\"symbol\\\"}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n * \\r\\n \\r\\n \\r\\n Honorarios del {{getValorClavePU() * 100}}% para el asesor técnico por los trabajos de factibilidad, proyecto y asesoría en la ejecución de los trabajos.\\r\\n \\r\\n \\r\\n Son los gastos técnicos y administrativos de la constructora y pueden ser diferentes en las empresas, en este simulador representa el {{getValorClavePU() * 100}}% del valor de la obra.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Detalles

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{nombreElemento}}
\\r\\n {{descripcionAmplia}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
ConstruYO con Asistencia Técnica
\\r\\n Para construir una vivienda nueva o mejorar la que tienes contarás con el apoyo de un asesor técnico registrado en el INFONAVIT.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
ConstruYO con Constructora
\\r\\n Para construir una vivienda o mejorar la que tienes contarás con el apoyo de una constructora registrada en el INFONAVIT.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Acabados económicos
\\r\\n Se refieren aquellos que cumplen con criterios de calidad y son los más baratos.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Acabados medios
\\r\\n Se refieren al precio del acabado final; partiendo del más económico se considera un 20% más. Los materiales que se ven afectados por este posible incremento son, por ejemplo: losetas de piso, WC, lavabos, calentador, pintura, impermeabilizantes, ventanas, puertas, etc. Si elegiste hacer trabajos que no tienen estos materiales, no se verá afectado el costo.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Acabados altos
\\r\\n Se refieren al precio del acabado final; partiendo del más económico se considera un 30% más. Los materiales que se ven afectados por este posible incremento son, por ejemplo: losetas de piso, WC, lavabos, calentador, pintura, impermeabilizantes, ventanas, puertas, etc. Si elegiste hacer trabajos que no tienen estos materiales, no se verá afectado el costo.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Más información

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
ConstruYO Reparaciones Menores
\\r\\n Para realizar mejoras menores que no afectan la estructura de tu vivienda como cambiar ventanas, pisos, pintar, impermeabilizar, cambiar muebles de baño, etc.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
ConstruYO con Asistencia Técnica o Constructora
\\r\\n Para construir o mejorar tu vivienda con afectaciones estructurales.\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\nSimulador de autoproducción del RUV - Elementos y espacios\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","export default \"/*@media (max-width: 767px) {*/\\r\\n /* On small screens, the nav menu spans the full width of the screen. Leave a space for it. */\\r\\n /*.body-content {\\r\\n padding-top: 50px;\\r\\n }\\r\\n}*/\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCO0lBQzFCLDZGQUE2RjtJQUM3Rjs7O0VBR0YiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7Ki9cclxuICAgIC8qIE9uIHNtYWxsIHNjcmVlbnMsIHRoZSBuYXYgbWVudSBzcGFucyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgc2NyZWVuLiBMZWF2ZSBhIHNwYWNlIGZvciBpdC4gKi9cclxuICAgIC8qLmJvZHktY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDUwcHg7XHJcbiAgICB9XHJcbn0qLyJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n constructor(private _router: Router) { }\r\n\r\n ngOnInit() {\r\n //this._router.navigate(['PortadaSimulador'], { queryParams: {avisar: '1'}});\r\n this._router.navigate(['PortadaInicioComponent'], { queryParams: {avisar: '1'}});\r\n }\r\n\r\n}\r\n","import { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CardModule } from 'primeng/card';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { AppComponent } from './app.component';\r\nimport { SimuladorService } from './datos/simulador.service';\r\nimport { ServicioIndicadorCarga } from './libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { ServicioAlertas } from './libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { AbiertoComponent } from './pages/abierto/abierto.component';\r\nimport { AdministradorComponent } from './pages/administrador/administrador.component';\r\nimport { CatalogoElementosComponent } from './pages/catalogo-elementos/catalogo-elementos.component';\r\nimport { CatalogoEspaciosComponent } from './pages/catalogo-espacios/catalogo-espacios.component';\r\nimport { CatalogoManoObraComponent } from './pages/catalogo-mano-obra/catalogo-mano-obra.component';\r\nimport { CatalogoMaterialesComponent } from './pages/catalogo-materiales/catalogo-materiales.component';\r\nimport { CatalogoPrototiposComponent } from './pages/catalogo-prototipos/catalogo-prototipos.component';\r\nimport { ExampleComponent } from './pages/example/example.component';\r\nimport { LoginComponent } from './pages/login/login.component';\r\nimport { MenuComponent } from './pages/menu/menu.component';\r\nimport { PortadaSimuladorAdminComponent } from './pages/portada-simulador-admin/portada-simulador-admin.component';\r\nimport { PortadaSimuladorComponent } from './pages/portada-simulador/portada-simulador.component';\r\nimport { SimuladorComponent } from './pages/simulador/simulador.component';\r\nimport { SimuladorPrototiposComponent } from './pages/simulador-prototipos/simulador-prototipos.component';\r\nimport { PortadaInicioComponent } from './pages/portada-inicio/portada-inicio.component';\r\n\r\nconst appRoutes: Routes = [\r\n { path: '', component: AppComponent, pathMatch: 'full' },\r\n { path: 'PortadaSimulador', component: PortadaSimuladorComponent },\r\n { path: 'Login', component: LoginComponent },\r\n { path: 'PortadaSimuladorAdmin', component: PortadaSimuladorAdminComponent },\r\n { path: 'Simulador', component: SimuladorComponent },\r\n { path: 'CatalogoManoObra', component: CatalogoManoObraComponent },\r\n { path: 'CatalogoMateriales', component: CatalogoMaterialesComponent },\r\n { path: 'CatalogoElementos', component: CatalogoElementosComponent },\r\n { path: 'CatalogoEspacios', component: CatalogoEspaciosComponent },\r\n { path: 'CatalogoPrototipos', component: CatalogoPrototiposComponent },\r\n { path: 'SimuladorPrototipos', component: SimuladorPrototiposComponent },\r\n { path: 'PortadaInicioComponent', component: PortadaInicioComponent },\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n , AbiertoComponent\r\n , AdministradorComponent\r\n , LoginComponent\r\n , ExampleComponent\r\n , CatalogoManoObraComponent\r\n , SimuladorComponent\r\n , PortadaSimuladorComponent\r\n , CatalogoMaterialesComponent\r\n , CatalogoElementosComponent\r\n , MenuComponent\r\n , PortadaSimuladorAdminComponent\r\n , CatalogoEspaciosComponent\r\n , CatalogoPrototiposComponent\r\n , SimuladorPrototiposComponent\r\n , PortadaInicioComponent\r\n ],\r\n imports: [\r\n BrowserModule\r\n , BrowserAnimationsModule\r\n , FormsModule\r\n , RouterModule.forRoot(appRoutes, { enableTracing: false })\r\n , TableModule\r\n , HttpClientModule\r\n , InputTextModule\r\n , DialogModule\r\n , ButtonModule\r\n , CardModule\r\n , FileUploadModule\r\n , TabMenuModule\r\n , DropdownModule\r\n , TabViewModule\r\n , ProgressSpinnerModule\r\n , GalleriaModule\r\n , TableModule\r\n , InputSwitchModule\r\n , ConfirmDialogModule\r\n ],\r\n providers: [\r\n ServicioIndicadorCarga\r\n , ServicioAlertas\r\n , SimuladorService\r\n , MessageService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ServicioDatosBase } from '../libs/ruvpp-angular2-comun/ServicioDatosBase';\r\nimport { JsonResponse } from '../modelo';\r\nimport { Car, CatalogoManoObraDTO, DatosElementoDTO, ElementosDTO, InputActualizarEstatusDocumento, InputActualizarEstatusEspacio, InputActualizarEstatusPrototipo, InputAgregarEspacio, InputAgregarManoObra, InputAgregarPrototipo, InputConsultaUsuario, InputObtenerCatalogoManoObra, InputObtenerCostoManoObra, InputObtenerCostoPrecioUnitarioMateriales, InputObtenerCostoTotalManoObraXElemento, InputObtenerCostoTotalMaterialesXElemento, InputObtenerElementos_Pages, InputObtenerEspacioDetalle, InputObtenerEspacio_Pages, InputObtenerMaterial_Pages, InputObtenerPrototipoDetalle, InputObtenerPrototipo_Pages, InputObtenerReporte, MaterialDTO, OutputActualizarEstatusDocumento, OutputActualizarEstatusEspacio, OutputActualizarEstatusPrototipo, OutputAgregarEspacio, OutputAgregarPrototipo, OutputConsultaUsuario, OutputObtenerCostoManoObra, OutputObtenerCostoPrecioUnitarioMateriales, OutputObtenerCostoTotalManoObraXElemento, OutputObtenerCostoTotalMaterialesXElemento, OutputObtenerEspacioDetalle, OutputObtenerEspacio_Pages, OutputObtenerPrototipoDetalle, OutputObtenerPrototipo_Pages, Usuario, InputObtenerCostoExcelExplosionTotalMateriales, OutputObtenerCostoExcelExplosionTotalMateriales, InputObtenerCostoExcelExplosionXConcepto, OutputObtenerCostoExcelExplosionXConcepto, InputObtenerCostoExcelTotalManoObra, OutputObtenerCostoExcelTotalManoObra, InputObtenerCostoTotalExcelPresupuestoPrototipo, OutputObtenerCostoTotalExcelPresupuestoPrototipo, InputObtenerCostoTotalExcelPrototipo, OutputObtenerCostoTotalExcelPrototipo, InputObtenerReportePrototipo, InputObtenerAmpliacionxConceptoIntegrado, OutputObtenerAmpliacionxConceptoIntegrado, InputObtenerCostoTotalExcelAmpliacion, OutputObtenerCostoTotalExcelAmpliacion, InputObtenerCostoExcelTotalMaterialesAmpliacion, OutputObtenerCostoExcelTotalMaterialesAmpliacion, InputObtenerCostoExcelTotalManoObraAmpliacion, OutputObtenerCostoExcelTotalManoObraAmpliacion, InputObtenerCostoTotalExcelPresupuestoElemento, OutputObtenerCostoTotalExcelPresupuestoElemento, InputObtenerDocuemntosXPrototipo, DocuemntosXPrototipoDTO, InputObtenerCostoTotalExcelPresupuestoAmpliacion, OutputObtenerCostoTotalExcelPresupuestoAmpliacion, InputObtenerDocumentosXAmpliacion, OutputObtenerDocumentosXAmpliacion, InputObtenerAmpliacionModelo, OutputObtenerAmpliacionModelo } from '../modelo/interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SimuladorService extends ServicioDatosBase {\r\n\r\n private urlBase: string = environment.urlBase;\r\n private controller: string = 'externo/api/autentificacion';\r\n private headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json' });\r\n\r\n private urls = {\r\n ObtenerUsuario: `${this.urlBase}/${this.controller}/ObtenerUsuario`\r\n , Exportar_PDF: `${this.urlBase}/${this.controller}/Exportar-PDF`\r\n , AgregarDocumento: `${this.urlBase}/externo/api/fileUpload/add`\r\n , ObtenerElementos: `${this.urlBase}/externo/api/simulador/ObtenerElementos`\r\n\r\n , AgregarEspacio: `${this.urlBase}/externo/api/simulador/AgregarEspacio`\r\n , ObtenerEspacioPages: `${this.urlBase}/externo/api/simulador/ObtenerEspacioPages`\r\n , ObtenerEspacioDetalle: `${this.urlBase}/externo/api/simulador/ObtenerEspacioDetalle`\r\n , ActualizarEstatusEspacio: `${this.urlBase}/externo/api/simulador/ActualizarEstatusEspacio`\r\n\r\n , AgregarPrototipo: `${this.urlBase}/externo/api/simulador/AgregarPrototipo`\r\n , ObtenerPrototipoPages: `${this.urlBase}/externo/api/simulador/ObtenerPrototipoPages`\r\n , ObtenerPrototipoDetalle: `${this.urlBase}/externo/api/simulador/ObtenerPrototipoDetalle`\r\n , ObtenerDocuemntosXPrototipo: `${this.urlBase}/externo/api/simulador/ObtenerDocuemntosXPrototipo`\r\n , ActualizarEstatusPrototipo: `${this.urlBase}/externo/api/simulador/ActualizarEstatusPrototipo`\r\n , ActualizarEstatusDocumento: `${this.urlBase}/externo/api/simulador/ActualizarEstatusDocumento`\r\n\r\n , ObtenerManoObraPages: `${this.urlBase}/externo/api/simulador/ObtenerManoObraPages`\r\n , AgregarManoObra: `${this.urlBase}/externo/api/simulador/AgregarManoObra`\r\n\r\n , ObtenerElementosPages: `${this.urlBase}/externo/api/simulador/ObtenerElementosPages`\r\n\r\n , ObtenerMaterialPages: `${this.urlBase}/externo/api/simulador/ObtenerMaterialPages`\r\n\r\n , ObtenerCostoManoObra: `${this.urlBase}/externo/api/simulador/ObtenerCostoManoObra`\r\n , ObtenerCostoPrecioUnitarioMateriales: `${this.urlBase}/externo/api/simulador/ObtenerCostoPrecioUnitarioMateriales`\r\n , ObtenerCostoTotalManoObraXElemento: `${this.urlBase}/externo/api/simulador/ObtenerCostoTotalManoObraXElemento`\r\n , ObtenerCostoTotalMaterialesXElemento: `${this.urlBase}/externo/api/simulador/ObtenerCostoTotalMaterialesXElemento`\r\n\r\n , ObtenerCostoExcelExplosionTotalMateriales: `${this.urlBase}/externo/api/simulador/ObtenerCostoExcelExplosionTotalMateriales`\r\n , ObtenerCostoExcelExplosionXConcepto: `${this.urlBase}/externo/api/simulador/ObtenerCostoExcelExplosionXConcepto`\r\n , ObtenerCostoExcelTotalManoObra: `${this.urlBase}/externo/api/simulador/ObtenerCostoExcelTotalManoObra`\r\n , ObtenerCostoTotalExcelPresupuestoPrototipo: `${this.urlBase}/externo/api/simulador/ObtenerCostoTotalExcelPresupuestoPrototipo`\r\n , ObtenerCostoTotalExcelPrototipo: `${this.urlBase}/externo/api/simulador/ObtenerCostoTotalExcelPrototipo`\r\n , ObtenerCostoTotalExcelPresupuestoElemento: `${this.urlBase}/externo/api/simulador/ObtenerCostoTotalExcelPresupuestoElemento`\r\n\r\n , ObtenerReporte: `${this.urlBase}/externo/api/simulador/ObtenerReporte`\r\n , ObtenerReportePrototipo: `${this.urlBase}/externo/api/simulador/ObtenerReportePrototipo`\r\n\r\n , ObtenerAmpliacionxConceptoIntegrado: `${this.urlBase}/externo/api/simulador/ObtenerAmpliacionxConceptoIntegrado`\r\n , ObtenerCostoTotalExcelAmpliacion: `${this.urlBase}/externo/api/simulador/ObtenerCostoTotalExcelAmpliacion`\r\n , ObtenerCostoExcelTotalManoObraAmpliacion: `${this.urlBase}/externo/api/simulador/ObtenerCostoExcelTotalManoObraAmpliacion`\r\n , ObtenerCostoExcelTotalMaterialesAmpliacion: `${this.urlBase}/externo/api/simulador/ObtenerCostoExcelTotalMaterialesAmpliacion`\r\n , ObtenerCostoTotalExcelPresupuestoAmpliacion: `${this.urlBase}/externo/api/simulador/ObtenerCostoTotalExcelPresupuestoAmpliacion`\r\n , ObtenerAmpliacionModelo: `${this.urlBase}/externo/api/simulador/ObtenerAmpliacionModelo`\r\n , ObtenerDocumentosXAmpliacion: `${this.urlBase}/externo/api/simulador/ObtenerDocumentosXAmpliacion`\r\n\r\n };\r\n\r\n /**\r\n * \r\n * @param http\r\n */\r\n constructor(http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public Autentificacion(entity: Usuario) {\r\n\r\n let obj: InputConsultaUsuario = { id_usuario: entity.user, contrasenia: entity.password };\r\n\r\n return this.post>(this.urls.ObtenerUsuario, JSON.stringify(obj), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public Exportar_PDF(entity: Usuario) {\r\n return this.post>(this.urls.Exportar_PDF, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n */\r\n public ObtenerElementos() {\r\n return this.post>(this.urls.ObtenerElementos, JSON.stringify(\"\"), { headers: this.headers });\r\n }\r\n\r\n ///**\r\n // * \r\n // * @param listElementos\r\n // */\r\n //public ObtenerCostoManoObra(listElementos: number[]) {\r\n // return this.post>>(this.urls.ObtenerCostoManoObra, JSON.stringify(listElementos), { headers: this.headers });\r\n //}\r\n\r\n ///**\r\n // * \r\n // * @param listElementos\r\n // */\r\n //public ObtenerPrecioUnitario(listElementos: number[]) {\r\n\r\n // return this.post>>(this.urls.ObtenerPrecioUnitario, JSON.stringify(listElementos), { headers: this.headers });\r\n //}\r\n\r\n ///**\r\n // * \r\n // * @param entity\r\n // */\r\n //public ObtenerPrecioUnitarioEspacio(entity: InputObtenerPrecioUnitarioEspacio) {\r\n\r\n // return this.post>>(this.urls.ObtenerPrecioUnitarioEspacio, JSON.stringify(entity), { headers: this.headers });\r\n //}\r\n\r\n ///**\r\n // * \r\n // * @param entity\r\n // */\r\n //public ObtenerTotalManoObra(entity: InputObtenerTotalManoObra) {\r\n\r\n // return this.post>>(this.urls.ObtenerTotalManoObra, JSON.stringify(entity), { headers: this.headers });\r\n //}\r\n\r\n ///**\r\n // * \r\n // * @param entity\r\n // */\r\n //public ObtenerTotalManoObraXElemento(entity: InputObtenerTotalManoObraXElemento) {\r\n\r\n // return this.post>>(this.urls.ObtenerTotalManoObraXElemento, JSON.stringify(entity), { headers: this.headers });\r\n //}\r\n\r\n ///**\r\n // * \r\n // * @param entity\r\n // */\r\n //public ObtenerTotalMateriales(entity: InputObtenerTotalMateriales) {\r\n\r\n // return this.post>>(this.urls.ObtenerTotalMateriales, JSON.stringify(entity), { headers: this.headers });\r\n //}\r\n\r\n ///**\r\n // * \r\n // * @param entity\r\n // */\r\n //public ObtenerTotalMaterialesXElemento(entity: InputObtenerTotalMaterialesXElemento) {\r\n\r\n // return this.post>>(this.urls.ObtenerTotalMaterialesXElemento, JSON.stringify(entity), { headers: this.headers });\r\n //}\r\n\r\n //*************************************************************************************************************************************************************************\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public AgregarEspacio(entity: InputAgregarEspacio) {\r\n\r\n return this.post>(this.urls.AgregarEspacio, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n public ObtenerEspacioPages(entity: InputObtenerEspacio_Pages) {\r\n return this.post>(this.urls.ObtenerEspacioPages, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerEspacioDetalle(entity: InputObtenerEspacioDetalle) {\r\n\r\n return this.post>(this.urls.ObtenerEspacioDetalle, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ActualizarEstatusEspacio(entity: InputActualizarEstatusEspacio) {\r\n\r\n return this.post>(this.urls.ActualizarEstatusEspacio, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n\r\n //*************************************************************************************************************************************************************************\r\n\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public AgregarPrototipo(entity: InputAgregarPrototipo) {\r\n\r\n return this.post>(this.urls.AgregarPrototipo, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerPrototipoPages(entity: InputObtenerPrototipo_Pages) {\r\n return this.post>(this.urls.ObtenerPrototipoPages, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerPrototipoDetalle(entity: InputObtenerPrototipoDetalle) {\r\n\r\n return this.post>(this.urls.ObtenerPrototipoDetalle, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerDocuemntosXPrototipo(entity: InputObtenerDocuemntosXPrototipo) {\r\n\r\n return this.post>(this.urls.ObtenerDocuemntosXPrototipo, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ActualizarEstatusPrototipo(entity: InputActualizarEstatusPrototipo) {\r\n\r\n return this.post>(this.urls.ActualizarEstatusPrototipo, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ActualizarEstatusDocumento(entity: InputActualizarEstatusDocumento) {\r\n\r\n return this.post>(this.urls.ActualizarEstatusDocumento, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerManoObraPages(entity: InputObtenerCatalogoManoObra) {\r\n\r\n return this.post>(this.urls.ObtenerManoObraPages, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public AgregarManoObra(entity: InputAgregarManoObra) {\r\n\r\n return this.post>(this.urls.AgregarManoObra, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerElementosPages(entity: InputObtenerElementos_Pages) {\r\n\r\n return this.post>(this.urls.ObtenerElementosPages, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerMaterialPages(entity: InputObtenerMaterial_Pages) {\r\n\r\n return this.post>(this.urls.ObtenerMaterialPages, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoManoObra(entity: InputObtenerCostoManoObra) {\r\n\r\n return this.post>(this.urls.ObtenerCostoManoObra, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoPrecioUnitarioMateriales(entity: InputObtenerCostoPrecioUnitarioMateriales) {\r\n\r\n return this.post>(this.urls.ObtenerCostoPrecioUnitarioMateriales, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoTotalManoObraXElemento(entity: InputObtenerCostoTotalManoObraXElemento) {\r\n\r\n return this.post[]>(this.urls.ObtenerCostoTotalManoObraXElemento, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoTotalMaterialesXElemento(entity: InputObtenerCostoTotalMaterialesXElemento) {\r\n\r\n return this.post>(this.urls.ObtenerCostoTotalMaterialesXElemento, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoExcelExplosionTotalMateriales(entity: InputObtenerCostoExcelExplosionTotalMateriales) {\r\n\r\n return this.post>(this.urls.ObtenerCostoExcelExplosionTotalMateriales, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoExcelExplosionXConcepto(entity: InputObtenerCostoExcelExplosionXConcepto) {\r\n\r\n return this.post>(this.urls.ObtenerCostoExcelExplosionXConcepto, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoExcelTotalManoObra(entity: InputObtenerCostoExcelTotalManoObra) {\r\n\r\n return this.post>(this.urls.ObtenerCostoExcelTotalManoObra, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoTotalExcelPresupuestoPrototipo(entity: InputObtenerCostoTotalExcelPresupuestoPrototipo) {\r\n\r\n return this.post>(this.urls.ObtenerCostoTotalExcelPresupuestoPrototipo, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoTotalExcelPrototipo(entity: InputObtenerCostoTotalExcelPrototipo) {\r\n\r\n return this.post>(this.urls.ObtenerCostoTotalExcelPrototipo, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoTotalExcelPresupuestoElemento(entity: InputObtenerCostoTotalExcelPresupuestoElemento) {\r\n\r\n return this.post>(this.urls.ObtenerCostoTotalExcelPresupuestoElemento, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerReporte(entity: InputObtenerReporte) {\r\n\r\n return this.post>(this.urls.ObtenerReporte, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerReportePrototipo(entity: InputObtenerReportePrototipo) {\r\n\r\n return this.post>(this.urls.ObtenerReportePrototipo, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerAmpliacionxConceptoIntegrado(entity: InputObtenerAmpliacionxConceptoIntegrado) {\r\n\r\n return this.post>(this.urls.ObtenerAmpliacionxConceptoIntegrado, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoTotalExcelAmpliacion(entity: InputObtenerCostoTotalExcelAmpliacion) {\r\n\r\n return this.post>(this.urls.ObtenerCostoTotalExcelAmpliacion, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoExcelTotalMaterialesAmpliacion(entity: InputObtenerCostoExcelTotalMaterialesAmpliacion) {\r\n\r\n return this.post>(this.urls.ObtenerCostoExcelTotalMaterialesAmpliacion, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoTotalExcelPresupuestoAmpliacion(entity: InputObtenerCostoTotalExcelPresupuestoAmpliacion) {\r\n\r\n return this.post>(this.urls.ObtenerCostoTotalExcelPresupuestoAmpliacion, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerCostoExcelTotalManoObraAmpliacion(entity: InputObtenerCostoExcelTotalManoObraAmpliacion) {\r\n\r\n return this.post>(this.urls.ObtenerCostoExcelTotalManoObraAmpliacion, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerAmpliacionModelo(entity: InputObtenerAmpliacionModelo) {\r\n\r\n return this.post>(this.urls.ObtenerAmpliacionModelo, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public ObtenerDocumentosXAmpliacion(entity: InputObtenerDocumentosXAmpliacion) {\r\n\r\n return this.post>(this.urls.ObtenerDocumentosXAmpliacion, JSON.stringify(entity), { headers: this.headers });\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param event\r\n * @param params\r\n */\r\n public AgregarDocumento(event, params) {\r\n\r\n console.log('uploadFiles -->> event -->> ', event + ' params -->> ', params);\r\n\r\n var formData: FormData = new FormData();\r\n\r\n if (params != null) {\r\n formData.append('json', JSON.stringify(params));\r\n }\r\n\r\n let cont = 1;\r\n\r\n for (let file of event.files) {\r\n\r\n formData.append(file.name, file);\r\n\r\n console.log('File [' + (cont) + '] -->> ', file);\r\n\r\n cont++;\r\n\r\n }\r\n\r\n return this.postFile>(this.urls.AgregarDocumento, formData);\r\n }\r\n\r\n //*************************************************************************************************************************************************************************\r\n\r\n\r\n /**\r\n * */\r\n public getCarsSmall() {\r\n return this.http.get('assets/data/cars-small.json')\r\n .toPromise()\r\n .then(res => res.data)\r\n .then(data => data);\r\n }\r\n}\r\n","/**\r\n * \r\n */\r\nexport class FormValidation {\r\n\r\n public static RFC_FISICO = /^([A-ZÑ]{4}|[A-Z][AEIOU][A-Z]{2})\\d{2}((01|03|05|07|08|10|12)(0[1-9]|[12]\\d|3[01])|02(0[1-9]|[12]\\d)|(04|06|09|11)(0[1-9]|[12]\\d|30))([A-Z0-9]{3})$/i;\r\n public static RFC_MORAL = /^([A-Z&Ñ]{3})\\d{2}((01|03|05|07|08|10|12)(0[1-9]|[12]\\d|3[01])|02(0[1-9]|[12]\\d)|(04|06|09|11)(0[1-9]|[12]\\d|30))([A-Z0-9]{3})$/i;\r\n public static CURP = /^[A-ZÑ][A,E,I,O,U,X][A-ZÑ]{2}[0-9]{2}[0-1][0-9][0-3][0-9][M,H][A-Z]{2}[B,C,D,F,G,H,J,K,L,M,N,Ñ,P,Q,R,S,T,V,W,X,Y,Z]{3}[0-9,A-Z][0-9]$/i;\r\n public static EMAIL = /^[a-zA-Z0-9.!#$%&' * +/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9]{1}(?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/i;\r\n public static EMPLOYER_REGISTRATION_NUMBER = /^([A-Za-z]{1}[0-9]{10})$/i;\r\n public static NUMERICO = /^[0-9]+$/i;\r\n public static DECIMAL = /^-?[0-9]+([,\\.][0-9]*)?$/i;\r\n\r\n private valor: string;\r\n public error: boolean;\r\n public mensaje: string;\r\n\r\n constructor(valor: any) {\r\n\r\n this.error = false;\r\n\r\n if (valor != null) {\r\n this.valor = String(valor);\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public requered(message: string): FormValidation {\r\n\r\n if ((this.valor == null || this.valor.toString().trim().length == 0)) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public physicalRFC(message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let result = FormValidation.RFC_FISICO.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public moralRFC(message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let result = FormValidation.RFC_MORAL.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public curp(message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let result = FormValidation.CURP.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public emailAddress(message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let result = FormValidation.EMAIL.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public employerRegistrationNumber(message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let result = FormValidation.EMPLOYER_REGISTRATION_NUMBER.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param min\r\n * @param max\r\n * @param message\r\n */\r\n public stringLength(min: number, max: number, message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n if ((this.valor.trim().length < min) && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n\r\n if ((this.valor.trim().length > max) && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param regexp\r\n * @param message\r\n */\r\n public regexp(regexp: RegExp, message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let result = regexp.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public integer(message: string): FormValidation {\r\n\r\n console.log('integer -->> ')\r\n\r\n if (this.valor != null && this.valor.toString().trim().length > 0) {\r\n\r\n let result = FormValidation.NUMERICO.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param message\r\n */\r\n public decimal(message: string): FormValidation {\r\n\r\n console.log('decimal -->> ')\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let result = FormValidation.DECIMAL.test(this.valor);\r\n\r\n if (!result && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param min\r\n * @param max\r\n * @param message\r\n */\r\n public between(min: number, max: number, message: string): FormValidation {\r\n\r\n if (this.valor != null && this.valor.trim().length > 0) {\r\n\r\n let value: number = Number(this.valor);\r\n\r\n if (!(value >= min && value <= max) && !this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n\r\n } else {\r\n if (!this.error) {\r\n this.error = true;\r\n this.mensaje = message;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n}","import { Router } from '@angular/router';\r\n\r\nexport class HttpSession {\r\n\r\n /**\r\n * \r\n */\r\n constructor() {\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param key\r\n * @param object\r\n */\r\n public static setAttribute(key: string, object: any) {\r\n sessionStorage.setItem(key, JSON.stringify(object));\r\n }\r\n\r\n /**\r\n * \r\n * @param key\r\n */\r\n public static getAttribute(key: string): any {\r\n return JSON.parse(sessionStorage.getItem(key));\r\n }\r\n\r\n /**\r\n * \r\n * @param key\r\n */\r\n public static removeAttribute(key: string) {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static clear() {\r\n sessionStorage.clear();\r\n }\r\n\r\n /**\r\n * \r\n * @param router\r\n * @param path\r\n */\r\n public static forward(router: Router, path: string): void {\r\n router.navigate(['/' + path]);\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServicioAlertas {\r\n\r\n /**\r\n * Muestra una alerta al usuario.\r\n * @param titulo Título de la altera.\r\n * @param mensaje Mensaje del mensaje.\r\n * @param tipo Tipo de alerta.\r\n */\r\n public mostrar(titulo: string, mensaje: string = null, tipo: 'warning' | 'error' | 'success' | 'info' | 'question' = null) {\r\n\r\n let resultado: any; //Promise;\r\n\r\n if (mensaje !== undefined && tipo !== undefined)\r\n resultado = Swal.fire(titulo, mensaje, tipo);\r\n else if (mensaje !== undefined)\r\n resultado = Swal.fire(titulo, mensaje);\r\n else\r\n resultado = Swal.fire(titulo);\r\n\r\n return resultado;\r\n }\r\n\r\n /**\r\n * Muestra una alerta al usuario.\r\n * @param opciones Opciones de la alerta.\r\n */\r\n public mostrarConOpciones(opciones: any) {\r\n return Swal.fire(opciones);\r\n }\r\n\r\n /**\r\n * Se agrega método para poder leer inputs en sweetalert\r\n * @param opciones Opciones de la alerta.\r\n */\r\n public mostrarConOpcionesInput(opciones: any) {\r\n return Swal.fire(opciones); //true\r\n }\r\n}","import { HttpClient, HttpParams, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * Clase base para los Servicios de datos.\r\n */\r\nexport abstract class ServicioDatosBase {\r\n\r\n constructor(protected http: HttpClient) {\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param url \r\n * @param parametros \r\n */\r\n public get(url: string, parametros: any) {\r\n\r\n console.log('url -->> ', url);\r\n console.log('parametros -->> ', parametros);\r\n\r\n return this.http.get(url, { params: parametros });\r\n }\r\n\r\n /**\r\n * \r\n * @param url \r\n * @param parametros \r\n */\r\n public post(url: string, parametros: any, httpHeaders: any): Observable {\r\n\r\n console.log('url -->> ', url);\r\n console.log('parametros -->> ', parametros);\r\n\r\n return this.http.post(url, parametros, httpHeaders);\r\n }\r\n\r\n /**\r\n * \r\n * @param url\r\n * @param parametros\r\n * @param httpHeaders\r\n */\r\n public postFile(url: string, formData: FormData) {\r\n\r\n console.log('url -->> ', url);\r\n \r\n let headers = new HttpHeaders();\r\n\r\n headers.append('Content-Type', 'multipart/form-data');\r\n\r\n headers.append('Accept', 'application/json');\r\n\r\n return this.http.post(url, formData, { headers: headers });\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param parametros \r\n * @param nombreParametro \r\n * @param valorParametro \r\n */\r\n protected addParameter(parametros: HttpParams, nombreParametro: string, valorParametro: any): HttpParams {\r\n\r\n if (parametros != undefined && nombreParametro != undefined) {\r\n\r\n let value = valorParametro;\r\n\r\n if (valorParametro == undefined) {\r\n value = '';\r\n }\r\n\r\n parametros = parametros.set(nombreParametro, value);\r\n }\r\n\r\n return parametros;\r\n\r\n }\r\n\r\n}\r\n","export * from './estatusIndicadorCarga';\r\nexport * from './indicador-carga.componente';\r\nexport * from './indicador-carga.servicio';","export default \"/* Loading\\r\\n ========================================================================== */\\r\\n\\r\\n.Fakeloader-loading {\\r\\n position: relative;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.Loading {\\r\\n position: absolute;\\r\\n height: 100%;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.Loading .Fakeloader {\\r\\nheight: 100%;\\r\\nbackground: #fff;\\r\\n}\\r\\n\\r\\n.Fakeloader {\\r\\n position: fixed;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n top: 0;\\r\\n left: 0;\\r\\n z-index: 105;\\r\\n}\\r\\n\\r\\n.Fakeloader_fullscreen {\\r\\n position: fixed;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n top: 0;\\r\\n left: 0;\\r\\n z-index: 1500 !important;\\r\\n}\\r\\n\\r\\n.Fakeloader.fakeloader {\\r\\n position: absolute !important;\\r\\n background-color: #FFFFFF;\\r\\n}\\r\\n\\r\\n.Fakeloader .spinner3 {\\r\\n left: 48% !important;\\r\\n top: 50% !important;\\r\\n margin-top: -20px;\\r\\n}\\r\\n\\r\\n.Fakeloader .container1 > div, .Fakeloader .container2 > div, .Fakeloader .container3 > div {\\r\\n background: #7AC243 !important;\\r\\n}\\r\\n\\r\\n.Fakeloader .dot1 {\\r\\n background: linear-gradient(to left, #7AC243, #7AC243, #009CDC 100%) !important;\\r\\n}\\r\\n\\r\\n.dot2 {\\r\\n background: linear-gradient(to left, #7AC243, #7AC243, #009CDC 100%) !important;\\r\\n}\\r\\n\\r\\n.Fakeloader-text {\\r\\n top: 48% !important;\\r\\n margin-top: 80px;\\r\\n position: absolute;\\r\\n font-size: 16px;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.Fakeloader-text-dos {\\r\\n top: 48% !important;\\r\\n margin-top: 80px;\\r\\n position: absolute;\\r\\n font-size: 16px;\\r\\n width: 100%;\\r\\n /*text-align: center;*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbGlicy9ydXZwcC1hbmd1bGFyMi1jb211bi9pbmRpY2Fkb3ItY2FyZ2EvaW5kaWNhZG9yLWNhcmdhLmNvbXBvbmVudGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOytFQUMrRTs7QUFFL0U7SUFDSSxrQkFBa0I7SUFDbEIsWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0FBQ2Y7O0FBRUE7QUFDQSxZQUFZO0FBQ1osZ0JBQWdCO0FBQ2hCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFlBQVk7SUFDWixXQUFXO0lBQ1gsTUFBTTtJQUNOLE9BQU87SUFDUCxZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFlBQVk7SUFDWixXQUFXO0lBQ1gsTUFBTTtJQUNOLE9BQU87SUFDUCx3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSw4QkFBOEI7QUFDbEM7O0FBRUE7SUFFSSwrRUFBK0U7QUFDbkY7O0FBRUE7SUFFSSwrRUFBK0U7QUFDbkY7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsV0FBVztJQUNYLGtCQUFrQjtBQUN0Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixXQUFXO0VBQ1gsc0JBQXNCO0FBQ3hCIiwiZmlsZSI6InNyYy9hcHAvbGlicy9ydXZwcC1hbmd1bGFyMi1jb211bi9pbmRpY2Fkb3ItY2FyZ2EvaW5kaWNhZG9yLWNhcmdhLmNvbXBvbmVudGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogTG9hZGluZ1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLkZha2Vsb2FkZXItbG9hZGluZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5Mb2FkaW5nIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLkxvYWRpbmcgLkZha2Vsb2FkZXIge1xyXG5oZWlnaHQ6IDEwMCU7XHJcbmJhY2tncm91bmQ6ICNmZmY7XHJcbn1cclxuXHJcbi5GYWtlbG9hZGVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IDEwNTtcclxufVxyXG5cclxuLkZha2Vsb2FkZXJfZnVsbHNjcmVlbiB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAxNTAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5GYWtlbG9hZGVyLmZha2Vsb2FkZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG59XHJcblxyXG4uRmFrZWxvYWRlciAuc3Bpbm5lcjMge1xyXG4gICAgbGVmdDogNDglICFpbXBvcnRhbnQ7XHJcbiAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXRvcDogLTIwcHg7XHJcbn1cclxuXHJcbi5GYWtlbG9hZGVyIC5jb250YWluZXIxID4gZGl2LCAuRmFrZWxvYWRlciAuY29udGFpbmVyMiA+IGRpdiwgLkZha2Vsb2FkZXIgLmNvbnRhaW5lcjMgPiBkaXYge1xyXG4gICAgYmFja2dyb3VuZDogIzdBQzI0MyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uRmFrZWxvYWRlciAuZG90MSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyaWdodCwgIzdBQzI0MywgIzdBQzI0MywgIzAwOUNEQyAxMDAlKSAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICM3QUMyNDMsICM3QUMyNDMsICMwMDlDREMgMTAwJSkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmRvdDIge1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmlnaHQsICM3QUMyNDMsICM3QUMyNDMsICMwMDlDREMgMTAwJSkgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjN0FDMjQzLCAjN0FDMjQzLCAjMDA5Q0RDIDEwMCUpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5GYWtlbG9hZGVyLXRleHQge1xyXG4gICAgdG9wOiA0OCUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi10b3A6IDgwcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLkZha2Vsb2FkZXItdGV4dC1kb3Mge1xyXG4gIHRvcDogNDglICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXRvcDogODBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIC8qdGV4dC1hbGlnbjogY2VudGVyOyovXHJcbn1cclxuIl19 */\"","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Observable, Subject, Subscription } from 'rxjs';\r\nimport { EstatusIndicador } from './estatusIndicadorCarga';\r\nimport { ServicioIndicadorCarga } from './indicador-carga.servicio';\r\n\r\n/**\r\n * Componente que muestra un indicador de carga al usuario.\r\n */\r\n@Component({\r\n //moduleId: module.id,\r\n selector: 'ruv-indicador-carga',\r\n templateUrl: 'indicador-carga.componente.html',\r\n styleUrls: ['indicador-carga.componente.css']\r\n})\r\n\r\nexport class ComponenteIndicadorCarga implements OnDestroy, OnInit {\r\n\r\n //#region Propiedades\r\n\r\n /**\r\n * Información de despliegue y mensaje del loader.\r\n * @type {{esVisible: boolean, mensaje: string}}\r\n */\r\n public estatus: EstatusIndicador =\r\n {\r\n esVisible: false,\r\n mensaje: '',\r\n esFullScreen: false\r\n };\r\n\r\n //#endregion\r\n\r\n //#region Campos\r\n\r\n /**\r\n * Subscripción al cambio de estatus.\r\n */\r\n private subscripcionCambioEstatus: Subscription;\r\n\r\n //#endregion\r\n\r\n //#region Constructor\r\n\r\n /**\r\n * Contructor de la clase.\r\n * @param servicioLoader Servicio para mostrar indicadores de carga al usuario.\r\n */\r\n constructor(private servicioCargaIndicador: ServicioIndicadorCarga) { }\r\n\r\n //#endregion\r\n\r\n //#region Eventos del ciclo de vida\r\n\r\n /** @inheritdoc */\r\n ngOnInit() {\r\n this.subscripcionCambioEstatus = this.servicioCargaIndicador.onCambioEstatus\r\n .subscribe(nuevoEstatus => {\r\n this.estatus = nuevoEstatus;\r\n });\r\n }\r\n\r\n /** @inheritdoc */\r\n ngOnDestroy() {\r\n this.subscripcionCambioEstatus.unsubscribe();\r\n }\r\n\r\n //#endregion\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { EstatusIndicador } from './estatusIndicadorCarga';\r\n\r\n/**\r\n * Servicio que permite mostrar indicadores de carga al usuario.\r\n */\r\n@Injectable()\r\nexport class ServicioIndicadorCarga {\r\n //#region Propiedades\r\n \r\n /** Evento que emite elementos cuando se solicita una pantalla de carga. */\r\n public onCambioEstatus = new Subject();\r\n\r\n /** Propiedad que indica si la pantalla de carga de mostrara en modo full screen. */\r\n public esFullScreen: boolean = false;\r\n \r\n //#endregion\r\n \r\n //#region Metodos publicos\r\n\r\n /**\r\n * Muestra un indicadores de carga con o sin mensaje.\r\n * @param mensaje Mensaje a mostrar en el indicador de carga.\r\n */\r\n public mostrar(mensaje?: string) {\r\n this.onCambioEstatus.next({ esVisible: true, mensaje: mensaje, esFullScreen: this.esFullScreen });\r\n }\r\n\r\n /**\r\n * Oculta el indicador de carga.\r\n */\r\n public ocultar() {\r\n this.onCambioEstatus.next({ esVisible: false });\r\n }\r\n\r\n /**\r\n * Establece el modo del indicador de carga (Full screen o no).\r\n */\r\n public setFullScreen(esFullScreen: boolean) {\r\n\r\n this.esFullScreen = esFullScreen;\r\n }\r\n \r\n //#endregion\r\n}","export default \"#number {\\r\\n width: 3em;\\r\\n}\\r\\n\\r\\n:host ::ng-deep button {\\r\\n margin-right: .25em;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .ui-message,\\r\\n:host ::ng-deep .ui-inputtext {\\r\\n margin-right: .25em;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .custom-message,\\r\\n:host ::ng-deep img {\\r\\n align-self: center;\\r\\n font-size: 16px;\\r\\n margin-left: .5em;\\r\\n}\\r\\n\\r\\n:host ::ng-deep button {\\r\\n margin-right: .25em;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvYWJpZXJ0by9hYmllcnRvLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7O0lBRUksbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvYWJpZXJ0by9hYmllcnRvLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbnVtYmVyIHtcclxuICAgIHdpZHRoOiAzZW07XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCBidXR0b24ge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAuMjVlbTtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC51aS1tZXNzYWdlLFxyXG46aG9zdCA6Om5nLWRlZXAgLnVpLWlucHV0dGV4dCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC4yNWVtO1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLmN1c3RvbS1tZXNzYWdlLFxyXG46aG9zdCA6Om5nLWRlZXAgaW1nIHtcclxuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAuNWVtO1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgYnV0dG9uIHtcclxuICAgIG1hcmdpbi1yaWdodDogLjI1ZW07XHJcbn1cclxuXHJcbiJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Message, MessageService, SelectItemGroup } from 'primeng/api';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\nimport { SimuladorService } from './../../datos/simulador.service';\r\nimport { JsonResponse } from './../../libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from './../../libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, DocumentoDTO, ElementoDTO, EspacioDTO, EspacioForm, InputActualizarEstatusDocumento, InputActualizarEstatusEspacio, InputActualizarEstatusPrototipo, InputAgregarEspacio, InputAgregarPrototipo, InputObtenerEspacioDetalle, InputObtenerPrototipoDetalle, OutputAgregarEspacio, OutputAgregarPrototipo, OutputConsultaUsuario, OutputObtenerCostoManoObra, OutputObtenerElementos, OutputObtenerEspacioDetalle, OutputObtenerPrototipoDetalle, PrototipoDTO, PrototipoForm } from './../../modelo';\r\n\r\n@Component({\r\n selector: 'app-abierto',\r\n templateUrl: './abierto.component.html',\r\n styleUrls: ['./abierto.component.css',\r\n './styles.css']\r\n})\r\nexport class AbiertoComponent implements OnInit {\r\n\r\n public progressSpinner: boolean;\r\n\r\n public usuario: OutputConsultaUsuario;\r\n public idElemento: number | null;\r\n public idEspacio: number | null;\r\n public grupoElementos: SelectItemGroup[];\r\n public datosElemento: DatosElementoDTO;\r\n\r\n //public listPrecioUnitario: OutputObtenerPrecioUnitario[];\r\n //public listPrecioUnitarioEspacio: OutputObtenerPrecioUnitarioEspacio[];\r\n public listCostoManoObra: OutputObtenerCostoManoObra[];\r\n //public listTotalManoObra: OutputObtenerTotalManoObra[];\r\n //public listTotalMateriales: OutputObtenerTotalMateriales[];\r\n\r\n public grupoEspacios: SelectItemGroup[];\r\n public espacio: EspacioDTO;\r\n public prototipo: PrototipoDTO;\r\n\r\n //Simulador\r\n\r\n public simuladorForm: EspacioForm;\r\n\r\n //Espacio\r\n\r\n public espacioForm: EspacioForm;\r\n\r\n\r\n //Prototipo\r\n\r\n @ViewChild('fileUpload') fileUpload: any;\r\n public prototipoForm: PrototipoForm;\r\n public uploadedFiles: any[] = [];\r\n public msgs: Message[] = [];\r\n\r\n //Otros\r\n\r\n public tabPrincipal: number = 0;\r\n\r\n\r\n /**\r\n * \r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private messageService: MessageService, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n console.log('AbiertoComponent -->> ', new Date())\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.loading();\r\n\r\n this.initSimuladorForm();\r\n\r\n this.initEspacioForm()\r\n\r\n this.initPrototipoForm();\r\n\r\n this.usuario = HttpSession.getAttribute('USER');\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initSimuladorForm() {\r\n this.simuladorForm = { nombreEspacio_MensajeError: new FormValidation(null), tab: 0, listaElementos: [] };\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initEspacioForm() {\r\n this.espacioForm = { nombreEspacio_MensajeError: new FormValidation(null), tab: 0, listaElementos: [] };\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initPrototipoForm() {\r\n this.prototipoForm = {\r\n listEspacioSelect: []\r\n , nombrePrototipo_MensajeError: new FormValidation(null)\r\n , tab: 0\r\n , prototipoDetalle: { listDocumento: [], listEspacioxPrototipo: [] }\r\n , listPrototipos: []\r\n , espacioForm: { nombreEspacio_MensajeError: new FormValidation(null) }\r\n };\r\n\r\n\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n private loading(): void {\r\n\r\n this.service.ObtenerElementos().subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.datosElemento = resultado.model;\r\n\r\n this.grupoElementos = [];\r\n\r\n for (let tipoElemento of this.datosElemento.listTipoElementos) {\r\n\r\n let filter: any = this.datosElemento.listElementos.filter(row => row.idTipoElemento == tipoElemento.idTipoElemento);\r\n\r\n let items: any[] = [];\r\n\r\n for (let elemento of filter) {\r\n items.push({ label: elemento.nombreElemento, value: elemento.idElemento });\r\n }\r\n\r\n let dato: any = {\r\n label: tipoElemento.nombreTipoElemento,\r\n items: items\r\n };\r\n\r\n\r\n this.grupoElementos.push(dato);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n });\r\n\r\n this.ObtenerListaEspacio();\r\n this.ObtenerListaPrototipos();\r\n }\r\n\r\n\r\n public _addElemento(): ElementoDTO {\r\n\r\n let entity: OutputObtenerElementos = this.datosElemento.listElementos.filter(row => row.idElemento == this.idElemento)[0];\r\n\r\n let elemento: ElementoDTO = {\r\n idElemento: entity.idElemento,\r\n nombreElemento: entity.nombreElemento,\r\n clave: entity.clave,\r\n idTipoDatoEntrada: entity.idTipoDatoEntrada,\r\n idTipoElemento: entity.idTipoElemento,\r\n unidadMedida: entity.unidadMedida,\r\n nombreTipoDatoEntrada: entity.nombreTipoDatoEntrada,\r\n nombreTipoElemento: entity.nombreTipoElemento,\r\n idManoObra: entity.idManoObra,\r\n largo: 0,\r\n anchoCantidad: 0\r\n };\r\n\r\n if (elemento.idTipoDatoEntrada == 1) {\r\n elemento.largo = 1;\r\n }\r\n\r\n return elemento;\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n //public _addElemento(): ElementoXDTO {\r\n\r\n // let entity: OutputObtenerElementos = this.datosElemento.listElementos.filter(row => row.idElemento == this.idElemento)[0];\r\n\r\n // let elemento: ElementoXDTO = { elemento: entity, nombreElemento: entity.nombreElemento, listaMateriales: [] };\r\n\r\n // if (entity.idManoObra != null) {\r\n\r\n // elemento.listaMateriales = [];\r\n\r\n // let filter = this.datosElemento.listManoObraxMaterial.filter(row => row.idManoObra == entity.idManoObra);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n\r\n // for (let row of filter) {\r\n\r\n // let materiales: MaterialesDTO = {\r\n // idElementoEsp: null,\r\n // idMaterial: row.idMaterial,\r\n // nombreMaterial: row.nombreMaterial,\r\n // largoUnidadObra: row.largoUnidadObra,\r\n // cantidadUnidadObra: row.cantidadUnidadObra,\r\n // cantidadComercial: row.cantidadComercial,\r\n // largoComercial: row.largoComercial\r\n // };\r\n\r\n // elemento.listaMateriales.push(materiales);\r\n // }\r\n\r\n // elemento.listaManoObra = [];\r\n\r\n // let materiales: MaterialesDTO = {\r\n // idElementoEsp: null,\r\n // idMaterial: null,\r\n // nombreMaterial: 'Mano de Obra',\r\n // largoUnidadObra: 0,\r\n // cantidadUnidadObra: 0,\r\n // cantidadComercial: 0,\r\n // largoComercial: 0\r\n // };\r\n\r\n // elemento.listaManoObra.push(materiales);\r\n\r\n\r\n // }\r\n\r\n // }\r\n\r\n // return elemento;\r\n\r\n //}\r\n\r\n /**\r\n * \r\n */\r\n public addElemento(): void {\r\n\r\n let elemento: ElementoDTO = this._addElemento();\r\n\r\n this.simuladorForm.listaElementos.push(elemento);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteElemento(entity: ElementoDTO): void {\r\n\r\n const index = this.simuladorForm.listaElementos.findIndex(user => user == entity);\r\n\r\n this.simuladorForm.listaElementos.splice(index, 1);\r\n\r\n }\r\n\r\n // /**\r\n // * \r\n // * \r\n // */\r\n // public precioUnitario() {\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // let idElementos: number[] = [];\r\n\r\n // for (let elemento of this.simuladorForm.listaElementos) {\r\n // idElementos.push(elemento.idElemento);\r\n // }\r\n\r\n // this.service.ObtenerPrecioUnitario(idElementos).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listPrecioUnitario = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public PrecioUnitarioElemento() {\r\n\r\n // console.log('PrecioUnitarioElemento -->> ')\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // let idElementos: number[] = [];\r\n\r\n // for (let elemento of this.simuladorForm.listaElementos) {\r\n // idElementos.push(elemento.idElemento);\r\n // }\r\n\r\n // let precioUnitarioEspacio: InputObtenerPrecioUnitarioEspacio = { listElementos: idElementos, listEspacios: null };\r\n\r\n // this.service.ObtenerPrecioUnitarioEspacio(precioUnitarioEspacio).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listPrecioUnitarioEspacio = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public PrecioUnitarioEspacio() {\r\n\r\n // if (this.simuladorForm.listEspacios != null && this.simuladorForm.listEspacios.length > 0) {\r\n\r\n // let idEspacio: number[] = [];\r\n\r\n // for (let espacio of this.simuladorForm.listEspacios) {\r\n // idEspacio.push(espacio.idEspacio);\r\n // }\r\n\r\n // let precioUnitarioEspacio: InputObtenerPrecioUnitarioEspacio = { listElementos: null, listEspacios: idEspacio };\r\n\r\n // this.service.ObtenerPrecioUnitarioEspacio(precioUnitarioEspacio).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listPrecioUnitarioEspacio = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // * \r\n // */\r\n // public costoManoObra() {\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // let idElementos: number[] = [];\r\n\r\n // for (let elemento of this.simuladorForm.listaElementos) {\r\n // idElementos.push(elemento.idElemento);\r\n // }\r\n\r\n // this.service.ObtenerCostoManoObra(idElementos).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listCostoManoObra = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n\r\n // }\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public TotalManoObraEspacio() {\r\n\r\n // this.TotalManoObra(this.espacio.idEspacio, null);\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public TotalManoObraPrototipo() {\r\n\r\n // this.TotalManoObra(null, this.prototipo.idPrototipo);\r\n // }\r\n\r\n // /**\r\n // * \r\n // * @param idEspacio\r\n // * @param idPrototipo\r\n // */\r\n // public TotalManoObra(idEspacio?: number, idPrototipo?: number) {\r\n\r\n // let idEspacios: number[] = [];\r\n\r\n // if (idEspacio != null && idEspacio > 0) {\r\n\r\n // idEspacios.push(idEspacio);\r\n\r\n // let totalManoObra: InputObtenerTotalManoObra = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalManoObra(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalManoObra = resultado.model;\r\n // }\r\n\r\n // });\r\n // }\r\n\r\n // if (idPrototipo != null && idPrototipo > 0) {\r\n\r\n // let prototipoDetalle: InputObtenerPrototipoDetalle = { idPrototipo: idPrototipo };\r\n\r\n // this.service.ObtenerPrototipoDetalle(prototipoDetalle).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // if (resultado.model.listEspacioxPrototipo != null) {\r\n\r\n // for (let row of resultado.model.listEspacioxPrototipo) {\r\n\r\n // idEspacios.push(row.idEspacio);\r\n\r\n // }\r\n\r\n // let totalManoObra: InputObtenerTotalManoObra = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalManoObra(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalManoObra = resultado.model;\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // * @param espacio\r\n // */\r\n // public TotalMaterialesEspacio() {\r\n\r\n // this.TotalMateriales(this.espacio.idEspacio);\r\n // }\r\n\r\n // /**\r\n //* \r\n //* @param espacio\r\n //*/\r\n // public TotalMaterialesPrototipo() {\r\n\r\n // this.TotalMateriales(null, this.prototipo.idPrototipo);\r\n // }\r\n\r\n // /**\r\n // * \r\n // * @param idEspacio\r\n // * @param idPrototipo\r\n // */\r\n // public TotalMateriales(idEspacio?: number, idPrototipo?: number) {\r\n\r\n // let idEspacios: number[] = [];\r\n\r\n // if (idEspacio != null && idEspacio > 0) {\r\n\r\n // idEspacios.push(idEspacio);\r\n\r\n // let totalManoObra: InputObtenerTotalMateriales = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalMateriales(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalMateriales = resultado.model;\r\n // }\r\n\r\n // });\r\n // }\r\n\r\n // if (idPrototipo != null && idPrototipo > 0) {\r\n\r\n // let prototipoDetalle: InputObtenerPrototipoDetalle = { idPrototipo: idPrototipo };\r\n\r\n // this.service.ObtenerPrototipoDetalle(prototipoDetalle).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // if (resultado.model.listEspacioxPrototipo != null) {\r\n\r\n // for (let row of resultado.model.listEspacioxPrototipo) {\r\n\r\n // idEspacios.push(row.idEspacio);\r\n\r\n // }\r\n\r\n // let totalManoObra: InputObtenerTotalMateriales = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalMateriales(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalMateriales = resultado.model;\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n\r\n ///**\r\n // * \r\n // * \r\n // */\r\n //public calcular(): void {\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // for (let entity of this.simuladorForm.listaElementos) {\r\n\r\n // let cantidad: number = 0;\r\n\r\n // if (entity.idTipoDatoEntrada == 1) {\r\n // cantidad = entity.anchoCantidad;\r\n // }\r\n\r\n // if (entity.idTipoDatoEntrada == 2) {\r\n // cantidad = entity.largo * entity.anchoCantidad;\r\n // }\r\n\r\n\r\n // if (this.listPrecioUnitario != null && this.listPrecioUnitario.length > 0) {\r\n\r\n // let filter = this.listPrecioUnitario.filter(row => row.clave == entity.clave);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n\r\n // for (let row of filter) {\r\n // row.costoElementoxCantidad = row.costoElemento * cantidad;\r\n // }\r\n\r\n // }\r\n // }\r\n\r\n // if (this.listCostoManoObra != null && this.listCostoManoObra.length > 0) {\r\n\r\n // let filter = this.listCostoManoObra.filter(row => row.clave == entity.clave);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n\r\n // for (let row of filter) {\r\n // row.costoElemento132xCantidad = row.costoElemento132 * cantidad;\r\n // }\r\n\r\n // }\r\n\r\n // }\r\n\r\n // if (this.listPrecioUnitarioEspacio != null && this.listPrecioUnitarioEspacio.length > 0) {\r\n\r\n // let filter = this.listPrecioUnitarioEspacio.filter(row => row.clave == entity.clave);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n\r\n // for (let row of filter) {\r\n // // row.costoElemento132xCantidad = row.costoElemento132 * cantidad;\r\n // }\r\n\r\n // }\r\n\r\n // }\r\n\r\n\r\n\r\n // }\r\n\r\n // }\r\n\r\n //}\r\n\r\n public salir(): void {\r\n HttpSession.clear();\r\n HttpSession.forward(this._router, 'login');\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n public addElementoEspacio(): void {\r\n\r\n let elemento: ElementoDTO = this._addElemento();\r\n\r\n this.espacioForm.listaElementos.push(elemento);\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteElementoEspacio(entity: ElementoDTO): void {\r\n\r\n const index = this.espacioForm.listaElementos.findIndex(user => user == entity);\r\n\r\n this.espacioForm.listaElementos.splice(index, 1);\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public saveEspacio(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n let espacio: InputAgregarEspacio = { idEspacio: this.espacioForm.idEspacio, nombreEspacio: this.espacioForm.nombreEspacio, idTipoEspacio: 1, listElementos: this.espacioForm.listaElementos };\r\n\r\n this.service.AgregarEspacio(espacio).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.ObtenerListaEspacio();\r\n\r\n this.espacioForm.tab = 0;\r\n\r\n this.initEspacioForm()\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Información guardada correctamente ...`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n } else {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Error al guardar la información...`,\r\n icon: \"error\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n \r\n */\r\n private ObtenerListaEspacio(): void {\r\n\r\n //this.service.ObtenerEspacio().subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // this.espacioForm.listEspacios = resultado.model.listEspacios;\r\n\r\n // this.espacioForm.listEspacios = this.espacioForm.listEspacios.filter(row => row.activo == true);\r\n\r\n // this.grupoEspacios = [];\r\n\r\n\r\n // //Obteniendo Tipo de Espacio\r\n\r\n // let listTipoEspacio: TipoEspacioDTO[] = [];\r\n // {\r\n\r\n // for (let espacio of this.espacioForm.listEspacios) {\r\n\r\n // let filter = listTipoEspacio.filter(row => row.nombreTipoEspacio == espacio.nombreTipoEspacio);\r\n\r\n // if (filter != null && filter.length == 0) {\r\n\r\n // let tipoEspacio: TipoEspacioDTO = { nombreTipoEspacio: espacio.nombreTipoEspacio }\r\n\r\n // listTipoEspacio.push(tipoEspacio);\r\n // }\r\n // }\r\n\r\n // }\r\n\r\n // for (let tipoEspacio of listTipoEspacio) {\r\n\r\n // let filter: any = this.espacioForm.listEspacios.filter(row => row.nombreTipoEspacio == tipoEspacio.nombreTipoEspacio);\r\n\r\n // let items: any[] = [];\r\n\r\n // for (let espacio of filter) {\r\n // items.push({ label: espacio.nombreEspacio, value: espacio.idEspacio });\r\n // }\r\n\r\n // let dato: any = {\r\n // label: tipoEspacio.nombreTipoEspacio,\r\n // items: items\r\n // };\r\n\r\n // this.grupoEspacios.push(dato);\r\n\r\n // }\r\n\r\n\r\n // }\r\n\r\n //});\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n\r\n case 'NombreEspacio':\r\n\r\n this.espacioForm.nombreEspacio_MensajeError = new FormValidation(this.espacioForm.nombreEspacio).requered('El nombre del espacio es obligatorio.');\r\n\r\n break;\r\n\r\n case 'NombrePrototipo':\r\n\r\n this.prototipoForm.nombrePrototipo_MensajeError = new FormValidation(this.prototipoForm.nombrePrototipo).requered('El nombre del prototipo es obligatorio.');\r\n\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n this.espacioForm.nombreEspacio_MensajeError = new FormValidation(this.espacioForm.nombreEspacio).requered('El nombre del espacio es obligatorio.');\r\n\r\n if (this.espacioForm.nombreEspacio_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public detalleEspacio(entity: EspacioDTO): void {\r\n\r\n this.espacio = entity;\r\n\r\n this.espacioForm.typeView = 'Detalle';\r\n\r\n this.espacioForm.tab = 1;\r\n\r\n this.getEspacio(this.espacioForm, entity);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async cloneEspacio(entity: EspacioDTO) {\r\n\r\n this.espacioForm.typeView = 'Clonar';\r\n\r\n this.espacioForm.tab = 1;\r\n\r\n this.getEspacio(this.espacioForm, entity);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async editarEspacio(entity: EspacioDTO) {\r\n\r\n this.espacioForm.typeView = 'Editar';\r\n\r\n this.espacioForm.tab = 1;\r\n\r\n this.getEspacio(this.espacioForm, entity);\r\n\r\n }\r\n\r\n /**\r\n *\r\n */\r\n private ObtenerListaPrototipos(): void {\r\n\r\n //this.service.ObtenerPrototipo().subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // this.prototipoForm.listPrototipos = resultado.model.listPrototipo;\r\n\r\n // this.prototipoForm.listPrototipos = this.prototipoForm.listPrototipos.filter(row => row.activo == true)\r\n\r\n // }\r\n\r\n //});\r\n\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n public addEspacioPrototipo(): void {\r\n\r\n if (this.idEspacio != null) {\r\n let entity: EspacioDTO = this.espacioForm.listEspacios.filter(row => row.idEspacio == this.idEspacio)[0];\r\n this.prototipoForm.listEspacioSelect.push(entity);\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteEspacioPrototipo(entity: EspacioDTO): void {\r\n this.prototipoForm.listEspacioSelect = this.prototipoForm.listEspacioSelect.filter(row => row.idEspacio != entity.idEspacio);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlarioPrototipo(): boolean {\r\n\r\n var error = false;\r\n\r\n this.prototipoForm.nombrePrototipo_MensajeError = new FormValidation(this.prototipoForm.nombrePrototipo).requered('El nombre del prototipo es obligatorio.');\r\n\r\n if (this.prototipoForm.nombrePrototipo_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public savePrototipo(): void {\r\n\r\n if (!this.validarFormumlarioPrototipo()) {\r\n\r\n let idEspacios: Array = [];\r\n\r\n for (let row of this.prototipoForm.listEspacioSelect) {\r\n\r\n idEspacios.push(row.idEspacio);\r\n }\r\n\r\n let entity: InputAgregarPrototipo = {\r\n\r\n idPrototipo: this.prototipoForm.idPrototipo\r\n , nombrePrototipo: this.prototipoForm.nombrePrototipo\r\n , idTipoPrototipo: 1\r\n , idEspacios: idEspacios\r\n };\r\n\r\n this.service.AgregarPrototipo(entity).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.ObtenerListaPrototipos();\r\n\r\n this.prototipoForm.tab = 0;\r\n\r\n this.initPrototipoForm()\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Información guardada correctamente ...`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n } else {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Error al guardar la información...`,\r\n icon: \"error\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param typeView\r\n */\r\n private getPrototipo(entity: PrototipoDTO, typeView: string): void {\r\n\r\n let dato: InputObtenerPrototipoDetalle = { idPrototipo: entity.idPrototipo };\r\n\r\n this.service.ObtenerPrototipoDetalle(dato).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.prototipoForm.prototipoDetalle = resultado.model;\r\n\r\n this.prototipoForm.listEspacioSelect = [];\r\n\r\n for (let espacioxPrototipo of this.prototipoForm.prototipoDetalle.listEspacioxPrototipo) {\r\n\r\n let filter = this.espacioForm.listEspacios.filter(row => row.idEspacio == espacioxPrototipo.idEspacio);\r\n\r\n if (filter != null && filter.length > 0) {\r\n this.prototipoForm.listEspacioSelect.push(filter[0]);\r\n }\r\n\r\n }\r\n\r\n this.prototipoForm.nombrePrototipo = null;\r\n this.prototipoForm.idPrototipo = null;\r\n this.prototipoForm.nombrePrototipo_MensajeError = new FormValidation(null);\r\n\r\n if (typeView == 'Detalle' || typeView == 'Editar') {\r\n this.prototipoForm.nombrePrototipo = this.prototipoForm.prototipoDetalle.prototipo.nombrePrototipo;\r\n this.prototipoForm.idPrototipo = this.prototipoForm.prototipoDetalle.prototipo.idPrototipo;\r\n }\r\n\r\n if (typeView == 'Clonar') {\r\n this.prototipoForm.prototipoDetalle.listDocumento = [];\r\n }\r\n\r\n this.prototipoForm.tab = 1;\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public detallePrototipo(entity: PrototipoDTO): void {\r\n\r\n this.prototipo = entity;\r\n\r\n this.prototipoForm.typeView = 'Detalle';\r\n\r\n this.getPrototipo(entity, this.prototipoForm.typeView);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public clonePrototipo(entity: PrototipoDTO): void {\r\n\r\n this.prototipoForm.typeView = 'Clonar';\r\n\r\n this.getPrototipo(entity, this.prototipoForm.typeView);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public editarPrototipo(entity: PrototipoDTO): void {\r\n\r\n this.prototipoForm.typeView = 'Editar';\r\n\r\n this.getPrototipo(entity, this.prototipoForm.typeView);\r\n }\r\n\r\n /**\r\n * \r\n * @param e\r\n */\r\n public onChangeTab(e): void {\r\n this.tabPrincipal = e.index;\r\n }\r\n\r\n /**\r\n * \r\n * @param e\r\n */\r\n public onChangeTabEspacio(e): void {\r\n this.espacioForm.tab = e.index;\r\n }\r\n\r\n /**\r\n * \r\n * @param e\r\n */\r\n public onChangeTabPrototipo(e): void {\r\n this.prototipoForm.tab = e.index;\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n * @param fileUpload\r\n */\r\n public onFileUpload(event: { files: File }, fileUpload): void {\r\n\r\n this.progressSpinner = true;\r\n\r\n console.log('onFileUpload -->> ', event)\r\n\r\n var excelParametros = { idPrototipo: this.prototipoForm.idPrototipo };\r\n\r\n this.service.AgregarDocumento(event, excelParametros).subscribe(resultado => {\r\n\r\n console.log('resultado -->> ', resultado);\r\n\r\n if (resultado.code == 200) {\r\n\r\n this.fileUpload.clear();\r\n\r\n this.editarPrototipo(this.prototipoForm.prototipoDetalle.prototipo)\r\n\r\n this.progressSpinner = false;\r\n\r\n this.msgs = [];\r\n this.msgs.push({ severity: 'success', summary: 'Archivo(s) subido(s) ...', detail: '' });\r\n\r\n setTimeout(() => {\r\n this.msgs = [];\r\n }, 4000);\r\n\r\n } else {\r\n\r\n }\r\n\r\n });;\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangeEspacioPublicar(entity: EspacioDTO): void {\r\n\r\n if (entity.activo == false) {\r\n entity.activo = null;\r\n }\r\n\r\n let dato: InputActualizarEstatusEspacio = { idEspacios: [entity.idEspacio], activo: entity.activo };\r\n\r\n this.service.ActualizarEstatusEspacio(dato).subscribe(resultado => {\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteEspacio(entity: EspacioDTO): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el prototipo`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusEspacio = { idEspacios: [entity.idEspacio], activo: false };\r\n\r\n this.service.ActualizarEstatusEspacio(dato).subscribe(resultado => {\r\n this.ObtenerListaEspacio();\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangePrototipoPublicar(entity: PrototipoDTO): void {\r\n\r\n if (entity.activo == false) {\r\n entity.activo = null;\r\n }\r\n\r\n let dato: InputActualizarEstatusPrototipo = { idPrototipos: [entity.idPrototipo], activo: entity.activo };\r\n\r\n this.service.ActualizarEstatusPrototipo(dato).subscribe(resultado => {\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deletePrototipo(entity: PrototipoDTO): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el prototipo`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusPrototipo = { idPrototipos: [entity.idPrototipo], activo: false };\r\n\r\n this.service.ActualizarEstatusPrototipo(dato).subscribe(resultado => {\r\n this.ObtenerListaPrototipos();\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteDocumento(entity: DocumentoDTO): void {\r\n\r\n console.error('deleteDocumento -->> ')\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el documento`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusDocumento = { idDocumento: entity.idDocumento, documentoActivo: false };\r\n\r\n this.service.ActualizarEstatusDocumento(dato).subscribe(resultado => {\r\n\r\n this.getPrototipo(this.prototipoForm.prototipoDetalle.prototipo, this.prototipoForm.typeView)\r\n\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n private _getEspacio(espacioForm: EspacioForm, resultado: JsonResponse) {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n if (espacioForm.typeView == 'Detalle' || espacioForm.typeView == 'Editar') {\r\n espacioForm.idEspacio = resultado.model.espacio.idEspacio;\r\n espacioForm.nombreEspacio = resultado.model.espacio.nombreEspacio;\r\n }\r\n\r\n espacioForm.listaElementos = [];\r\n\r\n if (resultado.model.listElementos != null) {\r\n\r\n espacioForm.listaElementos = resultado.model.listElementos;\r\n\r\n for (let row of espacioForm.listaElementos) {\r\n row.nombreElemento = row.nombreElementoEsp;\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n /**\r\n * \r\n * @param espacioForm\r\n * @param resultado\r\n */\r\n //private _getEspacio(espacioForm: EspacioForm, resultado: JsonResponse) {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // if (espacioForm.typeView == 'Detalle' || espacioForm.typeView == 'Editar') {\r\n // espacioForm.idEspacio = resultado.model.espacio.idEspacio;\r\n // espacioForm.nombreEspacio = resultado.model.espacio.nombreEspacio;\r\n // }\r\n\r\n // espacioForm.listElementos = [];\r\n\r\n // if (resultado.model.listElementos != null) {\r\n\r\n // for (let row of resultado.model.listElementos) {\r\n\r\n // let elemento: OutputObtenerElementos[] = this.datosElemento.listElementos.filter(item => item.idElemento == row.idElemento);\r\n\r\n // let elementoXDTO: ElementoXDTO = { nombreElemento: row.nombreElementoEsp, elemento: elemento[0], listaMateriales: [], listaManoObra: [] };\r\n\r\n // if (resultado.model.listElementoEspDimension != null) {\r\n\r\n // let listElementoEspDimensionDTO: ElementoEspDimensionDTO[] = resultado.model.listElementoEspDimension.filter(item => item.idElementoEsp == row.idElementoEsp);\r\n\r\n // if (listElementoEspDimensionDTO != null) {\r\n\r\n // for (let elementoEspDimension of listElementoEspDimensionDTO) {\r\n\r\n // let materialesDTO: MaterialesDTO = {\r\n // idElementoEsp: elementoEspDimension.idElementoEsp,\r\n // idMaterial: elementoEspDimension.idMaterial,\r\n // nombreMaterial: elementoEspDimension.nombreMaterial,\r\n // cantidadComercial: elementoEspDimension.cantidadComercial,\r\n // cantidadUnidadObra: elementoEspDimension.cantidadUnidadObra,\r\n // largoComercial: elementoEspDimension.largoComercial,\r\n // largoUnidadObra: elementoEspDimension.largoUnidadObra\r\n // };\r\n\r\n // if (elementoEspDimension.idMaterial != null) {\r\n // elementoXDTO.listaMateriales.push(materialesDTO);\r\n // } else {\r\n // elementoXDTO.listaManoObra.push(materialesDTO);\r\n // }\r\n\r\n // }\r\n\r\n // }\r\n\r\n // }\r\n\r\n // espacioForm.listElementos.push(elementoXDTO);\r\n // }\r\n // }\r\n\r\n // }\r\n\r\n //}\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param typeView\r\n */\r\n private getEspacio(espacioForm: EspacioForm, entity: EspacioDTO): void {\r\n\r\n let dato: InputObtenerEspacioDetalle = { idEspacio: entity.idEspacio };\r\n\r\n this.service.ObtenerEspacioDetalle(dato).subscribe((resultado: JsonResponse) => {\r\n\r\n this._getEspacio(espacioForm, resultado);\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async detalleEspacioPrototipo(entity: EspacioDTO) {\r\n\r\n this.prototipoForm.espacioForm.typeView = 'Editar';\r\n\r\n this.getEspacio(this.prototipoForm.espacioForm, entity);\r\n\r\n this.prototipoForm.tab = 2;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public AgregarEspacio(): void {\r\n this.idElemento = 0;\r\n this.espacioForm.idEspacio = null;\r\n this.espacioForm.nombreEspacio = null;\r\n this.espacioForm.listaElementos = [];\r\n this.espacioForm.typeView = 'Agregar';\r\n this.espacioForm.tab = 1;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public AgregarPrototipo(): void {\r\n this.idElemento = 0;\r\n this.prototipoForm.idPrototipo = null;\r\n this.prototipoForm.nombrePrototipo = null;\r\n this.prototipoForm.listEspacioSelect = [];\r\n this.prototipoForm.typeView = 'Agregar';\r\n this.prototipoForm.tab = 1;\r\n this.prototipoForm.prototipoDetalle = null;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public RegresarDetallePrototipo(): void {\r\n this.prototipoForm.tab = 1;\r\n }\r\n\r\n}\r\n","export default \"html, body {\\r\\n height: 100%;\\r\\n overflow-x: hidden;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n\\r\\n.sisheader {\\r\\n min-width: 1280px;\\r\\n background: linear-gradient(to left, #7AC243, #7AC243, #009CDC 100%);\\r\\n height: 50px;\\r\\n border: 0px;\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.margenarri5 {\\r\\n margin-top: 5px !important;\\r\\n}\\r\\n\\r\\n.sisnombre {\\r\\n font-size: 18px;\\r\\n padding-top: 13px;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.paddingarri10 {\\r\\n padding-top: 10px !important;\\r\\n}\\r\\n\\r\\n.paddingarri9 {\\r\\n padding-top: 9px !important;\\r\\n}\\r\\n\\r\\n.paddingarri8 {\\r\\n padding-top: 8px !important;\\r\\n}\\r\\n\\r\\n.paddingarri7 {\\r\\n padding-top: 7px !important;\\r\\n}\\r\\n\\r\\n.paddingder0 {\\r\\n padding-right: 0px !important;\\r\\n}\\r\\n\\r\\n.paddingizq0 {\\r\\n padding-left: 0px !important;\\r\\n}\\r\\n\\r\\n.paddingderizq0 {\\r\\n padding-right: 0px !important;\\r\\n padding-left: 0px !important;\\r\\n}\\r\\n\\r\\n.sisheader .form-control {\\r\\n height: 31px;\\r\\n background-color: rgba(255,255,255,0.6);\\r\\n border: 1px solid #fff;\\r\\n margin-bottom: 0px;\\r\\n}\\r\\n\\r\\n.sisheader .form-control:focus,\\r\\n .sisheader .form-control:hover {\\r\\n background-color: rgba(255,255,255,1);\\r\\n }\\r\\n\\r\\n.btnicotransparent {\\r\\n padding: 5px 12px 2px 5px;\\r\\n color: #fff;\\r\\n background-color: transparent;\\r\\n border-radius: 4px;\\r\\n border: 0px;\\r\\n width: 100%;\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.btnicotransparent:hover,\\r\\n .btnicotransparent:focus {\\r\\n background-color: rgba(000,000,000,0.3);\\r\\n }\\r\\n\\r\\n.btnicogris {\\r\\n padding: 4px 6px;\\r\\n color: #fff;\\r\\n background-color: #939598;\\r\\n border-radius: 4px;\\r\\n border: 0px;\\r\\n}\\r\\n\\r\\nh1, h2, h3, h4 {\\r\\n margin-top: 0px;\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.siscontenido {\\r\\n min-height: 455px;\\r\\n padding-top: 70px;\\r\\n}\\r\\n\\r\\n/** estilos para tabs **/\\r\\n\\r\\n.tab-content {\\r\\n padding-top: 25px;\\r\\n}\\r\\n\\r\\n.color-rojo-val {\\r\\n color: #e31837 !important;\\r\\n}\\r\\n\\r\\n.fontsize16 {\\r\\n font-size: 16px !important;\\r\\n}\\r\\n\\r\\nlabel {\\r\\n padding-top: 7px;\\r\\n}\\r\\n\\r\\n.form-control {\\r\\n margin-bottom: 25px;\\r\\n}\\r\\n\\r\\n.margenaba25 {\\r\\n margin-bottom: 25px !important;\\r\\n}\\r\\n\\r\\n.agranda1p3 {\\r\\n transform: scale(1.3);\\r\\n}\\r\\n\\r\\n.espacioradio {\\r\\n padding-top: 0px;\\r\\n margin-bottom: 26.5px;\\r\\n}\\r\\n\\r\\n.espaciocheckbox {\\r\\n padding-top: 7px;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n.espacioradio input[type=radio],\\r\\n .espaciocheckbox input[type=checkbox] {\\r\\n transform: scale(1.3);\\r\\n }\\r\\n\\r\\n.espaciocheckbox input[type=checkbox] {\\r\\n margin-bottom: 15px;\\r\\n }\\r\\n\\r\\n.espacioradio label {\\r\\n font-weight: normal;\\r\\n padding-top: 5px;\\r\\n}\\r\\n\\r\\n.espacioradio label:hover {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.espacioradio label:not(:first-child) {\\r\\n margin-left: 10%;\\r\\n }\\r\\n\\r\\ninput[type=radio],\\r\\ninput[type=checkbox] {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.Btn-gray {\\r\\n display: inline-block;\\r\\n padding: 6px 12px;\\r\\n margin-bottom: 0;\\r\\n font-size: 13px;\\r\\n font-weight: 400;\\r\\n line-height: 1.42857143;\\r\\n text-align: center;\\r\\n white-space: nowrap;\\r\\n vertical-align: middle;\\r\\n background-color: #A5ACBA;\\r\\n border-color: #979faf;\\r\\n color: #FFFFFF;\\r\\n transition: all ease .45s;\\r\\n margin-bottom: 12px;\\r\\n}\\r\\n\\r\\n.Btn-gray:hover {\\r\\n background-color: #555;\\r\\n border-color: #A5ACBA;\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n.fontsize12 {\\r\\n font-size: 12px !important;\\r\\n}\\r\\n\\r\\n.gris50pc {\\r\\n color: #939598 !important;\\r\\n}\\r\\n\\r\\n.gris60pc {\\r\\n color: #7D7D7D !important;\\r\\n}\\r\\n\\r\\n.bordepuntosgris50 {\\r\\n border-style: dotted;\\r\\n border-color: #939598;\\r\\n}\\r\\n\\r\\n.margenarri20 {\\r\\n margin-top: 20px !important;\\r\\n}\\r\\n\\r\\n.margenaba15 {\\r\\n margin-bottom: 15px !important;\\r\\n}\\r\\n\\r\\n.plecaheader {\\r\\n margin-top: 0px;\\r\\n margin-bottom: 25px;\\r\\n border: 0;\\r\\n border-top: 1px solid #ccc;\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n margin-left: 10px;\\r\\n}\\r\\n\\r\\n.has-error .form-control {\\r\\n border-color: #e31837;\\r\\n}\\r\\n\\r\\n.espacioradio.has-error,\\r\\n.espaciocheckbox .has-error {\\r\\n color: #e31837;\\r\\n}\\r\\n\\r\\ntd.espacioradio.has-error,\\r\\ntd.espaciocheckbox .has-error {\\r\\n border: 1px solid #e31837;\\r\\n}\\r\\n\\r\\ntextarea {\\r\\n height: 93px !important;\\r\\n max-width: 100%;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n\\r\\n.bloqueinfo {\\r\\n position: fixed;\\r\\n bottom: 0px;\\r\\n left: 0px;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.bloqueinfo .col-sm-10 {\\r\\n border: 1px solid #337ab7;\\r\\n border-bottom: none;\\r\\n background-color: rgba(251,251,251,0.75);\\r\\n border-top-left-radius: 6px;\\r\\n border-top-right-radius: 6px;\\r\\n /*font-size:12px;*/\\r\\n }\\r\\n\\r\\n.bloqueinfo .col-sm-10 .row {\\r\\n padding-top: 10px;\\r\\n padding-bottom: 10px;\\r\\n }\\r\\n\\r\\n.bloqueinfo .col-sm-10 b {\\r\\n color: #337ab7;\\r\\n }\\r\\n\\r\\n/*.bloqueinfo .col-sm-8 .row:first-child {\\r\\npadding-top:10px;\\r\\npadding-bottom:5px;\\r\\n}*/\\r\\n\\r\\n.margenaba60 {\\r\\n margin-bottom: 60px !important;\\r\\n}\\r\\n\\r\\n.notainfo {\\r\\n color: #337ab7;\\r\\n font-weight: bold;\\r\\n font-size: 12px;\\r\\n text-align: justify;\\r\\n}\\r\\n\\r\\n.margenaba30 {\\r\\n margin-bottom: 30px !important;\\r\\n}\\r\\n\\r\\n.u-title-input {\\r\\n color: #939598;\\r\\n font-weight: 100;\\r\\n font-size: 18px;\\r\\n margin-bottom: 10px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.ancho100pc {\\r\\n width: 100% !important;\\r\\n}\\r\\n\\r\\n.margenizq0 {\\r\\n margin-left: 0px !important;\\r\\n}\\r\\n\\r\\n.iconocampo {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 25px;\\r\\n}\\r\\n\\r\\n.paddingizq30 {\\r\\n padding-left: 30px !important;\\r\\n}\\r\\n\\r\\n.ancho250 {\\r\\n width: 300px !important;\\r\\n}\\r\\n\\r\\n.sisusuario {\\r\\n font-weight: bold;\\r\\n color: #fff;\\r\\n margin-right: 7.5px;\\r\\n display: inline-block;\\r\\n width: 90%;\\r\\n height: 18px;\\r\\n overflow: hidden;\\r\\n /*text-align:right;*/\\r\\n}\\r\\n\\r\\n/*.sisusuario span:first-child {\\r\\nopacity:0.75;\\r\\nmargin-right:7.5px;\\r\\n}*/\\r\\n\\r\\n.sisusuario .glyphicon-user {\\r\\n font-size: 18px;\\r\\n }\\r\\n\\r\\n.btnicotransparent span {\\r\\n opacity: 0.8;\\r\\n}\\r\\n\\r\\n.btnicotransparent:hover span,\\r\\n.btnicotransparent:focus span {\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n.btn-danger {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.usr .dropdown-menu {\\r\\n min-width: 100px;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.usr .glyphicon-user {\\r\\n top: -2px;\\r\\n}\\r\\n\\r\\n.margenarri10 {\\r\\n margin-top: 10px !important;\\r\\n}\\r\\n\\r\\n.navbar-fixed-top {\\r\\n z-index: 990;\\r\\n}\\r\\n\\r\\n/** Tablas y paginado **/\\r\\n\\r\\n.Table-header {\\r\\n padding: 8px 0;\\r\\n overflow: hidden;\\r\\n border-top: 1px solid #DADADA;\\r\\n border-bottom: 1px solid #DADADA;\\r\\n margin-bottom: 12px;\\r\\n}\\r\\n\\r\\n.Table-header h6 {\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n.Table-header ul {\\r\\n color: #999999;\\r\\n }\\r\\n\\r\\n.Table-header ul li {\\r\\n float: left;\\r\\n width: 33.33%;\\r\\n margin-bottom: 4px;\\r\\n font-size: 12px;\\r\\n }\\r\\n\\r\\n.Table-swal {\\r\\n border-top: 1px solid #ccc;\\r\\n}\\r\\n\\r\\n.Table-swal tr td {\\r\\n font-size: 13px;\\r\\n text-align: left;\\r\\n }\\r\\n\\r\\n.DataTable-header {\\r\\n padding: 8px 0;\\r\\n}\\r\\n\\r\\n.DataTable-header--selected {\\r\\n border: 1px solid #DADADA;\\r\\n padding: 6px;\\r\\n margin: 0;\\r\\n color: #3399FF;\\r\\n}\\r\\n\\r\\nul.Table-pagination {\\r\\n display: inline-block;\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\nul.Table-pagination li {\\r\\n display: inline-block;\\r\\n }\\r\\n\\r\\nul.Table-pagination li a {\\r\\n color: #000000;\\r\\n float: left;\\r\\n padding: 5px 13px;\\r\\n text-decoration: none;\\r\\n border-radius: 5px;\\r\\n border: 1px solid #DADADA !important;\\r\\n }\\r\\n\\r\\nul.Table-pagination li a.active {\\r\\n background-color: #7AC243;\\r\\n color: #FFFFFF;\\r\\n border-radius: 5px;\\r\\n }\\r\\n\\r\\nul.Table-pagination li a:hover:not(.active) {\\r\\n background-color: #E2E2E2;\\r\\n }\\r\\n\\r\\n.Table-options {\\r\\n padding: 18px 0;\\r\\n}\\r\\n\\r\\n.Table-options select {\\r\\n display: inline-block;\\r\\n height: 31px;\\r\\n padding: 5px 13px;\\r\\n font-size: 14px;\\r\\n line-height: 1.42857143;\\r\\n color: #000000;\\r\\n background-color: #FFFFFF;\\r\\n background-image: none;\\r\\n border: 1px solid #E2E2E2;\\r\\n border-radius: 4px;\\r\\n margin: 0 10px;\\r\\n }\\r\\n\\r\\n.Table-selectedRow tr {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.Table-selectedRow tr:hover {\\r\\n background-color: #D8F1F6 !important;\\r\\n }\\r\\n\\r\\n.Table-selectedRow tr.Table-selectedRow--painted:hover {\\r\\n background-color: #C4E9F1 !important;\\r\\n }\\r\\n\\r\\n.Table-selectedRow--painted {\\r\\n background-color: #C4E9F1 !important;\\r\\n}\\r\\n\\r\\ntable.dataTable thead th, table.dataTable tbody td {\\r\\n padding: 6px 8px;\\r\\n font-size: 13.5px;\\r\\n}\\r\\n\\r\\n/** filtros **/\\r\\n\\r\\n.filtros .form-control {\\r\\n margin-bottom: 10px;\\r\\n height: 28px;\\r\\n padding: 5px;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.filtros .btn {\\r\\n padding: 3px 6px;\\r\\n}\\r\\n\\r\\n.margenaba0 {\\r\\n margin-bottom: 0px !important;\\r\\n}\\r\\n\\r\\n.margenaba10 {\\r\\n margin-bottom: 10px !important;\\r\\n}\\r\\n\\r\\n.botoniconogris {\\r\\n padding: 6px 8px 2px 8px;\\r\\n text-align: center;\\r\\n background-color: #A5ACBA;\\r\\n border-color: #A5ACBA;\\r\\n color: #fff;\\r\\n display: inline-block;\\r\\n border-radius: 4px;\\r\\n cursor: pointer;\\r\\n border-style: none;\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\n.input-group .form-control {\\r\\n width: 80%;\\r\\n}\\r\\n\\r\\n.input-group-addon {\\r\\n width: 20%;\\r\\n top: 0px;\\r\\n cursor: pointer;\\r\\n padding: 9px;\\r\\n}\\r\\n\\r\\n.input-group-addon:hover {\\r\\n background-color: #ccc;\\r\\n }\\r\\n\\r\\n.filtros .input-group-addon {\\r\\n padding: 6px 12px;\\r\\n}\\r\\n\\r\\n.input-group {\\r\\n display: inline-block;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.table-condensed {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/** para tabla con scroll **/\\r\\n\\r\\n.scrolledtable tr {\\r\\n width: 100%;\\r\\n display: inline-table;\\r\\n table-layout: fixed;\\r\\n}\\r\\n\\r\\n.scrolledtable table {\\r\\n height: 300px; /*Select the height of the table*/\\r\\n display: -moz-groupbox; /*Firefox Bad Effect*/\\r\\n}\\r\\n\\r\\n.scrolledtable tbody {\\r\\n overflow-y: scroll;\\r\\n height: 200px; /*Select the height of the body*/\\r\\n width: 100%;\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n.scrollalt400 {\\r\\n height: 400px;\\r\\n overflow-y: auto;\\r\\n border: 1px solid #ccc;\\r\\n}\\r\\n\\r\\n/** para reporte **/\\r\\n\\r\\n.colorazul {\\r\\n color: #337ab7 !important;\\r\\n}\\r\\n\\r\\n.subheadrepo {\\r\\n color: #337ab7;\\r\\n text-align: center;\\r\\n font-weight: bold;\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.borde2abagris25 {\\r\\n border-bottom: 2px solid #c0c0c0;\\r\\n}\\r\\n\\r\\n.padding8 {\\r\\n padding: 8px !important;\\r\\n}\\r\\n\\r\\n.columnpadding8 .col-sm-1, .columnpadding8 .col-sm-2, .columnpadding8 .col-sm-3, .columnpadding8 .col-sm-4,\\r\\n.columnpadding8 .col-sm-5, .columnpadding8 .col-sm-6, .columnpadding8 .col-sm-7, .columnpadding8 .col-sm-8,\\r\\n.columnpadding8 .col-sm-9, .columnpadding8 .col-sm-10, .columnpadding8 .col-sm-11, .columnpadding8 .col-sm-12 {\\r\\n padding: 8px !important;\\r\\n}\\r\\n\\r\\n.margenarri-15 {\\r\\n margin-top: -15px;\\r\\n}\\r\\n\\r\\n.fondogristenue {\\r\\n background-color: #f0f0f0;\\r\\n}\\r\\n\\r\\n.margenaba80 {\\r\\n margin-bottom: 80px !important;\\r\\n}\\r\\n\\r\\n.margenarri40 {\\r\\n margin-top: 40px !important;\\r\\n}\\r\\n\\r\\n/** ajustes pantallas **/\\r\\n\\r\\n.scrollhorauto {\\r\\n overflow-x: auto !important;\\r\\n}\\r\\n\\r\\n.bordegris25 {\\r\\n border: 1px solid #c0c0c0 !important;\\r\\n}\\r\\n\\r\\n.margenarriaba20 {\\r\\n margin-top: 20px !important;\\r\\n margin-bottom: 20px !important;\\r\\n}\\r\\n\\r\\n/*table.dataTable thead th {\\r\\npadding:8px 10px;\\r\\n}*/\\r\\n\\r\\n/*.col-sm-12, .col-sm-10 {\\r\\nborder:1px solid red !important;\\r\\nbackground-color:#e1e1e1;\\r\\n}*/\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvYWJpZXJ0by9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksWUFBWTtJQUNaLGtCQUFrQjtJQUNsQiwyREFBMkQ7QUFDL0Q7O0FBRUE7SUFDSSxpQkFBaUI7SUFFakIsb0VBQW9FO0lBQ3BFLFlBQVk7SUFDWixXQUFXO0lBQ1gsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksMEJBQTBCO0FBQzlCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSw0QkFBNEI7QUFDaEM7O0FBRUE7SUFDSSwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSwyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSw0QkFBNEI7QUFDaEM7O0FBRUE7SUFDSSw2QkFBNkI7SUFDN0IsNEJBQTRCO0FBQ2hDOztBQUVBO0lBQ0ksWUFBWTtJQUNaLHVDQUF1QztJQUN2QyxzQkFBc0I7SUFDdEIsa0JBQWtCO0FBQ3RCOztBQUVJOztRQUVJLHFDQUFxQztJQUN6Qzs7QUFFSjtJQUNJLHlCQUF5QjtJQUN6QixXQUFXO0lBQ1gsNkJBQTZCO0lBQzdCLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsV0FBVztJQUNYLGlCQUFpQjtBQUNyQjs7QUFFSTs7UUFFSSx1Q0FBdUM7SUFDM0M7O0FBRUo7SUFDSSxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsV0FBVztBQUNmOztBQUVBO0lBQ0ksZUFBZTtJQUNmLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixpQkFBaUI7QUFDckI7O0FBRUEsd0JBQXdCOztBQUV4QjtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLDBCQUEwQjtBQUM5Qjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNw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QUEyQjtJQUMzQiw4QkFBOEI7QUFDbEM7O0FBRUE7O0VBRUU7O0FBS0Y7OztFQUdFIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvYWJpZXJ0by9zdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaHRtbCwgYm9keSB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4uc2lzaGVhZGVyIHtcclxuICAgIG1pbi13aWR0aDogMTI4MHB4O1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmlnaHQsICM3QUMyNDMsICM3QUMyNDMsICMwMDlDREMgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgIzdBQzI0MywgIzdBQzI0MywgIzAwOUNEQyAxMDAlKTtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIGJvcmRlcjogMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLm1hcmdlbmFycmk1IHtcclxuICAgIG1hcmdpbi10b3A6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2lzbm9tYnJlIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIHBhZGRpbmctdG9wOiAxM3B4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaTEwIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaTkge1xyXG4gICAgcGFkZGluZy10b3A6IDlweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZ2Fycmk4IHtcclxuICAgIHBhZGRpbmctdG9wOiA4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBhZGRpbmdhcnJpNyB7XHJcbiAgICBwYWRkaW5nLXRvcDogN3B4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nZGVyMCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBhZGRpbmdpenEwIHtcclxuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nZGVyaXpxMCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zaXNoZWFkZXIgLmZvcm0tY29udHJvbCB7XHJcbiAgICBoZWlnaHQ6IDMxcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG59XHJcblxyXG4gICAgLnNpc2hlYWRlciAuZm9ybS1jb250cm9sOmZvY3VzLFxyXG4gICAgLnNpc2hlYWRlciAuZm9ybS1jb250cm9sOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDEpO1xyXG4gICAgfVxyXG5cclxuLmJ0bmljb3RyYW5zcGFyZW50IHtcclxuICAgIHBhZGRpbmc6IDVweCAxMnB4IDJweCA1cHg7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgYm9yZGVyOiAwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4gICAgLmJ0bmljb3RyYW5zcGFyZW50OmhvdmVyLFxyXG4gICAgLmJ0bmljb3RyYW5zcGFyZW50OmZvY3VzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAwMCwwMDAsMDAwLDAuMyk7XHJcbiAgICB9XHJcblxyXG4uYnRuaWNvZ3JpcyB7XHJcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTM5NTk4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgYm9yZGVyOiAwcHg7XHJcbn1cclxuXHJcbmgxLCBoMiwgaDMsIGg0IHtcclxuICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5zaXNjb250ZW5pZG8ge1xyXG4gICAgbWluLWhlaWdodDogNDU1cHg7XHJcbiAgICBwYWRkaW5nLXRvcDogNzBweDtcclxufVxyXG5cclxuLyoqIGVzdGlsb3MgcGFyYSB0YWJzICoqL1xyXG5cclxuLnRhYi1jb250ZW50IHtcclxuICAgIHBhZGRpbmctdG9wOiAyNXB4O1xyXG59XHJcblxyXG4uY29sb3Itcm9qby12YWwge1xyXG4gICAgY29sb3I6ICNlMzE4MzcgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZvbnRzaXplMTYge1xyXG4gICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuICAgIHBhZGRpbmctdG9wOiA3cHg7XHJcbn1cclxuXHJcbi5mb3JtLWNvbnRyb2wge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG5cclxuLm1hcmdlbmFiYTI1IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDI1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFncmFuZGExcDMge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xyXG59XHJcblxyXG4uZXNwYWNpb3JhZGlvIHtcclxuICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyNi41cHg7XHJcbn1cclxuXHJcbi5lc3BhY2lvY2hlY2tib3gge1xyXG4gICAgcGFkZGluZy10b3A6IDdweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbn1cclxuXHJcbiAgICAuZXNwYWNpb3JhZGlvIGlucHV0W3R5cGU9cmFkaW9dLFxyXG4gICAgLmVzcGFjaW9jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xyXG4gICAgfVxyXG5cclxuICAgIC5lc3BhY2lvY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0ge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICB9XHJcblxyXG4uZXNwYWNpb3JhZGlvIGxhYmVsIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG59XHJcblxyXG4gICAgLmVzcGFjaW9yYWRpbyBsYWJlbDpob3ZlciB7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5lc3BhY2lvcmFkaW8gbGFiZWw6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMCU7XHJcbiAgICB9XHJcblxyXG5pbnB1dFt0eXBlPXJhZGlvXSxcclxuaW5wdXRbdHlwZT1jaGVja2JveF0ge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uQnRuLWdyYXkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogNnB4IDEycHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTVBQ0JBO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjOTc5ZmFmO1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlIC40NXM7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNDVzO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxufVxyXG5cclxuICAgIC5CdG4tZ3JheTpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcclxuICAgICAgICBib3JkZXItY29sb3I6ICNBNUFDQkE7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4uZm9udHNpemUxMiB7XHJcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmdyaXM1MHBjIHtcclxuICAgIGNvbG9yOiAjOTM5NTk4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ncmlzNjBwYyB7XHJcbiAgICBjb2xvcjogIzdEN0Q3RCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYm9yZGVwdW50b3NncmlzNTAge1xyXG4gICAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7XHJcbiAgICBib3JkZXItY29sb3I6ICM5Mzk1OTg7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpMjAge1xyXG4gICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWFyZ2VuYWJhMTUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGxlY2FoZWFkZXIge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xyXG59XHJcblxyXG4uYnRuLXByaW1hcnkge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbn1cclxuXHJcbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItY29sb3I6ICNlMzE4Mzc7XHJcbn1cclxuXHJcbi5lc3BhY2lvcmFkaW8uaGFzLWVycm9yLFxyXG4uZXNwYWNpb2NoZWNrYm94IC5oYXMtZXJyb3Ige1xyXG4gICAgY29sb3I6ICNlMzE4Mzc7XHJcbn1cclxuXHJcbnRkLmVzcGFjaW9yYWRpby5oYXMtZXJyb3IsXHJcbnRkLmVzcGFjaW9jaGVja2JveCAuaGFzLWVycm9yIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMzE4Mzc7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuICAgIGhlaWdodDogOTNweCAhaW1wb3J0YW50O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLmJsb3F1ZWluZm8ge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tOiAwcHg7XHJcbiAgICBsZWZ0OiAwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuICAgIC5ibG9xdWVpbmZvIC5jb2wtc20tMTAge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzdhYjc7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MSwyNTEsMjUxLDAuNzUpO1xyXG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcclxuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xyXG4gICAgICAgIC8qZm9udC1zaXplOjEycHg7Ki9cclxuICAgIH1cclxuXHJcbiAgICAgICAgLmJsb3F1ZWluZm8gLmNvbC1zbS0xMCAucm93IHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJsb3F1ZWluZm8gLmNvbC1zbS0xMCBiIHtcclxuICAgICAgICAgICAgY29sb3I6ICMzMzdhYjc7XHJcbiAgICAgICAgfVxyXG5cclxuLyouYmxvcXVlaW5mbyAuY29sLXNtLTggLnJvdzpmaXJzdC1jaGlsZCB7XHJcbnBhZGRpbmctdG9wOjEwcHg7XHJcbnBhZGRpbmctYm90dG9tOjVweDtcclxufSovXHJcblxyXG4ubWFyZ2VuYWJhNjAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubm90YWluZm8ge1xyXG4gICAgY29sb3I6ICMzMzdhYjc7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbn1cclxuXHJcbi5tYXJnZW5hYmEzMCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LXRpdGxlLWlucHV0IHtcclxuICAgIGNvbG9yOiAjOTM5NTk4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmFuY2hvMTAwcGMge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hcmdlbml6cTAge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uaWNvbm9jYW1wbyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwcHg7XHJcbiAgICBsZWZ0OiAyNXB4O1xyXG59XHJcblxyXG4ucGFkZGluZ2l6cTMwIHtcclxuICAgIHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYW5jaG8yNTAge1xyXG4gICAgd2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zaXN1c3VhcmlvIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDcuNXB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDkwJTtcclxuICAgIGhlaWdodDogMThweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAvKnRleHQtYWxpZ246cmlnaHQ7Ki9cclxufVxyXG5cclxuICAgIC8qLnNpc3VzdWFyaW8gc3BhbjpmaXJzdC1jaGlsZCB7XHJcbm9wYWNpdHk6MC43NTtcclxubWFyZ2luLXJpZ2h0OjcuNXB4O1xyXG59Ki9cclxuXHJcbiAgICAuc2lzdXN1YXJpbyAuZ2x5cGhpY29uLXVzZXIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIH1cclxuXHJcbi5idG5pY290cmFuc3BhcmVudCBzcGFuIHtcclxuICAgIG9wYWNpdHk6IDAuODtcclxufVxyXG5cclxuLmJ0bmljb3RyYW5zcGFyZW50OmhvdmVyIHNwYW4sXHJcbi5idG5pY290cmFuc3BhcmVudDpmb2N1cyBzcGFuIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5idG4tZGFuZ2VyIHtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51c3IgLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi51c3IgLmdseXBoaWNvbi11c2VyIHtcclxuICAgIHRvcDogLTJweDtcclxufVxyXG5cclxuLm1hcmdlbmFycmkxMCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5uYXZiYXItZml4ZWQtdG9wIHtcclxuICAgIHotaW5kZXg6IDk5MDtcclxufVxyXG5cclxuLyoqIFRhYmxhcyB5IHBhZ2luYWRvICoqL1xyXG5cclxuLlRhYmxlLWhlYWRlciB7XHJcbiAgICBwYWRkaW5nOiA4cHggMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0RBREFEQTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREFEQURBO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxufVxyXG5cclxuICAgIC5UYWJsZS1oZWFkZXIgaDYge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC5UYWJsZS1oZWFkZXIgdWwge1xyXG4gICAgICAgIGNvbG9yOiAjOTk5OTk5O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAuVGFibGUtaGVhZGVyIHVsIGxpIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIH1cclxuXHJcbi5UYWJsZS1zd2FsIHtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xyXG59XHJcblxyXG4gICAgLlRhYmxlLXN3YWwgdHIgdGQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuLkRhdGFUYWJsZS1oZWFkZXIge1xyXG4gICAgcGFkZGluZzogOHB4IDA7XHJcbn1cclxuXHJcbi5EYXRhVGFibGUtaGVhZGVyLS1zZWxlY3RlZCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjREFEQURBO1xyXG4gICAgcGFkZGluZzogNnB4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgY29sb3I6ICMzMzk5RkY7XHJcbn1cclxuXHJcbnVsLlRhYmxlLXBhZ2luYXRpb24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuICAgIHVsLlRhYmxlLXBhZ2luYXRpb24gbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAgICAgdWwuVGFibGUtcGFnaW5hdGlvbiBsaSBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTNweDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEQURBREEgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB1bC5UYWJsZS1wYWdpbmF0aW9uIGxpIGEuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3QUMyNDM7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdWwuVGFibGUtcGFnaW5hdGlvbiBsaSBhOmhvdmVyOm5vdCguYWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTJFMkUyO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4uVGFibGUtb3B0aW9ucyB7XHJcbiAgICBwYWRkaW5nOiAxOHB4IDA7XHJcbn1cclxuXHJcbiAgICAuVGFibGUtb3B0aW9ucyBzZWxlY3Qge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBoZWlnaHQ6IDMxcHg7XHJcbiAgICAgICAgcGFkZGluZzogNXB4IDEzcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRTJFMkUyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICBtYXJnaW46IDAgMTBweDtcclxuICAgIH1cclxuXHJcbi5UYWJsZS1zZWxlY3RlZFJvdyB0ciB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbiAgICAuVGFibGUtc2VsZWN0ZWRSb3cgdHI6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNEOEYxRjYgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuVGFibGUtc2VsZWN0ZWRSb3cgdHIuVGFibGUtc2VsZWN0ZWRSb3ctLXBhaW50ZWQ6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNDNEU5RjEgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbi5UYWJsZS1zZWxlY3RlZFJvdy0tcGFpbnRlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzRFOUYxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbnRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aCwgdGFibGUuZGF0YVRhYmxlIHRib2R5IHRkIHtcclxuICAgIHBhZGRpbmc6IDZweCA4cHg7XHJcbiAgICBmb250LXNpemU6IDEzLjVweDtcclxufVxyXG5cclxuLyoqIGZpbHRyb3MgKiovXHJcblxyXG4uZmlsdHJvcyAuZm9ybS1jb250cm9sIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbn1cclxuXHJcbi5maWx0cm9zIC5idG4ge1xyXG4gICAgcGFkZGluZzogM3B4IDZweDtcclxufVxyXG5cclxuLm1hcmdlbmFiYTAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXJnZW5hYmExMCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ib3Rvbmljb25vZ3JpcyB7XHJcbiAgICBwYWRkaW5nOiA2cHggOHB4IDJweCA4cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTVBQ0JBO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjQTVBQ0JBO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbn1cclxuXHJcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcclxuICAgIHdpZHRoOiA4MCU7XHJcbn1cclxuXHJcbi5pbnB1dC1ncm91cC1hZGRvbiB7XHJcbiAgICB3aWR0aDogMjAlO1xyXG4gICAgdG9wOiAwcHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBwYWRkaW5nOiA5cHg7XHJcbn1cclxuXHJcbiAgICAuaW5wdXQtZ3JvdXAtYWRkb246aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XHJcbiAgICB9XHJcblxyXG4uZmlsdHJvcyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xyXG4gICAgcGFkZGluZzogNnB4IDEycHg7XHJcbn1cclxuXHJcbi5pbnB1dC1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnRhYmxlLWNvbmRlbnNlZCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLyoqIHBhcmEgdGFibGEgY29uIHNjcm9sbCAqKi9cclxuXHJcbi5zY3JvbGxlZHRhYmxlIHRyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xyXG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcclxufVxyXG5cclxuLnNjcm9sbGVkdGFibGUgdGFibGUge1xyXG4gICAgaGVpZ2h0OiAzMDBweDsgLypTZWxlY3QgdGhlIGhlaWdodCBvZiB0aGUgdGFibGUqL1xyXG4gICAgZGlzcGxheTogLW1vei1ncm91cGJveDsgLypGaXJlZm94IEJhZCBFZmZlY3QqL1xyXG59XHJcblxyXG4uc2Nyb2xsZWR0YWJsZSB0Ym9keSB7XHJcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgICBoZWlnaHQ6IDIwMHB4OyAvKlNlbGVjdCB0aGUgaGVpZ2h0IG9mIHRoZSBib2R5Ki9cclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4uc2Nyb2xsYWx0NDAwIHtcclxuICAgIGhlaWdodDogNDAwcHg7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcclxufVxyXG5cclxuLyoqIHBhcmEgcmVwb3J0ZSAqKi9cclxuXHJcbi5jb2xvcmF6dWwge1xyXG4gICAgY29sb3I6ICMzMzdhYjcgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnN1YmhlYWRyZXBvIHtcclxuICAgIGNvbG9yOiAjMzM3YWI3O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbn1cclxuXHJcbi5ib3JkZTJhYmFncmlzMjUge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNjMGMwYzA7XHJcbn1cclxuXHJcbi5wYWRkaW5nOCB7XHJcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tMSwgLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tMiwgLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tMywgLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tNCxcclxuLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tNSwgLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tNiwgLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tNywgLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tOCxcclxuLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tOSwgLmNvbHVtbnBhZGRpbmc4IC5jb2wtc20tMTAsIC5jb2x1bW5wYWRkaW5nOCAuY29sLXNtLTExLCAuY29sdW1ucGFkZGluZzggLmNvbC1zbS0xMiB7XHJcbiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hcmdlbmFycmktMTUge1xyXG4gICAgbWFyZ2luLXRvcDogLTE1cHg7XHJcbn1cclxuXHJcbi5mb25kb2dyaXN0ZW51ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xyXG59XHJcblxyXG4ubWFyZ2VuYWJhODAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogODBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWFyZ2VuYXJyaTQwIHtcclxuICAgIG1hcmdpbi10b3A6IDQwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLyoqIGFqdXN0ZXMgcGFudGFsbGFzICoqL1xyXG5cclxuLnNjcm9sbGhvcmF1dG8ge1xyXG4gICAgb3ZlcmZsb3cteDogYXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYm9yZGVncmlzMjUge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWFyZ2VuYXJyaWFiYTIwIHtcclxuICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLyp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGgge1xyXG5wYWRkaW5nOjhweCAxMHB4O1xyXG59Ki9cclxuXHJcblxyXG5cclxuXHJcbi8qLmNvbC1zbS0xMiwgLmNvbC1zbS0xMCB7XHJcbmJvcmRlcjoxcHggc29saWQgcmVkICFpbXBvcnRhbnQ7XHJcbmJhY2tncm91bmQtY29sb3I6I2UxZTFlMTtcclxufSovXHJcblxyXG5cclxuXHJcblxyXG4iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Message, MessageService, SelectItemGroup } from 'primeng/api';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\nimport { SimuladorService } from './../../datos/simulador.service';\r\nimport { JsonResponse } from './../../libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from './../../libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, DocumentoDTO, ElementoDTO, EspacioDTO, EspacioForm, InputActualizarEstatusDocumento, InputActualizarEstatusEspacio, InputActualizarEstatusPrototipo, InputAgregarEspacio, InputAgregarPrototipo, InputObtenerEspacioDetalle, InputObtenerPrototipoDetalle, OutputAgregarEspacio, OutputAgregarPrototipo, OutputConsultaUsuario, OutputObtenerCostoManoObra, OutputObtenerElementos, OutputObtenerEspacioDetalle, OutputObtenerPrototipoDetalle, PrototipoDTO, PrototipoForm } from './../../modelo';\r\n\r\n@Component({\r\n selector: 'app-administrador',\r\n templateUrl: './administrador.component.html'\r\n //,styleUrls: ['./administrador.component.css']\r\n})\r\nexport class AdministradorComponent implements OnInit {\r\n\r\n public progressSpinner: boolean;\r\n\r\n public usuario: OutputConsultaUsuario;\r\n public idElemento: number | null;\r\n public idEspacio: number | null;\r\n public grupoElementos: SelectItemGroup[];\r\n public datosElemento: DatosElementoDTO;\r\n \r\n //public listPrecioUnitario: OutputObtenerPrecioUnitario[];\r\n //public listPrecioUnitarioEspacio: OutputObtenerPrecioUnitarioEspacio[];\r\n public listCostoManoObra: OutputObtenerCostoManoObra[];\r\n //public listTotalManoObra: OutputObtenerTotalManoObra[];\r\n //public listTotalMateriales: OutputObtenerTotalMateriales[];\r\n\r\n public grupoEspacios: SelectItemGroup[];\r\n public espacio: EspacioDTO;\r\n public prototipo: PrototipoDTO;\r\n\r\n //Simulador\r\n\r\n public simuladorForm: EspacioForm;\r\n\r\n //Espacio\r\n\r\n public espacioForm: EspacioForm;\r\n\r\n\r\n //Prototipo\r\n\r\n @ViewChild('fileUpload') fileUpload: any;\r\n public prototipoForm: PrototipoForm;\r\n public uploadedFiles: any[] = [];\r\n public msgs: Message[] = [];\r\n\r\n //Otros\r\n\r\n public tabPrincipal: number = 0;\r\n\r\n\r\n /**\r\n * \r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private messageService: MessageService, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n console.log('AdministradorComponent -->> ', new Date())\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.loading();\r\n\r\n this.initSimuladorForm();\r\n\r\n this.initEspacioForm()\r\n\r\n this.initPrototipoForm();\r\n\r\n this.usuario = HttpSession.getAttribute('USER');\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initSimuladorForm() {\r\n this.simuladorForm = { nombreEspacio_MensajeError: new FormValidation(null), tab: 0, listaElementos: [] };\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initEspacioForm() {\r\n this.espacioForm = { nombreEspacio_MensajeError: new FormValidation(null), tab: 0, listaElementos: [] };\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initPrototipoForm() {\r\n this.prototipoForm = {\r\n listEspacioSelect: []\r\n , nombrePrototipo_MensajeError: new FormValidation(null)\r\n , tab: 0\r\n , prototipoDetalle: { listDocumento: [], listEspacioxPrototipo: [] }\r\n , listPrototipos: []\r\n , espacioForm: { nombreEspacio_MensajeError: new FormValidation(null) }\r\n };\r\n\r\n\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n private loading(): void {\r\n\r\n this.service.ObtenerElementos().subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.datosElemento = resultado.model;\r\n\r\n this.grupoElementos = [];\r\n\r\n for (let tipoElemento of this.datosElemento.listTipoElementos) {\r\n\r\n let filter: any = this.datosElemento.listElementos.filter(row => row.idTipoElemento == tipoElemento.idTipoElemento);\r\n\r\n let items: any[] = [];\r\n\r\n for (let elemento of filter) {\r\n items.push({ label: elemento.nombreElemento, value: elemento.idElemento });\r\n }\r\n\r\n let dato: any = {\r\n label: tipoElemento.nombreTipoElemento,\r\n items: items\r\n };\r\n\r\n\r\n this.grupoElementos.push(dato);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n });\r\n\r\n this.ObtenerListaEspacio();\r\n this.ObtenerListaPrototipos();\r\n }\r\n\r\n\r\n public _addElemento(): ElementoDTO {\r\n\r\n let entity: OutputObtenerElementos = this.datosElemento.listElementos.filter(row => row.idElemento == this.idElemento)[0];\r\n\r\n let elemento: ElementoDTO = {\r\n idElemento: entity.idElemento,\r\n nombreElemento: entity.nombreElemento,\r\n clave: entity.clave,\r\n idTipoDatoEntrada: entity.idTipoDatoEntrada,\r\n idTipoElemento: entity.idTipoElemento,\r\n unidadMedida: entity.unidadMedida,\r\n nombreTipoDatoEntrada: entity.nombreTipoDatoEntrada,\r\n nombreTipoElemento: entity.nombreTipoElemento,\r\n idManoObra: entity.idManoObra,\r\n largo: 0,\r\n anchoCantidad: 0\r\n };\r\n\r\n if (elemento.idTipoDatoEntrada == 1) {\r\n elemento.largo = 1;\r\n }\r\n\r\n return elemento;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public addElemento(): void {\r\n\r\n let elemento: ElementoDTO = this._addElemento();\r\n\r\n this.simuladorForm.listaElementos.push(elemento);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteElemento(entity: ElementoDTO): void {\r\n\r\n const index = this.simuladorForm.listaElementos.findIndex(user => user == entity);\r\n\r\n this.simuladorForm.listaElementos.splice(index, 1);\r\n\r\n }\r\n\r\n // /**\r\n // * \r\n // * \r\n // */\r\n // public precioUnitario() {\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // let idElementos: number[] = [];\r\n\r\n // for (let elemento of this.simuladorForm.listaElementos) {\r\n // idElementos.push(elemento.idElemento);\r\n // }\r\n\r\n // this.service.ObtenerPrecioUnitario(idElementos).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listPrecioUnitario = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public PrecioUnitarioElemento() {\r\n\r\n // console.log('PrecioUnitarioElemento -->> ')\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // let idElementos: number[] = [];\r\n\r\n // for (let elemento of this.simuladorForm.listaElementos) {\r\n // idElementos.push(elemento.idElemento);\r\n // }\r\n\r\n // let precioUnitarioEspacio: InputObtenerPrecioUnitarioEspacio = { listElementos: idElementos, listEspacios: null };\r\n\r\n // this.service.ObtenerPrecioUnitarioEspacio(precioUnitarioEspacio).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listPrecioUnitarioEspacio = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public PrecioUnitarioEspacio() {\r\n\r\n // if (this.simuladorForm.listEspacios != null && this.simuladorForm.listEspacios.length > 0) {\r\n\r\n // let idEspacio: number[] = [];\r\n\r\n // for (let espacio of this.simuladorForm.listEspacios) {\r\n // idEspacio.push(espacio.idEspacio);\r\n // }\r\n\r\n // let precioUnitarioEspacio: InputObtenerPrecioUnitarioEspacio = { listElementos: null, listEspacios: idEspacio };\r\n\r\n // this.service.ObtenerPrecioUnitarioEspacio(precioUnitarioEspacio).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listPrecioUnitarioEspacio = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // * \r\n // */\r\n // public costoManoObra() {\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // let idElementos: number[] = [];\r\n\r\n // for (let elemento of this.simuladorForm.listaElementos) {\r\n // idElementos.push(elemento.idElemento);\r\n // }\r\n\r\n // this.service.ObtenerCostoManoObra(idElementos).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listCostoManoObra = resultado.model;\r\n // this.calcular();\r\n // }\r\n\r\n // });\r\n\r\n\r\n // }\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public TotalManoObraEspacio() {\r\n\r\n // this.TotalManoObra(this.espacio.idEspacio, null);\r\n // }\r\n\r\n // /**\r\n // * \r\n // */\r\n // public TotalManoObraPrototipo() {\r\n\r\n // this.TotalManoObra(null, this.prototipo.idPrototipo);\r\n // }\r\n\r\n // /**\r\n // * \r\n // * @param idEspacio\r\n // * @param idPrototipo\r\n // */\r\n // public TotalManoObra(idEspacio?: number, idPrototipo?: number) {\r\n\r\n // let idEspacios: number[] = [];\r\n\r\n // if (idEspacio != null && idEspacio > 0) {\r\n\r\n // idEspacios.push(idEspacio);\r\n\r\n // let totalManoObra: InputObtenerTotalManoObra = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalManoObra(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalManoObra = resultado.model;\r\n // }\r\n\r\n // });\r\n // }\r\n\r\n // if (idPrototipo != null && idPrototipo > 0) {\r\n\r\n // let prototipoDetalle: InputObtenerPrototipoDetalle = { idPrototipo: idPrototipo };\r\n\r\n // this.service.ObtenerPrototipoDetalle(prototipoDetalle).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // if (resultado.model.listEspacioxPrototipo != null) {\r\n\r\n // for (let row of resultado.model.listEspacioxPrototipo) {\r\n\r\n // idEspacios.push(row.idEspacio);\r\n\r\n // }\r\n\r\n // let totalManoObra: InputObtenerTotalManoObra = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalManoObra(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalManoObra = resultado.model;\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n // /**\r\n // * \r\n // * @param espacio\r\n // */\r\n // public TotalMaterialesEspacio() {\r\n\r\n // this.TotalMateriales(this.espacio.idEspacio);\r\n // }\r\n\r\n // /**\r\n //* \r\n //* @param espacio\r\n //*/\r\n // public TotalMaterialesPrototipo() {\r\n\r\n // this.TotalMateriales(null, this.prototipo.idPrototipo);\r\n // }\r\n\r\n // /**\r\n // * \r\n // * @param idEspacio\r\n // * @param idPrototipo\r\n // */\r\n // public TotalMateriales(idEspacio?: number, idPrototipo?: number) {\r\n\r\n // let idEspacios: number[] = [];\r\n\r\n // if (idEspacio != null && idEspacio > 0) {\r\n\r\n // idEspacios.push(idEspacio);\r\n\r\n // let totalManoObra: InputObtenerTotalMateriales = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalMateriales(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalMateriales = resultado.model;\r\n // }\r\n\r\n // });\r\n // }\r\n\r\n // if (idPrototipo != null && idPrototipo > 0) {\r\n\r\n // let prototipoDetalle: InputObtenerPrototipoDetalle = { idPrototipo: idPrototipo };\r\n\r\n // this.service.ObtenerPrototipoDetalle(prototipoDetalle).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // if (resultado.model.listEspacioxPrototipo != null) {\r\n\r\n // for (let row of resultado.model.listEspacioxPrototipo) {\r\n\r\n // idEspacios.push(row.idEspacio);\r\n\r\n // }\r\n\r\n // let totalManoObra: InputObtenerTotalMateriales = { listEspacios: idEspacios };\r\n\r\n // this.service.ObtenerTotalMateriales(totalManoObra).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n // this.listTotalMateriales = resultado.model;\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n\r\n // }\r\n\r\n // });\r\n\r\n // }\r\n\r\n // }\r\n\r\n\r\n /**\r\n * \r\n * \r\n */\r\n //public calcular(): void {\r\n\r\n // if (this.simuladorForm.listaElementos != null && this.simuladorForm.listaElementos.length > 0) {\r\n\r\n // for (let entity of this.simuladorForm.listaElementos) {\r\n\r\n // let cantidad: number = 0;\r\n\r\n // if (entity.idTipoDatoEntrada == 1) {\r\n // cantidad = entity.anchoCantidad;\r\n // }\r\n\r\n // if (entity.idTipoDatoEntrada == 2) {\r\n // cantidad = entity.largo * entity.anchoCantidad;\r\n // }\r\n\r\n\r\n // if (this.listPrecioUnitario != null && this.listPrecioUnitario.length > 0) {\r\n\r\n // let filter = this.listPrecioUnitario.filter(row => row.clave == entity.clave);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n\r\n // for (let row of filter) {\r\n // row.costoElementoxCantidad = row.costoElemento * cantidad;\r\n // }\r\n\r\n // }\r\n // }\r\n\r\n // if (this.listCostoManoObra != null && this.listCostoManoObra.length > 0) {\r\n\r\n // let filter = this.listCostoManoObra.filter(row => row.clave == entity.clave);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n\r\n // for (let row of filter) {\r\n // row.costoElemento132xCantidad = row.costoElemento132 * cantidad;\r\n // }\r\n\r\n // }\r\n\r\n // }\r\n\r\n // if (this.listPrecioUnitarioEspacio != null && this.listPrecioUnitarioEspacio.length > 0) {\r\n\r\n // let filter = this.listPrecioUnitarioEspacio.filter(row => row.clave == entity.clave);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n\r\n // for (let row of filter) {\r\n // // row.costoElemento132xCantidad = row.costoElemento132 * cantidad;\r\n // }\r\n\r\n // }\r\n\r\n // }\r\n\r\n\r\n\r\n // }\r\n\r\n // }\r\n\r\n //}\r\n\r\n public salir(): void {\r\n HttpSession.clear();\r\n HttpSession.forward(this._router, 'login');\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n public addElementoEspacio(): void {\r\n\r\n let elemento: ElementoDTO = this._addElemento();\r\n\r\n this.espacioForm.listaElementos.push(elemento);\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteElementoEspacio(entity: ElementoDTO): void {\r\n\r\n const index = this.espacioForm.listaElementos.findIndex(user => user == entity);\r\n\r\n this.espacioForm.listaElementos.splice(index, 1);\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public saveEspacio(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n let espacio: InputAgregarEspacio = { idEspacio: this.espacioForm.idEspacio, nombreEspacio: this.espacioForm.nombreEspacio, idTipoEspacio: 1, listElementos: this.espacioForm.listaElementos };\r\n\r\n this.service.AgregarEspacio(espacio).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.ObtenerListaEspacio();\r\n\r\n this.espacioForm.tab = 0;\r\n\r\n this.initEspacioForm()\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Información guardada correctamente ...`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n } else {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Error al guardar la información...`,\r\n icon: \"error\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n \r\n */\r\n private ObtenerListaEspacio(): void {\r\n\r\n //this.service.ObtenerEspacio().subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // this.espacioForm.listEspacios = resultado.model.listEspacios;\r\n\r\n // this.grupoEspacios = [];\r\n\r\n\r\n // //Obteniendo Tipo de Espacio\r\n\r\n // let listTipoEspacio: TipoEspacioDTO[] = [];\r\n // {\r\n\r\n // for (let espacio of this.espacioForm.listEspacios) {\r\n\r\n // let filter = listTipoEspacio.filter(row => row.nombreTipoEspacio == espacio.nombreTipoEspacio);\r\n\r\n // if (filter != null && filter.length == 0) {\r\n\r\n // let tipoEspacio: TipoEspacioDTO = { nombreTipoEspacio: espacio.nombreTipoEspacio }\r\n\r\n // listTipoEspacio.push(tipoEspacio);\r\n // }\r\n // }\r\n\r\n // }\r\n\r\n // for (let tipoEspacio of listTipoEspacio) {\r\n\r\n // let filter: any = this.espacioForm.listEspacios.filter(row => row.nombreTipoEspacio == tipoEspacio.nombreTipoEspacio);\r\n\r\n // let items: any[] = [];\r\n\r\n // for (let espacio of filter) {\r\n // items.push({ label: espacio.nombreEspacio, value: espacio.idEspacio });\r\n // }\r\n\r\n // let dato: any = {\r\n // label: tipoEspacio.nombreTipoEspacio,\r\n // items: items\r\n // };\r\n\r\n // this.grupoEspacios.push(dato);\r\n\r\n // }\r\n\r\n\r\n // }\r\n\r\n //});\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n\r\n case 'NombreEspacio':\r\n\r\n this.espacioForm.nombreEspacio_MensajeError = new FormValidation(this.espacioForm.nombreEspacio).requered('El nombre del espacio es obligatorio.');\r\n\r\n break;\r\n\r\n case 'NombrePrototipo':\r\n\r\n this.prototipoForm.nombrePrototipo_MensajeError = new FormValidation(this.prototipoForm.nombrePrototipo).requered('El nombre del prototipo es obligatorio.');\r\n\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n this.espacioForm.nombreEspacio_MensajeError = new FormValidation(this.espacioForm.nombreEspacio).requered('El nombre del espacio es obligatorio.');\r\n\r\n if (this.espacioForm.nombreEspacio_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public detalleEspacio(entity: EspacioDTO): void {\r\n\r\n this.espacio = entity;\r\n\r\n this.espacioForm.typeView = 'Detalle';\r\n\r\n this.espacioForm.tab = 1;\r\n\r\n this.getEspacio(this.espacioForm, entity);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async cloneEspacio(entity: EspacioDTO) {\r\n\r\n this.espacioForm.typeView = 'Clonar';\r\n\r\n this.espacioForm.tab = 1;\r\n\r\n this.getEspacio(this.espacioForm, entity);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async editarEspacio(entity: EspacioDTO) {\r\n\r\n this.espacioForm.typeView = 'Editar';\r\n\r\n this.espacioForm.tab = 1;\r\n\r\n this.getEspacio(this.espacioForm, entity);\r\n\r\n }\r\n\r\n /**\r\n *\r\n */\r\n private ObtenerListaPrototipos(): void {\r\n\r\n //this.service.ObtenerPrototipo().subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // this.prototipoForm.listPrototipos = resultado.model.listPrototipo;\r\n\r\n // }\r\n\r\n //});\r\n\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n public addEspacioPrototipo(): void {\r\n\r\n if (this.idEspacio != null) {\r\n let entity: EspacioDTO = this.espacioForm.listEspacios.filter(row => row.idEspacio == this.idEspacio)[0];\r\n this.prototipoForm.listEspacioSelect.push(entity);\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteEspacioPrototipo(entity: EspacioDTO): void {\r\n this.prototipoForm.listEspacioSelect = this.prototipoForm.listEspacioSelect.filter(row => row.idEspacio != entity.idEspacio);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlarioPrototipo(): boolean {\r\n\r\n var error = false;\r\n\r\n this.prototipoForm.nombrePrototipo_MensajeError = new FormValidation(this.prototipoForm.nombrePrototipo).requered('El nombre del prototipo es obligatorio.');\r\n\r\n if (this.prototipoForm.nombrePrototipo_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public savePrototipo(): void {\r\n\r\n if (!this.validarFormumlarioPrototipo()) {\r\n\r\n let idEspacios: Array = [];\r\n\r\n for (let row of this.prototipoForm.listEspacioSelect) {\r\n\r\n idEspacios.push(row.idEspacio);\r\n }\r\n\r\n let entity: InputAgregarPrototipo = {\r\n\r\n idPrototipo: this.prototipoForm.idPrototipo\r\n , nombrePrototipo: this.prototipoForm.nombrePrototipo\r\n , idTipoPrototipo: 1\r\n , idEspacios: idEspacios\r\n };\r\n\r\n this.service.AgregarPrototipo(entity).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.ObtenerListaPrototipos();\r\n\r\n this.prototipoForm.tab = 0;\r\n\r\n this.initPrototipoForm()\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Información guardada correctamente ...`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n } else {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Error al guardar la información...`,\r\n icon: \"error\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param typeView\r\n */\r\n private getPrototipo(entity: PrototipoDTO, typeView: string): void {\r\n\r\n let dato: InputObtenerPrototipoDetalle = { idPrototipo: entity.idPrototipo };\r\n\r\n this.service.ObtenerPrototipoDetalle(dato).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.prototipoForm.prototipoDetalle = resultado.model;\r\n\r\n this.prototipoForm.listEspacioSelect = [];\r\n\r\n for (let espacioxPrototipo of this.prototipoForm.prototipoDetalle.listEspacioxPrototipo) {\r\n\r\n let filter = this.espacioForm.listEspacios.filter(row => row.idEspacio == espacioxPrototipo.idEspacio);\r\n\r\n if (filter != null && filter.length > 0) {\r\n this.prototipoForm.listEspacioSelect.push(filter[0]);\r\n }\r\n\r\n }\r\n\r\n this.prototipoForm.nombrePrototipo = null;\r\n this.prototipoForm.idPrototipo = null;\r\n this.prototipoForm.nombrePrototipo_MensajeError = new FormValidation(null);\r\n\r\n if (typeView == 'Detalle' || typeView == 'Editar') {\r\n this.prototipoForm.nombrePrototipo = this.prototipoForm.prototipoDetalle.prototipo.nombrePrototipo;\r\n this.prototipoForm.idPrototipo = this.prototipoForm.prototipoDetalle.prototipo.idPrototipo;\r\n }\r\n\r\n if (typeView == 'Clonar') {\r\n this.prototipoForm.prototipoDetalle.listDocumento = [];\r\n }\r\n\r\n this.prototipoForm.tab = 1;\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public detallePrototipo(entity: PrototipoDTO): void {\r\n\r\n this.prototipo = entity;\r\n\r\n this.prototipoForm.typeView = 'Detalle';\r\n\r\n this.getPrototipo(entity, this.prototipoForm.typeView);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public clonePrototipo(entity: PrototipoDTO): void {\r\n\r\n this.prototipoForm.typeView = 'Clonar';\r\n\r\n this.getPrototipo(entity, this.prototipoForm.typeView);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public editarPrototipo(entity: PrototipoDTO): void {\r\n\r\n this.prototipoForm.typeView = 'Editar';\r\n\r\n this.getPrototipo(entity, this.prototipoForm.typeView);\r\n }\r\n\r\n /**\r\n * \r\n * @param e\r\n */\r\n public onChangeTab(e): void {\r\n this.tabPrincipal = e.index;\r\n }\r\n\r\n /**\r\n * \r\n * @param e\r\n */\r\n public onChangeTabEspacio(e): void {\r\n this.espacioForm.tab = e.index;\r\n }\r\n\r\n /**\r\n * \r\n * @param e\r\n */\r\n public onChangeTabPrototipo(e): void {\r\n this.prototipoForm.tab = e.index;\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n * @param fileUpload\r\n */\r\n public onFileUpload(event: { files: File }, fileUpload): void {\r\n\r\n this.progressSpinner = true;\r\n\r\n console.log('onFileUpload -->> ', event)\r\n\r\n var excelParametros = { idPrototipo: this.prototipoForm.idPrototipo };\r\n\r\n this.service.AgregarDocumento(event, excelParametros).subscribe(resultado => {\r\n\r\n console.log('resultado -->> ', resultado);\r\n\r\n if (resultado.code == 200) {\r\n\r\n this.fileUpload.clear();\r\n\r\n this.editarPrototipo(this.prototipoForm.prototipoDetalle.prototipo)\r\n\r\n this.progressSpinner = false;\r\n\r\n this.msgs = [];\r\n this.msgs.push({ severity: 'success', summary: 'Archivo(s) subido(s) ...', detail: '' });\r\n\r\n setTimeout(() => {\r\n this.msgs = [];\r\n }, 4000);\r\n\r\n } else {\r\n\r\n }\r\n\r\n });;\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangeEspacioPublicar(entity: EspacioDTO): void {\r\n\r\n if (entity.activo == false) {\r\n entity.activo = null;\r\n }\r\n\r\n let dato: InputActualizarEstatusEspacio = { idEspacios: [entity.idEspacio], activo: entity.activo };\r\n\r\n this.service.ActualizarEstatusEspacio(dato).subscribe(resultado => {\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteEspacio(entity: EspacioDTO): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el prototipo`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusEspacio = { idEspacios: [entity.idEspacio], activo: false };\r\n\r\n this.service.ActualizarEstatusEspacio(dato).subscribe(resultado => {\r\n this.ObtenerListaEspacio();\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangePrototipoPublicar(entity: PrototipoDTO): void {\r\n\r\n if (entity.activo == false) {\r\n entity.activo = null;\r\n }\r\n\r\n let dato: InputActualizarEstatusPrototipo = { idPrototipos: [entity.idPrototipo], activo: entity.activo };\r\n\r\n this.service.ActualizarEstatusPrototipo(dato).subscribe(resultado => {\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deletePrototipo(entity: PrototipoDTO): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el prototipo`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusPrototipo = { idPrototipos: [entity.idPrototipo], activo: false };\r\n\r\n this.service.ActualizarEstatusPrototipo(dato).subscribe(resultado => {\r\n this.ObtenerListaPrototipos();\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteDocumento(entity: DocumentoDTO): void {\r\n\r\n console.error('deleteDocumento -->> ')\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el documento`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusDocumento = { idDocumento: entity.idDocumento, documentoActivo: false };\r\n\r\n this.service.ActualizarEstatusDocumento(dato).subscribe(resultado => {\r\n\r\n this.getPrototipo(this.prototipoForm.prototipoDetalle.prototipo, this.prototipoForm.typeView)\r\n\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n private _getEspacio(espacioForm: EspacioForm, resultado: JsonResponse) {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n if (espacioForm.typeView == 'Detalle' || espacioForm.typeView == 'Editar') {\r\n espacioForm.idEspacio = resultado.model.espacio.idEspacio;\r\n espacioForm.nombreEspacio = resultado.model.espacio.nombreEspacio;\r\n }\r\n\r\n espacioForm.listaElementos = [];\r\n\r\n if (resultado.model.listElementos != null) {\r\n\r\n espacioForm.listaElementos = resultado.model.listElementos;\r\n\r\n for (let row of espacioForm.listaElementos) {\r\n row.nombreElemento = row.nombreElementoEsp;\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param typeView\r\n */\r\n private getEspacio(espacioForm: EspacioForm, entity: EspacioDTO): void {\r\n\r\n let dato: InputObtenerEspacioDetalle = { idEspacio: entity.idEspacio };\r\n\r\n this.service.ObtenerEspacioDetalle(dato).subscribe((resultado: JsonResponse) => {\r\n\r\n this._getEspacio(espacioForm, resultado);\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async detalleEspacioPrototipo(entity: EspacioDTO) {\r\n\r\n this.prototipoForm.espacioForm.typeView = 'Editar';\r\n\r\n this.getEspacio(this.prototipoForm.espacioForm, entity);\r\n\r\n this.prototipoForm.tab = 2;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public AgregarEspacio(): void {\r\n this.idElemento = 0;\r\n this.espacioForm.idEspacio = null;\r\n this.espacioForm.nombreEspacio = null;\r\n this.espacioForm.listaElementos = [];\r\n this.espacioForm.typeView = 'Agregar';\r\n this.espacioForm.tab = 1;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public AgregarPrototipo(): void {\r\n this.idElemento = 0;\r\n this.prototipoForm.idPrototipo = null;\r\n this.prototipoForm.nombrePrototipo = null;\r\n this.prototipoForm.listEspacioSelect = [];\r\n this.prototipoForm.typeView = 'Agregar';\r\n this.prototipoForm.tab = 1;\r\n this.prototipoForm.prototipoDetalle = null;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LazyLoadEvent } from 'primeng/api/public_api';\r\nimport { Table } from 'primeng/table';\r\nimport { SimuladorService } from 'src/app/datos/simulador.service';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { ServicioIndicadorCarga } from 'src/app/libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { JsonResponse } from 'src/app/libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from 'src/app/libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, ElementosDTO, ElementosForm, InputObtenerElementos_Pages, OutputObtenerElementos_Pages } from 'src/app/modelo';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n selector: 'app-catalogo-elementos',\r\n templateUrl: './catalogo-elementos.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\nexport class CatalogoElementosComponent implements OnInit {\r\n\r\n public datosElementoDTO: DatosElementoDTO;\r\n public modalTitulo: string;\r\n public modal: boolean = false;\r\n\r\n @ViewChild('tabla') tabla: Table;\r\n public isLoading: boolean;\r\n public elementosDTO: ElementosDTO;\r\n public filtro: ElementosForm;\r\n public entidad: ElementosForm;\r\n\r\n\r\n //Validaciones\r\n\r\n public Clave_MensajeError: FormValidation = new FormValidation(null);\r\n public NombreElemento_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoElemento_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoDatoEntrada_MensajeError: FormValidation = new FormValidation(null);\r\n public UnidadMedida_MensajeError: FormValidation = new FormValidation(null);\r\n public Autoproduccion_MensajeError: FormValidation = new FormValidation(null);\r\n public Acabado_MensajeError: FormValidation = new FormValidation(null);\r\n\r\n //Menu\r\n\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param servicioIndicadorCarga\r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private servicioIndicadorCarga: ServicioIndicadorCarga, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n ngOnInit() {\r\n this.init();\r\n this.loading();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private init(): void {\r\n this.filtro = {};\r\n this.elementosDTO = { listOutputObtenerElementos: [], totalRecords: 0 };\r\n this.entidad = {};\r\n this.initValidacion();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initValidacion(): void {\r\n this.Clave_MensajeError = new FormValidation(null);\r\n this.NombreElemento_MensajeError = new FormValidation(null);\r\n this.TipoElemento_MensajeError = new FormValidation(null);\r\n this.TipoDatoEntrada_MensajeError = new FormValidation(null);\r\n this.UnidadMedida_MensajeError = new FormValidation(null);\r\n this.Autoproduccion_MensajeError = new FormValidation(null);\r\n this.Acabado_MensajeError = new FormValidation(null);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private loading(): void {\r\n this.service.ObtenerElementos().subscribe((resultado: JsonResponse) => {\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.datosElementoDTO = resultado.model;\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public nuevoRegistro(): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = {};\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Agregar';\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public editar(entity: OutputObtenerElementos_Pages): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = {};\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Editar registro';\r\n\r\n this.entidad.clave = entity.clave;\r\n this.entidad.nombreElemento = entity.nombreElemento;\r\n this.entidad.tipoElemento = entity.idtipoElemento;\r\n this.entidad.tipoDatoEntrada = entity.idTipoDatoEntrada;\r\n this.entidad.unidadMedida = entity.unidadMedida;\r\n this.entidad.autoproduccion = entity.esAutoproduccion;\r\n this.entidad.acabado = entity.esAcabado;\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public guardar(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n // let entity: InputAgregarManoObra = {\r\n // idTipoElemento: this.entidad.categoria,\r\n // nombreElemento: this.entidad.nombreElemento,\r\n // idElemento: this.entidad.elemento,\r\n // unidadMedida: this.entidad.unidadMedida,\r\n // idPersonalUtilizar: this.entidad.personalUtilizar,\r\n // rendimientoxSemana: this.entidad.rendimientoSemana,\r\n // salarioSemanal: this.entidad.costoSemana,\r\n // volumenEjecutar: this.entidad.volumenEjecutar,\r\n // clave: this.entidad.clave,\r\n // idTipoDatoEntrada: this.entidad.tipoDatoEntrada,\r\n // esAutoproduccion: this.entidad.esAutoproduccion,\r\n // idTipoManoObra: this.entidad.tipoManoObra\r\n // };\r\n\r\n // this.service.AgregarManoObra(entity).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // this.closeModal();\r\n\r\n // this.servicioAlertas.mostrarConOpciones({\r\n // title: \"Simulador RUV\",\r\n // text: `El registro se guardó con éxito.`,\r\n // icon: \"success\",\r\n // showCancelButton: false,\r\n // confirmButtonColor: '#3085d6',\r\n // cancelButtonColor: '#3085d6',\r\n // confirmButtonText: 'Aceptar',\r\n // cancelButtonText: 'Cancelar'\r\n // }).then((result) => {\r\n\r\n // console.log('result.value -->> ', result.value)\r\n\r\n // if (result.value) {\r\n // console.log('true')\r\n // } else {\r\n\r\n // if (result.dismiss === Swal.DismissReason.cancel) {\r\n // console.log('false')\r\n // }\r\n // }\r\n\r\n // })\r\n\r\n // }\r\n // });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public eliminar(entity: OutputObtenerElementos_Pages): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n html: ` 
Está seguro que desea eliminar el registro
\"${entity.nombreElemento}\"

 `,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n\r\n console.log('true')\r\n\r\n {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n text: `El registro se eliminó con éxito.`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n console.log('true')\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n case 'Clave':\r\n this.Clave_MensajeError = new FormValidation(this.entidad.clave).requered('La clave es obligatoria.');\r\n break;\r\n case 'NombreElemento':\r\n this.NombreElemento_MensajeError = new FormValidation(this.entidad.nombreElemento).requered('El nombre del elemento es obligatorio.');\r\n break;\r\n case 'TipoElemento':\r\n this.TipoElemento_MensajeError = new FormValidation(this.entidad.tipoElemento).requered('El tipo de elemento es obligatorio.');\r\n break;\r\n case 'TipoDatoEntrada':\r\n this.TipoDatoEntrada_MensajeError = new FormValidation(this.entidad.tipoDatoEntrada).requered('El tipo de dato de entrada es obligatorio.');\r\n break;\r\n case 'UnidadMedida':\r\n this.UnidadMedida_MensajeError = new FormValidation(this.entidad.unidadMedida).requered('La unidad de medida es obligatoria.');\r\n break;\r\n case 'Autoproduccion':\r\n this.Autoproduccion_MensajeError = new FormValidation(this.entidad.autoproduccion).requered('La autoproducción es obligatoria.');\r\n break;\r\n case 'Acabado':\r\n this.Acabado_MensajeError = new FormValidation(this.entidad.acabado).requered('El acabado es obligatoria.');\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n this.Clave_MensajeError = new FormValidation(this.entidad.clave).requered('La clave es obligatoria.');\r\n\r\n if (this.Clave_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.NombreElemento_MensajeError = new FormValidation(this.entidad.nombreElemento).requered('El nombre del elemento es obligatorio.');\r\n\r\n if (this.NombreElemento_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoElemento_MensajeError = new FormValidation(this.entidad.tipoElemento).requered('El tipo de elemento es obligatorio.');\r\n\r\n if (this.TipoElemento_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoDatoEntrada_MensajeError = new FormValidation(this.entidad.tipoDatoEntrada).requered('El tipo de dato de entrada es obligatorio.');\r\n\r\n if (this.TipoDatoEntrada_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.UnidadMedida_MensajeError = new FormValidation(this.entidad.unidadMedida).requered('La unidad de medida es obligatoria.');\r\n\r\n if (this.UnidadMedida_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.Autoproduccion_MensajeError = new FormValidation(this.entidad.autoproduccion).requered('La autoproducción es obligatoria.');\r\n\r\n if (this.Autoproduccion_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.Acabado_MensajeError = new FormValidation(this.entidad.acabado).requered('El acabado es obligatoria.');\r\n\r\n if (this.Acabado_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeModal(): void {\r\n this.modal = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public showModalEditar(): void {\r\n this.modal = true;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param form\r\n */\r\n private setFilter(entity: DatosElementoDTO, form: ElementosForm): void {\r\n\r\n let lista: any = [{ label: 'Si', value: true }, { label: 'No', value: false }];\r\n\r\n form.listAcabado = lista;\r\n form.listAutoproduccion = lista;\r\n form.listTipoDatoEntrada = entity.listTipoDatoEntrada;\r\n form.listTipoElemento = entity.listTipoElementos;\r\n form.listUnidadMedida = entity.listUnidadMedida;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Limpiar(): void {\r\n this.init();\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n this.Filtrar();\r\n this.tabla._rows = 10;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Filtrar(): void {\r\n this.loadCarsLazy(null);\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n */\r\n public loadCarsLazy(event: LazyLoadEvent) {\r\n\r\n this.isLoading = true;\r\n\r\n //in a real application, make a remote request to load data using state metadata from event\r\n //event.first = First row offset\r\n //event.rows = Number of rows per page\r\n //event.sortField = Field name to sort with\r\n //event.sortOrder = Sort order as number, 1 for asc and -1 for dec\r\n //filters: FilterMetadata object having field as key and filter value, filter matchMode as value\r\n\r\n //imitate db connection over a network\r\n\r\n console.log('event -->> ', event);\r\n\r\n let page: number = 1;\r\n let tamanioPagina = 10;\r\n\r\n if (event != null && event.first != null) {\r\n page = (event.first + event.rows) / event.rows;\r\n tamanioPagina = event.rows;\r\n }\r\n\r\n let data: InputObtenerElementos_Pages = {\r\n tamanioPagina: tamanioPagina,\r\n pagina: page,\r\n clave: this.filtro.clave,\r\n nombreElemento: this.filtro.nombreElemento,\r\n idTipoElemento: this.filtro.tipoElemento,\r\n idTipoDatoEntrada: this.filtro.tipoDatoEntrada,\r\n unidadMedida: this.filtro.unidadMedida,\r\n esAutoproduccion: this.filtro.autoproduccion,\r\n esAcabado: this.filtro.acabado,\r\n };\r\n\r\n setTimeout(() => {\r\n\r\n this.service.ObtenerElementosPages(data).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.elementosDTO = resultado.model;\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n\r\n }, 1000);\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LazyLoadEvent } from 'primeng/api/public_api';\r\nimport { Table } from 'primeng/table';\r\nimport { SimuladorService } from 'src/app/datos/simulador.service';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { ServicioIndicadorCarga } from 'src/app/libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { JsonResponse } from 'src/app/libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from 'src/app/libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, ElementosForm, InputObtenerEspacio_Pages, OutputObtenerElementos_Pages, OutputObtenerEspacio_Pages, EspacioForm, InputActualizarEstatusEspacio, EspacioDTO, ElementoDTO, OutputObtenerElementos, InputAgregarEspacio, OutputAgregarEspacio, InputObtenerEspacioDetalle, OutputObtenerEspacioDetalle } from 'src/app/modelo';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { MenuComponent } from '../menu/menu.component';\r\nimport { SelectItemGroup, Message, MessageService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-catalogo-espacios',\r\n templateUrl: './catalogo-espacios.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\nexport class CatalogoEspaciosComponent implements OnInit {\r\n\r\n public datosElementoDTO: DatosElementoDTO;\r\n public modalTitulo: string;\r\n public modal: boolean = false;\r\n\r\n @ViewChild('tabla') tabla: Table;\r\n public isLoading: boolean;\r\n public espacioDTO: OutputObtenerEspacio_Pages;\r\n public filtro: EspacioForm;\r\n public entidad: EspacioForm;\r\n public idElemento: number | null;\r\n public grupoElementos: SelectItemGroup[];\r\n\r\n //Validaciones\r\n\r\n public NombreEspacio_MensajeError: FormValidation = new FormValidation(null);\r\n public ListaElementos_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoEspacio_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoEtapa_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoPiso_MensajeError: FormValidation = new FormValidation(null);\r\n\r\n\r\n\r\n //Menu\r\n\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param servicioIndicadorCarga\r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private servicioIndicadorCarga: ServicioIndicadorCarga, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n ngOnInit() {\r\n this.init();\r\n this.loading();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private init(): void {\r\n this.filtro = {};\r\n this.espacioDTO = { listEspacios: [], totalRecords: 0 };\r\n this.entidad = { listaElementos: [] };\r\n this.initValidacion();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initValidacion(): void {\r\n this.NombreEspacio_MensajeError = new FormValidation(null);\r\n this.ListaElementos_MensajeError = new FormValidation(null);\r\n this.TipoEspacio_MensajeError = new FormValidation(null);\r\n this.TipoEtapa_MensajeError = new FormValidation(null);\r\n this.TipoPiso_MensajeError = new FormValidation(null);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private loading(): void {\r\n\r\n this.service.ObtenerElementos().subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.datosElementoDTO = resultado.model;\r\n\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n\r\n this.grupoElementos = [];\r\n\r\n for (let tipoElemento of this.datosElementoDTO.listTipoElementos) {\r\n\r\n let filter: any = this.datosElementoDTO.listElementos.filter(row => row.idTipoElemento == tipoElemento.idTipoElemento);\r\n\r\n let items: any[] = [];\r\n\r\n for (let elemento of filter) {\r\n items.push({ label: elemento.nombreElemento, value: elemento.idElemento });\r\n }\r\n\r\n let dato: any = {\r\n label: tipoElemento.nombreTipoElemento,\r\n items: items\r\n };\r\n\r\n this.grupoElementos.push(dato);\r\n\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public nuevoRegistro(): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = { idEspacio: null, listaElementos: [] };\r\n\r\n this.idElemento = null;\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Agregar registro';\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public editar(entity: EspacioDTO): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = { typeView: 'Editar', etapa: entity.idEtapa, piso: entity.idPiso, tipoEspacio: entity.idTipoEspacio };\r\n\r\n this.idElemento = null;\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Editar registro';\r\n\r\n this.getEspacio(entity.idEspacio)\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public clonar(entity: EspacioDTO): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = { typeView: 'Clonar', etapa: entity.idEtapa, piso: entity.idPiso, tipoEspacio: entity.idTipoEspacio };\r\n\r\n this.idElemento = null;\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Agregar registro';\r\n\r\n this.getEspacio(entity.idEspacio)\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public guardar(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n let espacio: InputAgregarEspacio = {\r\n idEspacio: this.entidad.idEspacio,\r\n nombreEspacio: this.entidad.nombreEspacio,\r\n idTipoEspacio: this.entidad.tipoEspacio,\r\n listElementos: this.entidad.listaElementos,\r\n idPiso: this.entidad.piso,\r\n idEtapaPrototipo: this.entidad.etapa\r\n };\r\n\r\n this.service.AgregarEspacio(espacio).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.closeModal();\r\n\r\n this.Filtrar();\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Información guardada correctamente ...`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n\r\n })\r\n\r\n } else {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Error al guardar la información...`,\r\n icon: \"error\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n })\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n case 'NombreEspacio':\r\n this.NombreEspacio_MensajeError = new FormValidation(this.entidad.nombreEspacio).requered('El nombre del espacio es obligatorio.');\r\n break;\r\n\r\n case 'TipoEspacio':\r\n this.TipoEspacio_MensajeError = new FormValidation(this.entidad.tipoEspacio).requered('El tipo de espacio es obligatorio.');\r\n break;\r\n\r\n case 'TipoEtapa':\r\n this.TipoEtapa_MensajeError = new FormValidation(this.entidad.etapa).requered('El tipo de etapa es obligatorio.');\r\n break;\r\n\r\n case 'TipoPiso':\r\n this.TipoPiso_MensajeError = new FormValidation(this.entidad.piso).requered('El tipo de piso es obligatorio.');\r\n break;\r\n\r\n case 'ListaElementos':\r\n\r\n this.ListaElementos_MensajeError = new FormValidation(null);\r\n\r\n if (this.entidad.listaElementos.length == 0) {\r\n this.ListaElementos_MensajeError.requered('Debe de ingresar al menos un elemento en la lista');\r\n }\r\n\r\n break;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n this.NombreEspacio_MensajeError = new FormValidation(this.entidad.nombreEspacio).requered('El nombre del espacio es obligatorio.');\r\n\r\n if (this.NombreEspacio_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.ListaElementos_MensajeError = new FormValidation(null);\r\n\r\n if (this.entidad.listaElementos.length == 0) {\r\n this.ListaElementos_MensajeError.requered('Debe de ingresar al menos un elemento en la lista');\r\n }\r\n\r\n if (this.ListaElementos_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoEspacio_MensajeError = new FormValidation(this.entidad.tipoEspacio).requered('El tipo de espacio es obligatorio.');\r\n\r\n if (this.TipoEspacio_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoEtapa_MensajeError = new FormValidation(this.entidad.etapa).requered('El tipo de etapa es obligatorio.');\r\n\r\n if (this.TipoEtapa_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoPiso_MensajeError = new FormValidation(this.entidad.piso).requered('El tipo de piso es obligatorio.');\r\n\r\n if (this.TipoPiso_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeModal(): void {\r\n this.modal = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public showModalEditar(): void {\r\n this.modal = true;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param form\r\n */\r\n private setFilter(entity: DatosElementoDTO, form: EspacioForm): void {\r\n form.listTipoEspacio = entity.listTipoEspacio;\r\n form.listEtapa = entity.listEtapa;\r\n form.listPiso = entity.listPiso;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Limpiar(): void {\r\n this.init();\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n this.Filtrar();\r\n this.tabla._rows = 10;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Filtrar(): void {\r\n this.loadCarsLazy(null);\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n */\r\n public loadCarsLazy(event: LazyLoadEvent) {\r\n\r\n this.isLoading = true;\r\n\r\n //in a real application, make a remote request to load data using state metadata from event\r\n //event.first = First row offset\r\n //event.rows = Number of rows per page\r\n //event.sortField = Field name to sort with\r\n //event.sortOrder = Sort order as number, 1 for asc and -1 for dec\r\n //filters: FilterMetadata object having field as key and filter value, filter matchMode as value\r\n\r\n //imitate db connection over a network\r\n\r\n console.log('event -->> ', event);\r\n\r\n let page: number = 1;\r\n let tamanioPagina = 10;\r\n\r\n if (event != null && event.first != null) {\r\n page = (event.first + event.rows) / event.rows;\r\n tamanioPagina = event.rows;\r\n }\r\n\r\n let data: InputObtenerEspacio_Pages = {\r\n tamanioPagina: tamanioPagina,\r\n pagina: page,\r\n nombreEspacio: this.filtro.nombreEspacio,\r\n idTipoEspacio: this.filtro.tipoEspacio,\r\n idPiso: this.filtro.piso,\r\n idEtapa: this.filtro.etapa\r\n };\r\n\r\n setTimeout(() => {\r\n\r\n this.service.ObtenerEspacioPages(data).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.espacioDTO = resultado.model;\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangePublicar(entity: EspacioDTO): void {\r\n\r\n if (entity.activo == false) {\r\n entity.activo = null;\r\n }\r\n\r\n let dato: InputActualizarEstatusEspacio = { idEspacios: [entity.idEspacio], activo: entity.activo };\r\n\r\n this.service.ActualizarEstatusEspacio(dato).subscribe(resultado => {\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public delete(entity: EspacioDTO): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el espacio [ ${entity.nombreEspacio} ]`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusEspacio = { idEspacios: [entity.idEspacio], activo: false };\r\n\r\n this.service.ActualizarEstatusEspacio(dato).subscribe(resultado => {\r\n this.Filtrar();\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public addElemento(): void {\r\n\r\n let entity: OutputObtenerElementos = this.datosElementoDTO.listElementos.filter(row => row.idElemento == this.idElemento)[0];\r\n\r\n let elemento: ElementoDTO = {\r\n idElemento: entity.idElemento,\r\n nombreElemento: entity.nombreElemento,\r\n clave: entity.clave,\r\n idTipoDatoEntrada: entity.idTipoDatoEntrada,\r\n idTipoElemento: entity.idTipoElemento,\r\n unidadMedida: entity.unidadMedida,\r\n nombreTipoDatoEntrada: entity.nombreTipoDatoEntrada,\r\n nombreTipoElemento: entity.nombreTipoElemento,\r\n idManoObra: entity.idManoObra,\r\n largo: 0,\r\n anchoCantidad: 0\r\n };\r\n\r\n if (elemento.idTipoDatoEntrada == 1) {\r\n elemento.largo = 1;\r\n }\r\n\r\n this.entidad.listaElementos.push(elemento);\r\n\r\n this.actualizarErrores('ListaElementos');\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteElemento(entity: ElementoDTO): void {\r\n\r\n const index = this.entidad.listaElementos.findIndex(row => row == entity);\r\n\r\n this.entidad.listaElementos.splice(index, 1);\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param idEspacio\r\n */\r\n private async getEspacio(idEspacio: number) {\r\n\r\n let dato: InputObtenerEspacioDetalle = { idEspacio: idEspacio };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerEspacioDetalle(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n if (this.entidad.typeView == 'Detalle' || this.entidad.typeView == 'Editar') {\r\n this.entidad.idEspacio = resultado.model.espacio.idEspacio;\r\n this.entidad.nombreEspacio = resultado.model.espacio.nombreEspacio;\r\n }\r\n\r\n this.entidad.listaElementos = [];\r\n\r\n if (resultado.model.listElementos != null) {\r\n\r\n this.entidad.listaElementos = resultado.model.listElementos;\r\n\r\n for (let row of this.entidad.listaElementos) {\r\n row.nombreElemento = row.nombreElementoEsp;\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n}","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LazyLoadEvent } from 'primeng/api/public_api';\r\nimport { Table } from 'primeng/table';\r\nimport { SimuladorService } from 'src/app/datos/simulador.service';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { ServicioIndicadorCarga } from 'src/app/libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { JsonResponse } from 'src/app/libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from 'src/app/libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { CatalogoManoObraDTO, CatalogoManoObraForm, DatosElementoDTO, InputAgregarManoObra, InputObtenerCatalogoManoObra, OutputObtenerCatalogoManoObra } from 'src/app/modelo';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n selector: 'app-catalogo-mano-obra',\r\n templateUrl: './catalogo-mano-obra.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\nexport class CatalogoManoObraComponent implements OnInit {\r\n\r\n public datosElementoDTO: DatosElementoDTO;\r\n public modalTitulo: string;\r\n public modalEditar: string = 'modal fade';\r\n public displayBasic: boolean = false;\r\n\r\n @ViewChild('tabla') tabla: Table;\r\n public isLoading: boolean;\r\n public catalogoManoObraDTO: CatalogoManoObraDTO;\r\n public filtro: CatalogoManoObraForm;\r\n public entidad: CatalogoManoObraForm;\r\n\r\n\r\n //Validaciones\r\n\r\n public Categoria_MensajeError: FormValidation = new FormValidation(null);\r\n public NombreElemento_MensajeError: FormValidation = new FormValidation(null);\r\n public UnidadMedida_MensajeError: FormValidation = new FormValidation(null);\r\n public Personal_MensajeError: FormValidation = new FormValidation(null);\r\n public RendimientoSemana_MensajeError: FormValidation = new FormValidation(null);\r\n public CostoSemana_MensajeError: FormValidation = new FormValidation(null);\r\n public VolumenEjecutar_MensajeError: FormValidation = new FormValidation(null);\r\n public Clave_MensajeError: FormValidation = new FormValidation(null);\r\n public EsAutoproduccion_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoDatoEntrada_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoManoObra_MensajeError: FormValidation = new FormValidation(null);\r\n\r\n //Menu\r\n\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param servicioIndicadorCarga\r\n * @param servicioAlertas\r\n * @param service\r\n */\r\n constructor(private servicioIndicadorCarga: ServicioIndicadorCarga, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n ngOnInit() {\r\n this.init();\r\n this.loading();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private init(): void {\r\n\r\n this.filtro = {};\r\n this.catalogoManoObraDTO = { listCatalogoManoObra: [], totalRecords: 0 };\r\n this.entidad = { listCategoria: [], listUnidadMedida: [], listPersonalUtilizar: [], listElemento: [] };\r\n this.initValidacion();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initValidacion(): void {\r\n this.Categoria_MensajeError = new FormValidation(null);\r\n this.NombreElemento_MensajeError = new FormValidation(null);\r\n this.UnidadMedida_MensajeError = new FormValidation(null);\r\n this.Personal_MensajeError = new FormValidation(null);\r\n this.RendimientoSemana_MensajeError = new FormValidation(null);\r\n this.CostoSemana_MensajeError = new FormValidation(null);\r\n this.VolumenEjecutar_MensajeError = new FormValidation(null);\r\n this.Clave_MensajeError = new FormValidation(null);\r\n this.EsAutoproduccion_MensajeError = new FormValidation(null);\r\n this.TipoDatoEntrada_MensajeError = new FormValidation(null);\r\n this.TipoManoObra_MensajeError = new FormValidation(null);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private loading(): void {\r\n this.service.ObtenerElementos().subscribe((resultado: JsonResponse) => {\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.datosElementoDTO = resultado.model;\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public nuevoRegistro(): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = { listCategoria: [], listUnidadMedida: [], listPersonalUtilizar: [], listElemento: [] };\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Agregar';\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public editar(entity: OutputObtenerCatalogoManoObra): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = { listCategoria: [], listUnidadMedida: [], listPersonalUtilizar: [], listElemento: [] };\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Editar registro';\r\n\r\n this.entidad.categoria = entity.idTipoElemento;\r\n this.entidad.unidadMedida = entity.unidadMedida;\r\n this.entidad.personalUtilizar = entity.idPersonal;\r\n this.entidad.elemento = entity.idElemento;\r\n this.entidad.nombreElemento = this.datosElementoDTO.listElementos.filter(row => row.idElemento == entity.idElemento)[0].nombreElemento;\r\n this.entidad.rendimientoSemana = entity.rendimientoSemana;\r\n this.entidad.costoSemana = entity.costoSemana;\r\n this.entidad.volumenEjecutar = entity.volumenEjecutar;\r\n this.entidad.costoElementoConstruir = entity.costoElementoConstruir;\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public guardar(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n let entity: InputAgregarManoObra = {\r\n idTipoElemento: this.entidad.categoria,\r\n nombreElemento: this.entidad.nombreElemento,\r\n idElemento: this.entidad.elemento,\r\n unidadMedida: this.entidad.unidadMedida,\r\n idPersonalUtilizar: this.entidad.personalUtilizar,\r\n rendimientoxSemana: this.entidad.rendimientoSemana,\r\n salarioSemanal: this.entidad.costoSemana,\r\n volumenEjecutar: this.entidad.volumenEjecutar,\r\n clave: this.entidad.clave,\r\n idTipoDatoEntrada: this.entidad.tipoDatoEntrada,\r\n esAutoproduccion: this.entidad.esAutoproduccion,\r\n idTipoManoObra: this.entidad.tipoManoObra\r\n };\r\n\r\n this.service.AgregarManoObra(entity).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.closeModal();\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n text: `El registro se guardó con éxito.`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n console.log('true')\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public eliminar(entity: OutputObtenerCatalogoManoObra): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n html: ` 
¿Está seguro que desea eliminar el registro \"${entity.elementoConstruir}\"?
 `,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n\r\n console.log('true')\r\n\r\n {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n text: `El registro se eliminó con éxito.`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n console.log('true')\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n case 'Categoria':\r\n this.Categoria_MensajeError = new FormValidation(this.entidad.categoria).requered('La categoría es obligatoria.');\r\n break;\r\n case 'NombreElemento':\r\n this.NombreElemento_MensajeError = new FormValidation(this.entidad.nombreElemento).requered('El nombre del elemento es obligatorio.');\r\n break;\r\n case 'UnidadMedida':\r\n this.UnidadMedida_MensajeError = new FormValidation(this.entidad.unidadMedida).requered('La unidad de medida es obligatoria.');\r\n break;\r\n case 'Personal':\r\n this.Personal_MensajeError = new FormValidation(this.entidad.personalUtilizar).requered('El personal es obligatorio.');\r\n break;\r\n case 'RendimientoSemana':\r\n this.RendimientoSemana_MensajeError = new FormValidation(this.entidad.rendimientoSemana).requered('El rendimiento por semana es obligatorio.').decimal('El tipo de dato debe ser numérico.');\r\n break;\r\n case 'CostoSemana':\r\n this.CostoSemana_MensajeError = new FormValidation(this.entidad.costoSemana).requered('El costo por semana es obligatorio.').decimal('El tipo de dato debe ser numérico.');\r\n break;\r\n case 'VolumenEjecutar':\r\n this.VolumenEjecutar_MensajeError = new FormValidation(this.entidad.volumenEjecutar).requered('El volumen a ejecutar es obligatorio.').decimal('El tipo de dato debe ser numérico.');\r\n break;\r\n case 'Clave':\r\n this.Clave_MensajeError = new FormValidation(this.entidad.clave).requered('La clave es obligatoria.');\r\n break;\r\n case 'isAutoproduccion':\r\n this.EsAutoproduccion_MensajeError = new FormValidation(this.entidad.esAutoproduccion).requered('El dato autoproducción es obligatorio.');\r\n break;\r\n case 'TipoDatoEntrada':\r\n this.TipoDatoEntrada_MensajeError = new FormValidation(this.entidad.tipoDatoEntrada).requered('El tipo de dato de entrada es obligatorio.');\r\n break;\r\n case 'TipoManoObra':\r\n this.TipoManoObra_MensajeError = new FormValidation(this.entidad.tipoManoObra).requered('El tipo de mano de obra es obligatorio.');\r\n break;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n this.Categoria_MensajeError = new FormValidation(this.entidad.categoria).requered('La categoría es obligatoria.');\r\n\r\n if (this.Categoria_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.NombreElemento_MensajeError = new FormValidation(this.entidad.nombreElemento).requered('El nombre del elemento es obligatorio.');\r\n\r\n if (this.NombreElemento_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.UnidadMedida_MensajeError = new FormValidation(this.entidad.unidadMedida).requered('La unidad de medida es obligatoria.');\r\n\r\n if (this.UnidadMedida_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.Personal_MensajeError = new FormValidation(this.entidad.personalUtilizar).requered('El personal es obligatorio.');\r\n\r\n if (this.Personal_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.RendimientoSemana_MensajeError = new FormValidation(this.entidad.rendimientoSemana).requered('El rendimiento por semana es obligatorio.').decimal('El tipo de dato debe ser numérico.');\r\n\r\n if (this.RendimientoSemana_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.CostoSemana_MensajeError = new FormValidation(this.entidad.costoSemana).requered('El costo por semana es obligatorio.').decimal('El tipo de dato debe ser numérico.');\r\n\r\n if (this.CostoSemana_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.VolumenEjecutar_MensajeError = new FormValidation(this.entidad.volumenEjecutar).requered('El volumen a ejecutar es obligatorio.').decimal('El tipo de dato debe ser numérico.');\r\n\r\n if (this.VolumenEjecutar_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.Clave_MensajeError = new FormValidation(this.entidad.clave).requered('La clave es obligatoria.');\r\n\r\n if (this.Clave_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.EsAutoproduccion_MensajeError = new FormValidation(this.entidad.esAutoproduccion).requered('El dato autoproducción es obligatorio.');\r\n\r\n if (this.EsAutoproduccion_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoDatoEntrada_MensajeError = new FormValidation(this.entidad.tipoDatoEntrada).requered('El tipo de dato de entrada es obligatorio.');\r\n\r\n if (this.TipoDatoEntrada_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoManoObra_MensajeError = new FormValidation(this.entidad.tipoManoObra).requered('El tipo de mano de obra es obligatorio.');\r\n\r\n if (this.TipoManoObra_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeModal(): void {\r\n this.modalEditar = 'modal fade';\r\n this.displayBasic = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public showModalEditar(): void {\r\n\r\n this.displayBasic = true;\r\n // this.modalEditar = '';\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public onChangeCategorio(): void {\r\n this.filtro.listElemento = [];\r\n this.filtro.listElemento = this.datosElementoDTO.listElementos.filter(row => row.idTipoElemento == this.filtro.categoria);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param form\r\n */\r\n private setFilter(entity: DatosElementoDTO, form: CatalogoManoObraForm): void {\r\n form.listCategoria = entity.listTipoElementos;\r\n form.listUnidadMedida = entity.listUnidadMedida;\r\n form.listPersonalUtilizar = entity.listPersonal;\r\n form.listTipoDatoEntrada = entity.listTipoDatoEntrada;\r\n form.listTipoManoObra = entity.listTipoManoObra;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Limpiar(): void {\r\n this.init();\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n this.Filtrar();\r\n this.tabla._rows = 10;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Filtrar(): void {\r\n this.loadCarsLazy(null);\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n */\r\n public loadCarsLazy(event: LazyLoadEvent) {\r\n\r\n this.isLoading = true;\r\n\r\n //in a real application, make a remote request to load data using state metadata from event\r\n //event.first = First row offset\r\n //event.rows = Number of rows per page\r\n //event.sortField = Field name to sort with\r\n //event.sortOrder = Sort order as number, 1 for asc and -1 for dec\r\n //filters: FilterMetadata object having field as key and filter value, filter matchMode as value\r\n\r\n //imitate db connection over a network\r\n\r\n console.log('event -->> ', event);\r\n\r\n let page: number = 1;\r\n let tamanioPagina = 10;\r\n\r\n if (event != null && event.first != null) {\r\n page = (event.first + event.rows) / event.rows;\r\n tamanioPagina = event.rows;\r\n }\r\n\r\n let data: InputObtenerCatalogoManoObra = {\r\n idTipoElemento: this.filtro.categoria,\r\n idElemento: this.filtro.elemento,\r\n unidadMedida: this.filtro.unidadMedida,\r\n idPersonal: this.filtro.personalUtilizar,\r\n tamanioPagina: tamanioPagina,\r\n pagina: page\r\n };\r\n\r\n setTimeout(() => {\r\n\r\n this.service.ObtenerManoObraPages(data).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.catalogoManoObraDTO = resultado.model;\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n\r\n }, 1000);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LazyLoadEvent } from 'primeng/api/public_api';\r\nimport { Table } from 'primeng/table';\r\nimport { SimuladorService } from 'src/app/datos/simulador.service';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { ServicioIndicadorCarga } from 'src/app/libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { JsonResponse } from 'src/app/libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from 'src/app/libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, InputObtenerMaterial_Pages, MaterialDTO, MaterialesForm, OutputObtenerMaterial_Pages } from 'src/app/modelo';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n selector: 'app-catalogo-materiales',\r\n templateUrl: './catalogo-materiales.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\nexport class CatalogoMaterialesComponent implements OnInit {\r\n\r\n public datosElementoDTO: DatosElementoDTO;\r\n public modalTitulo: string;\r\n public modal: boolean = false;\r\n\r\n @ViewChild('tabla') tabla: Table;\r\n public isLoading: boolean;\r\n public materialDTO: MaterialDTO;\r\n public filtro: MaterialesForm;\r\n public entidad: MaterialesForm;\r\n\r\n\r\n //Validaciones\r\n\r\n public NombreMaterial_MensajeError: FormValidation = new FormValidation(null);\r\n public UnidadComercial_MensajeError: FormValidation = new FormValidation(null);\r\n public PrecioUC_MensajeError: FormValidation = new FormValidation(null);\r\n public UnidadObra_MensajeError: FormValidation = new FormValidation(null);\r\n public PrecioUnidadObra_MensajeError: FormValidation = new FormValidation(null);\r\n public IncrementoCalidad_MensajeError: FormValidation = new FormValidation(null);\r\n\r\n //Menu\r\n\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param servicioIndicadorCarga\r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private servicioIndicadorCarga: ServicioIndicadorCarga, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n ngOnInit() {\r\n this.init();\r\n this.loading();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private init(): void {\r\n this.filtro = {};\r\n this.materialDTO = { listOutputObtenerMaterial: [], totalRecords: 0 };\r\n this.entidad = {};\r\n this.initValidacion();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initValidacion(): void {\r\n this.NombreMaterial_MensajeError = new FormValidation(null);\r\n this.UnidadComercial_MensajeError = new FormValidation(null);\r\n this.PrecioUC_MensajeError = new FormValidation(null);\r\n this.UnidadObra_MensajeError = new FormValidation(null);\r\n this.PrecioUnidadObra_MensajeError = new FormValidation(null);\r\n this.IncrementoCalidad_MensajeError = new FormValidation(null);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private loading(): void {\r\n this.service.ObtenerElementos().subscribe((resultado: JsonResponse) => {\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.datosElementoDTO = resultado.model;\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public nuevoRegistro(): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = {};\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Agregar';\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public editar(entity: OutputObtenerMaterial_Pages): void {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = {};\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad)\r\n\r\n this.modalTitulo = 'Editar registro';\r\n\r\n this.entidad.material = entity.idMaterial\r\n this.entidad.nombreMaterial = entity.nombreMaterial;\r\n this.entidad.unidadComercial = entity.unidadComercial;\r\n this.entidad.precioUC = entity.precioUC;\r\n this.entidad.unidadObra = entity.unidadObra;\r\n this.entidad.precioUnidadObra = entity.precioUnidadObra;\r\n this.entidad.incrementoCalidad = entity.incrementoCalidad;\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public guardar(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n // let entity: InputAgregarManoObra = {\r\n // idTipoElemento: this.entidad.categoria,\r\n // nombreElemento: this.entidad.nombreElemento,\r\n // idElemento: this.entidad.elemento,\r\n // unidadMedida: this.entidad.unidadMedida,\r\n // idPersonalUtilizar: this.entidad.personalUtilizar,\r\n // rendimientoxSemana: this.entidad.rendimientoSemana,\r\n // salarioSemanal: this.entidad.costoSemana,\r\n // volumenEjecutar: this.entidad.volumenEjecutar,\r\n // clave: this.entidad.clave,\r\n // idTipoDatoEntrada: this.entidad.tipoDatoEntrada,\r\n // esAutoproduccion: this.entidad.esAutoproduccion,\r\n // idTipoManoObra: this.entidad.tipoManoObra\r\n // };\r\n\r\n // this.service.AgregarManoObra(entity).subscribe((resultado: JsonResponse) => {\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // this.closeModal();\r\n\r\n // this.servicioAlertas.mostrarConOpciones({\r\n // title: \"Simulador RUV\",\r\n // text: `El registro se guardó con éxito.`,\r\n // icon: \"success\",\r\n // showCancelButton: false,\r\n // confirmButtonColor: '#3085d6',\r\n // cancelButtonColor: '#3085d6',\r\n // confirmButtonText: 'Aceptar',\r\n // cancelButtonText: 'Cancelar'\r\n // }).then((result) => {\r\n\r\n // console.log('result.value -->> ', result.value)\r\n\r\n // if (result.value) {\r\n // console.log('true')\r\n // } else {\r\n\r\n // if (result.dismiss === Swal.DismissReason.cancel) {\r\n // console.log('false')\r\n // }\r\n // }\r\n\r\n // })\r\n\r\n // }\r\n // });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public eliminar(entity: OutputObtenerMaterial_Pages): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n html: ` 
Está seguro que desea eliminar el registro
\"${entity.nombreMaterial}\"

 `,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n\r\n console.log('true')\r\n\r\n {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n text: `El registro se eliminó con éxito.`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n console.log('true')\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n case 'NombreMaterial':\r\n this.NombreMaterial_MensajeError = new FormValidation(this.entidad.nombreMaterial).requered('El Nombre del material es obligatorio.');\r\n break;\r\n case 'UnidadComercial':\r\n this.UnidadComercial_MensajeError = new FormValidation(this.entidad.unidadComercial).requered('La Unidad comercial es obligatorio.');\r\n break;\r\n case 'PrecioUC':\r\n this.PrecioUC_MensajeError = new FormValidation(this.entidad.precioUC).requered('El Precio UC es obligatorio.').decimal('El tipo de dato debe ser decimal.');\r\n break;\r\n case 'UnidadObra':\r\n this.UnidadObra_MensajeError = new FormValidation(this.entidad.unidadObra).requered('La Unidad de obra es obligatorio.');\r\n break;\r\n case 'PrecioUnidadObra':\r\n this.PrecioUnidadObra_MensajeError = new FormValidation(this.entidad.precioUnidadObra).requered('El Precio unidad de obra es obligatorio.').decimal('El tipo de dato debe ser decimal.');\r\n break;\r\n case 'IncrementoCalidad':\r\n this.IncrementoCalidad_MensajeError = new FormValidation(this.entidad.incrementoCalidad).requered('El Incremento calidad es obligatorio.');\r\n break;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n this.NombreMaterial_MensajeError = new FormValidation(this.entidad.nombreMaterial).requered('El Nombre del material es obligatorio.');\r\n\r\n if (this.NombreMaterial_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.UnidadComercial_MensajeError = new FormValidation(this.entidad.unidadComercial).requered('La Unidad comercial es obligatorio.');\r\n\r\n if (this.UnidadComercial_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.PrecioUC_MensajeError = new FormValidation(this.entidad.precioUC).requered('El Precio UC es obligatorio.').decimal('El tipo de dato debe ser decimal.');\r\n\r\n if (this.PrecioUC_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.UnidadObra_MensajeError = new FormValidation(this.entidad.unidadObra).requered('La Unidad de obra es obligatorio.');\r\n\r\n if (this.UnidadObra_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.PrecioUnidadObra_MensajeError = new FormValidation(this.entidad.precioUnidadObra).requered('El Precio unidad de obra es obligatorio.').decimal('El tipo de dato debe ser decimal.');\r\n\r\n if (this.PrecioUnidadObra_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.IncrementoCalidad_MensajeError = new FormValidation(this.entidad.incrementoCalidad).requered('El Incremento calidad es obligatorio.');\r\n\r\n if (this.IncrementoCalidad_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeModal(): void {\r\n this.modal = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public showModalEditar(): void {\r\n this.modal = true;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param form\r\n */\r\n private setFilter(entity: DatosElementoDTO, form: MaterialesForm): void {\r\n\r\n let lista: any = [{ label: 'Si', value: true }, { label: 'No', value: false }];\r\n\r\n form.listUnidadComercial = entity.listUnidadComercial;\r\n form.listUnidadObra = entity.listUnidadObra;\r\n form.listIncrementoCalidad = lista;\r\n\r\n console.warn('form -->> ', form);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Limpiar(): void {\r\n this.init();\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n this.Filtrar();\r\n this.tabla._rows = 10;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Filtrar(): void {\r\n this.loadCarsLazy(null);\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n */\r\n public loadCarsLazy(event: LazyLoadEvent) {\r\n\r\n this.isLoading = true;\r\n\r\n //in a real application, make a remote request to load data using state metadata from event\r\n //event.first = First row offset\r\n //event.rows = Number of rows per page\r\n //event.sortField = Field name to sort with\r\n //event.sortOrder = Sort order as number, 1 for asc and -1 for dec\r\n //filters: FilterMetadata object having field as key and filter value, filter matchMode as value\r\n\r\n //imitate db connection over a network\r\n\r\n console.log('event -->> ', event);\r\n\r\n let page: number = 1;\r\n let tamanioPagina = 10;\r\n\r\n if (event != null && event.first != null) {\r\n page = (event.first + event.rows) / event.rows;\r\n tamanioPagina = event.rows;\r\n }\r\n\r\n let data: InputObtenerMaterial_Pages = {\r\n tamanioPagina: tamanioPagina,\r\n pagina: page,\r\n nombreMaterial: this.filtro.nombreMaterial,\r\n unidadComercial: this.filtro.unidadComercial,\r\n unidadObra: this.filtro.unidadObra,\r\n incrementoCalidad: this.filtro.incrementoCalidad\r\n };\r\n\r\n setTimeout(() => {\r\n\r\n this.service.ObtenerMaterialPages(data).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.materialDTO = resultado.model;\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n\r\n }, 1000);\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Message } from 'primeng/api';\r\nimport { LazyLoadEvent, SelectItemGroup } from 'primeng/api/public_api';\r\nimport { Table } from 'primeng/table';\r\nimport { SimuladorService } from 'src/app/datos/simulador.service';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { ServicioIndicadorCarga } from 'src/app/libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { JsonResponse } from 'src/app/libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from 'src/app/libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, ElementosDTO, ElementosForm, InputObtenerElementos_Pages, OutputObtenerElementos_Pages, InputObtenerPrototipo_Pages, OutputObtenerPrototipo_Pages, PrototipoForm, PrototipoDTO, InputActualizarEstatusPrototipo, InputObtenerEspacio_Pages, OutputObtenerEspacio_Pages, EspacioDTO, InputObtenerPrototipoDetalle, OutputObtenerPrototipoDetalle, InputAgregarPrototipo, InputActualizarEstatusDocumento, DocumentoDTO } from 'src/app/modelo';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n selector: 'app-catalogo-prototipos',\r\n templateUrl: './catalogo-prototipos.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\nexport class CatalogoPrototiposComponent implements OnInit {\r\n\r\n public datosElementoDTO: DatosElementoDTO;\r\n public modalTitulo: string;\r\n public modal: boolean = false;\r\n\r\n @ViewChild('tabla') tabla: Table;\r\n public isLoading: boolean;\r\n public prototipoDTO: OutputObtenerPrototipo_Pages;\r\n public filtro: PrototipoForm;\r\n public entidad: PrototipoForm;\r\n public grupoEspacios: SelectItemGroup[];\r\n public listEspacios: EspacioDTO[];\r\n public idEspacio: number;\r\n public entity: PrototipoDTO;\r\n\r\n @ViewChild('fileUpload') fileUpload: any;\r\n public uploadedFiles: any[] = [];\r\n public msgs: Message[] = [];\r\n public progressSpinner: boolean;\r\n\r\n\r\n //Validaciones\r\n\r\n public ListaEspacios_MensajeError: FormValidation = new FormValidation(null);\r\n public NombrePrototipo_MensajeError: FormValidation = new FormValidation(null);\r\n public TipoPrototipo_MensajeError: FormValidation = new FormValidation(null);\r\n\r\n\r\n //Menu\r\n\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param servicioIndicadorCarga\r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private servicioIndicadorCarga: ServicioIndicadorCarga, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n ngOnInit() {\r\n this.init();\r\n this.loading();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private init(): void {\r\n this.filtro = {};\r\n this.prototipoDTO = { listPrototipo: [], totalRecords: 0 };\r\n this.entidad = { listEspacioSelect: [], nombrePrototipo: null };\r\n this.initValidacion();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initValidacion(): void {\r\n this.ListaEspacios_MensajeError = new FormValidation(null);\r\n this.NombrePrototipo_MensajeError = new FormValidation(null);\r\n this.TipoPrototipo_MensajeError = new FormValidation(null);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private async loading() {\r\n\r\n //Tipo de prototipo\r\n {\r\n this.filtro.listTipoPrototipo = [];\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerElementos().toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.datosElementoDTO = resultado.model;\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n }\r\n\r\n }\r\n\r\n //Espacios\r\n\r\n {\r\n this.listEspacios = [];\r\n\r\n let data: InputObtenerEspacio_Pages = { pagina: 1, tamanioPagina: 9000 };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerEspacioPages(data).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.listEspacios = resultado.model.listEspacios\r\n }\r\n\r\n }\r\n\r\n //Agrupar Espacios\r\n {\r\n this.grupoEspacios = [];\r\n\r\n for (let tipoEspacio of this.datosElementoDTO.listTipoEspacio) {\r\n\r\n let filter = this.listEspacios.filter(row => row.idTipoEspacio == tipoEspacio.idTipoEspacio);\r\n\r\n let items: any = [];\r\n\r\n if (filter != null) {\r\n\r\n for (let row of filter) {\r\n items.push({ label: row.nombreEspacio, value: row.idEspacio });\r\n }\r\n }\r\n\r\n let dato: any = {\r\n label: tipoEspacio.nombreTipoEspacio,\r\n items: items\r\n };\r\n\r\n this.grupoEspacios.push(dato);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n /**\r\n * \r\n */\r\n public addEspacio(): void {\r\n\r\n let filter = this.listEspacios.filter(row => row.idEspacio == this.idEspacio);\r\n\r\n if (filter != null && filter.length > 0) {\r\n\r\n let espacioDTO: EspacioDTO = filter[0];\r\n\r\n this.entidad.listEspacioSelect.push(espacioDTO);\r\n\r\n this.actualizarErrores('ListaEspacios');\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteEspacio(entity: EspacioDTO): void {\r\n\r\n const index = this.entidad.listEspacioSelect.findIndex(row => row == entity);\r\n\r\n this.entidad.listEspacioSelect.splice(index, 1);\r\n\r\n }\r\n\r\n\r\n /**\r\n * \r\n */\r\n public nuevoRegistro(): void {\r\n\r\n this.initValidacion();\r\n\r\n this.idEspacio = 0;\r\n\r\n this.entidad = { idPrototipo: null, listEspacioSelect: [], nombrePrototipo: null, typeView: 'add' };\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad);\r\n\r\n this.modalTitulo = 'Agregar';\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async editar(entity: PrototipoDTO) {\r\n\r\n this.initValidacion();\r\n\r\n this.entidad = { idPrototipo: entity.idPrototipo, nombrePrototipo: entity.nombrePrototipo, listEspacioSelect: [], listDocumento: [], tipoPrototipo: entity.idTipoPrototipo, typeView: 'edit' };\r\n\r\n this.setFilter(this.datosElementoDTO, this.entidad);\r\n\r\n this.modalTitulo = 'Editar registro';\r\n\r\n this.entity = entity;\r\n\r\n await this.ObtenerPrototipoDetalle(this.entidad.idPrototipo);\r\n\r\n this.showModalEditar();\r\n }\r\n\r\n /**\r\n * \r\n * @param idPrototipo\r\n */\r\n private async ObtenerPrototipoDetalle(idPrototipo: number) {\r\n\r\n let data: InputObtenerPrototipoDetalle = { idPrototipo: idPrototipo };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerPrototipoDetalle(data).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n let detalle: OutputObtenerPrototipoDetalle = resultado.model;\r\n\r\n if (detalle != null && detalle.listEspacioxPrototipo != null) {\r\n\r\n for (let row of detalle.listEspacioxPrototipo) {\r\n\r\n let espacioDTO: EspacioDTO = { idEspacio: row.idEspacio, nombreEspacio: row.nombreEspacio };\r\n\r\n this.entidad.listEspacioSelect.push(espacioDTO);\r\n }\r\n\r\n }\r\n\r\n this.entidad.listDocumento = detalle.listDocumento;\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public deleteDocumento(entity: DocumentoDTO): void {\r\n\r\n let dato: InputActualizarEstatusDocumento = { idDocumento: entity.idDocumento, documentoActivo: false };\r\n\r\n this.service.ActualizarEstatusDocumento(dato).subscribe(resultado => {\r\n\r\n this.ObtenerPrototipoDetalle(this.entity.idPrototipo);\r\n\r\n });\r\n\r\n //this.servicioAlertas.mostrarConOpciones({\r\n // title: \"Simulador\",\r\n // text: `Está seguro de eliminar el documento`,\r\n // icon: \"question\",\r\n // showCancelButton: true,\r\n // confirmButtonColor: '#3085d6',\r\n // cancelButtonColor: '#d33',\r\n // confirmButtonText: 'Si',\r\n // cancelButtonText: 'No'\r\n //}).then((result) => {\r\n\r\n // if (result.value) {\r\n\r\n // let dato: InputActualizarEstatusDocumento = { idDocumento: entity.idDocumento, documentoActivo: false };\r\n\r\n // this.service.ActualizarEstatusDocumento(dato).subscribe(resultado => {\r\n\r\n // this.ObtenerPrototipoDetalle(this.entity.idPrototipo);\r\n\r\n // });\r\n\r\n // }\r\n\r\n //})\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n * @param fileUpload\r\n */\r\n public async onFileUpload(event: { files: File }, fileUpload) {\r\n\r\n this.progressSpinner = true;\r\n\r\n var excelParametros = { idPrototipo: this.entity.idPrototipo };\r\n\r\n let respuesta: JsonResponse = await this.service.AgregarDocumento(event, excelParametros).toPromise();\r\n\r\n if (respuesta != null && respuesta.code == 200 && respuesta.model != null) {\r\n\r\n this.fileUpload.clear();\r\n\r\n this.ObtenerPrototipoDetalle(this.entity.idPrototipo);\r\n\r\n this.progressSpinner = false;\r\n\r\n this.msgs = [];\r\n\r\n this.msgs.push({ severity: 'success', summary: 'Archivo(s) subido(s) ...', detail: '' });\r\n\r\n setTimeout(() => {\r\n this.msgs = [];\r\n }, 4000);\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public guardar(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n let idEspacios: number[] = [];\r\n\r\n for (let row of this.entidad.listEspacioSelect) {\r\n idEspacios.push(row.idEspacio);\r\n }\r\n\r\n let dato: InputAgregarPrototipo = { idPrototipo: this.entidad.idPrototipo, nombrePrototipo: this.entidad.nombrePrototipo, idEspacios: idEspacios, idTipoPrototipo: this.entidad.tipoPrototipo };\r\n\r\n this.service.AgregarPrototipo(dato).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.closeModal();\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador RUV\",\r\n text: `El registro se guardó con éxito.`,\r\n icon: \"success\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n console.log('true')\r\n\r\n this.Filtrar();\r\n\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n\r\n case 'ListaEspacios':\r\n\r\n this.ListaEspacios_MensajeError = new FormValidation(null);\r\n\r\n if (this.entidad.listEspacioSelect.length == 0) {\r\n this.ListaEspacios_MensajeError.requered('Debe de ingresar al menos un espacio en la lista');\r\n }\r\n\r\n break;\r\n\r\n case 'NombrePrototipo':\r\n this.NombrePrototipo_MensajeError = new FormValidation(this.entidad.nombrePrototipo).requered('El nombre del prototipo es obligatorio.');\r\n break;\r\n\r\n case 'TipoPrototipo':\r\n this.TipoPrototipo_MensajeError = new FormValidation(this.entidad.tipoPrototipo).requered('El tipo prototipo es obligatorio.');\r\n break;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n if (this.entidad.listEspacioSelect.length == 0) {\r\n this.ListaEspacios_MensajeError.requered('Debe de ingresar al menos un espacio en la lista');\r\n }\r\n\r\n if (this.ListaEspacios_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.NombrePrototipo_MensajeError = new FormValidation(this.entidad.nombrePrototipo).requered('El nombre del prototipo es obligatorio.');\r\n\r\n if (this.NombrePrototipo_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.TipoPrototipo_MensajeError = new FormValidation(this.entidad.tipoPrototipo).requered('El tipo prototipo es obligatorio.');\r\n\r\n if (this.TipoPrototipo_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeModal(): void {\r\n this.modal = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public showModalEditar(): void {\r\n this.modal = true;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param form\r\n */\r\n private setFilter(entity: DatosElementoDTO, form: PrototipoForm): void {\r\n form.listTipoPrototipo = entity.listTipoPrototipo;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Limpiar(): void {\r\n this.init();\r\n this.setFilter(this.datosElementoDTO, this.filtro);\r\n this.Filtrar();\r\n this.tabla._rows = 10;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Filtrar(): void {\r\n this.loadCarsLazy(null);\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n */\r\n public loadCarsLazy(event: LazyLoadEvent) {\r\n\r\n this.isLoading = true;\r\n\r\n //in a real application, make a remote request to load data using state metadata from event\r\n //event.first = First row offset\r\n //event.rows = Number of rows per page\r\n //event.sortField = Field name to sort with\r\n //event.sortOrder = Sort order as number, 1 for asc and -1 for dec\r\n //filters: FilterMetadata object having field as key and filter value, filter matchMode as value\r\n\r\n //imitate db connection over a network\r\n\r\n console.log('event -->> ', event);\r\n\r\n let page: number = 1;\r\n let tamanioPagina = 10;\r\n\r\n if (event != null && event.first != null) {\r\n page = (event.first + event.rows) / event.rows;\r\n tamanioPagina = event.rows;\r\n }\r\n\r\n let dato: InputObtenerPrototipo_Pages = {\r\n tamanioPagina: tamanioPagina,\r\n pagina: page,\r\n idTipoPrototipo: this.filtro.tipoPrototipo,\r\n nombrePrototipo: this.filtro.nombrePrototipo\r\n };\r\n\r\n setTimeout(() => {\r\n\r\n this.service.ObtenerPrototipoPages(dato).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.prototipoDTO = resultado.model;\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangePublicar(entity: PrototipoDTO): void {\r\n\r\n if (entity.activo == false) {\r\n entity.activo = null;\r\n }\r\n\r\n let dato: InputActualizarEstatusPrototipo = { idPrototipos: [entity.idPrototipo], activo: entity.activo };\r\n\r\n this.service.ActualizarEstatusPrototipo(dato).subscribe(resultado => {\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public delete(entity: PrototipoDTO): void {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Está seguro de eliminar el prototipo [ ${entity.nombrePrototipo} ]`,\r\n icon: \"question\",\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#3085d6',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No'\r\n }).then((result) => {\r\n\r\n if (result.value) {\r\n\r\n let dato: InputActualizarEstatusPrototipo = { idPrototipos: [entity.idPrototipo], activo: false };\r\n\r\n this.service.ActualizarEstatusPrototipo(dato).subscribe(resultado => {\r\n this.Filtrar();\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2V4YW1wbGUvZXhhbXBsZS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { Car } from './../../modelo/interfaces';\r\nimport { SimuladorService } from './../../datos/simulador.service';\r\nimport { ServicioAlertas } from './../../libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { ServicioIndicadorCarga } from './../../libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\nexport class PrimeCar implements Car {\r\n constructor(public vin?, public year?, public brand?, public color?) { }\r\n}\r\n\r\n@Component({\r\n selector: 'app-example',\r\n templateUrl: './example.component.html',\r\n styleUrls: ['./example.component.css']\r\n})\r\nexport class ExampleComponent implements OnInit {\r\n\r\n uploadedFiles: any[] = [];\r\n\r\n\r\n\r\n items: MenuItem[];\r\n activeItem: MenuItem;\r\n\r\n\r\n\r\n displayDialog: boolean;\r\n\r\n car: Car = new PrimeCar();\r\n\r\n selectedCar: Car;\r\n\r\n newCar: boolean;\r\n\r\n cars: Car[];\r\n\r\n cols: any[];\r\n\r\n constructor(private servicioIndicadorCarga: ServicioIndicadorCarga,private servicioAlertas: ServicioAlertas, private service: SimuladorService) { }\r\n\r\n ngOnInit() {\r\n this.service.getCarsSmall().then(cars => this.cars = cars);\r\n\r\n this.cols = [\r\n { field: 'vin', header: 'Vin' },\r\n { field: 'year', header: 'Year' },\r\n { field: 'brand', header: 'Brand' },\r\n { field: 'color', header: 'Color' }\r\n ];\r\n\r\n\r\n this.items = [\r\n { label: 'Home', icon: 'pi pi-fw pi-home', routerLink: 'info' },\r\n { label: 'Calendar', icon: 'pi pi-fw pi-calendar', routerLink: 'message' },\r\n { label: 'Edit', icon: 'pi pi-fw pi-pencil' },\r\n { label: 'Documentation', icon: 'pi pi-fw pi-file' },\r\n { label: 'Settings', icon: 'pi pi-fw pi-cog' }\r\n ];\r\n\r\n this.activeItem = this.items[0];\r\n\r\n }\r\n\r\n showDialogToAdd() {\r\n this.newCar = true;\r\n this.car = new PrimeCar();\r\n this.displayDialog = true;\r\n }\r\n\r\n save() {\r\n const cars = [...this.cars];\r\n if (this.newCar) {\r\n cars.push(this.car);\r\n } else {\r\n cars[this.findSelectedCarIndex()] = this.car;\r\n }\r\n this.cars = cars;\r\n this.car = null;\r\n this.displayDialog = false;\r\n }\r\n\r\n delete() {\r\n const index = this.findSelectedCarIndex();\r\n this.cars = this.cars.filter((val, i) => i !== index);\r\n this.car = null;\r\n this.displayDialog = false;\r\n }\r\n\r\n onRowSelect(event) {\r\n this.newCar = false;\r\n this.car = { ...event.data };\r\n this.displayDialog = true;\r\n }\r\n\r\n findSelectedCarIndex(): number {\r\n return this.cars.indexOf(this.selectedCar);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Alerta() {\r\n\r\n this.servicioIndicadorCarga.mostrar('Procesando Informaci�n del Excel ...');\r\n\r\n //Swal.fire({\r\n // title: 'Are you sure?',\r\n // text: 'You will not be able to recover this imaginary file!',\r\n // icon: 'warning',\r\n // showCancelButton: true,\r\n // confirmButtonText: 'Yes, delete it!',\r\n // cancelButtonText: 'No, keep it'\r\n //}).then((result) => {\r\n // if (result.value) {\r\n // Swal.fire(\r\n // 'Deleted!',\r\n // 'Your imaginary file has been deleted.',\r\n // 'success'\r\n // )\r\n // // For more information about handling dismissals please visit\r\n // // https://sweetalert2.github.io/#handling-dismissals\r\n // } else if (result.dismiss === Swal.DismissReason.cancel) {\r\n // Swal.fire(\r\n // 'Cancelled',\r\n // 'Your imaginary file is safe :)',\r\n // 'error'\r\n // )\r\n // }\r\n //})\r\n }\r\n\r\n /**\r\n * \r\n * @param event\r\n * @param fileUpload\r\n */\r\n public onFileUpload(event: { files: File }, fileUpload): void {\r\n\r\n console.log('onFileUpload -->> ', event)\r\n\r\n var excelParametros = { opcion: 'Vivienda' };\r\n\r\n this.service.AgregarDocumento(event, excelParametros).subscribe(resultado => {\r\n\r\n console.log('resultado ?? -->> ', resultado);\r\n\r\n //if (resultado.code == 200) {\r\n\r\n\r\n\r\n\r\n //} else {\r\n\r\n\r\n\r\n //}\r\n\r\n });;\r\n\r\n }\r\n\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport { FormValidation } from '../../libs/ruvpp-angular2-comun/FormValidation';\r\nimport { OutputConsultaUsuario, Usuario, JsonResponse } from '../../modelo';\r\nimport { ServicioIndicadorCarga } from './../../libs/ruvpp-angular2-comun/indicador-carga';\r\nimport { SimuladorService } from './../../datos/simulador.service';\r\nimport { ServicioAlertas } from './../../libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\nimport { Router } from '@angular/router';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n public entity: Usuario;\r\n public user_MensajeError: FormValidation = new FormValidation(null);\r\n public password_MensajeError: FormValidation = new FormValidation(null);\r\n public PATH: string = '../assets/images';\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param servicioIndicadorCarga\r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private servicioIndicadorCarga: ServicioIndicadorCarga, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n ngOnInit(): void {\r\n //this.entity = { user: 'IEAAAA30', password: 'Prueba99' };\r\n this.entity = { user: '', password: '' };\r\n }\r\n\r\n public autentificar(): void {\r\n\r\n if (!this.validarFormumlario()) {\r\n\r\n this.servicioIndicadorCarga.mostrar('Verificando informaci�n ...');\r\n\r\n // this.menu.PortadaSimuladorAdmin();\r\n\r\n this.service.Autentificacion(this.entity).subscribe((resultado: JsonResponse) => {\r\n\r\n if (resultado != null && resultado.code == 200) {\r\n\r\n if (resultado.model.acceso == true) {\r\n\r\n let result = resultado.model;\r\n\r\n HttpSession.setAttribute('USER', result);\r\n\r\n HttpSession.setAttribute('USER_NAME', `${result.nombre} ${result.paterno} ${result.materno}`.toUpperCase());\r\n\r\n this.menu.PortadaSimuladorAdmin();\r\n\r\n } else {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Usuario o password incorrecto.`,\r\n icon: \"warning\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n console.log('true')\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n } else {\r\n\r\n this.servicioAlertas.mostrarConOpciones({\r\n title: \"Simulador\",\r\n text: `Error al ejecutar Web Service...`,\r\n icon: \"error\",\r\n showCancelButton: false,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Aceptar',\r\n cancelButtonText: 'Cancelar'\r\n }).then((result) => {\r\n\r\n console.log('result.value -->> ', result.value)\r\n\r\n if (result.value) {\r\n console.log('true')\r\n } else {\r\n\r\n if (result.dismiss === Swal.DismissReason.cancel) {\r\n console.log('false')\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n public validarFormumlario(): boolean {\r\n\r\n var error = false;\r\n\r\n this.user_MensajeError = new FormValidation(this.entity.user).requered('El Usuario es obligatorio.');\r\n\r\n if (this.user_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n this.password_MensajeError = new FormValidation(this.entity.password).requered('El Password es obligatorio.');\r\n\r\n if (this.password_MensajeError.error) {\r\n error = true;\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * \r\n * @param tipo\r\n */\r\n public actualizarErrores(tipo: string) {\r\n\r\n switch (tipo) {\r\n\r\n case 'user':\r\n\r\n this.user_MensajeError = new FormValidation(this.entity.user).requered('El Usuario es obligatorio.');\r\n\r\n break;\r\n\r\n case 'password':\r\n\r\n this.password_MensajeError = new FormValidation(this.entity.password).requered('El Password es obligatorio.');\r\n\r\n break;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-menu',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['../../../assets/css/styles.css'/*, '../../../assets/css/bootstrap.css'*/]\r\n})\r\nexport class MenuComponent implements OnInit {\r\n\r\n public usuario: string;\r\n\r\n /**\r\n * \r\n * @param _router\r\n */\r\n constructor(private _router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.usuario = HttpSession.getAttribute('USER_NAME');\r\n }\r\n\r\n /**\r\n *\r\n */\r\n public Login(): void {\r\n HttpSession.clear();\r\n this._router.navigate(['Login']);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public Simulador(forward?: string): void {\r\n\r\n if (forward != null) {\r\n HttpSession.setAttribute('FORWARD', forward);\r\n }\r\n\r\n HttpSession.forward(this._router, 'Simulador');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public CloseSesion(): void {\r\n HttpSession.clear();\r\n //HttpSession.forward(this._router, 'PortadaSimulador');\r\n HttpSession.forward(this._router, 'PortadaInicioComponent');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public PortadaSimuladorAdmin() {\r\n HttpSession.forward(this._router, 'PortadaSimuladorAdmin');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public CatalogoManoObra() {\r\n HttpSession.forward(this._router, 'CatalogoManoObra');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public CatalogoMateriales() {\r\n HttpSession.forward(this._router, 'CatalogoMateriales');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public CatalogoElementos() {\r\n HttpSession.forward(this._router, 'CatalogoElementos');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public CatalogoEspacios() {\r\n HttpSession.forward(this._router, 'CatalogoEspacios');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public CatalogoPrototipos() {\r\n HttpSession.forward(this._router, 'CatalogoPrototipos');\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public SimuladorPrototipos() {\r\n HttpSession.forward(this._router, 'SimuladorPrototipos');\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MenuComponent } from '../menu/menu.component';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\n\r\n@Component({\r\n// selector: 'app-portada-simulador-admin',\r\n selector: 'app-portada-inicio',\r\n templateUrl: './portada-inicio.component.html',\r\n// styleUrls: ['../../../assets/css/styles.css']\r\n})\r\nexport class PortadaInicioComponent implements OnInit {\r\n\r\n public displayModal: boolean = false;\r\n public classAviso: string = 'modal fade';\r\n public usuario: string;\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param _router\r\n */\r\n constructor(private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n /* para mostrar el aviso legal solo si aviso=1 */\r\n var url = window.location.href;\r\n var aviso = url.split('=').pop();\r\n if (aviso == '1') {\r\n this.displayModal = true;\r\n }\r\n\r\n this.usuario = HttpSession.getAttribute('USER_NAME');\r\n }\r\n\r\n public closeAviso(): void {\r\n this.classAviso = 'modal fade';\r\n this.displayModal = false;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MenuComponent } from '../menu/menu.component';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\n\r\n@Component({\r\n selector: 'app-portada-simulador-admin',\r\n templateUrl: './portada-simulador-admin.component.html',\r\n styleUrls: ['../../../assets/css/styles.css']\r\n})\r\nexport class PortadaSimuladorAdminComponent implements OnInit {\r\n\r\n public usuario: string;\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param _router\r\n */\r\n constructor(private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.usuario = HttpSession.getAttribute('USER_NAME');\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MenuComponent } from '../menu/menu.component';\r\n\r\n@Component({\r\n selector: 'app-portada-simulador',\r\n templateUrl: './portada-simulador.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\nexport class PortadaSimuladorComponent implements OnInit {\r\n\r\n public displayModal: boolean = false;\r\n public classAviso: string = 'modal fade';\r\n public menu: MenuComponent;\r\n\r\n constructor(private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n /* para mostrar el aviso legal solo si aviso=1 */\r\n var url = window.location.href;\r\n var aviso = url.split('=').pop();\r\n if (aviso == '1') {\r\n this.displayModal = true;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeAviso(): void {\r\n this.classAviso = 'modal fade';\r\n this.displayModal = false;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\nimport { MenuComponent } from '../menu/menu.component';\r\nimport { SimuladorService } from './../../datos/simulador.service';\r\nimport { JsonResponse } from './../../libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from './../../libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, ElementoDTO, EspacioDTO, EspacioForm, InputObtenerCostoManoObra, InputObtenerCostoPrecioUnitarioMateriales, InputObtenerCostoTotalManoObraXElemento, InputObtenerCostoTotalMaterialesXElemento, InputObtenerEspacioDetalle, InputObtenerEspacio_Pages, InputObtenerPrototipo_Pages, InputObtenerReporte, OutputObtenerCostoManoObra, OutputObtenerCostoPrecioUnitarioMateriales, OutputObtenerCostoTotalManoObraXElemento, OutputObtenerCostoTotalMaterialesXElemento, OutputObtenerElementos, OutputObtenerEspacioDetalle, OutputObtenerEspacio_Pages, OutputObtenerPrototipoDetalle, OutputObtenerPrototipo_Pages, PersonalDTO, PrototipoDTO, PrototipoForm, SelectItemGroups, TipoEspacioDTO, TipoPrototipoDTO, UnidadMedidaDTO, InputObtenerCostoExcelExplosionTotalMateriales, OutputObtenerCostoExcelExplosionTotalMateriales, InputObtenerCostoExcelExplosionXConcepto, OutputObtenerCostoExcelExplosionXConcepto, InputObtenerCostoExcelTotalManoObra, OutputObtenerCostoExcelTotalManoObra, InputObtenerCostoTotalExcelPresupuestoPrototipo, OutputObtenerCostoTotalExcelPresupuestoPrototipo, InputObtenerCostoTotalExcelPrototipo, OutputObtenerCostoTotalExcelPrototipo, $Elementos, ItemGroups, Item, InputObtenerReportePrototipo, Espacios, Totales, $Espacio, CostoTotalExcelPresupuestoPrototipoDTO, ElementoEspDTO, InputObtenerDocuemntosXPrototipo, DocuemntosXPrototipoDTO, OutputObtenerDocuemntosXPrototipo } from './../../modelo';\r\n\r\n@Component({\r\n selector: 'app-simulador-prototipos',\r\n templateUrl: './simulador-prototipos.component.html',\r\n styleUrls: ['../../../assets/css/styles.css']\r\n})\r\nexport class SimuladorPrototiposComponent implements OnInit {\r\n\r\n public datosElemento: DatosElementoDTO;\r\n public itemGroupsPrototipos: ItemGroups;\r\n public listaEspacios: $Espacio[];\r\n public Total: number = 0;\r\n public TotalMateriales: number;\r\n public TotalManoObra: number;\r\n public TotalPresupuesto: number;\r\n public $Total: number;\r\n public SubTotal: number;\r\n public Indirecto: number;\r\n public CostoTotalProyecto = 0;\r\n public ConAsistenciaTecnica: number = 0;\r\n public ConConstructora: number = 0;\r\n public tipoVivienda: string = '0';\r\n public tipoAsistencia: string = '0';\r\n public Economico: number = 0;\r\n public Medio: number = 0;\r\n public Alto: number = 0;\r\n public clave: string = '';\r\n public prototipo: Item;\r\n public activeTab: string = 'pestana3';\r\n public listaCostoExcelExplosionTotalMateriales: OutputObtenerCostoExcelExplosionTotalMateriales[] = [];\r\n public listaCostoExcelTotalManoObra: OutputObtenerCostoExcelTotalManoObra[] = [];\r\n public listaCostoTotalExcelPresupuestoPrototipo: OutputObtenerCostoTotalExcelPresupuestoPrototipo[] = [];\r\n public groupCostoTotalExcelPresupuestoPrototipo: CostoTotalExcelPresupuestoPrototipoDTO[] = [];\r\n public modalTotales: boolean = false;\r\n\r\n public titulo: string;\r\n public modalPresupuesto: boolean = false;\r\n public modalManoObra: boolean = false;\r\n public modalMateriales: boolean = false;\r\n public listaDocumentos: DocuemntosXPrototipoDTO;\r\n public listDocument: OutputObtenerDocuemntosXPrototipo[] = [];\r\n public tituloModal: string;\r\n private listEtapas: any[];\r\n\r\n //Menu\r\n public menu: MenuComponent;\r\n\r\n /**\r\n * \r\n * @param messageService\r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private messageService: MessageService, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.itemGroupsPrototipos = >{ length: 0, list: [] };\r\n\r\n this.clave = this.getClave();\r\n\r\n this.loading();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private async loading() {\r\n\r\n let usuario = HttpSession.getAttribute('USER_NAME');\r\n\r\n let isAdministrador: boolean = false;\r\n\r\n if (usuario != null) {\r\n isAdministrador = true;\r\n }\r\n\r\n let datosElemento: JsonResponse = null;\r\n\r\n // Obtener Elementos\r\n {\r\n datosElemento = await this.service.ObtenerElementos().toPromise();\r\n\r\n this.datosElemento = datosElemento.model;\r\n }\r\n\r\n this.getListElementos();\r\n\r\n //Obtener Prototipos\r\n {\r\n let data: InputObtenerPrototipo_Pages = { tamanioPagina: 9000, pagina: 1 };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerPrototipoPages(data).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n let listPrototipos: PrototipoDTO[] = resultado.model.listPrototipo;\r\n\r\n if (isAdministrador != null && isAdministrador == false) {\r\n listPrototipos = listPrototipos.filter(row => row.activo == true);\r\n }\r\n\r\n this.itemGroupsPrototipos = >{ list: [] };\r\n\r\n for (let row of listPrototipos) {\r\n\r\n let item: Item = >{\r\n label: `${row.nombreTipoPrototipo}-${row.nombrePrototipo}`,\r\n entity: row,\r\n checked: false\r\n };\r\n\r\n this.itemGroupsPrototipos.list.push(item);\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public getListElementos(): $Elementos[] {\r\n\r\n let listElementos: $Elementos[] = [];\r\n\r\n if (this.datosElemento != null && this.datosElemento.listElementoEsp != null) {\r\n\r\n let filter = this.datosElemento.listElementoEsp\r\n\r\n for (let row of filter) {\r\n\r\n let entity: $Elementos = <$Elementos>{ value: row.idElementoEsp, label: row.nombreElementoEsp, entity: row, checked: false, total: 0, disabled: true };\r\n\r\n listElementos.push(entity);\r\n }\r\n\r\n }\r\n\r\n return listElementos;\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param clearLista\r\n */\r\n public async onClickCheckboxPrototipo(entity: Item, clearLista: boolean) {\r\n\r\n this.prototipo = entity;\r\n\r\n if (clearLista == true) {\r\n\r\n this.listaEspacios = [];\r\n this.clave = this.getClave();\r\n this.onChangeTipoAsistencia();\r\n\r\n } else {\r\n\r\n for (let espacios of this.listaEspacios) {\r\n\r\n espacios.total = 0;\r\n espacios.totalObligatorios = 0;\r\n espacios.totalOpcionales = 0;\r\n\r\n for (let elementos of espacios.listElementos) {\r\n elementos.total = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n if (entity != null) {\r\n\r\n //Obtener documentos x Prototipo\r\n {\r\n let dato: InputObtenerDocuemntosXPrototipo = { idPrototipo: this.prototipo.entity.idPrototipo };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerDocuemntosXPrototipo(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.listaDocumentos = resultado.model;\r\n\r\n console.log('this.listaDocumentos -->> ', this.listaDocumentos)\r\n }\r\n }\r\n\r\n {\r\n\r\n let data: InputObtenerCostoTotalExcelPrototipo = {\r\n clave: this.clave,\r\n clavePU: this.getClavePU(),\r\n idPrototipo: entity.entity.idPrototipo,\r\n esAcabado: true\r\n };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerCostoTotalExcelPrototipo(data).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n let lista: OutputObtenerCostoTotalExcelPrototipo[] = resultado.model;\r\n\r\n if (lista != null && lista.length > 0) {\r\n\r\n for (let row of lista) {\r\n\r\n let checked: boolean = false;\r\n\r\n if (row.idEtapaPrototipo == 1) {\r\n checked = true;\r\n }\r\n\r\n let espacio: $Espacio = <$Espacio>{ id: row.idEspacio, nombre: row.nombreEspacio, entity: row, listElementos: this.getListElementos(), total: 0, totalObligatorios: 0, totalOpcionales: 0, checked: checked, checkAll: false, value: 'false' };\r\n\r\n let filterEspacios = this.listaEspacios.filter(item => item.id == row.idEspacio);\r\n\r\n if (filterEspacios != null && filterEspacios.length > 0) {\r\n this.setTotalesXElemento(filterEspacios[0], row);\r\n } else {\r\n this.setTotalesXElemento(espacio, row);\r\n this.listaEspacios.push(espacio);\r\n }\r\n }\r\n }\r\n\r\n // Remover Elementos de ObtenerCostoTotalExcelPrototipo que no sean acabados\r\n\r\n for (let row of this.listaEspacios) {\r\n\r\n let filter = row.listElementos.filter(entity => entity.disabled == false);\r\n\r\n row.listElementos = filter;\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n {\r\n\r\n let data: InputObtenerCostoTotalExcelPrototipo = {\r\n clave: this.clave,\r\n clavePU: this.getClavePU(),\r\n idPrototipo: entity.entity.idPrototipo,\r\n esAcabado: false\r\n };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerCostoTotalExcelPrototipo(data).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n let lista: OutputObtenerCostoTotalExcelPrototipo[] = resultado.model;\r\n\r\n if (lista != null && lista.length > 0) {\r\n\r\n for (let row of lista) {\r\n\r\n let filter = this.listaEspacios.filter(item => item.id == row.idEspacio);\r\n\r\n if (filter != null && filter.length > 0) {\r\n\r\n filter[0].totalObligatorios += row.subtotal;\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n this.activeTab = 'pestana4';\r\n\r\n this.itemGroupsPrototipos.length = 1;\r\n\r\n this.sumarAcabados();\r\n\r\n this.onChangeTipoAsistencia();\r\n\r\n switch (this.tipoVivienda) {\r\n case '0': this.Economico = this.Total; break;\r\n case '1': this.Medio = this.Total; break;\r\n case '2': this.Alto = this.Total; break;\r\n }\r\n\r\n this.setListEtapas();\r\n\r\n if (this.listEtapas != null && this.listEtapas.length >= 1 && this.listEtapas[1] == true) {\r\n this.CostoTotalProyecto = 0;\r\n this.listaEspacios[0].totalObligatorios = 0;\r\n this.listaEspacios[0].totalOpcionales = 0;\r\n this.listaEspacios[0].total = 0;\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private setListEtapas(): void {\r\n\r\n if (this.listEtapas == null) {\r\n\r\n if (this.listaEspacios != null) {\r\n\r\n let listEtapas: boolean[] = [];\r\n\r\n for (let x = 0; x < this.listaEspacios.length; x++) {\r\n listEtapas.push(true);\r\n }\r\n\r\n if (this.listaEspacios.length >= 2) {\r\n // listEtapas[0] = false;\r\n //listEtapas[1] = false;\r\n }\r\n\r\n this.listEtapas = listEtapas;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param espacio\r\n * @param row\r\n */\r\n private setTotalesXElemento(espacio: $Espacio, row: OutputObtenerCostoTotalExcelPrototipo): void {\r\n\r\n let filter = espacio.listElementos.filter(item => item.value == row.idElementoEsp);\r\n\r\n if (filter != null && filter.length > 0) {\r\n filter[0].total += row.subtotal;\r\n filter[0].disabled = false;\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onClickCheckboxElemento(row: any, entity: $Elementos): void {\r\n\r\n if (entity.checked == false) {\r\n row.checkAll = false;\r\n }\r\n\r\n this.onChangeTipoVivienda();\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public async checkAll(entity: $Espacio) {\r\n\r\n for (let row of entity.listElementos) {\r\n\r\n if (row.total > 0) {\r\n row.checked = entity.checkAll;\r\n }\r\n }\r\n\r\n this.onChangeTipoVivienda();\r\n }\r\n\r\n /**\r\n * \r\n * \r\n */\r\n private sumarAcabados(): void {\r\n\r\n this.Total = 0;\r\n\r\n for (let espacio of this.listaEspacios) {\r\n\r\n espacio.totalOpcionales = 0;\r\n\r\n for (let elemento of espacio.listElementos) {\r\n\r\n if (elemento.checked == true) {\r\n espacio.totalOpcionales += elemento.total;\r\n }\r\n\r\n }\r\n\r\n espacio.total = 0;\r\n\r\n espacio.total = espacio.totalObligatorios + espacio.totalOpcionales;\r\n\r\n if (espacio.checked == true) {\r\n this.Total += espacio.total;\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public onChangeTipoAsistencia(): void {\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': this.ConAsistenciaTecnica = this.Total; break;\r\n case '1': this.ConConstructora = this.Total; break;\r\n }\r\n\r\n //this.ConAsistenciaTecnica = this.Total * (environment.porcentajeAsistenciaTecnica);\r\n\r\n //this.ConConstructora = this.Total * (environment.porcentajeConstructora);\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': this.CostoTotalProyecto = this.ConAsistenciaTecnica; break;\r\n case '1': this.CostoTotalProyecto = this.ConConstructora; break;\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param index\r\n */\r\n public onChangeAgregarEtapa(entity: any, index: any): void {\r\n \r\n let checked: boolean = false;\r\n\r\n let value: string = entity.value; //event.target['value'];\r\n\r\n if (value == 'true') {\r\n checked = true;\r\n }\r\n\r\n entity.checked = checked;\r\n\r\n this.onChangeTipoVivienda();\r\n\r\n this.onChangeAgregarEtapaDos(entity.checked, index);\r\n }\r\n\r\n /**\r\n * \r\n * @param checked\r\n * @param index\r\n */\r\n private onChangeAgregarEtapaDos(checked: boolean, index: number) {\r\n\r\n let length: number = (this.listEtapas.length - 1);\r\n\r\n if (checked == true) {\r\n\r\n let cont: number = index + 1\r\n\r\n if (cont <= length) {\r\n this.listEtapas[cont] = false;\r\n }\r\n\r\n } else {\r\n\r\n let cont: number = index + 1\r\n\r\n if (cont <= length) {\r\n\r\n for (let x = cont; x <= length; x++) {\r\n this.listEtapas[x] = true;\r\n this.listaEspacios[x].checked = false;\r\n this.listaEspacios[x].value = 'false';\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async onChangeTipoVivienda() {\r\n\r\n this.clave = this.getClave();\r\n\r\n await this.onClickCheckboxPrototipo(this.prototipo, false);\r\n\r\n this.onChangeTipoAsistencia();\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param name\r\n */\r\n public changeTab(name: string): void {\r\n this.activeTab = name;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public EliminarPrototipo() {\r\n this.prototipo = null;\r\n this.listaEspacios = [];\r\n this.itemGroupsPrototipos.length = 0;\r\n this.activeTab = 'pestana3';\r\n this.initTotales();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private initTotales(): void {\r\n\r\n this.Total = 0;\r\n this.CostoTotalProyecto = 0;\r\n\r\n this.Economico = 0;\r\n this.Medio = 0;\r\n this.Alto = 0;\r\n\r\n this.ConAsistenciaTecnica = 0;\r\n this.ConConstructora = 0;\r\n\r\n this.tipoVivienda = '0';\r\n this.tipoAsistencia = '0';\r\n this.clave = '';\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getClave(): string {\r\n\r\n let clave: string = '';\r\n\r\n switch (this.tipoVivienda) {\r\n case '0': clave = ''; break;\r\n case '1': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 1)[0].clave; break;\r\n case '2': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 2)[0].clave; break;\r\n }\r\n\r\n return clave;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getClavePU(): string {\r\n\r\n let clave: string = '';\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 4)[0].clave; break;\r\n case '1': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 5)[0].clave; break;\r\n }\r\n\r\n return clave;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getValorClavePU(): number {\r\n\r\n let valor: number = 0;\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': valor = this.datosElemento.listParametro.filter(row => row.idParametro == 4)[0].valor; break;\r\n case '1': valor = this.datosElemento.listParametro.filter(row => row.idParametro == 5)[0].valor; break;\r\n }\r\n\r\n return valor;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getValorManoObra(): number {\r\n\r\n let valor: number = this.datosElemento.listParametro.filter(row => row.idParametro == 3)[0].valor;\r\n\r\n return valor;\r\n }\r\n\r\n\r\n /**\r\n * \r\n */\r\n private getTipoVivienda(): string {\r\n\r\n let tipoVivienda: string = '~~';\r\n\r\n switch (this.tipoVivienda) {\r\n case '0': tipoVivienda = 'Económico'; break;\r\n case '1': tipoVivienda = 'Medio'; break;\r\n case '2': tipoVivienda = 'Alto'; break;\r\n }\r\n\r\n return tipoVivienda;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getTipoAsistencia(): string {\r\n\r\n let tipoAsistencia: string = '~~';\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': tipoAsistencia = 'Con Asistencia Técnica'; break;\r\n case '1': tipoAsistencia = ' Con Constructora'; break;\r\n }\r\n\r\n return tipoAsistencia;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getListElementosEsp() {\r\n\r\n let listElementosEsp: number[] = [];\r\n\r\n for (let espacio of this.listaEspacios) {\r\n\r\n if (espacio.checked == true) {\r\n\r\n let noSelect = espacio.listElementos.filter(row => row.disabled == false && row.checked == false);\r\n\r\n for (let row of noSelect) {\r\n listElementosEsp.push(row.entity.idElementoEsp);\r\n }\r\n }\r\n }\r\n\r\n return listElementosEsp;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getListEspacios() {\r\n\r\n let listEspacio: number[] = [];\r\n\r\n for (let espacio of this.listaEspacios) {\r\n\r\n if (espacio.checked == false) {\r\n\r\n listEspacio.push(espacio.id);\r\n }\r\n }\r\n\r\n return listEspacio;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async Presupuesto() {\r\n\r\n this.titulo = 'Presupuesto';\r\n this.modalPresupuesto = true;\r\n this.modalManoObra = false;\r\n this.modalMateriales = false;\r\n\r\n // Presupuesto\r\n {\r\n this.groupCostoTotalExcelPresupuestoPrototipo = [];\r\n\r\n this.SubTotal = 0;\r\n this.Indirecto = 0;\r\n this.$Total = 0;\r\n\r\n let dato: InputObtenerCostoTotalExcelPresupuestoPrototipo = {\r\n idPrototipo: this.prototipo.entity.idPrototipo,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU(),\r\n tablaElementoEsp: this.getListElementosEsp(),\r\n tablaEspacio: this.getListEspacios(),\r\n };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerCostoTotalExcelPresupuestoPrototipo(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n let listaCostoTotalExcelPresupuestoPrototipo = resultado.model;\r\n\r\n for (let row of listaCostoTotalExcelPresupuestoPrototipo) {\r\n this.$Total += row.subtotal;\r\n }\r\n\r\n this.$Total = this.$Total / 2;\r\n\r\n this.TotalPresupuesto = this.$Total;\r\n\r\n let porcentaje: number = 1 + this.getValorClavePU();\r\n\r\n this.SubTotal = this.$Total / porcentaje;\r\n\r\n this.Indirecto = this.$Total - this.SubTotal;\r\n\r\n this.listaCostoTotalExcelPresupuestoPrototipo = listaCostoTotalExcelPresupuestoPrototipo;\r\n\r\n //{\r\n // for (let tipoElemento of this.datosElemento.listTipoElementos) {\r\n\r\n // let filtro = listaCostoTotalExcelPresupuestoPrototipo.filter(row => row.idTipoElemento == tipoElemento.idTipoElemento);\r\n\r\n // if (filtro != null && filtro.length > 0) {\r\n\r\n // let subTotal: number = 0;\r\n\r\n // for (let row of filtro) {\r\n // subTotal += row.subtotal;\r\n // }\r\n\r\n // let costoTotalExcelPresupuestoPrototipo: CostoTotalExcelPresupuestoPrototipoDTO = { nombreTipoElemento: tipoElemento.nombreTipoElemento, listCostoTotalExcelPresupuestoPrototipo: filtro, subtotal: subTotal };\r\n\r\n // this.groupCostoTotalExcelPresupuestoPrototipo.push(costoTotalExcelPresupuestoPrototipo);\r\n // }\r\n\r\n // }\r\n\r\n // if (this.groupCostoTotalExcelPresupuestoPrototipo != null && this.groupCostoTotalExcelPresupuestoPrototipo.length > 0) {\r\n\r\n // this.listaCostoTotalExcelPresupuestoPrototipo = [];\r\n\r\n // for (let row of this.groupCostoTotalExcelPresupuestoPrototipo) {\r\n\r\n // let encabezado: OutputObtenerCostoTotalExcelPresupuestoPrototipo = { nombreTipoElemento: row.nombreTipoElemento };\r\n\r\n // this.listaCostoTotalExcelPresupuestoPrototipo.push(encabezado);\r\n\r\n // for (let row2 of row.listCostoTotalExcelPresupuestoPrototipo) {\r\n\r\n // row2.nombreTipoElemento = null;\r\n\r\n // this.listaCostoTotalExcelPresupuestoPrototipo.push(row2);\r\n // }\r\n\r\n // let total: OutputObtenerCostoTotalExcelPresupuestoPrototipo = { subtotal: row.subtotal };\r\n\r\n // this.listaCostoTotalExcelPresupuestoPrototipo.push(total);\r\n\r\n // }\r\n\r\n // }\r\n //}\r\n }\r\n\r\n this.showModalTotales();\r\n }\r\n\r\n }\r\n\r\n ///**\r\n // * \r\n // */\r\n //public async ManoObraMateriales() {\r\n\r\n // //let idEspacios: number[] = [];\r\n // //let listElementos: number[] = [];\r\n\r\n // //if (this.listaEspacios != null) {\r\n\r\n // // for (let espacio of this.listaEspacios) {\r\n\r\n // // if (espacio.checked == true) {\r\n\r\n // // idEspacios.push(espacio.entity.idEspacio);\r\n\r\n // // let filter = espacio.listElementos.filter(row => row.checked == false && row.total > 0);\r\n\r\n // // if (filter != null && filter.length > 0) {\r\n\r\n // // for (let row of filter) {\r\n // // listElementos.push(row.entity.idElemento);\r\n // // }\r\n\r\n // // }\r\n\r\n // // }\r\n // // }\r\n\r\n // //}\r\n\r\n //}\r\n\r\n\r\n /**\r\n * \r\n */\r\n public async ManoObra() {\r\n\r\n //this.ManoObraMateriales();\r\n this.titulo = ' Costo total de mano de obra';\r\n this.modalPresupuesto = false;\r\n this.modalManoObra = true;\r\n this.modalMateriales = false;\r\n\r\n // Mano de Obra\r\n {\r\n this.Indirecto = 0;\r\n this.SubTotal = 0;\r\n this.TotalManoObra = 0;\r\n\r\n //let dato: InputObtenerCostoExcelTotalManoObra = {\r\n // idEspacios: idEspacios,\r\n // tablaElementos: listElementos\r\n //};\r\n\r\n let dato: InputObtenerCostoExcelTotalManoObra = {\r\n idPrototipo: this.prototipo.entity.idPrototipo,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU(),\r\n tablaElementoEsp: this.getListElementosEsp(),\r\n tablaEspacio: this.getListEspacios(),\r\n };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerCostoExcelTotalManoObra(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.listaCostoExcelTotalManoObra = resultado.model;\r\n\r\n for (let row of this.listaCostoExcelTotalManoObra) {\r\n this.TotalManoObra += row.importe;\r\n }\r\n\r\n let porcentaje: number = 1 + this.getValorManoObra();\r\n\r\n this.SubTotal = this.TotalManoObra / porcentaje;\r\n\r\n this.Indirecto = this.TotalManoObra - this.SubTotal;\r\n\r\n }\r\n }\r\n\r\n this.showModalTotales();\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async Materiales() {\r\n\r\n //this.ManoObraMateriales();\r\n\r\n this.titulo = ' Costo total de materiales';\r\n this.modalPresupuesto = false;\r\n this.modalManoObra = false;\r\n this.modalMateriales = true;\r\n\r\n // Materiales\r\n {\r\n this.TotalMateriales = 0;\r\n\r\n //let dato: InputObtenerCostoExcelExplosionTotalMateriales = {\r\n // idEspacios: idEspacios,\r\n // tablaElementos: listElementos,\r\n // clave: this.getClave()\r\n //};\r\n\r\n let dato: InputObtenerCostoExcelExplosionTotalMateriales = {\r\n idPrototipo: this.prototipo.entity.idPrototipo,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU(),\r\n tablaElementoEsp: this.getListElementosEsp(),\r\n tablaEspacio: this.getListEspacios(),\r\n };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerCostoExcelExplosionTotalMateriales(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.listaCostoExcelExplosionTotalMateriales = resultado.model;\r\n\r\n for (let row of this.listaCostoExcelExplosionTotalMateriales) {\r\n this.TotalMateriales += row.importe;\r\n }\r\n\r\n }\r\n }\r\n\r\n this.showModalTotales();\r\n\r\n }\r\n\r\n\r\n\r\n /**\r\n * \r\n */\r\n public showModalTotales(): void {\r\n this.modalTotales = true;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeModal(): void {\r\n this.modalTotales = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async downloadReporte() {\r\n\r\n let parametros: Totales = {\r\n totalMateriales: this.TotalMateriales,\r\n totalManoObra: this.TotalManoObra,\r\n totalPresupuesto: this.TotalPresupuesto,\r\n total: this.CostoTotalProyecto,\r\n tipoVivienda: this.getTipoVivienda(),\r\n tipoAsistencia: this.getTipoAsistencia()\r\n };\r\n\r\n let datosReporte: InputObtenerReportePrototipo = {\r\n idPrototipo: this.prototipo.entity.idPrototipo,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU(),\r\n listEspacios: [],\r\n parametros: parametros,\r\n tablaElementoEsp: this.getListElementosEsp(),\r\n tablaEspacio: this.getListEspacios(),\r\n }\r\n\r\n if (this.listaEspacios != null) {\r\n\r\n for (let espacio of this.listaEspacios) {\r\n\r\n if (espacio.checked == true) {\r\n\r\n let espacios: Espacios = {\r\n idEspacio: espacio.entity.idEspacio,\r\n listElementos: [],\r\n };\r\n\r\n let filter = espacio.listElementos.filter(row => row.checked == false && row.total > 0);\r\n\r\n let listElementos: number[] = [];\r\n\r\n if (filter != null && filter.length > 0) {\r\n\r\n for (let row of filter) {\r\n listElementos.push(row.entity.idElemento);\r\n }\r\n\r\n }\r\n\r\n espacios.listElementos = listElementos;\r\n\r\n datosReporte.listEspacios.push(espacios);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n if (datosReporte != null) {\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerReportePrototipo(datosReporte).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n window.open(resultado.model);\r\n } else {\r\n console.error('Error en Reporte Prototipo -->> ', resultado);\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n /** para que se vaya al html bookmark del calculo arriba **/\r\n scrollToElement($element): void {\r\n console.log($element);\r\n $element.scrollIntoView({ behavior: \"smooth\", block: \"start\", inline: \"nearest\" });\r\n }\r\n\r\n /**\r\n * \r\n * @param idEspacio\r\n * @param idEtapaPrototipo\r\n */\r\n public verPlano(idEspacio?: number, idEtapaPrototipo?: number) {\r\n\r\n this.tituloModal = `Plano - Etapa ${idEtapaPrototipo}`;\r\n\r\n this.listDocument = [];\r\n\r\n let filter = this.listaDocumentos.listDocumentXEtapa.filter(row => row.idCatalogoDocumento == 3 && row.idEspacio == idEspacio);\r\n\r\n //Etapa 1\r\n\r\n if (idEspacio == null) {\r\n\r\n let subFilter = this.listaDocumentos.listDocumentXEtapa.filter(row => row.idCatalogoDocumento == 3);\r\n\r\n if (subFilter != null && subFilter.length > 0) {\r\n\r\n subFilter = subFilter.sort(row => row.idEspacio)\r\n\r\n filter = this.listaDocumentos.listDocumentXEtapa.filter(row => row.idCatalogoDocumento == 3 && row.idEspacio == subFilter[0].idEspacio);\r\n }\r\n }\r\n\r\n this.listDocument.push(...filter);\r\n }\r\n\r\n /**\r\n * \r\n * @param idEspacio\r\n * @param idEtapaPrototipo\r\n */\r\n public queIncluye(idEspacio?: number, idEtapaPrototipo?: number) {\r\n\r\n this.tituloModal = `¿Qué incluye? - Etapa ${idEtapaPrototipo}`;\r\n\r\n this.listDocument = [];\r\n\r\n let filter = this.listaDocumentos.listDocumentXEtapa.filter(row => row.idCatalogoDocumento == 4 && row.idEspacio == idEspacio);\r\n\r\n //Etapa 1\r\n\r\n if (idEspacio == null) {\r\n\r\n let subFilter = this.listaDocumentos.listDocumentXEtapa.filter(row => row.idCatalogoDocumento == 4);\r\n\r\n if (subFilter != null && subFilter.length > 0) {\r\n\r\n subFilter = subFilter.sort(row => row.idEspacio)\r\n\r\n filter = this.listaDocumentos.listDocumentXEtapa.filter(row => row.idCatalogoDocumento == 4 && row.idEspacio == subFilter[0].idEspacio);\r\n }\r\n }\r\n\r\n this.listDocument.push(...filter);\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param label\r\n * @param rutaArchivo\r\n */\r\n public ampliarImagen(label: string, rutaArchivo: string) {\r\n\r\n this.tituloModal = `${label}`;\r\n\r\n this.listDocument = [];\r\n\r\n let docuemntosXPrototipo: OutputObtenerDocuemntosXPrototipo = { rutaArchivo: rutaArchivo };\r\n\r\n this.listDocument.push(docuemntosXPrototipo);\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public downloadDocumento(entity: OutputObtenerDocuemntosXPrototipo) {\r\n window.open(entity.rutaArchivo);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport { FormValidation } from 'src/app/libs/ruvpp-angular2-comun/FormValidation';\r\nimport { HttpSession } from 'src/app/libs/ruvpp-angular2-comun/HttpSession';\r\nimport { MenuComponent } from '../menu/menu.component';\r\nimport { SimuladorService } from './../../datos/simulador.service';\r\nimport { JsonResponse } from './../../libs/ruvpp-angular2-comun/modelo/Index';\r\nimport { ServicioAlertas } from './../../libs/ruvpp-angular2-comun/ServicioAlertas';\r\nimport { DatosElementoDTO, ElementoDTO, EspacioDTO, EspacioForm, InputObtenerCostoManoObra, InputObtenerCostoPrecioUnitarioMateriales, InputObtenerCostoTotalManoObraXElemento, InputObtenerCostoTotalMaterialesXElemento, InputObtenerEspacioDetalle, InputObtenerEspacio_Pages, InputObtenerPrototipo_Pages, InputObtenerReporte, OutputObtenerCostoManoObra, OutputObtenerCostoPrecioUnitarioMateriales, OutputObtenerCostoTotalManoObraXElemento, OutputObtenerCostoTotalMaterialesXElemento, OutputObtenerElementos, OutputObtenerEspacioDetalle, OutputObtenerEspacio_Pages, OutputObtenerPrototipoDetalle, OutputObtenerPrototipo_Pages, PersonalDTO, PrototipoDTO, PrototipoForm, SelectItemGroups, TipoEspacioDTO, TipoPrototipoDTO, UnidadMedidaDTO, InputObtenerCostoExcelExplosionTotalMateriales, OutputObtenerCostoExcelExplosionTotalMateriales, InputObtenerCostoExcelExplosionXConcepto, OutputObtenerCostoExcelExplosionXConcepto, InputObtenerCostoExcelTotalManoObra, OutputObtenerCostoExcelTotalManoObra, InputObtenerCostoTotalExcelPresupuestoPrototipo, OutputObtenerCostoTotalExcelPresupuestoPrototipo, InputObtenerCostoTotalExcelPrototipo, OutputObtenerCostoTotalExcelPrototipo, AmpliacionDTO, InputObtenerAmpliacionxConceptoIntegrado, OutputObtenerAmpliacionxConceptoIntegrado, AmpliacionxConceptoIntegradoDTO, ConceptoIntegradoDTO, ItemGroupsAmpliacion, $AmpliacionxConceptoIntegrado, InputObtenerCostoTotalExcelAmpliacion, OutputObtenerCostoTotalExcelAmpliacion, CostoTotalExcelAmpliacionDTO, $AmpliacionxConceptoIntegradoDTO, InputObtenerCostoExcelTotalManoObraAmpliacion, OutputObtenerCostoExcelTotalManoObraAmpliacion, InputObtenerCostoExcelTotalMaterialesAmpliacion, OutputObtenerCostoExcelTotalMaterialesAmpliacion, CostoExcelTotalManoObraAmpliacionDTO, CostoExcelTotalMaterialesAmpliacionDTO, OutputObtenerCostoTotalExcelPresupuestoElemento, InputObtenerCostoTotalExcelPresupuestoElemento, CostoTotalExcelPresupuestoElementoDTO, CostoTotalExcelPresupuestoPrototipoDTO, InputObtenerCostoTotalExcelPresupuestoAmpliacion, OutputObtenerCostoTotalExcelPresupuestoAmpliacion, CostoTotalExcelPresupuestoAmpliacionDTO, OutputObtenerDocuemntosXPrototipo, DocuemntosXPrototipoDTO, InputObtenerAmpliacionModelo, OutputObtenerAmpliacionModelo, AmpliacionModeloDTO, OutputObtenerDocumentosXAmpliacion, InputObtenerDocumentosXAmpliacion, DocumentosXAmpliacionDTO } from './../../modelo';\r\n\r\n\r\n@Component({\r\n selector: 'app-simulador',\r\n templateUrl: './simulador.component.html',\r\n //styleUrls: ['../../../assets/css/styles.css', '../../../assets/css/bootstrap.css']\r\n})\r\n\r\nexport class SimuladorComponent implements OnInit {\r\n\r\n //Otros\r\n\r\n public activeTab: string = \"pestana1\";\r\n public activeMenu: string = \"elemento01\";\r\n public activeMenuEspacio: string = \"elemento01\";\r\n public grupoElementos: SelectItemGroups[];\r\n public datosElemento: DatosElementoDTO;\r\n public idElementSelect: number[];\r\n public checked: SelectItemGroups[] = [];\r\n public checkedGrup: SelectItemGroups[] = [];\r\n public checkedEspacio: SelectItemGroups[] = [];\r\n public checkedGrupEspacio: SelectItemGroups[] = [];\r\n public grupoEspacios: SelectItemGroups[];\r\n public grupoPrototipos: SelectItemGroups[];\r\n public entity: SelectItemGroups;\r\n public listUnidadMedida: UnidadMedidaDTO[];\r\n public listPersonal: PersonalDTO[];\r\n public forward: string;\r\n public ModalidadObra: string = 'ConstruYO Reparaciones Menores';\r\n public idModalidadObra: number = 1;\r\n public isAutoproduccion: boolean = false;\r\n public CostoTotalProyecto: number = 0;\r\n public ConAsistenciaTecnica: number = 0;\r\n public ConConstructora: number = 0;\r\n\r\n\r\n // public TotalManoObraAmpliacion: number = 0;\r\n public TotalMaterialesAmpliacion: number = 0;\r\n public TotalPresupuestoAmpliacion: number = 0;\r\n public SubTotalAmpliacion: number = 0;\r\n public IndirectoAmpliacion: number = 0;\r\n \r\n public tipoVivienda: string = '0';\r\n public tipoAsistencia: string = '0';\r\n public clave: string = '';\r\n public modalPresupuesto: boolean = false;\r\n public modalManoObra: boolean = false;\r\n public modalMateriales: boolean = false;\r\n public modalPresupuestoAmpliacion: boolean = false;\r\n public titulo: string;\r\n public SubTotal: number = 0;\r\n public Indirecto: number = 0;\r\n public $Total: number = 0;\r\n\r\n\r\n public TotalManosObraElemento: number = 0;\r\n public SubTotalManosObraElemento: number = 0;\r\n public IndirectoManosObraElemento: number = 0;\r\n\r\n public TotalMaterialesElemento: number = 0;\r\n\r\n\r\n public SubTotalManosObraAmpliacion: number = 0;\r\n public IndirectoManosObraAmpliacion: number = 0;\r\n public TotalManosObraAmpliacion: number = 0;\r\n\r\n\r\n public groupsAmpliacion: ItemGroupsAmpliacion[];\r\n public listSubMenuAmpliacion: AmpliacionModeloDTO[] = [];\r\n public ampliacion: AmpliacionDTO;\r\n public listConceptoIntegradoObligatorios: ConceptoIntegradoDTO[];\r\n public costoTotalConceptoIntegradoObligatorios: number;\r\n public groupAmpliacionxConceptoIntegrado: $AmpliacionxConceptoIntegrado[] = [];\r\n public costoTotalExcelAmpliacion: CostoTotalExcelAmpliacionDTO[];\r\n public checkedAll: boolean = false;\r\n public tipoPlanta: string = '1';\r\n public largo: number | null;\r\n public ancho: number | null;\r\n public m2: number | null;\r\n public costoTotalAmpliacion: number = 0;\r\n public groupCostoTotalExcelPresupuestoElemento: CostoTotalExcelPresupuestoElementoDTO[] = [];\r\n public listaDocumentos: DocuemntosXPrototipoDTO;\r\n public listDocument: DocumentosXAmpliacionDTO[] = [];\r\n public tituloModal: string;\r\n public listAmpliacionModelo: AmpliacionModeloDTO[];\r\n public listDocumentosXAmpliacion: DocumentosXAmpliacionDTO[];\r\n\r\n //Simulador\r\n\r\n public simuladorForm: EspacioForm;\r\n\r\n //Espacio\r\n public espacio: EspacioDTO;\r\n public espacioForm: EspacioForm;\r\n\r\n //Prototipo\r\n\r\n @ViewChild('fileUpload') fileUpload: any;\r\n public prototipo: PrototipoDTO;\r\n public prototipoForm: PrototipoForm;\r\n public uploadedFiles: any[] = [];\r\n public msgs: Message[] = [];\r\n\r\n\r\n //Lista de Consultas \r\n\r\n public costoManoObra: OutputObtenerCostoManoObra[];\r\n public precioUnitarioMateriales: OutputObtenerCostoPrecioUnitarioMateriales[];\r\n public costoTotalManoObraXElemento: OutputObtenerCostoTotalManoObraXElemento[];\r\n public costoTotalMaterialesXElemento: OutputObtenerCostoTotalMaterialesXElemento[];\r\n public costoExcelTotalManoObraAmpliacion: CostoExcelTotalManoObraAmpliacionDTO[];\r\n public costoExcelTotalMaterialesAmpliacion: CostoExcelTotalMaterialesAmpliacionDTO[];\r\n public costoTotalExcelPresupuestoElemento: OutputObtenerCostoTotalExcelPresupuestoElemento[];\r\n public costoTotalExcelPresupuestoAmpliacion: CostoTotalExcelPresupuestoAmpliacionDTO[];\r\n\r\n\r\n public modalTotales: boolean = false;\r\n\r\n //Modal\r\n public aviso: boolean = false;\r\n public modalDetalleEspacio: boolean = false;\r\n public descripcionAmplia: string;\r\n public nombreElemento: string;\r\n\r\n //Menu\r\n public menu: MenuComponent;\r\n public urlImage: string;\r\n\r\n public idAmpliacion: number = 1;\r\n\r\n /**\r\n * \r\n * @param messageService\r\n * @param servicioAlertas\r\n * @param service\r\n * @param _router\r\n */\r\n constructor(private messageService: MessageService, private servicioAlertas: ServicioAlertas, private service: SimuladorService, private _router: Router) {\r\n this.menu = new MenuComponent(_router);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n ngOnInit(): void {\r\n\r\n this.loading();\r\n //this.initSimuladorForm();\r\n this.initEspacioForm();\r\n //this.initPrototipoForm();\r\n\r\n this.idElementSelect = [];\r\n this.checked = [];\r\n this.checkedEspacio = [];\r\n\r\n //this.onChangeTipoVivienda();\r\n this.setForward();\r\n }\r\n\r\n\r\n /**\r\n * \r\n */\r\n private setForward(): void {\r\n\r\n this.forward = HttpSession.getAttribute('FORWARD');\r\n\r\n if (this.forward != null) {\r\n\r\n switch (this.forward) {\r\n case 'ELEMENTOS': this.activeTab = 'pestana1'; break;\r\n case 'ESPACIOS': this.activeTab = 'pestana22'; break;\r\n case 'VIVIENDAS': this.activeTab = 'pestana3'; break;\r\n case 'GUIAS': this.activeTab = 'pestana5'; break;\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param name\r\n */\r\n public changeTab(name: string): void {\r\n this.activeTab = name;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public changeMenu(entity: any): void {\r\n\r\n console.warn('entity -->> ', entity)\r\n\r\n for (let row of this.grupoElementos) {\r\n row.checked = false;\r\n }\r\n\r\n this.activeMenu = entity.index;\r\n\r\n //debugger\r\n\r\n //let listaSiglas: string[] = [];\r\n //listaSiglas.push('T');\r\n\r\n //let listas: any[] = [];\r\n\r\n //for (let row of listaSiglas) {\r\n // let subQuery:any[] = entity.items.filter(row => row.siglas == row)\r\n\r\n // if (subQuery != null && subQuery.length > 0) {\r\n // listas.push(subQuery);\r\n // }\r\n\r\n \r\n //}\r\n\r\n \r\n\r\n\r\n entity.checked = true;\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public changeMenuEspacio(entity: any): void {\r\n\r\n for (let row of this.grupoEspacios) {\r\n row.checked = false;\r\n }\r\n\r\n this.activeMenuEspacio = entity.index;\r\n\r\n entity.checked = true;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private async loading() {\r\n\r\n let usuario = HttpSession.getAttribute('USER_NAME');\r\n\r\n let isAdministrador: boolean = false;\r\n\r\n if (usuario != null) {\r\n isAdministrador = true;\r\n }\r\n\r\n let datosElementoDTO: JsonResponse = null;\r\n\r\n // Obtener Elementos\r\n {\r\n datosElementoDTO = await this.service.ObtenerElementos().toPromise();\r\n }\r\n\r\n //Obtener Espacios\r\n {\r\n //debugger\r\n\r\n let data: InputObtenerEspacio_Pages = { tamanioPagina: 9000, pagina: 1 };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerEspacioPages(data).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.espacioForm.listEspacios = resultado.model.listEspacios;\r\n\r\n if (isAdministrador != null && isAdministrador == false) {\r\n this.espacioForm.listEspacios = this.espacioForm.listEspacios.filter(row => row.activo == true);\r\n }\r\n\r\n }\r\n }\r\n\r\n //Obtener Prototipos\r\n //{\r\n // let data: InputObtenerPrototipo_Pages = { tamanioPagina: 9000, pagina: 1 };\r\n\r\n // let resultado: JsonResponse = await this.service.ObtenerPrototipoPages(data).toPromise();\r\n\r\n // if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n // this.prototipoForm.listPrototipos = resultado.model.listPrototipo;\r\n\r\n // if (isAdministrador != null && isAdministrador == false) {\r\n // this.prototipoForm.listPrototipos = this.prototipoForm.listPrototipos.filter(row => row.activo == true);\r\n // }\r\n\r\n // }\r\n\r\n //}\r\n\r\n //Obtener Ampliacion Modelo\r\n\r\n {\r\n\r\n let dato: InputObtenerAmpliacionModelo = { idAmpliacion: null }\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerAmpliacionModelo(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n this.listAmpliacionModelo = resultado.model.listAmpliacionModelo;\r\n }\r\n\r\n console.warn('ListAmpliacionModelo -->> ', this.listAmpliacionModelo)\r\n }\r\n\r\n // Obtener Documentos por Ampliacion\r\n {\r\n let dato: InputObtenerDocumentosXAmpliacion = { idAmpliacion: null };\r\n\r\n let respuesta: JsonResponse = await this.service.ObtenerDocumentosXAmpliacion(dato).toPromise();\r\n\r\n if (respuesta != null && respuesta.code == 200 && respuesta.model != null) {\r\n this.listDocumentosXAmpliacion = respuesta.model.listDocumentosXAmpliacion;\r\n }\r\n\r\n console.warn('ListDocumentosXAmpliacion -->> ', this.listDocumentosXAmpliacion)\r\n\r\n }\r\n\r\n\r\n this.ObtenerElementos(datosElementoDTO);\r\n\r\n this.groupsAmpliacion = [];\r\n\r\n if (this.datosElemento != null && this.datosElemento.listAmpliacion != null) {\r\n\r\n let cont = 1;\r\n\r\n for (let row of this.datosElemento.listAmpliacion) {\r\n\r\n let checked: boolean = false;\r\n\r\n if (cont == 1) {\r\n checked = true;\r\n }\r\n\r\n let dato: ItemGroupsAmpliacion = >{ entity: row, name: row.nombreTipoEspacio, checked: checked, length: 0 };\r\n\r\n if (cont == 1) {\r\n this.setlistSubMenuAmpliacion(dato)\r\n }\r\n\r\n this.groupsAmpliacion.push(dato);\r\n\r\n cont++;\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public clickMenuAmpliacion(entity: ItemGroupsAmpliacion): void {\r\n\r\n for (let row of this.groupsAmpliacion) {\r\n row.checked = false;\r\n }\r\n\r\n entity.checked = true;\r\n\r\n this.setlistSubMenuAmpliacion(entity)\r\n\r\n if (this.listSubMenuAmpliacion != null && this.listSubMenuAmpliacion.length == 0) {\r\n this.onClickAmpliacion(entity, null);\r\n }\r\n\r\n this.idAmpliacion = entity.entity.idAmpliacion;\r\n }\r\n\r\n\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param subMenu\r\n */ public async clickSubMenuAmpliacion(entity: ItemGroupsAmpliacion, subMenu: any) {\r\n\r\n for (let row of this.listSubMenuAmpliacion) {\r\n row.checked = false;\r\n }\r\n\r\n subMenu.checked = true;\r\n\r\n await this.onClickAmpliacion(entity, subMenu);\r\n\r\n await this.TotalCalculos();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n private setlistSubMenuAmpliacion(entity: ItemGroupsAmpliacion): void {\r\n\r\n let idAmpliacion: number = entity.entity.idAmpliacion;\r\n\r\n this.listSubMenuAmpliacion = [];\r\n\r\n if (this.listAmpliacionModelo != null) {\r\n\r\n let filter = this.listAmpliacionModelo.filter(row => row.idAmpliacion == idAmpliacion);\r\n\r\n if (filter != null && filter.length > 0) {\r\n\r\n if (entity.length == 0) {\r\n for (let row of filter) {\r\n row.checked = false;\r\n }\r\n }\r\n\r\n this.listSubMenuAmpliacion.push(...filter);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Obtener valores acabados ampliación\r\n */\r\n private async ObtenerCostoTotalExcelAmpliacion() {\r\n\r\n this.costoTotalExcelAmpliacion = [];\r\n\r\n if (this.ampliacion != null) {\r\n\r\n let dato: InputObtenerCostoTotalExcelAmpliacion = {\r\n idAmpliacion: this.ampliacion.idAmpliacion,\r\n largo: this.largo,\r\n ancho: this.ancho,\r\n idPiso: Number(this.tipoPlanta),\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU()\r\n };\r\n\r\n let respuesta: JsonResponse = await this.service.ObtenerCostoTotalExcelAmpliacion(dato).toPromise();\r\n\r\n if (respuesta != null && respuesta.code == 200 && respuesta.model != null) {\r\n this.costoTotalExcelAmpliacion = respuesta.model.listCostoTotalExcelAmpliacion;\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param resultado\r\n */\r\n private async ObtenerElementos(resultado: JsonResponse) {\r\n\r\n //let resultado: JsonResponse = await this.service.ObtenerElementos().toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n this.datosElemento = resultado.model;\r\n\r\n this.grupoElementos = [];\r\n\r\n let cont: number = 1;\r\n\r\n //Agrupar Elementos\r\n {\r\n for (let tipoElemento of this.datosElemento.listTipoElementos) {\r\n\r\n let index: string = '';\r\n\r\n let filter: OutputObtenerElementos[] = this.datosElemento.listElementos.filter(row => row.idTipoElemento == tipoElemento.idTipoElemento);\r\n\r\n let items: any[] = [];\r\n\r\n for (let entity of filter) {\r\n\r\n let elemento: ElementoDTO = {\r\n idElemento: entity.idElemento,\r\n nombreElemento: entity.nombreElemento,\r\n clave: entity.clave,\r\n idTipoDatoEntrada: entity.idTipoDatoEntrada,\r\n idTipoElemento: entity.idTipoElemento,\r\n unidadMedida: entity.unidadMedida,\r\n nombreTipoDatoEntrada: entity.nombreTipoDatoEntrada,\r\n nombreTipoElemento: entity.nombreTipoElemento,\r\n idManoObra: entity.idManoObra,\r\n largo: null,\r\n anchoCantidad: null,\r\n tipoCaptura: '1'\r\n };\r\n\r\n if (entity.idTipoDatoEntrada == 1) {\r\n elemento.largo = 1;\r\n }\r\n\r\n items.push({ label: entity.nombreElemento, value: entity.idElemento, checked: false, entity: entity, elemento: elemento });\r\n }\r\n\r\n index = '' + cont;\r\n\r\n if (cont <= 9) {\r\n index = '0' + cont;\r\n }\r\n\r\n let dato: any = {\r\n label: tipoElemento.nombreTipoElemento,\r\n items: items,\r\n class: 'panel-heading botonizq' + index,\r\n index: index,\r\n length: 0,\r\n checked: false\r\n };\r\n\r\n this.grupoElementos.push(dato);\r\n\r\n cont++;\r\n\r\n }\r\n\r\n }\r\n\r\n //Agrupar Espacios\r\n {\r\n\r\n this.grupoEspacios = [];\r\n\r\n cont = 1;\r\n\r\n for (let tipoEspacio of this.datosElemento.listTipoEspacio) {\r\n\r\n let index: string = '';\r\n\r\n index = '' + cont;\r\n\r\n if (cont <= 9) {\r\n index = '0' + cont;\r\n }\r\n\r\n let filter = this.espacioForm.listEspacios.filter(row => row.idTipoEspacio == tipoEspacio.idTipoEspacio);\r\n\r\n let items: any[] = [];\r\n\r\n for (let entity of filter) {\r\n items.push({ label: entity.nombreEspacio, value: entity.idEspacio, checked: false, entity: entity });\r\n }\r\n\r\n let dato: any = {\r\n label: tipoEspacio.nombreTipoEspacio,\r\n items: items,\r\n class: 'panel-heading botonizq01' + index,\r\n index: index,\r\n entity: tipoEspacio\r\n };\r\n\r\n this.grupoEspacios.push(dato);\r\n\r\n cont++;\r\n\r\n }\r\n\r\n }\r\n\r\n //Agrupar Prototipos\r\n {\r\n\r\n this.grupoPrototipos = [];\r\n\r\n cont = 1;\r\n\r\n for (let tipoPrototipo of this.datosElemento.listTipoPrototipo) {\r\n\r\n let index: string = '';\r\n\r\n index = '' + cont;\r\n\r\n if (cont <= 9) {\r\n index = '0' + cont;\r\n }\r\n\r\n let dato: any = {\r\n label: tipoPrototipo.nombreTipoPrototipo,\r\n items: [],\r\n class: 'panel-heading botonizq01' + index,\r\n index: index,\r\n entity: tipoPrototipo\r\n };\r\n\r\n this.grupoPrototipos.push(dato);\r\n\r\n cont++;\r\n\r\n }\r\n }\r\n\r\n this.listUnidadMedida = this.datosElemento.listUnidadMedida;\r\n\r\n this.listPersonal = this.datosElemento.listPersonal;\r\n\r\n if (this.grupoElementos != null && this.grupoElementos.length > 0) {\r\n this.changeMenu(this.grupoElementos[0]);\r\n }\r\n\r\n if (this.grupoEspacios != null && this.grupoEspacios.length > 0) {\r\n this.changeMenuEspacio(this.grupoEspacios[0]);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n ///**\r\n // * \r\n // */\r\n //private initSimuladorForm() {\r\n // this.simuladorForm = { nombreEspacio_MensajeError: new FormValidation(null), tab: 0, listaElementos: [] };\r\n //}\r\n\r\n /**\r\n * \r\n */\r\n private initEspacioForm() {\r\n this.espacioForm = { nombreEspacio_MensajeError: new FormValidation(null), tab: 0, listaElementos: [] };\r\n }\r\n\r\n ///**\r\n // * \r\n // */\r\n //private initPrototipoForm() {\r\n // this.prototipoForm = {\r\n // listEspacioSelect: [], nombrePrototipo_MensajeError: new FormValidation(null), prototipoDetalle: { listDocumento: [], listEspacioxPrototipo: [] }, listPrototipos: [], espacioForm: { nombreEspacio_MensajeError: new FormValidation(null) }, tab: 0\r\n // };\r\n //}\r\n\r\n /**\r\n * \r\n */\r\n private getClave(): string {\r\n\r\n let clave: string = '';\r\n\r\n switch (this.tipoVivienda) {\r\n case '0': clave = ''; break;\r\n case '1': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 1)[0].clave; break;\r\n case '2': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 2)[0].clave; break;\r\n }\r\n\r\n return clave;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getValorClave(): number {\r\n\r\n let valor: number = 0;\r\n\r\n switch (this.tipoVivienda) {\r\n case '0': valor = 0.0; break;\r\n case '1': valor = this.datosElemento.listParametro.filter(row => row.idParametro == 1)[0].valor; break;\r\n case '2': valor = this.datosElemento.listParametro.filter(row => row.idParametro == 2)[0].valor; break;\r\n }\r\n\r\n return valor;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getClavePU(): string {\r\n\r\n let clave: string = '';\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 4)[0].clave; break;\r\n case '1': clave = this.datosElemento.listParametro.filter(row => row.idParametro == 5)[0].clave; break;\r\n }\r\n\r\n return clave;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getValorClavePU(): number {\r\n\r\n let valor: number = 0;\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': valor = this.datosElemento.listParametro.filter(row => row.idParametro == 4)[0].valor; break;\r\n case '1': valor = this.datosElemento.listParametro.filter(row => row.idParametro == 5)[0].valor; break;\r\n }\r\n\r\n return valor;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getValorManoObra(): number {\r\n\r\n let valor: number = this.datosElemento.listParametro.filter(row => row.idParametro == 3)[0].valor;\r\n\r\n return valor;\r\n }\r\n\r\n /**\r\n * \r\n * @param showModal\r\n */\r\n public async Calculos(showModal: boolean) {\r\n\r\n this.costoManoObra = [];\r\n\r\n this.precioUnitarioMateriales = [];\r\n\r\n this.costoTotalManoObraXElemento = [];\r\n\r\n this.costoTotalMaterialesXElemento = [];\r\n\r\n let listTablaValores: object[] = [];\r\n\r\n let listElementos: number[] = [];\r\n\r\n this.checked.forEach(row => {\r\n listTablaValores.push([row.elemento.idElemento, row.elemento.largo, row.elemento.anchoCantidad]);\r\n listElementos.push(row.elemento.idElemento);\r\n });\r\n\r\n let costoManoObra: JsonResponse = null;\r\n let precioUnitarioMateriales: JsonResponse = null;\r\n let costoTotalManoObraXElemento: JsonResponse = null;\r\n let costoTotalMaterialesXElemento: JsonResponse = null;\r\n\r\n this.Indirecto = 0;\r\n this.SubTotal = 0;\r\n //this.total = 0;\r\n\r\n {\r\n this.TotalManosObraElemento = 0;\r\n this.SubTotalManosObraElemento = 0;\r\n this.IndirectoManosObraElemento = 0;\r\n\r\n let dato: InputObtenerCostoTotalManoObraXElemento = {\r\n tablaValores: listTablaValores,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU()\r\n };\r\n\r\n costoTotalManoObraXElemento = await this.service.ObtenerCostoTotalManoObraXElemento(dato).toPromise();\r\n\r\n if (costoTotalManoObraXElemento != null && costoTotalManoObraXElemento.code == 200 && costoTotalManoObraXElemento.model != null) {\r\n\r\n this.costoTotalManoObraXElemento = costoTotalManoObraXElemento.model;\r\n\r\n for (let row of this.costoTotalManoObraXElemento) {\r\n this.TotalManosObraElemento += row.importe;\r\n }\r\n\r\n let porcentaje: number = 1 + this.getValorManoObra();\r\n\r\n this.SubTotalManosObraElemento = this.TotalManosObraElemento / porcentaje;\r\n\r\n this.IndirectoManosObraElemento = this.TotalManosObraElemento - this.SubTotalManosObraElemento;\r\n\r\n }\r\n }\r\n\r\n {\r\n this.TotalMaterialesElemento = 0;\r\n\r\n let dato: InputObtenerCostoTotalMaterialesXElemento = {\r\n tablaValores: listTablaValores,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU()\r\n };\r\n\r\n costoTotalMaterialesXElemento = await this.service.ObtenerCostoTotalMaterialesXElemento(dato).toPromise();\r\n\r\n if (costoTotalMaterialesXElemento != null && costoTotalMaterialesXElemento.code == 200 && costoTotalMaterialesXElemento.model != null) {\r\n\r\n this.costoTotalMaterialesXElemento = costoTotalMaterialesXElemento.model;\r\n\r\n for (let row of this.costoTotalMaterialesXElemento) {\r\n this.TotalMaterialesElemento += row.importe;\r\n }\r\n }\r\n }\r\n\r\n // ** Obtener valores acabados ampliación\r\n // ** ¿Qué acabados quieres que tenga tu espacio?\r\n\r\n await this.onChangeCostoTotalAmplicacion();\r\n\r\n await this.ExplosionDatosAmpliacion();\r\n\r\n await this.Presupuesto();\r\n\r\n //this.total = this.$Total + this.TotalPresupuestoAmpliacion; \r\n\r\n this.CostoTotalProyecto = this.$Total + this.TotalPresupuestoAmpliacion;\r\n\r\n //this.onChangeTipoAsistencia();\r\n\r\n //switch (this.tipoVivienda) {\r\n // case '0': this.Economico = this.total; break;\r\n // case '1': this.Medio = this.total; break;\r\n // case '2': this.Alto = this.total; break;\r\n //}\r\n\r\n if (showModal == true) {\r\n this.showModalTotales();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async Presupuesto() {\r\n\r\n this.titulo = 'Presupuesto';\r\n\r\n let listTablaValores: object[] = [];\r\n\r\n this.checked.forEach(row => {\r\n listTablaValores.push([row.elemento.idElemento, row.elemento.largo, row.elemento.anchoCantidad]);\r\n });\r\n\r\n this.SubTotal = 0;\r\n this.Indirecto = 0;\r\n this.$Total = 0;\r\n\r\n this.costoTotalExcelPresupuestoElemento = [];\r\n\r\n let dato: InputObtenerCostoTotalExcelPresupuestoElemento = {\r\n tablaValores: listTablaValores,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU()\r\n };\r\n\r\n let respuesta: JsonResponse = await this.service.ObtenerCostoTotalExcelPresupuestoElemento(dato).toPromise();\r\n\r\n if (respuesta != null && respuesta.code == 200 && respuesta.model != null) {\r\n\r\n let listaCostoTotalExcelPresupuestoElemento = respuesta.model;\r\n\r\n for (let row of listaCostoTotalExcelPresupuestoElemento) {\r\n this.$Total += row.subtotal;\r\n }\r\n\r\n this.$Total = this.$Total / 2;\r\n\r\n let porcentaje: number = 1 + this.getValorClavePU();\r\n\r\n this.SubTotal = this.$Total / porcentaje;\r\n\r\n this.Indirecto = this.$Total - this.SubTotal;\r\n\r\n this.costoTotalExcelPresupuestoElemento = listaCostoTotalExcelPresupuestoElemento;\r\n\r\n //Agrupar nombreTipoElemento\r\n //{\r\n // this.groupCostoTotalExcelPresupuestoElemento = [];\r\n\r\n // for (let tipoElemento of this.datosElemento.listTipoElementos) {\r\n\r\n // let filtro = listaCostoTotalExcelPresupuestoElemento.filter(row => row.idTipoElemento == tipoElemento.idTipoElemento);\r\n\r\n // if (filtro != null && filtro.length > 0) {\r\n\r\n // let subTotal: number = 0;\r\n\r\n // for (let row of filtro) {\r\n // subTotal += row.subtotal;\r\n // }\r\n\r\n // let costoTotalExcelPresupuestoElemento: CostoTotalExcelPresupuestoElementoDTO = { nombreTipoElemento: tipoElemento.nombreTipoElemento, listCostoTotalExcelPresupuestoElemento: filtro, subtotal: subTotal };\r\n\r\n // this.groupCostoTotalExcelPresupuestoElemento.push(costoTotalExcelPresupuestoElemento);\r\n // }\r\n\r\n // }\r\n\r\n // if (this.groupCostoTotalExcelPresupuestoElemento != null && this.groupCostoTotalExcelPresupuestoElemento.length > 0) {\r\n\r\n // this.costoTotalExcelPresupuestoElemento = [];\r\n\r\n // for (let row of this.groupCostoTotalExcelPresupuestoElemento) {\r\n\r\n // let encabezado: OutputObtenerCostoTotalExcelPresupuestoElemento = { nombreTipoElemento: row.nombreTipoElemento };\r\n\r\n // this.costoTotalExcelPresupuestoElemento.push(encabezado);\r\n\r\n // for (let row2 of row.listCostoTotalExcelPresupuestoElemento) {\r\n\r\n // row2.nombreTipoElemento = null;\r\n\r\n // this.costoTotalExcelPresupuestoElemento.push(row2);\r\n // }\r\n\r\n // let total: OutputObtenerCostoTotalExcelPresupuestoElemento = { subtotal: row.subtotal };\r\n\r\n // this.costoTotalExcelPresupuestoElemento.push(total);\r\n\r\n // }\r\n\r\n // }\r\n //}\r\n\r\n }\r\n\r\n this.showModalTotales();\r\n\r\n this.modalPresupuesto = true;\r\n this.modalManoObra = false;\r\n this.modalMateriales = false;\r\n this.modalPresupuestoAmpliacion = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async ManoObra() {\r\n\r\n await this.Calculos(true);\r\n\r\n this.titulo = 'Mano de obra';\r\n this.modalPresupuesto = false;\r\n this.modalManoObra = true;\r\n this.modalMateriales = false;\r\n this.modalPresupuestoAmpliacion = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async Materiales() {\r\n\r\n await this.Calculos(true);\r\n\r\n this.titulo = 'Materiales';\r\n this.modalPresupuesto = false;\r\n this.modalManoObra = false;\r\n this.modalMateriales = true;\r\n this.modalPresupuestoAmpliacion = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async PresupuestoAmpliacion() {\r\n\r\n await this.Calculos(true);\r\n\r\n this.titulo = 'Presupuesto';\r\n this.modalPresupuesto = false;\r\n this.modalManoObra = false;\r\n this.modalMateriales = false;\r\n this.modalPresupuestoAmpliacion = true;\r\n }\r\n\r\n /** */\r\n public async TotalCalculos() {\r\n\r\n await this.Calculos(false);\r\n\r\n this.titulo = null;\r\n this.modalPresupuesto = false;\r\n this.modalManoObra = false;\r\n this.modalMateriales = false;\r\n this.modalPresupuestoAmpliacion = false;\r\n this.hideModalTotales();\r\n }\r\n\r\n /**\r\n * \r\n * @param id\r\n * @param isChecked\r\n */\r\n public onSelectElement(id: number, isChecked: boolean): void {\r\n\r\n this.checkedGrup = [];\r\n\r\n this.checked = [];\r\n\r\n for (var item of this.grupoElementos) {\r\n\r\n let filter = item.items.filter(row => row.checked == true);\r\n\r\n item.length = filter.length;\r\n\r\n this.checked.push(...filter);\r\n\r\n if (filter != null && filter.length > 0) {\r\n\r\n let groups: SelectItemGroups = >{ label: item.label, items: filter };\r\n\r\n this.checkedGrup.push(groups);\r\n\r\n }\r\n }\r\n\r\n this.getTipoModalidadObra();\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param id\r\n * @param isChecked\r\n */\r\n public onSelectEspacio(id: number, isChecked: boolean): void {\r\n\r\n this.checkedGrupEspacio = [];\r\n\r\n this.checkedEspacio = [];\r\n\r\n for (var item of this.grupoEspacios) {\r\n\r\n let filter = item.items.filter(row => row.checked == true);\r\n\r\n item.length = filter.length;\r\n\r\n this.checkedEspacio.push(...filter);\r\n\r\n if (filter != null && filter.length > 0) {\r\n\r\n let groups: SelectItemGroups = >{ label: item.label, items: filter };\r\n\r\n this.checkedGrupEspacio.push(groups);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n //public onChangeTipoAsistencia(): void {\r\n\r\n // this.ConAsistenciaTecnica = this.total;\r\n\r\n // this.ConConstructora = this.total;\r\n\r\n // switch (this.tipoAsistencia) {\r\n // case '0': this.CostoTotalProyecto = this.ConAsistenciaTecnica; break;\r\n // case '1': this.CostoTotalProyecto = this.ConConstructora; break;\r\n // }\r\n //}\r\n\r\n /**\r\n * \r\n */\r\n public onChangeCantidad(): void {\r\n this.setTotales();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangeM2(entity: ElementoDTO): void {\r\n\r\n entity.m2 = null;\r\n\r\n if ((entity.largo != null && entity.largo > 0) && (entity.anchoCantidad != null && entity.anchoCantidad > 0)) {\r\n entity.m2 = entity.largo * entity.anchoCantidad;\r\n }\r\n\r\n this.setTotales();\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public EliminarElemento(entity: SelectItemGroups, entity2: SelectItemGroups): void {\r\n\r\n console.log('EliminarElemento -->> ')\r\n\r\n const index1 = this.checkedGrup.findIndex(user => user == entity);\r\n\r\n const index2 = this.checkedGrup[index1].items.findIndex(row => row == entity2);\r\n\r\n const index3 = this.checked.findIndex(row => row == entity2);\r\n\r\n this.checkedGrup[index1].items.splice(index2, 1);\r\n\r\n if (this.checkedGrup[index1].items.length == 0) {\r\n this.checkedGrup.splice(index1, 1);\r\n }\r\n\r\n this.checked.splice(index3, 1);\r\n\r\n this.grupoElementos.forEach(row => {\r\n\r\n let filter = row.items.filter(row => row.elemento.idElemento == entity2.elemento.idElemento)\r\n\r\n if (filter != null && filter.length > 0) {\r\n filter[0].checked = false;\r\n }\r\n\r\n row.length = row.items.filter(row => row.checked == true).length;\r\n\r\n });\r\n\r\n this.setTotales();\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private setTotales(): void {\r\n //this.Economico = 0;\r\n //this.Medio = 0;\r\n //this.Alto = 0;\r\n this.ConAsistenciaTecnica = 0;\r\n this.ConConstructora = 0;\r\n this.CostoTotalProyecto = 0;\r\n //this.tipoVivienda = '';\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onCheckTipoEspacio(entity: SelectItemGroups): void {\r\n let filter = this.espacioForm.listEspacios.filter(row => row.idTipoEspacio == entity.entity.idTipoEspacio);\r\n entity.items = filter;\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onCheckTipoPrototipo(entity: SelectItemGroups): void {\r\n\r\n console.warn('onCheckTipoPrototipo -->> ', entity)\r\n\r\n let filter = this.prototipoForm.listPrototipos.filter(row => row.idTipoPrototipo == entity.entity.idTipoPrototipo);\r\n entity.items = filter;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeAviso(): void {\r\n this.aviso = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public closeModal(): void {\r\n this.modalTotales = false;\r\n this.modalDetalleEspacio = false;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public showModalTotales(): void {\r\n this.modalTotales = true;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public hideModalTotales(): void {\r\n this.modalTotales = false;\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param idEspacio\r\n */\r\n private async getEspacio(idEspacio: number) {\r\n\r\n let dato: InputObtenerEspacioDetalle = { idEspacio: idEspacio };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerEspacioDetalle(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n if (this.espacioForm.typeView == 'Detalle' || this.espacioForm.typeView == 'Editar') {\r\n this.espacioForm.idEspacio = resultado.model.espacio.idEspacio;\r\n this.espacioForm.nombreEspacio = resultado.model.espacio.nombreEspacio;\r\n }\r\n\r\n this.espacioForm.listaElementos = [];\r\n\r\n if (resultado.model.listElementos != null) {\r\n\r\n this.espacioForm.listaElementos = resultado.model.listElementos;\r\n\r\n for (let row of this.espacioForm.listaElementos) {\r\n row.nombreElemento = row.nombreElementoEsp;\r\n }\r\n }\r\n\r\n }\r\n\r\n this.showModalDetalleEspacio();\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public showModalDetalleEspacio(): void {\r\n this.modalDetalleEspacio = true;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getTipoVivienda(): string {\r\n\r\n let tipoVivienda: string = '~~';\r\n\r\n switch (this.tipoVivienda) {\r\n case '0': tipoVivienda = 'Económico'; break;\r\n case '1': tipoVivienda = 'Medio'; break;\r\n case '2': tipoVivienda = 'Alto'; break;\r\n }\r\n\r\n return tipoVivienda;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getTipoAsistencia(): string {\r\n\r\n let tipoAsistencia: string = '~~';\r\n\r\n switch (this.tipoAsistencia) {\r\n case '0': tipoAsistencia = 'Con Asistencia Técnica'; break;\r\n case '1': tipoAsistencia = ' Con Constructora'; break;\r\n }\r\n\r\n return tipoAsistencia;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private getTipoModalidadObra(): string {\r\n\r\n this.isAutoproduccion = false;\r\n\r\n let modalidadObra: string = 'ConstruYO Reparaciones Menores';\r\n\r\n this.idModalidadObra = 1;\r\n\r\n let filter = this.checked.filter(row => row.entity.esAutoproduccion == true);\r\n\r\n if (filter != null && filter.length > 0) {\r\n modalidadObra = 'ConstruYO con Asistencia Técnica o Constructora';\r\n this.idModalidadObra = 2;\r\n this.isAutoproduccion = true;\r\n }\r\n\r\n if (this.ampliacion != null) {\r\n modalidadObra = 'ConstruYO con Asistencia Técnica o Constructora';\r\n this.isAutoproduccion = true;\r\n }\r\n\r\n this.ModalidadObra = modalidadObra;\r\n\r\n return modalidadObra;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async onChangeTipoVivienda() {\r\n\r\n this.clave = this.getClave();\r\n\r\n await this.TotalCalculos();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async downloadReporte() {\r\n\r\n let tablaValores: object[] = [];\r\n\r\n let listElementos: number[] = [];\r\n\r\n this.checked.forEach(row => {\r\n tablaValores.push([row.elemento.idElemento, row.elemento.largo, row.elemento.anchoCantidad]);\r\n listElementos.push(row.elemento.idElemento);\r\n });\r\n\r\n let tipoAsistencia: string = this.getTipoAsistencia();\r\n\r\n if (this.isAutoproduccion == false) {\r\n tipoAsistencia = '~~';\r\n }\r\n\r\n let datosReporte: InputObtenerReporte = {\r\n listElementos: listElementos,\r\n tablaValores: tablaValores,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU(),\r\n modalidadObra: this.getTipoModalidadObra(),\r\n tipoVivienda: this.getTipoVivienda(),\r\n tipoAsistencia: tipoAsistencia,\r\n totalPresupuesto: this.$Total,\r\n totalManoObra: this.TotalManosObraElemento,\r\n totalMateriales: this.TotalMaterialesElemento,\r\n totalPresupuestoAmpliacion: this.TotalPresupuestoAmpliacion,\r\n totalManoObraAmpliacion: this.TotalManosObraAmpliacion,\r\n totalMaterialesAmpliacion: this.TotalMaterialesAmpliacion,\r\n total: this.CostoTotalProyecto,\r\n costoExcelTotalMaterialesAmpliacion: this.getInputObtenerCostoExcelTotalMaterialesAmpliacion(),\r\n };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerReporte(datosReporte).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n window.open(resultado.model);\r\n } else {\r\n console.error('Error en Reporte Elementos-->> ', resultado);\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n private onChangeAmpliacion(): void {\r\n\r\n for (let row of this.groupsAmpliacion) {\r\n row.length = 0;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n * @param subMenu\r\n */\r\n public async onClickAmpliacion(entity: ItemGroupsAmpliacion, subMenu: any) {\r\n\r\n this.eliminarAmpliacion();\r\n\r\n this.onChangeAmpliacion();\r\n\r\n entity.length = 1;\r\n\r\n this.ampliacion = entity.entity;\r\n\r\n if (subMenu != null) {\r\n this.largo = subMenu.largo;\r\n this.ancho = subMenu.ancho;\r\n this.ampliacion.nombreTipoEspacio = subMenu.descripcion;\r\n this.urlImage = subMenu.rutaArchivo;\r\n this.onChaneM2();\r\n }\r\n\r\n // Set Lista Concepto Integrado Obligatorios\r\n\r\n this.listConceptoIntegradoObligatorios = [];\r\n\r\n let dato: InputObtenerAmpliacionxConceptoIntegrado = { idAmpliacion: this.ampliacion.idAmpliacion };\r\n\r\n let resultado: JsonResponse = await this.service.ObtenerAmpliacionxConceptoIntegrado(dato).toPromise();\r\n\r\n if (resultado != null && resultado.code == 200 && resultado.model != null) {\r\n\r\n let listAmpliacionxConceptoIntegrado: AmpliacionxConceptoIntegradoDTO[] = resultado.model.listAmpliacionxConceptoIntegrado;\r\n\r\n let listConceptoIntegrado = this.datosElemento.listConceptoIntegrado;\r\n\r\n this.listConceptoIntegradoObligatorios = this.datosElemento.listConceptoIntegrado.filter(row => row.obligatorio == true);\r\n\r\n let opcionales = this.datosElemento.listConceptoIntegrado.filter(row => row.obligatorio == false);\r\n\r\n let groupAmpliacionxConceptoIntegrado: any[] = [];\r\n\r\n //Agrupar por idConceptoIntegrado\r\n\r\n {\r\n for (let item of opcionales) {\r\n\r\n let objeto: any = { listAmpliacionxConceptoIntegrado: [], descripcion: null, iguales: false }\r\n\r\n let filtro: AmpliacionxConceptoIntegradoDTO[] = listAmpliacionxConceptoIntegrado.filter(row => row.idConceptoIntegrado == item.idConceptoIntegrado);\r\n\r\n if (filtro != null && filtro.length > 0) {\r\n\r\n let ampliacionxConceptoIntegrado: AmpliacionxConceptoIntegradoDTO = filtro[0];\r\n\r\n objeto.listAmpliacionxConceptoIntegrado.push(...filtro);\r\n\r\n let aux: number = ampliacionxConceptoIntegrado.idElemento * ampliacionxConceptoIntegrado.maximoxAmpliacion;\r\n\r\n let idElementos: number = 0;\r\n\r\n let descripcion: string = '';\r\n\r\n for (let item2 of filtro) {\r\n idElementos += item2.idElemento;\r\n descripcion += `${item2.nombreElemento} ,`;\r\n }\r\n\r\n if (aux != idElementos) {\r\n objeto.descripcion = descripcion;\r\n } else {\r\n objeto.iguales = true;\r\n }\r\n\r\n }\r\n\r\n groupAmpliacionxConceptoIntegrado.push(objeto);\r\n\r\n }\r\n\r\n }\r\n\r\n //Set Lista groupAmpliacionxConceptoIntegrado\r\n\r\n // ** Obtener acabados ampliación\r\n // ** ¿Qué acabados quieres que tenga tu espacio?\r\n\r\n this.groupAmpliacionxConceptoIntegrado = [];\r\n\r\n if (groupAmpliacionxConceptoIntegrado != null && groupAmpliacionxConceptoIntegrado.length > 0) {\r\n\r\n for (let row of groupAmpliacionxConceptoIntegrado) {\r\n\r\n if (row.iguales == true && row.descripcion == null) {\r\n\r\n for (let item of row.listAmpliacionxConceptoIntegrado) {\r\n\r\n let entity: $AmpliacionxConceptoIntegrado = {\r\n idAmpliacionxConceptoIntegrado: item.idAmpliacionxConceptoIntegrado,\r\n listAmpliacionxConceptoIntegradoDTO: [],\r\n descripcionConceptoIntegrado: item.descripcionConceptoIntegrado,\r\n idElemento: item.idElemento,\r\n nombreElemento: item.nombreElemento,\r\n checked: false,\r\n costoTotal: 0,\r\n descripcion: null,\r\n checkedDescripcion: false\r\n };\r\n\r\n this.groupAmpliacionxConceptoIntegrado.push(entity);\r\n\r\n }\r\n\r\n } else {\r\n\r\n let listAmpliacionxConceptoIntegrado: $AmpliacionxConceptoIntegradoDTO[] = [];\r\n\r\n if (row.listAmpliacionxConceptoIntegrado != null && row.listAmpliacionxConceptoIntegrado.length > 0) {\r\n\r\n for (let item of row.listAmpliacionxConceptoIntegrado) {\r\n\r\n let objeto: $AmpliacionxConceptoIntegradoDTO = { idAmpliacionxConceptoIntegrado: item.idAmpliacionxConceptoIntegrado, costoTotal: 0 };\r\n\r\n listAmpliacionxConceptoIntegrado.push(objeto);\r\n }\r\n\r\n let ampliacionxConceptoIntegrado: AmpliacionxConceptoIntegradoDTO = row.listAmpliacionxConceptoIntegrado[0];\r\n\r\n let entity: $AmpliacionxConceptoIntegrado = {\r\n idAmpliacionxConceptoIntegrado: ampliacionxConceptoIntegrado.idAmpliacionxConceptoIntegrado,\r\n listAmpliacionxConceptoIntegradoDTO: listAmpliacionxConceptoIntegrado,\r\n descripcionConceptoIntegrado: ampliacionxConceptoIntegrado.descripcionConceptoIntegrado,\r\n idElemento: ampliacionxConceptoIntegrado.idElemento,\r\n nombreElemento: ampliacionxConceptoIntegrado.nombreElemento,\r\n checked: false,\r\n costoTotal: 0,\r\n descripcion: row.descripcion,\r\n checkedDescripcion: false\r\n };\r\n\r\n this.groupAmpliacionxConceptoIntegrado.push(entity);\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n console.warn('this.groupAmpliacionxConceptoIntegrado -->> ', this.groupAmpliacionxConceptoIntegrado);\r\n\r\n this.changeTab('pestana4');\r\n\r\n this.getTipoModalidadObra();\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public eliminarAmpliacion(): void {\r\n this.ampliacion = null;\r\n this.onChangeAmpliacion();\r\n this.largo = null;\r\n this.ancho = null;\r\n this.m2 = null;\r\n this.tipoPlanta = '1';\r\n this.costoTotalAmpliacion = 0;\r\n this.costoTotalConceptoIntegradoObligatorios = 0;\r\n this.TotalManosObraElemento = 0;\r\n this.TotalMaterialesElemento = 0;\r\n this.ConAsistenciaTecnica = 0;\r\n this.ConConstructora = 0;\r\n this.CostoTotalProyecto = 0;\r\n this.getTipoModalidadObra();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n /* private Calculos_CostoTotalAmpliacion(): void {\r\n \r\n this.costoTotalAmpliacion = this.costoTotalConceptoIntegradoObligatorios;\r\n \r\n if (this.groupAmpliacionxConceptoIntegrado != null && this.groupAmpliacionxConceptoIntegrado.length > 0) {\r\n \r\n for (let row of this.groupAmpliacionxConceptoIntegrado) {\r\n \r\n if (row.checked == true) {\r\n \r\n this.costoTotalAmpliacion += row.costoTotal;\r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n console.warn('this.costoTotalAmpliacion -->> ', this.costoTotalAmpliacion);\r\n \r\n }*/\r\n\r\n /**\r\n * \r\n */\r\n public async checkAll() {\r\n\r\n if (this.groupAmpliacionxConceptoIntegrado != null && this.groupAmpliacionxConceptoIntegrado.length > 0) {\r\n\r\n for (let item of this.groupAmpliacionxConceptoIntegrado) {\r\n item.checked = this.checkedAll;\r\n }\r\n\r\n }\r\n\r\n this.TotalCalculos();\r\n\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async checkElementoAmpliacion() {\r\n this.TotalCalculos();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public async onChaneM2() {\r\n\r\n this.costoTotalConceptoIntegradoObligatorios = 0;\r\n\r\n this.m2 = 0;\r\n\r\n if ((this.largo != null && this.largo > 0) && (this.ancho != null && this.ancho > 0)) {\r\n\r\n this.m2 = this.largo * this.ancho;\r\n\r\n await this.TotalCalculos();\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Obtener valores acabados ampliación\r\n * ¿Qué acabados quieres que tenga tu espacio?\r\n */\r\n private async onChangeCostoTotalAmplicacion() {\r\n\r\n await this.ObtenerCostoTotalExcelAmpliacion();\r\n\r\n let filter = this.costoTotalExcelAmpliacion.filter(item => item.obligatorio == true);\r\n\r\n this.costoTotalConceptoIntegradoObligatorios = 0;\r\n\r\n for (let row of filter) {\r\n this.costoTotalConceptoIntegradoObligatorios += row.costoTotal;\r\n }\r\n\r\n for (let row of this.groupAmpliacionxConceptoIntegrado) {\r\n\r\n if (row.listAmpliacionxConceptoIntegradoDTO.length == 0) {\r\n\r\n let filter = this.costoTotalExcelAmpliacion.filter(item => item.idAmpliacionxConceptoIntegrado == row.idAmpliacionxConceptoIntegrado);\r\n\r\n if (filter != null && filter.length > 0) {\r\n row.costoTotal = filter[0].costoTotal;\r\n }\r\n\r\n } else {\r\n\r\n let costoTotal: number = 0;\r\n\r\n for (let item0 of row.listAmpliacionxConceptoIntegradoDTO) {\r\n\r\n let filter = this.costoTotalExcelAmpliacion.filter(item => item.idAmpliacionxConceptoIntegrado == item0.idAmpliacionxConceptoIntegrado);\r\n\r\n if (filter != null && filter.length > 0) {\r\n item0.costoTotal = filter[0].costoTotal;\r\n\r\n costoTotal += item0.costoTotal;\r\n }\r\n }\r\n\r\n row.costoTotal = costoTotal;\r\n\r\n }\r\n\r\n }\r\n\r\n //this.Calculos_CostoTotalAmpliacion();\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public detalleDescripcion(entity: $AmpliacionxConceptoIntegrado): void {\r\n entity.checkedDescripcion = !entity.checkedDescripcion;\r\n }\r\n\r\n\r\n /**\r\n * \r\n */\r\n private getInputObtenerCostoExcelTotalMaterialesAmpliacion(): any {\r\n\r\n let tablaAmpliacionxConceptoIntegrado: number[] = [];\r\n\r\n let noSelect = this.groupAmpliacionxConceptoIntegrado.filter(row => row.checked == false);\r\n\r\n if (noSelect != null && noSelect.length > 0) {\r\n\r\n for (let row of noSelect) {\r\n\r\n if (row.listAmpliacionxConceptoIntegradoDTO != null && row.listAmpliacionxConceptoIntegradoDTO.length > 0) {\r\n\r\n for (let row2 of row.listAmpliacionxConceptoIntegradoDTO) {\r\n tablaAmpliacionxConceptoIntegrado.push(row2.idAmpliacionxConceptoIntegrado)\r\n }\r\n\r\n } else {\r\n tablaAmpliacionxConceptoIntegrado.push(row.idAmpliacionxConceptoIntegrado)\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n let dato: InputObtenerCostoExcelTotalMaterialesAmpliacion = null;\r\n\r\n if (this.ampliacion != null && this.ampliacion.idAmpliacion != null) {\r\n\r\n dato = {\r\n idAmpliacion: this.ampliacion.idAmpliacion,\r\n largo: this.largo,\r\n ancho: this.ancho,\r\n idAltura: 1,\r\n idPiso: Number(this.tipoPlanta),\r\n tablaAmpliacionxConceptoIntegrado: tablaAmpliacionxConceptoIntegrado,\r\n clave: this.getClave(),\r\n clavePU: this.getClavePU()\r\n };\r\n\r\n }\r\n\r\n return dato;\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param showModal\r\n */\r\n public async ExplosionDatosAmpliacion() {\r\n\r\n // CostoExcelTotalManoObraAmpliacion\r\n\r\n {\r\n this.costoExcelTotalManoObraAmpliacion = [];\r\n this.TotalManosObraAmpliacion = 0;\r\n this.SubTotalManosObraAmpliacion = 0;\r\n this.IndirectoManosObraAmpliacion = 0;\r\n\r\n if (this.ampliacion != null && this.ampliacion.idAmpliacion != null) {\r\n\r\n let dato: InputObtenerCostoExcelTotalMaterialesAmpliacion = this.getInputObtenerCostoExcelTotalMaterialesAmpliacion();\r\n\r\n let respuesta: JsonResponse = await this.service.ObtenerCostoExcelTotalManoObraAmpliacion(dato).toPromise();\r\n\r\n if (respuesta != null && respuesta.code == 200 && respuesta.model != null) {\r\n\r\n this.costoExcelTotalManoObraAmpliacion = respuesta.model.listCostoExcelTotalManoObraAmpliacion;\r\n\r\n for (let row of this.costoExcelTotalManoObraAmpliacion) {\r\n this.TotalManosObraAmpliacion += row.importe;\r\n }\r\n\r\n let porcentaje: number = 1 + this.getValorManoObra();\r\n\r\n this.SubTotalManosObraAmpliacion = this.TotalManosObraAmpliacion / porcentaje;\r\n\r\n this.IndirectoManosObraAmpliacion = this.TotalManosObraAmpliacion - this.SubTotalManosObraAmpliacion;\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n // ObtenerCostoExcelTotalMaterialesAmpliacion\r\n\r\n {\r\n this.costoExcelTotalMaterialesAmpliacion = [];\r\n\r\n this.TotalMaterialesAmpliacion = 0;\r\n\r\n if (this.ampliacion != null && this.ampliacion.idAmpliacion != null) {\r\n\r\n let dato: InputObtenerCostoExcelTotalMaterialesAmpliacion = this.getInputObtenerCostoExcelTotalMaterialesAmpliacion();\r\n\r\n let respuesta: JsonResponse = await this.service.ObtenerCostoExcelTotalMaterialesAmpliacion(dato).toPromise();\r\n\r\n if (respuesta != null && respuesta.code == 200 && respuesta.model != null) {\r\n\r\n this.costoExcelTotalMaterialesAmpliacion = respuesta.model.listCostoExcelTotalMaterialesAmpliacion;\r\n\r\n for (let row of this.costoExcelTotalMaterialesAmpliacion) {\r\n this.TotalMaterialesAmpliacion += row.importe;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n // ObtenerCostoTotalExcelPresupuestoAmpliacion\r\n\r\n {\r\n this.costoTotalExcelPresupuestoAmpliacion = [];\r\n\r\n this.TotalPresupuestoAmpliacion = 0;\r\n\r\n this.SubTotalAmpliacion = 0;\r\n\r\n this.IndirectoAmpliacion = 0;\r\n\r\n if (this.ampliacion != null && this.ampliacion.idAmpliacion != null) {\r\n\r\n let dato: InputObtenerCostoTotalExcelPresupuestoAmpliacion = this.getInputObtenerCostoExcelTotalMaterialesAmpliacion();\r\n\r\n let respuesta: JsonResponse = await this.service.ObtenerCostoTotalExcelPresupuestoAmpliacion(dato).toPromise();\r\n\r\n if (respuesta != null && respuesta.code == 200 && respuesta.model != null) {\r\n\r\n let listaCostoTotalExcelPresupuestoAmpliacion = respuesta.model.listCostoExcelTotalManoObraAmpliacion;\r\n\r\n for (let row of listaCostoTotalExcelPresupuestoAmpliacion) {\r\n this.TotalPresupuestoAmpliacion += row.subtotal;\r\n }\r\n\r\n this.TotalPresupuestoAmpliacion = this.TotalPresupuestoAmpliacion / 2;\r\n\r\n let porcentaje: number = 1 + this.getValorClavePU();\r\n\r\n this.SubTotalAmpliacion = this.TotalPresupuestoAmpliacion / porcentaje;\r\n\r\n this.IndirectoAmpliacion = this.TotalPresupuestoAmpliacion - this.SubTotalAmpliacion;\r\n\r\n this.costoTotalExcelPresupuestoAmpliacion = listaCostoTotalExcelPresupuestoAmpliacion;\r\n \r\n // Agrupar [ Nombre tipo elemento ]\r\n\r\n //{\r\n // this.groupCostoTotalExcelPresupuestoElemento = [];\r\n\r\n // for (let tipoElemento of this.datosElemento.listTipoElementos) {\r\n\r\n // let filtro = listaCostoTotalExcelPresupuestoAmpliacion.filter(row => row.idTipoElemento == tipoElemento.idTipoElemento);\r\n\r\n // if (filtro != null && filtro.length > 0) {\r\n\r\n // let subTotal: number = 0;\r\n\r\n // for (let row of filtro) {\r\n // subTotal += row.subtotal;\r\n // }\r\n\r\n // let costoTotalExcelPresupuestoElemento: CostoTotalExcelPresupuestoElementoDTO = { nombreTipoElemento: tipoElemento.nombreTipoElemento, listCostoTotalExcelPresupuestoElemento: filtro, subtotal: subTotal };\r\n\r\n // this.groupCostoTotalExcelPresupuestoElemento.push(costoTotalExcelPresupuestoElemento);\r\n // }\r\n\r\n // }\r\n\r\n // if (this.groupCostoTotalExcelPresupuestoElemento != null && this.groupCostoTotalExcelPresupuestoElemento.length > 0) {\r\n\r\n // this.costoTotalExcelPresupuestoAmpliacion = [];\r\n\r\n // for (let row of this.groupCostoTotalExcelPresupuestoElemento) {\r\n\r\n // let encabezado: OutputObtenerCostoTotalExcelPresupuestoElemento = { nombreTipoElemento: row.nombreTipoElemento };\r\n\r\n // this.costoTotalExcelPresupuestoAmpliacion.push(encabezado);\r\n\r\n // for (let row2 of row.listCostoTotalExcelPresupuestoElemento) {\r\n\r\n // row2.nombreTipoElemento = null;\r\n\r\n // this.costoTotalExcelPresupuestoAmpliacion.push(row2);\r\n // }\r\n\r\n // let total: OutputObtenerCostoTotalExcelPresupuestoElemento = { subtotal: row.subtotal };\r\n\r\n // this.costoTotalExcelPresupuestoAmpliacion.push(total);\r\n\r\n // }\r\n\r\n // }\r\n\r\n\r\n //}\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n /** para que se vaya al html bookmark del calculo arriba **/\r\n scrollToElement($element): void {\r\n console.log($element);\r\n $element.scrollIntoView({ behavior: \"smooth\", block: \"start\", inline: \"nearest\" });\r\n }\r\n\r\n /**\r\n * \r\n * @param entity\r\n */\r\n public onChangeTipoCaptura(entity: ElementoDTO): void {\r\n\r\n if (entity.tipoCaptura == '1') {\r\n entity.largo = null;\r\n entity.anchoCantidad = null;\r\n entity.m2 = null;\r\n }\r\n\r\n if (entity.tipoCaptura == '2') {\r\n entity.largo = 1;\r\n entity.anchoCantidad = null;\r\n entity.m2 = null;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param nombreElemento\r\n * @param descripcionAmplia\r\n */\r\n public detalleModalElemento(nombreElemento: string, descripcionAmplia: string) {\r\n this.descripcionAmplia = descripcionAmplia;\r\n this.nombreElemento = nombreElemento;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public verPlano() {\r\n\r\n this.tituloModal = `Plano - ${this.ampliacion.nombreTipoEspacio}`;\r\n\r\n this.listDocument = [];\r\n\r\n let documento: DocumentosXAmpliacionDTO = { rutaArchivo: this.urlImage };\r\n\r\n this.listDocument.push(documento);\r\n\r\n //if (this.listDocumentosXAmpliacion != null) {\r\n\r\n // let filter = this.listDocumentosXAmpliacion.filter(row => row.idCatalogoDocumento == 3 && row.idAmpliacion == this.ampliacion.idAmpliacion);\r\n\r\n // if (filter != null && filter.length > 0) {\r\n // this.listDocument.push(...filter);\r\n // }\r\n\r\n //}\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public queIncluye() {\r\n\r\n this.tituloModal = `¿Qué incluye? - ${this.ampliacion.nombreTipoEspacio}`;\r\n\r\n this.listDocument = [];\r\n\r\n if (this.listDocumentosXAmpliacion != null) {\r\n\r\n let filter = this.listDocumentosXAmpliacion.filter(row => row.idCatalogoDocumento == 4 && row.idAmpliacion == this.ampliacion.idAmpliacion);\r\n\r\n if (filter != null && filter.length > 0) {\r\n this.listDocument.push(...filter);\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param label\r\n * @param rutaArchivo\r\n */\r\n public ampliarImagen(label: string, rutaArchivo: string) {\r\n\r\n this.tituloModal = `${label}`;\r\n\r\n this.listDocument = [];\r\n\r\n let documentosXAmpliacion: DocumentosXAmpliacionDTO = { rutaArchivo: rutaArchivo };\r\n\r\n this.listDocument.push(documentosXAmpliacion);\r\n }\r\n\r\n}","export default \"/** estilos maquetado, url(\\\"/assets/images/\\\"); **/\\r\\n\\r\\nbody {\\r\\n min-width: 660px !important;\\r\\n background-image: linear-gradient(101deg, #f0f0f0, #D9D9D9, #D9D9D9, #f0f0f0);\\r\\n font-size: 16px;\\r\\n min-height: 100vh;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: 'WorkSans';\\r\\n src: url('WorkSans-Regular.ttf') format('truetype');\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: 'WorkSansBold';\\r\\n src: url('WorkSans-Bold.ttf') format('truetype');\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: 'WorkSansItalic';\\r\\n src: url('WorkSans-Italic.ttf') format('truetype');\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: 'WorkSansBoldItalic';\\r\\n src: url('WorkSans-BoldItalic.ttf') format('truetype');\\r\\n}\\r\\n\\r\\nbody {\\r\\n font-family: 'WorkSans';\\r\\n}\\r\\n\\r\\n.tabsderecha > li {\\r\\n float: right !important;\\r\\n background-color: rgba(255,255,255,0.65);\\r\\n margin-left: 3px;\\r\\n}\\r\\n\\r\\n.alturamaxlogoruv {\\r\\n height: 14vh;\\r\\n max-height: 60px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.alturamaxlogocons {\\r\\n height: 13vh;\\r\\n max-height: 52px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.margenarri15 {\\r\\n margin-top: 15px !important;\\r\\n}\\r\\n\\r\\n#usericon img {\\r\\n height: 20px;\\r\\n}\\r\\n\\r\\n.dropdown-menu {\\r\\n padding: 5px 10px;\\r\\n}\\r\\n\\r\\n.margenarriaba10 {\\r\\n margin-top: 10px !important;\\r\\n margin-bottom: 10px !important;\\r\\n}\\r\\n\\r\\nhr {\\r\\n border-top: 1px solid #c0c0c0;\\r\\n}\\r\\n\\r\\n.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\\r\\n border: 1px solid #939598;\\r\\n border-bottom-color: transparent;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.nav-tabs {\\r\\n border-bottom: 1px solid #939598;\\r\\n}\\r\\n\\r\\n.ajustetabs {\\r\\n margin-top: -15px;\\r\\n clear: both;\\r\\n}\\r\\n\\r\\n.ocultarescritorio {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n@media (max-width: 823px) {\\r\\n\\r\\n .ajustetabs {\\r\\n margin-top: 30px;\\r\\n }\\r\\n\\r\\n .ancho50pcmobile {\\r\\n width: 49% !important;\\r\\n display: inline-block !important;\\r\\n }\\r\\n\\r\\n .ocultarescritorio {\\r\\n display: block;\\r\\n }\\r\\n}\\r\\n\\r\\n.dropdown-menu {\\r\\n min-width: 300px;\\r\\n}\\r\\n\\r\\n.gris25pc {\\r\\n color: #c0c0c0 !important;\\r\\n}\\r\\n\\r\\n.gris50pc {\\r\\n color: #939598 !important;\\r\\n}\\r\\n\\r\\n.gris65pc {\\r\\n color: #77787b !important;\\r\\n}\\r\\n\\r\\n.gris75pc {\\r\\n color: #555 !important;\\r\\n}\\r\\n\\r\\n.recuadromenu {\\r\\n padding: 5px 10px;\\r\\n border: 1px solid #939598;\\r\\n border-radius: 10px;\\r\\n background-color: #fff;\\r\\n color: #555;\\r\\n}\\r\\n\\r\\n.recuadromenu:hover {\\r\\n border: 1px solid #939598;\\r\\n background-color: #c9eaff;\\r\\n color: #000;\\r\\n }\\r\\n\\r\\n.tab-content {\\r\\n background-color: #fff;\\r\\n /*min-height: 574px;*/\\r\\n min-height: 665px;\\r\\n border: 1px solid #939598;\\r\\n border-top: none;\\r\\n margin-bottom: 10px;\\r\\n padding: 10px 15px;\\r\\n}\\r\\n\\r\\n.margenaba-25 {\\r\\n margin-bottom: -25px !important;\\r\\n}\\r\\n\\r\\n.margenabaheader {\\r\\n margin-bottom: -13px !important;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .margenabaheader {\\r\\n margin-bottom: -18px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n.margenaba5 {\\r\\n margin-bottom: 5px !important;\\r\\n}\\r\\n\\r\\n.nav-tabs > li > a:hover {\\r\\n border-color: #c0c0c0 #c0c0c0 #c0c0c0;\\r\\n}\\r\\n\\r\\n.nav > li > a:hover, .nav > li > a:focus {\\r\\n background-color: #c9eaff;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.margenaba15 {\\r\\n margin-bottom: 15px !important;\\r\\n}\\r\\n\\r\\n.azullink {\\r\\n color: #337ab7 !important;\\r\\n}\\r\\n\\r\\na.list-group-item:hover, button.list-group-item:hover, a.list-group-item:focus, button.list-group-item:focus {\\r\\n color: #fff;\\r\\n background-color: #337ab7;\\r\\n border-color: #337ab7;\\r\\n}\\r\\n\\r\\n.margenaba10 {\\r\\n margin-bottom: 10px !important;\\r\\n}\\r\\n\\r\\n.subrayadohover:hover {\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.margenarriaba5 {\\r\\n margin-top: 5px !important;\\r\\n margin-bottom: 5px !important;\\r\\n}\\r\\n\\r\\n.alchecar {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.categoria {\\r\\n position: relative;\\r\\n display: block;\\r\\n padding: 10px 15px;\\r\\n margin-bottom: -1px;\\r\\n background-color: #fff;\\r\\n border: 1px solid #939598;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.alchecar:checked + .categoria {\\r\\n color: #fff;\\r\\n background-color: #337ab7;\\r\\n border-color: #337ab7;\\r\\n}\\r\\n\\r\\n.subcategoria {\\r\\n display: block;\\r\\n padding: 5px 10px;\\r\\n background-color: #fbfbfb;\\r\\n border: 1px solid #c0c0c0;\\r\\n border-radius: 5px;\\r\\n cursor: pointer;\\r\\n margin-bottom: 15px;\\r\\n font-weight: normal;\\r\\n min-height: 138px;\\r\\n text-align: center;\\r\\n word-break: break-word;\\r\\n line-height: 18px;\\r\\n}\\r\\n\\r\\n.subcategoria:hover {\\r\\n background-color: #c9eaff;\\r\\n border: 1px solid LightSkyBlue;\\r\\n }\\r\\n\\r\\n.alchecar:checked + .subcategoria {\\r\\n background-color: #939598;\\r\\n color: #fff;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.tablarowcol .row, .row.tablarowcol {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n}\\r\\n\\r\\n.tablarowcol .row > [class*='col-'] {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n }\\r\\n\\r\\n.panel-title > a, .panel-title > small, .panel-title > .small, .panel-title > small > a, .panel-title > .small > a {\\r\\n display: block;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.margenarri6 {\\r\\n margin-top: 6px !important;\\r\\n}\\r\\n\\r\\n.nav > li > a {\\r\\n padding: 5px 10px;\\r\\n}\\r\\n\\r\\n/*.nav-tabs > li > a {\\r\\nfont-weight: bold;\\r\\n}*/\\r\\n\\r\\n.margenarriaba8 {\\r\\n margin-top: 8px !important;\\r\\n margin-bottom: 8px !important;\\r\\n}\\r\\n\\r\\n.fondoazulhover:hover, .fondoazul {\\r\\n background-color: #c9eaff !important;\\r\\n}\\r\\n\\r\\n.margenarri5 {\\r\\n margin-top: 5px !important;\\r\\n}\\r\\n\\r\\n.form-control {\\r\\n border: 1px solid #939598;\\r\\n font-size: 16px;\\r\\n padding: 6px;\\r\\n}\\r\\n\\r\\n.paddingarri7 {\\r\\n padding-top: 7px !important;\\r\\n}\\r\\n\\r\\n.paddingder0 {\\r\\n padding-right: 0px !important;\\r\\n}\\r\\n\\r\\n.displayinlblo {\\r\\n display: inline-block !important;\\r\\n}\\r\\n\\r\\n.panel-default > .panel-heading {\\r\\n color: #333;\\r\\n background-image: linear-gradient(115deg, #ECECEC, #fbfbfb, #fbfbfb, #FBFBFB, #ECECEC);\\r\\n border-bottom: 1px solid #D9D9D9;\\r\\n}\\r\\n\\r\\n.panel-default > .panel-heading:hover {\\r\\n color: #000;\\r\\n background-image: linear-gradient(115deg, #b3e0fc, lightcyan, lightcyan, lightcyan, #b3e0fc);\\r\\n border-color: lightskyblue;\\r\\n }\\r\\n\\r\\n.panel-default {\\r\\n border-color: #e1e1e1;\\r\\n}\\r\\n\\r\\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\\r\\n border-top-color: #e1e1e1;\\r\\n border-right: 1px solid #e1e1e1;\\r\\n }\\r\\n\\r\\n.panel-heading {\\r\\n padding: 0px;\\r\\n}\\r\\n\\r\\n.panel-title > a {\\r\\n padding: 10px 20px 10px 15px;\\r\\n}\\r\\n\\r\\n.panel-title > a[aria-expanded=\\\"true\\\"] {\\r\\n background-image: linear-gradient(115deg, #b3e0fc, lightcyan, lightcyan, lightcyan, #b3e0fc);\\r\\n }\\r\\n\\r\\n@media (min-width: 1024px) {\\r\\n\\r\\n .botonesizq {\\r\\n padding-left: 290px;\\r\\n margin-top: 19px;\\r\\n }\\r\\n\\r\\n .botonesizq .panel-heading {\\r\\n position: absolute;\\r\\n top: 155px;\\r\\n left: 30px;\\r\\n margin-bottom: 30px;\\r\\n width: 290px;\\r\\n }\\r\\n\\r\\n .margenarri56 .botonesizq .panel-heading {\\r\\n top: 210px;\\r\\n }\\r\\n\\r\\n .botonizq01 {\\r\\n margin-top: 0px;\\r\\n }\\r\\n\\r\\n .botonizq02 {\\r\\n margin-top: 38px;\\r\\n }\\r\\n\\r\\n .botonizq03 {\\r\\n margin-top: 76px;\\r\\n }\\r\\n\\r\\n .botonizq04 {\\r\\n margin-top: 114px;\\r\\n }\\r\\n\\r\\n .botonizq05 {\\r\\n margin-top: 152px;\\r\\n }\\r\\n\\r\\n .botonizq06 {\\r\\n margin-top: 190px;\\r\\n }\\r\\n\\r\\n .botonizq07 {\\r\\n margin-top: 228px;\\r\\n }\\r\\n\\r\\n .botonizq08 {\\r\\n margin-top: 266px;\\r\\n }\\r\\n\\r\\n .botonizq09 {\\r\\n margin-top: 304px;\\r\\n }\\r\\n\\r\\n .botonizq10 {\\r\\n margin-top: 342px;\\r\\n }\\r\\n\\r\\n .botonizq11 {\\r\\n margin-top: 380px;\\r\\n }\\r\\n\\r\\n .botonizq12 {\\r\\n margin-top: 418px;\\r\\n }\\r\\n\\r\\n .botonizq13 {\\r\\n margin-top: 456px;\\r\\n }\\r\\n\\r\\n /*con el ajuste para descripciones largas*/\\r\\n\\r\\n #pestana1 .botonizq01 {\\r\\n margin-top: 0px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq02 {\\r\\n margin-top: 38px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq03 {\\r\\n margin-top: 76px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq04 {\\r\\n margin-top: 114px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq05 {\\r\\n margin-top: 186px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq06 {\\r\\n margin-top: 241px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq07 {\\r\\n margin-top: 279px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq08 {\\r\\n margin-top: 334px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq09 {\\r\\n margin-top: 372px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq10 {\\r\\n margin-top: 410px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq11 {\\r\\n margin-top: 465px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq12 {\\r\\n margin-top: 598px;\\r\\n }\\r\\n\\r\\n #pestana1 .botonizq13 {\\r\\n margin-top: 456px;\\r\\n }\\r\\n}\\r\\n\\r\\n.panel-group .panel + .panel {\\r\\n margin-top: 0px;\\r\\n}\\r\\n\\r\\n/** inicia estilos login **/\\r\\n\\r\\n#login {\\r\\n background-color: #f0f0f0;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n#login #logInfo {\\r\\n background-color: #fff;\\r\\n color: #505050;\\r\\n margin: 10vh auto;\\r\\n padding: 2em;\\r\\n width: 350px;\\r\\n border-radius: 5px;\\r\\n border: 1px solid #939598;\\r\\n }\\r\\n\\r\\n#login #logInfo a {\\r\\n color: #505050;\\r\\n }\\r\\n\\r\\n#login h1 {\\r\\n font-size: 1.5em;\\r\\n }\\r\\n\\r\\n#login #logInfo #logo {\\r\\n background-image: url(/assets/images/logo.svg);\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n background-size: 17em;\\r\\n height: 80px;\\r\\n width: 15em;\\r\\n margin: 0px 0px 30px 0px;\\r\\n }\\r\\n\\r\\n#login #logInfo form > * {\\r\\n display: block;\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n#login #msgs div {\\r\\n padding: 1.5em;\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n#login #msgs .e-msg {\\r\\n background-color: rgba(230, 60, 60, .35);\\r\\n color: rgba(230, 60, 60, .35);\\r\\n color: #610606;\\r\\n }\\r\\n\\r\\n#login #msgs .s-msg {\\r\\n background-color: rgba(113, 208, 50, .4);\\r\\n color: rgba(113, 208, 50, .4);\\r\\n color: #396a18;\\r\\n }\\r\\n\\r\\n#login #msgs .w-msg {\\r\\n background-color: rgba(240, 210, 7, .5);\\r\\n color: rgba(240, 210, 7, .5);\\r\\n color: #564b04;\\r\\n }\\r\\n\\r\\n/** termina estilos login **/\\r\\n\\r\\n.ancho100pc {\\r\\n width: 100% !important;\\r\\n}\\r\\n\\r\\n.margenaba30 {\\r\\n margin-bottom: 30px !important;\\r\\n}\\r\\n\\r\\n.btngris65pc {\\r\\n background-color: #77787b;\\r\\n border-color: #77787b;\\r\\n}\\r\\n\\r\\n.btngris65pc:hover {\\r\\n background-color: #555;\\r\\n border-color: #555;\\r\\n }\\r\\n\\r\\n.fontsize14 {\\r\\n font-size: 14px !important;\\r\\n}\\r\\n\\r\\n.ajustepregfrec {\\r\\n white-space: nowrap !important;\\r\\n /*max-width: 20vw !important;*/\\r\\n overflow: hidden !important;\\r\\n text-overflow: ellipsis !important;\\r\\n}\\r\\n\\r\\n.ampliarimg {\\r\\n color: navy;\\r\\n background-color: #e1e1e1;\\r\\n border: 1px solid #c0c0c0;\\r\\n border-bottom: none;\\r\\n border-radius: 5px;\\r\\n padding: 5px 5px 1px 5px;\\r\\n cursor: pointer;\\r\\n text-align: center;\\r\\n display: block;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.ampliarimg:hover {\\r\\n color: #fff;\\r\\n background-color: #555;\\r\\n }\\r\\n\\r\\n.subcategoriaimg {\\r\\n display: block;\\r\\n padding: 5px 10px;\\r\\n background-color: #fbfbfb;\\r\\n border: 1px solid #c0c0c0;\\r\\n border-bottom-right-radius: 5px;\\r\\n border-bottom-left-radius: 5px;\\r\\n cursor: pointer;\\r\\n margin-bottom: 25px;\\r\\n font-weight: normal;\\r\\n min-height: 218px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.subcategoriaimg img {\\r\\n display: block;\\r\\n margin: 5px auto 5px auto;\\r\\n max-width: 100%;\\r\\n height: 150px;\\r\\n border: 1px solid #c0c0c0;\\r\\n border-radius: 5px;\\r\\n }\\r\\n\\r\\n.subcategoriaimg:hover {\\r\\n background-color: #c9eaff;\\r\\n border: 1px solid LightSkyBlue;\\r\\n }\\r\\n\\r\\n.alchecar:checked + .subcategoriaimg {\\r\\n background-color: #939598;\\r\\n color: #fff;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.imgampliada {\\r\\n max-width: 100%;\\r\\n min-height: 50vh;\\r\\n max-height: 70vh;\\r\\n}\\r\\n\\r\\n.modal-header {\\r\\n padding: 12px 15px;\\r\\n border-bottom: 1px solid #c0c0c0;\\r\\n}\\r\\n\\r\\n.modal-title {\\r\\n margin: 0;\\r\\n line-height: 0;\\r\\n padding: 10px 0px 0px 0px;\\r\\n}\\r\\n\\r\\n.modal-footer {\\r\\n padding: 12px 15px;\\r\\n border-top: 1px solid #c0c0c0;\\r\\n}\\r\\n\\r\\n.colornegro {\\r\\n color: #000 !important;\\r\\n}\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n\\r\\n .modal-dialog {\\r\\n width: 95%;\\r\\n }\\r\\n}\\r\\n\\r\\n.descripcionimg {\\r\\n float: left;\\r\\n padding-top: 7px;\\r\\n}\\r\\n\\r\\n.modal-dialog {\\r\\n margin: 5px auto;\\r\\n}\\r\\n\\r\\n.recuadrobeige, .recuadroazul, .recuadrogris,\\r\\n.recuadrocafe, .recuadronaranja, .recuadroamarillo,\\r\\n.recuadroverde {\\r\\n border-radius: 5px;\\r\\n padding: 5px 10px;\\r\\n}\\r\\n\\r\\n@media (max-width: 800px) {\\r\\n\\r\\n .recuadrobeige, .recuadroazul, .recuadrogris,\\r\\n .recuadrocafe, .recuadronaranja, .recuadroamarillo,\\r\\n .recuadroverde {\\r\\n display: block;\\r\\n }\\r\\n}\\r\\n\\r\\n.recuadrobeige, .fondobeige {\\r\\n background-color: #fdfded;\\r\\n}\\r\\n\\r\\n.recuadroazul {\\r\\n background-color: #d2f6f6;\\r\\n}\\r\\n\\r\\n.recuadrogris {\\r\\n background-color: #f7f7f7;\\r\\n}\\r\\n\\r\\n.recuadrocafe {\\r\\n background-color: #fdf4e9;\\r\\n}\\r\\n\\r\\n.recuadronaranja {\\r\\n background-color: #fdf2e0;\\r\\n}\\r\\n\\r\\n.recuadroamarillo, .fondoamarillo {\\r\\n background-color: #fdfdc0;\\r\\n}\\r\\n\\r\\n.recuadroverde, .fondoverde {\\r\\n background-color: #e7ffc4;\\r\\n}\\r\\n\\r\\n.cuadrocontornoazul {\\r\\n border: 1px solid skyblue;\\r\\n border-radius: 10px;\\r\\n padding: 10px 9px 9px 9px;\\r\\n background-color: #fbfbfb;\\r\\n}\\r\\n\\r\\n.lineheight16 {\\r\\n line-height: 16px !important;\\r\\n}\\r\\n\\r\\n.paddingarri10 {\\r\\n padding-top: 10px !important;\\r\\n}\\r\\n\\r\\n.margenarri15mobile {\\r\\n margin-top: 0px !important;\\r\\n}\\r\\n\\r\\n@media (max-width: 767px) {\\r\\n\\r\\n .margenarri15mobile {\\r\\n margin-top: 15px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n.margenaba10mobile, .margenaba30mobile {\\r\\n margin-bottom: 0px !important;\\r\\n}\\r\\n\\r\\n.ocultoenmobile {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.positionabsohires {\\r\\n position: absolute !important;\\r\\n width: calc(100% - 15px);\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .margenaba10mobile {\\r\\n margin-bottom: 10px !important;\\r\\n }\\r\\n\\r\\n .margenaba30mobile {\\r\\n margin-bottom: 30px !important;\\r\\n }\\r\\n\\r\\n .positionabsohires {\\r\\n position: static !important;\\r\\n width: 100%;\\r\\n }\\r\\n}\\r\\n\\r\\n.fontsize16 {\\r\\n font-size: 16px !important;\\r\\n}\\r\\n\\r\\n.paddingderizq7p5 {\\r\\n padding-right: 7.5px !important;\\r\\n padding-left: 7.5px !important;\\r\\n}\\r\\n\\r\\n.paddingder7p5 {\\r\\n padding-right: 7.5px !important;\\r\\n}\\r\\n\\r\\n.paddingizq7p5 {\\r\\n padding-left: 7.5px !important;\\r\\n}\\r\\n\\r\\n.paddingderizq6 {\\r\\n padding-right: 6px !important;\\r\\n padding-left: 6px !important;\\r\\n}\\r\\n\\r\\n.fondodegradadogrisclaro {\\r\\n /*background-image: linear-gradient(white, #e1e1e1);*/\\r\\n background-color: #44546a;\\r\\n color: #fff;\\r\\n padding: 10px 15px 10px 15px;\\r\\n border: 2px solid #e1e1e1;\\r\\n line-height: 17px;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.paddingarriaba2 {\\r\\n padding-top: 2px !important;\\r\\n padding-bottom: 2px !important;\\r\\n}\\r\\n\\r\\n.recuadroelemento {\\r\\n border: 2px solid #e1e1e1;\\r\\n border-top: none;\\r\\n min-height: 30px;\\r\\n padding: 10px 15px 15px 15px;\\r\\n}\\r\\n\\r\\n.form-control[readonly] {\\r\\n background-color: #e4fdfd;\\r\\n opacity: 1;\\r\\n border: 1px solid #e4fdfd;\\r\\n}\\r\\n\\r\\n.separadorelementos {\\r\\n border-top: 2px solid skyblue;\\r\\n margin-top: 30px;\\r\\n margin-bottom: 30px;\\r\\n}\\r\\n\\r\\n.fondogrisf0 {\\r\\n background-color: #f0f0f0;\\r\\n}\\r\\n\\r\\n.btn-default {\\r\\n border-color: #c0c0c0;\\r\\n background-color: #fbfbfb;\\r\\n}\\r\\n\\r\\n.margenaba20 {\\r\\n margin-bottom: 20px !important;\\r\\n}\\r\\n\\r\\n.separadortenue {\\r\\n border-color: #e1e1e1;\\r\\n margin-top: 10px !important;\\r\\n margin-bottom: 10px !important;\\r\\n}\\r\\n\\r\\n.bold {\\r\\n font-weight: bold !important;\\r\\n}\\r\\n\\r\\n.badge {\\r\\n padding: 1px 3px;\\r\\n font-size: 16px;\\r\\n background-color: orangered;\\r\\n border-radius: 8px;\\r\\n}\\r\\n\\r\\n.panel-default > .panel-heading .badge {\\r\\n color: #fff;\\r\\n background-color: orangered;\\r\\n float: right;\\r\\n margin-right: -10px;\\r\\n}\\r\\n\\r\\n.swal2-icon {\\r\\n /*height: 75px;*/\\r\\n margin: 0px auto 0px;\\r\\n}\\r\\n\\r\\n.recuadroelemento .form-control {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n#desglose th {\\r\\n color: #939598;\\r\\n}\\r\\n\\r\\n.margenarriaba15 {\\r\\n margin-top: 15px !important;\\r\\n margin-bottom: 15px !important;\\r\\n}\\r\\n\\r\\n.margenarri15aba2 {\\r\\n margin-top: 15px !important;\\r\\n margin-bottom: 2px !important;\\r\\n}\\r\\n\\r\\n.bordeabagris20pc {\\r\\n border-bottom: 1px solid #ccc;\\r\\n}\\r\\n\\r\\n.overflowhor {\\r\\n overflow-x: auto !important;\\r\\n}\\r\\n\\r\\n@media print {\\r\\n\\r\\n .modal {\\r\\n position: absolute;\\r\\n min-height: 200vh;\\r\\n }\\r\\n\\r\\n .modal-dialog {\\r\\n background-color: #fff !important;\\r\\n }\\r\\n}\\r\\n\\r\\n.margenarri33 {\\r\\n margin-top: 33px !important;\\r\\n}\\r\\n\\r\\n.margenarri0 {\\r\\n margin-top: 0px !important;\\r\\n}\\r\\n\\r\\n.u-col-xs-5 {\\r\\n position: relative;\\r\\n min-height: 1px;\\r\\n padding-right: 15px;\\r\\n padding-left: 15px;\\r\\n width: 20%;\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.labelfiltros {\\r\\n padding: 0px;\\r\\n margin: 0px;\\r\\n font-size: 13px;\\r\\n font-weight: bold;\\r\\n color: #77787b;\\r\\n}\\r\\n\\r\\n.margenizq8 {\\r\\n margin-left: 8px !important;\\r\\n}\\r\\n\\r\\nul.Table-pagination {\\r\\n display: inline-block;\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\nul.Table-pagination li {\\r\\n display: inline-block;\\r\\n }\\r\\n\\r\\nul.Table-pagination li a {\\r\\n color: #000000;\\r\\n float: left;\\r\\n padding: 5px 13px;\\r\\n text-decoration: none;\\r\\n border-radius: 5px;\\r\\n border: 1px solid #DADADA !important;\\r\\n }\\r\\n\\r\\nul.Table-pagination li a.active {\\r\\n background-color: #7AC243;\\r\\n color: #FFFFFF;\\r\\n border-radius: 5px;\\r\\n }\\r\\n\\r\\nul.Table-pagination li a:hover:not(.active) {\\r\\n background-color: #E2E2E2;\\r\\n }\\r\\n\\r\\n.paddingarri20 {\\r\\n padding-top: 20px !important;\\r\\n}\\r\\n\\r\\n.fondoycontornogris75pc {\\r\\n background-color: #555555 !important;\\r\\n border-color: #555555 !important;\\r\\n}\\r\\n\\r\\n.u-tabla-columnas-centradas th, .u-tabla-columnas-centradas td {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.Btn-gray {\\r\\n display: inline-block;\\r\\n padding: 6px 12px;\\r\\n margin-bottom: 0;\\r\\n font-size: 13px;\\r\\n font-weight: 400;\\r\\n line-height: 1.42857143;\\r\\n text-align: center;\\r\\n white-space: nowrap;\\r\\n vertical-align: middle;\\r\\n background-color: #939598;\\r\\n border-color: #939598;\\r\\n color: #FFFFFF;\\r\\n transition: all ease .45s;\\r\\n}\\r\\n\\r\\n.Btn-gray:hover {\\r\\n background-color: #555;\\r\\n border-color: #555;\\r\\n color: #FFFFFF;\\r\\n }\\r\\n\\r\\n.btn .glyphicon {\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\n.margenarri15aba10 {\\r\\n margin-top: 15px !important;\\r\\n margin-bottom: 10px !important;\\r\\n}\\r\\n\\r\\n.bordearrigris25pc {\\r\\n border-top: 1px solid #c0c0c0;\\r\\n}\\r\\n\\r\\n.tablalineheight18 th, .tablalineheight18 td {\\r\\n line-height: 18px !important;\\r\\n}\\r\\n\\r\\n.margenaba25 {\\r\\n margin-bottom: 25px !important;\\r\\n}\\r\\n\\r\\n.margenarri30 {\\r\\n margin-top: 30px !important;\\r\\n}\\r\\n\\r\\n.ancho75pc {\\r\\n width: 75%;\\r\\n}\\r\\n\\r\\n.paddingarri30 {\\r\\n padding-top: 30px !important;\\r\\n}\\r\\n\\r\\n.btngris50pc {\\r\\n background-color: #939598;\\r\\n border-color: #939598;\\r\\n}\\r\\n\\r\\n.btngris50pc:hover {\\r\\n background-color: #77787b;\\r\\n border-color: #77787b;\\r\\n }\\r\\n\\r\\n/** estilos de portada **/\\r\\n\\r\\n.imgportada {\\r\\n display: block;\\r\\n max-width: 50%;\\r\\n height: auto;\\r\\n margin: 0px auto;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .imgportada {\\r\\n width: 140px;\\r\\n float: left;\\r\\n position: relative;\\r\\n margin-top: -66px;\\r\\n padding: 0px 30px 0px 3px;\\r\\n }\\r\\n\\r\\n .ocultoenmobile {\\r\\n display: none;\\r\\n }\\r\\n}\\r\\n\\r\\n.alturaminbotport {\\r\\n min-height: 405px !important;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .alturaminbotport {\\r\\n min-height: 162px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n.margenarriaba30 {\\r\\n margin-top: 30px !important;\\r\\n margin-bottom: 30px !important;\\r\\n}\\r\\n\\r\\n.margenaba45 {\\r\\n margin-bottom: 45px !important;\\r\\n}\\r\\n\\r\\n.margenaba60 {\\r\\n margin-bottom: 60px !important;\\r\\n}\\r\\n\\r\\n.botonportada {\\r\\n border: 1px solid skyblue;\\r\\n border-radius: 10px;\\r\\n padding: 10px 9px 9px 9px;\\r\\n background-image: linear-gradient(45deg, #f8f8f8, #fff);\\r\\n}\\r\\n\\r\\n.botonportada:hover {\\r\\n border: 1px solid dodgerblue;\\r\\n background-image: linear-gradient(45deg, aliceblue, #fff);\\r\\n cursor: pointer;\\r\\n color: royalblue;\\r\\n }\\r\\n\\r\\n.boldazul {\\r\\n color: lightskyblue;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.botonportada:hover .boldazul {\\r\\n color: royalblue;\\r\\n}\\r\\n\\r\\n.bordeazul {\\r\\n border-color: skyblue !important;\\r\\n}\\r\\n\\r\\n.text-center-lg {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n .text-center-lg {\\r\\n text-align: left;\\r\\n }\\r\\n\\r\\n .ajustetitulomobile {\\r\\n display: inline-block;\\r\\n margin: 0 0 0 138px;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (min-width: 1025px) {\\r\\n .col-lg-offset-1.offset1pt5 {\\r\\n margin-left: 12.499999995%;\\r\\n }\\r\\n}\\r\\n\\r\\n.portada.tab-content {\\r\\n min-height: auto;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .margenaba10smph {\\r\\n margin-bottom: 10px !important;\\r\\n }\\r\\n\\r\\n .margenaba30smph {\\r\\n margin-bottom: 30px !important;\\r\\n }\\r\\n}\\r\\n\\r\\ninput[type=\\\"radio\\\"], input[type=\\\"checkbox\\\"] {\\r\\n transform: scale(1.25);\\r\\n}\\r\\n\\r\\n.nobold {\\r\\n font-weight: normal !important;\\r\\n}\\r\\n\\r\\n.margenarri10 {\\r\\n margin-top: 10px !important;\\r\\n}\\r\\n\\r\\n.pregufrecu {\\r\\n margin: 15px 20px 45px 0px;\\r\\n list-style-type: none;\\r\\n color: orange;\\r\\n -webkit-padding-start: 0px;\\r\\n padding-inline-start: 0px;\\r\\n}\\r\\n\\r\\n.pregufrecu li {\\r\\n border-bottom: 1px dotted orange;\\r\\n }\\r\\n\\r\\n@media (min-width: 1024px) {\\r\\n\\r\\n .pregufrecu li {\\r\\n min-height: 75px;\\r\\n }\\r\\n}\\r\\n\\r\\n.pregufrecu li a {\\r\\n display: block;\\r\\n padding: 15px 0px;\\r\\n}\\r\\n\\r\\n.pregufrecu li a:hover {\\r\\n background-image: linear-gradient(90deg, white, FloralWhite, FloralWhite, white);\\r\\n }\\r\\n\\r\\n.pregufrecu img {\\r\\n height: 20px;\\r\\n margin: 0px 8px 0px 2px;\\r\\n}\\r\\n\\r\\n.cuadroacabados {\\r\\n display: block;\\r\\n border: 1px solid skyblue;\\r\\n margin-bottom: 30px;\\r\\n border-radius: 10px;\\r\\n padding: 7.5px 15px 5px 15px;\\r\\n min-height: 103px;\\r\\n cursor: pointer;\\r\\n font-weight: normal;\\r\\n text-indent: 18px;\\r\\n}\\r\\n\\r\\n.cuadroacabados:hover {\\r\\n background-color: aliceblue;\\r\\n }\\r\\n\\r\\n.check {\\r\\n position: absolute;\\r\\n top: 9px;\\r\\n left: 28px;\\r\\n}\\r\\n\\r\\n.check:checked + .cuadroacabados {\\r\\n background-color: aliceblue;\\r\\n border-color: dodgerblue;\\r\\n }\\r\\n\\r\\n.dropdown {\\r\\n display: inline-block;\\r\\n margin-left: 11px;\\r\\n}\\r\\n\\r\\n.gris40pc {\\r\\n color: #ACACAC !important;\\r\\n}\\r\\n\\r\\n.paddingarriaba10 {\\r\\n padding-top: 10px !important;\\r\\n padding-bottom: 10px !important;\\r\\n}\\r\\n\\r\\n.fondodegradadoazul {\\r\\n background-image: linear-gradient(90deg, white, RoyalBlue, RoyalBlue, RoyalBlue, RoyalBlue, RoyalBlue, RoyalBlue, white);\\r\\n}\\r\\n\\r\\n.colorblanco {\\r\\n color: white !important;\\r\\n}\\r\\n\\r\\n.precioacabados {\\r\\n font-weight: bold;\\r\\n text-align: right;\\r\\n position: absolute;\\r\\n bottom: 35px;\\r\\n right: 25px;\\r\\n}\\r\\n\\r\\n.margenarri20 {\\r\\n margin-top: 20px !important;\\r\\n}\\r\\n\\r\\n.paddingizq0 {\\r\\n padding-left: 0px !important;\\r\\n}\\r\\n\\r\\n.bordepuntos {\\r\\n border-style: dotted;\\r\\n}\\r\\n\\r\\n.margenaba0 {\\r\\n margin-bottom: 0px !important;\\r\\n}\\r\\n\\r\\n.paddingaba20 {\\r\\n padding-bottom: 20px !important;\\r\\n}\\r\\n\\r\\n.fondogrisfb {\\r\\n background-color: #fbfbfb;\\r\\n}\\r\\n\\r\\n.fondogrisfb .btn-default {\\r\\n border-color: #9ca0a6;\\r\\n background-color: #fff;\\r\\n }\\r\\n\\r\\n.fondogrisfb .cuadroacabados {\\r\\n background-color: #fff;\\r\\n }\\r\\n\\r\\n.bordeopcionizq {\\r\\n border: 1px solid #939598;\\r\\n border-top-left-radius: 10px;\\r\\n border-bottom-left-radius: 10px;\\r\\n padding: 6px;\\r\\n display: block;\\r\\n text-indent: 22px;\\r\\n}\\r\\n\\r\\n.bordeopcionder {\\r\\n border: 1px solid #939598;\\r\\n border-left: none;\\r\\n border-top-right-radius: 10px;\\r\\n border-bottom-right-radius: 10px;\\r\\n padding: 6px;\\r\\n margin-left: -30px;\\r\\n display: block;\\r\\n text-indent: 18px;\\r\\n}\\r\\n\\r\\n.radiocolor {\\r\\n position: absolute;\\r\\n top: 7px;\\r\\n left: 28px;\\r\\n}\\r\\n\\r\\n.fixbordeder .radiocolor {\\r\\n left: -4px;\\r\\n}\\r\\n\\r\\n.radiocolor:checked + .bordeopcionder, .radiocolor:checked + .bordeopcionizq {\\r\\n background-color: #fff3e0;\\r\\n}\\r\\n\\r\\n.fondodegradadogris65pc {\\r\\n background-image: linear-gradient(90deg, white, #c3e6fc, #c3e6fc, #c3e6fc, #c3e6fc, #c3e6fc, #c3e6fc, white);\\r\\n}\\r\\n\\r\\n.fondoamarilloclaro {\\r\\n background-color: #fff7ea;\\r\\n}\\r\\n\\r\\n.margenarri56 {\\r\\n margin-top: 56px !important;\\r\\n}\\r\\n\\r\\n.eleespagregados {\\r\\n position: fixed;\\r\\n top: 0px;\\r\\n left: 0px;\\r\\n width: 98%;\\r\\n height: 54px;\\r\\n margin-left: 1%;\\r\\n background-image: linear-gradient(#8dc640, rgba(255,255,255,0.75), rgba(255,255,255,0.75), rgba(255,255,255,0.75), rgba(255,255,255,0.75), rgba(255,255,255,0.75), #8dc640);\\r\\n border: 1px solid skyblue;\\r\\n border-top: none;\\r\\n border-bottom-right-radius: 10px;\\r\\n border-bottom-left-radius: 10px;\\r\\n text-align: center;\\r\\n padding-top: 10px;\\r\\n z-index: 10;\\r\\n}\\r\\n\\r\\n.btnagregados {\\r\\n padding-top: 4px;\\r\\n padding-bottom: 4px;\\r\\n border-radius: 30px;\\r\\n font-size: 16px;\\r\\n font-weight: bold;\\r\\n background-color: #719e33 !important;\\r\\n border-color: #719e33 !important;\\r\\n}\\r\\n\\r\\n.btnagregados:hover {\\r\\n background-color: darkgreen !important;\\r\\n border-color: darkgreen !important;\\r\\n }\\r\\n\\r\\n.colornaranjaosc {\\r\\n color: darkorange;\\r\\n}\\r\\n\\r\\n.cuadroazuldegrad {\\r\\n border: 1px solid skyblue;\\r\\n border-radius: 10px;\\r\\n padding: 10px 9px 9px 9px;\\r\\n background-image: linear-gradient(115deg, #b3e0fc, lightcyan, lightcyan, lightcyan, #b3e0fc);\\r\\n}\\r\\n\\r\\n.tituloseccion {\\r\\n color: royalblue;\\r\\n background-image: linear-gradient(90deg, aliceblue, #ffffff);\\r\\n padding: 5px;\\r\\n border-radius: 10px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.tituloseccion:hover {\\r\\n background-image: linear-gradient(90deg, CornflowerBlue, #ffffff);\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n.margenizq20 {\\r\\n margin-left: 20px !important;\\r\\n}\\r\\n\\r\\n.anchomodaldetalles {\\r\\n width: 75%;\\r\\n margin-top: 10vh;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n .anchomodaldetalles {\\r\\n width: 95%;\\r\\n margin-top: 1vh;\\r\\n }\\r\\n}\\r\\n\\r\\n.paddingarriaba5 {\\r\\n padding-top: 5px !important;\\r\\n padding-bottom: 5px !important;\\r\\n}\\r\\n\\r\\n/** DESDE AQUI ESTILOS EXCLUSIVOS DE ANGULAR **/\\r\\n\\r\\n/** para componente de paginado de angular inicia **/\\r\\n\\r\\n.ui-table .ui-paginator-bottom {\\r\\n padding: 15px 0px;\\r\\n}\\r\\n\\r\\nbody .ui-paginator {\\r\\n background-color: #fff;\\r\\n}\\r\\n\\r\\n/** para componente de paginado de angular termina **/\\r\\n\\r\\n/** para componente de sweet alert inicia **/\\r\\n\\r\\n.swal2-content {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.swal2-popup {\\r\\n width: auto;\\r\\n font-size: auto;\\r\\n}\\r\\n\\r\\n.swal2-styled.swal2-confirm, .swal2-styled.swal2-cancel {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.swal2-icon {\\r\\n /*height: 75px; se movio de la linea 751 */\\r\\n margin: 0px auto 0px;\\r\\n}\\r\\n\\r\\n/** para componente de sweet alert termina **/\\r\\n\\r\\n/** para tabla de angular inicia **/\\r\\n\\r\\nbody .ui-widget {\\r\\n font-size: 16px;\\r\\n word-break: break-word;\\r\\n}\\r\\n\\r\\nbody .ui-table .ui-table-thead > tr > th,\\r\\nbody .ui-table .ui-table-tbody > tr > td {\\r\\n padding: 7.5px;\\r\\n}\\r\\n\\r\\n.ancho65 {\\r\\n width: 65px !important;\\r\\n}\\r\\n\\r\\n.ancho85 {\\r\\n width: 85px !important;\\r\\n}\\r\\n\\r\\n/** para tabla de angular termina **/\\r\\n\\r\\n/** para categorias y subcategorias de elementos y espacios **/\\r\\n\\r\\n/*.panel-default > .panel-heading {\\r\\n text-transform: lowercase;\\r\\n}*/\\r\\n\\r\\n.subcategoria {\\r\\n text-transform: lowercase !important;\\r\\n}\\r\\n\\r\\n.elemespaactivo {\\r\\n background-image: linear-gradient(115deg, #b3e0fc, lightcyan, lightcyan, lightcyan, #b3e0fc);\\r\\n}\\r\\n\\r\\n.margenaba6 {\\r\\n margin-bottom: 6px !important;\\r\\n}\\r\\n\\r\\n.ancho28vw {\\r\\n width: 28vw !important;\\r\\n}\\r\\n\\r\\n.ancho100 {\\r\\n width: 100px !important;\\r\\n}\\r\\n\\r\\n.paddingarri15 {\\r\\n padding-top: 15px !important;\\r\\n}\\r\\n\\r\\n.fondodegradadogrisclaro {\\r\\n /*background-image: linear-gradient(white, #e1e1e1);*/\\r\\n background-color: #44546a;\\r\\n color: #fff;\\r\\n padding: 5px 10px;\\r\\n border: 2px solid #e1e1e1;\\r\\n line-height: 17px;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.botoelimpres {\\r\\n float: right;\\r\\n margin-right: 15px;\\r\\n}\\r\\n\\r\\n.paddingizq0 {\\r\\n padding-left: 0px !important;\\r\\n}\\r\\n\\r\\n.btn-info {\\r\\n background-color: #3099b9;\\r\\n border-color: #3099b9;\\r\\n}\\r\\n\\r\\n.btn-info:hover {\\r\\n color: #fff;\\r\\n background-color: #187592;\\r\\n border-color: #187592;\\r\\n}\\r\\n\\r\\n.iconcalcular {\\r\\n height: 20px;\\r\\n}\\r\\n\\r\\n.ui-float-label > input.ui-state-filled ~ label {\\r\\n top: -0.6em;\\r\\n font-size: 14px;\\r\\n text-transform: uppercase;\\r\\n min-width: 75px;\\r\\n}\\r\\n\\r\\n.paddingarri20-lg {\\r\\n padding-top: 20px !important;\\r\\n}\\r\\n\\r\\n.paddingarri18-lg {\\r\\n padding-top: 18px !important;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .paddingarri20-lg {\\r\\n padding-top: 0px !important;\\r\\n }\\r\\n\\r\\n .paddingarri18-lg {\\r\\n padding-top: 0px !important;\\r\\n }\\r\\n\\r\\n .labelfiltros {\\r\\n display: inline-block;\\r\\n margin-bottom: 5px;\\r\\n min-height: 27px;\\r\\n }\\r\\n}\\r\\n\\r\\n.lineheight13 {\\r\\n line-height: 13px !important;\\r\\n}\\r\\n\\r\\n.alturaauto {\\r\\n height: auto !important;\\r\\n}\\r\\n\\r\\nbody .ui-inputtext {\\r\\n min-width: 40px;\\r\\n}\\r\\n\\r\\n.anchoalto100 {\\r\\n width: 100px;\\r\\n height: 100px;\\r\\n}\\r\\n\\r\\n.bordegris25pc {\\r\\n border: 1px solid #c0c0c0;\\r\\n}\\r\\n\\r\\n.modalidad {\\r\\n font-size: 18px;\\r\\n background-image: linear-gradient(90deg, transparent, #d9f1ff, transparent);\\r\\n padding: 10px 0px;\\r\\n}\\r\\n\\r\\n.margenaba33 {\\r\\n margin-bottom: 33px !important;\\r\\n}\\r\\n\\r\\n.anchomin725 {\\r\\n min-width: 725px !important;\\r\\n}\\r\\n\\r\\n.text-center-lg {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .text-center-lg {\\r\\n text-align: left;\\r\\n }\\r\\n}\\r\\n\\r\\n.fontsize18 {\\r\\n font-size: 18px !important;\\r\\n}\\r\\n\\r\\n.anchomax25vw {\\r\\n max-width: 25vw;\\r\\n}\\r\\n\\r\\n.anchomax20vw {\\r\\n max-width: 20vw;\\r\\n}\\r\\n\\r\\n.anchomax15vw {\\r\\n max-width: 15vw;\\r\\n}\\r\\n\\r\\n.margenarri15tablet {\\r\\n margin-top: 0px !important;\\r\\n}\\r\\n\\r\\n@media (min-width: 1024px) and (max-width: 1279px) {\\r\\n\\r\\n .margenarri15tablet {\\r\\n margin-top: 15px !important;\\r\\n }\\r\\n\\r\\n .margenarri10tablet {\\r\\n margin-top: 10px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (min-width: 1280px) {\\r\\n\\r\\n .bordeizqazul-lg {\\r\\n border-left: 6px double dodgerblue;\\r\\n }\\r\\n}\\r\\n\\r\\n.colorrojo {\\r\\n color: red !important;\\r\\n}\\r\\n\\r\\n.bordearri2azul {\\r\\n border-top: 2px solid deepskyblue !important;\\r\\n}\\r\\n\\r\\n.colorazulreal {\\r\\n color: royalblue !important;\\r\\n}\\r\\n\\r\\n.anchomodal {\\r\\n width: 94vw;\\r\\n min-width: 620px;\\r\\n}\\r\\n\\r\\n.ocultarmobileytablet {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n@media (min-width: 1280px) {\\r\\n\\r\\n .paddingarri22-lg {\\r\\n padding-top: 22px !important;\\r\\n }\\r\\n\\r\\n .paddingarri16-lg {\\r\\n padding-top: 16px !important;\\r\\n }\\r\\n\\r\\n .ocultarmobileytablet {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n@media (max-width: 1023px) {\\r\\n\\r\\n .margenaba15mobile {\\r\\n margin-bottom: 15px !important;\\r\\n }\\r\\n\\r\\n .paddingarri34-xs {\\r\\n padding-top: 34px !important;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n.cursorpointer {\\r\\ncursor: pointer !important;\\r\\n}\\r\\n\\r\\n.fontsize22 {\\r\\n font-size: 22px !important;\\r\\n}\\r\\n\\r\\n.iconoinfo, .iconoinfoinline {\\r\\n font-size: 22px !important;\\r\\n color: royalblue;\\r\\n cursor: pointer;\\r\\n padding: 5px;\\r\\n margin-left: 8px;\\r\\n}\\r\\n\\r\\n.iconoinfo {\\r\\n display: block;\\r\\n margin-top: -2px;\\r\\n background-image: linear-gradient(90deg, transparent, transparent, #f0f0f0, transparent, transparent);\\r\\n}\\r\\n\\r\\n.iconoinfo:hover, .iconoinfoinline:hover {\\r\\n color: mediumblue;\\r\\n background-color: paleturquoise;\\r\\n border-radius: 10px;\\r\\n}\\r\\n\\r\\n@media (max-width: 1366px) {\\r\\n\\r\\n .inlineblock-md {\\r\\n display: inline-block;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n@media (max-width: 1024px) {\\r\\n\\r\\n.displayblock-sm {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n}\\r\\n\\r\\n/** clases extralarge (xl) basadas en la lg de bootstrap inicia **/\\r\\n\\r\\n.col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {\\r\\n position: relative;\\r\\n min-height: 1px;\\r\\n padding-right: 15px;\\r\\n padding-left: 15px;\\r\\n}\\r\\n\\r\\n@media (min-width: 1367px) {\\r\\n .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {\\r\\n float: left;\\r\\n }\\r\\n\\r\\n .col-xl-12 {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n .col-xl-11 {\\r\\n width: 91.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-10 {\\r\\n width: 83.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-9 {\\r\\n width: 75%;\\r\\n }\\r\\n\\r\\n .col-xl-8 {\\r\\n width: 66.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-7 {\\r\\n width: 58.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-6 {\\r\\n width: 50%;\\r\\n }\\r\\n\\r\\n .col-xl-5 {\\r\\n width: 41.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-4 {\\r\\n width: 33.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-3 {\\r\\n width: 25%;\\r\\n }\\r\\n\\r\\n .col-xl-2 {\\r\\n width: 16.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-1 {\\r\\n width: 8.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-12 {\\r\\n right: 100%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-11 {\\r\\n right: 91.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-10 {\\r\\n right: 83.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-9 {\\r\\n right: 75%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-8 {\\r\\n right: 66.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-7 {\\r\\n right: 58.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-6 {\\r\\n right: 50%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-5 {\\r\\n right: 41.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-4 {\\r\\n right: 33.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-3 {\\r\\n right: 25%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-2 {\\r\\n right: 16.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-1 {\\r\\n right: 8.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-pull-0 {\\r\\n right: auto;\\r\\n }\\r\\n\\r\\n .col-xl-push-12 {\\r\\n left: 100%;\\r\\n }\\r\\n\\r\\n .col-xl-push-11 {\\r\\n left: 91.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-push-10 {\\r\\n left: 83.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-push-9 {\\r\\n left: 75%;\\r\\n }\\r\\n\\r\\n .col-xl-push-8 {\\r\\n left: 66.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-push-7 {\\r\\n left: 58.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-push-6 {\\r\\n left: 50%;\\r\\n }\\r\\n\\r\\n .col-xl-push-5 {\\r\\n left: 41.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-push-4 {\\r\\n left: 33.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-push-3 {\\r\\n left: 25%;\\r\\n }\\r\\n\\r\\n .col-xl-push-2 {\\r\\n left: 16.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-push-1 {\\r\\n left: 8.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-push-0 {\\r\\n left: auto;\\r\\n }\\r\\n\\r\\n .col-xl-offset-12 {\\r\\n margin-left: 100%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-11 {\\r\\n margin-left: 91.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-10 {\\r\\n margin-left: 83.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-9 {\\r\\n margin-left: 75%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-8 {\\r\\n margin-left: 66.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-7 {\\r\\n margin-left: 58.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-6 {\\r\\n margin-left: 50%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-5 {\\r\\n margin-left: 41.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-4 {\\r\\n margin-left: 33.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-3 {\\r\\n margin-left: 25%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-2 {\\r\\n margin-left: 16.66666667%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-1 {\\r\\n margin-left: 8.33333333%;\\r\\n }\\r\\n\\r\\n .col-xl-offset-0 {\\r\\n margin-left: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n/** clases extralarge (xl) basadas en la lg de bootstrap termina **/\\r\\n\\r\\n.altura20 {\\r\\n height: 20px !important;\\r\\n}\\r\\n\\r\\n.iconopresup {\\r\\n height: 20px;\\r\\n -webkit-filter: brightness(999%);\\r\\n filter: brightness(999%);\\r\\n margin-left: 4px;\\r\\n}\\r\\n\\r\\n@media (max-width: 1024px) {\\r\\n\\r\\n.bordeabaazulmobile {\\r\\n border-bottom: 6px double paleturquoise;\\r\\n padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n}\\r\\n\\r\\n.rengloncategoria {\\r\\n background-color: blue;\\r\\n color: #fff;\\r\\n font-weight: bold;\\r\\n margin-bottom: 30px;\\r\\n padding: 5px;\\r\\n border-radius: 10px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.flechaderani {\\r\\n -webkit-animation-name: flechad;\\r\\n animation-name: flechad;\\r\\n font-weight: bold;\\r\\n margin-left: 5px;\\r\\n position: relative;\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flechad {\\r\\n\\r\\n 0% {\\r\\n color: #d2f6f6;\\r\\n left: 0px;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n left: 5px;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: DodgerBlue;\\r\\n left: 10px;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n left: 5px;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #d2f6f6;\\r\\n left: 0px;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n@keyframes flechad {\\r\\n\\r\\n 0% {\\r\\n color: #d2f6f6;\\r\\n left: 0px;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n left: 5px;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: DodgerBlue;\\r\\n left: 10px;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n left: 5px;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #d2f6f6;\\r\\n left: 0px;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n.flechaizqani {\\r\\n -webkit-animation-name: flechai;\\r\\n animation-name: flechai;\\r\\n font-weight: bold;\\r\\n margin-right: 5px;\\r\\n position: relative;\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flechai {\\r\\n\\r\\n 0% {\\r\\n color: #d2f6f6;\\r\\n right: 0px;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n right: 5px;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: DodgerBlue;\\r\\n right: 10px;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n right: 5px;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #d2f6f6;\\r\\n right: 0px;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n@keyframes flechai {\\r\\n\\r\\n 0% {\\r\\n color: #d2f6f6;\\r\\n right: 0px;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n right: 5px;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: DodgerBlue;\\r\\n right: 10px;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n right: 5px;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #d2f6f6;\\r\\n right: 0px;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n.iconobotonelementos {\\r\\n height: 50px;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n.margenizq65 {\\r\\n margin-left: 65px;\\r\\n}\\r\\n\\r\\n.margender55 {\\r\\n margin-right: 55px;\\r\\n}\\r\\n\\r\\n.etiquetaazul {\\r\\n background-color: #5B9BD5;\\r\\n padding: 2px 5px;\\r\\n color: white;\\r\\n display: inline-block;\\r\\n margin: 15px 0;\\r\\n}\\r\\n\\r\\n.margenarri-5 {\\r\\n margin-top: -5px !important;\\r\\n}\\r\\n\\r\\n.separadorinterno {\\r\\n border-bottom: 1px solid deepskyblue;\\r\\n padding: 4px 0 5px 15px;\\r\\n font-weight: bold;\\r\\n color: #63adf6;\\r\\n background-image: linear-gradient(45deg, transparent, lightcyan);\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n.separadorinterno:first-child {\\r\\n margin-top: -15px;\\r\\n}\\r\\n\\r\\n.descrisubcat {\\r\\n font-weight: bold;\\r\\n color: #83a9ee;\\r\\n border-bottom: 1px dotted cornflowerblue;\\r\\n padding-bottom: 5px;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.alchecar:checked + .subcategoria .descrisubcat {\\r\\n color: #D9D9D9;\\r\\n border-color: #D9D9D9;\\r\\n}\\r\\n\\r\\nlabel:hover {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.fontsize20 {\\r\\n font-size: 20px !important;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hc3NldHMvY3NzL3N0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEOztBQUVqRDtJQUNJLDJCQUEyQjtJQUMzQiw2RUFBNkU7SUFDN0UsZUFBZTtJQUNmLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLHVCQUF1QjtJQUN2QixtREFBNEQ7QUFDaEU7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsZ0RBQXlEO0FBQzdEOztBQUVBO0lBQ0ksNkJBQTZCO0lBQzdCLGtEQUEyRDtBQUMvRDs7QUFFQTtJQUNJLGlDQUFpQztJQUNqQyxzREFBK0Q7QUFDbkU7O0FBRUE7SUFDSSx1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSx1QkFBdUI7SUFDdkIsd0NBQXdDO0lBQ3hDLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLDJCQUEyQjtBQUMvQjs7QUFFQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLGdDQUFnQztJQUNoQyxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxnQ0FBZ0M7QUFDcEM7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsV0FBVztBQUNmOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTs7SUFFSTtRQUNJLGdCQUFnQjtJQUNwQjs7SUFFQTtRQUNJLHFCQUFxQjtRQUNyQixnQ0FBZ0M7SUFDcEM7O0lBRUE7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSx5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ZDs7SUFFQTtRQUNJLGlCQUFpQjtRQUNqQixXQUFXO0lBQ2Y7O0lBRUE7UUFDSSxVQUFVO0lBQ2Q7O0lBRUE7UUFDSSxjQUFjO1FBQ2QsVUFBVTtJQUNkOztBQUVKOztBQUVBO0lBQ0ksWUFBWTtJQUNaLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLHFCQUFxQjtJQUNyQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksb0NBQW9DO0lBQ3BDLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsY0FBYztJQUNkLGdFQUFnRTtJQUNoRSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsY0FBYztJQUNkLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksY0FBYztJQUNkLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSwwQkFBMEI7QUFDOUIiLCJmaWxlIjoic3JjL2Fzc2V0cy9jc3Mvc3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBlc3RpbG9zIG1hcXVldGFkbywgdXJsKFwiL2Fzc2V0cy9pbWFnZXMvXCIpOyAqKi9cclxuXHJcbmJvZHkge1xyXG4gICAgbWluLXdpZHRoOiA2NjBweCAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDEwMWRlZywgI2YwZjBmMCwgI0Q5RDlEOSwgI0Q5RDlEOSwgI2YwZjBmMCk7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1dvcmtTYW5zJztcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9Xb3JrU2Fucy1SZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1dvcmtTYW5zQm9sZCc7XHJcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvV29ya1NhbnMtQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdXb3JrU2Fuc0l0YWxpYyc7XHJcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvV29ya1NhbnMtSXRhbGljLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1dvcmtTYW5zQm9sZEl0YWxpYyc7XHJcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvV29ya1NhbnMtQm9sZEl0YWxpYy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gICAgZm9udC1mYW1pbHk6ICdXb3JrU2Fucyc7XHJcbn1cclxuXHJcbi50YWJzZGVyZWNoYSA+IGxpIHtcclxuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY1KTtcclxuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XHJcbn1cclxuXHJcbi5hbHR1cmFtYXhsb2dvcnV2IHtcclxuICAgIGhlaWdodDogMTR2aDtcclxuICAgIG1heC1oZWlnaHQ6IDYwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5hbHR1cmFtYXhsb2dvY29ucyB7XHJcbiAgICBoZWlnaHQ6IDEzdmg7XHJcbiAgICBtYXgtaGVpZ2h0OiA1MnB4O1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4ubWFyZ2VuYXJyaTE1IHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuI3VzZXJpY29uIGltZyB7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51IHtcclxuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG59XHJcblxyXG4ubWFyZ2VuYXJyaWFiYTEwIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuaHIge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjMGMwYzA7XHJcbn1cclxuXHJcbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGEsIC5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIsIC5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6Zm9jdXMge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzkzOTU5ODtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5uYXYtdGFicyB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzkzOTU5ODtcclxufVxyXG5cclxuLmFqdXN0ZXRhYnMge1xyXG4gICAgbWFyZ2luLXRvcDogLTE1cHg7XHJcbiAgICBjbGVhcjogYm90aDtcclxufVxyXG5cclxuLm9jdWx0YXJlc2NyaXRvcmlvIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA4MjNweCkge1xyXG5cclxuICAgIC5hanVzdGV0YWJzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5hbmNobzUwcGNtb2JpbGUge1xyXG4gICAgICAgIHdpZHRoOiA0OSUgIWltcG9ydGFudDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAub2N1bHRhcmVzY3JpdG9yaW8ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZHJvcGRvd24tbWVudSB7XHJcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xyXG59XHJcblxyXG4uZ3JpczI1cGMge1xyXG4gICAgY29sb3I6ICNjMGMwYzAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmdyaXM1MHBjIHtcclxuICAgIGNvbG9yOiAjOTM5NTk4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ncmlzNjVwYyB7XHJcbiAgICBjb2xvcjogIzc3Nzg3YiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZ3Jpczc1cGMge1xyXG4gICAgY29sb3I6ICM1NTUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnJlY3VhZHJvbWVudSB7XHJcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Mzk1OTg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgIGNvbG9yOiAjNTU1O1xyXG59XHJcblxyXG4gICAgLnJlY3VhZHJvbWVudTpob3ZlciB7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzkzOTU5ODtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzllYWZmO1xyXG4gICAgICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgfVxyXG5cclxuLnRhYi1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAvKm1pbi1oZWlnaHQ6IDU3NHB4OyovXHJcbiAgICBtaW4taGVpZ2h0OiA2NjVweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Mzk1OTg7XHJcbiAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxufVxyXG5cclxuLm1hcmdlbmFiYS0yNSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMjVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWFyZ2VuYWJhaGVhZGVyIHtcclxuICAgIG1hcmdpbi1ib3R0b206IC0xM3B4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuXHJcbiAgICAubWFyZ2VuYWJhaGVhZGVyIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMThweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWFyZ2VuYWJhNSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm5hdi10YWJzID4gbGkgPiBhOmhvdmVyIHtcclxuICAgIGJvcmRlci1jb2xvcjogI2MwYzBjMCAjYzBjMGMwICNjMGMwYzA7XHJcbn1cclxuXHJcbi5uYXYgPiBsaSA+IGE6aG92ZXIsIC5uYXYgPiBsaSA+IGE6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M5ZWFmZjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLm1hcmdlbmFiYTE1IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmF6dWxsaW5rIHtcclxuICAgIGNvbG9yOiAjMzM3YWI3ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbmEubGlzdC1ncm91cC1pdGVtOmhvdmVyLCBidXR0b24ubGlzdC1ncm91cC1pdGVtOmhvdmVyLCBhLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cywgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzdhYjc7XHJcbiAgICBib3JkZXItY29sb3I6ICMzMzdhYjc7XHJcbn1cclxuXHJcbi5tYXJnZW5hYmExMCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zdWJyYXlhZG9ob3Zlcjpob3ZlciB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLm1hcmdlbmFycmlhYmE1IHtcclxuICAgIG1hcmdpbi10b3A6IDVweCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGNoZWNhciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uY2F0ZWdvcmlhIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTM5NTk4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uYWxjaGVjYXI6Y2hlY2tlZCArIC5jYXRlZ29yaWEge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM3YWI3O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMzM3YWI3O1xyXG59XHJcblxyXG4uc3ViY2F0ZWdvcmlhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmYmZiO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgbWluLWhlaWdodDogMTM4cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbn1cclxuXHJcbiAgICAuc3ViY2F0ZWdvcmlhOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzllYWZmO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIExpZ2h0U2t5Qmx1ZTtcclxuICAgIH1cclxuXHJcbi5hbGNoZWNhcjpjaGVja2VkICsgLnN1YmNhdGVnb3JpYSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTM5NTk4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnRhYmxhcm93Y29sIC5yb3csIC5yb3cudGFibGFyb3djb2wge1xyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbiAgICAudGFibGFyb3djb2wgLnJvdyA+IFtjbGFzcyo9J2NvbC0nXSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgfVxyXG5cclxuLnBhbmVsLXRpdGxlID4gYSwgLnBhbmVsLXRpdGxlID4gc21hbGwsIC5wYW5lbC10aXRsZSA+IC5zbWFsbCwgLnBhbmVsLXRpdGxlID4gc21hbGwgPiBhLCAucGFuZWwtdGl0bGUgPiAuc21hbGwgPiBhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpNiB7XHJcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm5hdiA+IGxpID4gYSB7XHJcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcclxufVxyXG5cclxuLyoubmF2LXRhYnMgPiBsaSA+IGEge1xyXG5mb250LXdlaWdodDogYm9sZDtcclxufSovXHJcblxyXG4ubWFyZ2VuYXJyaWFiYTgge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZvbmRvYXp1bGhvdmVyOmhvdmVyLCAuZm9uZG9henVsIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjOWVhZmYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hcmdlbmFycmk1IHtcclxuICAgIG1hcmdpbi10b3A6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Mzk1OTg7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBwYWRkaW5nOiA2cHg7XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaTcge1xyXG4gICAgcGFkZGluZy10b3A6IDdweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZ2RlcjAge1xyXG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5kaXNwbGF5aW5sYmxvIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nIHtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDExNWRlZywgI0VDRUNFQywgI2ZiZmJmYiwgI2ZiZmJmYiwgI0ZCRkJGQiwgI0VDRUNFQyk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q5RDlEOTtcclxufVxyXG5cclxuICAgIC5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmc6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxMTVkZWcsICNiM2UwZmMsIGxpZ2h0Y3lhbiwgbGlnaHRjeWFuLCBsaWdodGN5YW4sICNiM2UwZmMpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRza3libHVlO1xyXG4gICAgfVxyXG5cclxuLnBhbmVsLWRlZmF1bHQge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjZTFlMWUxO1xyXG59XHJcblxyXG4gICAgLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcclxuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjZTFlMWUxO1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICB9XHJcblxyXG4ucGFuZWwtaGVhZGluZyB7XHJcbiAgICBwYWRkaW5nOiAwcHg7XHJcbn1cclxuXHJcbi5wYW5lbC10aXRsZSA+IGEge1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMTVweDtcclxufVxyXG5cclxuXHJcbiAgICAucGFuZWwtdGl0bGUgPiBhW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTE1ZGVnLCAjYjNlMGZjLCBsaWdodGN5YW4sIGxpZ2h0Y3lhbiwgbGlnaHRjeWFuLCAjYjNlMGZjKTtcclxuICAgIH1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuXHJcbiAgICAuYm90b25lc2l6cSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyOTBweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxOXB4O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAuYm90b25lc2l6cSAucGFuZWwtaGVhZGluZyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAxNTVweDtcclxuICAgICAgICAgICAgbGVmdDogMzBweDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDI5MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAubWFyZ2VuYXJyaTU2IC5ib3RvbmVzaXpxIC5wYW5lbC1oZWFkaW5nIHtcclxuICAgICAgICB0b3A6IDIxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ib3Rvbml6cTAxIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJvdG9uaXpxMDIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDM4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJvdG9uaXpxMDMge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDc2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJvdG9uaXpxMDQge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDExNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ib3Rvbml6cTA1IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxNTJweDtcclxuICAgIH1cclxuXHJcbiAgICAuYm90b25penEwNiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTkwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJvdG9uaXpxMDcge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDIyOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ib3Rvbml6cTA4IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyNjZweDtcclxuICAgIH1cclxuXHJcbiAgICAuYm90b25penEwOSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMzA0cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJvdG9uaXpxMTAge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDM0MnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ib3Rvbml6cTExIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzODBweDtcclxuICAgIH1cclxuXHJcbiAgICAuYm90b25penExMiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJvdG9uaXpxMTMge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDQ1NnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qY29uIGVsIGFqdXN0ZSBwYXJhIGRlc2NyaXBjaW9uZXMgbGFyZ2FzKi9cclxuXHJcbiAgICAjcGVzdGFuYTEgLmJvdG9uaXpxMDEge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcclxuICAgIH1cclxuXHJcbiAgICAjcGVzdGFuYTEgLmJvdG9uaXpxMDIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDM4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgI3Blc3RhbmExIC5ib3Rvbml6cTAzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA3NnB4O1xyXG4gICAgfVxyXG5cclxuICAgICNwZXN0YW5hMSAuYm90b25penEwNCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTE0cHg7XHJcbiAgICB9XHJcblxyXG4gICAgI3Blc3RhbmExIC5ib3Rvbml6cTA1IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxODZweDtcclxuICAgIH1cclxuXHJcbiAgICAjcGVzdGFuYTEgLmJvdG9uaXpxMDYge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDI0MXB4O1xyXG4gICAgfVxyXG5cclxuICAgICNwZXN0YW5hMSAuYm90b25penEwNyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjc5cHg7XHJcbiAgICB9XHJcblxyXG4gICAgI3Blc3RhbmExIC5ib3Rvbml6cTA4IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzMzRweDtcclxuICAgIH1cclxuXHJcbiAgICAjcGVzdGFuYTEgLmJvdG9uaXpxMDkge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDM3MnB4O1xyXG4gICAgfVxyXG5cclxuICAgICNwZXN0YW5hMSAuYm90b25penExMCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgI3Blc3RhbmExIC5ib3Rvbml6cTExIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA0NjVweDtcclxuICAgIH1cclxuXHJcbiAgICAjcGVzdGFuYTEgLmJvdG9uaXpxMTIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDU5OHB4O1xyXG4gICAgfVxyXG5cclxuICAgICNwZXN0YW5hMSAuYm90b25penExMyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNDU2cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYW5lbC1ncm91cCAucGFuZWwgKyAucGFuZWwge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG59XHJcblxyXG4vKiogaW5pY2lhIGVzdGlsb3MgbG9naW4gKiovXHJcblxyXG4jbG9naW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuICAgICNsb2dpbiAjbG9nSW5mbyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBjb2xvcjogIzUwNTA1MDtcclxuICAgICAgICBtYXJnaW46IDEwdmggYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAyZW07XHJcbiAgICAgICAgd2lkdGg6IDM1MHB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTM5NTk4O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAjbG9naW4gI2xvZ0luZm8gYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNTA1MDUwO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgI2xvZ2luIGgxIHtcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgfVxyXG5cclxuICAgICNsb2dpbiAjbG9nSW5mbyAjbG9nbyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1hZ2VzL2xvZ28uc3ZnKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE3ZW07XHJcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xyXG4gICAgICAgIHdpZHRoOiAxNWVtO1xyXG4gICAgICAgIG1hcmdpbjogMHB4IDBweCAzMHB4IDBweDtcclxuICAgIH1cclxuXHJcbiAgICAjbG9naW4gI2xvZ0luZm8gZm9ybSA+ICoge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICNsb2dpbiAjbXNncyBkaXYge1xyXG4gICAgICAgIHBhZGRpbmc6IDEuNWVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAjbG9naW4gI21zZ3MgLmUtbXNnIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMCwgNjAsIDYwLCAuMzUpO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDIzMCwgNjAsIDYwLCAuMzUpO1xyXG4gICAgICAgIGNvbG9yOiAjNjEwNjA2O1xyXG4gICAgfVxyXG5cclxuICAgICNsb2dpbiAjbXNncyAucy1tc2cge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTEzLCAyMDgsIDUwLCAuNCk7XHJcbiAgICAgICAgY29sb3I6IHJnYmEoMTEzLCAyMDgsIDUwLCAuNCk7XHJcbiAgICAgICAgY29sb3I6ICMzOTZhMTg7XHJcbiAgICB9XHJcblxyXG4gICAgI2xvZ2luICNtc2dzIC53LW1zZyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDIxMCwgNywgLjUpO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDI0MCwgMjEwLCA3LCAuNSk7XHJcbiAgICAgICAgY29sb3I6ICM1NjRiMDQ7XHJcbiAgICB9XHJcblxyXG4vKiogdGVybWluYSBlc3RpbG9zIGxvZ2luICoqL1xyXG5cclxuLmFuY2hvMTAwcGMge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hcmdlbmFiYTMwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJ0bmdyaXM2NXBjIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Nzc4N2I7XHJcbiAgICBib3JkZXItY29sb3I6ICM3Nzc4N2I7XHJcbn1cclxuXHJcbiAgICAuYnRuZ3JpczY1cGM6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTU1O1xyXG4gICAgfVxyXG5cclxuLmZvbnRzaXplMTQge1xyXG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hanVzdGVwcmVnZnJlYyB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XHJcbiAgICAvKm1heC13aWR0aDogMjB2dyAhaW1wb3J0YW50OyovXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYW1wbGlhcmltZyB7XHJcbiAgICBjb2xvcjogbmF2eTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWUxZTE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIHBhZGRpbmc6IDVweCA1cHggMXB4IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbiAgICAuYW1wbGlhcmltZzpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTtcclxuICAgIH1cclxuXHJcbi5zdWJjYXRlZ29yaWFpbWcge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmZiZmI7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgbWluLWhlaWdodDogMjE4cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbiAgICAuc3ViY2F0ZWdvcmlhaW1nIGltZyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiA1cHggYXV0byA1cHggYXV0bztcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAuc3ViY2F0ZWdvcmlhaW1nOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzllYWZmO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIExpZ2h0U2t5Qmx1ZTtcclxuICAgIH1cclxuXHJcbi5hbGNoZWNhcjpjaGVja2VkICsgLnN1YmNhdGVnb3JpYWltZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTM5NTk4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmltZ2FtcGxpYWRhIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDUwdmg7XHJcbiAgICBtYXgtaGVpZ2h0OiA3MHZoO1xyXG59XHJcblxyXG4ubW9kYWwtaGVhZGVyIHtcclxuICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzBjMGMwO1xyXG59XHJcblxyXG4ubW9kYWwtdGl0bGUge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDBweCAwcHggMHB4O1xyXG59XHJcblxyXG4ubW9kYWwtZm9vdGVyIHtcclxuICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG59XHJcblxyXG4uY29sb3JuZWdybyB7XHJcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuXHJcbiAgICAubW9kYWwtZGlhbG9nIHtcclxuICAgICAgICB3aWR0aDogOTUlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZGVzY3JpcGNpb25pbWcge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xyXG59XHJcblxyXG4ubW9kYWwtZGlhbG9nIHtcclxuICAgIG1hcmdpbjogNXB4IGF1dG87XHJcbn1cclxuXHJcbi5yZWN1YWRyb2JlaWdlLCAucmVjdWFkcm9henVsLCAucmVjdWFkcm9ncmlzLFxyXG4ucmVjdWFkcm9jYWZlLCAucmVjdWFkcm9uYXJhbmphLCAucmVjdWFkcm9hbWFyaWxsbyxcclxuLnJlY3VhZHJvdmVyZGUge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCkge1xyXG5cclxuICAgIC5yZWN1YWRyb2JlaWdlLCAucmVjdWFkcm9henVsLCAucmVjdWFkcm9ncmlzLFxyXG4gICAgLnJlY3VhZHJvY2FmZSwgLnJlY3VhZHJvbmFyYW5qYSwgLnJlY3VhZHJvYW1hcmlsbG8sXHJcbiAgICAucmVjdWFkcm92ZXJkZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yZWN1YWRyb2JlaWdlLCAuZm9uZG9iZWlnZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmZGVkO1xyXG59XHJcblxyXG4ucmVjdWFkcm9henVsIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMmY2ZjY7XHJcbn1cclxuXHJcbi5yZWN1YWRyb2dyaXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcclxufVxyXG5cclxuLnJlY3VhZHJvY2FmZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmNGU5O1xyXG59XHJcblxyXG4ucmVjdWFkcm9uYXJhbmphIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGYyZTA7XHJcbn1cclxuXHJcbi5yZWN1YWRyb2FtYXJpbGxvLCAuZm9uZG9hbWFyaWxsbyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmZGMwO1xyXG59XHJcblxyXG4ucmVjdWFkcm92ZXJkZSwgLmZvbmRvdmVyZGUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZmZjNDtcclxufVxyXG5cclxuLmN1YWRyb2NvbnRvcm5vYXp1bCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBza3libHVlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIHBhZGRpbmc6IDEwcHggOXB4IDlweCA5cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmYmZiO1xyXG59XHJcblxyXG4ubGluZWhlaWdodDE2IHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaTEwIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpMTVtb2JpbGUge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xyXG5cclxuICAgIC5tYXJnZW5hcnJpMTVtb2JpbGUge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHggIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLm1hcmdlbmFiYTEwbW9iaWxlLCAubWFyZ2VuYWJhMzBtb2JpbGUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5vY3VsdG9lbm1vYmlsZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLnBvc2l0aW9uYWJzb2hpcmVzIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE1cHgpO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XHJcblxyXG4gICAgLm1hcmdlbmFiYTEwbW9iaWxlIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm1hcmdlbmFiYTMwbW9iaWxlIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnBvc2l0aW9uYWJzb2hpcmVzIHtcclxuICAgICAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb250c2l6ZTE2IHtcclxuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZ2Rlcml6cTdwNSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA3LjVweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1sZWZ0OiA3LjVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZ2RlcjdwNSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA3LjVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZ2l6cTdwNSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDcuNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nZGVyaXpxNiB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHggIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctbGVmdDogNnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb25kb2RlZ3JhZGFkb2dyaXNjbGFybyB7XHJcbiAgICAvKmJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgI2UxZTFlMSk7Ki9cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDU0NmE7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweCAxMHB4IDE1cHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnBhZGRpbmdhcnJpYWJhMiB7XHJcbiAgICBwYWRkaW5nLXRvcDogMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5yZWN1YWRyb2VsZW1lbnRvIHtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgbWluLWhlaWdodDogMzBweDtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweCAxNXB4IDE1cHg7XHJcbn1cclxuXHJcbi5mb3JtLWNvbnRyb2xbcmVhZG9ubHldIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNGZkZmQ7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZmRmZDtcclxufVxyXG5cclxuLnNlcGFyYWRvcmVsZW1lbnRvcyB7XHJcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgc2t5Ymx1ZTtcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4uZm9uZG9ncmlzZjAge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcclxufVxyXG5cclxuLmJ0bi1kZWZhdWx0IHtcclxuICAgIGJvcmRlci1jb2xvcjogI2MwYzBjMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmZiZmI7XHJcbn1cclxuXHJcbi5tYXJnZW5hYmEyMCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zZXBhcmFkb3J0ZW51ZSB7XHJcbiAgICBib3JkZXItY29sb3I6ICNlMWUxZTE7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ib2xkIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5iYWRnZSB7XHJcbiAgICBwYWRkaW5nOiAxcHggM3B4O1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlcmVkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG59XHJcblxyXG5cclxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2VyZWQ7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG59XHJcblxyXG4uc3dhbDItaWNvbiB7XHJcbiAgICAvKmhlaWdodDogNzVweDsqL1xyXG4gICAgbWFyZ2luOiAwcHggYXV0byAwcHg7XHJcbn1cclxuXHJcbi5yZWN1YWRyb2VsZW1lbnRvIC5mb3JtLWNvbnRyb2wge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbiNkZXNnbG9zZSB0aCB7XHJcbiAgICBjb2xvcjogIzkzOTU5ODtcclxufVxyXG5cclxuLm1hcmdlbmFycmlhYmExNSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpMTVhYmEyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1ib3R0b206IDJweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYm9yZGVhYmFncmlzMjBwYyB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcclxufVxyXG5cclxuLm92ZXJmbG93aG9yIHtcclxuICAgIG92ZXJmbG93LXg6IGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5cclxuQG1lZGlhIHByaW50IHtcclxuXHJcbiAgICAubW9kYWwge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBtaW4taGVpZ2h0OiAyMDB2aDtcclxuICAgIH1cclxuXHJcbiAgICAubW9kYWwtZGlhbG9nIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpMzMge1xyXG4gICAgbWFyZ2luLXRvcDogMzNweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWFyZ2VuYXJyaTAge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LWNvbC14cy01IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1pbi1oZWlnaHQ6IDFweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICB3aWR0aDogMjAlO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbi5sYWJlbGZpbHRyb3Mge1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG4gICAgbWFyZ2luOiAwcHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGNvbG9yOiAjNzc3ODdiO1xyXG59XHJcblxyXG4ubWFyZ2VuaXpxOCB7XHJcbiAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbnVsLlRhYmxlLXBhZ2luYXRpb24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuICAgIHVsLlRhYmxlLXBhZ2luYXRpb24gbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAgICAgdWwuVGFibGUtcGFnaW5hdGlvbiBsaSBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTNweDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEQURBREEgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB1bC5UYWJsZS1wYWdpbmF0aW9uIGxpIGEuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3QUMyNDM7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdWwuVGFibGUtcGFnaW5hdGlvbiBsaSBhOmhvdmVyOm5vdCguYWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTJFMkUyO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4ucGFkZGluZ2FycmkyMCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9uZG95Y29udG9ybm9ncmlzNzVwYyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1NTU1ICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICM1NTU1NTUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtdGFibGEtY29sdW1uYXMtY2VudHJhZGFzIHRoLCAudS10YWJsYS1jb2x1bW5hcy1jZW50cmFkYXMgdGQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uQnRuLWdyYXkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogNnB4IDEycHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTM5NTk4O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjOTM5NTk4O1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlIC40NXM7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNDVzO1xyXG59XHJcblxyXG4gICAgLkJ0bi1ncmF5OmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogIzU1NTtcclxuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIH1cclxuXHJcbi5idG4gLmdseXBoaWNvbiB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpMTVhYmExMCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ib3JkZWFycmlncmlzMjVwYyB7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2MwYzBjMDtcclxufVxyXG5cclxuLnRhYmxhbGluZWhlaWdodDE4IHRoLCAudGFibGFsaW5laGVpZ2h0MTggdGQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hcmdlbmFiYTI1IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDI1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hcmdlbmFycmkzMCB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbmNobzc1cGMge1xyXG4gICAgd2lkdGg6IDc1JTtcclxufVxyXG5cclxuLnBhZGRpbmdhcnJpMzAge1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJ0bmdyaXM1MHBjIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5Mzk1OTg7XHJcbiAgICBib3JkZXItY29sb3I6ICM5Mzk1OTg7XHJcbn1cclxuXHJcbiAgICAuYnRuZ3JpczUwcGM6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3Nzc4N2I7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNzc3ODdiO1xyXG4gICAgfVxyXG5cclxuLyoqIGVzdGlsb3MgZGUgcG9ydGFkYSAqKi9cclxuXHJcbi5pbWdwb3J0YWRhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW46IDBweCBhdXRvO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XHJcblxyXG4gICAgLmltZ3BvcnRhZGEge1xyXG4gICAgICAgIHdpZHRoOiAxNDBweDtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTY2cHg7XHJcbiAgICAgICAgcGFkZGluZzogMHB4IDMwcHggMHB4IDNweDtcclxuICAgIH1cclxuXHJcbiAgICAub2N1bHRvZW5tb2JpbGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5hbHR1cmFtaW5ib3Rwb3J0IHtcclxuICAgIG1pbi1oZWlnaHQ6IDQwNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuXHJcbiAgICAuYWx0dXJhbWluYm90cG9ydCB7XHJcbiAgICAgICAgbWluLWhlaWdodDogMTYycHggIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLm1hcmdlbmFycmlhYmEzMCB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXJnZW5hYmE0NSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXJnZW5hYmE2MCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ib3RvbnBvcnRhZGEge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgc2t5Ymx1ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDlweCA5cHggOXB4O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZjhmOGY4LCAjZmZmKTtcclxufVxyXG5cclxuICAgIC5ib3RvbnBvcnRhZGE6aG92ZXIge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGRvZGdlcmJsdWU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBhbGljZWJsdWUsICNmZmYpO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBjb2xvcjogcm95YWxibHVlO1xyXG4gICAgfVxyXG5cclxuLmJvbGRhenVsIHtcclxuICAgIGNvbG9yOiBsaWdodHNreWJsdWU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmJvdG9ucG9ydGFkYTpob3ZlciAuYm9sZGF6dWwge1xyXG4gICAgY29sb3I6IHJveWFsYmx1ZTtcclxufVxyXG5cclxuLmJvcmRlYXp1bCB7XHJcbiAgICBib3JkZXItY29sb3I6IHNreWJsdWUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRleHQtY2VudGVyLWxnIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xyXG4gICAgLnRleHQtY2VudGVyLWxnIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5hanVzdGV0aXR1bG9tb2JpbGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW46IDAgMCAwIDEzOHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XHJcbiAgICAuY29sLWxnLW9mZnNldC0xLm9mZnNldDFwdDUge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMi40OTk5OTk5OTUlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucG9ydGFkYS50YWItY29udGVudCB7XHJcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XHJcblxyXG4gICAgLm1hcmdlbmFiYTEwc21waCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5tYXJnZW5hYmEzMHNtcGgge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcclxufVxyXG5cclxuLm5vYm9sZCB7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpMTAge1xyXG4gICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucHJlZ3VmcmVjdSB7XHJcbiAgICBtYXJnaW46IDE1cHggMjBweCA0NXB4IDBweDtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIGNvbG9yOiBvcmFuZ2U7XHJcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMHB4O1xyXG59XHJcblxyXG4gICAgLnByZWd1ZnJlY3UgbGkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgb3JhbmdlO1xyXG4gICAgfVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xyXG5cclxuICAgIC5wcmVndWZyZWN1IGxpIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiA3NXB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ucHJlZ3VmcmVjdSBsaSBhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcGFkZGluZzogMTVweCAwcHg7XHJcbn1cclxuXHJcbiAgICAucHJlZ3VmcmVjdSBsaSBhOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHdoaXRlLCBGbG9yYWxXaGl0ZSwgRmxvcmFsV2hpdGUsIHdoaXRlKTtcclxuICAgIH1cclxuXHJcbi5wcmVndWZyZWN1IGltZyB7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBtYXJnaW46IDBweCA4cHggMHB4IDJweDtcclxufVxyXG5cclxuLmN1YWRyb2FjYWJhZG9zIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgc2t5Ymx1ZTtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgcGFkZGluZzogNy41cHggMTVweCA1cHggMTVweDtcclxuICAgIG1pbi1oZWlnaHQ6IDEwM3B4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIHRleHQtaW5kZW50OiAxOHB4O1xyXG59XHJcblxyXG5cclxuICAgIC5jdWFkcm9hY2FiYWRvczpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYWxpY2VibHVlO1xyXG4gICAgfVxyXG5cclxuLmNoZWNrIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogOXB4O1xyXG4gICAgbGVmdDogMjhweDtcclxufVxyXG5cclxuICAgIC5jaGVjazpjaGVja2VkICsgLmN1YWRyb2FjYWJhZG9zIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhbGljZWJsdWU7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkb2RnZXJibHVlO1xyXG4gICAgfVxyXG5cclxuLmRyb3Bkb3duIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi1sZWZ0OiAxMXB4O1xyXG59XHJcblxyXG4uZ3JpczQwcGMge1xyXG4gICAgY29sb3I6ICNBQ0FDQUMgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBhZGRpbmdhcnJpYWJhMTAge1xyXG4gICAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb25kb2RlZ3JhZGFkb2F6dWwge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB3aGl0ZSwgUm95YWxCbHVlLCBSb3lhbEJsdWUsIFJveWFsQmx1ZSwgUm95YWxCbHVlLCBSb3lhbEJsdWUsIFJveWFsQmx1ZSwgd2hpdGUpO1xyXG59XHJcblxyXG4uY29sb3JibGFuY28ge1xyXG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcmVjaW9hY2FiYWRvcyB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAzNXB4O1xyXG4gICAgcmlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpMjAge1xyXG4gICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZ2l6cTAge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJvcmRlcHVudG9zIHtcclxuICAgIGJvcmRlci1zdHlsZTogZG90dGVkO1xyXG59XHJcblxyXG4ubWFyZ2VuYWJhMCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBhZGRpbmdhYmEyMCB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9uZG9ncmlzZmIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZmJmYjtcclxufVxyXG5cclxuICAgIC5mb25kb2dyaXNmYiAuYnRuLWRlZmF1bHQge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogIzljYTBhNjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb25kb2dyaXNmYiAuY3VhZHJvYWNhYmFkb3Mge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4uYm9yZGVvcGNpb25penEge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzkzOTU5ODtcclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHg7XHJcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xyXG4gICAgcGFkZGluZzogNnB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0ZXh0LWluZGVudDogMjJweDtcclxufVxyXG5cclxuLmJvcmRlb3BjaW9uZGVyIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Mzk1OTg7XHJcbiAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XHJcbiAgICBwYWRkaW5nOiA2cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTMwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHRleHQtaW5kZW50OiAxOHB4O1xyXG59XHJcblxyXG4ucmFkaW9jb2xvciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDdweDtcclxuICAgIGxlZnQ6IDI4cHg7XHJcbn1cclxuXHJcbi5maXhib3JkZWRlciAucmFkaW9jb2xvciB7XHJcbiAgICBsZWZ0OiAtNHB4O1xyXG59XHJcblxyXG4ucmFkaW9jb2xvcjpjaGVja2VkICsgLmJvcmRlb3BjaW9uZGVyLCAucmFkaW9jb2xvcjpjaGVja2VkICsgLmJvcmRlb3BjaW9uaXpxIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYzZTA7XHJcbn1cclxuXHJcbi5mb25kb2RlZ3JhZGFkb2dyaXM2NXBjIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgd2hpdGUsICNjM2U2ZmMsICNjM2U2ZmMsICNjM2U2ZmMsICNjM2U2ZmMsICNjM2U2ZmMsICNjM2U2ZmMsIHdoaXRlKTtcclxufVxyXG5cclxuLmZvbmRvYW1hcmlsbG9jbGFybyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmN2VhO1xyXG59XHJcblxyXG4ubWFyZ2VuYXJyaTU2IHtcclxuICAgIG1hcmdpbi10b3A6IDU2cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmVsZWVzcGFncmVnYWRvcyB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDBweDtcclxuICAgIGxlZnQ6IDBweDtcclxuICAgIHdpZHRoOiA5OCU7XHJcbiAgICBoZWlnaHQ6IDU0cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMSU7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzhkYzY0MCwgcmdiYSgyNTUsMjU1LDI1NSwwLjc1KSwgcmdiYSgyNTUsMjU1LDI1NSwwLjc1KSwgcmdiYSgyNTUsMjU1LDI1NSwwLjc1KSwgcmdiYSgyNTUsMjU1LDI1NSwwLjc1KSwgcmdiYSgyNTUsMjU1LDI1NSwwLjc1KSwgIzhkYzY0MCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBza3libHVlO1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgei1pbmRleDogMTA7XHJcbn1cclxuXHJcbi5idG5hZ3JlZ2Fkb3Mge1xyXG4gICAgcGFkZGluZy10b3A6IDRweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzE5ZTMzICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICM3MTllMzMgIWltcG9ydGFudDtcclxufVxyXG5cclxuICAgIC5idG5hZ3JlZ2Fkb3M6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmVlbiAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2dyZWVuICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4uY29sb3JuYXJhbmphb3NjIHtcclxuICAgIGNvbG9yOiBkYXJrb3JhbmdlO1xyXG59XHJcblxyXG4uY3VhZHJvYXp1bGRlZ3JhZCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBza3libHVlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIHBhZGRpbmc6IDEwcHggOXB4IDlweCA5cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTE1ZGVnLCAjYjNlMGZjLCBsaWdodGN5YW4sIGxpZ2h0Y3lhbiwgbGlnaHRjeWFuLCAjYjNlMGZjKTtcclxufVxyXG5cclxuLnRpdHVsb3NlY2Npb24ge1xyXG4gICAgY29sb3I6IHJveWFsYmx1ZTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgYWxpY2VibHVlLCAjZmZmZmZmKTtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbiAgICAudGl0dWxvc2VjY2lvbjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCBDb3JuZmxvd2VyQmx1ZSwgI2ZmZmZmZik7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4ubWFyZ2VuaXpxMjAge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFuY2hvbW9kYWxkZXRhbGxlcyB7XHJcbiAgICB3aWR0aDogNzUlO1xyXG4gICAgbWFyZ2luLXRvcDogMTB2aDtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xyXG4gICAgLmFuY2hvbW9kYWxkZXRhbGxlcyB7XHJcbiAgICAgICAgd2lkdGg6IDk1JTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxdmg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaWFiYTUge1xyXG4gICAgcGFkZGluZy10b3A6IDVweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKiogREVTREUgQVFVSSBFU1RJTE9TIEVYQ0xVU0lWT1MgREUgQU5HVUxBUiAqKi9cclxuXHJcbi8qKiBwYXJhIGNvbXBvbmVudGUgZGUgcGFnaW5hZG8gZGUgYW5ndWxhciBpbmljaWEgKiovXHJcblxyXG4udWktdGFibGUgLnVpLXBhZ2luYXRvci1ib3R0b20ge1xyXG4gICAgcGFkZGluZzogMTVweCAwcHg7XHJcbn1cclxuXHJcbmJvZHkgLnVpLXBhZ2luYXRvciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4vKiogcGFyYSBjb21wb25lbnRlIGRlIHBhZ2luYWRvIGRlIGFuZ3VsYXIgdGVybWluYSAqKi9cclxuXHJcbi8qKiBwYXJhIGNvbXBvbmVudGUgZGUgc3dlZXQgYWxlcnQgaW5pY2lhICoqL1xyXG5cclxuLnN3YWwyLWNvbnRlbnQge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG59XHJcblxyXG4uc3dhbDItcG9wdXAge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBmb250LXNpemU6IGF1dG87XHJcbn1cclxuXHJcbi5zd2FsMi1zdHlsZWQuc3dhbDItY29uZmlybSwgLnN3YWwyLXN0eWxlZC5zd2FsMi1jYW5jZWwge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG59XHJcblxyXG4uc3dhbDItaWNvbiB7XHJcbiAgICAvKmhlaWdodDogNzVweDsgc2UgbW92aW8gZGUgbGEgbGluZWEgNzUxICovXHJcbiAgICBtYXJnaW46IDBweCBhdXRvIDBweDtcclxufVxyXG5cclxuLyoqIHBhcmEgY29tcG9uZW50ZSBkZSBzd2VldCBhbGVydCB0ZXJtaW5hICoqL1xyXG5cclxuLyoqIHBhcmEgdGFibGEgZGUgYW5ndWxhciBpbmljaWEgKiovXHJcblxyXG5ib2R5IC51aS13aWRnZXQge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxufVxyXG5cclxuYm9keSAudWktdGFibGUgLnVpLXRhYmxlLXRoZWFkID4gdHIgPiB0aCxcclxuYm9keSAudWktdGFibGUgLnVpLXRhYmxlLXRib2R5ID4gdHIgPiB0ZCB7XHJcbiAgICBwYWRkaW5nOiA3LjVweDtcclxufVxyXG5cclxuLmFuY2hvNjUge1xyXG4gICAgd2lkdGg6IDY1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFuY2hvODUge1xyXG4gICAgd2lkdGg6IDg1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLyoqIHBhcmEgdGFibGEgZGUgYW5ndWxhciB0ZXJtaW5hICoqL1xyXG5cclxuLyoqIHBhcmEgY2F0ZWdvcmlhcyB5IHN1YmNhdGVnb3JpYXMgZGUgZWxlbWVudG9zIHkgZXNwYWNpb3MgKiovXHJcblxyXG4vKi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcclxufSovXHJcblxyXG4uc3ViY2F0ZWdvcmlhIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmVsZW1lc3BhYWN0aXZvIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxMTVkZWcsICNiM2UwZmMsIGxpZ2h0Y3lhbiwgbGlnaHRjeWFuLCBsaWdodGN5YW4sICNiM2UwZmMpO1xyXG59XHJcblxyXG4ubWFyZ2VuYWJhNiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFuY2hvMjh2dyB7XHJcbiAgICB3aWR0aDogMjh2dyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYW5jaG8xMDAge1xyXG4gICAgd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaTE1IHtcclxuICAgIHBhZGRpbmctdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb25kb2RlZ3JhZGFkb2dyaXNjbGFybyB7XHJcbiAgICAvKmJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgI2UxZTFlMSk7Ki9cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDU0NmE7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5ib3RvZWxpbXByZXMge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG4ucGFkZGluZ2l6cTAge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJ0bi1pbmZvIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMDk5Yjk7XHJcbiAgICBib3JkZXItY29sb3I6ICMzMDk5Yjk7XHJcbn1cclxuXHJcbi5idG4taW5mbzpob3ZlciB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxODc1OTI7XHJcbiAgICBib3JkZXItY29sb3I6ICMxODc1OTI7XHJcbn1cclxuXHJcbi5pY29uY2FsY3VsYXIge1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4udWktZmxvYXQtbGFiZWwgPiBpbnB1dC51aS1zdGF0ZS1maWxsZWQgfiBsYWJlbCB7XHJcbiAgICB0b3A6IC0wLjZlbTtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBtaW4td2lkdGg6IDc1cHg7XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaTIwLWxnIHtcclxuICAgIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nYXJyaTE4LWxnIHtcclxuICAgIHBhZGRpbmctdG9wOiAxOHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuXHJcbiAgICAucGFkZGluZ2FycmkyMC1sZyB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWRkaW5nYXJyaTE4LWxnIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmxhYmVsZmlsdHJvcyB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4taGVpZ2h0OiAyN3B4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGluZWhlaWdodDEzIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxM3B4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbHR1cmFhdXRvIHtcclxuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5ib2R5IC51aS1pbnB1dHRleHQge1xyXG4gICAgbWluLXdpZHRoOiA0MHB4O1xyXG59XHJcblxyXG4uYW5jaG9hbHRvMTAwIHtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGhlaWdodDogMTAwcHg7XHJcbn1cclxuXHJcbi5ib3JkZWdyaXMyNXBjIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XHJcbn1cclxuXHJcbi5tb2RhbGlkYWQge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgI2Q5ZjFmZiwgdHJhbnNwYXJlbnQpO1xyXG4gICAgcGFkZGluZzogMTBweCAwcHg7XHJcbn1cclxuXHJcbi5tYXJnZW5hYmEzMyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzM3B4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbmNob21pbjcyNSB7XHJcbiAgICBtaW4td2lkdGg6IDcyNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50ZXh0LWNlbnRlci1sZyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuXHJcbiAgICAudGV4dC1jZW50ZXItbGcge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb250c2l6ZTE4IHtcclxuICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYW5jaG9tYXgyNXZ3IHtcclxuICAgIG1heC13aWR0aDogMjV2dztcclxufVxyXG5cclxuLmFuY2hvbWF4MjB2dyB7XHJcbiAgICBtYXgtd2lkdGg6IDIwdnc7XHJcbn1cclxuXHJcbi5hbmNob21heDE1dncge1xyXG4gICAgbWF4LXdpZHRoOiAxNXZ3O1xyXG59XHJcblxyXG4ubWFyZ2VuYXJyaTE1dGFibGV0IHtcclxuICAgIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XHJcblxyXG4gICAgLm1hcmdlbmFycmkxNXRhYmxldCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5tYXJnZW5hcnJpMTB0YWJsZXQge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xyXG5cclxuICAgIC5ib3JkZWl6cWF6dWwtbGcge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiA2cHggZG91YmxlIGRvZGdlcmJsdWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jb2xvcnJvam8ge1xyXG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYm9yZGVhcnJpMmF6dWwge1xyXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIGRlZXBza3libHVlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jb2xvcmF6dWxyZWFsIHtcclxuICAgIGNvbG9yOiByb3lhbGJsdWUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFuY2hvbW9kYWwge1xyXG4gICAgd2lkdGg6IDk0dnc7XHJcbiAgICBtaW4td2lkdGg6IDYyMHB4O1xyXG59XHJcblxyXG4ub2N1bHRhcm1vYmlsZXl0YWJsZXQge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xyXG5cclxuICAgIC5wYWRkaW5nYXJyaTIyLWxnIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMjJweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWRkaW5nYXJyaTE2LWxnIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5vY3VsdGFybW9iaWxleXRhYmxldCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuXHJcbiAgICAubWFyZ2VuYWJhMTVtb2JpbGUge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHggIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAucGFkZGluZ2FycmkzNC14cyB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDM0cHggIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5jdXJzb3Jwb2ludGVyIHtcclxuY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb250c2l6ZTIyIHtcclxuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uaWNvbm9pbmZvLCAuaWNvbm9pbmZvaW5saW5lIHtcclxuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHJveWFsYmx1ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbn1cclxuXHJcbi5pY29ub2luZm8ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQsICNmMGYwZjAsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7XHJcbn1cclxuXHJcbi5pY29ub2luZm86aG92ZXIsIC5pY29ub2luZm9pbmxpbmU6aG92ZXIge1xyXG4gICAgY29sb3I6IG1lZGl1bWJsdWU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwYWxldHVycXVvaXNlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDEzNjZweCkge1xyXG5cclxuICAgIC5pbmxpbmVibG9jay1tZCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xyXG5cclxuLmRpc3BsYXlibG9jay1zbSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxufVxyXG5cclxuLyoqIGNsYXNlcyBleHRyYWxhcmdlICh4bCkgYmFzYWRhcyBlbiBsYSBsZyBkZSBib290c3RyYXAgaW5pY2lhICoqL1xyXG5cclxuLmNvbC14bC0xLCAuY29sLXhsLTIsIC5jb2wteGwtMywgLmNvbC14bC00LCAuY29sLXhsLTUsIC5jb2wteGwtNiwgLmNvbC14bC03LCAuY29sLXhsLTgsIC5jb2wteGwtOSwgLmNvbC14bC0xMCwgLmNvbC14bC0xMSwgLmNvbC14bC0xMiB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTM2N3B4KSB7XHJcbiAgICAuY29sLXhsLTEsIC5jb2wteGwtMiwgLmNvbC14bC0zLCAuY29sLXhsLTQsIC5jb2wteGwtNSwgLmNvbC14bC02LCAuY29sLXhsLTcsIC5jb2wteGwtOCwgLmNvbC14bC05LCAuY29sLXhsLTEwLCAuY29sLXhsLTExLCAuY29sLXhsLTEyIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLTEyIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLTExIHtcclxuICAgICAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtMTAge1xyXG4gICAgICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC05IHtcclxuICAgICAgICB3aWR0aDogNzUlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtOCB7XHJcbiAgICAgICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLTcge1xyXG4gICAgICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC02IHtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtNSB7XHJcbiAgICAgICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLTQge1xyXG4gICAgICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC0zIHtcclxuICAgICAgICB3aWR0aDogMjUlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtMiB7XHJcbiAgICAgICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLTEge1xyXG4gICAgICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLXB1bGwtMTIge1xyXG4gICAgICAgIHJpZ2h0OiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtcHVsbC0xMSB7XHJcbiAgICAgICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLXB1bGwtMTAge1xyXG4gICAgICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTkge1xyXG4gICAgICAgIHJpZ2h0OiA3NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTgge1xyXG4gICAgICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTcge1xyXG4gICAgICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTYge1xyXG4gICAgICAgIHJpZ2h0OiA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTUge1xyXG4gICAgICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTQge1xyXG4gICAgICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTMge1xyXG4gICAgICAgIHJpZ2h0OiAyNSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTIge1xyXG4gICAgICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdWxsLTEge1xyXG4gICAgICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLXB1bGwtMCB7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdXNoLTEyIHtcclxuICAgICAgICBsZWZ0OiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtcHVzaC0xMSB7XHJcbiAgICAgICAgbGVmdDogOTEuNjY2NjY2NjclO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtcHVzaC0xMCB7XHJcbiAgICAgICAgbGVmdDogODMuMzMzMzMzMzMlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtcHVzaC05IHtcclxuICAgICAgICBsZWZ0OiA3NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdXNoLTgge1xyXG4gICAgICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLXB1c2gtNyB7XHJcbiAgICAgICAgbGVmdDogNTguMzMzMzMzMzMlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtcHVzaC02IHtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdXNoLTUge1xyXG4gICAgICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLXB1c2gtNCB7XHJcbiAgICAgICAgbGVmdDogMzMuMzMzMzMzMzMlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtcHVzaC0zIHtcclxuICAgICAgICBsZWZ0OiAyNSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdXNoLTIge1xyXG4gICAgICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLXB1c2gtMSB7XHJcbiAgICAgICAgbGVmdDogOC4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1wdXNoLTAge1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1vZmZzZXQtMTIge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtb2Zmc2V0LTExIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtb2Zmc2V0LTEwIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtb2Zmc2V0LTkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1vZmZzZXQtOCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLW9mZnNldC03IHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtb2Zmc2V0LTYge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1vZmZzZXQtNSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLW9mZnNldC00IHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2wteGwtb2Zmc2V0LTMge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1vZmZzZXQtMiB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLXhsLW9mZnNldC0xIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbC14bC1vZmZzZXQtMCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKiBjbGFzZXMgZXh0cmFsYXJnZSAoeGwpIGJhc2FkYXMgZW4gbGEgbGcgZGUgYm9vdHN0cmFwIHRlcm1pbmEgKiovXHJcblxyXG4uYWx0dXJhMjAge1xyXG4gICAgaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5pY29ub3ByZXN1cCB7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoOTk5JSk7XHJcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XHJcblxyXG4uYm9yZGVhYmFhenVsbW9iaWxlIHtcclxuICAgIGJvcmRlci1ib3R0b206IDZweCBkb3VibGUgcGFsZXR1cnF1b2lzZTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG59XHJcblxyXG4ucmVuZ2xvbmNhdGVnb3JpYSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uZmxlY2hhZGVyYW5pIHtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBmbGVjaGFkO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcclxuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZsZWNoYWQge1xyXG5cclxuICAgIDAlIHtcclxuICAgICAgICBjb2xvcjogI2QyZjZmNjtcclxuICAgICAgICBsZWZ0OiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgMjUlIHtcclxuICAgICAgICBsZWZ0OiA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgNTAlIHtcclxuICAgICAgICBjb2xvcjogRG9kZ2VyQmx1ZTtcclxuICAgICAgICBsZWZ0OiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIDc1JSB7XHJcbiAgICAgICAgbGVmdDogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIDEwMCUge1xyXG4gICAgICAgIGNvbG9yOiAjZDJmNmY2O1xyXG4gICAgICAgIGxlZnQ6IDBweDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5mbGVjaGFpenFhbmkge1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IGZsZWNoYWk7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcclxuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZsZWNoYWkge1xyXG5cclxuICAgIDAlIHtcclxuICAgICAgICBjb2xvcjogI2QyZjZmNjtcclxuICAgICAgICByaWdodDogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIDI1JSB7XHJcbiAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICA1MCUge1xyXG4gICAgICAgIGNvbG9yOiBEb2RnZXJCbHVlO1xyXG4gICAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIDc1JSB7XHJcbiAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAxMDAlIHtcclxuICAgICAgICBjb2xvcjogI2QyZjZmNjtcclxuICAgICAgICByaWdodDogMHB4O1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLmljb25vYm90b25lbGVtZW50b3Mge1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLm1hcmdlbml6cTY1IHtcclxuICAgIG1hcmdpbi1sZWZ0OiA2NXB4O1xyXG59XHJcblxyXG4ubWFyZ2VuZGVyNTUge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1NXB4O1xyXG59XHJcblxyXG4uZXRpcXVldGFhenVsIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1QjlCRDU7XHJcbiAgICBwYWRkaW5nOiAycHggNXB4O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luOiAxNXB4IDA7XHJcbn1cclxuXHJcbi5tYXJnZW5hcnJpLTUge1xyXG4gICAgbWFyZ2luLXRvcDogLTVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2VwYXJhZG9yaW50ZXJubyB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGVlcHNreWJsdWU7XHJcbiAgICBwYWRkaW5nOiA0cHggMCA1cHggMTVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY29sb3I6ICM2M2FkZjY7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50LCBsaWdodGN5YW4pO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLnNlcGFyYWRvcmludGVybm86Zmlyc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXRvcDogLTE1cHg7XHJcbn1cclxuXHJcbi5kZXNjcmlzdWJjYXQge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogIzgzYTllZTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgY29ybmZsb3dlcmJsdWU7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uYWxjaGVjYXI6Y2hlY2tlZCArIC5zdWJjYXRlZ29yaWEgLmRlc2NyaXN1YmNhdCB7XHJcbiAgICBjb2xvcjogI0Q5RDlEOTtcclxuICAgIGJvcmRlci1jb2xvcjogI0Q5RDlEOTtcclxufVxyXG5cclxubGFiZWw6aG92ZXIge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uZm9udHNpemUyMCB7XHJcbiAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcclxufSJdfQ== */\"","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n urlBase: 'https://simulador-autoconstruccion-api-qa.azurewebsites.net', \r\n //urlBase: 'http://localhost:50519', \r\n //porcentajeAsistenciaTecnica: 1.1,\r\n //porcentajeConstructora: 1.18,\r\n};\r\n\r\n/* API */\r\n/*http://localhost:50519*/\r\n/*https://simulador-autoconstruccion-api-qa.azurewebsites.net*/\r\n\r\n/* WEB */\r\n/*https://simulador-autoconstruccion-web-qa.azurewebsites.net*/\r\n\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"sourceRoot":"webpack:///"}