@skyux/ag-grid 15.0.0-alpha.0 → 15.0.0-alpha.10
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/css/sky-ag-grid.css +179 -77
- package/fesm2022/skyux-ag-grid-testing.mjs +221 -6
- package/fesm2022/skyux-ag-grid-testing.mjs.map +1 -1
- package/fesm2022/skyux-ag-grid.mjs +2421 -463
- package/fesm2022/skyux-ag-grid.mjs.map +1 -1
- package/package.json +19 -19
- package/types/skyux-ag-grid-testing.d.ts +44 -1
- package/types/skyux-ag-grid.d.ts +430 -210
package/css/sky-ag-grid.css
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Additional styles based on https://github.com/ag-grid/ag-grid/blob/b32.0.2/community-modules/styles/src/internal/themes/quartz/_index.scss
|
|
3
3
|
*/
|
|
4
|
+
.ag-theme-sky-data-grid-default,
|
|
5
|
+
.ag-theme-sky-data-entry-grid-default,
|
|
6
|
+
.ag-theme-sky-data-grid-modern-light,
|
|
7
|
+
.ag-theme-sky-data-entry-grid-modern-light,
|
|
8
|
+
.ag-theme-sky-data-grid-modern-light-compact,
|
|
9
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact {
|
|
10
|
+
--sky-ag-grid-header-row-border-width: var(
|
|
11
|
+
--sky-override-ag-grid-row-border-width,
|
|
12
|
+
var(--sky-border-width-separator-row)
|
|
13
|
+
);
|
|
14
|
+
}
|
|
4
15
|
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root input[class^=ag-]:not([type]),
|
|
5
16
|
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root input[class^=ag-][type=text],
|
|
6
17
|
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root input[class^=ag-][type=number],
|
|
@@ -43,17 +54,8 @@
|
|
|
43
54
|
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-root-wrapper .ag-root input[class^=ag-][type=date],
|
|
44
55
|
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-root-wrapper .ag-root input[class^=ag-][type=datetime-local],
|
|
45
56
|
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-root-wrapper .ag-root textarea[class^=ag-] {
|
|
46
|
-
min-height: calc(var(--ag-grid-size) * 4);
|
|
47
57
|
border-radius: var(--ag-border-radius);
|
|
48
58
|
}
|
|
49
|
-
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root .ag-picker-field-wrapper,
|
|
50
|
-
.ag-theme-sky-data-entry-grid-default .ag-root-wrapper .ag-root .ag-picker-field-wrapper,
|
|
51
|
-
.ag-theme-sky-data-grid-modern-light .ag-root-wrapper .ag-root .ag-picker-field-wrapper,
|
|
52
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-root-wrapper .ag-root .ag-picker-field-wrapper,
|
|
53
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-root-wrapper .ag-root .ag-picker-field-wrapper,
|
|
54
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-root-wrapper .ag-root .ag-picker-field-wrapper {
|
|
55
|
-
min-height: calc(var(--ag-grid-size) * 4);
|
|
56
|
-
}
|
|
57
59
|
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root .ag-floating-filter-body .ag-wrapper.ag-input-wrapper input,
|
|
58
60
|
.ag-theme-sky-data-entry-grid-default .ag-root-wrapper .ag-root .ag-floating-filter-body .ag-wrapper.ag-input-wrapper input,
|
|
59
61
|
.ag-theme-sky-data-grid-modern-light .ag-root-wrapper .ag-root .ag-floating-filter-body .ag-wrapper.ag-input-wrapper input,
|
|
@@ -145,14 +147,6 @@
|
|
|
145
147
|
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-root-wrapper .ag-root .ag-text-field-input[disabled] {
|
|
146
148
|
cursor: not-allowed;
|
|
147
149
|
}
|
|
148
|
-
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root .ag-checkbox-input-wrapper.ag-checked.ag-disabled,
|
|
149
|
-
.ag-theme-sky-data-entry-grid-default .ag-root-wrapper .ag-root .ag-checkbox-input-wrapper.ag-checked.ag-disabled,
|
|
150
|
-
.ag-theme-sky-data-grid-modern-light .ag-root-wrapper .ag-root .ag-checkbox-input-wrapper.ag-checked.ag-disabled,
|
|
151
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-root-wrapper .ag-root .ag-checkbox-input-wrapper.ag-checked.ag-disabled,
|
|
152
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-root-wrapper .ag-root .ag-checkbox-input-wrapper.ag-checked.ag-disabled,
|
|
153
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-root-wrapper .ag-root .ag-checkbox-input-wrapper.ag-checked.ag-disabled {
|
|
154
|
-
--ag-checkbox-checked-color: var(--ag-checkbox-unchecked-color);
|
|
155
|
-
}
|
|
156
150
|
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root .ag-checkbox-input,
|
|
157
151
|
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root .ag-toggle-button-input,
|
|
158
152
|
.ag-theme-sky-data-grid-default .ag-root-wrapper .ag-root .ag-radio-button-input,
|
|
@@ -210,59 +204,136 @@
|
|
|
210
204
|
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-cell-sortable .ag-header-cell-label {
|
|
211
205
|
cursor: initial;
|
|
212
206
|
}
|
|
213
|
-
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter
|
|
214
|
-
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter
|
|
215
|
-
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
216
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
217
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
218
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
207
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter,
|
|
208
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter,
|
|
209
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter,
|
|
210
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter,
|
|
211
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter,
|
|
212
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter {
|
|
219
213
|
padding-block: 0;
|
|
220
214
|
padding-inline-start: 0;
|
|
221
215
|
}
|
|
222
|
-
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter
|
|
223
|
-
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter
|
|
224
|
-
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter
|
|
225
|
-
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter
|
|
226
|
-
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
227
|
-
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
228
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
229
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
230
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
231
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
232
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
233
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
216
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > *,
|
|
217
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper,
|
|
218
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > *,
|
|
219
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper,
|
|
220
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > *,
|
|
221
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper,
|
|
222
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > *,
|
|
223
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper,
|
|
224
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > *,
|
|
225
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper,
|
|
226
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > *,
|
|
227
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper {
|
|
234
228
|
height: 100%;
|
|
235
229
|
}
|
|
236
|
-
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter
|
|
237
|
-
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter
|
|
238
|
-
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter
|
|
239
|
-
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter
|
|
240
|
-
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
241
|
-
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
242
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
243
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter
|
|
244
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
245
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
246
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
247
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter
|
|
230
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input,
|
|
231
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input,
|
|
232
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input,
|
|
233
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input,
|
|
234
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input,
|
|
235
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input,
|
|
236
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input,
|
|
237
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input,
|
|
238
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input,
|
|
239
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input,
|
|
240
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input,
|
|
241
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input {
|
|
248
242
|
appearance: none;
|
|
249
243
|
border-radius: 0;
|
|
250
244
|
height: calc(var(--ag-header-height) - 2px);
|
|
251
245
|
}
|
|
252
|
-
.ag-theme-sky-data-grid-default .ag-
|
|
253
|
-
.ag-theme-sky-data-grid-default .ag-
|
|
254
|
-
.ag-theme-sky-data-entry-grid-default .ag-
|
|
255
|
-
.ag-theme-sky-data-entry-grid-default .ag-
|
|
256
|
-
.ag-theme-sky-data-grid-modern-light .ag-
|
|
257
|
-
.ag-theme-sky-data-grid-modern-light .ag-
|
|
258
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-
|
|
259
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-
|
|
260
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-
|
|
261
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-
|
|
262
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-
|
|
263
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-
|
|
246
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input:focus,
|
|
247
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input:focus,
|
|
248
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input:focus,
|
|
249
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input:focus,
|
|
250
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input:focus,
|
|
251
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input:focus,
|
|
252
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input:focus,
|
|
253
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input:focus,
|
|
254
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input:focus,
|
|
255
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input:focus,
|
|
256
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-floating-filter-input > * .ag-input-field-input:focus,
|
|
257
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .ag-date-floating-filter-wrapper .ag-input-field-input:focus {
|
|
258
|
+
box-shadow: inset var(--ag-focus-shadow);
|
|
259
|
+
}
|
|
260
|
+
.ag-theme-sky-data-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .sky-input-group-datepicker-btn,
|
|
261
|
+
.ag-theme-sky-data-entry-grid-default .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .sky-input-group-datepicker-btn,
|
|
262
|
+
.ag-theme-sky-data-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .sky-input-group-datepicker-btn,
|
|
263
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .sky-input-group-datepicker-btn,
|
|
264
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .sky-input-group-datepicker-btn,
|
|
265
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-header-row.ag-header-row-filter .ag-header-cell.ag-floating-filter .sky-input-group-datepicker-btn {
|
|
266
|
+
--sky-color-border-action-secondary-base: var(--ag-border-color);
|
|
267
|
+
border-start-start-radius: 0;
|
|
268
|
+
border-end-start-radius: 0;
|
|
269
|
+
}
|
|
270
|
+
.ag-theme-sky-data-grid-default .ag-filter-wrapper,
|
|
271
|
+
.ag-theme-sky-data-entry-grid-default .ag-filter-wrapper,
|
|
272
|
+
.ag-theme-sky-data-grid-modern-light .ag-filter-wrapper,
|
|
273
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-filter-wrapper,
|
|
274
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-filter-wrapper,
|
|
275
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-filter-wrapper {
|
|
276
|
+
--ag-border-color: var(
|
|
277
|
+
--sky-override-ag-grid-filter-border-color,
|
|
278
|
+
var(--sky-color-border-input-base)
|
|
279
|
+
);
|
|
280
|
+
--ag-border-radius: var(
|
|
281
|
+
--sky-override-ag-grid-filter-border-radius,
|
|
282
|
+
var(--sky-border-radius-s)
|
|
283
|
+
);
|
|
284
|
+
}
|
|
285
|
+
.ag-theme-sky-data-grid-default .ag-filter-wrapper .ag-picker-field-wrapper,
|
|
286
|
+
.ag-theme-sky-data-entry-grid-default .ag-filter-wrapper .ag-picker-field-wrapper,
|
|
287
|
+
.ag-theme-sky-data-grid-modern-light .ag-filter-wrapper .ag-picker-field-wrapper,
|
|
288
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-filter-wrapper .ag-picker-field-wrapper,
|
|
289
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-filter-wrapper .ag-picker-field-wrapper,
|
|
290
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-filter-wrapper .ag-picker-field-wrapper {
|
|
291
|
+
border-radius: var(--ag-border-radius);
|
|
292
|
+
}
|
|
293
|
+
.ag-theme-sky-data-grid-default .ag-filter-wrapper .sky-datepicker .sky-input-group input.sky-form-control,
|
|
294
|
+
.ag-theme-sky-data-entry-grid-default .ag-filter-wrapper .sky-datepicker .sky-input-group input.sky-form-control,
|
|
295
|
+
.ag-theme-sky-data-grid-modern-light .ag-filter-wrapper .sky-datepicker .sky-input-group input.sky-form-control,
|
|
296
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-filter-wrapper .sky-datepicker .sky-input-group input.sky-form-control,
|
|
297
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-filter-wrapper .sky-datepicker .sky-input-group input.sky-form-control,
|
|
298
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-filter-wrapper .sky-datepicker .sky-input-group input.sky-form-control {
|
|
299
|
+
border-start-start-radius: var(--ag-border-radius);
|
|
300
|
+
border-end-start-radius: var(--ag-border-radius);
|
|
301
|
+
}
|
|
302
|
+
.ag-theme-sky-data-grid-default .ag-filter-wrapper .sky-input-group-datepicker-btn,
|
|
303
|
+
.ag-theme-sky-data-entry-grid-default .ag-filter-wrapper .sky-input-group-datepicker-btn,
|
|
304
|
+
.ag-theme-sky-data-grid-modern-light .ag-filter-wrapper .sky-input-group-datepicker-btn,
|
|
305
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-filter-wrapper .sky-input-group-datepicker-btn,
|
|
306
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-filter-wrapper .sky-input-group-datepicker-btn,
|
|
307
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-filter-wrapper .sky-input-group-datepicker-btn {
|
|
308
|
+
--sky-color-background-action-secondary-base: var(
|
|
309
|
+
--ag-input-background-color
|
|
310
|
+
);
|
|
311
|
+
--sky-color-border-action-secondary-base: var(--ag-border-color);
|
|
312
|
+
border-start-start-radius: 0;
|
|
313
|
+
border-end-start-radius: 0;
|
|
314
|
+
}
|
|
315
|
+
.ag-theme-sky-data-grid-default .ag-layout-auto-height .ag-grid-scrolling-rows,
|
|
316
|
+
.ag-theme-sky-data-entry-grid-default .ag-layout-auto-height .ag-grid-scrolling-rows,
|
|
317
|
+
.ag-theme-sky-data-grid-modern-light .ag-layout-auto-height .ag-grid-scrolling-rows,
|
|
318
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-layout-auto-height .ag-grid-scrolling-rows,
|
|
319
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-layout-auto-height .ag-grid-scrolling-rows,
|
|
320
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-layout-auto-height .ag-grid-scrolling-rows {
|
|
264
321
|
min-height: var(--sky-ag-grid-min-height, 50px);
|
|
265
322
|
}
|
|
323
|
+
.ag-theme-sky-data-grid-default .ag-layout-auto-height .ag-body-vertical-scroll,
|
|
324
|
+
.ag-theme-sky-data-grid-default .ag-layout-auto-height .ag-body-horizontal-scroll-end-spacer,
|
|
325
|
+
.ag-theme-sky-data-entry-grid-default .ag-layout-auto-height .ag-body-vertical-scroll,
|
|
326
|
+
.ag-theme-sky-data-entry-grid-default .ag-layout-auto-height .ag-body-horizontal-scroll-end-spacer,
|
|
327
|
+
.ag-theme-sky-data-grid-modern-light .ag-layout-auto-height .ag-body-vertical-scroll,
|
|
328
|
+
.ag-theme-sky-data-grid-modern-light .ag-layout-auto-height .ag-body-horizontal-scroll-end-spacer,
|
|
329
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-layout-auto-height .ag-body-vertical-scroll,
|
|
330
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-layout-auto-height .ag-body-horizontal-scroll-end-spacer,
|
|
331
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-layout-auto-height .ag-body-vertical-scroll,
|
|
332
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-layout-auto-height .ag-body-horizontal-scroll-end-spacer,
|
|
333
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-layout-auto-height .ag-body-vertical-scroll,
|
|
334
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-layout-auto-height .ag-body-horizontal-scroll-end-spacer {
|
|
335
|
+
display: none;
|
|
336
|
+
}
|
|
266
337
|
.ag-theme-sky-data-grid-default .ag-scrollbar-invisible.sky-viewkeeper-fixed,
|
|
267
338
|
.ag-theme-sky-data-entry-grid-default .ag-scrollbar-invisible.sky-viewkeeper-fixed,
|
|
268
339
|
.ag-theme-sky-data-grid-modern-light .ag-scrollbar-invisible.sky-viewkeeper-fixed,
|
|
@@ -271,12 +342,12 @@
|
|
|
271
342
|
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-scrollbar-invisible.sky-viewkeeper-fixed {
|
|
272
343
|
box-shadow: none;
|
|
273
344
|
}
|
|
274
|
-
.ag-theme-sky-data-grid-default .ag-sticky-bottom,
|
|
275
|
-
.ag-theme-sky-data-entry-grid-default .ag-sticky-bottom,
|
|
276
|
-
.ag-theme-sky-data-grid-modern-light .ag-sticky-bottom,
|
|
277
|
-
.ag-theme-sky-data-entry-grid-modern-light .ag-sticky-bottom,
|
|
278
|
-
.ag-theme-sky-data-grid-modern-light-compact .ag-sticky-bottom,
|
|
279
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-sticky-bottom {
|
|
345
|
+
.ag-theme-sky-data-grid-default .ag-grid-sticky-bottom-rows-container,
|
|
346
|
+
.ag-theme-sky-data-entry-grid-default .ag-grid-sticky-bottom-rows-container,
|
|
347
|
+
.ag-theme-sky-data-grid-modern-light .ag-grid-sticky-bottom-rows-container,
|
|
348
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-grid-sticky-bottom-rows-container,
|
|
349
|
+
.ag-theme-sky-data-grid-modern-light-compact .ag-grid-sticky-bottom-rows-container,
|
|
350
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-grid-sticky-bottom-rows-container {
|
|
280
351
|
background-color: transparent;
|
|
281
352
|
border-color: transparent;
|
|
282
353
|
}
|
|
@@ -427,7 +498,6 @@
|
|
|
427
498
|
.ag-theme-sky-data-grid-default:not(:has(:focus-visible)),
|
|
428
499
|
.ag-theme-sky-data-grid-modern-light:not(:has(:focus-visible)),
|
|
429
500
|
.ag-theme-sky-data-grid-modern-light-compact:not(:has(:focus-visible)) {
|
|
430
|
-
--ag-input-focus-border-color: transparent;
|
|
431
501
|
--ag-range-selection-border-color: transparent;
|
|
432
502
|
}
|
|
433
503
|
.ag-theme-sky-data-grid-default .ag-overlay-no-rows-wrapper.ag-layout-auto-height,
|
|
@@ -442,12 +512,19 @@
|
|
|
442
512
|
--sky-comp-override-list-header-background-color,
|
|
443
513
|
var(--sky-background-color-page-default)
|
|
444
514
|
);
|
|
445
|
-
--ag-header-column-separator-color: var(--sky-background-color-page-default);
|
|
446
515
|
}
|
|
447
516
|
|
|
448
|
-
.ag-theme-sky-data-entry-grid-default
|
|
449
|
-
.ag-theme-sky-data-entry-grid-modern-light
|
|
450
|
-
.ag-theme-sky-data-entry-grid-modern-light-compact
|
|
517
|
+
.ag-theme-sky-data-entry-grid-default,
|
|
518
|
+
.ag-theme-sky-data-entry-grid-modern-light,
|
|
519
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact {
|
|
520
|
+
--sky-ag-grid-header-row-border-width: var(
|
|
521
|
+
--sky-override-ag-grid-row-border-width,
|
|
522
|
+
var(--sky-border-width-emphasized)
|
|
523
|
+
);
|
|
524
|
+
}
|
|
525
|
+
.ag-theme-sky-data-entry-grid-default .ag-grid-scrolling-rows,
|
|
526
|
+
.ag-theme-sky-data-entry-grid-modern-light .ag-grid-scrolling-rows,
|
|
527
|
+
.ag-theme-sky-data-entry-grid-modern-light-compact .ag-grid-scrolling-rows {
|
|
451
528
|
border-bottom: var(--ag-row-border);
|
|
452
529
|
}
|
|
453
530
|
.ag-theme-sky-data-entry-grid-default .ag-row .ag-cell.ag-cell-focus,
|
|
@@ -528,13 +605,31 @@
|
|
|
528
605
|
padding-bottom: 0;
|
|
529
606
|
}
|
|
530
607
|
|
|
531
|
-
.sky-ag-grid.sky-ag-grid-top-scrollbar .ag-root .ag-body-horizontal-scroll
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
bottom:
|
|
537
|
-
|
|
608
|
+
.sky-ag-grid.sky-ag-grid-top-scrollbar .ag-root:not(.ag-details-row *) .ag-body-horizontal-scroll {
|
|
609
|
+
position: absolute;
|
|
610
|
+
left: 0;
|
|
611
|
+
right: 0;
|
|
612
|
+
top: calc(var(--sky-ag-grid-header-rows-height, 0px) - var(--sky-ag-grid-top-scroll-height, 0px));
|
|
613
|
+
bottom: auto;
|
|
614
|
+
z-index: 2;
|
|
615
|
+
}
|
|
616
|
+
.sky-ag-grid.sky-ag-grid-top-scrollbar .ag-root:not(.ag-details-row *) .ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) {
|
|
617
|
+
background-color: var(--ag-background-color);
|
|
618
|
+
box-shadow: 0 calc(-1 * var(--sky-ag-grid-header-row-border-width)) 0 0 var(--sky-override-ag-grid-border-color, var(--sky-color-border-separator-row));
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
.sky-ag-grid .ag-header-cell,
|
|
622
|
+
.sky-ag-grid .ag-header-group-cell {
|
|
623
|
+
border-top-width: var(--sky-ag-grid-header-row-border-width);
|
|
624
|
+
}
|
|
625
|
+
.sky-ag-grid .ag-header {
|
|
626
|
+
border-bottom-width: var(--sky-ag-grid-header-row-border-width);
|
|
627
|
+
}
|
|
628
|
+
.sky-ag-grid .ag-body-vertical-scroll-start-spacer {
|
|
629
|
+
border-bottom-width: var(--sky-ag-grid-header-row-border-width);
|
|
630
|
+
}
|
|
631
|
+
.sky-ag-grid .ag-details-row {
|
|
632
|
+
--sky-ag-grid-top-scroll-height: 0px;
|
|
538
633
|
}
|
|
539
634
|
|
|
540
635
|
ag-grid-angular .ag-root-wrapper {
|
|
@@ -3093,6 +3188,7 @@ sky-ag-grid-wrapper + sky-infinite-scroll .sky-infinite-scroll {
|
|
|
3093
3188
|
}
|
|
3094
3189
|
|
|
3095
3190
|
.sky-ag-grid:not(.sky-theme-modern *) {
|
|
3191
|
+
--sky-override-ag-grid-accent-color: var(--sky-highlight-color-info);
|
|
3096
3192
|
--sky-override-ag-grid-background-color: #fbfbfb;
|
|
3097
3193
|
--sky-override-ag-grid-border-color: var(--sky-border-color-neutral-medium);
|
|
3098
3194
|
--sky-override-ag-grid-border-radius: 3px;
|
|
@@ -3127,6 +3223,12 @@ sky-ag-grid-wrapper + sky-infinite-scroll .sky-infinite-scroll {
|
|
|
3127
3223
|
);
|
|
3128
3224
|
--sky-override-ag-grid-column-border: 1px solid
|
|
3129
3225
|
var(--sky-border-color-neutral-medium);
|
|
3226
|
+
--sky-override-ag-grid-filter-border-color: var(
|
|
3227
|
+
--sky-border-color-neutral-medium
|
|
3228
|
+
);
|
|
3229
|
+
--sky-override-ag-grid-filter-border-radius: 3px;
|
|
3230
|
+
--sky-override-ag-grid-focus-border-color: var(--sky-highlight-color-info);
|
|
3231
|
+
--sky-override-ag-grid-focus-border-width: 2px;
|
|
3130
3232
|
--sky-override-ag-grid-font-family:
|
|
3131
3233
|
'BLKB Sans', 'Helvetica Neue', 'Arial', 'sans-serif';
|
|
3132
3234
|
--sky-override-ag-grid-font-size: 15px;
|
|
@@ -1,9 +1,60 @@
|
|
|
1
1
|
import { UnitTestElement } from '@angular/cdk/testing/testbed';
|
|
2
2
|
import { SkyComponentHarness } from '@skyux/core/testing';
|
|
3
3
|
import { getGridApi } from 'ag-grid-community';
|
|
4
|
+
import { SkyAgGridService } from '@skyux/ag-grid';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { inject, DestroyRef, Injectable } from '@angular/core';
|
|
7
|
+
|
|
8
|
+
const renderStates = new WeakMap();
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
* Records that AG Grid finished a row-model render pass for the given grid
|
|
12
|
+
* (initial load, sort, filter, or pagination all trigger `modelUpdated`).
|
|
13
|
+
*/
|
|
14
|
+
function trackModelUpdate(api) {
|
|
15
|
+
const previous = renderStates.get(api);
|
|
16
|
+
renderStates.set(api, {
|
|
17
|
+
count: (previous?.count ?? 0) + 1,
|
|
18
|
+
lastRenderedAt: Date.now(),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
* The number of `modelUpdated` render passes recorded for the given grid.
|
|
24
|
+
*/
|
|
25
|
+
function getRenderCount(api) {
|
|
26
|
+
return renderStates.get(api)?.count ?? 0;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
* Milliseconds since the last recorded render pass, or `Infinity` if none
|
|
31
|
+
* has been recorded yet. A grid that loads data asynchronously (e.g. an
|
|
32
|
+
* Angular `resource()`) can render an empty pass before its real data
|
|
33
|
+
* arrives, each firing its own `modelUpdated` - this lets callers wait for
|
|
34
|
+
* the render count to stop moving, not just for it to move once.
|
|
35
|
+
*/
|
|
36
|
+
function getMsSinceLastRender(api) {
|
|
37
|
+
const state = renderStates.get(api);
|
|
38
|
+
return state ? Date.now() - state.lastRenderedAt : Infinity;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
* Whether AG Grid is currently opted out of Angular's test zone (i.e.
|
|
43
|
+
* `provideSkyAgGridTesting()` is active), meaning render counts are actually
|
|
44
|
+
* being recorded and it's safe to wait on them. Consumers of
|
|
45
|
+
* `SkyAgGridWrapperHarness` that don't use `provideSkyAgGridTesting()` get no
|
|
46
|
+
* tracking at all, so waiting on a render count that will never move would
|
|
47
|
+
* just burn the full poll timeout on every read.
|
|
48
|
+
*/
|
|
49
|
+
function isRenderTrackingActive() {
|
|
50
|
+
return window.AG_GRID_UNDER_TEST === false;
|
|
51
|
+
}
|
|
4
52
|
|
|
5
53
|
/**
|
|
6
54
|
* Harness for interacting with SKY UX AG Grid components in tests.
|
|
55
|
+
* Add `provideSkyAgGridTesting()` to the spec's providers so the harness
|
|
56
|
+
* can wait for the grid to finish rendering; without it, render-readiness
|
|
57
|
+
* waits are skipped.
|
|
7
58
|
*/
|
|
8
59
|
class SkyAgGridWrapperHarness extends SkyComponentHarness {
|
|
9
60
|
/**
|
|
@@ -30,7 +81,7 @@ class SkyAgGridWrapperHarness extends SkyComponentHarness {
|
|
|
30
81
|
* Retrieves the IDs of the currently displayed columns.
|
|
31
82
|
*/
|
|
32
83
|
async getDisplayedColumnIds() {
|
|
33
|
-
return await this
|
|
84
|
+
return await this.getGridApi()
|
|
34
85
|
.then((api) => api.getAllDisplayedColumns().map((col) => col.getColId()))
|
|
35
86
|
.catch(() => Promise.reject('Unable to retrieve displayed column IDs.'));
|
|
36
87
|
}
|
|
@@ -38,15 +89,52 @@ class SkyAgGridWrapperHarness extends SkyComponentHarness {
|
|
|
38
89
|
* Retrieves the header names of the currently displayed columns.
|
|
39
90
|
*/
|
|
40
91
|
async getDisplayedColumnHeaderNames() {
|
|
41
|
-
return await this
|
|
92
|
+
return await this.getGridApi()
|
|
42
93
|
.then((api) => api
|
|
43
94
|
.getAllDisplayedColumns()
|
|
44
95
|
.map((col) => col.getColDef().headerName || ''))
|
|
45
96
|
.catch(() => Promise.reject('Unable to retrieve displayed column header names.'));
|
|
46
97
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
98
|
+
/**
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
async getGridApi() {
|
|
102
|
+
const api = await this.#locateGridApi();
|
|
103
|
+
if (isRenderTrackingActive()) {
|
|
104
|
+
await this.#waitForRenderCount(api, (count) => count > 0);
|
|
105
|
+
}
|
|
106
|
+
return api;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* @internal
|
|
110
|
+
* The number of `modelUpdated` render passes AG Grid has completed for
|
|
111
|
+
* this grid so far. Callers that need to observe the *next* render (e.g.
|
|
112
|
+
* after triggering a sort) should capture this before acting, then pass it
|
|
113
|
+
* to `waitUntilRendered()`.
|
|
114
|
+
*/
|
|
115
|
+
async getRenderCount() {
|
|
116
|
+
return getRenderCount(await this.#locateGridApi());
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* @internal
|
|
120
|
+
* Waits, on a bounded wall-clock poll, until the grid has completed more
|
|
121
|
+
* than `afterCount` render passes. Defaults to `0`, i.e. "has rendered at
|
|
122
|
+
* least once" - use this instead of `whenStable()`/`waitForTasksOutsideAngular()`,
|
|
123
|
+
* since AG Grid 36 schedules its render work outside the Angular zone.
|
|
124
|
+
*/
|
|
125
|
+
async waitUntilRendered(afterCount = 0) {
|
|
126
|
+
if (!isRenderTrackingActive()) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const api = await this.#locateGridApi();
|
|
130
|
+
await this.#waitForRenderCount(api, (count) => count > afterCount);
|
|
131
|
+
}
|
|
132
|
+
async #locateGridApi() {
|
|
133
|
+
// Query the `.ag-root` element rather than `ag-grid-angular` itself, since
|
|
134
|
+
// `skyViewkeeper`'s shadow element is inserted as `ag-grid-angular`'s
|
|
135
|
+
// first child and `getGridApi()` locates the grid by walking up from the
|
|
136
|
+
// queried element's first element child.
|
|
137
|
+
const locator = this.locatorFactory.locatorFor('ag-grid-angular .ag-root');
|
|
50
138
|
return await locator().then((grid) => {
|
|
51
139
|
if (grid instanceof UnitTestElement) {
|
|
52
140
|
const api = getGridApi(grid.element);
|
|
@@ -59,11 +147,138 @@ class SkyAgGridWrapperHarness extends SkyComponentHarness {
|
|
|
59
147
|
throw new Error('Unable to get GridApi from AgGridAngular component.');
|
|
60
148
|
});
|
|
61
149
|
}
|
|
150
|
+
// A grid that loads data asynchronously (e.g. an Angular `resource()`) can
|
|
151
|
+
// render an empty pass before its real data arrives, each firing its own
|
|
152
|
+
// `modelUpdated`. Waiting for the predicate to become true isn't enough -
|
|
153
|
+
// this also waits for the render count to stop moving for `settleMs`, so a
|
|
154
|
+
// read doesn't land on that intermediate empty pass.
|
|
155
|
+
async #waitForRenderCount(api, predicate, timeoutMs = 2000, settleMs = 100) {
|
|
156
|
+
const deadline = Date.now() + timeoutMs;
|
|
157
|
+
while (!predicate(getRenderCount(api)) ||
|
|
158
|
+
getMsSinceLastRender(api) < settleMs) {
|
|
159
|
+
if (Date.now() >= deadline) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* `GridOptions` applied to every grid built through `SkyAgGridService` while
|
|
169
|
+
* `provideSkyAgGridTesting()` is in effect. AG Grid recommends disabling
|
|
170
|
+
* row/column virtualization in tests so the whole grid is DOM-queryable
|
|
171
|
+
* regardless of a consumer's own layout/scroll settings.
|
|
172
|
+
*/
|
|
173
|
+
const SKY_AG_GRID_TESTING_OPTIONS = {
|
|
174
|
+
suppressColumnVirtualisation: true,
|
|
175
|
+
suppressRowVirtualisation: true,
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Records every `modelUpdated` render pass so `SkyAgGridWrapperHarness` can
|
|
179
|
+
* poll for a real, non-zone-dependent readiness signal instead of relying on
|
|
180
|
+
* `whenStable()`, which no longer waits for AG Grid once it runs outside the
|
|
181
|
+
* Angular zone (see `provideSkyAgGridTesting()`).
|
|
182
|
+
*/
|
|
183
|
+
function withRenderTracking(options) {
|
|
184
|
+
const onModelUpdated = options.onModelUpdated;
|
|
185
|
+
return {
|
|
186
|
+
...options,
|
|
187
|
+
onModelUpdated: (event) => {
|
|
188
|
+
trackModelUpdate(event.api);
|
|
189
|
+
onModelUpdated?.(event);
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Tracks how many live `SkyAgGridTestingService` instances currently want
|
|
195
|
+
* `AG_GRID_UNDER_TEST` forced to `false`, and the value it held before the
|
|
196
|
+
* first of them activated it. `provideSkyAgGridTesting()` can be added to
|
|
197
|
+
* `TestBed.configureTestingModule()`'s providers *and/or* to one or more
|
|
198
|
+
* component `providers` arrays within the same spec, so multiple instances
|
|
199
|
+
* can be alive at once and destroyed in any order - the flag must stay forced
|
|
200
|
+
* while any instance is alive, and the pre-existing value must only be
|
|
201
|
+
* restored once the last one is destroyed.
|
|
202
|
+
*/
|
|
203
|
+
let activeInstanceCount = 0;
|
|
204
|
+
let restoreValue;
|
|
205
|
+
/**
|
|
206
|
+
* @internal
|
|
207
|
+
* Configures every grid with disabled row/column virtualization and opts out
|
|
208
|
+
* of AG Grid's Angular test-zone detection. Specs that create and destroy many
|
|
209
|
+
* grids can otherwise see AG Grid's own internal timers and animation frames
|
|
210
|
+
* occasionally leave a `requestAnimationFrame` callback pending indefinitely,
|
|
211
|
+
* which surfaces as a `whenStable()` timeout unrelated to the code under test.
|
|
212
|
+
* Without zone opt-out, AG Grid schedules its internal scroll/viewport work
|
|
213
|
+
* inside the Angular zone under Karma, which can keep the zone from ever
|
|
214
|
+
* reaching stable. The flag is restored to its prior value once the last live
|
|
215
|
+
* instance is destroyed, so specs that don't opt in aren't affected by ones
|
|
216
|
+
* that do.
|
|
217
|
+
*
|
|
218
|
+
* Note: `provideSkyAgGridTesting()` can be added to `TestBed.configureTestingModule()`'s
|
|
219
|
+
* providers *or* to a component's own `providers` array, so this can't rely on
|
|
220
|
+
* an environment-injector-only mechanism (like `ENVIRONMENT_INITIALIZER`) to
|
|
221
|
+
* set/restore the flag — a service constructor works at either injector level,
|
|
222
|
+
* and `DestroyRef` fires correctly for either a TestBed module teardown or a
|
|
223
|
+
* component destroy.
|
|
224
|
+
*/
|
|
225
|
+
class SkyAgGridTestingService extends SkyAgGridService {
|
|
226
|
+
constructor() {
|
|
227
|
+
super();
|
|
228
|
+
if (activeInstanceCount === 0) {
|
|
229
|
+
restoreValue = window.AG_GRID_UNDER_TEST;
|
|
230
|
+
}
|
|
231
|
+
activeInstanceCount++;
|
|
232
|
+
window.AG_GRID_UNDER_TEST = false;
|
|
233
|
+
inject(DestroyRef).onDestroy(() => {
|
|
234
|
+
activeInstanceCount--;
|
|
235
|
+
if (activeInstanceCount === 0) {
|
|
236
|
+
window.AG_GRID_UNDER_TEST = restoreValue;
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
getGridOptions(args) {
|
|
241
|
+
return withRenderTracking({
|
|
242
|
+
...super.getGridOptions(args),
|
|
243
|
+
...SKY_AG_GRID_TESTING_OPTIONS,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
getEditableGridOptions(args) {
|
|
247
|
+
return withRenderTracking({
|
|
248
|
+
...super.getEditableGridOptions(args),
|
|
249
|
+
...SKY_AG_GRID_TESTING_OPTIONS,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyAgGridTestingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
253
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyAgGridTestingService }); }
|
|
254
|
+
}
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyAgGridTestingService, decorators: [{
|
|
256
|
+
type: Injectable
|
|
257
|
+
}], ctorParameters: () => [] });
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Configures every grid built through `SkyAgGridService` to disable AG Grid's
|
|
261
|
+
* row/column virtualization and to opt out of AG Grid's Angular test-zone
|
|
262
|
+
* detection while the test is running, so grid work completes without hanging
|
|
263
|
+
* `whenStable()`. The previous test-zone setting is restored when the test's
|
|
264
|
+
* injector is destroyed, so specs that don't opt in aren't affected by ones
|
|
265
|
+
* that do. Add to the spec's `TestBed.configureTestingModule` providers.
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* ```typescript
|
|
269
|
+
* TestBed.configureTestingModule({
|
|
270
|
+
* providers: [provideSkyAgGridTesting()],
|
|
271
|
+
* });
|
|
272
|
+
* ```
|
|
273
|
+
* @preview
|
|
274
|
+
*/
|
|
275
|
+
function provideSkyAgGridTesting() {
|
|
276
|
+
return [{ provide: SkyAgGridService, useClass: SkyAgGridTestingService }];
|
|
62
277
|
}
|
|
63
278
|
|
|
64
279
|
/**
|
|
65
280
|
* Generated bundle index. Do not edit.
|
|
66
281
|
*/
|
|
67
282
|
|
|
68
|
-
export { SkyAgGridWrapperHarness };
|
|
283
|
+
export { SkyAgGridWrapperHarness, provideSkyAgGridTesting };
|
|
69
284
|
//# sourceMappingURL=skyux-ag-grid-testing.mjs.map
|