@vaadin/grid 24.4.0-alpha17 → 24.4.0-alpha19

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 (56) hide show
  1. package/package.json +10 -10
  2. package/src/vaadin-grid-column-reordering-mixin.js +17 -4
  3. package/src/vaadin-grid-filter-column-mixin.js +1 -26
  4. package/src/vaadin-grid-filter-element-mixin.js +2 -10
  5. package/src/vaadin-grid-mixin.js +10 -5
  6. package/src/vaadin-grid-selection-column-base-mixin.js +8 -0
  7. package/theme/lumo/all-imports.d.ts +0 -11
  8. package/theme/lumo/lit-all-imports.d.ts +0 -11
  9. package/theme/lumo/vaadin-grid-column-group.d.ts +0 -1
  10. package/theme/lumo/vaadin-grid-column.d.ts +0 -1
  11. package/theme/lumo/vaadin-grid-filter-column.d.ts +0 -2
  12. package/theme/lumo/vaadin-grid-filter.d.ts +0 -2
  13. package/theme/lumo/vaadin-grid-selection-column.d.ts +0 -2
  14. package/theme/lumo/vaadin-grid-sort-column.d.ts +0 -2
  15. package/theme/lumo/vaadin-grid-sorter-styles.d.ts +0 -3
  16. package/theme/lumo/vaadin-grid-sorter.d.ts +0 -2
  17. package/theme/lumo/vaadin-grid-styles.d.ts +0 -6
  18. package/theme/lumo/vaadin-grid-tree-column.d.ts +0 -2
  19. package/theme/lumo/vaadin-grid-tree-toggle-styles.d.ts +0 -3
  20. package/theme/lumo/vaadin-grid-tree-toggle.d.ts +0 -2
  21. package/theme/lumo/vaadin-grid.d.ts +0 -2
  22. package/theme/lumo/vaadin-lit-grid-column-group.d.ts +0 -1
  23. package/theme/lumo/vaadin-lit-grid-column.d.ts +0 -1
  24. package/theme/lumo/vaadin-lit-grid-filter-column.d.ts +0 -2
  25. package/theme/lumo/vaadin-lit-grid-filter.d.ts +0 -2
  26. package/theme/lumo/vaadin-lit-grid-selection-column.d.ts +0 -2
  27. package/theme/lumo/vaadin-lit-grid-sort-column.d.ts +0 -2
  28. package/theme/lumo/vaadin-lit-grid-sorter.d.ts +0 -2
  29. package/theme/lumo/vaadin-lit-grid-tree-column.d.ts +0 -2
  30. package/theme/lumo/vaadin-lit-grid-tree-toggle.d.ts +0 -2
  31. package/theme/lumo/vaadin-lit-grid.d.ts +0 -2
  32. package/theme/material/all-imports.d.ts +0 -11
  33. package/theme/material/lit-all-imports.d.ts +0 -11
  34. package/theme/material/vaadin-grid-column-group.d.ts +0 -1
  35. package/theme/material/vaadin-grid-column.d.ts +0 -1
  36. package/theme/material/vaadin-grid-filter-column.d.ts +0 -2
  37. package/theme/material/vaadin-grid-filter.d.ts +0 -2
  38. package/theme/material/vaadin-grid-selection-column.d.ts +0 -2
  39. package/theme/material/vaadin-grid-sort-column.d.ts +0 -2
  40. package/theme/material/vaadin-grid-sorter-styles.d.ts +0 -2
  41. package/theme/material/vaadin-grid-sorter.d.ts +0 -2
  42. package/theme/material/vaadin-grid-styles.d.ts +0 -2
  43. package/theme/material/vaadin-grid-tree-column.d.ts +0 -2
  44. package/theme/material/vaadin-grid-tree-toggle-styles.d.ts +0 -3
  45. package/theme/material/vaadin-grid-tree-toggle.d.ts +0 -2
  46. package/theme/material/vaadin-grid.d.ts +0 -2
  47. package/theme/material/vaadin-lit-grid-column-group.d.ts +0 -1
  48. package/theme/material/vaadin-lit-grid-column.d.ts +0 -1
  49. package/theme/material/vaadin-lit-grid-filter-column.d.ts +0 -2
  50. package/theme/material/vaadin-lit-grid-filter.d.ts +0 -2
  51. package/theme/material/vaadin-lit-grid-selection-column.d.ts +0 -2
  52. package/theme/material/vaadin-lit-grid-sort-column.d.ts +0 -2
  53. package/theme/material/vaadin-lit-grid-sorter.d.ts +0 -2
  54. package/theme/material/vaadin-lit-grid-tree-column.d.ts +0 -2
  55. package/theme/material/vaadin-lit-grid-tree-toggle.d.ts +0 -2
  56. package/theme/material/vaadin-lit-grid.d.ts +0 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/grid",
