carbon-components-angular
Version:
Next generation components
77 lines • 7.3 kB
JavaScript
import { Component, HostBinding, ContentChildren, Input } from "@angular/core";
import { ListColumn } from "./list-column.component";
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
/**
* `ListHeader` provides a container for the `ListColumn`s that make up the header of a structured list.
*
* Example:
* ```html
* <cds-list-header>
* <cds-list-column nowrap="true">Column 1</cds-list-column>
* <cds-list-column nowrap="true">Column 2</cds-list-column>
* <cds-list-column>Column 3</cds-list-column>
* </cds-list-header>
* ```
*/
export class ListHeader {
constructor() {
this.wrapper = true;
this.role = "rowgroup";
/**
* Set by the containing `StructuredList`. Adds a dummy header for the selection column when set to true.
*/
this.selection = false;
this._skeleton = false;
}
set skeleton(value) {
this._skeleton = value;
this.updateChildren();
}
get skeleton() {
return this._skeleton;
}
ngAfterContentInit() {
this.columns.forEach(column => {
column.isBodyColumn = false;
column.isHeaderColumn = true;
});
this.updateChildren();
}
updateChildren() {
if (this.columns) {
this.columns.toArray().forEach(child => child.skeleton = this.skeleton);
}
}
}
ListHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ListHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
ListHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ListHeader, selector: "cds-list-header, ibm-list-header", inputs: { skeleton: "skeleton" }, host: { properties: { "class.cds--structured-list-thead": "this.wrapper", "attr.role": "this.role" } }, queries: [{ propertyName: "columns", predicate: ListColumn }], ngImport: i0, template: `
<div class="cds--structured-list-row cds--structured-list-row--header-row" role="row">
<ng-content></ng-content>
<div *ngIf="selection" class="cds--structured-list-th"></div>
</div>
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ListHeader, decorators: [{
type: Component,
args: [{
selector: "cds-list-header, ibm-list-header",
template: `
<div class="cds--structured-list-row cds--structured-list-row--header-row" role="row">
<ng-content></ng-content>
<div *ngIf="selection" class="cds--structured-list-th"></div>
</div>
`
}]
}], propDecorators: { wrapper: [{
type: HostBinding,
args: ["class.cds--structured-list-thead"]
}], role: [{
type: HostBinding,
args: ["attr.role"]
}], skeleton: [{
type: Input
}], columns: [{
type: ContentChildren,
args: [ListColumn]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0cnVjdHVyZWQtbGlzdC9saXN0LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsZUFBZSxFQUdmLEtBQUssRUFDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUVyRDs7Ozs7Ozs7Ozs7R0FXRztBQVVILE1BQU0sT0FBTyxVQUFVO0lBVHZCO1FBVWtELFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDdEMsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQWM1Qzs7V0FFRztRQUNILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFUixjQUFTLEdBQUcsS0FBSyxDQUFDO0tBZTVCO0lBaENBLElBQ0ksUUFBUSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQVdELGtCQUFrQjtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixNQUFNLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUM1QixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVMsY0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4RTtJQUNGLENBQUM7O3VHQW5DVyxVQUFVOzJGQUFWLFVBQVUsME9BY0wsVUFBVSw2QkFyQmpCOzs7OztFQUtUOzJGQUVXLFVBQVU7a0JBVHRCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsUUFBUSxFQUFFOzs7OztFQUtUO2lCQUNEOzhCQUVpRCxPQUFPO3NCQUF2RCxXQUFXO3VCQUFDLGtDQUFrQztnQkFDckIsSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUdwQixRQUFRO3NCQURYLEtBQUs7Z0JBVXVCLE9BQU87c0JBQW5DLGVBQWU7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SG9zdEJpbmRpbmcsXG5cdENvbnRlbnRDaGlsZHJlbixcblx0UXVlcnlMaXN0LFxuXHRBZnRlckNvbnRlbnRJbml0LFxuXHRJbnB1dFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTGlzdENvbHVtbiB9IGZyb20gXCIuL2xpc3QtY29sdW1uLmNvbXBvbmVudFwiO1xuXG4vKipcbiAqIGBMaXN0SGVhZGVyYCBwcm92aWRlcyBhIGNvbnRhaW5lciBmb3IgdGhlIGBMaXN0Q29sdW1uYHMgdGhhdCBtYWtlIHVwIHRoZSBoZWFkZXIgb2YgYSBzdHJ1Y3R1cmVkIGxpc3QuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYGh0bWxcbiAqIFx0PGNkcy1saXN0LWhlYWRlcj5cbiAqXHRcdDxjZHMtbGlzdC1jb2x1bW4gbm93cmFwPVwidHJ1ZVwiPkNvbHVtbiAxPC9jZHMtbGlzdC1jb2x1bW4+XG4gKlx0XHQ8Y2RzLWxpc3QtY29sdW1uIG5vd3JhcD1cInRydWVcIj5Db2x1bW4gMjwvY2RzLWxpc3QtY29sdW1uPlxuICpcdFx0PGNkcy1saXN0LWNvbHVtbj5Db2x1bW4gMzwvY2RzLWxpc3QtY29sdW1uPlxuICpcdDwvY2RzLWxpc3QtaGVhZGVyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtbGlzdC1oZWFkZXIsIGlibS1saXN0LWhlYWRlclwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJjZHMtLXN0cnVjdHVyZWQtbGlzdC1yb3cgY2RzLS1zdHJ1Y3R1cmVkLWxpc3Qtcm93LS1oZWFkZXItcm93XCIgcm9sZT1cInJvd1wiPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdFx0PGRpdiAqbmdJZj1cInNlbGVjdGlvblwiIGNsYXNzPVwiY2RzLS1zdHJ1Y3R1cmVkLWxpc3QtdGhcIj48L2Rpdj5cblx0XHQ8L2Rpdj5cblx0YFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0SGVhZGVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tc3RydWN0dXJlZC1saXN0LXRoZWFkXCIpIHdyYXBwZXIgPSB0cnVlO1xuXHRASG9zdEJpbmRpbmcoXCJhdHRyLnJvbGVcIikgcm9sZSA9IFwicm93Z3JvdXBcIjtcblxuXHRASW5wdXQoKVxuXHRzZXQgc2tlbGV0b24odmFsdWU6IGFueSkge1xuXHRcdHRoaXMuX3NrZWxldG9uID0gdmFsdWU7XG5cdFx0dGhpcy51cGRhdGVDaGlsZHJlbigpO1xuXHR9XG5cblx0Z2V0IHNrZWxldG9uKCk6IGFueSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NrZWxldG9uO1xuXHR9XG5cblx0QENvbnRlbnRDaGlsZHJlbihMaXN0Q29sdW1uKSBjb2x1bW5zOiBRdWVyeUxpc3Q8TGlzdENvbHVtbj47XG5cblx0LyoqXG5cdCAqIFNldCBieSB0aGUgY29udGFpbmluZyBgU3RydWN0dXJlZExpc3RgLiBBZGRzIGEgZHVtbXkgaGVhZGVyIGZvciB0aGUgc2VsZWN0aW9uIGNvbHVtbiB3aGVuIHNldCB0byB0cnVlLlxuXHQgKi9cblx0c2VsZWN0aW9uID0gZmFsc2U7XG5cblx0cHJvdGVjdGVkIF9za2VsZXRvbiA9IGZhbHNlO1xuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHR0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuXHRcdFx0Y29sdW1uLmlzQm9keUNvbHVtbiA9IGZhbHNlO1xuXHRcdFx0Y29sdW1uLmlzSGVhZGVyQ29sdW1uID0gdHJ1ZTtcblx0XHR9KTtcblx0XHR0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgdXBkYXRlQ2hpbGRyZW4oKSB7XG5cdFx0aWYgKHRoaXMuY29sdW1ucykge1xuXHRcdFx0dGhpcy5jb2x1bW5zLnRvQXJyYXkoKS5mb3JFYWNoKGNoaWxkID0+IGNoaWxkLnNrZWxldG9uID0gdGhpcy5za2VsZXRvbik7XG5cdFx0fVxuXHR9XG59XG4iXX0=