UNPKG

right-angled

Version:

Lightweight and easy to use angular data grids. Integrates with your markup and styles rather than generating its own.

52 lines 6.56 kB
import { Directive, HostListener } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../providers/buffered-pager"; export class RowCountDirective { get value() { return this.pager.takeRowCount; } set value(value) { this.pager.takeRowCount = value; } constructor(pager, elementRef, renderer) { this.pager = pager; this.elementRef = elementRef; this.renderer = renderer; } setPageSize(value) { // Return on empty values to give ability to clear input and enter new value if (value === null || value === undefined || value === '') { this.renderer.setProperty(this.elementRef.nativeElement, 'value', ''); return; } this.value = value; this.synchronizeInputValue(); } synchronizeInputValue() { this.renderer.setProperty(this.elementRef.nativeElement, 'value', this.value + ''); } ngOnInit() { this.takeRowCountSubscription = this.pager.takeRowCount$.subscribe(() => { this.synchronizeInputValue(); }); this.synchronizeInputValue(); } ngOnDestroy() { this.takeRowCountSubscription.unsubscribe(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowCountDirective, deps: [{ token: i1.RTBufferedPager }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: RowCountDirective, selector: "input[rtRowCount]", host: { listeners: { "input": "setPageSize($event.target.value)", "blur": "synchronizeInputValue()" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowCountDirective, decorators: [{ type: Directive, args: [{ selector: 'input[rtRowCount]' }] }], ctorParameters: function () { return [{ type: i1.RTBufferedPager }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { setPageSize: [{ type: HostListener, args: ['input', ['$event.target.value']] }], synchronizeInputValue: [{ type: HostListener, args: ['blur'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNvdW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JpZ2h0LWFuZ2xlZC9zcmMvbGliL2xpc3RzL3BhZ2luZy9yb3ctY291bnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUE0QyxNQUFNLGVBQWUsQ0FBQzs7O0FBT2xHLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUIsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUNELFlBQW1CLEtBQXNCLEVBQVUsVUFBc0IsRUFBVSxRQUFtQjtRQUFuRixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUcsQ0FBQztJQUVuRyxXQUFXLENBQUMsS0FBVTtRQUN6Qiw0RUFBNEU7UUFDNUUsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEUsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ00sUUFBUTtRQUNYLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNNLFdBQVc7UUFDZCxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQzsrR0EvQlEsaUJBQWlCO21HQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7dUpBV1UsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFXdkMscUJBQXFCO3NCQUQzQixZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSVEJ1ZmZlcmVkUGFnZXIgfSBmcm9tICcuLi9wcm92aWRlcnMvYnVmZmVyZWQtcGFnZXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdpbnB1dFtydFJvd0NvdW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvd0NvdW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgdGFrZVJvd0NvdW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZXIudGFrZVJvd0NvdW50O1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5wYWdlci50YWtlUm93Q291bnQgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwYWdlcjogUlRCdWZmZXJlZFBhZ2VyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXHJcbiAgICBwdWJsaWMgc2V0UGFnZVNpemUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBvbiBlbXB0eSB2YWx1ZXMgdG8gZ2l2ZSBhYmlsaXR5IHRvIGNsZWFyIGlucHV0IGFuZCBlbnRlciBuZXcgdmFsdWVcclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJycpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnN5bmNocm9uaXplSW5wdXRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXHJcbiAgICBwdWJsaWMgc3luY2hyb25pemVJbnB1dFZhbHVlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHRoaXMudmFsdWUgKyAnJyk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWtlUm93Q291bnRTdWJzY3JpcHRpb24gPSB0aGlzLnBhZ2VyLnRha2VSb3dDb3VudCQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zeW5jaHJvbml6ZUlucHV0VmFsdWUoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN5bmNocm9uaXplSW5wdXRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFrZVJvd0NvdW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19