3
- "version": "24.4.0-alpha17",
3
+ "version": "24.4.0-alpha19",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -46,14 +46,14 @@
46
46
  "dependencies": {
47
47
  "@open-wc/dedupe-mixin": "^1.3.0",
48
48
  "@polymer/polymer": "^3.0.0",
49
- "@vaadin/a11y-base": "24.4.0-alpha17",
50
- "@vaadin/checkbox": "24.4.0-alpha17",
51
- "@vaadin/component-base": "24.4.0-alpha17",
52
- "@vaadin/lit-renderer": "24.4.0-alpha17",
53
- "@vaadin/text-field": "24.4.0-alpha17",
54
- "@vaadin/vaadin-lumo-styles": "24.4.0-alpha17",
55
- "@vaadin/vaadin-material-styles": "24.4.0-alpha17",
56
- "@vaadin/vaadin-themable-mixin": "24.4.0-alpha17",
49
+ "@vaadin/a11y-base": "24.4.0-alpha19",
50
+ "@vaadin/checkbox": "24.4.0-alpha19",
51
+ "@vaadin/component-base": "24.4.0-alpha19",
52
+ "@vaadin/lit-renderer": "24.4.0-alpha19",
53
+ "@vaadin/text-field": "24.4.0-alpha19",
54
+ "@vaadin/vaadin-lumo-styles": "24.4.0-alpha19",
55
+ "@vaadin/vaadin-material-styles": "24.4.0-alpha19",
56
+ "@vaadin/vaadin-themable-mixin": "24.4.0-alpha19",
57
57
  "lit": "^3.0.0"
58
58
  },
59
59
  "devDependencies": {
@@ -65,5 +65,5 @@
65
65
  "web-types.json",
66
66
  "web-types.lit.json"
67
67
  ],
68
- "gitHead": "eb6b4dac66be1c0ddc77757bed5f84a6d355e5cf"
68
+ "gitHead": "5fad5eb53de7da69c1a19776a11ba74ceba27ea0"
69
69
  }
@@ -237,13 +237,26 @@ export const ColumnReorderingMixin = (superClass) =>
237
237
  if (!this._draggedColumn) {
238
238
  this.$.scroller.toggleAttribute('no-content-pointer-events', true);
239
239
  }
240
- const cell = this.shadowRoot.elementFromPoint(x, y);
240
+ const elementFromPoint = this.shadowRoot.elementFromPoint(x, y);
241
241
  this.$.scroller.toggleAttribute('no-content-pointer-events', false);
242
242
 
243
- // Make sure the element is actually a cell
244
- if (cell && cell._column) {
245
- return cell;
243
+ return this._getCellFromElement(elementFromPoint);
244
+ }
245
+
246
+ /** @private */
247
+ _getCellFromElement(element) {
248
+ if (element) {
249
+ // Check if element is a cell
250
+ if (element._column) {
251
+ return element;
252
+ }
253
+ // Check if element is the cell of a focus button mode column
254
+ const { parentElement } = element;
255
+ if (parentElement && parentElement._focusButton === element) {
256
+ return parentElement;
257
+ }
246
258
  }
259
+ return null;
247
260
  }
248
261
 
