ontotext-reusable-ui-components
Version:
Unified reusable UI components designed for the Ontotext ecosystem.
34 lines • 5.69 kB
JavaScript
import { Component, Input } from '@angular/core';
import { OntoSearchFacetComponent } from '../onto-search-facet.component';
export class CheckboxFacetComponent extends OntoSearchFacetComponent {
ngOnChanges(changes) {
super.ngOnChanges(changes);
this.facetGroup.forEach((facet) => facet.selected = this.selected.includes(facet));
}
updateAllSelected(facet) {
const index = this.selected && this.selected.indexOf(facet);
if (index > -1) {
this.selected.splice(index, 1);
facet.selected = false;
}
else {
this.selected.push(facet);
facet.selected = true;
}
const count = this.selected.map((selectedItem) => selectedItem.count)
.reduce((totalCount, itemCount) => totalCount + itemCount, 0);
this.onSelectionChange.emit({ name: this.facetGroupName, selected: this.selected, count });
}
}
CheckboxFacetComponent.decorators = [
{ type: Component, args: [{
selector: 'onto-checkbox-facet',
template: "<div class=\"checkbox-facet\">\n <div appCypressData=\"checkbox-facet-title\">\n <ng-container *ngTemplateOutlet=\"facetTitleTemplate; context: {$implicit: facetGroupName}\">\n </ng-container>\n </div>\n <div class=\"checkbox-facet-list\" appCypressData=\"checkbox-facet-list\">\n <div *ngFor=\"let facet of facetGroup; let index = index\">\n <mat-checkbox\n [checked]=\"facet.selected\"\n (change)=\"updateAllSelected(facet)\"\n [attr.appCypressData]=\"'checkbox-facet-' + index\">\n <ng-container *ngTemplateOutlet=\"facetTemplate; context: {$implicit: facet}\">\n </ng-container>\n </mat-checkbox>\n </div>\n </div>\n</div>\n"
},] }
];
CheckboxFacetComponent.propDecorators = {
facetTemplate: [{ type: Input }],
facetTitleTemplate: [{ type: Input }],
type: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZmFjZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9vcHQvamVua2luc19qb2JzL3dvcmtzcGFjZS9yZXVzYWJsZS11aS1jb21wb25lbnRzLXJlbGVhc2UvcHJvamVjdHMvb250by1zZWFyY2gvc3JjLyIsInNvdXJjZXMiOlsibGliL29udG8tc2VhcmNoLWZhY2V0L2NoZWNrYm94LWZhY2V0L2NoZWNrYm94LWZhY2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFReEUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQVVsRSxXQUFXLENBQUMsT0FBc0I7UUFDaEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFHTSxpQkFBaUIsQ0FBQyxLQUF1QjtRQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9CLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3hCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO2FBQ2hFLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQiw4c0JBQThDO2FBQy9DOzs7NEJBRUUsS0FBSztpQ0FHTCxLQUFLO21CQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPbnRvU2VhcmNoRmFjZXRDb21wb25lbnR9IGZyb20gJy4uL29udG8tc2VhcmNoLWZhY2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge1NlYXJjaEZhY2V0VHlwZX0gZnJvbSAnLi4vbW9kZWxzL3NlYXJjaC1mYWNldC10eXBlJztcbmltcG9ydCB7U2VhcmNoRmFjZXRNb2RlbH0gZnJvbSAnLi4vbW9kZWxzL3NlYXJjaC1mYWNldC1tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29udG8tY2hlY2tib3gtZmFjZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtZmFjZXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94RmFjZXRDb21wb25lbnQgZXh0ZW5kcyBPbnRvU2VhcmNoRmFjZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmFjZXRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmFjZXRUaXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0eXBlOiBTZWFyY2hGYWNldFR5cGU7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgIHRoaXMuZmFjZXRHcm91cC5mb3JFYWNoKChmYWNldCkgPT4gZmFjZXQuc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkLmluY2x1ZGVzKGZhY2V0KSk7XG4gIH1cblxuXG4gIHB1YmxpYyB1cGRhdGVBbGxTZWxlY3RlZChmYWNldDogU2VhcmNoRmFjZXRNb2RlbCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZCAmJiB0aGlzLnNlbGVjdGVkLmluZGV4T2YoZmFjZXQpO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBmYWNldC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnB1c2goZmFjZXQpO1xuICAgICAgZmFjZXQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjb3VudCA9IHRoaXMuc2VsZWN0ZWQubWFwKChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5jb3VudClcbiAgICAgICAgLnJlZHVjZSgodG90YWxDb3VudCwgaXRlbUNvdW50KSA9PiB0b3RhbENvdW50ICsgaXRlbUNvdW50LCAwKTtcblxuICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7bmFtZTogdGhpcy5mYWNldEdyb3VwTmFtZSwgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsIGNvdW50fSk7XG4gIH1cbn1cblxuIl19