@nakedobjects/gemini
Version:
Single Page Application client for a Naked Objects application.
31 lines • 6.56 kB
JavaScript
import { Component, Input } from '@angular/core';
import { CollectionViewState } from '@nakedobjects/services';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
export class HeaderComponent {
collection;
state;
allSelected = () => this.collection.allSelected();
selectAll = () => this.collection.selectAll();
itemId = () => `${this.collection.name}${this.collection.onPaneId}-all`;
noItems() {
return !this.collection.items || this.collection.items.length === 0;
}
showAllCheckbox = () => !(this.collection.noActions() || this.noItems());
get header() {
return this.state === CollectionViewState.Table ? this.collection.header : null;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: HeaderComponent, selector: "[nof-header]", inputs: { collection: "collection", state: "state" }, ngImport: i0, template: "<th *ngIf=\"showAllCheckbox()\">\n <input type=\"checkbox\" [id]=\"itemId()\" [ngModel]=\"allSelected()\" (click)=\"selectAll()\" title=\"All\" />\n</th>\n<ng-container *ngIf=\"header\">\n <th *ngFor=\"let heading of header\" scope=\"col\">{{heading}}</th>\n</ng-container>\n", styles: ["th{font-size:var(--font-size-2);font-weight:var(--font-weight-1);text-align:left;padding-left:var(--space-3);padding-right:var(--space-3);vertical-align:top}\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"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HeaderComponent, decorators: [{
type: Component,
args: [{ selector: '[nof-header]', template: "<th *ngIf=\"showAllCheckbox()\">\n <input type=\"checkbox\" [id]=\"itemId()\" [ngModel]=\"allSelected()\" (click)=\"selectAll()\" title=\"All\" />\n</th>\n<ng-container *ngIf=\"header\">\n <th *ngFor=\"let heading of header\" scope=\"col\">{{heading}}</th>\n</ng-container>\n", styles: ["th{font-size:var(--font-size-2);font-weight:var(--font-weight-1);text-align:left;padding-left:var(--space-3);padding-right:var(--space-3);vertical-align:top}\n"] }]
}], propDecorators: { collection: [{
type: Input,
args: [{ required: true }]
}], state: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2dlbWluaS9zcmMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFTN0QsTUFBTSxPQUFPLGVBQWU7SUFHeEIsVUFBVSxDQUF1QztJQUdqRCxLQUFLLENBQXVCO0lBRTVCLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xELFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRTlDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxNQUFNLENBQUM7SUFFaEUsT0FBTztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxlQUFlLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFekUsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwRixDQUFDO3VHQXJCUSxlQUFlOzJGQUFmLGVBQWUsMEdDVjVCLDJSQU1BOzsyRkRJYSxlQUFlO2tCQU4zQixTQUFTOytCQUVJLGNBQWM7OEJBT3hCLFVBQVU7c0JBRFQsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBSXZCLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbGxlY3Rpb25WaWV3U3RhdGUgfSBmcm9tICdAbmFrZWRvYmplY3RzL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbGxlY3Rpb25WaWV3TW9kZWwsIExpc3RWaWV3TW9kZWwgfSBmcm9tICdAbmFrZWRvYmplY3RzL3ZpZXctbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tub2YtaGVhZGVyXScsXG4gICAgdGVtcGxhdGVVcmw6ICdoZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydoZWFkZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSlcbiAgICBjb2xsZWN0aW9uITogQ29sbGVjdGlvblZpZXdNb2RlbCB8IExpc3RWaWV3TW9kZWw7XG5cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlPzogQ29sbGVjdGlvblZpZXdTdGF0ZTtcblxuICAgIGFsbFNlbGVjdGVkID0gKCkgPT4gdGhpcy5jb2xsZWN0aW9uLmFsbFNlbGVjdGVkKCk7XG4gICAgc2VsZWN0QWxsID0gKCkgPT4gdGhpcy5jb2xsZWN0aW9uLnNlbGVjdEFsbCgpO1xuXG4gICAgaXRlbUlkID0gKCkgPT4gYCR7dGhpcy5jb2xsZWN0aW9uLm5hbWV9JHt0aGlzLmNvbGxlY3Rpb24ub25QYW5lSWR9LWFsbGA7XG5cbiAgICBwcml2YXRlIG5vSXRlbXMoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb2xsZWN0aW9uLml0ZW1zIHx8IHRoaXMuY29sbGVjdGlvbi5pdGVtcy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgc2hvd0FsbENoZWNrYm94ID0gKCkgPT4gISh0aGlzLmNvbGxlY3Rpb24ubm9BY3Rpb25zKCkgfHwgdGhpcy5ub0l0ZW1zKCkpO1xuXG4gICAgZ2V0IGhlYWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENvbGxlY3Rpb25WaWV3U3RhdGUuVGFibGUgPyB0aGlzLmNvbGxlY3Rpb24uaGVhZGVyIDogbnVsbDtcbiAgICB9XG59XG4iLCI8dGggKm5nSWY9XCJzaG93QWxsQ2hlY2tib3goKVwiPlxuICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbaWRdPVwiaXRlbUlkKClcIiBbbmdNb2RlbF09XCJhbGxTZWxlY3RlZCgpXCIgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCIgdGl0bGU9XCJBbGxcIiAvPlxuPC90aD5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJcIj5cbiAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRpbmcgb2YgaGVhZGVyXCIgc2NvcGU9XCJjb2xcIj57e2hlYWRpbmd9fTwvdGg+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==