249
262
  /**
@@ -30,13 +30,7 @@ export const GridFilterColumnMixin = (superClass) =>
30
30
  }
31
31
 
32
32
  static get observers() {
33
- return ['_onHeaderRendererOrBindingChanged(_headerRenderer, _headerCell, path, header, _filterValue)'];
34
- }
35
-
36
- constructor() {
37
- super();
38
-
39
- this.__boundOnFilterValueChanged = this.__onFilterValueChanged.bind(this);
33
+ return ['_onHeaderRendererOrBindingChanged(_headerRenderer, _headerCell, path, header)'];
40
34
  }
41
35
 
42
36
  /**
@@ -54,16 +48,12 @@ export const GridFilterColumnMixin = (superClass) =>
54
48
  textField.setAttribute('theme', 'small');
55
49
  textField.setAttribute('style', 'max-width: 100%;');
56
50
  textField.setAttribute('focus-target', '');
57
- textField.addEventListener('value-changed', this.__boundOnFilterValueChanged);
58
51
  filter.appendChild(textField);
59
52
  root.appendChild(filter);
60
53
  }
61
54
 
62
55
  filter.path = this.path;
63
- filter.value = this._filterValue;
64
56
 
65
- textField.__rendererValue = this._filterValue;
66
- textField.value = this._filterValue;
67
57
  textField.label = this.__getHeader(this.header, this.path);
68
58
  }
69
59
 
@@ -78,21 +68,6 @@ export const GridFilterColumnMixin = (superClass) =>
78
68
  return this._defaultHeaderRenderer;
79
69
  }
80
70
 
81
- /**
82
- * Updates the internal filter value once the filter text field is changed.
83
- * The listener handles only user-fired events.
84
- *
85
- * @private
86
- */
87
- __onFilterValueChanged(e) {
88
- // Skip if the value is changed by the renderer.
89
- if (e.detail.value === e.target.__rendererValue) {
90
- return;
91
- }
92
-
93
- this._filterValue = e.detail.value;
94
- }
95
-
96
71
  /** @private */
