@vaadin/grid 22.0.0-alpha7

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 (104) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +79 -0
  3. package/all-imports.js +1 -0
  4. package/package.json +58 -0
  5. package/src/all-imports.js +14 -0
  6. package/src/array-data-provider.js +145 -0
  7. package/src/interfaces.d.ts +75 -0
  8. package/src/vaadin-grid-a11y-mixin.js +158 -0
  9. package/src/vaadin-grid-active-item-mixin.d.ts +19 -0
  10. package/src/vaadin-grid-active-item-mixin.js +117 -0
  11. package/src/vaadin-grid-array-data-provider-mixin.d.ts +16 -0
  12. package/src/vaadin-grid-array-data-provider-mixin.js +75 -0
  13. package/src/vaadin-grid-column-group.d.ts +54 -0
  14. package/src/vaadin-grid-column-group.js +320 -0
  15. package/src/vaadin-grid-column-reordering-mixin.d.ts +19 -0
  16. package/src/vaadin-grid-column-reordering-mixin.js +387 -0
  17. package/src/vaadin-grid-column-resizing-mixin.js +111 -0
  18. package/src/vaadin-grid-column.d.ts +133 -0
  19. package/src/vaadin-grid-column.js +745 -0
  20. package/src/vaadin-grid-data-provider-mixin.d.ts +108 -0
  21. package/src/vaadin-grid-data-provider-mixin.js +520 -0
  22. package/src/vaadin-grid-drag-and-drop-mixin.d.ts +69 -0
  23. package/src/vaadin-grid-drag-and-drop-mixin.js +433 -0
  24. package/src/vaadin-grid-dynamic-columns-mixin.js +180 -0
  25. package/src/vaadin-grid-event-context-mixin.d.ts +33 -0
  26. package/src/vaadin-grid-event-context-mixin.js +57 -0
  27. package/src/vaadin-grid-filter-column.d.ts +35 -0
  28. package/src/vaadin-grid-filter-column.js +120 -0
  29. package/src/vaadin-grid-filter-mixin.js +76 -0
  30. package/src/vaadin-grid-filter.d.ts +67 -0
  31. package/src/vaadin-grid-filter.js +125 -0
  32. package/src/vaadin-grid-helpers.js +23 -0
  33. package/src/vaadin-grid-keyboard-navigation-mixin.js +891 -0
  34. package/src/vaadin-grid-row-details-mixin.d.ts +44 -0
  35. package/src/vaadin-grid-row-details-mixin.js +200 -0
  36. package/src/vaadin-grid-scroll-mixin.d.ts +18 -0
  37. package/src/vaadin-grid-scroll-mixin.js +202 -0
  38. package/src/vaadin-grid-selection-column.d.ts +71 -0
  39. package/src/vaadin-grid-selection-column.js +285 -0
  40. package/src/vaadin-grid-selection-mixin.d.ts +30 -0
  41. package/src/vaadin-grid-selection-mixin.js +93 -0
  42. package/src/vaadin-grid-sort-column.d.ts +63 -0
  43. package/src/vaadin-grid-sort-column.js +118 -0
  44. package/src/vaadin-grid-sort-mixin.d.ts +15 -0
  45. package/src/vaadin-grid-sort-mixin.js +139 -0
  46. package/src/vaadin-grid-sorter.d.ts +94 -0
  47. package/src/vaadin-grid-sorter.js +230 -0
  48. package/src/vaadin-grid-styles.js +297 -0
  49. package/src/vaadin-grid-styling-mixin.d.ts +37 -0
  50. package/src/vaadin-grid-styling-mixin.js +71 -0
  51. package/src/vaadin-grid-tree-column.d.ts +36 -0
  52. package/src/vaadin-grid-tree-column.js +119 -0
  53. package/src/vaadin-grid-tree-toggle.d.ts +104 -0
  54. package/src/vaadin-grid-tree-toggle.js +205 -0
  55. package/src/vaadin-grid.d.ts +397 -0
  56. package/src/vaadin-grid.js +1004 -0
  57. package/theme/lumo/all-imports.js +11 -0
  58. package/theme/lumo/vaadin-grid-column-group.js +1 -0
  59. package/theme/lumo/vaadin-grid-column.js +1 -0
  60. package/theme/lumo/vaadin-grid-filter-column.js +2 -0
  61. package/theme/lumo/vaadin-grid-filter.js +2 -0
  62. package/theme/lumo/vaadin-grid-selection-column.js +2 -0
  63. package/theme/lumo/vaadin-grid-sort-column.js +2 -0
  64. package/theme/lumo/vaadin-grid-sorter-styles.js +53 -0
  65. package/theme/lumo/vaadin-grid-sorter.js +2 -0
  66. package/theme/lumo/vaadin-grid-styles.js +378 -0
  67. package/theme/lumo/vaadin-grid-tree-column.js +2 -0
  68. package/theme/lumo/vaadin-grid-tree-toggle-styles.js +112 -0
  69. package/theme/lumo/vaadin-grid-tree-toggle.js +2 -0
  70. package/theme/lumo/vaadin-grid.js +9 -0
  71. package/theme/material/all-imports.js +11 -0
  72. package/theme/material/vaadin-grid-column-group.js +1 -0
  73. package/theme/material/vaadin-grid-column.js +1 -0
  74. package/theme/material/vaadin-grid-filter-column.js +2 -0
  75. package/theme/material/vaadin-grid-filter.js +2 -0
  76. package/theme/material/vaadin-grid-selection-column.js +2 -0
  77. package/theme/material/vaadin-grid-sort-column.js +2 -0
  78. package/theme/material/vaadin-grid-sorter-styles.js +72 -0
  79. package/theme/material/vaadin-grid-sorter.js +2 -0
  80. package/theme/material/vaadin-grid-styles.js +252 -0
  81. package/theme/material/vaadin-grid-tree-column.js +2 -0
  82. package/theme/material/vaadin-grid-tree-toggle-styles.js +42 -0
  83. package/theme/material/vaadin-grid-tree-toggle.js +2 -0
  84. package/theme/material/vaadin-grid.js +2 -0
  85. package/vaadin-grid-column-group.d.ts +1 -0
  86. package/vaadin-grid-column-group.js +3 -0
  87. package/vaadin-grid-column.d.ts +1 -0
  88. package/vaadin-grid-column.js +3 -0
  89. package/vaadin-grid-filter-column.d.ts +1 -0
  90. package/vaadin-grid-filter-column.js +3 -0
  91. package/vaadin-grid-filter.d.ts +1 -0
  92. package/vaadin-grid-filter.js +3 -0
  93. package/vaadin-grid-selection-column.d.ts +1 -0
  94. package/vaadin-grid-selection-column.js +3 -0
  95. package/vaadin-grid-sort-column.d.ts +1 -0
  96. package/vaadin-grid-sort-column.js +3 -0
  97. package/vaadin-grid-sorter.d.ts +1 -0
  98. package/vaadin-grid-sorter.js +3 -0
  99. package/vaadin-grid-tree-column.d.ts +1 -0
  100. package/vaadin-grid-tree-column.js +3 -0
  101. package/vaadin-grid-tree-toggle.d.ts +1 -0
  102. package/vaadin-grid-tree-toggle.js +3 -0
  103. package/vaadin-grid.d.ts +3 -0
  104. package/vaadin-grid.js +4 -0
