@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.
Files changed (58) hide show
  1. package/lit.d.ts +2 -0
  2. package/lit.js +2 -0
  3. package/package.json +12 -9
  4. package/src/array-data-provider.js +2 -2
  5. package/src/lit/column-renderer-directives.d.ts +152 -0
  6. package/src/lit/column-renderer-directives.js +149 -0
  7. package/src/lit/renderer-directives.d.ts +62 -0
  8. package/src/lit/renderer-directives.js +70 -0
  9. package/src/vaadin-grid-a11y-mixin.js +5 -5
  10. package/src/vaadin-grid-active-item-mixin.d.ts +1 -1
  11. package/src/vaadin-grid-active-item-mixin.js +8 -8
  12. package/src/vaadin-grid-array-data-provider-mixin.d.ts +1 -1
  13. package/src/vaadin-grid-array-data-provider-mixin.js +4 -4
  14. package/src/vaadin-grid-column-group.js +57 -53
  15. package/src/vaadin-grid-column-reordering-mixin.d.ts +1 -1
  16. package/src/vaadin-grid-column-reordering-mixin.js +12 -12
  17. package/src/vaadin-grid-column-resizing-mixin.js +12 -18
  18. package/src/vaadin-grid-column.d.ts +2 -2
  19. package/src/vaadin-grid-column.js +39 -28
  20. package/src/vaadin-grid-data-provider-mixin.d.ts +2 -2
  21. package/src/vaadin-grid-data-provider-mixin.js +18 -18
  22. package/src/vaadin-grid-drag-and-drop-mixin.d.ts +1 -1
  23. package/src/vaadin-grid-drag-and-drop-mixin.js +9 -9
  24. package/src/vaadin-grid-dynamic-columns-mixin.js +23 -24
  25. package/src/vaadin-grid-event-context-mixin.d.ts +1 -1
  26. package/src/vaadin-grid-event-context-mixin.js +1 -1
  27. package/src/vaadin-grid-filter-column.js +1 -1
  28. package/src/vaadin-grid-filter-mixin.js +4 -6
  29. package/src/vaadin-grid-filter.d.ts +2 -2
  30. package/src/vaadin-grid-filter.js +2 -2
  31. package/src/vaadin-grid-helpers.js +1 -1
  32. package/src/vaadin-grid-keyboard-navigation-mixin.js +20 -17
  33. package/src/vaadin-grid-row-details-mixin.d.ts +2 -2
  34. package/src/vaadin-grid-row-details-mixin.js +4 -6
  35. package/src/vaadin-grid-scroll-mixin.js +7 -10
  36. package/src/vaadin-grid-selection-column.d.ts +2 -2
  37. package/src/vaadin-grid-selection-column.js +8 -8
  38. package/src/vaadin-grid-selection-mixin.d.ts +1 -1
  39. package/src/vaadin-grid-selection-mixin.js +2 -2
  40. package/src/vaadin-grid-sort-column.d.ts +2 -2
  41. package/src/vaadin-grid-sort-column.js +2 -2
  42. package/src/vaadin-grid-sort-mixin.js +7 -11
  43. package/src/vaadin-grid-sorter.d.ts +2 -2
  44. package/src/vaadin-grid-sorter.js +4 -4
  45. package/src/vaadin-grid-styles.js +1 -1
  46. package/src/vaadin-grid-styling-mixin.d.ts +1 -1
  47. package/src/vaadin-grid-styling-mixin.js +2 -2
  48. package/src/vaadin-grid-tree-column.js +3 -3
  49. package/src/vaadin-grid-tree-toggle.d.ts +2 -2
  50. package/src/vaadin-grid-tree-toggle.js +4 -4
  51. package/src/vaadin-grid.d.ts +7 -7
  52. package/src/vaadin-grid.js +50 -45
  53. package/theme/lumo/vaadin-grid-sorter-styles.js +1 -1
  54. package/theme/lumo/vaadin-grid-styles.js +2 -2
  55. package/theme/lumo/vaadin-grid-tree-toggle-styles.js +1 -1
  56. package/theme/material/vaadin-grid-sorter-styles.js +1 -1
  57. package/theme/material/vaadin-grid-styles.js +1 -1
  58. 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: function () {
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, _rootColumns)',
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
- this._observer && this._observer.disconnect();
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
- this._preventHiddenCascade = true;
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._preventHiddenCascade = false;
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._setWidth(
224
- 'calc(' +
225
- Array.prototype.reduce
226
- .call(
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, rootColumns) {
267
- if (rootColumns && !this._preventHiddenCascade) {
268
- this._ignoreVisibleChildColumns = true;
269
- rootColumns.forEach((column) => (column.hidden = hidden));
270
- this._ignoreVisibleChildColumns = false;
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
- this._columnPropChanged('hidden');
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
- _visibleChildColumnsChanged(visibleChildColumns) {
278
- this._colSpan = visibleChildColumns.length;
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
- this._grid && this._grid._a11yUpdateCellColspan(headerCell, colSpan);
287
+ if (this._grid) {
288
+ this._grid._a11yUpdateCellColspan(headerCell, colSpan);
289
+ }
294
290
  }
295
291
  if (footerCell) {
296
292
  footerCell.setAttribute('colspan', colSpan);
297
- this._grid && this._grid._a11yUpdateCellColspan(footerCell, colSpan);
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
- this._preventHiddenCascade = true;
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._preventHiddenCascade = false;
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
- this._grid && this._grid._updateColumnTree && this._grid._updateColumnTree();
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) || // both columns are frozen
322
- (column1.frozenToEnd && column2.frozenToEnd) || // both columns are frozen to end
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') == 'resize-handle' && e.preventDefault()
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 = Array.prototype.slice
46
- .call(column._childColumns, 0)
47
- .sort(function (a, b) {
48
- return a._order - b._order;
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) + 'px';
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(function (a, b) {
89
- return a._column._order - b._column._order;
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 + 'px';
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: function () {
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
- this._grid && this._grid._frozenCellsChanged && this._grid._frozenCellsChanged();
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
- this._grid && this._grid._frozenCellsChanged && this._grid._frozenCellsChanged();
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
- this._grid._updateFrozenColumn && this._grid._updateFrozenColumn();
484
- this._grid._resetKeyboardNavigation && this._grid._resetKeyboardNavigation();
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
- node.textContent !== textContent && (node.textContent = textContent);
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> {