UNPKG

ontotext-reusable-ui-components

Version:

Unified reusable UI components designed for the Ontotext ecosystem.

81 lines 9.84 kB
import { Component, EventEmitter, Input, KeyValueDiffers, Output } from '@angular/core'; export class OntoSearchPaginatorComponent { constructor(keyValueDiffer) { this.keyValueDiffer = keyValueDiffer; /** * Fires when there is a change to page or page size. * Emits an {@link PaginatorData} object */ this.pageChanged = new EventEmitter(); // Default and initial values this.length = 0; this.pageSize = 10; this.pageSizeOptions = [5, 10, 20]; this.pageIndex = 0; } /** * Takes care of change detection in pageOptions properties */ ngDoCheck() { if (this.paginatorDataDiff) { const changes = this.paginatorDataDiff.diff(this.paginatorData); if (changes) { this.configurationChanged(changes); } } } /** * Monitors changes to inputs and sets corresponding internal properties * @param changes - input changes */ ngOnChanges(changes) { if (changes.paginatorData && changes.paginatorData.currentValue) { this.paginatorDataDiff = this.keyValueDiffer.find(this.paginatorData).create(); this.setInternalPaginatorDataProperties(this.paginatorData); } if (changes.pageOptions && changes.pageOptions.currentValue) { this.pageSizeOptions = changes.pageOptions.currentValue; } } onPageChanged(pageEvent) { const pageData = { pageIndex: pageEvent.pageIndex, pageSize: pageEvent.pageSize, length: pageEvent.length }; this.pageChanged.next(pageData); } /** * Applies changes from pageOption to internal properties * @param changes - contains changes of pageOption properties */ configurationChanged(changes) { changes.forEachChangedItem((change) => { this.setClassProperty(change.key, change.currentValue); }); } setInternalPaginatorDataProperties(paginatorData) { Object.keys(paginatorData).forEach((key) => { this.setClassProperty(key, paginatorData[key]); }); } setClassProperty(key, value) { this[key] = value; } } OntoSearchPaginatorComponent.decorators = [ { type: Component, args: [{ selector: 'onto-search-paginator', template: "<div class=\"paginator-component\" appCypressData=\"paginator-component\">\n <mat-paginator [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"pageIndex\"\n [showFirstLastButtons]=\"true\"\n (page)=\"onPageChanged($event)\" appCypressData=\"onto-paginator\"></mat-paginator>\n</div>\n", styles: [":host{width:100%}"] },] } ]; OntoSearchPaginatorComponent.ctorParameters = () => [ { type: KeyValueDiffers } ]; OntoSearchPaginatorComponent.propDecorators = { paginatorData: [{ type: Input }], pageOptions: [{ type: Input }], pageChanged: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib250by1zZWFyY2gtcGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2plbmtpbnNfam9icy93b3Jrc3BhY2UvcmV1c2FibGUtdWktY29tcG9uZW50cy1yZWxlYXNlL3Byb2plY3RzL29udG8tc2VhcmNoL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9vbnRvLXNlYXJjaC1wYWdpbmF0b3Ivb250by1zZWFyY2gtcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsZUFBZSxFQUVmLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQVN2QixNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUFvQixjQUErQjtRQUEvQixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFmbkQ7OztXQUdHO1FBRUgsZ0JBQVcsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFN0UsNkJBQTZCO1FBQzdCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixvQkFBZSxHQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxjQUFTLEdBQVcsQ0FBQyxDQUFDO0lBS3RCLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNoRSxJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDcEM7U0FDRjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQy9ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM3RDtRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtZQUMzRCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFvQjtRQUNoQyxNQUFNLFFBQVEsR0FBa0I7WUFDOUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1lBQzlCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07U0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxvQkFBb0IsQ0FBQyxPQUFxQztRQUNoRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0NBQWtDLENBQUMsYUFBYTtRQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEtBQUs7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7WUF6RkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLDRhQUFxRDs7YUFFdEQ7OztZQVpDLGVBQWU7Ozs0QkFpQmQsS0FBSzswQkFNTCxLQUFLOzBCQU9MLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIEtleVZhbHVlQ2hhbmdlcyxcbiAgS2V5VmFsdWVEaWZmZXIsXG4gIEtleVZhbHVlRGlmZmVycyxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZ2VFdmVudH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7UGFnaW5hdG9yRGF0YX0gZnJvbSAnLi9tb2RlbHMvb250by1zZWFyY2gtcGFnaW5hdG9yLW1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29udG8tc2VhcmNoLXBhZ2luYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vbnRvLXNlYXJjaC1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vbnRvLXNlYXJjaC1wYWdpbmF0b3IuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPbnRvU2VhcmNoUGFnaW5hdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBEb0NoZWNrIHtcbiAgLyoqXG4gICAqIFBhZ2luYXRvciBkYXRhXG4gICAqL1xuICBASW5wdXQoKVxuICBwYWdpbmF0b3JEYXRhOiBQYWdpbmF0b3JEYXRhO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBwYWdlIHNpemUgb3B0aW9ucy4gRGVmYXVsdCBpcyBbNSwgMTAsIDIwXVxuICAgKi9cbiAgQElucHV0KClcbiAgcGFnZU9wdGlvbnM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlIHRvIHBhZ2Ugb3IgcGFnZSBzaXplLlxuICAgKiBFbWl0cyBhbiB7QGxpbmsgUGFnaW5hdG9yRGF0YX0gb2JqZWN0XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcGFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxQYWdpbmF0b3JEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yRGF0YT4oKTtcblxuICAvLyBEZWZhdWx0IGFuZCBpbml0aWFsIHZhbHVlc1xuICBsZW5ndGg6IG51bWJlciA9IDA7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSAxMDtcbiAgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjBdO1xuICBwYWdlSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBwYWdpbmF0b3JEYXRhRGlmZjogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUga2V5VmFsdWVEaWZmZXI6IEtleVZhbHVlRGlmZmVycykge1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGNhcmUgb2YgY2hhbmdlIGRldGVjdGlvbiBpbiBwYWdlT3B0aW9ucyBwcm9wZXJ0aWVzXG4gICAqL1xuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFnaW5hdG9yRGF0YURpZmYpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLnBhZ2luYXRvckRhdGFEaWZmLmRpZmYodGhpcy5wYWdpbmF0b3JEYXRhKTtcbiAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkNoYW5nZWQoY2hhbmdlcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3JzIGNoYW5nZXMgdG8gaW5wdXRzIGFuZCBzZXRzIGNvcnJlc3BvbmRpbmcgaW50ZXJuYWwgcHJvcGVydGllc1xuICAgKiBAcGFyYW0gY2hhbmdlcyAtIGlucHV0IGNoYW5nZXNcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5wYWdpbmF0b3JEYXRhICYmIGNoYW5nZXMucGFnaW5hdG9yRGF0YS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMucGFnaW5hdG9yRGF0YURpZmYgPSB0aGlzLmtleVZhbHVlRGlmZmVyLmZpbmQodGhpcy5wYWdpbmF0b3JEYXRhKS5jcmVhdGUoKTtcbiAgICAgIHRoaXMuc2V0SW50ZXJuYWxQYWdpbmF0b3JEYXRhUHJvcGVydGllcyh0aGlzLnBhZ2luYXRvckRhdGEpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5wYWdlT3B0aW9ucyAmJiBjaGFuZ2VzLnBhZ2VPcHRpb25zLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZU9wdGlvbnMgPSBjaGFuZ2VzLnBhZ2VPcHRpb25zLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBvblBhZ2VDaGFuZ2VkKHBhZ2VFdmVudDogUGFnZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcGFnZURhdGE6IFBhZ2luYXRvckRhdGEgPSB7XG4gICAgICBwYWdlSW5kZXg6IHBhZ2VFdmVudC5wYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZTogcGFnZUV2ZW50LnBhZ2VTaXplLFxuICAgICAgbGVuZ3RoOiBwYWdlRXZlbnQubGVuZ3RoXG4gICAgfTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLm5leHQocGFnZURhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgY2hhbmdlcyBmcm9tIHBhZ2VPcHRpb24gdG8gaW50ZXJuYWwgcHJvcGVydGllc1xuICAgKiBAcGFyYW0gY2hhbmdlcyAtIGNvbnRhaW5zIGNoYW5nZXMgb2YgcGFnZU9wdGlvbiBwcm9wZXJ0aWVzXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNoYW5nZXM6IEtleVZhbHVlQ2hhbmdlczxzdHJpbmcsIGFueT4pOiB2b2lkIHtcbiAgICBjaGFuZ2VzLmZvckVhY2hDaGFuZ2VkSXRlbSgoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLnNldENsYXNzUHJvcGVydHkoY2hhbmdlLmtleSwgY2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEludGVybmFsUGFnaW5hdG9yRGF0YVByb3BlcnRpZXMocGFnaW5hdG9yRGF0YSk6IHZvaWQge1xuICAgIE9iamVjdC5rZXlzKHBhZ2luYXRvckRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgdGhpcy5zZXRDbGFzc1Byb3BlcnR5KGtleSwgcGFnaW5hdG9yRGF0YVtrZXldKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2xhc3NQcm9wZXJ0eShrZXksIHZhbHVlKTogdm9pZCB7XG4gICAgdGhpc1trZXldID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==