All files / src/components/zd-grid grid-events.ts

100% Statements 8/8
100% Branches 1/1
100% Functions 3/3
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54        93x           130x     130x                   5x 4x 4x               5x                     4x                  
import { IDictionary } from '@zeedhi/core';
import { GridColumn } from './grid-column';
import { IGrid, IGridEvents } from './interfaces';
 
export class GridEvents implements IGridEvents {
	protected iterable: IGrid;
 
	/**
	 * Flag to prevent row click
	 */
	protected preventRowClick = false;
 
	constructor(iterable: IGrid) {
		this.iterable = iterable;
	}
 
	/**
	 * Dispatches row click event
	 * @param row Grid row
	 * @param event DOM event
	 * @param element DOM Element
	 */
	public rowClick(row: IDictionary<any>, event: Event, element: any) {
		if (!this.preventRowClick) {
			this.iterable.setCurrentRow(row);
			this.iterable.callEvent('rowClick', {
				event,
				element,
				row,
				component: this.iterable,
				column: undefined,
			});
		}
		this.preventRowClick = false;
	}
 
	/**
	 * Dispatches cell click Event
	 * @param row Grid row
	 * @param column Grid column
	 * @param event DOM event
	 * @param element DOM Element
	 */
	public cellClick(row: IDictionary<any>, column: GridColumn, event: Event, element: any) {
		this.preventRowClick = this.iterable.callEvent('cellClick', {
			event,
			element,
			row,
			column,
			component: this.iterable,
		});
	}
}