@vaadin/grid 23.1.0-alpha3 → 23.1.0-alpha4
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/package.json +9 -9
- 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 +22 -21
- package/src/vaadin-grid-column-reordering-mixin.d.ts +1 -1
- package/src/vaadin-grid-column-reordering-mixin.js +10 -10
- 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 +38 -27
- package/src/vaadin-grid-data-provider-mixin.d.ts +2 -2
- package/src/vaadin-grid-data-provider-mixin.js +15 -15
- 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 -4
- package/src/vaadin-grid-filter.d.ts +2 -2
- package/src/vaadin-grid-filter.js +2 -2
- package/src/vaadin-grid-keyboard-navigation-mixin.js +15 -15
- package/src/vaadin-grid-row-details-mixin.d.ts +2 -2
- package/src/vaadin-grid-row-details-mixin.js +4 -4
- package/src/vaadin-grid-scroll-mixin.js +7 -7
- package/src/vaadin-grid-selection-column.d.ts +2 -2
- package/src/vaadin-grid-selection-column.js +7 -7
- 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 -7
- 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 +1 -1
- 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 +5 -5
- package/src/vaadin-grid.js +45 -41
- 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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/grid",
|
|
3
|
-
"version": "23.1.0-
|
|
3
|
+
"version": "23.1.0-alpha4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -41,19 +41,19 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
43
43
|
"@polymer/polymer": "^3.0.0",
|
|
44
|
-
"@vaadin/checkbox": "23.1.0-
|
|
45
|
-
"@vaadin/component-base": "23.1.0-
|
|
46
|
-
"@vaadin/text-field": "23.1.0-
|
|
47
|
-
"@vaadin/vaadin-lumo-styles": "23.1.0-
|
|
48
|
-
"@vaadin/vaadin-material-styles": "23.1.0-
|
|
49
|
-
"@vaadin/vaadin-themable-mixin": "23.1.0-
|
|
44
|
+
"@vaadin/checkbox": "23.1.0-alpha4",
|
|
45
|
+
"@vaadin/component-base": "23.1.0-alpha4",
|
|
46
|
+
"@vaadin/text-field": "23.1.0-alpha4",
|
|
47
|
+
"@vaadin/vaadin-lumo-styles": "23.1.0-alpha4",
|
|
48
|
+
"@vaadin/vaadin-material-styles": "23.1.0-alpha4",
|
|
49
|
+
"@vaadin/vaadin-themable-mixin": "23.1.0-alpha4"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@esm-bundle/chai": "^4.3.4",
|
|
53
|
-
"@vaadin/polymer-legacy-adapter": "23.1.0-
|
|
53
|
+
"@vaadin/polymer-legacy-adapter": "23.1.0-alpha4",
|
|
54
54
|
"@vaadin/testing-helpers": "^0.3.2",
|
|
55
55
|
"lit": "^2.0.0",
|
|
56
56
|
"sinon": "^13.0.2"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "aacdb7fe09811894751f0378ff7fb66071892c71"
|
|
59
59
|
}
|
|
@@ -32,7 +32,7 @@ export const A11yMixin = (superClass) =>
|
|
|
32
32
|
const bodyColumns = _columnTree[_columnTree.length - 1];
|
|
33
33
|
this.$.table.setAttribute(
|
|
34
34
|
'aria-rowcount',
|
|
35
|
-
size + this._a11yGetHeaderRowCount(_columnTree) + this._a11yGetFooterRowCount(_columnTree)
|
|
35
|
+
size + this._a11yGetHeaderRowCount(_columnTree) + this._a11yGetFooterRowCount(_columnTree),
|
|
36
36
|
);
|
|
37
37
|
this.$.table.setAttribute('aria-colcount', (bodyColumns && bodyColumns.length) || 0);
|
|
38
38
|
|
|
@@ -43,14 +43,14 @@ export const A11yMixin = (superClass) =>
|
|
|
43
43
|
/** @protected */
|
|
44
44
|
_a11yUpdateHeaderRows() {
|
|
45
45
|
Array.from(this.$.header.children).forEach((headerRow, index) =>
|
|
46
|
-
headerRow.setAttribute('aria-rowindex', index + 1)
|
|
46
|
+
headerRow.setAttribute('aria-rowindex', index + 1),
|
|
47
47
|
);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
/** @protected */
|
|
51
51
|
_a11yUpdateFooterRows() {
|
|
52
52
|
Array.from(this.$.footer.children).forEach((footerRow, index) =>
|
|
53
|
-
footerRow.setAttribute('aria-rowindex', this._a11yGetHeaderRowCount(this._columnTree) + this.size + index + 1)
|
|
53
|
+
footerRow.setAttribute('aria-rowindex', this._a11yGetHeaderRowCount(this._columnTree) + this.size + index + 1),
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -137,8 +137,8 @@ export const A11yMixin = (superClass) =>
|
|
|
137
137
|
'aria-sort',
|
|
138
138
|
{
|
|
139
139
|
asc: 'ascending',
|
|
140
|
-
desc: 'descending'
|
|
141
|
-
}[String(sorter.direction)] || 'none'
|
|
140
|
+
desc: 'descending',
|
|
141
|
+
}[String(sorter.direction)] || 'none',
|
|
142
142
|
);
|
|
143
143
|
}
|
|
144
144
|
});
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
7
|
|
|
8
8
|
export declare function ActiveItemMixin<TItem, T extends Constructor<HTMLElement>>(
|
|
9
|
-
base: T
|
|
9
|
+
base: T,
|
|
10
10
|
): T & Constructor<ActiveItemMixinClass<TItem>>;
|
|
11
11
|
|
|
12
12
|
export declare class ActiveItemMixinClass<TItem> {
|
|
@@ -19,8 +19,8 @@ export const ActiveItemMixin = (superClass) =>
|
|
|
19
19
|
activeItem: {
|
|
20
20
|
type: Object,
|
|
21
21
|
notify: true,
|
|
22
|
-
value: null
|
|
23
|
-
}
|
|
22
|
+
value: null,
|
|
23
|
+
},
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -68,9 +68,9 @@ export const ActiveItemMixin = (superClass) =>
|
|
|
68
68
|
this.dispatchEvent(
|
|
69
69
|
new CustomEvent('cell-activate', {
|
|
70
70
|
detail: {
|
|
71
|
-
model: this.__getRowModel(cell.parentElement)
|
|
72
|
-
}
|
|
73
|
-
})
|
|
71
|
+
model: this.__getRowModel(cell.parentElement),
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -108,10 +108,10 @@ export const isFocusable = (target) => {
|
|
|
108
108
|
}
|
|
109
109
|
const focusables = Array.from(
|
|
110
110
|
target.parentNode.querySelectorAll(
|
|
111
|
-
'[tabindex], button, input, select, textarea, object, iframe, label, a[href], area[href]'
|
|
112
|
-
)
|
|
111
|
+
'[tabindex], button, input, select, textarea, object, iframe, label, a[href], area[href]',
|
|
112
|
+
),
|
|
113
113
|
).filter((element) => element.getAttribute('part') !== 'cell body-cell');
|
|
114
114
|
|
|
115
|
-
const isFocusableElement = focusables.
|
|
115
|
+
const isFocusableElement = focusables.includes(target);
|
|
116
116
|
return !target.disabled && isFocusableElement;
|
|
117
117
|
};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
7
|
|
|
8
8
|
export declare function ArrayDataProviderMixin<TItem, T extends Constructor<HTMLElement>>(
|
|
9
|
-
base: T
|
|
9
|
+
base: T,
|
|
10
10
|
): T & Constructor<ArrayDataProviderMixinClass<TItem>>;
|
|
11
11
|
|
|
12
12
|
export declare class ArrayDataProviderMixinClass<TItem> {
|
|
@@ -17,7 +17,7 @@ export const ArrayDataProviderMixin = (superClass) =>
|
|
|
17
17
|
*
|
|
18
18
|
* @type {Array<!GridItem> | undefined}
|
|
19
19
|
*/
|
|
20
|
-
items: Array
|
|
20
|
+
items: Array,
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -32,7 +32,7 @@ export const ArrayDataProviderMixin = (superClass) =>
|
|
|
32
32
|
this.setProperties({
|
|
33
33
|
_arrayDataProvider: arrayDataProvider,
|
|
34
34
|
size: items.length,
|
|
35
|
-
dataProvider: arrayDataProvider
|
|
35
|
+
dataProvider: arrayDataProvider,
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -49,14 +49,14 @@ export const ArrayDataProviderMixin = (superClass) =>
|
|
|
49
49
|
// A custom data provider was set externally
|
|
50
50
|
this.setProperties({
|
|
51
51
|
_arrayDataProvider: undefined,
|
|
52
|
-
items: undefined
|
|
52
|
+
items: undefined,
|
|
53
53
|
});
|
|
54
54
|
} else if (!items) {
|
|
55
55
|
// The items array was unset
|
|
56
56
|
this.setProperties({
|
|
57
57
|
_arrayDataProvider: undefined,
|
|
58
58
|
dataProvider: undefined,
|
|
59
|
-
size: 0
|
|
59
|
+
size: 0,
|
|
60
60
|
});
|
|
61
61
|
this.clearCache();
|
|
62
62
|
} else if (this._arrayDataProvider.__items === items) {
|
|
@@ -52,7 +52,7 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
52
52
|
_childColumns: {
|
|
53
53
|
value: function () {
|
|
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,7 +79,7 @@ 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
|
|
|
@@ -94,7 +94,7 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
94
94
|
'_colSpanChanged(_colSpan, _headerCell, _footerCell)',
|
|
95
95
|
'_groupOrderChanged(_order, _rootColumns)',
|
|
96
96
|
'_groupReorderStatusChanged(_reorderStatus, _rootColumns)',
|
|
97
|
-
'_groupResizableChanged(resizable, _rootColumns)'
|
|
97
|
+
'_groupResizableChanged(resizable, _rootColumns)',
|
|
98
98
|
];
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -108,7 +108,9 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
108
108
|
/** @protected */
|
|
109
109
|
disconnectedCallback() {
|
|
110
110
|
super.disconnectedCallback();
|
|
111
|
-
|
|
111
|
+
if (this._observer) {
|
|
112
|
+
this._observer.disconnect();
|
|
113
|
+
}
|
|
112
114
|
}
|
|
113
115
|
|
|
114
116
|
/**
|
|
@@ -219,18 +221,11 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
219
221
|
return;
|
|
220
222
|
}
|
|
221
223
|
|
|
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
|
-
);
|
|
224
|
+
if (this._visibleChildColumns.length > 0) {
|
|
225
|
+
const width = this._visibleChildColumns
|
|
226
|
+
.reduce((prev, curr) => (prev += ` + ${(curr.width || '0px').replace('calc', '')}`), '')
|
|
227
|
+
.substring(3);
|
|
228
|
+
this._setWidth(`calc(${width})`);
|
|
234
229
|
} else {
|
|
235
230
|
this._setWidth('0px');
|
|
236
231
|
}
|
|
@@ -290,11 +285,15 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
290
285
|
_colSpanChanged(colSpan, headerCell, footerCell) {
|
|
291
286
|
if (headerCell) {
|
|
292
287
|
headerCell.setAttribute('colspan', colSpan);
|
|
293
|
-
|
|
288
|
+
if (this._grid) {
|
|
289
|
+
this._grid._a11yUpdateCellColspan(headerCell, colSpan);
|
|
290
|
+
}
|
|
294
291
|
}
|
|
295
292
|
if (footerCell) {
|
|
296
293
|
footerCell.setAttribute('colspan', colSpan);
|
|
297
|
-
|
|
294
|
+
if (this._grid) {
|
|
295
|
+
this._grid._a11yUpdateCellColspan(footerCell, colSpan);
|
|
296
|
+
}
|
|
298
297
|
}
|
|
299
298
|
}
|
|
300
299
|
|
|
@@ -321,7 +320,9 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
321
320
|
|
|
322
321
|
// Update the column tree with microtask timing to avoid shady style scope issues
|
|
323
322
|
microTask.run(() => {
|
|
324
|
-
|
|
323
|
+
if (this._grid && this._grid._updateColumnTree) {
|
|
324
|
+
this._grid._updateColumnTree();
|
|
325
|
+
}
|
|
325
326
|
});
|
|
326
327
|
}
|
|
327
328
|
});
|
|
@@ -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
|
}
|
|
@@ -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> {
|
|
@@ -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> {
|