UNPKG

ontotext-reusable-ui-components

Version:

Unified reusable UI components designed for the Ontotext ecosystem.

34 lines 5.69 kB
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