97
72
  __getHeader(header, path) {
98
73
  if (header) {
@@ -69,12 +69,8 @@ export const GridFilterElementMixin = (superClass) =>
69
69
 
70
70
  this._filterController = new SlotController(this, '', 'vaadin-text-field', {
71
71
  initializer: (field) => {
72
- field.addEventListener('value-changed', (e) => {
73
- if (field.__previousValue === undefined && e.detail.value === '') {
74
- field.__previousValue = e.detail.value;
75
- return;
76
- }
77
- this.value = e.detail.value;
72
+ field.addEventListener('input', (e) => {
73
+ this.value = e.target.value;
78
74
  });
79
75
 
80
76
  this._textField = field;
@@ -88,12 +84,8 @@ export const GridFilterElementMixin = (superClass) =>
88
84
  if (path === undefined || value === undefined || !textField) {
89
85
  return;
90
86
  }
91
- if (this._previousValue === undefined && value === '') {
92
- return;
93
- }
94
87
 
95
88
  textField.value = value;
96
- this._previousValue = value;
97
89
 
98
90
  this._debouncerFilterChanged = Debouncer.debounce(this._debouncerFilterChanged, timeOut.after(200), () => {
99
91
  this.dispatchEvent(new CustomEvent('filter-changed', { bubbles: true }));
@@ -589,10 +589,6 @@ export const GridMixin = (superClass) =>
589
589
  });
590
590
  }
591
591
 
592
- if (column && column._onCellKeyDown) {
593
- cell.addEventListener('keydown', column._onCellKeyDown.bind(column));
594
- }
595
-
596
592
  const slot = document.createElement('slot');
597
593
  slot.setAttribute('name', slotName);
598
594
 
@@ -681,6 +677,9 @@ export const GridMixin = (superClass) =>
681
677
  cell = column._cells.find((cell) => cell._vacant);
682
678
  if (!cell) {
683
679
  cell = this._createCell('td', column);
680
+ if (column._onCellKeyDown) {
681
+ cell.addEventListener('keydown', column._onCellKeyDown.bind(column));
682
+ }
684
683
  column._cells.push(cell);
685
684
  }
686
685
  cell.setAttribute('part', 'cell body-cell');
@@ -724,7 +723,13 @@ export const GridMixin = (superClass) =>
724
723
  // Header & footer
725
724
  const tagName = section === 'header' ? 'th' : 'td';
726
725
  if (isColumnRow || column.localName === 'vaadin-grid-column-group') {
727
- cell = column[`_${section}Cell`] || this._createCell(tagName, column);
726
+ cell = column[`_${section}Cell`];
727
+ if (!cell) {
728
+ cell = this._createCell(tagName);
729
+ if (column._onCellKeyDown) {
730
+ cell.addEventListener('keydown', column._onCellKeyDown.bind(column));
731
+ }
732
+ }
728
733
  cell._column = column;
729
734
  row.appendChild(cell);
730
735
  column[`_${section}Cell`] = cell;
@@ -31,6 +31,14 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
31
31
  sync: true,
32
32
  },
33
33
 
34
+ /**
35
+ * Override `autoWidth` to enable auto-width
36
+ */
37
+ autoWidth: {
38
+ type: Boolean,
39
+ value: true,
40
+ },
41
+
34
42
  /**
35
43
  * Flex grow ratio for the cell widths. When set to 0, cell width is fixed.
36
44
  * @attr {number} flex-grow
@@ -1,11 +0,0 @@
1
- import './vaadin-grid-column-group.js';
2
- import './vaadin-grid-column.js';
3
- import './vaadin-grid-filter.js';
4
- import './vaadin-grid-filter-column.js';
5
- import './vaadin-grid-selection-column.js';
6
- import './vaadin-grid-sorter.js';
7
- import './vaadin-grid-sort-column.js';
8
- import './vaadin-grid-tree-toggle.js';
9
- import './vaadin-grid-tree-column.js';
10
- import './vaadin-grid.js';
11
- import '../../src/all-imports.js';
@@ -1,11 +0,0 @@
1
- import './vaadin-lit-grid-column-group.js';
2
- import './vaadin-lit-grid-column.js';
3
- import './vaadin-lit-grid-filter.js';
4
- import './vaadin-lit-grid-filter-column.js';
5
- import './vaadin-lit-grid-selection-column.js';
6
- import './vaadin-lit-grid-sorter.js';
7
- import './vaadin-lit-grid-sort-column.js';
8
- import './vaadin-lit-grid-tree-toggle.js';
9
- import './vaadin-lit-grid-tree-column.js';
10
- import './vaadin-lit-grid.js';
11
- import '../../src/lit-all-imports.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column-group.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-filter.js';
2
- import '../../src/vaadin-grid-filter-column.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/text-field/theme/lumo/vaadin-text-field.js';
2
- import '../../src/vaadin-grid-filter.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/checkbox/theme/lumo/vaadin-checkbox.js';
2
- import '../../src/vaadin-grid-selection-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter.js';
2
- import '../../src/vaadin-grid-sort-column.js';
@@ -1,3 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/style.js';
3
- import '@vaadin/vaadin-lumo-styles/spacing.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter-styles.js';
2
- import '../../src/vaadin-grid-sorter.js';
@@ -1,6 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/font-icons.js';
3
- import '@vaadin/vaadin-lumo-styles/sizing.js';
4
- import '@vaadin/vaadin-lumo-styles/spacing.js';
5
- import '@vaadin/vaadin-lumo-styles/style.js';
6
- import '@vaadin/vaadin-lumo-styles/typography.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-tree-toggle.js';
2
- import '../../src/vaadin-grid-tree-column.js';
@@ -1,3 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/spacing.js';
3
- import '@vaadin/vaadin-lumo-styles/style.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-tree-toggle-styles.js';
2
- import '../../src/vaadin-grid-tree-toggle.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-styles.js';
2
- import '../../src/vaadin-grid.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-lit-grid-column-group.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-lit-grid-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-lit-grid-filter.js';
2
- import '../../src/vaadin-lit-grid-filter-column.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/text-field/theme/lumo/vaadin-lit-text-field.js';
2
- import '../../src/vaadin-lit-grid-filter.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/checkbox/theme/lumo/vaadin-lit-checkbox.js';
2
- import '../../src/vaadin-lit-grid-selection-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-lit-grid-sorter.js';
2
- import '../../src/vaadin-lit-grid-sort-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter-styles.js';
2
- import '../../src/vaadin-lit-grid-sorter.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-lit-grid-tree-toggle.js';
2
- import '../../src/vaadin-lit-grid-tree-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-tree-toggle-styles.js';
2
- import '../../src/vaadin-lit-grid-tree-toggle.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-styles.js';
2
- import '../../src/vaadin-lit-grid.js';
@@ -1,11 +0,0 @@
1
- import './vaadin-grid-column-group.js';
2
- import './vaadin-grid-column.js';
3
- import './vaadin-grid-filter.js';
4
- import './vaadin-grid-filter-column.js';
5
- import './vaadin-grid-selection-column.js';
6
- import './vaadin-grid-sorter.js';
7
- import './vaadin-grid-sort-column.js';
8
- import './vaadin-grid-tree-toggle.js';
9
- import './vaadin-grid-tree-column.js';
10
- import './vaadin-grid.js';
11
- import '../../src/all-imports.js';
@@ -1,11 +0,0 @@
1
- import './vaadin-lit-grid-column-group.js';
2
- import './vaadin-lit-grid-column.js';
3
- import './vaadin-lit-grid-filter.js';
4
- import './vaadin-lit-grid-filter-column.js';
5
- import './vaadin-lit-grid-selection-column.js';
6
- import './vaadin-lit-grid-sorter.js';
7
- import './vaadin-lit-grid-sort-column.js';
8
- import './vaadin-lit-grid-tree-toggle.js';
9
- import './vaadin-lit-grid-tree-column.js';
10
- import './vaadin-lit-grid.js';
11
- import '../../src/lit-all-imports.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column-group.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-grid-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-filter.js';
2
- import '../../src/vaadin-grid-filter-column.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/text-field/theme/material/vaadin-text-field.js';
2
- import '../../src/vaadin-grid-filter.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/checkbox/theme/material/vaadin-checkbox.js';
2
- import '../../src/vaadin-grid-selection-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter.js';
2
- import '../../src/vaadin-grid-sort-column.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/vaadin-material-styles/color.js';
2
- import '@vaadin/vaadin-material-styles/font-icons.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter-styles.js';
2
- import '../../src/vaadin-grid-sorter.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/vaadin-material-styles/color.js';
2
- import '@vaadin/vaadin-material-styles/typography.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-tree-toggle.js';
2
- import '../../src/vaadin-grid-tree-column.js';
@@ -1,3 +0,0 @@
1
- import '@vaadin/vaadin-material-styles/color.js';
2
- import '@vaadin/vaadin-material-styles/font-icons.js';
3
- import '@vaadin/vaadin-material-styles/typography.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-tree-toggle-styles.js';
2
- import '../../src/vaadin-grid-tree-toggle.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-styles.js';
2
- import '../../src/vaadin-grid.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-lit-grid-column-group.js';
@@ -1 +0,0 @@
1
- import '../../src/vaadin-lit-grid-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-lit-grid-filter.js';
2
- import '../../src/vaadin-lit-grid-filter-column.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/text-field/theme/material/vaadin-lit-text-field.js';
2
- import '../../src/vaadin-lit-grid-filter.js';
@@ -1,2 +0,0 @@
1
- import '@vaadin/checkbox/theme/material/vaadin-lit-checkbox.js';
2
- import '../../src/vaadin-lit-grid-selection-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-lit-grid-sorter.js';
2
- import '../../src/vaadin-lit-grid-sort-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-sorter-styles.js';
2
- import '../../src/vaadin-lit-grid-sorter.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-lit-grid-tree-toggle.js';
2
- import '../../src/vaadin-lit-grid-tree-column.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-tree-toggle-styles.js';
2
- import '../../src/vaadin-lit-grid-tree-toggle.js';
@@ -1,2 +0,0 @@
1
- import './vaadin-grid-styles.js';
2
- import '../../src/vaadin-lit-grid.js';