@vaadin/grid 22.0.0 → 22.0.4
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/all-imports.js +1 -1
- package/src/vaadin-grid-a11y-mixin.js +1 -1
- package/src/vaadin-grid-active-item-mixin.d.ts +1 -1
- package/src/vaadin-grid-active-item-mixin.js +1 -1
- package/src/vaadin-grid-array-data-provider-mixin.d.ts +1 -1
- package/src/vaadin-grid-array-data-provider-mixin.js +1 -1
- package/src/vaadin-grid-column-group.d.ts +1 -1
- package/src/vaadin-grid-column-group.js +1 -1
- package/src/vaadin-grid-column-reordering-mixin.d.ts +1 -1
- package/src/vaadin-grid-column-reordering-mixin.js +1 -1
- package/src/vaadin-grid-column-resizing-mixin.js +1 -1
- package/src/vaadin-grid-column.d.ts +1 -1
- package/src/vaadin-grid-column.js +11 -3
- package/src/vaadin-grid-data-provider-mixin.d.ts +1 -1
- package/src/vaadin-grid-data-provider-mixin.js +1 -1
- package/src/vaadin-grid-drag-and-drop-mixin.d.ts +1 -1
- package/src/vaadin-grid-drag-and-drop-mixin.js +1 -1
- package/src/vaadin-grid-dynamic-columns-mixin.js +1 -1
- 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.d.ts +1 -1
- package/src/vaadin-grid-filter-column.js +1 -1
- package/src/vaadin-grid-filter-mixin.js +1 -1
- package/src/vaadin-grid-filter.d.ts +1 -1
- package/src/vaadin-grid-filter.js +1 -1
- package/src/vaadin-grid-helpers.js +1 -1
- package/src/vaadin-grid-keyboard-navigation-mixin.js +39 -2
- package/src/vaadin-grid-row-details-mixin.d.ts +1 -1
- package/src/vaadin-grid-row-details-mixin.js +4 -2
- package/src/vaadin-grid-scroll-mixin.d.ts +1 -1
- package/src/vaadin-grid-scroll-mixin.js +1 -1
- package/src/vaadin-grid-selection-column.d.ts +1 -1
- package/src/vaadin-grid-selection-column.js +1 -1
- package/src/vaadin-grid-selection-mixin.d.ts +1 -1
- package/src/vaadin-grid-selection-mixin.js +3 -7
- package/src/vaadin-grid-sort-column.d.ts +1 -1
- package/src/vaadin-grid-sort-column.js +1 -1
- package/src/vaadin-grid-sort-mixin.d.ts +1 -1
- package/src/vaadin-grid-sort-mixin.js +1 -1
- package/src/vaadin-grid-sorter.d.ts +1 -1
- package/src/vaadin-grid-sorter.js +1 -1
- 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.d.ts +1 -1
- package/src/vaadin-grid-tree-column.js +1 -1
- package/src/vaadin-grid-tree-toggle.d.ts +1 -1
- package/src/vaadin-grid-tree-toggle.js +1 -1
- package/src/vaadin-grid.d.ts +3 -2
- package/src/vaadin-grid.js +9 -3
- package/theme/lumo/vaadin-grid-styles.js +4 -0
- package/theme/material/vaadin-grid-styles.js +4 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/grid",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -40,19 +40,19 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
42
42
|
"@polymer/polymer": "^3.0.0",
|
|
43
|
-
"@vaadin/checkbox": "^22.0.
|
|
44
|
-
"@vaadin/component-base": "^22.0.
|
|
45
|
-
"@vaadin/text-field": "^22.0.
|
|
46
|
-
"@vaadin/vaadin-lumo-styles": "^22.0.
|
|
47
|
-
"@vaadin/vaadin-material-styles": "^22.0.
|
|
48
|
-
"@vaadin/vaadin-themable-mixin": "^22.0.
|
|
43
|
+
"@vaadin/checkbox": "^22.0.4",
|
|
44
|
+
"@vaadin/component-base": "^22.0.4",
|
|
45
|
+
"@vaadin/text-field": "^22.0.4",
|
|
46
|
+
"@vaadin/vaadin-lumo-styles": "^22.0.4",
|
|
47
|
+
"@vaadin/vaadin-material-styles": "^22.0.4",
|
|
48
|
+
"@vaadin/vaadin-themable-mixin": "^22.0.4"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@esm-bundle/chai": "^4.3.4",
|
|
52
|
-
"@vaadin/polymer-legacy-adapter": "^22.0.
|
|
52
|
+
"@vaadin/polymer-legacy-adapter": "^22.0.4",
|
|
53
53
|
"@vaadin/testing-helpers": "^0.3.2",
|
|
54
54
|
"lit": "^2.0.0",
|
|
55
55
|
"sinon": "^9.2.0"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "55891f68d4da41e846e06dfe51dceba1665e41ce"
|
|
58
58
|
}
|
package/src/all-imports.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { createArrayDataProvider } from './array-data-provider.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { FlattenedNodesObserver } from '@polymer/polymer/lib/utils/flattened-nodes-observer.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { GestureEventListeners } from '@polymer/polymer/lib/mixins/gesture-event-listeners.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { GestureEventListeners } from '@polymer/polymer/lib/mixins/gesture-event-listeners.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
@@ -448,6 +448,10 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
448
448
|
}
|
|
449
449
|
|
|
450
450
|
cells.forEach((cell) => {
|
|
451
|
+
if (!cell.parentElement) {
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
|
|
451
455
|
const model = this._grid.__getRowModel(cell.parentElement);
|
|
452
456
|
|
|
453
457
|
if (!renderer) return;
|
|
@@ -490,7 +494,9 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
490
494
|
}
|
|
491
495
|
|
|
492
496
|
this.__renderCellsContent(headerRenderer, [headerCell]);
|
|
493
|
-
this._grid
|
|
497
|
+
if (this._grid) {
|
|
498
|
+
this._grid.__updateHeaderFooterRowVisibility(headerCell.parentElement);
|
|
499
|
+
}
|
|
494
500
|
}
|
|
495
501
|
|
|
496
502
|
/** @protected */
|
|
@@ -529,7 +535,9 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
529
535
|
}
|
|
530
536
|
|
|
531
537
|
this.__renderCellsContent(footerRenderer, [footerCell]);
|
|
532
|
-
this._grid
|
|
538
|
+
if (this._grid) {
|
|
539
|
+
this._grid.__updateHeaderFooterRowVisibility(footerCell.parentElement);
|
|
540
|
+
}
|
|
533
541
|
}
|
|
534
542
|
|
|
535
543
|
/** @protected */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { timeOut } from '@vaadin/component-base/src/async.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { FlattenedNodesObserver } from '@polymer/polymer/lib/utils/flattened-nodes-observer.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -130,6 +130,37 @@ export const KeyboardNavigationMixin = (superClass) =>
|
|
|
130
130
|
this._updateGridSectionFocusTarget(this._footerFocusable);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Since the focused cell/row state is stored as an element reference, the reference may get
|
|
135
|
+
* out of sync when the virtual indexes for elements update due to effective size change.
|
|
136
|
+
* This function updates the reference to the correct element after a possible index change.
|
|
137
|
+
* @private
|
|
138
|
+
*/
|
|
139
|
+
__updateItemsFocusable() {
|
|
140
|
+
if (!this._itemsFocusable) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const wasFocused = this.shadowRoot.activeElement === this._itemsFocusable;
|
|
145
|
+
|
|
146
|
+
this._getVisibleRows().forEach((row) => {
|
|
147
|
+
if (row.index === this._focusedItemIndex) {
|
|
148
|
+
if (this.__rowFocusMode) {
|
|
149
|
+
// Row focus mode
|
|
150
|
+
this._itemsFocusable = row;
|
|
151
|
+
} else if (this._itemsFocusable.parentElement) {
|
|
152
|
+
// Cell focus mode
|
|
153
|
+
const cellIndex = [...this._itemsFocusable.parentElement.children].indexOf(this._itemsFocusable);
|
|
154
|
+
this._itemsFocusable = row.children[cellIndex];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
if (wasFocused) {
|
|
160
|
+
this._itemsFocusable.focus();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
133
164
|
/**
|
|
134
165
|
* @param {!KeyboardEvent} e
|
|
135
166
|
* @protected
|
|
@@ -532,7 +563,11 @@ export const KeyboardNavigationMixin = (superClass) =>
|
|
|
532
563
|
|
|
533
564
|
if (this.interacting !== wantInteracting && cell !== null) {
|
|
534
565
|
if (wantInteracting) {
|
|
535
|
-
const focusTarget =
|
|
566
|
+
const focusTarget =
|
|
567
|
+
cell._content.querySelector('[focus-target]') ||
|
|
568
|
+
// If a child element hasn't been explicitly marked as a focus target,
|
|
569
|
+
// fall back to any focusable element inside the cell.
|
|
570
|
+
[...cell._content.querySelectorAll('*')].find((node) => this._isFocusable(node));
|
|
536
571
|
if (focusTarget) {
|
|
537
572
|
e.preventDefault();
|
|
538
573
|
focusTarget.focus();
|
|
@@ -804,6 +839,8 @@ export const KeyboardNavigationMixin = (superClass) =>
|
|
|
804
839
|
delete this._focusedColumnOrder;
|
|
805
840
|
this._itemsFocusable = this.__rowFocusMode ? firstVisibleRow : firstVisibleCell;
|
|
806
841
|
}
|
|
842
|
+
} else {
|
|
843
|
+
this.__updateItemsFocusable();
|
|
807
844
|
}
|
|
808
845
|
}
|
|
809
846
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -83,7 +83,9 @@ export const RowDetailsMixin = (superClass) =>
|
|
|
83
83
|
Array.from(this.$.items.children).forEach((row) => {
|
|
84
84
|
if (!row.querySelector('[part~=details-cell]')) {
|
|
85
85
|
this._updateRow(row, this._columnTree[this._columnTree.length - 1]);
|
|
86
|
-
this.
|
|
86
|
+
const isDetailsOpened = this._isDetailsOpened(row._item);
|
|
87
|
+
this._a11yUpdateRowDetailsOpened(row, isDetailsOpened);
|
|
88
|
+
this._toggleDetailsCell(row, isDetailsOpened);
|
|
87
89
|
}
|
|
88
90
|
});
|
|
89
91
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { animationFrame, microTask, timeOut } from '@vaadin/component-base/src/async.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -77,12 +77,8 @@ export const SelectionMixin = (superClass) =>
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
/** @private */
|
|
80
|
-
_selectedItemsChanged(
|
|
81
|
-
|
|
82
|
-
Array.from(this.$.items.children).forEach((row) => {
|
|
83
|
-
this._updateItem(row, row._item);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
80
|
+
_selectedItemsChanged() {
|
|
81
|
+
this.requestContentUpdate();
|
|
86
82
|
}
|
|
87
83
|
|
|
88
84
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
package/src/vaadin-grid.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { ElementMixinClass } from '@vaadin/component-base/src/element-mixin.js';
|
|
@@ -308,7 +308,7 @@ export interface GridEventMap<TItem> extends HTMLElementEventMap, GridCustomEven
|
|
|
308
308
|
* `reorder-status` | Reflects the status of a cell while columns are being reordered | cell
|
|
309
309
|
* `frozen` | Frozen cell | cell
|
|
310
310
|
* `last-frozen` | Last frozen cell | cell
|
|
311
|
-
*
|
|
311
|
+
* `first-column` | First visible cell on a row | cell
|
|
312
312
|
* `last-column` | Last visible cell on a row | cell
|
|
313
313
|
* `selected` | Selected row | row
|
|
314
314
|
* `expanded` | Expanded row | row
|
|
@@ -316,6 +316,7 @@ export interface GridEventMap<TItem> extends HTMLElementEventMap, GridCustomEven
|
|
|
316
316
|
* `loading` | Row that is waiting for data from data provider | row
|
|
317
317
|
* `odd` | Odd row | row
|
|
318
318
|
* `first` | The first body row | row
|
|
319
|
+
* `last` | The last body row | row
|
|
319
320
|
* `dragstart` | Set for one frame when drag of a row is starting. The value is a number when multiple rows are dragged | row
|
|
320
321
|
* `dragover` | Set when the row is dragged over | row
|
|
321
322
|
* `drag-disabled` | Set to a row that isn't available for dragging | row
|
package/src/vaadin-grid.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2016 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import './vaadin-grid-column.js';
|
|
@@ -194,7 +194,7 @@ import { StylingMixin } from './vaadin-grid-styling-mixin.js';
|
|
|
194
194
|
* `reorder-status` | Reflects the status of a cell while columns are being reordered | cell
|
|
195
195
|
* `frozen` | Frozen cell | cell
|
|
196
196
|
* `last-frozen` | Last frozen cell | cell
|
|
197
|
-
*
|
|
197
|
+
* `first-column` | First visible cell on a row | cell
|
|
198
198
|
* `last-column` | Last visible cell on a row | cell
|
|
199
199
|
* `selected` | Selected row | row
|
|
200
200
|
* `expanded` | Expanded row | row
|
|
@@ -202,6 +202,7 @@ import { StylingMixin } from './vaadin-grid-styling-mixin.js';
|
|
|
202
202
|
* `loading` | Row that is waiting for data from data provider | row
|
|
203
203
|
* `odd` | Odd row | row
|
|
204
204
|
* `first` | The first body row | row
|
|
205
|
+
* `last` | The last body row | row
|
|
205
206
|
* `dragstart` | Set for one frame when drag of a row is starting. The value is a number when multiple rows are dragged | row
|
|
206
207
|
* `dragover` | Set when the row is dragged over | row
|
|
207
208
|
* `drag-disabled` | Set to a row that isn't available for dragging | row
|
|
@@ -279,7 +280,7 @@ class Grid extends ElementMixin(
|
|
|
279
280
|
loading$="[[loading]]"
|
|
280
281
|
column-reordering-allowed$="[[columnReorderingAllowed]]"
|
|
281
282
|
>
|
|
282
|
-
<table id="table" role="
|
|
283
|
+
<table id="table" role="treegrid" aria-multiselectable="true" tabindex="0">
|
|
283
284
|
<caption id="sizer" part="row"></caption>
|
|
284
285
|
<thead id="header" role="rowgroup"></thead>
|
|
285
286
|
<tbody id="items" role="rowgroup"></tbody>
|
|
@@ -489,6 +490,7 @@ class Grid extends ElementMixin(
|
|
|
489
490
|
const cellCoordinates = this.__getBodyCellCoordinates(cell);
|
|
490
491
|
|
|
491
492
|
virtualizer.size = effectiveSize;
|
|
493
|
+
virtualizer.update();
|
|
492
494
|
virtualizer.flush();
|
|
493
495
|
|
|
494
496
|
// If the focused cell's parent row got hidden by the size change, focus the corresponding new cell
|
|
@@ -580,6 +582,9 @@ class Grid extends ElementMixin(
|
|
|
580
582
|
* @private
|
|
581
583
|
*/
|
|
582
584
|
_recalculateColumnWidths(cols) {
|
|
585
|
+
// Flush to make sure DOM is up-to-date when measuring the column widths
|
|
586
|
+
this.__virtualizer.flush();
|
|
587
|
+
|
|
583
588
|
cols.forEach((col) => {
|
|
584
589
|
col.width = `${this.__getDistributedWidth(col)}px`;
|
|
585
590
|
});
|
|
@@ -819,6 +824,7 @@ class Grid extends ElementMixin(
|
|
|
819
824
|
}
|
|
820
825
|
|
|
821
826
|
row.toggleAttribute('first', index === 0);
|
|
827
|
+
row.toggleAttribute('last', index === this._effectiveSize - 1);
|
|
822
828
|
row.toggleAttribute('odd', index % 2);
|
|
823
829
|
this._a11yUpdateRowRowindex(row, index);
|
|
824
830
|
this._getItem(index, row);
|
|
@@ -133,6 +133,10 @@ registerStyles(
|
|
|
133
133
|
margin-top: -1px;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
+
:host([all-rows-visible]) [part~='row'][last][dragover='below'] [part~='cell']::after {
|
|
137
|
+
height: 1px;
|
|
138
|
+
}
|
|
139
|
+
|
|
136
140
|
[part~='row'][dragover='above'] [part~='cell']::after {
|
|
137
141
|
top: auto;
|
|
138
142
|
bottom: 100%;
|
|
@@ -183,6 +183,10 @@ registerStyles(
|
|
|
183
183
|
margin-top: -1px;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
+
:host([all-rows-visible]) [part~='row'][last][dragover='below'] [part~='cell']::after {
|
|
187
|
+
height: 1px;
|
|
188
|
+
}
|
|
189
|
+
|
|
186
190
|
[part~='row'][dragover='above'] [part~='cell']::after {
|
|
187
191
|
top: auto;
|
|
188
192
|
bottom: 100%;
|
|
@@ -200,8 +204,6 @@ registerStyles(
|
|
|
200
204
|
}
|
|
201
205
|
|
|
202
206
|
[part~='row'][dragstart] {
|
|
203
|
-
/* Add bottom-space to the row so the drag number doesn't get clipped. Needed for IE/Edge */
|
|
204
|
-
border-bottom: 100px solid transparent;
|
|
205
207
|
z-index: 100 !important;
|
|
206
208
|
opacity: 0.9;
|
|
207
209
|
}
|