@vaadin/grid 23.1.0-beta2 → 23.1.0-rc1

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/grid",
3
- "version": "23.1.0-beta2",
3
+ "version": "23.1.0-rc1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -43,20 +43,20 @@
43
43
  "dependencies": {
44
44
  "@open-wc/dedupe-mixin": "^1.3.0",
45
45
  "@polymer/polymer": "^3.0.0",
46
- "@vaadin/checkbox": "23.1.0-beta2",
47
- "@vaadin/component-base": "23.1.0-beta2",
48
- "@vaadin/lit-renderer": "23.1.0-beta2",
49
- "@vaadin/text-field": "23.1.0-beta2",
50
- "@vaadin/vaadin-lumo-styles": "23.1.0-beta2",
51
- "@vaadin/vaadin-material-styles": "23.1.0-beta2",
52
- "@vaadin/vaadin-themable-mixin": "23.1.0-beta2"
46
+ "@vaadin/checkbox": "23.1.0-rc1",
47
+ "@vaadin/component-base": "23.1.0-rc1",
48
+ "@vaadin/lit-renderer": "23.1.0-rc1",
49
+ "@vaadin/text-field": "23.1.0-rc1",
50
+ "@vaadin/vaadin-lumo-styles": "23.1.0-rc1",
51
+ "@vaadin/vaadin-material-styles": "23.1.0-rc1",
52
+ "@vaadin/vaadin-themable-mixin": "23.1.0-rc1"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@esm-bundle/chai": "^4.3.4",
56
- "@vaadin/polymer-legacy-adapter": "23.1.0-beta2",
56
+ "@vaadin/polymer-legacy-adapter": "23.1.0-rc1",
57
57
  "@vaadin/testing-helpers": "^0.3.2",
58
58
  "lit": "^2.0.0",
59
59
  "sinon": "^13.0.2"
60
60
  },
61
- "gitHead": "f11f9245a0b5e6bf912725a501c27c24b74e7c8d"
61
+ "gitHead": "5ecb85e16e938df827fefca4bd2a665a1e29913e"
62
62
  }
@@ -5,8 +5,8 @@
5
5
  */
6
6
  /* eslint-disable max-classes-per-file */
7
7
  import { directive } from 'lit/directive.js';
8
- import { microTask } from '@vaadin/component-base/src/async';
9
- import { Debouncer } from '@vaadin/component-base/src/debounce';
8
+ import { microTask } from '@vaadin/component-base/src/async.js';
9
+ import { Debouncer } from '@vaadin/component-base/src/debounce.js';
10
10
  import { LitRendererDirective } from '@vaadin/lit-renderer';
11
11
  import { CONTENT_UPDATE_DEBOUNCER } from './renderer-directives.js';
12
12
 
@@ -18,13 +18,13 @@ export interface GridSorterDefinition {
18
18
  direction: GridSorterDirection;
19
19
  }
20
20
 
21
- export type GridDataProviderCallback<TItem> = (items: Array<TItem>, size?: number) => void;
21
+ export type GridDataProviderCallback<TItem> = (items: TItem[], size?: number) => void;
22
22
 
23
23
  export type GridDataProviderParams<TItem> = {
24
24
  page: number;
25
25
  pageSize: number;
26
- filters: Array<GridFilterDefinition>;
27
- sortOrders: Array<GridSorterDefinition>;
26
+ filters: GridFilterDefinition[];
27
+ sortOrders: GridSorterDefinition[];
28
28
  parentItem?: TItem;
29
29
  };
30
30
 
@@ -219,13 +219,13 @@ export const DataProviderMixin = (superClass) =>
219
219
  */
220
220
  __expandedKeys: {
221
221
  type: Object,
222
- value: () => new Set(),
222
+ computed: '__computeExpandedKeys(itemIdPath, expandedItems.*)',
223
223
  },
224
224
  };
225
225
  }
226
226
 
227
227
  static get observers() {
228
- return ['_sizeChanged(size)', '_itemIdPathChanged(itemIdPath)', '_expandedItemsChanged(expandedItems.*)'];
228
+ return ['_sizeChanged(size)', '_expandedItemsChanged(expandedItems.*)'];
229
229
  }
230
230
 
231
231
  /** @private */
@@ -282,25 +282,20 @@ export const DataProviderMixin = (superClass) =>
282
282
 
283
283
  /** @private */
284
284
  _expandedItemsChanged() {
285
- this.__cacheExpandedKeys();
286
285
  this._cache.updateSize();
287
286
  this._effectiveSize = this._cache.effectiveSize;
288
287
  this.__updateVisibleRows();
289
288
  }
