@vaadin/vaadin-grid 22.0.0-alpha6 → 22.0.0-beta1

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 (84) hide show
  1. package/package.json +24 -34
  2. package/src/vaadin-grid-column-group.d.ts +14 -57
  3. package/src/vaadin-grid-column-group.js +4 -311
  4. package/src/vaadin-grid-column.d.ts +14 -142
  5. package/src/vaadin-grid-column.js +4 -759
  6. package/src/vaadin-grid-filter-column.d.ts +14 -30
  7. package/src/vaadin-grid-filter-column.js +4 -111
  8. package/src/vaadin-grid-filter.d.ts +11 -60
  9. package/src/vaadin-grid-filter.js +4 -116
  10. package/src/vaadin-grid-selection-column.d.ts +12 -75
  11. package/src/vaadin-grid-selection-column.js +4 -276
  12. package/src/vaadin-grid-sort-column.d.ts +12 -56
  13. package/src/vaadin-grid-sort-column.js +4 -109
  14. package/src/vaadin-grid-sorter.d.ts +11 -82
  15. package/src/vaadin-grid-sorter.js +4 -221
  16. package/src/vaadin-grid-tree-column.d.ts +14 -31
  17. package/src/vaadin-grid-tree-column.js +4 -110
  18. package/src/vaadin-grid-tree-toggle.d.ts +11 -91
  19. package/src/vaadin-grid-tree-toggle.js +4 -196
  20. package/src/vaadin-grid.d.ts +10 -422
  21. package/src/vaadin-grid.js +4 -1026
  22. package/theme/lumo/vaadin-grid-column-group.js +1 -1
  23. package/theme/lumo/vaadin-grid-column.js +1 -1
  24. package/theme/lumo/vaadin-grid-filter-column.js +1 -2
  25. package/theme/lumo/vaadin-grid-filter.js +1 -2
  26. package/theme/lumo/vaadin-grid-selection-column.js +1 -2
  27. package/theme/lumo/vaadin-grid-sort-column.js +1 -2
  28. package/theme/lumo/vaadin-grid-sorter.js +1 -2
  29. package/theme/lumo/vaadin-grid-tree-column.js +1 -2
  30. package/theme/lumo/vaadin-grid-tree-toggle.js +1 -2
  31. package/theme/lumo/vaadin-grid.js +1 -9
  32. package/theme/material/vaadin-grid-column-group.js +1 -1
  33. package/theme/material/vaadin-grid-column.js +1 -1
  34. package/theme/material/vaadin-grid-filter-column.js +1 -2
  35. package/theme/material/vaadin-grid-filter.js +1 -2
  36. package/theme/material/vaadin-grid-selection-column.js +1 -2
  37. package/theme/material/vaadin-grid-sort-column.js +1 -2
  38. package/theme/material/vaadin-grid-sorter.js +1 -2
  39. package/theme/material/vaadin-grid-tree-column.js +1 -2
  40. package/theme/material/vaadin-grid-tree-toggle.js +1 -2
  41. package/theme/material/vaadin-grid.js +1 -2
  42. package/vaadin-grid.d.ts +0 -1
  43. package/src/array-data-provider.js +0 -145
  44. package/src/interfaces.d.ts +0 -78
  45. package/src/vaadin-grid-a11y-mixin.d.ts +0 -27
  46. package/src/vaadin-grid-a11y-mixin.js +0 -158
  47. package/src/vaadin-grid-active-item-mixin.d.ts +0 -28
  48. package/src/vaadin-grid-active-item-mixin.js +0 -117
  49. package/src/vaadin-grid-array-data-provider-mixin.d.ts +0 -20
  50. package/src/vaadin-grid-array-data-provider-mixin.js +0 -75
  51. package/src/vaadin-grid-column-reordering-mixin.d.ts +0 -47
  52. package/src/vaadin-grid-column-reordering-mixin.js +0 -387
  53. package/src/vaadin-grid-column-resizing-mixin.d.ts +0 -11
  54. package/src/vaadin-grid-column-resizing-mixin.js +0 -111
  55. package/src/vaadin-grid-data-provider-mixin.d.ts +0 -126
  56. package/src/vaadin-grid-data-provider-mixin.js +0 -520
  57. package/src/vaadin-grid-drag-and-drop-mixin.d.ts +0 -73
  58. package/src/vaadin-grid-drag-and-drop-mixin.js +0 -435
  59. package/src/vaadin-grid-dynamic-columns-mixin.d.ts +0 -27
  60. package/src/vaadin-grid-dynamic-columns-mixin.js +0 -180
  61. package/src/vaadin-grid-event-context-mixin.d.ts +0 -33
  62. package/src/vaadin-grid-event-context-mixin.js +0 -57
  63. package/src/vaadin-grid-filter-mixin.d.ts +0 -13
  64. package/src/vaadin-grid-filter-mixin.js +0 -76
  65. package/src/vaadin-grid-helpers.js +0 -23
  66. package/src/vaadin-grid-keyboard-navigation-mixin.d.ts +0 -31
  67. package/src/vaadin-grid-keyboard-navigation-mixin.js +0 -891
  68. package/src/vaadin-grid-row-details-mixin.d.ts +0 -54
  69. package/src/vaadin-grid-row-details-mixin.js +0 -200
  70. package/src/vaadin-grid-scroll-mixin.d.ts +0 -22
  71. package/src/vaadin-grid-scroll-mixin.js +0 -202
  72. package/src/vaadin-grid-selection-mixin.d.ts +0 -39
  73. package/src/vaadin-grid-selection-mixin.js +0 -93
  74. package/src/vaadin-grid-sort-mixin.d.ts +0 -21
  75. package/src/vaadin-grid-sort-mixin.js +0 -139
  76. package/src/vaadin-grid-styles.js +0 -297
  77. package/src/vaadin-grid-styling-mixin.d.ts +0 -37
  78. package/src/vaadin-grid-styling-mixin.js +0 -71
  79. package/theme/lumo/vaadin-grid-sorter-styles.js +0 -54
  80. package/theme/lumo/vaadin-grid-styles.js +0 -380
  81. package/theme/lumo/vaadin-grid-tree-toggle-styles.js +0 -112
  82. package/theme/material/vaadin-grid-sorter-styles.js +0 -72
  83. package/theme/material/vaadin-grid-styles.js +0 -252
  84. package/theme/material/vaadin-grid-tree-toggle-styles.js +0 -42
@@ -1,35 +1,19 @@
1
- import { GridDefaultItem } from './interfaces';
2
- import { GridColumnElement } from './vaadin-grid-column.js';
3
-
4
1
  /**
5
- * `<vaadin-grid-filter-column>` is a helper element for the `<vaadin-grid>`
6
- * that provides default header renderer and functionality for filtering.
7
- *
8
- * #### Example:
9
- * ```html
10
- * <vaadin-grid items="[[items]]">
11
- * <vaadin-grid-filter-column path="name.first"></vaadin-grid-filter-column>
12
- *
13
- * <vaadin-grid-column>
14
- * ...
15
- * ```
2
+ * @license
3
+ * Copyright (c) 2021 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
16
5
  */
17
- declare class GridFilterColumnElement<TItem = GridDefaultItem> extends GridColumnElement<TItem> {
18
- /**
19
- * Text to display as the label of the column filter text-field.
20
- */
21
- header: string | null | undefined;
6
+ import { GridDefaultItem } from '@vaadin/grid/src/vaadin-grid.js';
7
+ import { GridFilterColumn } from '@vaadin/grid/src/vaadin-grid-filter-column.js';
22
8
 
23
- /**
24
- * JS Path of the property in the item used for filtering the data.
25
- */
26
- path: string | null | undefined;
27
- }
9
+ /**
10
+ * @deprecated Import `GridFilterColumn` from `@vaadin/grid/vaadin-grid-filter-column` instead.
11
+ */
12
+ export type GridFilterColumnElement<TItem = GridDefaultItem> = GridFilterColumn<TItem>;
28
13
 
29
- declare global {
30
- interface HTMLElementTagNameMap {
31
- 'vaadin-grid-filter-column': GridFilterColumnElement<GridDefaultItem>;
32
- }
33
- }
14
+ /**
15
+ * @deprecated Import `GridFilterColumn` from `@vaadin/grid/vaadin-grid-filter-column` instead.
16
+ */
17
+ export const GridFilterColumnElement: typeof GridFilterColumn;
34
18
 
35
- export { GridFilterColumnElement };
19
+ export * from '@vaadin/grid/src/vaadin-grid-filter-column.js';
@@ -3,118 +3,11 @@
3
3
  * Copyright (c) 2021 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
- import { GridColumnElement } from './vaadin-grid-column.js';
7
- import './vaadin-grid-filter.js';
6
+ import { GridFilterColumn } from '@vaadin/grid/src/vaadin-grid-filter-column.js';
8
7
 
9
8
  /**
10
- * `<vaadin-grid-filter-column>` is a helper element for the `<vaadin-grid>`
11
- * that provides default header renderer and functionality for filtering.
12
- *
13
- * #### Example:
14
- * ```html
15
- * <vaadin-grid items="[[items]]">
16
- * <vaadin-grid-filter-column path="name.first"></vaadin-grid-filter-column>
17
- *
18
- * <vaadin-grid-column>
19
- * ...
20
- * ```
9
+ * @deprecated Import `GridFilterColumn` from `@vaadin/grid/vaadin-grid-filter-column` instead.
21
10
  */
22
- class GridFilterColumnElement extends GridColumnElement {
23
- static get is() {
24
- return 'vaadin-grid-filter-column';
25
- }
11
+ export const GridFilterColumnElement = GridFilterColumn;
26
12
 
27
- static get properties() {
28
- return {
29
- /**
30
- * JS Path of the property in the item used for filtering the data.
31
- */
32
- path: String,
33
-
34
- /**
35
- * Text to display as the label of the column filter text-field.
36
- */
37
- header: String
38
- };
39
- }
40
-
41
- static get observers() {
42
- return ['_onHeaderRendererOrBindingChanged(_headerRenderer, _headerCell, path, header, _filterValue)'];
43
- }
44
-
45
- constructor() {
46
- super();
47
-
48
- this.__boundOnFilterValueChanged = this.__onFilterValueChanged.bind(this);
49
- }
50
-
51
- /**
52
- * Renders the grid filter with the custom text field to the header cell.
53
- *
54
- * @override
55
- */
56
- _defaultHeaderRenderer(root, _column) {
57
- let filter = root.firstElementChild;
58
- let textField = filter ? filter.firstElementChild : undefined;
59
-
60
- if (!filter) {
61
- filter = document.createElement('vaadin-grid-filter');
62
- textField = document.createElement('vaadin-text-field');
63
- textField.setAttribute('slot', 'filter');
64
- textField.setAttribute('theme', 'small');
65
- textField.setAttribute('style', 'max-width: 100%;');
66
- textField.setAttribute('focus-target', '');
67
- textField.addEventListener('value-changed', this.__boundOnFilterValueChanged);
68
- filter.appendChild(textField);
69
- root.appendChild(filter);
70
- }
71
-
72
- filter.path = this.path;
73
- filter.value = this._filterValue;
74
-
75
- textField.__rendererValue = this._filterValue;
76
- textField.value = this._filterValue;
77
- textField.label = this.__getHeader(this.header, this.path);
78
- }
79
-
80
- /**
81
- * The filter column doesn't allow to use a custom header renderer
82
- * to override the header cell content.
83
- * It always renders the grid filter to the header cell.
84
- *
85
- * @override
86
- */
87
- _computeHeaderRenderer() {
88
- return this._defaultHeaderRenderer;
89
- }
90
-
91
- /**
92
- * Updates the internal filter value once the filter text field is changed.
93
- * The listener handles only user-fired events.
94
- *
95
- * @private
96
- */
97
- __onFilterValueChanged(e) {
98
- // Skip if the value is changed by the renderer.
99
- if (e.detail.value === e.target.__rendererValue) {
100
- return;
101
- }
102
-
103
- this._filterValue = e.detail.value;
104
- }
105
-
106
- /** @private */
107
- __getHeader(header, path) {
108
- if (header) {
109
- return header;
110
- }
111
-
112
- if (path) {
113
- return this._generateHeader(path);
114
- }
115
- }
116
- }
117
-
118
- customElements.define(GridFilterColumnElement.is, GridFilterColumnElement);
119
-
120
- export { GridFilterColumnElement };
13
+ export * from '@vaadin/grid/src/vaadin-grid-filter-column.js';
@@ -1,67 +1,18 @@
1
1
  /**
2
- * Fired when the `value` property changes.
2
+ * @license
3
+ * Copyright (c) 2021 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
3
5
  */
4
- export type GridFilterValueChangedEvent = CustomEvent<{ value: string }>;
5
-
6
- export interface GridFilterElementEventMap {
7
- 'value-changed': GridFilterValueChangedEvent;
8
- }
9
-
10
- export interface GridFilterEventMap extends HTMLElementEventMap, GridFilterElementEventMap {}
6
+ import { GridFilter } from '@vaadin/grid/src/vaadin-grid-filter.js';
11
7
 
12
8
  /**
13
- * `<vaadin-grid-filter>` is a helper element for the `<vaadin-grid>` that provides out-of-the-box UI controls,
14
- * and handlers for filtering the grid data.
15
- *
16
- * #### Example:
17
- * ```html
18
- * <vaadin-grid-column id="column"></vaadin-grid-column>
19
- * ```
20
- * ```js
21
- * const column = document.querySelector('#column');
22
- * column.headerRenderer = (root, column) => {
23
- * let filter = root.firstElementChild;
24
- * if (!filter) {
25
- * filter = document.createElement('vaadin-grid-filter');
26
- * root.appendChild(filter);
27
- * }
28
- * filter.path = 'name.first';
29
- * };
30
- * column.renderer = (root, column, model) => {
31
- * root.textContent = model.item.name.first;
32
- * };
33
- * ```
34
- *
35
- * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
9
+ * @deprecated Import `GridFilter` from `@vaadin/grid/vaadin-grid-filter` instead.
36
10
  */
37
- declare class GridFilterElement extends HTMLElement {
38
- /**
39
- * JS Path of the property in the item used for filtering the data.
40
- */
41
- path: string | null | undefined;
42
-
43
- /**
44
- * Current filter value.
45
- */
46
- value: string | null | undefined;
47
-
48
- addEventListener<K extends keyof GridFilterEventMap>(
49
- type: K,
50
- listener: (this: GridFilterElement, ev: GridFilterEventMap[K]) => void,
51
- options?: boolean | AddEventListenerOptions
52
- ): void;
11
+ export type GridFilterElement = GridFilter;
53
12
 
54
- removeEventListener<K extends keyof GridFilterEventMap>(
55
- type: K,
56
- listener: (this: GridFilterElement, ev: GridFilterEventMap[K]) => void,
57
- options?: boolean | EventListenerOptions
58
- ): void;
59
- }
60
-
61
- declare global {
62
- interface HTMLElementTagNameMap {
63
- 'vaadin-grid-filter': GridFilterElement;
64
- }
65
- }
13
+ /**
14
+ * @deprecated Import `GridFilter` from `@vaadin/grid/vaadin-grid-filter` instead.
15
+ */
16
+ export const GridFilterElement: typeof GridFilter;
66
17
 
67
- export { GridFilterElement };
18
+ export * from '@vaadin/grid/src/vaadin-grid-filter.js';
@@ -3,123 +3,11 @@
3
3
  * Copyright (c) 2021 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
