@clr/angular
Version:
Angular components for Clarity
36 lines • 4.61 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Directive, HostListener } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "./providers/selection";
export class ClrDatagridSelectionCellDirective {
constructor(selection) {
this.selection = selection;
}
onSelectionCellClick(event) {
// We want to effectively expand the selection click target to the entire selection cell.
// If row selection is enabled, do nothing because the entire selection cell is already clickable.
if (this.selection.rowSelectionMode) {
return;
}
// If click was outside the label/input, forward the click to the input.
if (event.target.tagName !== 'LABEL' && event.target.tagName !== 'INPUT') {
event.target.querySelector('input').click();
}
}
}
ClrDatagridSelectionCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridSelectionCellDirective, deps: [{ token: i1.Selection }], target: i0.ɵɵFactoryTarget.Directive });
ClrDatagridSelectionCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridSelectionCellDirective, selector: ".datagrid-select", host: { listeners: { "click": "onSelectionCellClick($event)" } }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridSelectionCellDirective, decorators: [{
type: Directive,
args: [{
selector: '.datagrid-select',
}]
}], ctorParameters: function () { return [{ type: i1.Selection }]; }, propDecorators: { onSelectionCellClick: [{
type: HostListener,
args: ['click', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtc2VsZWN0aW9uLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1zZWxlY3Rpb24tY2VsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPeEQsTUFBTSxPQUFPLGlDQUFpQztJQUM1QyxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUc3QyxvQkFBb0IsQ0FBQyxLQUEyQztRQUN0RSx5RkFBeUY7UUFFekYsa0dBQWtHO1FBQ2xHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNuQyxPQUFPO1NBQ1I7UUFFRCx3RUFBd0U7UUFDeEUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO1lBQ3hFLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzs7OEhBaEJVLGlDQUFpQztrSEFBakMsaUNBQWlDOzJGQUFqQyxpQ0FBaUM7a0JBSDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7Z0dBS1Msb0JBQW9CO3NCQUQzQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi9wcm92aWRlcnMvc2VsZWN0aW9uJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnLmRhdGFncmlkLXNlbGVjdCcsXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkU2VsZWN0aW9uQ2VsbERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0aW9uOiBTZWxlY3Rpb24pIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uU2VsZWN0aW9uQ2VsbENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50ICYgeyB0YXJnZXQ6IEhUTUxFbGVtZW50IH0pIHtcbiAgICAvLyBXZSB3YW50IHRvIGVmZmVjdGl2ZWx5IGV4cGFuZCB0aGUgc2VsZWN0aW9uIGNsaWNrIHRhcmdldCB0byB0aGUgZW50aXJlIHNlbGVjdGlvbiBjZWxsLlxuXG4gICAgLy8gSWYgcm93IHNlbGVjdGlvbiBpcyBlbmFibGVkLCBkbyBub3RoaW5nIGJlY2F1c2UgdGhlIGVudGlyZSBzZWxlY3Rpb24gY2VsbCBpcyBhbHJlYWR5IGNsaWNrYWJsZS5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24ucm93U2VsZWN0aW9uTW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElmIGNsaWNrIHdhcyBvdXRzaWRlIHRoZSBsYWJlbC9pbnB1dCwgZm9yd2FyZCB0aGUgY2xpY2sgdG8gdGhlIGlucHV0LlxuICAgIGlmIChldmVudC50YXJnZXQudGFnTmFtZSAhPT0gJ0xBQkVMJyAmJiBldmVudC50YXJnZXQudGFnTmFtZSAhPT0gJ0lOUFVUJykge1xuICAgICAgZXZlbnQudGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuY2xpY2soKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==