issue fix
This commit is contained in:
@ -32,7 +32,7 @@ export class GridColumn {
|
||||
export class GridInputColumn extends GridColumn {
|
||||
static get editing() { return true };
|
||||
|
||||
static createEdit(trigger, col, _parent, vals) {
|
||||
static createEdit(trigger, col, _wrapper, vals) {
|
||||
const input = createElement('input');
|
||||
input.setAttribute('type', 'text');
|
||||
if (typeof trigger === 'function') {
|
||||
@ -61,13 +61,13 @@ export class GridInputColumn extends GridColumn {
|
||||
static getValue(e) { return e.target.value }
|
||||
|
||||
static setEnabled(element, enabled) {
|
||||
super.setEnabled(element , enabled);
|
||||
super.setEnabled(element, enabled);
|
||||
element.disabled = enabled === false;
|
||||
}
|
||||
}
|
||||
|
||||
export class GridTextColumn extends GridInputColumn {
|
||||
static createEdit(trigger, col, _parent, vals) {
|
||||
static createEdit(trigger, col, _wrapper, vals) {
|
||||
const input = createElement('textarea');
|
||||
if (typeof trigger === 'function') {
|
||||
input.addEventListener('change', trigger);
|
||||
@ -101,13 +101,15 @@ export class GridTextColumn extends GridInputColumn {
|
||||
const SymbolDropdown = Symbol.for('ui-dropdown');
|
||||
|
||||
export class GridDropdownColumn extends GridColumn {
|
||||
static createEdit(trigger, col, parent) {
|
||||
static createEdit(trigger, col, wrapper, it) {
|
||||
const drop = new Dropdown({
|
||||
...col.dropOptions,
|
||||
parent,
|
||||
holder: parent
|
||||
wrapper
|
||||
});
|
||||
drop.onselected = trigger;
|
||||
if (typeof col.dropExpanded === 'function') {
|
||||
drop.onexpanded = col.dropExpanded.bind(col, it.values, drop);
|
||||
}
|
||||
return drop.create();
|
||||
}
|
||||
|
||||
@ -125,9 +127,23 @@ export class GridDropdownColumn extends GridColumn {
|
||||
}
|
||||
|
||||
static _getSource(item, col) {
|
||||
let source = col.source;
|
||||
let source;
|
||||
if (col.sourceCache !== false) {
|
||||
source = item.source?.[col.key];
|
||||
if (source != null) {
|
||||
return source;
|
||||
}
|
||||
}
|
||||
source = col.source;
|
||||
if (typeof source === 'function') {
|
||||
source = source(item);
|
||||
source = source(item.values);
|
||||
}
|
||||
if (col.sourceCache !== false) {
|
||||
if (item.source == null) {
|
||||
item.source = { [col.key]: source };
|
||||
} else {
|
||||
item.source[col.key] = source;
|
||||
}
|
||||
}
|
||||
return source;
|
||||
}
|
||||
@ -169,12 +185,12 @@ export class GridDropdownColumn extends GridColumn {
|
||||
drop.select(val, true);
|
||||
}
|
||||
|
||||
static getValue(e) {
|
||||
return e.value;
|
||||
static getValue(e, col) {
|
||||
return e[col.dropOptions?.valueKey ?? 'value'];
|
||||
}
|
||||
|
||||
static setEnabled(element, enabled) {
|
||||
super.setEnabled(element , enabled);
|
||||
super.setEnabled(element, enabled);
|
||||
const drop = this._getDrop(element);
|
||||
if (drop == null) {
|
||||
return;
|
||||
@ -198,7 +214,7 @@ export class GridCheckboxColumn extends GridColumn {
|
||||
static getValue(e) { return e.target.checked }
|
||||
|
||||
static setEnabled(element, enabled) {
|
||||
super.setEnabled(element , enabled);
|
||||
super.setEnabled(element, enabled);
|
||||
element.querySelector('input').disabled = enabled === false;
|
||||
}
|
||||
}
|
||||
@ -206,10 +222,10 @@ export class GridCheckboxColumn extends GridColumn {
|
||||
export class GridIconColumn extends GridColumn {
|
||||
static create() { return createElement('span', 'col-icon') }
|
||||
|
||||
static setValue(element, val, item, col, grid) {
|
||||
static setValue(element, val, item, col, _grid) {
|
||||
let className = col.className;
|
||||
if (typeof className === 'function') {
|
||||
className = className.call(col, item);
|
||||
className = className.call(col, item.values);
|
||||
}
|
||||
if (className == null) {
|
||||
element.className = 'col-icon';
|
||||
@ -218,7 +234,7 @@ export class GridIconColumn extends GridColumn {
|
||||
}
|
||||
let type = col.iconType;
|
||||
if (typeof type === 'function') {
|
||||
type = type.call(col, item);
|
||||
type = type.call(col, item.values);
|
||||
}
|
||||
type ??= 'fa-regular';
|
||||
if (element.dataset.type !== type || element.dataset.icon !== val) {
|
||||
@ -232,7 +248,7 @@ export class GridIconColumn extends GridColumn {
|
||||
}
|
||||
|
||||
static setEnabled(element, enabled) {
|
||||
super.setEnabled(element , enabled);
|
||||
super.setEnabled(element, enabled);
|
||||
if (enabled === false) {
|
||||
element.classList.add('disabled');
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user