...
@Component({
selector: '...',
templateUrl: '...'
})
export class ExampleTableAdvancedComponent implements OnInit {
// Datos de la tabla
companyList = [ { name: 'Bsh electrodomesticos españa sa', initialIndex: 0, randomText: '' }, { name: 'Sociedad anonima industrias celulosa aragonesa', initialIndex: 0, randomText: '' }, { name: 'Esprinet iberica sl', initialIndex: 0, randomText: '' }, { name: 'Fujikura automotive europe sau', initialIndex: 0, randomText: '' }, { name: 'Adidas españa sau', initialIndex: 0, randomText: '' }, { name: 'Schindler, sa', initialIndex: 0, randomText: '' }, { name: 'Trans sese sociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'SociedadAmplifon anonima industrias celulosa aragonesaiberica sau', initialIndex: 0, randomText: '' }, { name: 'EsprinetSaica ibericapack sl', initialIndex: 0, randomText: '' }, { name: 'Fujikura automotive europe sauNovapet sa', initialIndex: 0, randomText: '' }, { name: 'AdidasArgal españaalimentacion sausa.', initialIndex: 0, randomText: '' }, { name: 'Schindler,Carreras grupo logistico sa.', initialIndex: 0, randomText: '' }, { name: 'TransMegasider sese sociedad limitada.zaragoza sa', initialIndex: 0, randomText: '' }, { name: 'AmplifonCaladero iberica sausl', initialIndex: 0, randomText: '' }, { name: 'SaicaLecitrailer pack slsa', initialIndex: 0, randomText: '' }, { name: 'Novapet saSaica natur sociedad limitada', initialIndex: 0, randomText: '' }, { name: 'Argal alimentacion sa.Daniel aguilo panisello sociedad anonima', initialIndex: 0, randomText: '' }, { name: 'Carreras grupoBebinter logistico sa.', initialIndex: 0, randomText: '' }, { name: 'MegasiderCuarte zaragoza sasl', initialIndex: 0, randomText: '' }, { name: 'Caladero slMann-hummel iberica sa', initialIndex: 0, randomText: '' }, { name: 'LecitrailerValeo termico sasau', initialIndex: 0, randomText: '' }, { name: 'Saica natur sociedad limitadaTereos starch & sweeteners iberia s.a.u.', initialIndex: 0, randomText: '' }, { name: 'Daniel aguilo panisello sociedad anonimaProclinic sa', initialIndex: 0, randomText: '' }, { name: 'BebinterLozano transportes sasau', initialIndex: 0, randomText: '' }, { name: 'Cuarte slSaltoki logistica zaragoza sa.', initialIndex: 0, randomText: '' }, { name: 'Mann-hummel iberica saDistribuciones agropecuarias de aragon sl', initialIndex: 0, randomText: '' }, { name: 'ValeoAgreda termicoautomovil, sausa', initialIndex: 0, randomText: '' }, { name: 'TereosLa starch & sweeteners iberia s.a.u.zaragozana sa', initialIndex: 0, randomText: '' }, { name: 'ProclinicPunt roma sasl', initialIndex: 0, randomText: '' }, { name: 'LozanoMultienergia verde transportessociedad saulimitada.', initialIndex: 0, randomText: '' }, { name: 'SaltokiLinamar light logisticametals zaragoza sa.', initialIndex: 0, randomText: '' }, { name: 'Distribuciones agropecuarias de aragon slNurel sa', initialIndex: 0, randomText: '' }, { name: 'Agreda automovilIndustrias quimicas del ebro, sa', initialIndex: 0, randomText: '' }, { name: 'La zaragozana saAves nobles y derivados sl', initialIndex: 0, randomText: '' }, { name: 'PuntHiab romacranes sl', initialIndex: 0, randomText: '' }, { name: 'MultienergiaVian verdeas sociedadautomobile limitada.sl', initialIndex: 0, randomText: '' }, { name: 'LinamarProductos lightporcinos metalssecundarios zaragozasociedad sa.anonima', initialIndex: 0, randomText: '' }, { name: 'NurelIndustrias aragonesas del aluminio sa', initialIndex: 0, randomText: '' }, { name: 'IndustriasEnterprise solutions quimicasoutsourcing delespaña ebro,sociedad salimitada.', initialIndex: 0, randomText: '' }, { name: 'AvesGarda noblesservicios yde derivadosseguridad slsa', initialIndex: 0, randomText: '' }, { name: 'Hiab cranes slBergner europe, sociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'VianGeneros de aspunto automobilevictrix sl', initialIndex: 0, randomText: '' }, { name: 'ProductosCables porcinos secundarios sociedad anonimarct sa', initialIndex: 0, randomText: '' }, { name: 'IndustriasServisar aragonesasservicios delsociales aluminio sasl', initialIndex: 0, randomText: '' }, { name: 'EnterprisePolitours solutionssa outsourcing españa sociedad limitada.(en liquidacion)', initialIndex: 0, randomText: '' }, { name: 'GardaElectrical servicioscomponents deinternational seguridad saslu', initialIndex: 0, randomText: '' }, { name: 'BergnerJorge europe,pork sociedadmeat limitada.slu', initialIndex: 0, randomText: '' }, { name: 'GenerosMinera de puntosanta victrixmarta slsa', initialIndex: 0, randomText: '' }, { name: 'CablesServigas s rctxxi sa', initialIndex: 0, randomText: '' }, { name: 'ServisarAutomoviles servicios sociales slsanchez, sa', initialIndex: 0, randomText: '' }, { name: 'Politours sa (en liquidacion)Farmhispania s.a.', initialIndex: 0, randomText: '' }, { name: 'ElectricalCables de componentscomunicaciones internationalzaragoza slusl', initialIndex: 0, randomText: '' }, { name: 'Jorge pork meat sluValorista sl.', initialIndex: 0, randomText: '' }, { name: 'MineraIbercaja mediacion de santa martaseguros sa', initialIndex: 0, randomText: '' }, { name: 'ServigasCelulosa s xxifabril sa', initialIndex: 0, randomText: '' }, { name: 'AutomovilesFrutaria sanchez,agricultura sasl.', initialIndex: 0, randomText: '' }, { name: 'Farmhispania s.a.Aragocias, sociedad anonima', initialIndex: 0, randomText: '' }, { name: 'CablesVitalia dehome comunicaciones zaragoza slsociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'Valorista sl.Cerro murillo sa', initialIndex: 0, randomText: '' }, { name: 'IbercajaAragon mediacionwagen de seguros sasociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'Celulosa fabril saSaltoki suministros zaragoza, sociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'Frutaria agricultura sl.Zalux sa', initialIndex: 0, randomText: '' }, { name: 'Aragocias,Zarsol sociedad anonimalimitada', initialIndex: 0, randomText: '' }, { name: 'VitaliaEhisa construcciones homey sociedadobras limitada.sa', initialIndex: 0, randomText: '' }, { name: 'CerroArquisocial murillosociedad salimitada', initialIndex: 0, randomText: '' }, { name: 'AragonWittur elevator wagencomponents sociedad limitada.anonima', initialIndex: 0, randomText: '' }, { name: 'SaltokiMaster suministros zaragoza, sociedad limitada.distancia sa', initialIndex: 0, randomText: '' }, { name: 'Zalux saFertinagro agrovip sl.', initialIndex: 0, randomText: '' }, { name: 'Zarsol sociedad limitadaConstrucciones mariano lopez navarro sa', initialIndex: 0, randomText: '' }, { name: 'Ehisa construccionesDistribuidora yinternacional obrascarmen sa', initialIndex: 0, randomText: '' }, { name: 'ArquisocialDestilerias sociedadmg limitadasl', initialIndex: 0, randomText: '' }, { name: 'WitturDexiberica elevatorsoluciones componentsindustriales sociedad anonimasau', initialIndex: 0, randomText: '' }, { name: 'Master distancia saVelpiri sau.', initialIndex: 0, randomText: '' }, { name: 'FertinagroAirtex agrovipproducts sl.sa', initialIndex: 0, randomText: '' }, { name: 'Construcciones mariano lopez navarro saOviaragon s.c.l.', initialIndex: 0, randomText: '' }, { name: 'Distribuidora internacional carmen saSociedad aragonesa de gestion agroambiental sl.', initialIndex: 0, randomText: '' }, { name: 'Destilerias mg slVitalia suite, sociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'DexibericaInternational solucionescasing industrialesproducts sauslu', initialIndex: 0, randomText: '' }, { name: 'Velpiri sau.Scanfisk seafood sl', initialIndex: 0, randomText: '' }, { name: 'AirtexMolinos del productsebro sa', initialIndex: 0, randomText: '' }, { name: 'OviaragonEuroarce mineria s.c.la.', initialIndex: 0, randomText: '' }, { name: 'Sociedad aragonesa de gestion agroambiental Solitium sl.', initialIndex: 0, randomText: '' }, { name: 'VitaliaComercial suite, sociedad limitada.salgar sl', initialIndex: 0, randomText: '' }, { name: 'InternationalInsonorizantes casingpelzer products slusa', initialIndex: 0, randomText: '' }, { name: 'Scanfisk seafood slMaetel instalaciones y servicios industriales sa.', initialIndex: 0, randomText: '' }, { name: 'MolinosRingo delvalvulas ebro sasl', initialIndex: 0, randomText: '' }, { name: 'EuroarceTrox mineria s.a.españa sa', initialIndex: 0, randomText: '' }, { name: 'SolitiumTeltronic sl.sa', initialIndex: 0, randomText: '' }, { name: 'ComercialBrilen salgar slsa', initialIndex: 0, randomText: '' }, { name: 'InsonorizantesKeter iberia pelzersociedad salimitada.', initialIndex: 0, randomText: '' }, { name: 'MaetelBusiness instalacionestelecommunications yservices servicioseurope industriales sa.', initialIndex: 0, randomText: '' }, { name: 'Ringo valvulas slBm sportech ib sociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'TroxChemieuro españa sasl', initialIndex: 0, randomText: '' }, { name: 'Teltronic saDeutschland autos slu (extinguida)', initialIndex: 0, randomText: '' }, { name: 'BrilenLaboratorios saphir sa', initialIndex: 0, randomText: '' }, { name: 'KeterAvanza iberiazaragoza sociedad limitadasa.', initialIndex: 0, randomText: '' }, { name: 'BusinessValfondo telecommunicationsinmuebles services europe sa.sociedad limitada', initialIndex: 0, randomText: '' }, { name: 'BmFersa sportech ib sociedad limitada.bearings sa', initialIndex: 0, randomText: '' }, { name: 'ChemieuroBrass & fittings sl', initialIndex: 0, randomText: '' }, { name: 'Deutschland autos slu (extinguida)Mas prevencion servicio de prevencion sociedad limitada.', initialIndex: 0, randomText: '' }, { name: 'Laboratorios saphir sa', initialIndex: 0, randomText: '' }, { name: 'Avanza zaragoza sa.', initialIndex: 0, randomText: '' }, { name: 'Valfondo inmuebles sociedad limitada', initialIndex: 0, randomText: '' }, { name: 'Fersa bearings sa', initialIndex: 0, randomText: '' }, { name: 'Brass & fittings sl', initialIndex: 0, randomText: '' }, { name: 'Mas prevencion servicio de prevencion sociedad limitada.', initialIndex: 0, randomText: '' }, ];
visibleCompanyList = this.companyList; // Elementos filtrados
pageCompanyList = this.companyList; // Elementos ];
visibleCompanyList = this.companyList; // Elementos filtrados
pageCompanyList = this.companyList; // Elementos a mostrar en la página
// Datos de paginación
currentCompanyPage = 1; // página actual
companyPageElems = 7; // elementos a mostrar en la tabla
ngOnInit(): void {
this.companyList.forEach((c, i) => c.initialIndex = i);
this.companyList.forEach((c, i) => c.randomText = this.generateRandomText(20)); //
this.handleCompanyPagChange(this.currentCompanyPage);
}
/**
* Recalcula los elementos a mostrar en la páginatabla
/*/
Datos de paginación
currentCompanyPage = 1; // página actual
companyPageElems = 7; // elementos a mostrar en la tablahandleRecalculateCompanyTable(recalculateParams: RecalculateTableParams): void {
let rows = this.companyList;
ngOnInit(): void {// Realiza el filtrado
thisrecalculateParams.companyListfilters.forEach((c, i)filter => c.initialIndex = i);{
rows = thisrows.companyList.forEach((c, i) filter(row =>
c.randomText = this.generateRandomText(20)); // this.handleCompanyPagChangecontainsAnyWordFrom(this.currentCompanyPage);
}getCellString(row, filter.columnIndex) + '', filter.filterText));
});
/** *// RecalculaSobre los elementosdatos afiltrados, mostrarse enrealiza la tablaordenación
*/ if handleRecalculateCompanyTable(recalculateParams: RecalculateTableParams): void {.sort) {
letconst rowscolumnIndex = thisrecalculateParams.sort.companyListcolumnIndex;
const isAsc // Realiza el filtrado
= recalculateParams.filterssort.forEach(filterorder ===> {OrderBy.asc;
rows = rows.filter(rowsort((a, b) =>
this.containsAnyWordFromcompareCellContent(this.getCellString(rowa, filter.columnIndex) + '', filter.filterText, this.getCellString(b, columnIndex), isAsc));
});
// Sobre los datos filtrados, se realiza la ordenación
if (recalculateParamsthis.sort)visibleCompanyList {= rows;
const columnIndex = recalculateParams.sort.columnIndex;
const isAsc = recalculateParams.sort.order === OrderBy.asc;
// Se obtienen los elementros a mostrar en la tabla según la página seleccionada
rowsthis.pageCompanyList = rowsthis.visibleCompanyList.sortslice((a, bthis.currentCompanyPage - 1) =>
* this.companyPageElems,
this.compareCellContentMath.min(this.getCellString(a, columnIndex),currentCompanyPage * this.getCellString(bcompanyPageElems, columnIndex), isAscthis.companyList.length));
}
}
this.visibleCompanyList = rows;
/**
* Gestiona un cambio de página
*//
Se obtienen los elementros a mostrar en la tabla según la página seleccionada
handleCompanyPagChange(page: number): void {
this.pageCompanyList = this.visibleCompanyList.slice((this.currentCompanyPagepage - 1) * this.companyPageElems,
Math.min(this.currentCompanyPagepage * this.companyPageElems, this.companyList.length));
this.currentCompanyPage = page;
}
getCellString(row, columnIndex: number): string {
} if (columnIndex /**
=== 0) {
* Gestiona un cambio dereturn páginarow.initialIndex + '';
*/ handleCompanyPagChange(page: number): void {
this.pageCompanyList = this.visibleCompanyList.slice((page - 1) * this.companyPageElems,} else if (columnIndex === 1) {
return row.name;
} else if (columnIndex Math.min(page * this.companyPageElems, this.companyList.length));=== 2) {
return thisrow.currentCompanyPagerandomText;
= page; }
}
getCellString(row, columnIndex: number): string { /*
* Se omite ifel (columnIndex === 0) {
return row.initialIndex + '';
} else if (columnIndex === 1) {contenido de las siguientes funciones para no sobrecargar el ejemplo.
* Puede verse un ejemplo completo en https://bitbucket.org/sdaragon/desy-angular/src/master/projects/demo/src/app/components/demo-table-advanced/
*/
// return row.name;
} else if (columnIndex === 2)Genera texto aleatorio de la longitud especificada
generateRandomText(length: number): string {
return row.randomText;...
}
}
// Devuelve true /*si el texto target *pasa Seel omitefiltro eldel contenidotexto dedefinido lasen siguientestext
funciones para no sobrecargar el ejemplo.
* Puede verse un ejemplo completo en https://bitbucket.org/sdaragon/desy-angular/src/master/projects/demo/src/app/components/demo-table-advanced/
*/containsAnyWordFrom(target: string, text: string, fullWord?: boolean): boolean {
...
}
// GeneraCompara dos textoceldas aleatoriopara deespecificar la longitud especificada
generateRandomText(length: number): string ordenación
compareCellContent(a: string, b: string, isAsc: boolean): number {
...
}
} |