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
JavaScript
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