@vaadin/grid 23.1.0-alpha3 → 23.1.0-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lit.d.ts +2 -0
- package/lit.js +2 -0
- package/package.json +12 -9
- package/src/array-data-provider.js +2 -2
- package/src/lit/column-renderer-directives.d.ts +152 -0
- package/src/lit/column-renderer-directives.js +149 -0
- package/src/lit/renderer-directives.d.ts +62 -0
- package/src/lit/renderer-directives.js +70 -0
- package/src/vaadin-grid-a11y-mixin.js +5 -5
- package/src/vaadin-grid-active-item-mixin.d.ts +1 -1
- package/src/vaadin-grid-active-item-mixin.js +8 -8
- package/src/vaadin-grid-array-data-provider-mixin.d.ts +1 -1
- package/src/vaadin-grid-array-data-provider-mixin.js +4 -4
- package/src/vaadin-grid-column-group.js +57 -53
- package/src/vaadin-grid-column-reordering-mixin.d.ts +1 -1
- package/src/vaadin-grid-column-reordering-mixin.js +12 -12
- package/src/vaadin-grid-column-resizing-mixin.js +12 -18
- package/src/vaadin-grid-column.d.ts +2 -2
- package/src/vaadin-grid-column.js +39 -28
- package/src/vaadin-grid-data-provider-mixin.d.ts +2 -2
- package/src/vaadin-grid-data-provider-mixin.js +18 -18
- package/src/vaadin-grid-drag-and-drop-mixin.d.ts +1 -1
- package/src/vaadin-grid-drag-and-drop-mixin.js +9 -9
- package/src/vaadin-grid-dynamic-columns-mixin.js +23 -24
- package/src/vaadin-grid-event-context-mixin.d.ts +1 -1
- package/src/vaadin-grid-event-context-mixin.js +1 -1
- package/src/vaadin-grid-filter-column.js +1 -1
- package/src/vaadin-grid-filter-mixin.js +4 -6
- package/src/vaadin-grid-filter.d.ts +2 -2
- package/src/vaadin-grid-filter.js +2 -2
- package/src/vaadin-grid-helpers.js +1 -1
- package/src/vaadin-grid-keyboard-navigation-mixin.js +20 -17
- package/src/vaadin-grid-row-details-mixin.d.ts +2 -2
- package/src/vaadin-grid-row-details-mixin.js +4 -6
- package/src/vaadin-grid-scroll-mixin.js +7 -10
- package/src/vaadin-grid-selection-column.d.ts +2 -2
- package/src/vaadin-grid-selection-column.js +8 -8
- package/src/vaadin-grid-selection-mixin.d.ts +1 -1
- package/src/vaadin-grid-selection-mixin.js +2 -2
- package/src/vaadin-grid-sort-column.d.ts +2 -2
- package/src/vaadin-grid-sort-column.js +2 -2
- package/src/vaadin-grid-sort-mixin.js +7 -11
- package/src/vaadin-grid-sorter.d.ts +2 -2
- package/src/vaadin-grid-sorter.js +4 -4
- package/src/vaadin-grid-styles.js +1 -1
- package/src/vaadin-grid-styling-mixin.d.ts +1 -1
- package/src/vaadin-grid-styling-mixin.js +2 -2
- package/src/vaadin-grid-tree-column.js +3 -3
- package/src/vaadin-grid-tree-toggle.d.ts +2 -2
- package/src/vaadin-grid-tree-toggle.js +4 -4
- package/src/vaadin-grid.d.ts +7 -7
- package/src/vaadin-grid.js +50 -45
- package/theme/lumo/vaadin-grid-sorter-styles.js +1 -1
- package/theme/lumo/vaadin-grid-styles.js +2 -2
- package/theme/lumo/vaadin-grid-tree-toggle-styles.js +1 -1
- package/theme/material/vaadin-grid-sorter-styles.js +1 -1
- package/theme/material/vaadin-grid-styles.js +1 -1
- package/theme/material/vaadin-grid-tree-toggle-styles.js +1 -1
|
@@ -50,9 +50,9 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
50
50
|
return {
|
|
51
51
|
/** @private */
|
|
52
52
|
_childColumns: {
|
|
53
|
-
value
|
|
53
|
+
value() {
|
|
54
54
|
return this._getChildColumns(this);
|
|
55
|
-
}
|
|
55
|
+
},
|
|
56
56
|
},
|
|
57
57
|
|
|
58
58
|
/**
|
|
@@ -61,7 +61,7 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
61
61
|
*/
|
|
62
62
|
flexGrow: {
|
|
63
63
|
type: Number,
|
|
64
|
-
readOnly: true
|
|
64
|
+
readOnly: true,
|
|
65
65
|
},
|
|
66
66
|
|
|
67
67
|
/**
|
|
@@ -69,7 +69,7 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
69
69
|
*/
|
|
70
70
|
width: {
|
|
71
71
|
type: String,
|
|
72
|
-
readOnly: true
|
|
72
|
+
readOnly: true,
|
|
73
73
|
},
|
|
74
74
|
|
|
75
75
|
/** @private */
|
|
@@ -79,22 +79,19 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
79
79
|
_colSpan: Number,
|
|
80
80
|
|
|
81
81
|
/** @private */
|
|
82
|
-
_rootColumns: Array
|
|
82
|
+
_rootColumns: Array,
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
static get observers() {
|
|
87
87
|
return [
|
|
88
|
-
'_updateVisibleChildColumns(_childColumns)',
|
|
89
|
-
'_childColumnsChanged(_childColumns)',
|
|
90
88
|
'_groupFrozenChanged(frozen, _rootColumns)',
|
|
91
89
|
'_groupFrozenToEndChanged(frozenToEnd, _rootColumns)',
|
|
92
|
-
'_groupHiddenChanged(hidden
|
|
93
|
-
'_visibleChildColumnsChanged(_visibleChildColumns)',
|
|
90
|
+
'_groupHiddenChanged(hidden)',
|
|
94
91
|
'_colSpanChanged(_colSpan, _headerCell, _footerCell)',
|
|
95
92
|
'_groupOrderChanged(_order, _rootColumns)',
|
|
96
93
|
'_groupReorderStatusChanged(_reorderStatus, _rootColumns)',
|
|
97
|
-
'_groupResizableChanged(resizable, _rootColumns)'
|
|
94
|
+
'_groupResizableChanged(resizable, _rootColumns)',
|
|
98
95
|
];
|
|
99
96
|
}
|
|
100
97
|
|
|
@@ -108,7 +105,9 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
108
105
|
/** @protected */
|
|
109
106
|
disconnectedCallback() {
|
|
110
107
|
super.disconnectedCallback();
|
|
111
|
-
|
|
108
|
+
if (this._observer) {
|
|
109
|
+
this._observer.disconnect();
|
|
110
|
+
}
|
|
112
111
|
}
|
|
113
112
|
|
|
114
113
|
/**
|
|
@@ -118,9 +117,12 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
118
117
|
*/
|
|
119
118
|
_columnPropChanged(path, value) {
|
|
120
119
|
if (path === 'hidden') {
|
|
121
|
-
|
|
120
|
+
// Prevent synchronization of the hidden state to child columns.
|
|
121
|
+
// If the group is currently auto-hidden, and one column is made visible,
|
|
122
|
+
// we don't want the other columns to become visible as well.
|
|
123
|
+
this._preventHiddenSynchronization = true;
|
|
122
124
|
this._updateVisibleChildColumns(this._childColumns);
|
|
123
|
-
this.
|
|
125
|
+
this._preventHiddenSynchronization = false;
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
if (/flexGrow|width|hidden|_childColumns/.test(path)) {
|
|
@@ -203,14 +205,8 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
203
205
|
/** @private */
|
|
204
206
|
_updateVisibleChildColumns(childColumns) {
|
|
205
207
|
this._visibleChildColumns = Array.prototype.filter.call(childColumns, (col) => !col.hidden);
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
/** @private */
|
|
209
|
-
_childColumnsChanged(childColumns) {
|
|
210
|
-
if (!this._autoHidden && this.hidden) {
|
|
211
|
-
Array.prototype.forEach.call(childColumns, (column) => (column.hidden = true));
|
|
212
|
-
this._updateVisibleChildColumns(childColumns);
|
|
213
|
-
}
|
|
208
|
+
this._colSpan = this._visibleChildColumns.length;
|
|
209
|
+
this._updateAutoHidden();
|
|
214
210
|
}
|
|
215
211
|
|
|
216
212
|
/** @protected */
|
|
@@ -219,18 +215,11 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
219
215
|
return;
|
|
220
216
|
}
|
|
221
217
|
|
|
222
|
-
if (this._visibleChildColumns.length) {
|
|
223
|
-
this.
|
|
224
|
-
'
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
this._visibleChildColumns,
|
|
228
|
-
(prev, curr) => (prev += ' + ' + (curr.width || '0px').replace('calc', '')),
|
|
229
|
-
''
|
|
230
|
-
)
|
|
231
|
-
.substring(3) +
|
|
232
|
-
')'
|
|
233
|
-
);
|
|
218
|
+
if (this._visibleChildColumns.length > 0) {
|
|
219
|
+
const width = this._visibleChildColumns
|
|
220
|
+
.reduce((prev, curr) => (prev += ` + ${(curr.width || '0px').replace('calc', '')}`), '')
|
|
221
|
+
.substring(3);
|
|
222
|
+
this._setWidth(`calc(${width})`);
|
|
234
223
|
} else {
|
|
235
224
|
this._setWidth('0px');
|
|
236
225
|
}
|
|
@@ -263,26 +252,31 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
263
252
|
}
|
|
264
253
|
|
|
265
254
|
/** @private */
|
|
266
|
-
_groupHiddenChanged(hidden
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
255
|
+
_groupHiddenChanged(hidden) {
|
|
256
|
+
// When initializing the hidden property, only sync hidden state to columns
|
|
257
|
+
// if group is actually hidden. Otherwise, we could override a hidden column
|
|
258
|
+
// to be visible.
|
|
259
|
+
// We always want to run this though if the property is actually changed.
|
|
260
|
+
if (hidden || this.__groupHiddenInitialized) {
|
|
261
|
+
this._synchronizeHidden();
|
|
271
262
|
}
|
|
263
|
+
this.__groupHiddenInitialized = true;
|
|
264
|
+
}
|
|
272
265
|
|
|
273
|
-
|
|
266
|
+
/** @private */
|
|
267
|
+
_updateAutoHidden() {
|
|
268
|
+
const wasAutoHidden = this._autoHidden;
|
|
269
|
+
this._autoHidden = (this._visibleChildColumns || []).length === 0;
|
|
270
|
+
// Only modify hidden state if group was auto-hidden, or becomes auto-hidden
|
|
271
|
+
if (wasAutoHidden || this._autoHidden) {
|
|
272
|
+
this.hidden = this._autoHidden;
|
|
273
|
+
}
|
|
274
274
|
}
|
|
275
275
|
|
|
276
276
|
/** @private */
|
|
277
|
-
|
|
278
|
-
this.
|
|
279
|
-
|
|
280
|
-
if (!this._ignoreVisibleChildColumns) {
|
|
281
|
-
if (visibleChildColumns.length === 0) {
|
|
282
|
-
this._autoHidden = this.hidden = true;
|
|
283
|
-
} else if (this.hidden && this._autoHidden) {
|
|
284
|
-
this._autoHidden = this.hidden = false;
|
|
285
|
-
}
|
|
277
|
+
_synchronizeHidden() {
|
|
278
|
+
if (this._childColumns && !this._preventHiddenSynchronization) {
|
|
279
|
+
this._childColumns.forEach((column) => (column.hidden = this.hidden));
|
|
286
280
|
}
|
|
287
281
|
}
|
|
288
282
|
|
|
@@ -290,11 +284,15 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
290
284
|
_colSpanChanged(colSpan, headerCell, footerCell) {
|
|
291
285
|
if (headerCell) {
|
|
292
286
|
headerCell.setAttribute('colspan', colSpan);
|
|
293
|
-
|
|
287
|
+
if (this._grid) {
|
|
288
|
+
this._grid._a11yUpdateCellColspan(headerCell, colSpan);
|
|
289
|
+
}
|
|
294
290
|
}
|
|
295
291
|
if (footerCell) {
|
|
296
292
|
footerCell.setAttribute('colspan', colSpan);
|
|
297
|
-
|
|
293
|
+
if (this._grid) {
|
|
294
|
+
this._grid._a11yUpdateCellColspan(footerCell, colSpan);
|
|
295
|
+
}
|
|
298
296
|
}
|
|
299
297
|
}
|
|
300
298
|
|
|
@@ -314,14 +312,20 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
314
312
|
info.addedNodes.filter(this._isColumnElement).length > 0 ||
|
|
315
313
|
info.removedNodes.filter(this._isColumnElement).length > 0
|
|
316
314
|
) {
|
|
317
|
-
|
|
315
|
+
// Prevent synchronization of the hidden state to child columns.
|
|
316
|
+
// If the group is currently auto-hidden, and a visible column is added,
|
|
317
|
+
// we don't want the other columns to become visible as well.
|
|
318
|
+
this._preventHiddenSynchronization = true;
|
|
318
319
|
this._rootColumns = this._getChildColumns(this);
|
|
319
320
|
this._childColumns = this._rootColumns;
|
|
320
|
-
this.
|
|
321
|
+
this._updateVisibleChildColumns(this._childColumns);
|
|
322
|
+
this._preventHiddenSynchronization = false;
|
|
321
323
|
|
|
322
324
|
// Update the column tree with microtask timing to avoid shady style scope issues
|
|
323
325
|
microTask.run(() => {
|
|
324
|
-
|
|
326
|
+
if (this._grid && this._grid._updateColumnTree) {
|
|
327
|
+
this._grid._updateColumnTree();
|
|
328
|
+
}
|
|
325
329
|
});
|
|
326
330
|
}
|
|
327
331
|
});
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
7
|
|
|
8
8
|
export declare function ColumnReorderingMixin<T extends Constructor<HTMLElement>>(
|
|
9
|
-
base: T
|
|
9
|
+
base: T,
|
|
10
10
|
): T & Constructor<ColumnReorderingMixinClass>;
|
|
11
11
|
|
|
12
12
|
export declare class ColumnReorderingMixinClass {
|
|
@@ -20,14 +20,14 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
20
20
|
*/
|
|
21
21
|
columnReorderingAllowed: {
|
|
22
22
|
type: Boolean,
|
|
23
|
-
value: false
|
|
23
|
+
value: false,
|
|
24
24
|
},
|
|
25
25
|
|
|
26
26
|
/** @private */
|
|
27
27
|
_orderBaseScope: {
|
|
28
28
|
type: Number,
|
|
29
|
-
value: 10000000
|
|
30
|
-
}
|
|
29
|
+
value: 10000000,
|
|
30
|
+
},
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -60,8 +60,8 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
60
60
|
this._onTrackStart({
|
|
61
61
|
detail: {
|
|
62
62
|
x: e.touches[0].clientX,
|
|
63
|
-
y: e.touches[0].clientY
|
|
64
|
-
}
|
|
63
|
+
y: e.touches[0].clientY,
|
|
64
|
+
},
|
|
65
65
|
});
|
|
66
66
|
}, 100);
|
|
67
67
|
}
|
|
@@ -184,9 +184,9 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
184
184
|
this.dispatchEvent(
|
|
185
185
|
new CustomEvent('column-reorder', {
|
|
186
186
|
detail: {
|
|
187
|
-
columns: this._getColumnsInOrder()
|
|
188
|
-
}
|
|
189
|
-
})
|
|
187
|
+
columns: this._getColumnsInOrder(),
|
|
188
|
+
},
|
|
189
|
+
}),
|
|
190
190
|
);
|
|
191
191
|
}
|
|
192
192
|
|
|
@@ -261,7 +261,7 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
261
261
|
'padding',
|
|
262
262
|
'border',
|
|
263
263
|
'flex-direction',
|
|
264
|
-
'overflow'
|
|
264
|
+
'overflow',
|
|
265
265
|
].forEach((propertyName) => (ghost.style[propertyName] = style[propertyName]));
|
|
266
266
|
return ghost;
|
|
267
267
|
}
|
|
@@ -318,8 +318,8 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
318
318
|
const differentColumns = column1 !== column2;
|
|
319
319
|
const sameParent = column1.parentElement === column2.parentElement;
|
|
320
320
|
const sameFrozen =
|
|
321
|
-
(column1.frozen && column2.frozen) || //
|
|
322
|
-
(column1.frozenToEnd && column2.frozenToEnd) || //
|
|
321
|
+
(column1.frozen && column2.frozen) || // Both columns are frozen
|
|
322
|
+
(column1.frozenToEnd && column2.frozenToEnd) || // Both columns are frozen to end
|
|
323
323
|
(!column1.frozen && !column1.frozenToEnd && !column2.frozen && !column2.frozenToEnd);
|
|
324
324
|
return differentColumns && sameParent && sameFrozen;
|
|
325
325
|
}
|
|
@@ -333,7 +333,7 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
333
333
|
*/
|
|
334
334
|
_isSwappableByPosition(targetColumn, clientX) {
|
|
335
335
|
const targetCell = Array.from(this.$.header.querySelectorAll('tr:not([hidden]) [part~="cell"]')).filter((cell) =>
|
|
336
|
-
targetColumn.contains(cell._column)
|
|
336
|
+
targetColumn.contains(cell._column),
|
|
337
337
|
)[0];
|
|
338
338
|
const sourceCellRect = this.$.header
|
|
339
339
|
.querySelector('tr:not([hidden]) [reorder-status=dragging]')
|
|
@@ -21,13 +21,13 @@ export const ColumnResizingMixin = (superClass) =>
|
|
|
21
21
|
// Disable contextmenu on any resize separator.
|
|
22
22
|
scroller.addEventListener(
|
|
23
23
|
'contextmenu',
|
|
24
|
-
(e) => e.target.getAttribute('part')
|
|
24
|
+
(e) => e.target.getAttribute('part') === 'resize-handle' && e.preventDefault(),
|
|
25
25
|
);
|
|
26
26
|
|
|
27
27
|
// Disable native cell focus when resizing
|
|
28
28
|
scroller.addEventListener(
|
|
29
29
|
'mousedown',
|
|
30
|
-
(e) => e.target.getAttribute('part') === 'resize-handle' && e.preventDefault()
|
|
30
|
+
(e) => e.target.getAttribute('part') === 'resize-handle' && e.preventDefault(),
|
|
31
31
|
);
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -42,14 +42,10 @@ export const ColumnResizingMixin = (superClass) =>
|
|
|
42
42
|
|
|
43
43
|
// Get the target column to resize
|
|
44
44
|
while (column.localName === 'vaadin-grid-column-group') {
|
|
45
|
-
column =
|
|
46
|
-
.
|
|
47
|
-
.sort(
|
|
48
|
-
|
|
49
|
-
})
|
|
50
|
-
.filter(function (column) {
|
|
51
|
-
return !column.hidden;
|
|
52
|
-
})
|
|
45
|
+
column = column._childColumns
|
|
46
|
+
.slice(0)
|
|
47
|
+
.sort((a, b) => a._order - b._order)
|
|
48
|
+
.filter((column) => !column.hidden)
|
|
53
49
|
.pop();
|
|
54
50
|
}
|
|
55
51
|
|
|
@@ -80,17 +76,15 @@ export const ColumnResizingMixin = (superClass) =>
|
|
|
80
76
|
maxWidth = cellWidth + (this.__isRTL ? cellRect.left - eventX : eventX - cellRect.right);
|
|
81
77
|
}
|
|
82
78
|
|
|
83
|
-
column.width = Math.max(minWidth, maxWidth)
|
|
79
|
+
column.width = `${Math.max(minWidth, maxWidth)}px`;
|
|
84
80
|
column.flexGrow = 0;
|
|
85
81
|
}
|
|
86
82
|
// Fix width and flex-grow for all preceding columns
|
|
87
83
|
columnRowCells
|
|
88
|
-
.sort(
|
|
89
|
-
|
|
90
|
-
})
|
|
91
|
-
.forEach(function (cell, index, array) {
|
|
84
|
+
.sort((a, b) => a._column._order - b._column._order)
|
|
85
|
+
.forEach((cell, index, array) => {
|
|
92
86
|
if (index < array.indexOf(targetCell)) {
|
|
93
|
-
cell._column.width = cell.offsetWidth
|
|
87
|
+
cell._column.width = `${cell.offsetWidth}px`;
|
|
94
88
|
cell._column.flexGrow = 0;
|
|
95
89
|
}
|
|
96
90
|
});
|
|
@@ -111,8 +105,8 @@ export const ColumnResizingMixin = (superClass) =>
|
|
|
111
105
|
this.$.scroller.toggleAttribute('column-resizing', false);
|
|
112
106
|
this.dispatchEvent(
|
|
113
107
|
new CustomEvent('column-resize', {
|
|
114
|
-
detail: { resizedColumn: column }
|
|
115
|
-
})
|
|
108
|
+
detail: { resizedColumn: column },
|
|
109
|
+
}),
|
|
116
110
|
);
|
|
117
111
|
}
|
|
118
112
|
|
|
@@ -9,7 +9,7 @@ import { GridDefaultItem, GridItemModel } from './vaadin-grid.js';
|
|
|
9
9
|
export type GridBodyRenderer<TItem> = (
|
|
10
10
|
root: HTMLElement,
|
|
11
11
|
column: GridColumn<TItem>,
|
|
12
|
-
model: GridItemModel<TItem
|
|
12
|
+
model: GridItemModel<TItem>,
|
|
13
13
|
) => void;
|
|
14
14
|
|
|
15
15
|
export type GridColumnTextAlign = 'start' | 'center' | 'end' | null;
|
|
@@ -17,7 +17,7 @@ export type GridColumnTextAlign = 'start' | 'center' | 'end' | null;
|
|
|
17
17
|
export type GridHeaderFooterRenderer<TItem> = (root: HTMLElement, column: GridColumn<TItem>) => void;
|
|
18
18
|
|
|
19
19
|
export declare function ColumnBaseMixin<TItem, T extends Constructor<HTMLElement>>(
|
|
20
|
-
base: T
|
|
20
|
+
base: T,
|
|
21
21
|
): T & Constructor<ColumnBaseMixinClass<TItem>>;
|
|
22
22
|
|
|
23
23
|
export declare class ColumnBaseMixinClass<TItem> {
|
|
@@ -22,7 +22,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
22
22
|
*/
|
|
23
23
|
resizable: {
|
|
24
24
|
type: Boolean,
|
|
25
|
-
value
|
|
25
|
+
value() {
|
|
26
26
|
if (this.localName === 'vaadin-grid-column-group') {
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
@@ -32,7 +32,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
32
32
|
return parent.resizable || false;
|
|
33
33
|
}
|
|
34
34
|
return false;
|
|
35
|
-
}
|
|
35
|
+
},
|
|
36
36
|
},
|
|
37
37
|
|
|
38
38
|
/**
|
|
@@ -42,7 +42,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
42
42
|
*/
|
|
43
43
|
frozen: {
|
|
44
44
|
type: Boolean,
|
|
45
|
-
value: false
|
|
45
|
+
value: false,
|
|
46
46
|
},
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -57,7 +57,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
57
57
|
*/
|
|
58
58
|
frozenToEnd: {
|
|
59
59
|
type: Boolean,
|
|
60
|
-
value: false
|
|
60
|
+
value: false,
|
|
61
61
|
},
|
|
62
62
|
|
|
63
63
|
/**
|
|
@@ -65,14 +65,14 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
65
65
|
*/
|
|
66
66
|
hidden: {
|
|
67
67
|
type: Boolean,
|
|
68
|
-
value: false
|
|
68
|
+
value: false,
|
|
69
69
|
},
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* Text content to display in the header cell of the column.
|
|
73
73
|
*/
|
|
74
74
|
header: {
|
|
75
|
-
type: String
|
|
75
|
+
type: String,
|
|
76
76
|
},
|
|
77
77
|
|
|
78
78
|
/**
|
|
@@ -82,7 +82,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
82
82
|
* @type {GridColumnTextAlign | null | undefined}
|
|
83
83
|
*/
|
|
84
84
|
textAlign: {
|
|
85
|
-
type: String
|
|
85
|
+
type: String,
|
|
86
86
|
},
|
|
87
87
|
|
|
88
88
|
/**
|
|
@@ -91,7 +91,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
91
91
|
*/
|
|
92
92
|
_lastFrozen: {
|
|
93
93
|
type: Boolean,
|
|
94
|
-
value: false
|
|
94
|
+
value: false,
|
|
95
95
|
},
|
|
96
96
|
|
|
97
97
|
/**
|
|
@@ -100,7 +100,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
100
100
|
*/
|
|
101
101
|
_firstFrozenToEnd: {
|
|
102
102
|
type: Boolean,
|
|
103
|
-
value: false
|
|
103
|
+
value: false,
|
|
104
104
|
},
|
|
105
105
|
|
|
106
106
|
/** @protected */
|
|
@@ -134,7 +134,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
134
134
|
*/
|
|
135
135
|
__initialized: {
|
|
136
136
|
type: Boolean,
|
|
137
|
-
value: true
|
|
137
|
+
value: true,
|
|
138
138
|
},
|
|
139
139
|
|
|
140
140
|
/**
|
|
@@ -157,7 +157,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
157
157
|
*/
|
|
158
158
|
_headerRenderer: {
|
|
159
159
|
type: Function,
|
|
160
|
-
computed: '_computeHeaderRenderer(headerRenderer, header, __initialized)'
|
|
160
|
+
computed: '_computeHeaderRenderer(headerRenderer, header, __initialized)',
|
|
161
161
|
},
|
|
162
162
|
|
|
163
163
|
/**
|
|
@@ -180,7 +180,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
180
180
|
*/
|
|
181
181
|
_footerRenderer: {
|
|
182
182
|
type: Function,
|
|
183
|
-
computed: '_computeFooterRenderer(footerRenderer, __initialized)'
|
|
183
|
+
computed: '_computeFooterRenderer(footerRenderer, __initialized)',
|
|
184
184
|
},
|
|
185
185
|
|
|
186
186
|
/**
|
|
@@ -191,8 +191,8 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
191
191
|
*/
|
|
192
192
|
__gridColumnElement: {
|
|
193
193
|
type: Boolean,
|
|
194
|
-
value: true
|
|
195
|
-
}
|
|
194
|
+
value: true,
|
|
195
|
+
},
|
|
196
196
|
};
|
|
197
197
|
}
|
|
198
198
|
|
|
@@ -211,7 +211,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
211
211
|
'_onFooterRendererOrBindingChanged(_footerRenderer, _footerCell)',
|
|
212
212
|
'_resizableChanged(resizable, _headerCell)',
|
|
213
213
|
'_reorderStatusChanged(_reorderStatus, _headerCell, _footerCell, _cells.*)',
|
|
214
|
-
'_hiddenChanged(hidden, _headerCell, _footerCell, _cells.*)'
|
|
214
|
+
'_hiddenChanged(hidden, _headerCell, _footerCell, _cells.*)',
|
|
215
215
|
];
|
|
216
216
|
}
|
|
217
217
|
|
|
@@ -267,7 +267,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
267
267
|
* @protected
|
|
268
268
|
*/
|
|
269
269
|
_findHostGrid() {
|
|
270
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
270
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this
|
|
271
271
|
let el = this;
|
|
272
272
|
// Custom elements extending grid must have a specific localName
|
|
273
273
|
while (el && !/^vaadin.*grid(-pro)?$/.test(el.localName)) {
|
|
@@ -337,7 +337,9 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
337
337
|
|
|
338
338
|
this._allCells.forEach((cell) => cell.toggleAttribute('frozen', frozen));
|
|
339
339
|
|
|
340
|
-
|
|
340
|
+
if (this._grid && this._grid._frozenCellsChanged) {
|
|
341
|
+
this._grid._frozenCellsChanged();
|
|
342
|
+
}
|
|
341
343
|
}
|
|
342
344
|
|
|
343
345
|
/** @private */
|
|
@@ -354,7 +356,9 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
354
356
|
cell.toggleAttribute('frozen-to-end', frozenToEnd);
|
|
355
357
|
});
|
|
356
358
|
|
|
357
|
-
|
|
359
|
+
if (this._grid && this._grid._frozenCellsChanged) {
|
|
360
|
+
this._grid._frozenCellsChanged();
|
|
361
|
+
}
|
|
358
362
|
}
|
|
359
363
|
|
|
360
364
|
/** @private */
|
|
@@ -477,11 +481,16 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
477
481
|
if (this._grid && this._grid._renderColumnTree) {
|
|
478
482
|
this._grid._renderColumnTree(this._grid._columnTree);
|
|
479
483
|
}
|
|
480
|
-
}
|
|
484
|
+
},
|
|
481
485
|
);
|
|
482
486
|
|
|
483
|
-
|
|
484
|
-
|
|
487
|
+
if (this._grid._updateFrozenColumn) {
|
|
488
|
+
this._grid._updateFrozenColumn();
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
if (this._grid._resetKeyboardNavigation) {
|
|
492
|
+
this._grid._resetKeyboardNavigation();
|
|
493
|
+
}
|
|
485
494
|
}
|
|
486
495
|
this._previousHidden = hidden;
|
|
487
496
|
}
|
|
@@ -609,7 +618,9 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
609
618
|
|
|
610
619
|
/** @private */
|
|
611
620
|
__setTextContent(node, textContent) {
|
|
612
|
-
|
|
621
|
+
if (node.textContent !== textContent) {
|
|
622
|
+
node.textContent = textContent;
|
|
623
|
+
}
|
|
613
624
|
}
|
|
614
625
|
|
|
615
626
|
/**
|
|
@@ -731,7 +742,7 @@ class GridColumn extends ColumnBaseMixin(DirMixin(PolymerElement)) {
|
|
|
731
742
|
*/
|
|
732
743
|
width: {
|
|
733
744
|
type: String,
|
|
734
|
-
value: '100px'
|
|
745
|
+
value: '100px',
|
|
735
746
|
},
|
|
736
747
|
|
|
737
748
|
/**
|
|
@@ -741,7 +752,7 @@ class GridColumn extends ColumnBaseMixin(DirMixin(PolymerElement)) {
|
|
|
741
752
|
*/
|
|
742
753
|
flexGrow: {
|
|
743
754
|
type: Number,
|
|
744
|
-
value: 1
|
|
755
|
+
value: 1,
|
|
745
756
|
},
|
|
746
757
|
|
|
747
758
|
/**
|
|
@@ -772,7 +783,7 @@ class GridColumn extends ColumnBaseMixin(DirMixin(PolymerElement)) {
|
|
|
772
783
|
*/
|
|
773
784
|
_renderer: {
|
|
774
785
|
type: Function,
|
|
775
|
-
computed: '_computeRenderer(renderer, __initialized)'
|
|
786
|
+
computed: '_computeRenderer(renderer, __initialized)',
|
|
776
787
|
},
|
|
777
788
|
|
|
778
789
|
/**
|
|
@@ -780,7 +791,7 @@ class GridColumn extends ColumnBaseMixin(DirMixin(PolymerElement)) {
|
|
|
780
791
|
* The property name is also shown in the column header if an explicit header or renderer isn't defined.
|
|
781
792
|
*/
|
|
782
793
|
path: {
|
|
783
|
-
type: String
|
|
794
|
+
type: String,
|
|
784
795
|
},
|
|
785
796
|
|
|
786
797
|
/**
|
|
@@ -802,14 +813,14 @@ class GridColumn extends ColumnBaseMixin(DirMixin(PolymerElement)) {
|
|
|
802
813
|
*/
|
|
803
814
|
autoWidth: {
|
|
804
815
|
type: Boolean,
|
|
805
|
-
value: false
|
|
816
|
+
value: false,
|
|
806
817
|
},
|
|
807
818
|
|
|
808
819
|
/**
|
|
809
820
|
* @type {Array<!HTMLElement>}
|
|
810
821
|
* @protected
|
|
811
822
|
*/
|
|
812
|
-
_cells: Array
|
|
823
|
+
_cells: Array,
|
|
813
824
|
};
|
|
814
825
|
}
|
|
815
826
|
}
|
|
@@ -30,7 +30,7 @@ export type GridDataProviderParams<TItem> = {
|
|
|
30
30
|
|
|
31
31
|
export type GridDataProvider<TItem> = (
|
|
32
32
|
params: GridDataProviderParams<TItem>,
|
|
33
|
-
callback: GridDataProviderCallback<TItem
|
|
33
|
+
callback: GridDataProviderCallback<TItem>,
|
|
34
34
|
) => void;
|
|
35
35
|
|
|
36
36
|
export declare class ItemCache<TItem> {
|
|
@@ -57,7 +57,7 @@ export declare class ItemCache<TItem> {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
export declare function DataProviderMixin<TItem, T extends Constructor<HTMLElement>>(
|
|
60
|
-
base: T
|
|
60
|
+
base: T,
|
|
61
61
|
): T & Constructor<DataProviderMixinClass<TItem>>;
|
|
62
62
|
|
|
63
63
|
export declare class DataProviderMixinClass<TItem> {
|