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?

65 lines 10.6 kB
import { Component, EventEmitter } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class TableComponent { constructor() { this.headers = []; this.rows = []; this.disabled = false; this.active = true; this.validate = (item, newValue) => true; this.onIntoComponentChange = new EventEmitter(); } static settingsPatterns() { return ['table::']; //id, name } transform(source, data, args) { this.source = source; this.id = args.length ? args[0] : ''; this.name = args.length > 1 ? args[1] : undefined; if (typeof source === 'object') { this.rows.push(source); this.getHeaders(source); } else if (source instanceof Array) { if (typeof source[0] === 'object') { this.rows = source; this.getHeaders(source[0]); } else { source.map((item) => { this.rows.push({ value: item }); }); this.headers.push('value'); } } else { this.rows.push({ value: source }); this.headers.push('value'); } } getHeaders(obj) { Object.keys(obj).map((item) => { this.headers.push(item); }); } } TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableComponent, selector: "table-component", ngImport: i0, template: ` <table [id]="id" class="piped-table"> <caption *ngIf="name" [textContent]="name"></caption> <tr><th scope="col" *ngFor="let header of headers" [textContent]="header"></th></tr> <tr *ngFor="let row of rows"><td *ngFor="let header of headers" [textContent]="row[header]"></td></tr> </table> `, isInline: true, styles: [":host .piped-table{padding:0;width:100%;border-collapse:collapse}:host .piped-table caption{background-color:var(--sedeh-caption-background-color, #c3e5e2);border-radius:2px;color:var(--sedeh-caption-color, #1b1b1b);caption-side:top;font-size:14px;padding:var(--sedeh-padding, 5px);margin-bottom:var(--sedeh-margin-bottom, 5px);text-align:left}:host .piped-table th{-webkit-user-select:none;user-select:none;height:24px;position:relative;white-space:nowrap;font-weight:400;text-transform:uppercase;font-size:14px;padding-top:var(--sedeh-padding-top, 5px);padding-bottom:var(--sedeh-padding-bottom, 5px);text-align:left}:host .piped-table td{padding-left:3px;min-height:var(--sedeh-min-height, 25px)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, decorators: [{ type: Component, args: [{ selector: 'table-component', template: ` <table [id]="id" class="piped-table"> <caption *ngIf="name" [textContent]="name"></caption> <tr><th scope="col" *ngFor="let header of headers" [textContent]="header"></th></tr> <tr *ngFor="let row of rows"><td *ngFor="let header of headers" [textContent]="row[header]"></td></tr> </table> `, styles: [":host .piped-table{padding:0;width:100%;border-collapse:collapse}:host .piped-table caption{background-color:var(--sedeh-caption-background-color, #c3e5e2);border-radius:2px;color:var(--sedeh-caption-color, #1b1b1b);caption-side:top;font-size:14px;padding:var(--sedeh-padding, 5px);margin-bottom:var(--sedeh-margin-bottom, 5px);text-align:left}:host .piped-table th{-webkit-user-select:none;user-select:none;height:24px;position:relative;white-space:nowrap;font-weight:400;text-transform:uppercase;font-size:14px;padding-top:var(--sedeh-padding-top, 5px);padding-bottom:var(--sedeh-padding-bottom, 5px);text-align:left}:host .piped-table td{padding-left:3px;min-height:var(--sedeh-min-height, 25px)}\n"] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW50by1waXBlcy9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBcUJ4RCxNQUFNLE9BQU8sY0FBYztJQWxCM0I7UUFzQkksWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixTQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGFBQVEsR0FBRyxDQUFDLElBQVMsRUFBRSxRQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztRQUVqRCwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBcUMzQztJQW5DRyxNQUFNLENBQUMsZ0JBQWdCO1FBQ25CLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7SUFDbEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFXLEVBQUUsSUFBUyxFQUFFLElBQVc7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRSxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLEVBQUUsR0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNCO2FBQU0sSUFBSSxNQUFNLFlBQVksS0FBSyxFQUFFO1lBQ2hDLElBQUksT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM5QjtpQkFBTTtnQkFDSCxNQUFNLENBQUMsR0FBRyxDQUNOLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUNKLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDOUI7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFDTyxVQUFVLENBQUMsR0FBUTtRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FDaEIsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7NEdBOUNRLGNBQWM7Z0dBQWQsY0FBYyx1REFoQmI7Ozs7OztLQU1UOzRGQVVRLGNBQWM7a0JBbEIxQixTQUFTOytCQUNJLGlCQUFpQixZQUNqQjs7Ozs7O0tBTVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQaXBlQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vY29tbW9uL3BpcGUuY29tcG9uZW50LmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGFibGUtY29tcG9uZW50JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8dGFibGUgW2lkXT1cImlkXCIgY2xhc3M9XCJwaXBlZC10YWJsZVwiPlxyXG4gICAgICAgIDxjYXB0aW9uICpuZ0lmPVwibmFtZVwiIFt0ZXh0Q29udGVudF09XCJuYW1lXCI+PC9jYXB0aW9uPlxyXG4gICAgICAgIDx0cj48dGggc2NvcGU9XCJjb2xcIiAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIGhlYWRlcnNcIiBbdGV4dENvbnRlbnRdPVwiaGVhZGVyXCI+PC90aD48L3RyPlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIj48dGQgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCIgW3RleHRDb250ZW50XT1cInJvd1toZWFkZXJdXCI+PC90ZD48L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtcclxuICAgICAgICBgXHJcbiAgICAgICAgOmhvc3QgLnBpcGVkLXRhYmxlIHtwYWRkaW5nOiAwO3dpZHRoOiAxMDAlO2JvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7fVxyXG4gICAgICAgIDpob3N0IC5waXBlZC10YWJsZSBjYXB0aW9uIHtiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWRlaC1jYXB0aW9uLWJhY2tncm91bmQtY29sb3IsICNjM2U1ZTIpO2JvcmRlci1yYWRpdXM6IDJweDtjb2xvcjogdmFyKC0tc2VkZWgtY2FwdGlvbi1jb2xvciwgIzFiMWIxYik7Y2FwdGlvbi1zaWRlOiB0b3A7Zm9udC1zaXplOiAxNHB4O3BhZGRpbmc6IHZhcigtLXNlZGVoLXBhZGRpbmcsIDVweCk7bWFyZ2luLWJvdHRvbTogdmFyKC0tc2VkZWgtbWFyZ2luLWJvdHRvbSwgNXB4KTt0ZXh0LWFsaWduOiBsZWZ0O31cclxuICAgICAgICA6aG9zdCAucGlwZWQtdGFibGUgdGgge3VzZXItc2VsZWN0OiBub25lO2hlaWdodDogMjRweDtwb3NpdGlvbjogcmVsYXRpdmU7d2hpdGUtc3BhY2U6IG5vd3JhcDtmb250LXdlaWdodDogbm9ybWFsO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Zm9udC1zaXplOiAxNHB4O3BhZGRpbmctdG9wOiB2YXIoLS1zZWRlaC1wYWRkaW5nLXRvcCwgNXB4KTtwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2VkZWgtcGFkZGluZy1ib3R0b20sIDVweCk7dGV4dC1hbGlnbjogbGVmdDt9XHJcbiAgICAgICAgOmhvc3QgLnBpcGVkLXRhYmxlIHRkIHtwYWRkaW5nLWxlZnQ6IDNweDttaW4taGVpZ2h0OiB2YXIoLS1zZWRlaC1taW4taGVpZ2h0LCAyNXB4KTt9XHJcbiAgICAgICAgYFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBQaXBlQ29tcG9uZW50SW50ZXJmYWNlIHtcclxuICAgIHNvdXJjZSE6IHN0cmluZztcclxuICAgIGlkITogc3RyaW5nO1xyXG4gICAgbmFtZSE6IHN0cmluZztcclxuICAgIGhlYWRlcnM6IGFueVtdID0gW107XHJcbiAgICByb3dzOiBhbnlbXSA9IFtdO1xyXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIGFjdGl2ZSA9IHRydWU7XHJcbiAgICB2YWxpZGF0ZSA9IChpdGVtOiBhbnksIG5ld1ZhbHVlOiBhbnkpID0+IHRydWU7XHJcblxyXG5cdG9uSW50b0NvbXBvbmVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBzdGF0aWMgc2V0dGluZ3NQYXR0ZXJucygpIHtcclxuICAgICAgICByZXR1cm4gWyd0YWJsZTo6J107IC8vaWQsIG5hbWVcclxuICAgIH1cclxuICAgIHRyYW5zZm9ybShzb3VyY2U6IGFueSwgZGF0YTogYW55LCBhcmdzOiBhbnlbXSkge1xyXG4gICAgICAgIHRoaXMuc291cmNlPSBzb3VyY2U7XHJcbiAgICAgICAgdGhpcy5pZD0gYXJncy5sZW5ndGggPyBhcmdzWzBdIDogJyc7XHJcbiAgICAgICAgdGhpcy5uYW1lPSBhcmdzLmxlbmd0aCA+IDEgPyBhcmdzWzFdIDogdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgdGhpcy5yb3dzLnB1c2goc291cmNlKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRIZWFkZXJzKHNvdXJjZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNvdXJjZVswXSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm93cyA9IHNvdXJjZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0SGVhZGVycyhzb3VyY2VbMF0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgc291cmNlLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd3MucHVzaCh7dmFsdWU6IGl0ZW19KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlcnMucHVzaCgndmFsdWUnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucm93cy5wdXNoKHt2YWx1ZTogc291cmNlfSk7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhZGVycy5wdXNoKCd2YWx1ZScpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgZ2V0SGVhZGVycyhvYmo6IGFueSkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKG9iaikubWFwKFxyXG4gICAgICAgICAgICAoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==