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