@vaadin/grid 23.0.0-beta3 → 23.0.0-beta4

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.0.0-beta3",
3
+ "version": "23.0.0-beta4",
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.0.0-beta3",
45
- "@vaadin/component-base": "23.0.0-beta3",
46
- "@vaadin/text-field": "23.0.0-beta3",
47
- "@vaadin/vaadin-lumo-styles": "23.0.0-beta3",
48
- "@vaadin/vaadin-material-styles": "23.0.0-beta3",
49
- "@vaadin/vaadin-themable-mixin": "23.0.0-beta3"
44
+ "@vaadin/checkbox": "23.0.0-beta4",
45
+ "@vaadin/component-base": "23.0.0-beta4",
46
+ "@vaadin/text-field": "23.0.0-beta4",
47
+ "@vaadin/vaadin-lumo-styles": "23.0.0-beta4",
48
+ "@vaadin/vaadin-material-styles": "23.0.0-beta4",
49
+ "@vaadin/vaadin-themable-mixin": "23.0.0-beta4"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@esm-bundle/chai": "^4.3.4",
53
- "@vaadin/polymer-legacy-adapter": "23.0.0-beta3",
53
+ "@vaadin/polymer-legacy-adapter": "23.0.0-beta4",
54
54
  "@vaadin/testing-helpers": "^0.3.2",
55
55
  "lit": "^2.0.0",
56
56
  "sinon": "^9.2.0"
57
57
  },
58
- "gitHead": "4c87216666541f9eb58f56c475964727822aad53"
58
+ "gitHead": "d0b447f1c31ca4256a5e26f2dcd27784447ff79b"
59
59
  }
@@ -101,6 +101,12 @@ export declare class DataProviderMixinClass<TItem> {
101
101
  */
102
102
  readonly loading: boolean | null | undefined;
103
103
 
104
+ /**
105
+ * Path to an item sub-property that indicates whether the item has child items.
106
+ * @attr {string} item-has-children-path
107
+ */
108
+ itemHasChildrenPath: string;
109
+
104
110
  /**
105
111
  * Path to an item sub-property that identifies the item.
106
112
  * @attr {string} item-id-path
@@ -186,6 +186,15 @@ export const DataProviderMixin = (superClass) =>
186
186
  value: false
187
187
  },
188
188
 
189
+ /**
190
+ * Path to an item sub-property that indicates whether the item has child items.
191
+ * @attr {string} item-has-children-path
192
+ */
193
+ itemHasChildrenPath: {
194
+ type: String,
195
+ value: 'children'
196
+ },
197
+
189
198
  /**
190
199
  * Path to an item sub-property that identifies the item.
191
200
  * @attr {string} item-id-path
@@ -216,14 +216,12 @@ export const KeyboardNavigationMixin = (superClass) =>
216
216
  }
217
217
  }
218
218
 
219
- // TODO: A tree toggle component should not be the way to determine if the row is expandable
220
219
  /** @private */
221
220
  __isRowExpandable(row) {
222
- const treeToggle = [...row.children].reduce(
223
- (value, cell) => value || cell._content.querySelector('vaadin-grid-tree-toggle'),
224
- null
225
- );
226
- return treeToggle && !treeToggle.expanded && !treeToggle.leaf;
221
+ if (this.itemHasChildrenPath) {
222
+ const item = row._item;
223
+ return item && this.get(this.itemHasChildrenPath, item) && !this._isExpanded(item);
224
+ }
227
225
  }
228
226
 
229
227
  /** @private */
@@ -28,6 +28,7 @@ declare class GridTreeColumn<TItem = GridDefaultItem> extends GridColumn<TItem>
28
28
  /**
29
29
  * JS Path of the property in the item that indicates whether the item has child items.
30
30
  * @attr {string} item-has-children-path
31
+ * @deprecated Use `grid.itemHasChildrenPath` instead.
31
32
  */
32
33
  itemHasChildrenPath: string | null | undefined;
33
34
  }
@@ -34,10 +34,11 @@ class GridTreeColumn extends GridColumn {
34
34
  /**
35
35
  * JS Path of the property in the item that indicates whether the item has child items.
36
36
  * @attr {string} item-has-children-path
37
+ * @deprecated Use `grid.itemHasChildrenPath` instead.
37
38
  */
38
39
  itemHasChildrenPath: {
39
40
  type: String,
40
- value: 'children'
41
+ observer: '_itemHasChildrenPathChanged'
41
42
  }
42
43
  };
43
44
  }
@@ -68,7 +69,7 @@ class GridTreeColumn extends GridColumn {
68
69
  toggle.__item = item;
69
70
  toggle.__rendererExpanded = expanded;
70
71
  toggle.expanded = expanded;
71
- toggle.leaf = this.__isLeafItem(item, this.itemHasChildrenPath);
72
+ toggle.leaf = this.__isLeafItem(item, this._grid.itemHasChildrenPath);
72
73
  toggle.textContent = this.__getToggleContent(this.path, item);
73
74
  toggle.level = level;
74
75
  }
@@ -84,6 +85,19 @@ class GridTreeColumn extends GridColumn {
84
85
  return this.__defaultRenderer;
85
86
  }
86
87
 
88
+ /** @private */
89
+ _itemHasChildrenPathChanged(itemHasChildrenPath) {
90
+ if (itemHasChildrenPath) {
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.`
93
+ );
94
+
95
+ if (this._grid) {
96
+ this._grid.itemHasChildrenPath = itemHasChildrenPath;
97
+ }
98
+ }
99
+ }
100
+
87
101
  /**
88
102
  * Expands or collapses the row once the tree toggle is switched.
89
103
  * The listener handles only user-fired events.