@vaadin/grid 23.0.7 → 23.0.10

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 (50) hide show
  1. package/package.json +9 -9
  2. package/src/vaadin-grid-a11y-mixin.js +5 -5
  3. package/src/vaadin-grid-active-item-mixin.d.ts +1 -1
  4. package/src/vaadin-grid-active-item-mixin.js +7 -7
  5. package/src/vaadin-grid-array-data-provider-mixin.d.ts +1 -1
  6. package/src/vaadin-grid-array-data-provider-mixin.js +4 -4
  7. package/src/vaadin-grid-column-group.js +41 -38
  8. package/src/vaadin-grid-column-reordering-mixin.d.ts +1 -1
  9. package/src/vaadin-grid-column-reordering-mixin.js +10 -10
  10. package/src/vaadin-grid-column-resizing-mixin.js +4 -4
  11. package/src/vaadin-grid-column.d.ts +2 -2
  12. package/src/vaadin-grid-column.js +19 -19
  13. package/src/vaadin-grid-data-provider-mixin.d.ts +2 -2
  14. package/src/vaadin-grid-data-provider-mixin.js +15 -15
  15. package/src/vaadin-grid-drag-and-drop-mixin.d.ts +1 -1
  16. package/src/vaadin-grid-drag-and-drop-mixin.js +9 -9
  17. package/src/vaadin-grid-dynamic-columns-mixin.js +3 -3
  18. package/src/vaadin-grid-event-context-mixin.d.ts +1 -1
  19. package/src/vaadin-grid-event-context-mixin.js +1 -1
  20. package/src/vaadin-grid-filter-column.js +1 -1
  21. package/src/vaadin-grid-filter-mixin.js +3 -3
  22. package/src/vaadin-grid-filter.d.ts +2 -2
  23. package/src/vaadin-grid-filter.js +2 -2
  24. package/src/vaadin-grid-keyboard-navigation-mixin.js +20 -15
  25. package/src/vaadin-grid-row-details-mixin.d.ts +2 -2
  26. package/src/vaadin-grid-row-details-mixin.js +4 -4
  27. package/src/vaadin-grid-scroll-mixin.js +3 -3
  28. package/src/vaadin-grid-selection-column.d.ts +2 -2
  29. package/src/vaadin-grid-selection-column.js +7 -7
  30. package/src/vaadin-grid-selection-mixin.d.ts +1 -1
  31. package/src/vaadin-grid-selection-mixin.js +21 -7
  32. package/src/vaadin-grid-sort-column.d.ts +2 -2
  33. package/src/vaadin-grid-sort-column.js +2 -2
  34. package/src/vaadin-grid-sort-mixin.js +5 -5
  35. package/src/vaadin-grid-sorter.d.ts +2 -2
  36. package/src/vaadin-grid-sorter.js +4 -4
  37. package/src/vaadin-grid-styles.js +1 -1
  38. package/src/vaadin-grid-styling-mixin.d.ts +1 -1
  39. package/src/vaadin-grid-styling-mixin.js +2 -2
  40. package/src/vaadin-grid-tree-column.js +3 -3
  41. package/src/vaadin-grid-tree-toggle.d.ts +2 -2
  42. package/src/vaadin-grid-tree-toggle.js +4 -4
  43. package/src/vaadin-grid.d.ts +5 -5
  44. package/src/vaadin-grid.js +36 -35
  45. package/theme/lumo/vaadin-grid-sorter-styles.js +1 -1
  46. package/theme/lumo/vaadin-grid-styles.js +2 -2
  47. package/theme/lumo/vaadin-grid-tree-toggle-styles.js +1 -1
  48. package/theme/material/vaadin-grid-sorter-styles.js +1 -1
  49. package/theme/material/vaadin-grid-styles.js +1 -1
  50. package/theme/material/vaadin-grid-tree-toggle-styles.js +1 -1
@@ -18,7 +18,7 @@ export const SortMixin = (superClass) =>
18
18
  */
19
19
  multiSort: {
20
20
  type: Boolean,
21
- value: false
21
+ value: false,
22
22
  },
23
23
 
24
24
  /**
@@ -29,7 +29,7 @@ export const SortMixin = (superClass) =>
29
29
  type: Array,
30
30
  value: function () {
31
31
  return [];
32
- }
32
+ },
33
33
  },
34
34
 
35
35
  /** @private */
@@ -37,8 +37,8 @@ export const SortMixin = (superClass) =>
37
37
  type: Array,
38
38
  value: function () {
39
39
  return [];
40
- }
41
- }
40
+ },
41
+ },
42
42
  };