290
289
 
291
290
  /** @private */
292
- _itemIdPathChanged() {
293
- this.__cacheExpandedKeys();
294
- }
291
+ __computeExpandedKeys(itemIdPath, expandedItems) {
292
+ const expanded = expandedItems.base || [];
293
+ const expandedKeys = new Set();
294
+ expanded.forEach((item) => {
295
+ expandedKeys.add(this.getItemId(item));
296
+ });
295
297
 
296
- /** @private */
297
- __cacheExpandedKeys() {
298
- if (this.expandedItems) {
299
- this.__expandedKeys = new Set();
300
- this.expandedItems.forEach((item) => {
301
- this.__expandedKeys.add(this.getItemId(item));
302
- });
303
- }
298
+ return expandedKeys;
304
299
  }
305
300
 
306
301
  /**
@@ -20,7 +20,7 @@ export declare class RowDetailsMixinClass<TItem> {
20
20
  /**
21
21
  * An array containing references to items with open row details.
22
22
  */
23
- detailsOpenedItems: Array<TItem>;
23
+ detailsOpenedItems: TItem[];
24
24
 
25
25
  /**
26
26
  * Custom function for rendering the content of the row details.
@@ -13,7 +13,7 @@ export declare class SelectionMixinClass<TItem> {
13
13
  /**
14
14
  * An array that contains the selected items.
15
15
  */
16
- selectedItems: Array<TItem>;
16
+ selectedItems: TItem[];
17
17
 
18
18
  /**
19
19
  * Selects the given item.
@@ -20,11 +20,20 @@ export const SelectionMixin = (superClass) =>
20
20
  notify: true,
21
21
  value: () => [],
22
22
  },
23
+
24
+ /**
25
+ * Set of selected item ids
26
+ * @private
27
+ */
28
+ __selectedKeys: {
29
+ type: Object,
30
+ computed: '__computeSelectedKeys(itemIdPath, selectedItems.*)',
31
+ },
23
32
  };
24
33
  }
25
34
 
26
35
  static get observers() {
27
- return ['_selectedItemsChanged(selectedItems.*)'];
36
+ return ['__selectedItemsChanged(itemIdPath, selectedItems.*)'];
28
37
  }
29
38
 
30
39
  /**
@@ -33,7 +42,7 @@ export const SelectionMixin = (superClass) =>
33
42
  * @protected
34
43
  */
35
44
  _isSelected(item) {
36
- return this.selectedItems && this._getItemIndexInArray(item, this.selectedItems) > -1;
45
+ return this.__selectedKeys.has(this.getItemId(item));
37
46
  }
38
47
 
39
48
  /**
@@ -68,8 +77,7 @@ export const SelectionMixin = (superClass) =>
68
77
  * @protected
69
78
  */
70
79
  _toggleItem(item) {
71
- const index = this._getItemIndexInArray(item, this.selectedItems);
72
- if (index === -1) {
80
+ if (!this._isSelected(item)) {
73
81
  this.selectItem(item);
74
82
  } else {
75
83
  this.deselectItem(item);
@@ -77,10 +85,21 @@ export const SelectionMixin = (superClass) =>
77
85
  }
78
86
 
79
87
  /** @private */
80
- _selectedItemsChanged() {
88
+ __selectedItemsChanged() {
81
89
  this.requestContentUpdate();
82
90
  }
83
91
 
92
+ /** @private */
93
+ __computeSelectedKeys(itemIdPath, selectedItems) {
94
+ const selected = selectedItems.base || [];
95
+ const selectedKeys = new Set();
96
+ selected.forEach((item) => {
97
+ selectedKeys.add(this.getItemId(item));
98
+ });
99
+
100
+ return selectedKeys;
101
+ }
102
+
84
103
  /**
85
104
  * Fired when the `selectedItems` property changes.
86
105
  *
@@ -78,7 +78,7 @@ export type GridCellFocusEvent<TItem> = CustomEvent<{ context: GridEventContext<
78
78
  /**
79
79
  * Fired when the columns in the grid are reordered.
80
80
  */
81
- export type GridColumnReorderEvent<TItem> = CustomEvent<{ columns: GridColumn<TItem>[] }>;
81
+ export type GridColumnReorderEvent<TItem> = CustomEvent<{ columns: Array<GridColumn<TItem>> }>;
82
82
 
83
83
  /**
84
84
  * Fired when the grid column resize is finished.