fix: onChanged issue on Firefox. (GridDateColumn)
feature: supports filterValues on Array field.
This commit is contained in:
@ -28,14 +28,12 @@ import { GridRowItem, DropdownOptions, GridColumnDefinition, GridSourceItem, Gri
|
||||
*/
|
||||
export class GridColumn {
|
||||
/**
|
||||
* 设置该类型是否支持触发 {@linkcode GridColumnDefinition}`.onInputEnded` 方法<br/>
|
||||
* 该属性返回 `true` 后,在任意事件中修改行包装对象的 `__editing` 值,则会在行列元素变动时及时触发 [onInputEnded]{@linkcode GridColumnDefinition#onInputEnded} 方法,避免例如文本框还未触发 `onchange` 事件就被移除元素而导致的问题
|
||||
*
|
||||
* 更多例子参考代码中 {@linkcode GridInputColumn} 的实现
|
||||
* 该属性返回 `true` 后,在任意事件中修改行包装对象的 `__editing` 值,则会在行列元素变动时及时触发 [onChanged]{@linkcode GridColumnDefinition#onChanged} 方法,避免例如文本框和日期框还未触发事件就被移除元素而导致的问题
|
||||
* @member
|
||||
* @name GridColumn.editing
|
||||
* @readonly
|
||||
* @type {boolean}
|
||||
* @see 更多例子参考 {@linkcode GridInputColumn} {@linkcode GridDateColumn} 中的代码实现
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -160,18 +158,15 @@ export class GridInputColumn extends GridColumn {
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
* @param {Function} trigger
|
||||
* @param {Function} _trigger
|
||||
* @param {GridColumnDefinition} col
|
||||
* @param {HTMLElement} _container
|
||||
* @param {GridItemWrapper} wrapper
|
||||
* @returns {HTMLElement}
|
||||
*/
|
||||
static createEdit(trigger, col, _container, wrapper) {
|
||||
static createEdit(_trigger, col, _container, wrapper) {
|
||||
const input = createElement('input');
|
||||
input.setAttribute('type', 'text');
|
||||
if (typeof trigger === 'function') {
|
||||
input.addEventListener('change', trigger);
|
||||
}
|
||||
input.addEventListener('input', () => {
|
||||
if (wrapper.__editing == null) {
|
||||
wrapper.__editing = {
|
||||
@ -226,17 +221,14 @@ export class GridInputColumn extends GridColumn {
|
||||
export class GridTextColumn extends GridInputColumn {
|
||||
/**
|
||||
* @ignore
|
||||
* @param {Function} trigger
|
||||
* @param {Function} _trigger
|
||||
* @param {GridColumnDefinition} col
|
||||
* @param {HTMLElement} _container
|
||||
* @param {GridItemWrapper} wrapper
|
||||
* @returns {HTMLElement}
|
||||
*/
|
||||
static createEdit(trigger, col, _container, wrapper) {
|
||||
static createEdit(_trigger, col, _container, wrapper) {
|
||||
const input = createElement('textarea');
|
||||
if (typeof trigger === 'function') {
|
||||
input.addEventListener('change', trigger);
|
||||
}
|
||||
input.addEventListener('input', () => {
|
||||
if (wrapper.__editing == null) {
|
||||
wrapper.__editing = {
|
||||
@ -612,13 +604,13 @@ export class GridDateColumn extends GridColumn {
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
* @param {Function} trigger
|
||||
* @param {Function} _trigger
|
||||
* @param {GridColumnDefinition} col
|
||||
* @param {HTMLElement} _container
|
||||
* @param {GridItemWrapper} wrapper
|
||||
* @returns {HTMLElement}
|
||||
*/
|
||||
static createEdit(trigger, col, _container, wrapper) {
|
||||
static createEdit(_trigger, col, _container, wrapper) {
|
||||
let enabled = col.enabled;
|
||||
if (typeof enabled === 'string') {
|
||||
enabled = wrapper.values[enabled];
|
||||
@ -638,7 +630,6 @@ export class GridDateColumn extends GridColumn {
|
||||
wrapper.__editing[col.key] = true;
|
||||
}
|
||||
});
|
||||
date.addEventListener('blur', trigger);
|
||||
return date;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user