@siberiaweb/components
Version:
76 lines (57 loc) • 1.52 kB
text/typescript
import CSS from "./CSS";
import WebComponent from "@siberiaweb/webcomponent/lib/WebComponent";
/**
* Строка данных.
*
* @template TRecord Тип записи.
*/
export default class DataRow< TRecord > extends HTMLTableRowElement {
/**
* Наименование компонента.
*/
public static readonly COMPONENT_NAME: string = "sw-grid-data-row";
/**
* Запись.
*/
private _record: TRecord | null = null;
/**
* Получение записи.
*
* @throws Error Если запись для строки не указана.
*/
public get record(): TRecord {
if ( this._record === null ) {
throw new Error( "Запись для строки не указана." );
}
return this._record;
}
/**
* Установка записи.
*
* @param value Значение.
*/
public set record(
value: TRecord
) {
this._record = value;
}
/**
* Выбор строки.
*/
public select(): void {
this.classList.add( CSS.SELECTED_ROW );
}
/**
* Отмена выбора строки.
*/
public unselect(): void {
this.classList.remove( CSS.SELECTED_ROW );
}
/**
* Конструктор.
*/
constructor() {
super();
}
}
WebComponent.define( DataRow, "tr" );