change to jsdoc
This commit is contained in:
@@ -7,15 +7,71 @@ import { Dropdown } from "../dropdown";
|
||||
import { convertCssStyle } from "../extension";
|
||||
import { createDateInput, formatDate, setDateValue, getDateValue } from "../date";
|
||||
|
||||
/**
|
||||
* 列定义基类
|
||||
* @class
|
||||
*/
|
||||
export class GridColumn {
|
||||
/**
|
||||
* 创建显示单元格时调用的方法
|
||||
* @param {GridColumnDefinition} col - 列定义对象
|
||||
* @returns {HTMLElement} 返回创建的单元格元素
|
||||
* @virtual
|
||||
*/
|
||||
static create() {
|
||||
return createElement('span');
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建编辑单元格时调用的方法
|
||||
*
|
||||
* 元素修改后设置行包装对象的 `__editing` 后,支持在离开编辑状态时及时触发 [leaveEdit]{@linkcode GridColumn.leaveEdit} 方法<br/>
|
||||
* 更多例子参考代码中 {@linkcode GridDropdownColumn} 的实现。
|
||||
* @param {Function} trigger - 编辑事件回调函数,`e` 参数会传递给 [getValue]{@linkcode GridColumn.getValue} 方法
|
||||
* @param {GridColumnDefinition} col - 列定义对象
|
||||
* @param {HTMLElement} container - 父容器元素
|
||||
* @param {GridItemWrapper} vals - 行包装对象,其 `values` 属性为行数据对象
|
||||
* @returns {HTMLElement} 返回创建的编辑状态的单元格元素
|
||||
* @virtual
|
||||
*/
|
||||
static createEdit() { }
|
||||
|
||||
/**
|
||||
* 创建列头时调用的方法
|
||||
* @param {GridColumnDefinition} col - 列定义对象
|
||||
* @returns {HTMLElement} 返回创建的列头元素
|
||||
* @virtual
|
||||
*/
|
||||
static createCaption() { }
|
||||
|
||||
/**
|
||||
* 设置单元格值时调用的方法
|
||||
* @param {HTMLElement} element - 单元格元素
|
||||
* @param {(string | boolean | number)} val - 待设置的单元格值
|
||||
* @param {GridItemWrapper} vals - 行包装对象
|
||||
* @param {GridColumnDefinition} col - 列定义对象
|
||||
* @param {Grid} grid - Grid 对象
|
||||
* @virtual
|
||||
*/
|
||||
static setValue(element, val) {
|
||||
element.innerText = val;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取编辑状态单元格值时调用的方法
|
||||
* @param {any} `e` 由 [createEdit]{@linkcode GridColumn.createEdit} 方法中 `trigger` 函数传递来的对象
|
||||
* @param {GridColumnDefinition} col - 列定义对象
|
||||
* @returns {(string | boolean | number)} 返回单元格的值
|
||||
* @virtual
|
||||
*/
|
||||
static getValue() { }
|
||||
|
||||
/**
|
||||
* 设置单元格样式时调用的方法
|
||||
* @param {HTMLElement} element - 单元格元素
|
||||
* @param {object} style - 样式对象
|
||||
* @virtual
|
||||
*/
|
||||
static setStyle(element, style) {
|
||||
// for (let css of Object.entries(style)) {
|
||||
// element.style.setProperty(css[0], css[1]);
|
||||
@@ -23,6 +79,12 @@ export class GridColumn {
|
||||
element.style.cssText = convertCssStyle(style);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置单元格可用性时调用的方法
|
||||
* @param {HTMLElement} element - 单元格元素
|
||||
* @param {boolean} enabled - 启用值,为 `false` 时代表禁用
|
||||
* @virtual
|
||||
*/
|
||||
static setEnabled(element, enabled) {
|
||||
const tooltip = element.querySelector('.ui-tooltip-wrapper');
|
||||
if (tooltip != null) {
|
||||
@@ -30,10 +92,29 @@ export class GridColumn {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 单元格离开编辑元素时触发,需要由行包装对象的 `__editing` 来确定是否触发。
|
||||
* @param {HTMLElement} element - 单元格元素
|
||||
* @param {HTMLElement} container - 父容器元素
|
||||
* @virtual
|
||||
*/
|
||||
static leaveEdit() { }
|
||||
|
||||
static toString() { return '[object Column]' }
|
||||
}
|
||||
|
||||
/**
|
||||
* 单行文本列
|
||||
* @extends GridColumn
|
||||
*/
|
||||
export class GridInputColumn extends GridColumn {
|
||||
/**
|
||||
* 设置该类型是否支持触发 [onInputEnded]{@linkcode GridColumnDefinition.onInputEnded} 方法<br/>
|
||||
* 该属性返回 `true` 后,在任意事件中修改行包装对象的 `__editing` 值,则会在行列元素变动时及时触发 [onInputEnded]{@linkcode GridColumnDefinition.onInputEnded} 方法,避免例如文本框还未触发 `onchange` 事件就被移除元素而导致的问题<br/>
|
||||
* 更多例子参考代码中 {@linkcode GridInputColumn} 的实现
|
||||
* @readonly
|
||||
* @type {boolean}
|
||||
*/
|
||||
static get editing() { return true };
|
||||
|
||||
static createEdit(trigger, col, _wrapper, vals) {
|
||||
|
Reference in New Issue
Block a user