UNPKG

@sedeh/into-pipes

Version:

Have you ever wanted to transform data in different parts of your application into interactive objects without writing a single line of code?

68 lines 9.5 kB
/* * Defines a filter to convert url into an address display. */ import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; export class TablePipe { static transformationMethod() { const x = function (content, args, callback, data) { return new TablePipe().transform(content, args.length > 1 ? args[1] : '', args.length > 2 ? args[2] : undefined); }; return x; } transform(source, ...args) { const id = args.length ? args[0] : ''; const name = args.length > 1 ? args[1] : undefined; const headers = []; const rows = []; this.buildTable(source, rows, headers); let result = "<table style='width: 100%' id='" + id + "'>" + (name ? "<caption style='text-align:left;background-color: #c3e5e2;'>" + name + "</caption>" : "") + "<tr>"; headers.map((header) => { result += ("<th style='text-align: left;font-weight:normal;text-transform: uppercase;' scope='col'>" + header + "</th>"); }); result += "</tr>"; rows.map((row) => { result += "<tr>"; headers.map((header) => { result += ("<td>" + row[header] + "</td>"); }); result += "</tr>"; }); result += "</table>"; return result; } buildTable(source, rows, headers) { if (typeof source === 'object') { rows.push(source); this.getHeaders(source, headers); } else if (source instanceof Array) { if (typeof source[0] === 'object') { rows = source; this.getHeaders(source[0], headers); } else { source.map((item) => { rows.push({ value: item }); }); headers.push('value'); } } else { rows.push({ value: source }); headers.push('value'); } } getHeaders(obj, headers) { Object.keys(obj).map((item) => { headers.push(item); }); } } TablePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); TablePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TablePipe, name: "table" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TablePipe, decorators: [{ type: Pipe, args: [{ name: 'table' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludG8tcGlwZXMvc3JjL2xpYi90YWJsZS90YWJsZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFO0FBQ0YsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxTQUFTO0lBQ2xCLE1BQU0sQ0FBQyxvQkFBb0I7UUFDdkIsTUFBTSxDQUFDLEdBQUcsVUFBVSxPQUFZLEVBQUUsSUFBYyxFQUFFLFFBQWMsRUFBRSxJQUFVO1lBQ3hFLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNySCxDQUFDLENBQUM7UUFDRixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFDRCxTQUFTLENBQUMsTUFBVyxFQUFFLEdBQUcsSUFBVztRQUNqQyxNQUFNLEVBQUUsR0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFVLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxNQUFNLEdBQUcsaUNBQWlDLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsOERBQThELEdBQUcsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3pLLE9BQU8sQ0FBQyxHQUFHLENBQ1AsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNQLE1BQU0sSUFBSSxDQUFDLHlGQUF5RixHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQztRQUM3SCxDQUFDLENBQ0osQ0FBQztRQUNGLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FDSixDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ0osTUFBTSxJQUFJLE1BQU0sQ0FBQztZQUNqQixPQUFPLENBQUMsR0FBRyxDQUNQLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ1AsTUFBTSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQ0osQ0FBQztZQUNGLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFDdEIsQ0FBQyxDQUNKLENBQUM7UUFDRixNQUFNLElBQUksVUFBVSxDQUFDO1FBRXJCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDTyxVQUFVLENBQUMsTUFBVyxFQUFFLElBQVcsRUFBRSxPQUFpQjtRQUMxRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxNQUFNLFlBQVksS0FBSyxFQUFFO1lBQ2hDLElBQUksT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUMvQixJQUFJLEdBQUcsTUFBTSxDQUFDO2dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxHQUFHLENBQ04sQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7Z0JBQzdCLENBQUMsQ0FDSixDQUFBO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekI7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBQ08sVUFBVSxDQUFDLEdBQVEsRUFBRSxPQUFpQjtRQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FDaEIsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDOzt1R0EvRFEsU0FBUztxR0FBVCxTQUFTOzRGQUFULFNBQVM7a0JBRHJCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuKiBEZWZpbmVzIGEgZmlsdGVyIHRvIGNvbnZlcnQgdXJsIGludG8gYW4gYWRkcmVzcyBkaXNwbGF5LlxyXG4qL1xyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICd0YWJsZScgfSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgc3RhdGljIHRyYW5zZm9ybWF0aW9uTWV0aG9kKCkge1xyXG4gICAgICAgIGNvbnN0IHggPSBmdW5jdGlvbiAoY29udGVudDogYW55LCBhcmdzOiBzdHJpbmdbXSwgY2FsbGJhY2s/OiBhbnksIGRhdGE/OiBhbnkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZVBpcGUoKS50cmFuc2Zvcm0oY29udGVudCwgYXJncy5sZW5ndGggPiAxID8gYXJnc1sxXSA6ICcnLCBhcmdzLmxlbmd0aCA+IDIgPyBhcmdzWzJdIDogdW5kZWZpbmVkKTsgXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgIH1cclxuICAgIHRyYW5zZm9ybShzb3VyY2U6IGFueSwgLi4uYXJnczogYW55W10pOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IGlkPSBhcmdzLmxlbmd0aCA/IGFyZ3NbMF0gOiAnJztcclxuICAgICAgICBjb25zdCBuYW1lID0gYXJncy5sZW5ndGggPiAxID8gYXJnc1sxXSA6IHVuZGVmaW5lZDtcclxuICAgICAgICBjb25zdCBoZWFkZXJzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHJvd3M6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuYnVpbGRUYWJsZShzb3VyY2UsIHJvd3MsIGhlYWRlcnMpO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBcIjx0YWJsZSBzdHlsZT0nd2lkdGg6IDEwMCUnIGlkPSdcIiArIGlkICsgXCInPlwiICsgKG5hbWUgPyBcIjxjYXB0aW9uIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZC1jb2xvcjogI2MzZTVlMjsnPlwiICsgbmFtZSArIFwiPC9jYXB0aW9uPlwiIDogXCJcIikgKyBcIjx0cj5cIjtcclxuICAgICAgICBoZWFkZXJzLm1hcChcclxuICAgICAgICAgICAgKGhlYWRlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IChcIjx0aCBzdHlsZT0ndGV4dC1hbGlnbjogbGVmdDtmb250LXdlaWdodDpub3JtYWw7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsnIHNjb3BlPSdjb2wnPlwiICsgaGVhZGVyICsgXCI8L3RoPlwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmVzdWx0ICs9IFwiPC90cj5cIjtcclxuICAgICAgICByb3dzLm1hcChcclxuICAgICAgICAgICAgKHJvdykgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiPHRyPlwiO1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycy5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgKGhlYWRlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gKFwiPHRkPlwiICsgcm93W2hlYWRlcl0gKyBcIjwvdGQ+XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gXCI8L3RyPlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXN1bHQgKz0gXCI8L3RhYmxlPlwiO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBidWlsZFRhYmxlKHNvdXJjZTogYW55LCByb3dzOiBhbnlbXSwgaGVhZGVyczogc3RyaW5nW10pIHtcclxuICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgcm93cy5wdXNoKHNvdXJjZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SGVhZGVycyhzb3VyY2UsIGhlYWRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc291cmNlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2VbMF0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgICAgICByb3dzID0gc291cmNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRIZWFkZXJzKHNvdXJjZVswXSwgaGVhZGVycyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2UubWFwKFxyXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh7dmFsdWU6IGl0ZW19KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzLnB1c2goJ3ZhbHVlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByb3dzLnB1c2goe3ZhbHVlOiBzb3VyY2V9KTtcclxuICAgICAgICAgICAgaGVhZGVycy5wdXNoKCd2YWx1ZScpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgZ2V0SGVhZGVycyhvYmo6IGFueSwgaGVhZGVyczogc3RyaW5nW10pIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhvYmopLm1hcChcclxuICAgICAgICAgICAgKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnMucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19