@@ -0,0 +1,72 @@
1
+ import { registerStyles, css } from '@vaadin/vaadin-themable-mixin/register-styles.js';
2
+ import '@vaadin/vaadin-material-styles/color.js';
3
+ import '@vaadin/vaadin-material-styles/font-icons.js';
4
+
5
+ registerStyles(
6
+ 'vaadin-grid-sorter',
7
+ css`
8
+ :host {
9
+ justify-content: flex-start;
10
+ height: 100%;
11
+ align-items: center;
12
+ -webkit-user-select: none;
13
+ -moz-user-select: none;
14
+ user-select: none;
15
+ }
16
+
17
+ :host([direction]) {
18
+ color: var(--material-body-text-color);
19
+ }
20
+
21
+ [part='indicators'] {
22
+ order: -1;
23
+ }
24
+
25
+ [part='indicators']::before {
26
+ display: inline-block;
27
+ width: 24px;
28
+ font-family: 'material-icons';
29
+ font-size: 18px;
30
+ line-height: 18px;
31
+ transition: 0.1s opacity cubic-bezier(0.4, 0, 0.2, 0.1), 0.1s width cubic-bezier(0.4, 0, 0.2, 0.1);
32
+ opacity: 0.5;
33
+ }
34
+
35
+ :host(:not([direction])) [part='indicators']::before {
36
+ content: var(--material-icons-arrow-upward);
37
+ width: 0;
38
+ opacity: 0;
39
+ }
40
+
41
+ :host([direction]) [part='indicators']::before {
42
+ opacity: 1;
43
+ }
44
+
45
+ :host([direction='asc']) [part='indicators']::before {
46
+ content: var(--material-icons-arrow-upward);
47
+ }
48
+
49
+ :host([direction='desc']) [part='indicators']::before {
50
+ content: var(--material-icons-arrow-downward);
51
+ }
52
+
53
+ :host(:hover) [part='indicators']::before {
54
+ width: 24px;
55
+ opacity: 1;
56
+ }
57
+
58
+ [part='order'] {
59
+ right: 4px;
60
+ top: -8px;
61
+ font-size: 10px;
62
+ }
63
+
64
+ /* RTL specific styles */
65
+
66
+ :host([dir='rtl']) [part='order'] {
67
+ left: 4px;
68
+ right: auto;
69
+ }
70
+ `,
71
+ { moduleId: 'material-grid-sorter' }
72
+ );
@@ -0,0 +1,2 @@
1
+ import './vaadin-grid-sorter-styles.js';
2
+ import '../../src/vaadin-grid-sorter.js';
@@ -0,0 +1,252 @@
1
+ import { registerStyles, css } from '@vaadin/vaadin-themable-mixin/register-styles.js';
2
+ import '@vaadin/vaadin-material-styles/color.js';
3
+ import '@vaadin/vaadin-material-styles/typography.js';
4
+
5
+ registerStyles(
6
+ 'vaadin-grid',
7
+ css`
8
+ :host {
9
+ background-color: var(--material-background-color);
10
+ font-family: var(--material-font-family);
11
+ font-size: var(--material-small-font-size);
12
+ line-height: 20px;
13
+ color: var(--material-body-text-color);
14
+ }
15
+
16
+ [part~='cell'] {
17
+ min-height: 48px;
18
+ -webkit-tap-highlight-color: transparent;
19
+ }
20
+
21
+ [part~='cell'] ::slotted(vaadin-grid-cell-content) {
22
+ padding: 8px 16px;
23
+ }
24
+
25
+ [part~='details-cell'] ::slotted(vaadin-grid-cell-content) {
26
+ padding: 14px 16px;
27
+ }
28
+
29
+ [part~='header-cell'],
30
+ [part~='footer-cell'] {
31
+ background-color: var(--material-background-color);
32
+ color: var(--material-secondary-text-color);
33
+ font-size: var(--material-caption-font-size);
34
+ font-weight: 500;
35
+ }
36
+
37
+ /* Header and footer divider between body rows */
38
+
39
+ [part~='body-cell'],
40
+ [part~='details-cell'],
41
+ [part~='row']:last-child > [part~='header-cell'] {
42
+ border-bottom: 1px solid var(--material-divider-color);
43
+ }
44
+
45
+ [part~='row']:first-child > [part~='footer-cell'] {
46
+ border-top: 1px solid var(--material-divider-color);
47
+ }
48
+
49
+ /* Body rows/cells */
50
+
51
+ [part~='body-cell'] {
52
+ background-color: var(--material-background-color);
53
+ }
54
+
55
+ [part~='row']:hover > [part~='body-cell'] {
56
+ background: linear-gradient(
57
+ var(--_material-grid-row-hover-background-color, rgba(0, 0, 0, 0.04)),
58
+ var(--_material-grid-row-hover-background-color, rgba(0, 0, 0, 0.04))
59
+ )
60
+ var(--material-background-color);
61
+ }
62
+
63
+ @media (hover: none) {
64
+ [part~='row']:hover > [part~='body-cell'] {
65
+ background: var(--material-background-color);
66
+ }
67
+ }
68
+
69
+ /* Selected row */
70
+
71
+ [part~='body-cell']::before {
72
+ content: '';
73
+ pointer-events: none;
74
+ position: absolute;
75
+ top: 0;
76
+ right: 0;
77
+ bottom: 0;
78
+ left: 0;
79
+ background-color: var(--material-primary-color);
80
+ opacity: 0;
81
+ transition: opacity 0.1s cubic-bezier(0.4, 0, 0.2, 0.1);
82
+ }
83
+
84
+ :host(:not([reordering])) [part~='row'][selected] > [part~='body-cell']::before {
85
+ opacity: var(--_material-grid-row-selected-overlay-opacity, 0.08);
86
+ }
87
+
88
+ [part~='body-cell'] ::slotted(vaadin-grid-cell-content) {
89
+ /* NOTE(platosha): Raise cell content above background cell pseudo elements */
90
+ position: relative;
91
+ }
92
+
93
+ /* Column reordering */
94
+
95
+ :host([reordering]) [part~='cell'] {
96
+ background: var(--material-secondary-background-color);
97
+ }
98
+
99
+ :host([reordering]) [part~='cell'][reorder-status='allowed'] {
100
+ background: var(--material-background-color);
101
+ }
102
+
103
+ :host([reordering]) [part~='cell'][reorder-status='dragging'] {
104
+ background: var(--material-background-color);
105
+ }
106
+
107
+ /* Frozen columns */
108
+
109
+ [part~='cell'][last-frozen] {
110
+ border-right: 1px solid var(--material-divider-color);
111
+ }
112
+
113
+ /* Column resizing */
114
+
115
+ [part~='cell']:not([last-frozen]) [part='resize-handle'] {
116
+ border-right: 1px solid var(--material-divider-color);
117
+ }
118
+
119
+ /* Keyboard navigation */
120
+
121
+ [part~='row']:focus,
122
+ [part~='cell']:focus {
123
+ outline: none;
124
+ }
125
+
126
+ :host([navigating]) [part~='row']:focus::before,
127
+ :host([navigating]) [part~='cell']:focus {
128
+ box-shadow: inset 0 0 0 2px var(--material-primary-color);
129
+ }
130
+
131
+ :host([navigating]) [part~='row']:focus::before {
132
+ content: '';
133
+ position: absolute;
134
+ top: 0;
135
+ right: 0;
136
+ bottom: 0;
137
+ left: 0;
138
+ pointer-events: none;
139
+ transform: translateX(calc(-1 * var(--_grid-horizontal-scroll-position)));
140
+ z-index: 3;
141
+ }
142
+
143
+ /* Drag and Drop styles */
144
+ :host([dragover])::after {
145
+ content: '';
146
+ position: absolute;
147
+ z-index: 100;
148
+ top: 0;
149
+ right: 0;
150
+ bottom: 0;
151
+ left: 0;
152
+ pointer-events: none;
153
+ box-shadow: inset 0 0 0 2px var(--material-primary-color);
154
+ }
155
+
156
+ [part~='row'][dragover] {
157
+ z-index: 100 !important;
158
+ }
159
+
160
+ [part~='row'][dragover] [part~='cell'] {
161
+ overflow: visible;
162
+ }
163
+
164
+ [part~='row'][dragover] [part~='cell']::after {
165
+ content: '';
166
+ position: absolute;
167
+ top: 0;
168
+ right: 0;
169
+ bottom: 0;
170
+ left: 0;
171
+ height: 3px;
172
+ pointer-events: none;
173
+ background: var(--material-primary-color);
174
+ }
175
+
176
+ [part~='row'][dragover='below'] [part~='cell']::after {
177
+ top: 100%;
178
+ bottom: auto;
179
+ margin-top: -1px;
180
+ }
181
+
182
+ [part~='row'][dragover='above'] [part~='cell']::after {
183
+ top: auto;
184
+ bottom: 100%;
185
+ margin-bottom: -1px;
186
+ }
187
+
188
+ [part~='row'][details-opened][dragover='below'] [part~='cell']:not([part~='details-cell'])::after,
189
+ [part~='row'][details-opened][dragover='above'] [part~='details-cell']::after {
190
+ display: none;
191
+ }
192
+
193
+ [part~='row'][dragover][dragover='on-top'] [part~='cell']::after {
194
+ height: 100%;
195
+ opacity: 0.5;
196
+ }
197
+
198
+ [part~='row'][dragstart] {
199
+ /* Add bottom-space to the row so the drag number doesn't get clipped. Needed for IE/Edge */
200
+ border-bottom: 100px solid transparent;
201
+ z-index: 100 !important;
202
+ opacity: 0.9;
203
+ }
204
+
205
+ [part~='row'][dragstart] [part~='cell'] {
206
+ border: none !important;
207
+ box-shadow: none !important;
208
+ }
209
+
210
+ [ios] [part~='row'][dragstart] [part~='cell'] {
211
+ background: var(--material-primary-color);
212
+ }
213
+
214
+ #scroller:not([ios]) [part~='row'][dragstart]:not([dragstart=''])::after {
215
+ display: block;
216
+ position: absolute;
217
+ left: var(--_grid-drag-start-x);
218
+ top: var(--_grid-drag-start-y);
219
+ z-index: 100;
220
+ content: attr(dragstart);
221
+ align-items: center;
222
+ justify-content: center;
223
+ box-sizing: border-box;
224
+ padding: 4px;
225
+ color: var(--material-primary-contrast-color);
226
+ background-color: var(--material-error-color);
227
+ min-width: 24px;
228
+ border-radius: 2px;
229
+ font-size: var(--material-caption-font-size);
230
+ text-align: center;
231
+ line-height: 1;
232
+ }
233
+
234
+ /* RTL specific styles */
235
+
236
+ :host([dir='rtl']) [part~='cell'][last-frozen] {
237
+ border-right: none;
238
+ border-left: 1px solid var(--material-divider-color);
239
+ }
240
+
241
+ :host([dir='rtl']) [part~='cell']:not([last-frozen]) [part='resize-handle'] {
242
+ border-right: none;
243
+ border-left: 1px solid var(--material-divider-color);
244
+ }
245
+
246
+ :host([dir='rtl']) #scroller:not([ios]) [part~='row'][dragstart]:not([dragstart=''])::after {
247
+ left: auto;
248
+ right: var(--_grid-drag-start-x);
249
+ }
250
+ `,
251
+ { moduleId: 'material-grid' }
252
+ );
@@ -0,0 +1,2 @@
1
+ import './vaadin-grid-tree-toggle.js';
2
+ import '../../src/vaadin-grid-tree-column.js';
@@ -0,0 +1,42 @@
1
+ import { registerStyles, css } from '@vaadin/vaadin-themable-mixin/register-styles.js';
2
+ import '@vaadin/vaadin-material-styles/color.js';
3
+ import '@vaadin/vaadin-material-styles/font-icons.js';
4
+ import '@vaadin/vaadin-material-styles/typography.js';
5
+
6
+ registerStyles(
7
+ 'vaadin-grid-tree-toggle',
8
+ css`
9
+ :host {
10
+ --_material-grid-tree-toggle-collapsed-icon-transform: rotate(0);
11
+ }
12
+
13
+ :host([dir='rtl']) {
14
+ --_material-grid-tree-toggle-collapsed-icon-transform: rotate(180deg);
15
+ }
16
+
17
+ [part='toggle'] {
18
+ width: calc(var(--material-icon-font-size) + 8px);
19
+ position: relative;
20
+ align-self: stretch; /* NOTE(platosha): helps to maintain baseline */
21
+ }
22
+
23
+ [part='toggle']::before {
24
+ font-family: 'material-icons';
25
+ font-size: var(--material-icon-font-size);
26
+ width: var(--material-icon-font-size);
27
+ position: absolute; /* NOTE(platosha): helps to maintain baseline */
28
+ transform: var(--_material-grid-tree-toggle-collapsed-icon-transform);
29
+ transition: transform 0.1s cubic-bezier(0.4, 0, 0.2, 0.1);
30
+ }
31
+
32
+ :host(:not([expanded])) [part='toggle']::before,
33
+ :host([expanded]) [part='toggle']::before {
34
+ content: var(--material-icons-chevron-right);
35
+ }
36
+
37
+ :host([expanded]) [part='toggle']::before {
38
+ transform: rotate(90deg);
39
+ }
40
+ `,
41
+ { moduleId: 'material-grid-tree-toggle' }
42
+ );
@@ -0,0 +1,2 @@
1
+ import './vaadin-grid-tree-toggle-styles.js';
2
+ import '../../src/vaadin-grid-tree-toggle.js';
@@ -0,0 +1,2 @@
1
+ import './vaadin-grid-styles.js';
2
+ import '../../src/vaadin-grid.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-column-group.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-column-group.js';
2
+
3
+ export * from './src/vaadin-grid-column-group.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-column.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-column.js';
2
+
3
+ export * from './src/vaadin-grid-column.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-filter-column.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-filter-column.js';
2
+
3
+ export * from './src/vaadin-grid-filter-column.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-filter.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-filter.js';
2
+
3
+ export * from './src/vaadin-grid-filter.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-selection-column.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-selection-column.js';
2
+
3
+ export * from './src/vaadin-grid-selection-column.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-sort-column.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-sort-column.js';
2
+
3
+ export * from './src/vaadin-grid-sort-column.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-sorter.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-sorter.js';
2
+
3
+ export * from './src/vaadin-grid-sorter.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-tree-column.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-tree-column.js';
2
+
3
+ export * from './src/vaadin-grid-tree-column.js';
@@ -0,0 +1 @@
1
+ export * from './src/vaadin-grid-tree-toggle.js';
@@ -0,0 +1,3 @@
1
+ import './theme/lumo/vaadin-grid-tree-toggle.js';
2
+
3
+ export * from './src/vaadin-grid-tree-toggle.js';
@@ -0,0 +1,3 @@
1
+ export * from './src/vaadin-grid.js';
2
+ export * from './src/vaadin-grid-column.js';
3
+ export * from './src/interfaces';
package/vaadin-grid.js ADDED
@@ -0,0 +1,4 @@
1
+ import './theme/lumo/vaadin-grid.js';
2
+
3
+ export * from './src/vaadin-grid-column.js';
4
+ export * from './src/vaadin-grid.js';