43
43
  }
44
44
 
@@ -122,7 +122,7 @@ export const SortMixin = (superClass) =>
122
122
  return this._sorters.map((sorter) => {
123
123
  return {
124
124
  path: sorter.path,
125
- direction: sorter.direction
125
+ direction: sorter.direction,
126
126
  };
127
127
  });
128
128
  }
@@ -76,13 +76,13 @@ declare class GridSorter extends ThemableMixin(DirMixin(HTMLElement)) {
76
76
  addEventListener<K extends keyof GridSorterEventMap>(
77
77
  type: K,
78
78
  listener: (this: GridSorter, ev: GridSorterEventMap[K]) => void,
79
- options?: boolean | AddEventListenerOptions
79
+ options?: boolean | AddEventListenerOptions,
80
80
  ): void;
81
81
 
82
82
  removeEventListener<K extends keyof GridSorterEventMap>(
83
83
  type: K,
84
84
  listener: (this: GridSorter, ev: GridSorterEventMap[K]) => void,
85
- options?: boolean | EventListenerOptions
85
+ options?: boolean | EventListenerOptions,
86
86
  ): void;
87
87
  }
88
88
 
@@ -136,7 +136,7 @@ class GridSorter extends ThemableMixin(DirMixin(PolymerElement)) {
136
136
  type: String,
137
137
  reflectToAttribute: true,
138
138
  notify: true,
139
- value: null
139
+ value: null,
140
140
  },
141
141
 
142
142
  /**
@@ -145,14 +145,14 @@ class GridSorter extends ThemableMixin(DirMixin(PolymerElement)) {
145
145
  */
146
146
  _order: {
147
147
  type: Number,
148
- value: null
148
+ value: null,
149
149
  },
150
150
 
151
151
  /** @private */
152
152
  _isConnected: {
153
153
  type: Boolean,
154
- observer: '__isConnectedChanged'
155
- }
154
+ observer: '__isConnectedChanged',
155
+ },
156
156
  };
157
157
  }
158
158
 
@@ -297,5 +297,5 @@ registerStyles(
297
297
  right: auto;
298
298
  }
