UNPKG

right-angled

Version:

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

92 lines 11.6 kB
import { Directive, EventEmitter, HostBinding, HostListener, Input, Optional, Output, SkipSelf } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./selection-area.directive"; import * as i2 from "./providers/selection-events-helper"; import * as i3 from "./providers/selection.service"; export class SelectionCheckboxForDirective { get selected() { return this.selectedInternal; } set selected(selected) { if (selected) { this.selectionService.selectIndex(this.index, this.selectionEventsHelper.multiple); } else { this.selectionService.deselectIndex(this.index); } } constructor(elementRef, selectionArea, selectionEventsHelper, selectionService) { this.elementRef = elementRef; this.selectionArea = selectionArea; this.selectionEventsHelper = selectionEventsHelper; this.selectionService = selectionService; this.index = null; // tslint:disable-next-line: no-input-rename this.item = null; this.selectedChange = new EventEmitter(); this.itemSelected = new EventEmitter(); this.itemDeselected = new EventEmitter(); this.selectionChanged = new EventEmitter(); this.selectedInternal = false; } ngAfterViewInit() { this.selectionArea?.registerSelectionCheckbox(this, this.elementRef); } ngOnDestroy() { this.selectionArea?.unregisterSelectionCheckbox(this); } get isChecked() { return this.selectionService.isIndexSelected(this.index); } changeHandler(isChecked) { if (isChecked) { this.selectionService.selectIndex(this.index, this.selectionEventsHelper.multiple); } else { this.selectionService.deselectIndex(this.index); } } postProcessSelection(selected) { if (selected === this.selected) { return; } this.selectedInternal = selected; this.selectedChange.emit(this.selectedInternal); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionCheckboxForDirective, deps: [{ token: i0.ElementRef }, { token: i1.SelectionAreaDirective, optional: true }, { token: i2.RTSelectionEventsHelper, skipSelf: true }, { token: i3.RTSelectionService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SelectionCheckboxForDirective, selector: "input[rtSelectionCheckboxFor]", inputs: { item: ["rtSelectionCheckboxFor", "item"], selected: "selected" }, outputs: { selectedChange: "selectedChange", itemSelected: "itemSelected", itemDeselected: "itemDeselected", selectionChanged: "selectionChanged" }, host: { listeners: { "change": "changeHandler($event.target.checked)" }, properties: { "checked": "this.isChecked" } }, exportAs: ["rtSelectionCheckboxFor"], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionCheckboxForDirective, decorators: [{ type: Directive, args: [{ exportAs: 'rtSelectionCheckboxFor', /* tslint:disable-next-line:directive-selector */ selector: 'input[rtSelectionCheckboxFor]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SelectionAreaDirective, decorators: [{ type: Optional }] }, { type: i2.RTSelectionEventsHelper, decorators: [{ type: SkipSelf }] }, { type: i3.RTSelectionService, decorators: [{ type: SkipSelf }] }]; }, propDecorators: { item: [{ type: Input, args: ['rtSelectionCheckboxFor'] }], selected: [{ type: Input }], selectedChange: [{ type: Output }], itemSelected: [{ type: Output }], itemDeselected: [{ type: Output }], selectionChanged: [{ type: Output }], isChecked: [{ type: HostBinding, args: ['checked'] }], changeHandler: [{ type: HostListener, args: ['change', ['$event.target.checked']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWNoZWNrYm94LWZvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaWdodC1hbmdsZWQvc3JjL2xpYi9zZWxlY3Rpb24vc2VsZWN0aW9uLWNoZWNrYm94LWZvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVc1SixNQUFNLE9BQU8sNkJBQTZCO0lBSXRDLElBQ1csUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxRQUFpQjtRQUNqQyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEY7YUFBTTtZQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25EO0lBQ0wsQ0FBQztJQVdELFlBQ1ksVUFBc0IsRUFDVixhQUFxQyxFQUN0QyxxQkFBOEMsRUFDN0MsZ0JBQW9DO1FBSGhELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVixrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUFDdEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQUM3QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBNUJyRCxVQUFLLEdBQVcsSUFBSSxDQUFDO1FBQzVCLDRDQUE0QztRQUNKLFNBQUksR0FBUSxJQUFJLENBQUM7UUFhekMsbUJBQWMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVwRSxpQkFBWSxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUVwRixtQkFBYyxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUV0RixxQkFBZ0IsR0FBbUMsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDaEcscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBTzlCLENBQUM7SUFFSixlQUFlO1FBQ1gsSUFBSSxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFDVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLGFBQWEsQ0FBQyxTQUFrQjtRQUNuQyxJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEY7YUFBTTtZQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25EO0lBQ0wsQ0FBQztJQUNNLG9CQUFvQixDQUFDLFFBQWlCO1FBQ3pDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQTFEUSw2QkFBNkI7bUdBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxpREFBaUQ7b0JBQ2pELFFBQVEsRUFBRSwrQkFBK0I7aUJBQzVDOzswQkE0QlEsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs0Q0ExQjJCLElBQUk7c0JBQTNDLEtBQUs7dUJBQUMsd0JBQXdCO2dCQUVwQixRQUFRO3NCQURsQixLQUFLO2dCQVlVLGNBQWM7c0JBRDdCLE1BQU07Z0JBR1MsWUFBWTtzQkFEM0IsTUFBTTtnQkFHUyxjQUFjO3NCQUQ3QixNQUFNO2dCQUdTLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFvQkksU0FBUztzQkFEbkIsV0FBVzt1QkFBQyxTQUFTO2dCQUtmLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUlRTZWxlY3Rpb25FdmVudHNIZWxwZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9zZWxlY3Rpb24tZXZlbnRzLWhlbHBlcic7XHJcbmltcG9ydCB7IFJUU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL3NlbGVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUlRTZWxlY3Rpb25FdmVudCwgU2VsZWN0aW9uRWxlbWVudEV2ZW50c0VtaXR0ZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9zZWxlY3Rpb24tZXZlbnRzLWVtaXR0ZXInO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25BcmVhRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3Rpb24tYXJlYS5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBleHBvcnRBczogJ3J0U2VsZWN0aW9uQ2hlY2tib3hGb3InLFxyXG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvciAqL1xyXG4gICAgc2VsZWN0b3I6ICdpbnB1dFtydFNlbGVjdGlvbkNoZWNrYm94Rm9yXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkNoZWNrYm94Rm9yRGlyZWN0aXZlIGltcGxlbWVudHMgU2VsZWN0aW9uRWxlbWVudEV2ZW50c0VtaXR0ZXIsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgaW5kZXg6IG51bWJlciA9IG51bGw7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWlucHV0LXJlbmFtZVxyXG4gICAgQElucHV0KCdydFNlbGVjdGlvbkNoZWNrYm94Rm9yJykgcHVibGljIGl0ZW06IGFueSA9IG51bGw7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEludGVybmFsO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBzZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0SW5kZXgodGhpcy5pbmRleCwgdGhpcy5zZWxlY3Rpb25FdmVudHNIZWxwZXIubXVsdGlwbGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdEluZGV4KHRoaXMuaW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxSVFNlbGVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8UlRTZWxlY3Rpb25FdmVudD4oKTtcclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1EZXNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8UlRTZWxlY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJUU2VsZWN0aW9uRXZlbnQ+KCk7XHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8UlRTZWxlY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJUU2VsZWN0aW9uRXZlbnQ+KCk7XHJcbiAgICBwcml2YXRlIHNlbGVjdGVkSW50ZXJuYWwgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzZWxlY3Rpb25BcmVhOiBTZWxlY3Rpb25BcmVhRGlyZWN0aXZlLFxyXG4gICAgICAgIEBTa2lwU2VsZigpIHB1YmxpYyBzZWxlY3Rpb25FdmVudHNIZWxwZXI6IFJUU2VsZWN0aW9uRXZlbnRzSGVscGVyLFxyXG4gICAgICAgIEBTa2lwU2VsZigpIHByaXZhdGUgc2VsZWN0aW9uU2VydmljZTogUlRTZWxlY3Rpb25TZXJ2aWNlXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQXJlYT8ucmVnaXN0ZXJTZWxlY3Rpb25DaGVja2JveCh0aGlzLCB0aGlzLmVsZW1lbnRSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQXJlYT8udW5yZWdpc3RlclNlbGVjdGlvbkNoZWNrYm94KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2hlY2tlZCcpXHJcbiAgICBwdWJsaWMgZ2V0IGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLmlzSW5kZXhTZWxlY3RlZCh0aGlzLmluZGV4KTtcclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50LnRhcmdldC5jaGVja2VkJ10pXHJcbiAgICBwdWJsaWMgY2hhbmdlSGFuZGxlcihpc0NoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoaXNDaGVja2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3RJbmRleCh0aGlzLmluZGV4LCB0aGlzLnNlbGVjdGlvbkV2ZW50c0hlbHBlci5tdWx0aXBsZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLmRlc2VsZWN0SW5kZXgodGhpcy5pbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHVibGljIHBvc3RQcm9jZXNzU2VsZWN0aW9uKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkID09PSB0aGlzLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEludGVybmFsID0gc2VsZWN0ZWQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbnRlcm5hbCk7XHJcbiAgICB9XHJcbn1cclxuIl19