- import { PolymerElement, html } from '@polymer/polymer/polymer-element.js';
7
- import { Debouncer } from '@polymer/polymer/lib/utils/debounce.js';
8
- import { timeOut } from '@polymer/polymer/lib/utils/async.js';
9
- import '@vaadin/vaadin-text-field/src/vaadin-text-field.js';
6
+ import { GridFilter } from '@vaadin/grid/src/vaadin-grid-filter.js';
10
7
 
11
8
  /**
12
- * `<vaadin-grid-filter>` is a helper element for the `<vaadin-grid>` that provides out-of-the-box UI controls,
13
- * and handlers for filtering the grid data.
14
- *
15
- * #### Example:
16
- * ```html
17
- * <vaadin-grid-column id="column"></vaadin-grid-column>
18
- * ```
19
- * ```js
20
- * const column = document.querySelector('#column');
21
- * column.headerRenderer = (root, column) => {
22
- * let filter = root.firstElementChild;
23
- * if (!filter) {
24
- * filter = document.createElement('vaadin-grid-filter');
25
- * root.appendChild(filter);
26
- * }
27
- * filter.path = 'name.first';
28
- * };
29
- * column.renderer = (root, column, model) => {
30
- * root.textContent = model.item.name.first;
31
- * };
32
- * ```
33
- *
34
- * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
35
- *
36
- * @extends HTMLElement
9
+ * @deprecated Import `GridFilter` from `@vaadin/grid/vaadin-grid-filter` instead.
37
10
  */
38
- class GridFilterElement extends class extends PolymerElement {} {
39
- static get template() {
40
- return html`
41
- <style>
42
- :host {
43
- display: inline-flex;
44
- max-width: 100%;
45
- }
11
+ export const GridFilterElement = GridFilter;
46
12
 
47
- #filter {
48
- width: 100%;
49
- box-sizing: border-box;
50
- }
51
- </style>
52
- <slot name="filter">
53
- <vaadin-text-field id="filter" value="{{value}}"></vaadin-text-field>
54
- </slot>
55
- `;
56
- }
57
-
58
- static get is() {
59
- return 'vaadin-grid-filter';
60
- }
61
-
62
- static get properties() {
63
- return {
64
- /**
65
- * JS Path of the property in the item used for filtering the data.
66
- */
67
- path: String,
68
-
69
- /**
70
- * Current filter value.
71
- */
72
- value: {
73
- type: String,
74
- notify: true
75
- },
76
-
77
- /** @private */
78
- _connected: Boolean
79
- };
80
- }
81
-
82
- /** @protected */
83
- connectedCallback() {
84
- super.connectedCallback();
85
- this._connected = true;
86
- }
87
-
88
- static get observers() {
89
- return ['_filterChanged(path, value, _connected)'];
90
- }
91
-
92
- /** @protected */
93
- ready() {
94
- super.ready();
95
-
96
- const child = this.firstElementChild;
97
- if (child && child.getAttribute('slot') !== 'filter') {
98
- console.warn('Make sure you have assigned slot="filter" to the child elements of <vaadin-grid-filter>');
99
- child.setAttribute('slot', 'filter');
100
- }
101
- }
102
-
103
- /** @private */
104
- _filterChanged(path, value, connected) {
105
- if (path === undefined || value === undefined || !connected) {
106
- return;
107
- }
108
- if (this._previousValue === undefined && value === '') {
109
- return;
110
- }
111
- this._previousValue = value;
112
-
113
- this._debouncerFilterChanged = Debouncer.debounce(this._debouncerFilterChanged, timeOut.after(200), () => {
114
- this.dispatchEvent(new CustomEvent('filter-changed', { bubbles: true }));
115
- });
116
- }
117
-
118
- focus() {
119
- this.$.filter.focus();
120
- }
121
- }
122
-
123
- customElements.define(GridFilterElement.is, GridFilterElement);
124
-
125
- export { GridFilterElement };
13
+ export * from '@vaadin/grid/src/vaadin-grid-filter.js';
@@ -1,82 +1,19 @@
1
- import { GridDefaultItem } from './interfaces';
2
- import { GridColumnElement } from './vaadin-grid-column.js';
3
-
4
1
  /**
5
- * Fired when the `selectAll` property changes.
2
+ * @license
3
+ * Copyright (c) 2021 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
6
5
  */