299
299
  `,
300
- { moduleId: 'vaadin-grid-styles' }
300
+ { moduleId: 'vaadin-grid-styles' },
301
301
  );
@@ -10,7 +10,7 @@ import { GridColumn } from './vaadin-grid-column.js';
10
10
  export type GridCellClassNameGenerator<TItem> = (column: GridColumn<TItem>, model: GridItemModel<TItem>) => string;
11
11
 
12
12
  export declare function StylingMixin<TItem, T extends Constructor<HTMLElement>>(
13
- base: T
13
+ base: T,
14
14
  ): T & Constructor<StylingMixinClass<TItem>>;
15
15
 
16
16
  export declare class StylingMixinClass<TItem> {
@@ -29,7 +29,7 @@ export const StylingMixin = (superClass) =>
29
29
  *
30
30
  * @type {GridCellClassNameGenerator | null | undefined}
31
31
  */
32
- cellClassNameGenerator: Function
32
+ cellClassNameGenerator: Function,
33
33
  };
34
34
  }
35
35
 
@@ -49,7 +49,7 @@ export const StylingMixin = (superClass) =>
49
49
  */
50
50
  generateCellClassNames() {
51
51
  Array.from(this.$.items.children)
52
- .filter((row) => !row.hidden)
52
+ .filter((row) => !row.hidden && !row.hasAttribute('loading'))
53
53
  .forEach((row) => this._generateCellClassNames(row, this.__getRowModel(row)));
54
54
  }
55
55
 
@@ -38,8 +38,8 @@ class GridTreeColumn extends GridColumn {
38
38
  */
39
39
  itemHasChildrenPath: {
40
40
  type: String,
41
- observer: '_itemHasChildrenPathChanged'
42
- }
41
+ observer: '_itemHasChildrenPathChanged',
42
+ },
43
43
  };
44
44
  }
45
45
 
@@ -89,7 +89,7 @@ class GridTreeColumn extends GridColumn {
89
89
  _itemHasChildrenPathChanged(itemHasChildrenPath) {
90
90
  if (itemHasChildrenPath) {
91
91
  console.warn(
92
- `WARNING: Since Vaadin 23, itemHasChildrenPath on <vaadin-grid-tree-column> is deprecated. Please set this property on the <vaadin-grid> instead.`
92
+ `WARNING: Since Vaadin 23, itemHasChildrenPath on <vaadin-grid-tree-column> is deprecated. Please set this property on the <vaadin-grid> instead.`,
93
93
  );
94
94
 
95
95
  if (this._grid) {
@@ -85,13 +85,13 @@ declare class GridTreeToggle extends ThemableMixin(DirMixin(HTMLElement)) {
85
85
  addEventListener<K extends keyof GridTreeToggleEventMap>(
86
86
  type: K,
87
87
  listener: (this: GridTreeToggle, ev: GridTreeToggleEventMap[K]) => void,
88
- options?: boolean | AddEventListenerOptions
88
+ options?: boolean | AddEventListenerOptions,
89
89
  ): void;
90
90
 
91
91
  removeEventListener<K extends keyof GridTreeToggleEventMap>(
92
92
  type: K,
93
93
  listener: (this: GridTreeToggle, ev: GridTreeToggleEventMap[K]) => void,
94
- options?: boolean | EventListenerOptions
94
+ options?: boolean | EventListenerOptions,
95
95
  ): void;
96
96
  }
97
97
 
@@ -154,7 +154,7 @@ class GridTreeToggle extends ThemableMixin(DirMixin(PolymerElement)) {
154
154
  level: {
155
155
  type: Number,
156
156
  value: 0,
157
- observer: '_levelChanged'
157
+ observer: '_levelChanged',
158
158
  },
159
159
 
160
160
  /**
@@ -164,7 +164,7 @@ class GridTreeToggle extends ThemableMixin(DirMixin(PolymerElement)) {
164
164
  leaf: {
165
165
  type: Boolean,
166
166
  value: false,
167
- reflectToAttribute: true
167
+ reflectToAttribute: true,
168
168
  },
169
169
 
170
170
  /**
@@ -175,8 +175,8 @@ class GridTreeToggle extends ThemableMixin(DirMixin(PolymerElement)) {
175
175
  type: Boolean,
176
176
  value: false,
177
177
  reflectToAttribute: true,
178
- notify: true
179
- }
178
+ notify: true,
179
+ },
180
180
  };
181
181
  }
182
182
 
@@ -17,13 +17,13 @@ import {
17
17
  GridDataProviderParams,
18
18
  GridFilterDefinition,
19
19
  GridSorterDefinition,
20
- GridSorterDirection
20
+ GridSorterDirection,
21
21
  } from './vaadin-grid-data-provider-mixin.js';
22
22
  import {
23
23
  DragAndDropMixinClass,
24
24
  GridDragAndDropFilter,
25
25
  GridDropLocation,
26
- GridDropMode
26
+ GridDropMode,
27
27
  } from './vaadin-grid-drag-and-drop-mixin.js';
28
28
  import { EventContextMixinClass, GridEventContext } from './vaadin-grid-event-context-mixin.js';
29
29
  import { GridRowDetailsRenderer, RowDetailsMixinClass } from './vaadin-grid-row-details-mixin.js';
@@ -46,7 +46,7 @@ export {
46
46
  GridHeaderFooterRenderer,
47
47
  GridRowDetailsRenderer,
48
48
  GridSorterDefinition,
49
- GridSorterDirection
49
+ GridSorterDirection,
50
50
  };
51
51
 
52
52
  export type GridDefaultItem = any;
@@ -379,13 +379,13 @@ declare class Grid<TItem = GridDefaultItem> extends HTMLElement {
379
379
  addEventListener<K extends keyof GridEventMap<TItem>>(
380
380
  type: K,
381
381
  listener: (this: Grid<TItem>, ev: GridEventMap<TItem>[K]) => void,
382
- options?: boolean | AddEventListenerOptions
382
+ options?: boolean | AddEventListenerOptions,
383
383
  ): void;
384
384
 
385
385
  removeEventListener<K extends keyof GridEventMap<TItem>>(
386
386
  type: K,
387
387
  listener: (this: Grid<TItem>, ev: GridEventMap<TItem>[K]) => void,
388
- options?: boolean | EventListenerOptions
388
+ options?: boolean | EventListenerOptions,
389
389
  ): void;
390
390
  }
391
391
 
@@ -258,21 +258,21 @@ class Grid extends ElementMixin(
258
258
  FilterMixin(
259
259
  ColumnReorderingMixin(
260
260
  ColumnResizingMixin(
261
- EventContextMixin(DragAndDropMixin(StylingMixin(TabindexMixin(PolymerElement))))
262
- )
263
- )
264
- )
265
- )
266
- )
267
- )
268
- )
269
- )
270
- )
271
- )
272
- )
273
- )
274
- )
275
- )
261
+ EventContextMixin(DragAndDropMixin(StylingMixin(TabindexMixin(PolymerElement)))),
262
+ ),
263
+ ),
264
+ ),
265
+ ),
266
+ ),
267
+ ),
268
+ ),
269
+ ),
270
+ ),
271
+ ),
272
+ ),
273
+ ),
274
+ ),
275
+ ),
276
276
  ) {
277
277
  static get template() {
278
278
  return html`
