@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.
- package/package.json +24 -34
- package/src/vaadin-grid-column-group.d.ts +14 -57
- package/src/vaadin-grid-column-group.js +4 -311
- package/src/vaadin-grid-column.d.ts +14 -142
- package/src/vaadin-grid-column.js +4 -759
- package/src/vaadin-grid-filter-column.d.ts +14 -30
- package/src/vaadin-grid-filter-column.js +4 -111
- package/src/vaadin-grid-filter.d.ts +11 -60
- package/src/vaadin-grid-filter.js +4 -116
- package/src/vaadin-grid-selection-column.d.ts +12 -75
- package/src/vaadin-grid-selection-column.js +4 -276
- package/src/vaadin-grid-sort-column.d.ts +12 -56
- package/src/vaadin-grid-sort-column.js +4 -109
- package/src/vaadin-grid-sorter.d.ts +11 -82
- package/src/vaadin-grid-sorter.js +4 -221
- package/src/vaadin-grid-tree-column.d.ts +14 -31
- package/src/vaadin-grid-tree-column.js +4 -110
- package/src/vaadin-grid-tree-toggle.d.ts +11 -91
- package/src/vaadin-grid-tree-toggle.js +4 -196
- package/src/vaadin-grid.d.ts +10 -422
- package/src/vaadin-grid.js +4 -1026
- package/theme/lumo/vaadin-grid-column-group.js +1 -1
- package/theme/lumo/vaadin-grid-column.js +1 -1
- package/theme/lumo/vaadin-grid-filter-column.js +1 -2
- package/theme/lumo/vaadin-grid-filter.js +1 -2
- package/theme/lumo/vaadin-grid-selection-column.js +1 -2
- package/theme/lumo/vaadin-grid-sort-column.js +1 -2
- package/theme/lumo/vaadin-grid-sorter.js +1 -2
- package/theme/lumo/vaadin-grid-tree-column.js +1 -2
- package/theme/lumo/vaadin-grid-tree-toggle.js +1 -2
- package/theme/lumo/vaadin-grid.js +1 -9
- package/theme/material/vaadin-grid-column-group.js +1 -1
- package/theme/material/vaadin-grid-column.js +1 -1
- package/theme/material/vaadin-grid-filter-column.js +1 -2
- package/theme/material/vaadin-grid-filter.js +1 -2
- package/theme/material/vaadin-grid-selection-column.js +1 -2
- package/theme/material/vaadin-grid-sort-column.js +1 -2
- package/theme/material/vaadin-grid-sorter.js +1 -2
- package/theme/material/vaadin-grid-tree-column.js +1 -2
- package/theme/material/vaadin-grid-tree-toggle.js +1 -2
- package/theme/material/vaadin-grid.js +1 -2
- package/vaadin-grid.d.ts +0 -1
- package/src/array-data-provider.js +0 -145
- package/src/interfaces.d.ts +0 -78
- package/src/vaadin-grid-a11y-mixin.d.ts +0 -27
- package/src/vaadin-grid-a11y-mixin.js +0 -158
- package/src/vaadin-grid-active-item-mixin.d.ts +0 -28
- package/src/vaadin-grid-active-item-mixin.js +0 -117
- package/src/vaadin-grid-array-data-provider-mixin.d.ts +0 -20
- package/src/vaadin-grid-array-data-provider-mixin.js +0 -75
- package/src/vaadin-grid-column-reordering-mixin.d.ts +0 -47
- package/src/vaadin-grid-column-reordering-mixin.js +0 -387
- package/src/vaadin-grid-column-resizing-mixin.d.ts +0 -11
- package/src/vaadin-grid-column-resizing-mixin.js +0 -111
- package/src/vaadin-grid-data-provider-mixin.d.ts +0 -126
- package/src/vaadin-grid-data-provider-mixin.js +0 -520
- package/src/vaadin-grid-drag-and-drop-mixin.d.ts +0 -73
- package/src/vaadin-grid-drag-and-drop-mixin.js +0 -435
- package/src/vaadin-grid-dynamic-columns-mixin.d.ts +0 -27
- package/src/vaadin-grid-dynamic-columns-mixin.js +0 -180
- package/src/vaadin-grid-event-context-mixin.d.ts +0 -33
- package/src/vaadin-grid-event-context-mixin.js +0 -57
- package/src/vaadin-grid-filter-mixin.d.ts +0 -13
- package/src/vaadin-grid-filter-mixin.js +0 -76
- package/src/vaadin-grid-helpers.js +0 -23
- package/src/vaadin-grid-keyboard-navigation-mixin.d.ts +0 -31
- package/src/vaadin-grid-keyboard-navigation-mixin.js +0 -891
- package/src/vaadin-grid-row-details-mixin.d.ts +0 -54
- package/src/vaadin-grid-row-details-mixin.js +0 -200
- package/src/vaadin-grid-scroll-mixin.d.ts +0 -22
- package/src/vaadin-grid-scroll-mixin.js +0 -202
- package/src/vaadin-grid-selection-mixin.d.ts +0 -39
- package/src/vaadin-grid-selection-mixin.js +0 -93
- package/src/vaadin-grid-sort-mixin.d.ts +0 -21
- package/src/vaadin-grid-sort-mixin.js +0 -139
- package/src/vaadin-grid-styles.js +0 -297
- package/src/vaadin-grid-styling-mixin.d.ts +0 -37
- package/src/vaadin-grid-styling-mixin.js +0 -71
- package/theme/lumo/vaadin-grid-sorter-styles.js +0 -54
- package/theme/lumo/vaadin-grid-styles.js +0 -380
- package/theme/lumo/vaadin-grid-tree-toggle-styles.js +0 -112
- package/theme/material/vaadin-grid-sorter-styles.js +0 -72
- package/theme/material/vaadin-grid-styles.js +0 -252
- package/theme/material/vaadin-grid-tree-toggle-styles.js +0 -42
|
@@ -3,228 +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 {
|
|
7
|
-
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
8
|
-
import { DirMixin } from '@vaadin/vaadin-element-mixin/vaadin-dir-mixin.js';
|
|
9
|
-
|
|
10
|
-
const $_documentContainer = document.createElement('template');
|
|
11
|
-
|
|
12
|
-
$_documentContainer.innerHTML = `
|
|
13
|
-
<style>
|
|
14
|
-
@font-face {
|
|
15
|
-
font-family: 'vaadin-grid-sorter-icons';
|
|
16
|
-
src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAQwAA0AAAAABuwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEFAAAABkAAAAcfep+mUdERUYAAAP4AAAAHAAAAB4AJwAOT1MvMgAAAZgAAAA/AAAAYA8TBPpjbWFwAAAB7AAAAFUAAAFeF1fZ4mdhc3AAAAPwAAAACAAAAAgAAAAQZ2x5ZgAAAlgAAABcAAAAnMvguMloZWFkAAABMAAAAC8AAAA2C5Ap72hoZWEAAAFgAAAAHQAAACQGbQPHaG10eAAAAdgAAAAUAAAAHAoAAABsb2NhAAACRAAAABIAAAASAIwAYG1heHAAAAGAAAAAFgAAACAACwAKbmFtZQAAArQAAAECAAACZxWCgKhwb3N0AAADuAAAADUAAABZCrApUXicY2BkYGAA4rDECVrx/DZfGbhZGEDgyqNPOxH0/wNMq5kPALkcDEwgUQBWRA0dAHicY2BkYGA+8P8AAwMLAwgwrWZgZEAFbABY4QM8AAAAeJxjYGRgYOAAQiYGEICQSAAAAi8AFgAAeJxjYGY6yziBgZWBgWkm0xkGBoZ+CM34msGYkZMBFTAKoAkwODAwvmRiPvD/AIMDMxCD1CDJKjAwAgBktQsXAHicY2GAAMZQCM0EwqshbAALxAEKeJxjYGBgZoBgGQZGBhCIAPIYwXwWBhsgzcXAwcAEhIwMCi+Z/v/9/x+sSuElA4T9/4k4K1gHFwMMMILMY2QDYmaoABOQYGJABUA7WBiGNwAAJd4NIQAAAAAAAAAACAAIABAAGAAmAEAATgAAeJyNjLENgDAMBP9tIURJwQCMQccSZgk2i5fIYBDAidJjycXr7x5EPwE2wY8si7jmyBNXGo/bNBerxJNrpxhbO3/fEFpx8ZICpV+ghxJ74fAMe+h7Ox14AbrsHB14nK2QQWrDMBRER4mTkhQK3ZRQKOgCNk7oGQqhhEIX2WSlWEI1BAlkJ5CDdNsj5Ey9Rncdi38ES+jzNJo/HwTgATcoDEthhY3wBHc4CE+pfwsX5F/hGe7Vo/AcK/UhvMSz+mGXKhZU6pww8ISz3oWn1BvhgnwTnuEJf8Jz1OpFeIlX9YULDLdFi4ASHolkSR0iuYdjLak1vAequBhj21D61Nqyi6l3qWybGPjySbPHGScGJl6dP58MYcQRI0bts7mjebBqrFENH7t3qWtj0OuqHnXcW7b0HOTZFnKryRGW2hFX1m0O2vEM3opNMfTau+CS6Z3Vx6veNnEXY6jwDxhsc2gAAHicY2BiwA84GBgYmRiYGJkZmBlZGFkZ2djScyoLMgzZS/MyDQwMwLSrpYEBlIbxjQDrzgsuAAAAAAEAAf//AA94nGNgZGBg4AFiMSBmYmAEQnYgZgHzGAAD6wA2eJxjYGBgZACCKyoz1cD0o087YTQATOcIewAAAA==) format('woff');
|
|
17
|
-
font-weight: normal;
|
|
18
|
-
font-style: normal;
|
|
19
|
-
}
|
|
20
|
-
</style>
|
|
21
|
-
`;
|
|
22
|
-
|
|
23
|
-
document.head.appendChild($_documentContainer.content);
|
|
6
|
+
import { GridSorter } from '@vaadin/grid/src/vaadin-grid-sorter.js';
|
|
24
7
|
|
|
25
8
|
/**
|
|
26
|
-
*
|
|
27
|
-
* visual feedback, and handlers for sorting the grid data.
|
|
28
|
-
*
|
|
29
|
-
* #### Example:
|
|
30
|
-
* ```html
|
|
31
|
-
* <vaadin-grid-column id="column"></vaadin-grid-column>
|
|
32
|
-
* ```
|
|
33
|
-
* ```js
|
|
34
|
-
* const column = document.querySelector('#column');
|
|
35
|
-
* column.renderer = (root, column, model) => {
|
|
36
|
-
* let sorter = root.firstElementChild;
|
|
37
|
-
* if (!sorter) {
|
|
38
|
-
* sorter = document.createElement('vaadin-grid-sorter');
|
|
39
|
-
* root.appendChild(sorter);
|
|
40
|
-
* }
|
|
41
|
-
* sorter.path = 'name.first';
|
|
42
|
-
* };
|
|
43
|
-
* ```
|
|
44
|
-
*
|
|
45
|
-
* ### Styling
|
|
46
|
-
*
|
|
47
|
-
* The following shadow DOM parts are available for styling:
|
|
48
|
-
*
|
|
49
|
-
* Part name | Description
|
|
50
|
-
* ----------------|----------------
|
|
51
|
-
* `content` | The slotted content wrapper
|
|
52
|
-
* `indicators` | The internal sorter indicators.
|
|
53
|
-
* `order` | The internal sorter order
|
|
54
|
-
*
|
|
55
|
-
* The following state attributes are available for styling:
|
|
56
|
-
*
|
|
57
|
-
* Attribute | Description | Part name
|
|
58
|
-
* -------------|-------------|------------
|
|
59
|
-
* `direction` | Sort direction of a sorter | :host
|
|
60
|
-
*
|
|
61
|
-
* @fires {CustomEvent} direction-changed - Fired when the `direction` property changes.
|
|
62
|
-
* @fires {CustomEvent} sorter-changed - Fired when the `path` or `direction` property changes.
|
|
63
|
-
*
|
|
64
|
-
* @extends HTMLElement
|
|
9
|
+
* @deprecated Import `GridSorter` from `@vaadin/grid/vaadin-grid-sorter` instead.
|
|
65
10
|
*/
|
|
66
|
-
|
|
67
|
-
static get template() {
|
|
68
|
-
return html`
|
|
69
|
-
<style>
|
|
70
|
-
:host {
|
|
71
|
-
display: inline-flex;
|
|
72
|
-
cursor: pointer;
|
|
73
|
-
max-width: 100%;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
[part='content'] {
|
|
77
|
-
flex: 1 1 auto;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
[part='indicators'] {
|
|
81
|
-
position: relative;
|
|
82
|
-
align-self: center;
|
|
83
|
-
flex: none;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
[part='order'] {
|
|
87
|
-
display: inline;
|
|
88
|
-
vertical-align: super;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
[part='indicators']::before {
|
|
92
|
-
font-family: 'vaadin-grid-sorter-icons';
|
|
93
|
-
display: inline-block;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
:host(:not([direction])) [part='indicators']::before {
|
|
97
|
-
content: '\\e901';
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
:host([direction='asc']) [part='indicators']::before {
|
|
101
|
-
content: '\\e900';
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
:host([direction='desc']) [part='indicators']::before {
|
|
105
|
-
content: '\\e902';
|
|
106
|
-
}
|
|
107
|
-
</style>
|
|
108
|
-
|
|
109
|
-
<div part="content">
|
|
110
|
-
<slot></slot>
|
|
111
|
-
</div>
|
|
112
|
-
<div part="indicators">
|
|
113
|
-
<span part="order">[[_getDisplayOrder(_order)]]</span>
|
|
114
|
-
</div>
|
|
115
|
-
`;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
static get is() {
|
|
119
|
-
return 'vaadin-grid-sorter';
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
static get properties() {
|
|
123
|
-
return {
|
|
124
|
-
/**
|
|
125
|
-
* JS Path of the property in the item used for sorting the data.
|
|
126
|
-
*/
|
|
127
|
-
path: String,
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* How to sort the data.
|
|
131
|
-
* Possible values are `asc` to use an ascending algorithm, `desc` to sort the data in
|
|
132
|
-
* descending direction, or `null` for not sorting the data.
|
|
133
|
-
* @type {GridSorterDirection | undefined}
|
|
134
|
-
*/
|
|
135
|
-
direction: {
|
|
136
|
-
type: String,
|
|
137
|
-
reflectToAttribute: true,
|
|
138
|
-
notify: true,
|
|
139
|
-
value: null
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* @type {number | null}
|
|
144
|
-
* @protected
|
|
145
|
-
*/
|
|
146
|
-
_order: {
|
|
147
|
-
type: Number,
|
|
148
|
-
value: null
|
|
149
|
-
},
|
|
150
|
-
|
|
151
|
-
/** @private */
|
|
152
|
-
_isConnected: {
|
|
153
|
-
type: Boolean,
|
|
154
|
-
observer: '__isConnectedChanged'
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
static get observers() {
|
|
160
|
-
return ['_pathOrDirectionChanged(path, direction)'];
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/** @protected */
|
|
164
|
-
ready() {
|
|
165
|
-
super.ready();
|
|
166
|
-
this.addEventListener('click', this._onClick.bind(this));
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/** @protected */
|
|
170
|
-
connectedCallback() {
|
|
171
|
-
super.connectedCallback();
|
|
172
|
-
this._isConnected = true;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/** @protected */
|
|
176
|
-
disconnectedCallback() {
|
|
177
|
-
super.disconnectedCallback();
|
|
178
|
-
this._isConnected = false;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/** @private */
|
|
182
|
-
_pathOrDirectionChanged() {
|
|
183
|
-
this.__dispatchSorterChangedEvenIfPossible();
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/** @private */
|
|
187
|
-
__isConnectedChanged(newValue, oldValue) {
|
|
188
|
-
if (oldValue === false) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
this.__dispatchSorterChangedEvenIfPossible();
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/** @private */
|
|
196
|
-
__dispatchSorterChangedEvenIfPossible() {
|
|
197
|
-
if (this.path === undefined || this.direction === undefined || !this._isConnected) {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
this.dispatchEvent(new CustomEvent('sorter-changed', { bubbles: true, composed: true }));
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/** @private */
|
|
205
|
-
_getDisplayOrder(order) {
|
|
206
|
-
return order === null ? '' : order + 1;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/** @private */
|
|
210
|
-
_onClick(e) {
|
|
211
|
-
const activeElement = this.getRootNode().activeElement;
|
|
212
|
-
if (this !== activeElement && this.contains(activeElement)) {
|
|
213
|
-
// Some focusable content inside the sorter was clicked, do nothing.
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
e.preventDefault();
|
|
218
|
-
if (this.direction === 'asc') {
|
|
219
|
-
this.direction = 'desc';
|
|
220
|
-
} else if (this.direction === 'desc') {
|
|
221
|
-
this.direction = null;
|
|
222
|
-
} else {
|
|
223
|
-
this.direction = 'asc';
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
customElements.define(GridSorterElement.is, GridSorterElement);
|
|
11
|
+
export const GridSorterElement = GridSorter;
|
|
229
12
|
|
|
230
|
-
export
|
|
13
|
+
export * from '@vaadin/grid/src/vaadin-grid-sorter.js';
|
|
@@ -1,36 +1,19 @@
|
|
|
1
|
-
import { GridDefaultItem } from './interfaces';
|
|
2
|
-
import { GridColumnElement } from './vaadin-grid-column.js';
|
|
3
|
-
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* #### Example:
|
|
9
|
-
* ```html
|
|
10
|
-
* <vaadin-grid items="[[items]]">
|
|
11
|
-
* <vaadin-grid-tree-column path="name.first"></vaadin-grid-tree-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
|
-
|
|
18
|
-
|
|
19
|
-
* JS Path of the property in the item used as text content for the tree toggle.
|
|
20
|
-
*/
|
|
21
|
-
path: string | null | undefined;
|
|
6
|
+
import { GridDefaultItem } from '@vaadin/grid/src/vaadin-grid.js';
|
|
7
|
+
import { GridTreeColumn } from '@vaadin/grid/src/vaadin-grid-tree-column.js';
|
|
22
8
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
itemHasChildrenPath: string | null | undefined;
|
|
28
|
-
}
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Import `GridTreeColumn` from `@vaadin/grid/vaadin-grid-tree-column` instead.
|
|
11
|
+
*/
|
|
12
|
+
export type GridTreeColumnElement<TItem = GridDefaultItem> = GridTreeColumn<TItem>;
|
|
29
13
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Import `GridTreeColumn` from `@vaadin/grid/vaadin-grid-tree-column` instead.
|
|
16
|
+
*/
|
|
17
|
+
export const GridTreeColumnElement: typeof GridTreeColumn;
|
|
35
18
|
|
|
36
|
-
export
|
|
19
|
+
export * from '@vaadin/grid/src/vaadin-grid-tree-column.js';
|
|
@@ -3,117 +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 {
|
|
7
|
-
import './vaadin-grid-tree-toggle.js';
|
|
6
|
+
import { GridTreeColumn } from '@vaadin/grid/src/vaadin-grid-tree-column.js';
|
|
8
7
|
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
11
|
-
* that provides default renderer and functionality for toggling tree/hierarchical items.
|
|
12
|
-
*
|
|
13
|
-
* #### Example:
|
|
14
|
-
* ```html
|
|
15
|
-
* <vaadin-grid items="[[items]]">
|
|
16
|
-
* <vaadin-grid-tree-column path="name.first"></vaadin-grid-tree-column>
|
|
17
|
-
*
|
|
18
|
-
* <vaadin-grid-column>
|
|
19
|
-
* ...
|
|
20
|
-
* ```
|
|
9
|
+
* @deprecated Import `GridTreeColumn` from `@vaadin/grid/vaadin-grid-tree-column` instead.
|
|
21
10
|
*/
|
|
22
|
-
|
|
23
|
-
static get is() {
|
|
24
|
-
return 'vaadin-grid-tree-column';
|
|
25
|
-
}
|
|
11
|
+
export const GridTreeColumnElement = GridTreeColumn;
|
|
26
12
|
|
|
27
|
-
|
|
28
|
-
return {
|
|
29
|
-
/**
|
|
30
|
-
* JS Path of the property in the item used as text content for the tree toggle.
|
|
31
|
-
*/
|
|
32
|
-
path: String,
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* JS Path of the property in the item that indicates whether the item has child items.
|
|
36
|
-
* @attr {string} item-has-children-path
|
|
37
|
-
*/
|
|
38
|
-
itemHasChildrenPath: {
|
|
39
|
-
type: String,
|
|
40
|
-
value: 'children'
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
static get observers() {
|
|
46
|
-
return ['_onRendererOrBindingChanged(_renderer, _cells, _cells.*, path, itemHasChildrenPath)'];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
constructor() {
|
|
50
|
-
super();
|
|
51
|
-
|
|
52
|
-
this.__boundOnExpandedChanged = this.__onExpandedChanged.bind(this);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Renders the grid tree toggle to the body cell
|
|
57
|
-
*
|
|
58
|
-
* @private
|
|
59
|
-
*/
|
|
60
|
-
__defaultRenderer(root, _column, { item, expanded, level }) {
|
|
61
|
-
let toggle = root.firstElementChild;
|
|
62
|
-
if (!toggle) {
|
|
63
|
-
toggle = document.createElement('vaadin-grid-tree-toggle');
|
|
64
|
-
toggle.addEventListener('expanded-changed', this.__boundOnExpandedChanged);
|
|
65
|
-
root.appendChild(toggle);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
toggle.__item = item;
|
|
69
|
-
toggle.__rendererExpanded = expanded;
|
|
70
|
-
toggle.expanded = expanded;
|
|
71
|
-
toggle.leaf = this.__isLeafItem(item, this.itemHasChildrenPath);
|
|
72
|
-
toggle.textContent = this.__getToggleContent(this.path, item);
|
|
73
|
-
toggle.level = level;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* The tree column doesn't allow to use a custom renderer
|
|
78
|
-
* to override the content of body cells.
|
|
79
|
-
* It always renders the grid tree toggle to body cells.
|
|
80
|
-
*
|
|
81
|
-
* @override
|
|
82
|
-
*/
|
|
83
|
-
_computeRenderer() {
|
|
84
|
-
return this.__defaultRenderer;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Expands or collapses the row once the tree toggle is switched.
|
|
89
|
-
* The listener handles only user-fired events.
|
|
90
|
-
*
|
|
91
|
-
* @private
|
|
92
|
-
*/
|
|
93
|
-
__onExpandedChanged(e) {
|
|
94
|
-
// Skip if the state is changed by the renderer.
|
|
95
|
-
if (e.detail.value === e.target.__rendererExpanded) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (e.detail.value) {
|
|
100
|
-
this._grid.expandItem(e.target.__item);
|
|
101
|
-
} else {
|
|
102
|
-
this._grid.collapseItem(e.target.__item);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/** @private */
|
|
107
|
-
__isLeafItem(item, itemHasChildrenPath) {
|
|
108
|
-
return !item || !item[itemHasChildrenPath];
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/** @private */
|
|
112
|
-
__getToggleContent(path, item) {
|
|
113
|
-
return path && this.get(path, item);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
customElements.define(GridTreeColumnElement.is, GridTreeColumnElement);
|
|
118
|
-
|
|
119
|
-
export { GridTreeColumnElement };
|
|
13
|
+
export * from '@vaadin/grid/src/vaadin-grid-tree-column.js';
|
|
@@ -1,98 +1,18 @@
|
|
|
1
|
-
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
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/
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export interface GridTreeToggleElementEventMap {
|
|
9
|
-
'expanded-changed': GridTreeToggleExpandedChangedEvent;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface GridTreeToggleEventMap extends HTMLElementEventMap, GridTreeToggleElementEventMap {}
|
|
6
|
+
import { GridTreeToggle } from '@vaadin/grid/src/vaadin-grid-tree-toggle.js';
|
|
13
7
|
|
|
14
8
|
/**
|
|
15
|
-
*
|
|
16
|
-
* that provides toggle and level display functionality for the item tree.
|
|
17
|
-
*
|
|
18
|
-
* #### Example:
|
|
19
|
-
* ```html
|
|
20
|
-
* <vaadin-grid-column id="column"></vaadin-grid-column>
|
|
21
|
-
* ```
|
|
22
|
-
* ```js
|
|
23
|
-
* const column = document.querySelector('#column');
|
|
24
|
-
* column.renderer = (root, column, model) => {
|
|
25
|
-
* let treeToggle = root.firstElementChild;
|
|
26
|
-
* if (!treeToggle) {
|
|
27
|
-
* treeToggle = document.createElement('vaadin-grid-tree-toggle');
|
|
28
|
-
* treeToggle.addEventListener('expanded-changed', () => { ... });
|
|
29
|
-
* root.appendChild(treeToggle);
|
|
30
|
-
* }
|
|
31
|
-
* treeToggle.leaf = !model.item.hasChildren;
|
|
32
|
-
* treeToggle.level = level;
|
|
33
|
-
* treeToggle.expanded = expanded;
|
|
34
|
-
* treeToggle.textContent = model.item.name;
|
|
35
|
-
* };
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
|
-
* ### Styling
|
|
39
|
-
*
|
|
40
|
-
* The following shadow DOM parts are available for styling:
|
|
41
|
-
*
|
|
42
|
-
* Part name | Description
|
|
43
|
-
* ---|---
|
|
44
|
-
* `toggle` | The tree toggle icon
|
|
45
|
-
*
|
|
46
|
-
* The following state attributes are available for styling:
|
|
47
|
-
*
|
|
48
|
-
* Attribute | Description | Part name
|
|
49
|
-
* ---|---|---
|
|
50
|
-
* `expanded` | When present, the toggle is expanded | :host
|
|
51
|
-
* `leaf` | When present, the toggle is not expandable, i. e., the current item is a leaf | :host
|
|
52
|
-
*
|
|
53
|
-
* The following custom CSS properties are available on
|
|
54
|
-
* the `<vaadin-grid-tree-toggle>` element:
|
|
55
|
-
*
|
|
56
|
-
* Custom CSS property | Description | Default
|
|
57
|
-
* ---|---|---
|
|
58
|
-
* `--vaadin-grid-tree-toggle-level-offset` | Visual offset step for each tree sublevel | `1em`
|
|
59
|
-
*
|
|
60
|
-
* @fires {CustomEvent} expanded-changed - Fired when the `expanded` property changes.
|
|
9
|
+
* @deprecated Import `GridTreeToggle` from `@vaadin/grid/vaadin-grid-tree-toggle` instead.
|
|
61
10
|
*/
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Current level of the tree represented with a horizontal offset
|
|
65
|
-
* of the toggle button.
|
|
66
|
-
*/
|
|
67
|
-
level: number;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Hides the toggle icon and disables toggling a tree sublevel.
|
|
71
|
-
*/
|
|
72
|
-
leaf: boolean;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Sublevel toggle state.
|
|
76
|
-
*/
|
|
77
|
-
expanded: boolean;
|
|
11
|
+
export type GridTreeToggleElement = GridTreeToggle;
|
|
78
12
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
): void;
|
|
84
|
-
|
|
85
|
-
removeEventListener<K extends keyof GridTreeToggleEventMap>(
|
|
86
|
-
type: K,
|
|
87
|
-
listener: (this: GridTreeToggleElement, ev: GridTreeToggleEventMap[K]) => void,
|
|
88
|
-
options?: boolean | EventListenerOptions
|
|
89
|
-
): void;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
declare global {
|
|
93
|
-
interface HTMLElementTagNameMap {
|
|
94
|
-
'vaadin-grid-tree-toggle': GridTreeToggleElement;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Import `GridTreeToggle` from `@vaadin/grid/vaadin-grid-tree-toggle` instead.
|
|
15
|
+
*/
|
|
16
|
+
export const GridTreeToggleElement: typeof GridTreeToggle;
|
|
97
17
|
|
|
98
|
-
export
|
|
18
|
+
export * from '@vaadin/grid/src/vaadin-grid-tree-toggle.js';
|