7
- export type GridSelectionColumnSelectAllChangedEvent = CustomEvent<{ value: boolean }>;
8
-
9
- export interface GridSelectionColumnElementEventMap {
10
- 'select-all-changed': GridSelectionColumnSelectAllChangedEvent;
11
- }
12
-
13
- export interface GridSelectionColumnEventMap extends HTMLElementEventMap, GridSelectionColumnElementEventMap {}
6
+ import { GridDefaultItem } from '@vaadin/grid/src/vaadin-grid.js';
7
+ import { GridSelectionColumn } from '@vaadin/grid/src/vaadin-grid-selection-column.js';
14
8
 
15
9
  /**
16
- * `<vaadin-grid-selection-column>` is a helper element for the `<vaadin-grid>`
17
- * that provides default renderers and functionality for item selection.
18
- *
19
- * #### Example:
20
- * ```html
21
- * <vaadin-grid items="[[items]]">
22
- * <vaadin-grid-selection-column frozen auto-select></vaadin-grid-selection-column>
23
- *
24
- * <vaadin-grid-column>
25
- * ...
26
- * ```
27
- *
28
- * By default the selection column displays `<vaadin-checkbox>` elements in the
29
- * column cells. The checkboxes in the body rows toggle selection of the corresponding row items.
30
- *
31
- * When the grid data is provided as an array of [`items`](#/elements/vaadin-grid#property-items),
32
- * the column header gets an additional checkbox that can be used for toggling
33
- * selection for all the items at once.
34
- *
35
- * __The default content can also be overridden__
36
- *
37
- * @fires {CustomEvent} select-all-changed - Fired when the `selectAll` property changes.
10
+ * @deprecated Import `GridSelectionColumn` from `@vaadin/grid/vaadin-grid-selection-column` instead.
38
11
  */
39
- declare class GridSelectionColumnElement<TItem = GridDefaultItem> extends GridColumnElement<TItem> {
40
- /**
41
- * Width of the cells for this column.
42
- */
43
- width: string | null | undefined;
44
-
45
- /**
46
- * Flex grow ratio for the cell widths. When set to 0, cell width is fixed.
47
- * @attr {number} flex-grow
48
- */
49
- flexGrow: number;
50
-
51
- /**
52
- * When true, all the items are selected.
53
- * @attr {boolean} select-all
54
- */
55
- selectAll: boolean;
12
+ export type GridSelectionColumnElement<TItem = GridDefaultItem> = GridSelectionColumn<TItem>;
56
13
 
57
- /**
58
- * When true, the active gets automatically selected.
59
- * @attr {boolean} auto-select
60
- */
61
- autoSelect: boolean;
62
-
63
- addEventListener<K extends keyof GridSelectionColumnEventMap>(
64
- type: K,
65
- listener: (this: GridSelectionColumnElement<TItem>, ev: GridSelectionColumnEventMap[K]) => void,
66
- options?: boolean | AddEventListenerOptions
67
- ): void;
68
-
69
- removeEventListener<K extends keyof GridSelectionColumnEventMap>(
70
- type: K,
71
- listener: (this: GridSelectionColumnElement<TItem>, ev: GridSelectionColumnEventMap[K]) => void,
72
- options?: boolean | EventListenerOptions
73
- ): void;
74
- }
75
-
76
- declare global {
77
- interface HTMLElementTagNameMap {
78
- 'vaadin-grid-selection-column': GridSelectionColumnElement<GridDefaultItem>;
79
- }
80
- }
14
+ /**
15
+ * @deprecated Import `GridSelectionColumn` from `@vaadin/grid/vaadin-grid-selection-column` instead.
16
+ */
17
+ export const GridSelectionColumnElement: typeof GridSelectionColumn;
81
18
 
82
- export { GridSelectionColumnElement };
19
+ export * from '@vaadin/grid/src/vaadin-grid-selection-column.js';