@@ -304,7 +304,7 @@ class Grid extends ElementMixin(
304
304
  static get observers() {
305
305
  return [
306
306
  '_columnTreeChanged(_columnTree, _columnTree.*)',
307
- '_effectiveSizeChanged(_effectiveSize, __virtualizer, _hasData, _columnTree)'
307
+ '_effectiveSizeChanged(_effectiveSize, __virtualizer, _hasData, _columnTree)',
308
308
  ];
309
309
  }
310
310
 
@@ -313,31 +313,31 @@ class Grid extends ElementMixin(
313
313
  /** @private */
314
314
  _safari: {
315
315
  type: Boolean,
316
- value: isSafari
316
+ value: isSafari,
317
317
  },
318
318
 
319
319
  /** @private */
320
320
  _ios: {
321
321
  type: Boolean,
322
- value: isIOS
322
+ value: isIOS,
323
323
  },
324
324
 
325
325
  /** @private */
326
326
  _firefox: {
327
327
  type: Boolean,
328
- value: isFirefox
328
+ value: isFirefox,
329
329
  },
330
330
 
331
331
  /** @private */
332
332
  _android: {
333
333
  type: Boolean,
334
- value: isAndroid
334
+ value: isAndroid,
335
335
  },
336
336
 
337
337
  /** @private */
338
338
  _touchDevice: {
339
339
  type: Boolean,
340
- value: isTouch
340
+ value: isTouch,
341
341
  },
342
342
 
343
343
  /**
@@ -351,18 +351,18 @@ class Grid extends ElementMixin(
351
351
  allRowsVisible: {
352
352
  type: Boolean,
353
353
  value: false,
354
- reflectToAttribute: true
354
+ reflectToAttribute: true,
355
355
  },
356
356
 
357
357
  /** @private */
358
358
  _recalculateColumnWidthOnceLoadingFinished: {
359
359
  type: Boolean,
360
- value: true
360
+ value: true,
361
361
  },
362
362
 
363
363
  /** @private */
364
364
  isAttached: {
365
- value: false
365
+ value: false,
366
366
  },
367
367
 
368
368
  /**
@@ -373,8 +373,8 @@ class Grid extends ElementMixin(
373
373
  */
374
374
  __gridElement: {
375
375
  type: Boolean,
376
- value: true
377
- }
376
+ value: true,
377
+ },
378
378
  };
379
379
  }
380
380
 
@@ -447,7 +447,7 @@ class Grid extends ElementMixin(
447
447
  updateElement: this._updateScrollerItem.bind(this),
448
448
  scrollContainer: this.$.items,
449
449
  scrollTarget: this.$.table,
450
- reorderElements: true
450
+ reorderElements: true,
451
451
  });
452
452
 
453
453
  new ResizeObserver(() => setTimeout(() => this.__updateFooterPositioning())).observe(this.$.footer);
@@ -473,7 +473,7 @@ class Grid extends ElementMixin(
473
473
  if (this.$.items.contains(cell) && cell.localName === 'td') {
474
474
  return {
475
475
  item: cell.parentElement._item,
476
- column: cell._column
476
+ column: cell._column,
477
477
  };
478
478
  }
479
479
  }
@@ -626,7 +626,7 @@ class Grid extends ElementMixin(
626
626
 
627
627
  if (this._columnTree) {
628
628
  this._columnTree[this._columnTree.length - 1].forEach(
629
- (c) => c.isConnected && c.notifyPath && c.notifyPath('_cells.*', c._cells)
629
+ (c) => c.isConnected && c.notifyPath && c.notifyPath('_cells.*', c._cells),
630
630
  );
631
631
  }
632
632
 
@@ -850,7 +850,7 @@ class Grid extends ElementMixin(
850
850
  */
851
851
  _renderColumnTree(columnTree) {
852
852
  Array.from(this.$.items.children).forEach((row) =>
853
- this._updateRow(row, columnTree[columnTree.length - 1], null, false, true)
853
+ this._updateRow(row, columnTree[columnTree.length - 1], null, false, true),
854
854
  );
855
855
 
856
856
  while (this.$.header.children.length < columnTree.length) {
@@ -872,11 +872,11 @@ class Grid extends ElementMixin(
872
872
  }
873
873
 
874
874
  Array.from(this.$.header.children).forEach((headerRow, index) =>
875
- this._updateRow(headerRow, columnTree[index], 'header', index === columnTree.length - 1)
875
+ this._updateRow(headerRow, columnTree[index], 'header', index === columnTree.length - 1),
876
876
  );
877
877
 
878
878
  Array.from(this.$.footer.children).forEach((footerRow, index) =>
879
- this._updateRow(footerRow, columnTree[columnTree.length - 1 - index], 'footer', index === 0)
879
+ this._updateRow(footerRow, columnTree[columnTree.length - 1 - index], 'footer', index === 0),
880
880
  );
881
881
 
882
882
  // Sizer rows
@@ -893,7 +893,8 @@ class Grid extends ElementMixin(
893
893
  }
894
894
 
895
895
  __updateFooterPositioning() {
896
- if (this._firefox) {
896
+ // TODO: fixed in Firefox 99, remove when we can drop Firefox ESR 91 support
897
+ if (this._firefox && parseFloat(navigator.userAgent.match(/Firefox\/(\d{2,3}.\d)/)[1]) < 99) {
897
898
  // Sticky (or translated) footer in a flexbox host doesn't get included in
898
899
  // the scroll height calculation on FF. This is a workaround for the issue.
899
900
  this.$.items.style.paddingBottom = 0;
@@ -967,7 +968,7 @@ class Grid extends ElementMixin(
967
968
  level: this._getIndexLevel(row.index),
968
969
  expanded: this._isExpanded(row._item),
969
970
  selected: this._isSelected(row._item),
970
- detailsOpened: !!this.rowDetailsRenderer && this._isDetailsOpened(row._item)
971
+ detailsOpened: !!this.rowDetailsRenderer && this._isDetailsOpened(row._item),
971
972
  };
972
973
  }
973
974
 
@@ -1012,7 +1013,7 @@ class Grid extends ElementMixin(
1012
1013
  */
1013
1014
  notifyResize() {
1014
1015
  console.warn(
1015
- `WARNING: Since Vaadin 22, notifyResize() is deprecated. The component uses a ResizeObserver internally and doesn't need to be explicitly notified of resizes.`
1016
+ `WARNING: Since Vaadin 22, notifyResize() is deprecated. The component uses a ResizeObserver internally and doesn't need to be explicitly notified of resizes.`,
1016
1017
  );
1017
1018
  }
1018
1019
  }
@@ -49,5 +49,5 @@ registerStyles(
49
49
  margin-left: 0;
50
50
  }
51
51
  `,
52
- { moduleId: 'lumo-grid-sorter' }
52
+ { moduleId: 'lumo-grid-sorter' },
53
53
  );
@@ -376,7 +376,7 @@ registerStyles(
376
376
  border-left-color: var(--_lumo-grid-border-color);
377
377
  }
378
378
  `,
379
- { moduleId: 'lumo-grid' }
379
+ { moduleId: 'lumo-grid' },
380
380
  );
381
381
 
382
382
  registerStyles(
@@ -386,5 +386,5 @@ registerStyles(
386
386
  font-size: var(--lumo-font-size-m);
387
387
  }
388
388
  `,
389
- { moduleId: 'vaadin-grid-select-all-checkbox-lumo' }
389
+ { moduleId: 'vaadin-grid-select-all-checkbox-lumo' },
390
390
  );
@@ -108,5 +108,5 @@ registerStyles(
108
108
  content: var(--lumo-icons-angle-left);
109
109
  }
110
110
  `,
111
- { moduleId: 'lumo-grid-tree-toggle' }
111
+ { moduleId: 'lumo-grid-tree-toggle' },
112
112
  );
@@ -68,5 +68,5 @@ registerStyles(
68
68
  right: auto;
69
69
  }
70
70
  `,
71
- { moduleId: 'material-grid-sorter' }
71
+ { moduleId: 'material-grid-sorter' },
72
72
  );
@@ -258,5 +258,5 @@ registerStyles(
258
258
  right: var(--_grid-drag-start-x);
259
259
  }
260
260
  `,
261
- { moduleId: 'material-grid' }
261
+ { moduleId: 'material-grid' },
262
262
  );
@@ -38,5 +38,5 @@ registerStyles(
38
38
  transform: rotate(90deg);
39
39
  }
40
40
  `,
41
- { moduleId: 'material-grid-tree-toggle' }
41
+ { moduleId: 'material-grid-tree-toggle' },
42
42
  );