ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
51 lines (50 loc) • 5.96 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, Input } from "@angular/core";
import { map, orderBy } from "lodash";
export class XmatSimpleTableComponent {
constructor() {
this.displayedCols = [];
}
/**
* @param {?} newValue
* @return {?}
*/
set config(newValue) {
this._config = void 0;
if (newValue) {
if (Array.isArray(newValue.cols)) {
this._config = Object.assign({ tdKlass: "", thKlass: "" }, newValue);
this.displayedCols = map(orderBy(newValue.cols, c => c.order), (c => c.key)); // flattened array of keys
this._config.cols = map(newValue.cols, (c) => (Object.assign({ tdKlass: "", thKlass: "" }, c, { key: c.key, label: c.label })));
}
}
}
/**
* @return {?}
*/
get config() {
return this._config;
}
}
XmatSimpleTableComponent.decorators = [
{ type: Component, args: [{
selector: "xmat-simple-table",
template: "<mat-table *ngIf=\"config?.dataSource\"\n [dataSource]=\"config.dataSource\">\n\n <ng-container *ngFor=\"let col of config.cols\">\n <ng-container [matColumnDef]=\"col.key\">\n <mat-header-cell *matHeaderCellDef\n [ngClass]=\"[col.thKlass, config.thKlass]\">\n <span>\n {{col.label}}\n </span>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let row;\"\n [ngClass]=\"[col.tdKlass, config.tdKlass]\">\n <span *ngIf=\"!col.isHTML\">\n {{row[col.key] || col.ifEmpty}}\n </span>\n <span *ngIf=\"col.isHTML\"\n [innerHTML]=\"row[col.key] || col.ifEmpty\">\n </span>\n </mat-cell>\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedCols\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedCols;\">\n </mat-row>\n</mat-table>\n",
styles: [""]
}] }
];
/** @nocollapse */
XmatSimpleTableComponent.ctorParameters = () => [];
XmatSimpleTableComponent.propDecorators = {
config: [{ type: Input }]
};
if (false) {
/** @type {?} */
XmatSimpleTableComponent.prototype.displayedCols;
/** @type {?} */
XmatSimpleTableComponent.prototype._config;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC1zaW1wbGUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdC1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy94bWF0LXNpbXBsZS10YWJsZS94bWF0LXNpbXBsZS10YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE9BQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBT3BDLE1BQU0sT0FBTyx3QkFBd0I7SUFpQ2pDO1FBSkEscUJBQTBCLEVBQUUsQ0FBQztLQU01Qjs7Ozs7SUFqQ0QsSUFDSSxNQUFNLENBQUMsUUFBeUI7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN0QixJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxPQUFPLG1CQUNSLE9BQU8sRUFBRSxFQUFFLEVBQ1gsT0FBTyxFQUFFLEVBQUUsSUFDUixRQUFRLENBQ2QsQ0FBQztnQkFDRixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBcUIsRUFBRSxFQUFFLENBQUMsaUJBQzlELE9BQU8sRUFBRSxFQUFFLEVBQ1gsT0FBTyxFQUFFLEVBQUUsSUFDUixDQUFDLElBQ0osR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQ1YsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQ2hCLENBQUMsQ0FBQzthQUVQO1NBQ0o7S0FDSjs7OztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztLQUN2Qjs7O1lBaENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qix3aUNBQWlEOzthQUVwRDs7Ozs7cUJBR0ksS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbi8vIFhNQVQgTU9ERUxTXG5pbXBvcnQge1htYXRTaW1wbGVUYWJsZSwgWG1hdFNpbXBsZVRhYmxlQ29sfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3htYXQtc2ltcGxlLXRhYmxlLm1vZGVsXCI7XG4vL1xuaW1wb3J0IHttYXAsIG9yZGVyQnl9IGZyb20gXCJsb2Rhc2hcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwieG1hdC1zaW1wbGUtdGFibGVcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3htYXQtc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3htYXQtc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFhtYXRTaW1wbGVUYWJsZUNvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb25maWcobmV3VmFsdWU6IFhtYXRTaW1wbGVUYWJsZSkge1xuICAgICAgICB0aGlzLl9jb25maWcgPSB2b2lkIDA7XG4gICAgICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUuY29scykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIHRkS2xhc3M6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHRoS2xhc3M6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIC4uLm5ld1ZhbHVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXllZENvbHMgPSBtYXAob3JkZXJCeShuZXdWYWx1ZS5jb2xzLCBjID0+IGMub3JkZXIpLCAoYyA9PiBjLmtleSkpOyAvLyBmbGF0dGVuZWQgYXJyYXkgb2Yga2V5c1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5jb2xzID0gbWFwKG5ld1ZhbHVlLmNvbHMsIChjOiBYbWF0U2ltcGxlVGFibGVDb2wpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHRkS2xhc3M6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHRoS2xhc3M6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICAgICAgICAgIGtleTogYy5rZXksXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjLmxhYmVsLFxuICAgICAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGNvbmZpZygpOiBYbWF0U2ltcGxlVGFibGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICAgIH1cblxuICAgIGRpc3BsYXllZENvbHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBwcml2YXRlIF9jb25maWc6IFhtYXRTaW1wbGVUYWJsZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgfVxufVxuIl19