@skyux/data-grid 14.6.2 → 15.0.0-alpha.1
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/fesm2022/skyux-data-grid.mjs +88 -58
- package/fesm2022/skyux-data-grid.mjs.map +1 -1
- package/package.json +10 -10
|
@@ -28,72 +28,78 @@ class SkyDataGridColumn {
|
|
|
28
28
|
* Whether the column is hidden.
|
|
29
29
|
* @default false
|
|
30
30
|
*/
|
|
31
|
-
this.columnHidden = input(false, { ...(ngDevMode ? { debugName: "columnHidden" } : {}), transform: booleanAttribute });
|
|
31
|
+
this.columnHidden = input(false, { ...(ngDevMode ? { debugName: "columnHidden" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
32
32
|
/**
|
|
33
33
|
* The unique ID for the column. You must provide either the `columnId` or `field` property
|
|
34
34
|
* for every column, but do not provide both. Use `columnId` when the column does not map directly to a field
|
|
35
35
|
* in the data set.
|
|
36
36
|
*/
|
|
37
|
-
this.columnId = input(
|
|
37
|
+
this.columnId = input(/* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [undefined, { debugName: "columnId" }] : /* istanbul ignore next */ []));
|
|
38
39
|
/**
|
|
39
40
|
* The data type of the column used for sorting and rendering when a template is not provided.
|
|
40
41
|
* @default 'text'
|
|
41
42
|
*/
|
|
42
|
-
this.dataType = input('text',
|
|
43
|
+
this.dataType = input('text', /* @ts-ignore */
|
|
44
|
+
...(ngDevMode ? [{ debugName: "dataType" }] : /* istanbul ignore next */ []));
|
|
43
45
|
/**
|
|
44
46
|
* The property to retrieve cell information from an entry on the grid `data` array.
|
|
45
47
|
* You must provide either the `columnId` or `field` property for every column,
|
|
46
48
|
* but do not provide both. When a column maps directly to a property on the data,
|
|
47
49
|
* use `field`; the column's ID defaults to the `field` value.
|
|
48
50
|
*/
|
|
49
|
-
this.field = input(
|
|
51
|
+
this.field = input(/* @ts-ignore */
|
|
52
|
+
...(ngDevMode ? [undefined, { debugName: "field" }] : /* istanbul ignore next */ []));
|
|
50
53
|
/**
|
|
51
54
|
* When set, `flexWidth` takes precedence over `width` for sizing and works like
|
|
52
55
|
* [CSS flex-grow](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow), where a column
|
|
53
56
|
* with `flexWidth="2"` is twice the width of a column with `flexWidth="1"`, and `flexWidth="0"` does not auto-expand.
|
|
54
57
|
* If `width` is also set, it acts as the column's minimum width.
|
|
55
58
|
*/
|
|
56
|
-
this.flexWidth = input(undefined, { ...(ngDevMode ? { debugName: "flexWidth" } : {}), transform: (value) => numberAttribute(value, undefined) });
|
|
59
|
+
this.flexWidth = input(undefined, { ...(ngDevMode ? { debugName: "flexWidth" } : /* istanbul ignore next */ {}), transform: (value) => numberAttribute(value, undefined) });
|
|
57
60
|
/**
|
|
58
61
|
* Text to display in the column header.
|
|
59
62
|
* @required
|
|
60
63
|
*/
|
|
61
|
-
this.headingText = input.required(
|
|
64
|
+
this.headingText = input.required(/* @ts-ignore */
|
|
65
|
+
...(ngDevMode ? [{ debugName: "headingText" }] : /* istanbul ignore next */ []));
|
|
62
66
|
/**
|
|
63
67
|
* Whether to visually hide `headingText` while keeping it available to
|
|
64
68
|
* assistive technologies. The header cell still renders, so its sorting and
|
|
65
69
|
* resizing controls remain available.
|
|
66
70
|
* @default false
|
|
67
71
|
*/
|
|
68
|
-
this.headingHidden = input(false, { ...(ngDevMode ? { debugName: "headingHidden" } : {}), transform: booleanAttribute });
|
|
72
|
+
this.headingHidden = input(false, { ...(ngDevMode ? { debugName: "headingHidden" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
69
73
|
/**
|
|
70
74
|
* The title of the help popover. This property only applies when `helpPopoverContent` is
|
|
71
75
|
* also specified.
|
|
72
76
|
*/
|
|
73
|
-
this.helpPopoverTitle = input(
|
|
77
|
+
this.helpPopoverTitle = input(/* @ts-ignore */
|
|
78
|
+
...(ngDevMode ? [undefined, { debugName: "helpPopoverTitle" }] : /* istanbul ignore next */ []));
|
|
74
79
|
/**
|
|
75
80
|
* The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)
|
|
76
81
|
* button is added to the column header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)
|
|
77
82
|
* when clicked using the specified content and optional title.
|
|
78
83
|
*/
|
|
79
|
-
this.helpPopoverContent = input(
|
|
84
|
+
this.helpPopoverContent = input(/* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [undefined, { debugName: "helpPopoverContent" }] : /* istanbul ignore next */ []));
|
|
80
86
|
/**
|
|
81
87
|
* Whether the column is locked. The intent is to display locked columns first
|
|
82
88
|
* on the left side of the grid. If set to `true`, then users cannot drag the column
|
|
83
89
|
* to another position or drag other columns before it.
|
|
84
90
|
* @default false
|
|
85
91
|
*/
|
|
86
|
-
this.locked = input(false, { ...(ngDevMode ? { debugName: "locked" } : {}), transform: booleanAttribute });
|
|
92
|
+
this.locked = input(false, { ...(ngDevMode ? { debugName: "locked" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
87
93
|
/**
|
|
88
94
|
* Whether the column can be resized by dragging the column header border.
|
|
89
95
|
* @default true
|
|
90
96
|
*/
|
|
91
|
-
this.resizable = input(true, { ...(ngDevMode ? { debugName: "resizable" } : {}), transform: booleanAttribute });
|
|
97
|
+
this.resizable = input(true, { ...(ngDevMode ? { debugName: "resizable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
92
98
|
/**
|
|
93
99
|
* Whether the column sorts the grid when users click the column header.
|
|
94
100
|
* @default true
|
|
95
101
|
*/
|
|
96
|
-
this.sortable = input(true, { ...(ngDevMode ? { debugName: "sortable" } : {}), transform: booleanAttribute });
|
|
102
|
+
this.sortable = input(true, { ...(ngDevMode ? { debugName: "sortable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
97
103
|
/**
|
|
98
104
|
* The template for a column. This can be assigned as a reference
|
|
99
105
|
* to the `template` input, or it can be assigned as an `<ng-template>` child
|
|
@@ -101,20 +107,22 @@ class SkyDataGridColumn {
|
|
|
101
107
|
* which contains the value passed to the column, and the `row` variable, which contains
|
|
102
108
|
* the entire row data.
|
|
103
109
|
*/
|
|
104
|
-
this.template = input(
|
|
110
|
+
this.template = input(/* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [undefined, { debugName: "template" }] : /* istanbul ignore next */ []));
|
|
105
112
|
/**
|
|
106
113
|
* The width of the column in pixels. Used as the column's initial width; the
|
|
107
114
|
* column can still be resized and is included when columns are sized to fit
|
|
108
115
|
* the grid's width. When `flexWidth` is also set, `width` instead acts as the
|
|
109
116
|
* column's minimum width. When no width is set, the column width is evenly distributed.
|
|
110
117
|
*/
|
|
111
|
-
this.width = input(undefined, { ...(ngDevMode ? { debugName: "width" } : {}), transform: (value) => numberAttribute(value, undefined) });
|
|
118
|
+
this.width = input(undefined, { ...(ngDevMode ? { debugName: "width" } : /* istanbul ignore next */ {}), transform: (value) => numberAttribute(value, undefined) });
|
|
112
119
|
/**
|
|
113
120
|
* Whether text in this column should wrap to multiple lines.
|
|
114
121
|
* @default false
|
|
115
122
|
*/
|
|
116
|
-
this.wrapText = input(false, { ...(ngDevMode ? { debugName: "wrapText" } : {}), transform: booleanAttribute });
|
|
117
|
-
this.templateChild = contentChild(TemplateRef,
|
|
123
|
+
this.wrapText = input(false, { ...(ngDevMode ? { debugName: "wrapText" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
124
|
+
this.templateChild = contentChild(TemplateRef, /* @ts-ignore */
|
|
125
|
+
...(ngDevMode ? [{ debugName: "templateChild" }] : /* istanbul ignore next */ []));
|
|
118
126
|
/**
|
|
119
127
|
* @internal
|
|
120
128
|
*/
|
|
@@ -122,7 +130,8 @@ class SkyDataGridColumn {
|
|
|
122
130
|
const template = this.template();
|
|
123
131
|
const templateChild = this.templateChild();
|
|
124
132
|
return template || templateChild;
|
|
125
|
-
},
|
|
133
|
+
}, /* @ts-ignore */
|
|
134
|
+
...(ngDevMode ? [{ debugName: "cellTemplate" }] : /* istanbul ignore next */ []));
|
|
126
135
|
const logger = inject(SkyLogService);
|
|
127
136
|
afterRenderEffect(() => {
|
|
128
137
|
const columnId = this.columnId();
|
|
@@ -135,10 +144,10 @@ class SkyDataGridColumn {
|
|
|
135
144
|
}
|
|
136
145
|
});
|
|
137
146
|
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyDataGridColumn, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: SkyDataGridColumn, isStandalone: true, selector: "sky-data-grid-column", inputs: { columnHidden: { classPropertyName: "columnHidden", publicName: "columnHidden", isSignal: true, isRequired: false, transformFunction: null }, columnId: { classPropertyName: "columnId", publicName: "columnId", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, flexWidth: { classPropertyName: "flexWidth", publicName: "flexWidth", isSignal: true, isRequired: false, transformFunction: null }, headingText: { classPropertyName: "headingText", publicName: "headingText", isSignal: true, isRequired: true, transformFunction: null }, headingHidden: { classPropertyName: "headingHidden", publicName: "headingHidden", isSignal: true, isRequired: false, transformFunction: null }, helpPopoverTitle: { classPropertyName: "helpPopoverTitle", publicName: "helpPopoverTitle", isSignal: true, isRequired: false, transformFunction: null }, helpPopoverContent: { classPropertyName: "helpPopoverContent", publicName: "helpPopoverContent", isSignal: true, isRequired: false, transformFunction: null }, locked: { classPropertyName: "locked", publicName: "locked", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, wrapText: { classPropertyName: "wrapText", publicName: "wrapText", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "templateChild", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
140
149
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyDataGridColumn, decorators: [{
|
|
142
151
|
type: Component,
|
|
143
152
|
args: [{
|
|
144
153
|
selector: 'sky-data-grid-column',
|
|
@@ -153,21 +162,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
153
162
|
class SkyDataGridColumnInlineHelp {
|
|
154
163
|
constructor() {
|
|
155
164
|
this.info = inject(SkyAgGridHeaderInfo);
|
|
156
|
-
this.showHelpInline = computed(() => !!this.helpPopoverContent(),
|
|
157
|
-
|
|
158
|
-
this.
|
|
159
|
-
|
|
165
|
+
this.showHelpInline = computed(() => !!this.helpPopoverContent(), /* @ts-ignore */
|
|
166
|
+
...(ngDevMode ? [{ debugName: "showHelpInline" }] : /* istanbul ignore next */ []));
|
|
167
|
+
this.helpPopoverTitle = computed(() => this.#headerComponentParams()?.helpPopoverTitle, /* @ts-ignore */
|
|
168
|
+
...(ngDevMode ? [{ debugName: "helpPopoverTitle" }] : /* istanbul ignore next */ []));
|
|
169
|
+
this.helpPopoverContent = computed(() => this.#headerComponentParams()?.helpPopoverContent, /* @ts-ignore */
|
|
170
|
+
...(ngDevMode ? [{ debugName: "helpPopoverContent" }] : /* istanbul ignore next */ []));
|
|
171
|
+
this.#headerComponentParams = computed(() => this.info.column?.getColDef().headerComponentParams, /* @ts-ignore */
|
|
172
|
+
...(ngDevMode ? [{ debugName: "#headerComponentParams" }] : /* istanbul ignore next */ []));
|
|
160
173
|
}
|
|
161
174
|
#headerComponentParams;
|
|
162
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
163
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyDataGridColumnInlineHelp, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: SkyDataGridColumnInlineHelp, isStandalone: true, selector: "sky-data-grid-column-inline-help", ngImport: i0, template: `@if (showHelpInline()) {
|
|
164
177
|
<sky-help-inline
|
|
165
178
|
[popoverTitle]="helpPopoverTitle()"
|
|
166
179
|
[popoverContent]="helpPopoverContent()"
|
|
167
180
|
/>
|
|
168
181
|
}`, isInline: true, dependencies: [{ kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
169
182
|
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyDataGridColumnInlineHelp, decorators: [{
|
|
171
184
|
type: Component,
|
|
172
185
|
args: [{
|
|
173
186
|
selector: 'sky-data-grid-column-inline-help',
|
|
@@ -251,7 +264,7 @@ class SkyDataGrid {
|
|
|
251
264
|
* such as sorting a "name" column using last name.
|
|
252
265
|
* @default true
|
|
253
266
|
*/
|
|
254
|
-
this.autoSort = input(true, { ...(ngDevMode ? { debugName: "autoSort" } : {}), transform: coerceBooleanProperty });
|
|
267
|
+
this.autoSort = input(true, { ...(ngDevMode ? { debugName: "autoSort" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
255
268
|
/**
|
|
256
269
|
* Whether the items in `data` represent the full result set used for paging.
|
|
257
270
|
* This applies only when `pageSize` is greater than zero. When `true` (the
|
|
@@ -261,7 +274,7 @@ class SkyDataGrid {
|
|
|
261
274
|
* value (server-side paging).
|
|
262
275
|
* @default true
|
|
263
276
|
*/
|
|
264
|
-
this.autoPage = input(true, { ...(ngDevMode ? { debugName: "autoPage" } : {}), transform: coerceBooleanProperty });
|
|
277
|
+
this.autoPage = input(true, { ...(ngDevMode ? { debugName: "autoPage" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
265
278
|
/**
|
|
266
279
|
* How the grid columns are sized. The valid options are `container`, which
|
|
267
280
|
* attempts to fit the grid to the parent's full width, and `content`, which
|
|
@@ -272,59 +285,63 @@ class SkyDataGrid {
|
|
|
272
285
|
* initialization are not reflected.
|
|
273
286
|
* @default 'container'
|
|
274
287
|
*/
|
|
275
|
-
this.columnFit = input('container',
|
|
288
|
+
this.columnFit = input('container', /* @ts-ignore */
|
|
289
|
+
...(ngDevMode ? [{ debugName: "columnFit" }] : /* istanbul ignore next */ []));
|
|
276
290
|
/**
|
|
277
291
|
* Whether to enable a compact layout for the grid when using modern theme. Compact layout
|
|
278
292
|
* uses a smaller font size and row height to display more data in a smaller space.
|
|
279
293
|
* @default false
|
|
280
294
|
*/
|
|
281
|
-
this.compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : {}), transform: coerceBooleanProperty });
|
|
295
|
+
this.compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
282
296
|
/**
|
|
283
297
|
* The data for the grid. Each item must implement `SkyDataGridRowData`, and other properties should map to a `field` of the grid columns.
|
|
284
298
|
* When `data` is `null` or `undefined`, the grid will show a loading indicator, and when `data` is an empty array,
|
|
285
299
|
* the grid will show a "no rows" message.
|
|
286
300
|
*/
|
|
287
|
-
this.data = input(
|
|
301
|
+
this.data = input(/* @ts-ignore */
|
|
302
|
+
...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
|
|
288
303
|
/**
|
|
289
304
|
* The text to read to screen readers to describe the grid. This sets the `aria-label` attribute on the grid container.
|
|
290
305
|
*/
|
|
291
|
-
this.labelText = input(
|
|
306
|
+
this.labelText = input(/* @ts-ignore */
|
|
307
|
+
...(ngDevMode ? [undefined, { debugName: "labelText" }] : /* istanbul ignore next */ []));
|
|
292
308
|
/**
|
|
293
309
|
* Whether data is being loaded. When `loading` is true or when `data` is nullish,
|
|
294
310
|
* the grid shows a waiting overlay and is not interactive.
|
|
295
311
|
* @default false
|
|
296
312
|
*/
|
|
297
|
-
this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : {}), transform: coerceBooleanProperty });
|
|
313
|
+
this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
298
314
|
/**
|
|
299
315
|
* The minimum height of the grid in pixels.
|
|
300
316
|
* @default 50
|
|
301
317
|
*/
|
|
302
|
-
this.minHeight = input(50, { ...(ngDevMode ? { debugName: "minHeight" } : {}), transform: (value) => coerceNumberProperty(value, 50) });
|
|
318
|
+
this.minHeight = input(50, { ...(ngDevMode ? { debugName: "minHeight" } : /* istanbul ignore next */ {}), transform: (value) => coerceNumberProperty(value, 50) });
|
|
303
319
|
/**
|
|
304
320
|
* Whether to enable the multiselect feature to display a column of
|
|
305
321
|
* checkboxes on the left side of the grid.
|
|
306
322
|
* @default false
|
|
307
323
|
*/
|
|
308
|
-
this.multiselect = input(false, { ...(ngDevMode ? { debugName: "multiselect" } : {}), transform: coerceBooleanProperty });
|
|
324
|
+
this.multiselect = input(false, { ...(ngDevMode ? { debugName: "multiselect" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
309
325
|
/**
|
|
310
326
|
* The number of items to display per page. Setting a value greater than zero
|
|
311
327
|
* enables paging. When `autoPage` is `true` (the default), the grid pages
|
|
312
328
|
* through `data` on the client; when `autoPage` is `false`, set `rowCount` to
|
|
313
329
|
* the total number of rows and update `data` as `page` changes.
|
|
314
330
|
*/
|
|
315
|
-
this.pageSize = input(undefined, { ...(ngDevMode ? { debugName: "pageSize" } : {}), transform: (value) => coerceNumberProperty(value, undefined) });
|
|
331
|
+
this.pageSize = input(undefined, { ...(ngDevMode ? { debugName: "pageSize" } : /* istanbul ignore next */ {}), transform: (value) => coerceNumberProperty(value, undefined) });
|
|
316
332
|
/**
|
|
317
333
|
* The query parameter name that stores the current page number.
|
|
318
334
|
* When set, the grid syncs page changes to the URL for deep linking, and there should only be one grid on the page.
|
|
319
335
|
*/
|
|
320
|
-
this.pageQueryParam = input(
|
|
336
|
+
this.pageQueryParam = input(/* @ts-ignore */
|
|
337
|
+
...(ngDevMode ? [undefined, { debugName: "pageQueryParam" }] : /* istanbul ignore next */ []));
|
|
321
338
|
/**
|
|
322
339
|
* The total number of rows to page through, used to calculate how many pages
|
|
323
340
|
* the paging controls display. Required when `pageSize` is greater than zero
|
|
324
341
|
* and `autoPage` is `false`; ignored when `autoPage` is `true` because the
|
|
325
342
|
* length of `data` is used instead.
|
|
326
343
|
*/
|
|
327
|
-
this.rowCount = input(undefined, { ...(ngDevMode ? { debugName: "rowCount" } : {}), transform: (value) => {
|
|
344
|
+
this.rowCount = input(undefined, { ...(ngDevMode ? { debugName: "rowCount" } : /* istanbul ignore next */ {}), transform: (value) => {
|
|
328
345
|
if (typeof value === 'undefined') {
|
|
329
346
|
return undefined;
|
|
330
347
|
}
|
|
@@ -335,37 +352,42 @@ class SkyDataGrid {
|
|
|
335
352
|
* vertical spacing is automatically added to the data grid.
|
|
336
353
|
* @default false
|
|
337
354
|
*/
|
|
338
|
-
this.stacked = input(false, { ...(ngDevMode ? { debugName: "stacked" } : {}), transform: coerceBooleanProperty });
|
|
355
|
+
this.stacked = input(false, { ...(ngDevMode ? { debugName: "stacked" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
339
356
|
/**
|
|
340
357
|
* Whether to move the horizontal scrollbar to just below the header row.
|
|
341
358
|
* This property is applied when the grid initializes; changes after
|
|
342
359
|
* initialization are not reflected.
|
|
343
360
|
* @default false
|
|
344
361
|
*/
|
|
345
|
-
this.topScrollEnabled = input(false, { ...(ngDevMode ? { debugName: "topScrollEnabled" } : {}), transform: coerceBooleanProperty });
|
|
362
|
+
this.topScrollEnabled = input(false, { ...(ngDevMode ? { debugName: "topScrollEnabled" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
346
363
|
/**
|
|
347
364
|
* The current page number of the grid when `pageSize` has been set. This is two-way bindable:
|
|
348
365
|
* it updates as the user navigates pages, and you can set it to change the current page.
|
|
349
366
|
* When `autoPage` is `false`, update `data` to the rows for the new page whenever this changes.
|
|
350
367
|
* @default 1
|
|
351
368
|
*/
|
|
352
|
-
this.page = model(1,
|
|
369
|
+
this.page = model(1, /* @ts-ignore */
|
|
370
|
+
...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
|
|
353
371
|
/**
|
|
354
372
|
* The set of IDs for the rows to select in a multiselect grid.
|
|
355
373
|
* Rows with IDs that are not included are de-selected in the grid. This is two-way bindable:
|
|
356
374
|
* it emits the updated set of IDs when the user changes the selection.
|
|
357
375
|
* @default []
|
|
358
376
|
*/
|
|
359
|
-
this.selectedRowIds = model([],
|
|
377
|
+
this.selectedRowIds = model([], /* @ts-ignore */
|
|
378
|
+
...(ngDevMode ? [{ debugName: "selectedRowIds" }] : /* istanbul ignore next */ []));
|
|
360
379
|
/**
|
|
361
380
|
* The current sort applied to the grid. This is two-way bindable: it emits a new value
|
|
362
381
|
* whenever the user sorts a column, and you can set it to sort the grid programmatically.
|
|
363
382
|
* When `autoSort` is `false`, the grid emits the new value here but does not reorder the
|
|
364
383
|
* data itself, leaving it to you to update `data`.
|
|
365
384
|
*/
|
|
366
|
-
this.sort = model(undefined,
|
|
367
|
-
|
|
368
|
-
this.
|
|
385
|
+
this.sort = model(undefined, /* @ts-ignore */
|
|
386
|
+
...(ngDevMode ? [{ debugName: "sort" }] : /* istanbul ignore next */ []));
|
|
387
|
+
this.columns = contentChildren(SkyDataGridColumn, /* @ts-ignore */
|
|
388
|
+
...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
|
|
389
|
+
this.gridApi = signal(undefined, /* @ts-ignore */
|
|
390
|
+
...(ngDevMode ? [{ debugName: "gridApi" }] : /* istanbul ignore next */ []));
|
|
369
391
|
this.gridOptions = computed(() => {
|
|
370
392
|
const hasColumnDefs = this.#hasColumnDefs();
|
|
371
393
|
if (!hasColumnDefs) {
|
|
@@ -408,8 +430,10 @@ class SkyDataGrid {
|
|
|
408
430
|
autoSizeStrategy: untracked(() => this.#getAutoSizeStrategy()),
|
|
409
431
|
},
|
|
410
432
|
});
|
|
411
|
-
},
|
|
412
|
-
|
|
433
|
+
}, /* @ts-ignore */
|
|
434
|
+
...(ngDevMode ? [{ debugName: "gridOptions" }] : /* istanbul ignore next */ []));
|
|
435
|
+
this.gridReady = signal(false, /* @ts-ignore */
|
|
436
|
+
...(ngDevMode ? [{ debugName: "gridReady" }] : /* istanbul ignore next */ []));
|
|
413
437
|
this.rowData = computed(() => {
|
|
414
438
|
const rowData = this.data() ?? [];
|
|
415
439
|
const pageSize = this.pageSize();
|
|
@@ -418,7 +442,8 @@ class SkyDataGrid {
|
|
|
418
442
|
return rowData.slice(0, pageSize);
|
|
419
443
|
}
|
|
420
444
|
return rowData;
|
|
421
|
-
},
|
|
445
|
+
}, /* @ts-ignore */
|
|
446
|
+
...(ngDevMode ? [{ debugName: "rowData" }] : /* istanbul ignore next */ []));
|
|
422
447
|
this.pageCount = computed(() => {
|
|
423
448
|
const dataLength = this.pageItemsCount();
|
|
424
449
|
const pageSize = this.pageSize();
|
|
@@ -427,8 +452,9 @@ class SkyDataGrid {
|
|
|
427
452
|
return 0;
|
|
428
453
|
}
|
|
429
454
|
return Math.ceil(dataLength / pageSize);
|
|
430
|
-
},
|
|
431
|
-
|
|
455
|
+
}, /* @ts-ignore */
|
|
456
|
+
...(ngDevMode ? [{ debugName: "pageCount" }] : /* istanbul ignore next */ []));
|
|
457
|
+
this.pageItemsCount = linkedSignal({ ...(ngDevMode ? { debugName: "pageItemsCount" } : /* istanbul ignore next */ {}), source: () => {
|
|
432
458
|
const pageSize = this.pageSize();
|
|
433
459
|
const gridReady = this.gridReady();
|
|
434
460
|
const rowCount = this.rowCount() ?? 0;
|
|
@@ -453,7 +479,8 @@ class SkyDataGrid {
|
|
|
453
479
|
classes.push('.ag-body-horizontal-scroll');
|
|
454
480
|
}
|
|
455
481
|
return classes;
|
|
456
|
-
},
|
|
482
|
+
}, /* @ts-ignore */
|
|
483
|
+
...(ngDevMode ? [{ debugName: "skyViewkeeper" }] : /* istanbul ignore next */ []));
|
|
457
484
|
this.#activatedRoute = inject(ActivatedRoute, { optional: true });
|
|
458
485
|
this.#gridService = inject(SkyAgGridService);
|
|
459
486
|
this.#logger = inject(SkyLogService);
|
|
@@ -461,8 +488,10 @@ class SkyDataGrid {
|
|
|
461
488
|
this.#columnDefs = computed(() => {
|
|
462
489
|
const columns = this.columns();
|
|
463
490
|
return columns.map((col) => this.#createColDef(col));
|
|
464
|
-
},
|
|
465
|
-
|
|
491
|
+
}, /* @ts-ignore */
|
|
492
|
+
...(ngDevMode ? [{ debugName: "#columnDefs" }] : /* istanbul ignore next */ []));
|
|
493
|
+
this.#hasColumnDefs = computed(() => this.#columnDefs().length > 0, /* @ts-ignore */
|
|
494
|
+
...(ngDevMode ? [{ debugName: "#hasColumnDefs" }] : /* istanbul ignore next */ []));
|
|
466
495
|
this.#gridDestroyed = toObservable(this.gridApi).pipe(filter(Boolean), switchMap((api) => fromGridEvent(api, 'gridPreDestroyed')));
|
|
467
496
|
this.#gridSelectedRowIds = toObservable(this.gridApi).pipe(filter(Boolean), switchMap((api) => fromGridEvent(api, 'selectionChanged').pipe(takeUntil(this.#gridDestroyed), map(() => arraySorted(this.#getRowIds(api.getSelectedNodes()))))));
|
|
468
497
|
this.#gridSortChange = toObservable(this.gridApi).pipe(filter(Boolean), switchMap((api) => fromGridEvent(api, 'sortChanged').pipe(takeUntil(this.#gridDestroyed), map((sortEvent) => {
|
|
@@ -486,7 +515,8 @@ class SkyDataGrid {
|
|
|
486
515
|
pagination,
|
|
487
516
|
paginationPageSize,
|
|
488
517
|
};
|
|
489
|
-
},
|
|
518
|
+
}, /* @ts-ignore */
|
|
519
|
+
...(ngDevMode ? [{ debugName: "#paginationOptions" }] : /* istanbul ignore next */ []));
|
|
490
520
|
this.#queryParamPage = toSignal(toObservable(this.pageQueryParam).pipe(switchMap((pageQueryParam) => pageQueryParam && this.#activatedRoute
|
|
491
521
|
? this.#activatedRoute.queryParamMap.pipe(startWith(this.#activatedRoute.snapshot.queryParamMap), map((params) => coerceNumberProperty(params.get(pageQueryParam), 1)))
|
|
492
522
|
: [])), { initialValue: NaN });
|
|
@@ -825,10 +855,10 @@ class SkyDataGrid {
|
|
|
825
855
|
}
|
|
826
856
|
: { checkboxes: false, mode: 'singleRow' };
|
|
827
857
|
}
|
|
828
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
829
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SkyDataGrid, isStandalone: true, selector: "sky-data-grid", inputs: { autoSort: { classPropertyName: "autoSort", publicName: "autoSort", isSignal: true, isRequired: false, transformFunction: null }, autoPage: { classPropertyName: "autoPage", publicName: "autoPage", isSignal: true, isRequired: false, transformFunction: null }, columnFit: { classPropertyName: "columnFit", publicName: "columnFit", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, pageQueryParam: { classPropertyName: "pageQueryParam", publicName: "pageQueryParam", isSignal: true, isRequired: false, transformFunction: null }, rowCount: { classPropertyName: "rowCount", publicName: "rowCount", isSignal: true, isRequired: false, transformFunction: null }, stacked: { classPropertyName: "stacked", publicName: "stacked", isSignal: true, isRequired: false, transformFunction: null }, topScrollEnabled: { classPropertyName: "topScrollEnabled", publicName: "topScrollEnabled", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, selectedRowIds: { classPropertyName: "selectedRowIds", publicName: "selectedRowIds", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", selectedRowIds: "selectedRowIdsChange", sort: "sortChange" }, host: { properties: { "class.sky-margin-stacked-lg": "stacked()" } }, queries: [{ propertyName: "columns", predicate: SkyDataGridColumn, isSignal: true }], ngImport: i0, template: "<sky-wait [isWaiting]=\"!gridReady()\" />\n@if (gridOptions(); as gridOptions) {\n <sky-ag-grid-wrapper [compact]=\"compact()\" [minHeight]=\"minHeight()\">\n <ag-grid-angular\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [skyViewkeeper]=\"skyViewkeeper()\"\n [gridOptions]=\"gridOptions\"\n />\n </sky-ag-grid-wrapper>\n\n @if (pageCount() && pageSize(); as pageSize) {\n <sky-paging\n [currentPage]=\"page()\"\n [itemCount]=\"pageItemsCount()\"\n [pageSize]=\"pageSize\"\n (currentPageChange)=\"currentPageChange($event)\"\n />\n }\n}\n", styles: [":host{display:block;max-width:100%}\n"], dependencies: [{ kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipSwitchShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "ngmodule", type: SkyAgGridModule }, { kind: "component", type: i1$1.λ12, selector: "sky-ag-grid-wrapper", inputs: ["compact", "minHeight"] }, { kind: "ngmodule", type: SkyPagingModule }, { kind: "component", type: i2.λ7, selector: "sky-paging", inputs: ["currentPage", "itemCount", "maxPages", "pageSize", "pagingLabel"], outputs: ["currentPageChange", "contentChange"] }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i3.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper", "skyViewkeeperOmitShadow"] }, { kind: "ngmodule", type: SkyWaitModule }, { kind: "component", type: i4.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
858
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyDataGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
859
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: SkyDataGrid, isStandalone: true, selector: "sky-data-grid", inputs: { autoSort: { classPropertyName: "autoSort", publicName: "autoSort", isSignal: true, isRequired: false, transformFunction: null }, autoPage: { classPropertyName: "autoPage", publicName: "autoPage", isSignal: true, isRequired: false, transformFunction: null }, columnFit: { classPropertyName: "columnFit", publicName: "columnFit", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, pageQueryParam: { classPropertyName: "pageQueryParam", publicName: "pageQueryParam", isSignal: true, isRequired: false, transformFunction: null }, rowCount: { classPropertyName: "rowCount", publicName: "rowCount", isSignal: true, isRequired: false, transformFunction: null }, stacked: { classPropertyName: "stacked", publicName: "stacked", isSignal: true, isRequired: false, transformFunction: null }, topScrollEnabled: { classPropertyName: "topScrollEnabled", publicName: "topScrollEnabled", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, selectedRowIds: { classPropertyName: "selectedRowIds", publicName: "selectedRowIds", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", selectedRowIds: "selectedRowIdsChange", sort: "sortChange" }, host: { properties: { "class.sky-margin-stacked-lg": "stacked()" } }, queries: [{ propertyName: "columns", predicate: SkyDataGridColumn, isSignal: true }], ngImport: i0, template: "<sky-wait [isWaiting]=\"!gridReady()\" />\n@if (gridOptions(); as gridOptions) {\n <sky-ag-grid-wrapper [compact]=\"compact()\" [minHeight]=\"minHeight()\">\n <ag-grid-angular\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [skyViewkeeper]=\"skyViewkeeper()\"\n [gridOptions]=\"gridOptions\"\n />\n </sky-ag-grid-wrapper>\n\n @if (pageCount() && pageSize(); as pageSize) {\n <sky-paging\n [currentPage]=\"page()\"\n [itemCount]=\"pageItemsCount()\"\n [pageSize]=\"pageSize\"\n (currentPageChange)=\"currentPageChange($event)\"\n />\n }\n}\n", styles: [":host{display:block;max-width:100%}\n"], dependencies: [{ kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipSwitchShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { kind: "ngmodule", type: SkyAgGridModule }, { kind: "component", type: i1$1.λ12, selector: "sky-ag-grid-wrapper", inputs: ["compact", "minHeight"] }, { kind: "ngmodule", type: SkyPagingModule }, { kind: "component", type: i2.λ7, selector: "sky-paging", inputs: ["currentPage", "itemCount", "maxPages", "pageSize", "pagingLabel"], outputs: ["currentPageChange", "contentChange"] }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i3.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper", "skyViewkeeperOmitShadow"] }, { kind: "ngmodule", type: SkyWaitModule }, { kind: "component", type: i4.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
830
860
|
}
|
|
831
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
861
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyDataGrid, decorators: [{
|
|
832
862
|
type: Component,
|
|
833
863
|
args: [{ selector: 'sky-data-grid', imports: [
|
|
834
864
|
AgGridAngular,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-data-grid.mjs","sources":["../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid-column.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid-column-inline-help.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid-event-utils.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid.html","../../../../../libs/components/data-grid/src/skyux-data-grid.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n numberAttribute,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\n\n/**\n * Defines a single column in a `SkyDataGrid`. Add one `sky-data-grid-column` for each\n * column to render.\n * @preview\n */\n@Component({\n selector: 'sky-data-grid-column',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataGridColumn {\n /**\n * Whether the column is hidden.\n * @default false\n */\n public readonly columnHidden = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The unique ID for the column. You must provide either the `columnId` or `field` property\n * for every column, but do not provide both. Use `columnId` when the column does not map directly to a field\n * in the data set.\n */\n public readonly columnId = input<string>();\n\n /**\n * The data type of the column used for sorting and rendering when a template is not provided.\n * @default 'text'\n */\n public readonly dataType = input<'text' | 'number' | 'date' | 'boolean'>(\n 'text',\n );\n\n /**\n * The property to retrieve cell information from an entry on the grid `data` array.\n * You must provide either the `columnId` or `field` property for every column,\n * but do not provide both. When a column maps directly to a property on the data,\n * use `field`; the column's ID defaults to the `field` value.\n */\n public readonly field = input<string>();\n\n /**\n * When set, `flexWidth` takes precedence over `width` for sizing and works like\n * [CSS flex-grow](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow), where a column\n * with `flexWidth=\"2\"` is twice the width of a column with `flexWidth=\"1\"`, and `flexWidth=\"0\"` does not auto-expand.\n * If `width` is also set, it acts as the column's minimum width.\n */\n public readonly flexWidth = input<number | undefined, unknown>(undefined, {\n transform: (value) => numberAttribute(value, undefined),\n });\n\n /**\n * Text to display in the column header.\n * @required\n */\n public readonly headingText = input.required<string>();\n\n /**\n * Whether to visually hide `headingText` while keeping it available to\n * assistive technologies. The header cell still renders, so its sorting and\n * resizing controls remain available.\n * @default false\n */\n public readonly headingHidden = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n public readonly helpPopoverTitle = input<string>();\n\n /**\n * The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the column header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title.\n */\n public readonly helpPopoverContent = input<string | TemplateRef<unknown>>();\n\n /**\n * Whether the column is locked. The intent is to display locked columns first\n * on the left side of the grid. If set to `true`, then users cannot drag the column\n * to another position or drag other columns before it.\n * @default false\n */\n public readonly locked = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * Whether the column can be resized by dragging the column header border.\n * @default true\n */\n public readonly resizable = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /**\n * Whether the column sorts the grid when users click the column header.\n * @default true\n */\n public readonly sortable = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /**\n * The template for a column. This can be assigned as a reference\n * to the `template` input, or it can be assigned as an `<ng-template>` child\n * of the `sky-data-grid-column` component. The template has access to the `value` variable,\n * which contains the value passed to the column, and the `row` variable, which contains\n * the entire row data.\n */\n public readonly template = input<TemplateRef<unknown>>();\n\n /**\n * The width of the column in pixels. Used as the column's initial width; the\n * column can still be resized and is included when columns are sized to fit\n * the grid's width. When `flexWidth` is also set, `width` instead acts as the\n * column's minimum width. When no width is set, the column width is evenly distributed.\n */\n public readonly width = input<number | undefined, unknown>(undefined, {\n transform: (value) => numberAttribute(value, undefined),\n });\n\n /**\n * Whether text in this column should wrap to multiple lines.\n * @default false\n */\n public readonly wrapText = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n protected readonly templateChild = contentChild(TemplateRef);\n\n constructor() {\n const logger = inject(SkyLogService);\n afterRenderEffect(() => {\n const columnId = this.columnId();\n const field = this.field();\n if (columnId && field) {\n logger.warn(\n `A <sky-data-grid-column> should have either a columnId or a field, but not both.`,\n );\n }\n if (!columnId && !field) {\n logger.warn(\n `A <sky-data-grid-column> must have a columnId or a field.`,\n );\n }\n });\n }\n\n /**\n * @internal\n */\n protected readonly cellTemplate = computed<TemplateRef<unknown> | undefined>(\n () => {\n const template = this.template();\n const templateChild = this.templateChild();\n return template || templateChild;\n },\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { SkyAgGridHeaderInfo } from '@skyux/ag-grid';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-data-grid-column-inline-help',\n imports: [SkyHelpInlineModule],\n template: `@if (showHelpInline()) {\n <sky-help-inline\n [popoverTitle]=\"helpPopoverTitle()\"\n [popoverContent]=\"helpPopoverContent()\"\n />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataGridColumnInlineHelp {\n protected readonly info = inject(SkyAgGridHeaderInfo);\n\n protected readonly showHelpInline = computed(\n () => !!this.helpPopoverContent(),\n );\n\n protected readonly helpPopoverTitle = computed(\n () => this.#headerComponentParams()?.helpPopoverTitle,\n );\n\n protected readonly helpPopoverContent = computed(\n () => this.#headerComponentParams()?.helpPopoverContent,\n );\n\n readonly #headerComponentParams = computed(\n () => this.info.column?.getColDef().headerComponentParams,\n );\n}\n","import {\n AgEventListener,\n AgEventTypeParams,\n AgPublicEventType,\n GridApi,\n} from 'ag-grid-community';\nimport { Observable } from 'rxjs';\n\n/**\n * @internal\n */\nexport function fromGridEvent<\n TEventType extends AgPublicEventType,\n TData = unknown,\n TContext = unknown,\n>(\n target: Pick<\n GridApi,\n 'addEventListener' | 'removeEventListener' | 'isDestroyed'\n >,\n eventType: TEventType,\n): Observable<AgEventTypeParams<TData, TContext>[TEventType]> {\n return new Observable<AgEventTypeParams<TData, TContext>[TEventType]>(\n (subscriber) => {\n const handler: AgEventListener<TData, TContext, TEventType> = (\n event: AgEventTypeParams<TData, TContext>[TEventType],\n ): void => subscriber.next(event);\n target.addEventListener(eventType, handler);\n\n return () => {\n if (!target.isDestroyed || !target.isDestroyed()) {\n target.removeEventListener(eventType, handler);\n }\n };\n },\n );\n}\n","import {\n coerceArray,\n coerceBooleanProperty,\n coerceNumberProperty,\n coerceStringArray,\n} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n Signal,\n signal,\n TemplateRef,\n untracked,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n toObservable,\n toSignal,\n} from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SkyAgGridModule, SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport { SkyLogService, SkyViewkeeperModule } from '@skyux/core';\nimport { SkyWaitModule } from '@skyux/indicators';\nimport { SkyPagingModule } from '@skyux/lists';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AutoSizeStrategy,\n CellStyleModule,\n ClientSideRowModelApiModule,\n ClientSideRowModelModule,\n ColDef,\n ColumnApiModule,\n ColumnAutoSizeModule,\n EventApiModule,\n GridApi,\n GridOptions,\n GridStateModule,\n IRowNode,\n ModuleRegistry,\n PaginationModule,\n RenderApiModule,\n RowApiModule,\n RowAutoHeightModule,\n RowSelectionModule,\n RowSelectionOptions,\n RowStyleModule,\n ValidationModule,\n} from 'ag-grid-community';\nimport {\n filter,\n map,\n ObservableInput,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\nimport { SkyDataGridRowData } from '../types/data-grid-row-data';\nimport { SkyDataGridSort } from '../types/data-grid-sort';\n\nimport { SkyDataGridColumn } from './data-grid-column';\nimport { SkyDataGridColumnInlineHelp } from './data-grid-column-inline-help';\nimport { fromGridEvent } from './data-grid-event-utils';\n\n// Register only the AG Grid community modules this component actually uses,\n// rather than `AllCommunityModule`, to keep the consumer's bundle lean. This\n// covers the client-side row model, sorting, pagination, row selection, cell\n// and row styling, column auto-sizing, auto-height (text wrap), the grid/column\n// state and event APIs the component and its harness rely on, and dev-time\n// validation messaging.\nModuleRegistry.registerModules([\n CellStyleModule,\n ClientSideRowModelApiModule,\n ClientSideRowModelModule,\n ColumnApiModule,\n ColumnAutoSizeModule,\n EventApiModule,\n GridStateModule,\n PaginationModule,\n RenderApiModule,\n RowApiModule,\n RowAutoHeightModule,\n RowSelectionModule,\n RowStyleModule,\n ValidationModule,\n]);\n\nfunction arraySorted(arr: string[]): string[] {\n return arr.slice().sort((a, b) => a.localeCompare(b));\n}\n\n/**\n * Displays tabular data in a grid using a declarative set of columns and inputs.\n * Provide the `data` array and one `sky-data-grid-column` for each column to render.\n * @preview\n */\n@Component({\n selector: 'sky-data-grid',\n imports: [\n AgGridAngular,\n SkyAgGridModule,\n SkyPagingModule,\n SkyViewkeeperModule,\n SkyWaitModule,\n ],\n templateUrl: './data-grid.html',\n styleUrl: './data-grid.css',\n host: {\n '[class.sky-margin-stacked-lg]': 'stacked()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataGrid {\n /**\n * Whether the grid sorts the data order when a column header is clicked.\n * When `autoSort` is set to `false`, the data grid will not modify the sort\n * order, `sort` will emit a new value, and `data` will need to be updated.\n * Use this option when the data is returned from the server already sorted,\n * such as sorting a \"name\" column using last name.\n * @default true\n */\n public readonly autoSort = input<boolean, unknown>(true, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Whether the items in `data` represent the full result set used for paging.\n * This applies only when `pageSize` is greater than zero. When `true` (the\n * default), the grid pages through `data` on the client. When `false`, the\n * `rowCount` input is required to size the paging controls, and `data` should\n * be updated to the rows for the current page whenever `page` emits a new\n * value (server-side paging).\n * @default true\n */\n public readonly autoPage = input<boolean, unknown>(true, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * How the grid columns are sized. The valid options are `container`, which\n * attempts to fit the grid to the parent's full width, and `content`, which\n * attempts to optimize columns to display their contents and may exceed the\n * parent's width. If the grid does not have enough columns to fill\n * the parent's width, it always stretches to the parent's full width.\n * This property is applied when the grid initializes; changes after\n * initialization are not reflected.\n * @default 'container'\n */\n public readonly columnFit = input<'container' | 'content'>('container');\n\n /**\n * Whether to enable a compact layout for the grid when using modern theme. Compact layout\n * uses a smaller font size and row height to display more data in a smaller space.\n * @default false\n */\n public readonly compact = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The data for the grid. Each item must implement `SkyDataGridRowData`, and other properties should map to a `field` of the grid columns.\n * When `data` is `null` or `undefined`, the grid will show a loading indicator, and when `data` is an empty array,\n * the grid will show a \"no rows\" message.\n */\n public readonly data = input<SkyDataGridRowData[] | null | undefined>();\n\n /**\n * The text to read to screen readers to describe the grid. This sets the `aria-label` attribute on the grid container.\n */\n public readonly labelText = input<string>();\n\n /**\n * Whether data is being loaded. When `loading` is true or when `data` is nullish,\n * the grid shows a waiting overlay and is not interactive.\n * @default false\n */\n public readonly loading = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The minimum height of the grid in pixels.\n * @default 50\n */\n public readonly minHeight = input<number, unknown>(50, {\n transform: (value: unknown) => coerceNumberProperty(value, 50),\n });\n\n /**\n * Whether to enable the multiselect feature to display a column of\n * checkboxes on the left side of the grid.\n * @default false\n */\n public readonly multiselect = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The number of items to display per page. Setting a value greater than zero\n * enables paging. When `autoPage` is `true` (the default), the grid pages\n * through `data` on the client; when `autoPage` is `false`, set `rowCount` to\n * the total number of rows and update `data` as `page` changes.\n */\n public readonly pageSize = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) => coerceNumberProperty(value, undefined),\n });\n\n /**\n * The query parameter name that stores the current page number.\n * When set, the grid syncs page changes to the URL for deep linking, and there should only be one grid on the page.\n */\n public readonly pageQueryParam = input<string | undefined>();\n\n /**\n * The total number of rows to page through, used to calculate how many pages\n * the paging controls display. Required when `pageSize` is greater than zero\n * and `autoPage` is `false`; ignored when `autoPage` is `true` because the\n * length of `data` is used instead.\n */\n public readonly rowCount = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) => {\n if (typeof value === 'undefined') {\n return undefined;\n }\n return coerceNumberProperty(value, undefined);\n },\n });\n\n /**\n * Whether the data grid is stacked with another element below it. When specified, the appropriate\n * vertical spacing is automatically added to the data grid.\n * @default false\n */\n public readonly stacked = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Whether to move the horizontal scrollbar to just below the header row.\n * This property is applied when the grid initializes; changes after\n * initialization are not reflected.\n * @default false\n */\n public readonly topScrollEnabled = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The current page number of the grid when `pageSize` has been set. This is two-way bindable:\n * it updates as the user navigates pages, and you can set it to change the current page.\n * When `autoPage` is `false`, update `data` to the rows for the new page whenever this changes.\n * @default 1\n */\n public readonly page = model<number>(1);\n\n /**\n * The set of IDs for the rows to select in a multiselect grid.\n * Rows with IDs that are not included are de-selected in the grid. This is two-way bindable:\n * it emits the updated set of IDs when the user changes the selection.\n * @default []\n */\n public readonly selectedRowIds = model<string[]>([]);\n\n /**\n * The current sort applied to the grid. This is two-way bindable: it emits a new value\n * whenever the user sorts a column, and you can set it to sort the grid programmatically.\n * When `autoSort` is `false`, the grid emits the new value here but does not reorder the\n * data itself, leaving it to you to update `data`.\n */\n public readonly sort = model<SkyDataGridSort | undefined>(undefined);\n\n protected readonly columns = contentChildren(SkyDataGridColumn);\n protected readonly gridApi = signal<GridApi<SkyDataGridRowData> | undefined>(\n undefined,\n );\n protected readonly gridOptions = computed(() => {\n const hasColumnDefs = this.#hasColumnDefs();\n if (!hasColumnDefs) {\n return undefined;\n }\n const columnDefs = untracked(() => this.#columnDefs());\n const { pagination, paginationPageSize } = untracked(() =>\n this.#paginationOptions(),\n );\n const rowData = untracked(() => this.rowData());\n // Seed the initial sort through AG Grid's own state so it is applied as the\n // grid initializes (and re-applied when the grid is recreated). Subsequent\n // sort changes are applied at runtime by the dedicated `sort` effect.\n const sort = untracked(() => this.sort());\n return this.#gridService.getGridOptions({\n gridOptions: {\n columnDefs,\n context: {\n enableTopScroll: untracked(() => this.topScrollEnabled()),\n },\n domLayout: 'autoHeight',\n initialState: sort\n ? {\n sort: {\n sortModel: [\n { colId: sort.field as string, sort: sort.direction },\n ],\n },\n }\n : undefined,\n loading: untracked(() => this.loading() || !Array.isArray(this.data())),\n onGridReady: (args) => {\n this.gridApi.set(args.api);\n this.gridReady.set(true);\n },\n pagination,\n paginationPageSize,\n suppressMultiSort: true,\n suppressPaginationPanel: true,\n rowData,\n rowSelection: untracked(() => this.#getRowSelection()),\n autoSizeStrategy: untracked(() => this.#getAutoSizeStrategy()),\n },\n }) as GridOptions<SkyDataGridRowData>;\n });\n\n protected readonly gridReady = signal(false);\n protected readonly rowData = computed(() => {\n const rowData = this.data() ?? [];\n const pageSize = this.pageSize();\n if (!this.autoPage() && pageSize && rowData.length > pageSize) {\n this.#logger.warn(\n 'When using paging and `autoPage` is not enabled, the `data` input will be limited to the number of rows specified by `pageSize`. To display more rows, update the `data` input when the `page` changes.',\n );\n return rowData.slice(0, pageSize);\n }\n return rowData;\n });\n protected readonly pageCount = computed(() => {\n const dataLength = this.pageItemsCount();\n const pageSize = this.pageSize();\n const gridReady = this.gridReady();\n if (!gridReady || !pageSize) {\n return 0;\n }\n return Math.ceil(dataLength / pageSize);\n });\n protected readonly pageItemsCount = linkedSignal({\n source: () => {\n const pageSize = this.pageSize();\n const gridReady = this.gridReady();\n const rowCount = this.rowCount() ?? 0;\n if (!gridReady || !pageSize) {\n return 0;\n }\n const dataLength = this.rowData().length;\n const autoPage = this.autoPage();\n return autoPage ? dataLength : rowCount;\n },\n computation: (source, previous): number => {\n // Avoid flickering the pagination controls while data is updating.\n if (this.loading()) {\n return previous?.value || 0;\n }\n return source;\n },\n });\n\n protected readonly skyViewkeeper = computed(() => {\n // Only used when not using SkyDataManagerService because data manager handles SkyViewkeeper.\n const classes = ['.ag-header'];\n if (this.topScrollEnabled()) {\n classes.push('.ag-body-horizontal-scroll');\n }\n return classes;\n });\n\n readonly #activatedRoute = inject(ActivatedRoute, { optional: true });\n readonly #gridService = inject(SkyAgGridService);\n readonly #logger = inject(SkyLogService);\n readonly #router = inject(Router, { optional: true });\n\n readonly #columnDefs = computed<ColDef<SkyDataGridRowData>[]>(() => {\n const columns = this.columns();\n return columns.map((col) => this.#createColDef(col));\n });\n readonly #hasColumnDefs = computed(() => this.#columnDefs().length > 0);\n\n readonly #gridDestroyed = toObservable(this.gridApi).pipe(\n filter(Boolean),\n switchMap((api) => fromGridEvent(api, 'gridPreDestroyed')),\n );\n readonly #gridSelectedRowIds = toObservable(this.gridApi).pipe(\n filter(Boolean),\n switchMap((api) =>\n fromGridEvent(api, 'selectionChanged').pipe(\n takeUntil(this.#gridDestroyed),\n map(() => arraySorted(this.#getRowIds(api.getSelectedNodes()))),\n ),\n ),\n );\n readonly #gridSortChange = toObservable(this.gridApi).pipe(\n filter(Boolean),\n switchMap((api) =>\n fromGridEvent(api, 'sortChanged').pipe(\n takeUntil(this.#gridDestroyed),\n map((sortEvent): SkyDataGridSort | undefined => {\n const sortColumn = sortEvent?.columns?.find((col) => !!col.getSort());\n if (sortColumn) {\n return {\n direction: sortColumn.getSort() as 'asc' | 'desc',\n field: sortColumn.getColId(),\n };\n }\n return undefined;\n }),\n ),\n ),\n );\n /**\n * The pagination options passed to AG Grid; not used when `autoPage` is false.\n */\n readonly #paginationOptions = computed(() => {\n const pageSize = this.pageSize();\n const pagination = this.autoPage() && !!pageSize;\n const paginationPageSize = (pagination && pageSize) || undefined;\n return {\n pagination,\n paginationPageSize,\n };\n });\n readonly #queryParamPage = toSignal(\n toObservable(this.pageQueryParam).pipe(\n switchMap(\n (pageQueryParam): ObservableInput<number> =>\n pageQueryParam && this.#activatedRoute\n ? this.#activatedRoute.queryParamMap.pipe(\n startWith(this.#activatedRoute.snapshot.queryParamMap),\n map((params) =>\n coerceNumberProperty(params.get(pageQueryParam), 1),\n ),\n )\n : [],\n ),\n ),\n { initialValue: NaN },\n );\n\n constructor() {\n // Update specific grid options after the grid has been loaded. These read\n // `gridApi` untracked because a recreated grid rebuilds its options from the\n // `gridOptions` computed; the selection and page effects below instead track\n // `gridApi` so they re-apply their state to a freshly created grid.\n effect(() => {\n const api = untracked(() => this.gridApi());\n const columnDefs = this.#columnDefs();\n api?.setGridOption('columnDefs', columnDefs);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const isLoading = this.loading() || !Array.isArray(this.data());\n api?.setGridOption('loading', isLoading);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const { pagination, paginationPageSize } = this.#paginationOptions();\n api?.setGridOption('pagination', pagination);\n api?.setGridOption('paginationPageSize', paginationPageSize);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const rowData = this.rowData();\n api?.setGridOption('rowData', rowData);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const rowSelection = this.#getRowSelection();\n api?.setGridOption('rowSelection', rowSelection);\n });\n\n // Apply inputs once the grid is loaded and on subsequent changes.\n effect(() => {\n const api = this.gridApi();\n const isLoading = this.loading() || !Array.isArray(this.data());\n // Don't reconcile selection while data is still loading; pruning here\n // would wipe a selection a consumer set before the rows arrived.\n // An empty array is \"loaded but no rows\", so only `null`/`undefined` skip.\n if (isLoading) {\n return;\n }\n const validRowIds = new Set(this.rowData().map((row) => row.id));\n const selectedRowIds = coerceStringArray(this.selectedRowIds());\n const validSelectedRowIds = selectedRowIds.filter((id) =>\n validRowIds.has(id),\n );\n if (\n this.autoPage() &&\n validSelectedRowIds.length !== selectedRowIds.length\n ) {\n this.selectedRowIds.set(validSelectedRowIds);\n }\n if (!api) {\n return;\n }\n // Diff against the grid's current selection; only touch nodes that\n // change, so a no-op reconcile fires no selectionChanged event.\n const desired = new Set(validSelectedRowIds);\n const selectedNodes = api.getSelectedNodes();\n const alreadySelected = new Set(this.#getRowIds(selectedNodes));\n const toDeselect = selectedNodes.filter(\n (node) => !desired.has(node.id as string),\n );\n const toSelect = validSelectedRowIds\n .filter((id) => !alreadySelected.has(id))\n .map((id) => api.getRowNode(id))\n .filter((node): node is IRowNode<SkyDataGridRowData> => !!node);\n if (toDeselect.length) {\n api.setNodesSelected({ nodes: toDeselect, newValue: false });\n }\n if (toSelect.length) {\n api.setNodesSelected({ nodes: toSelect, newValue: true });\n }\n });\n // Apply the sort as runtime column state rather than through `columnDefs`,\n // so sorting never re-applies the declared column order and wipes a\n // user's drag-reordered (or resized) columns. Tracks `gridApi` so the\n // sort re-applies to a freshly created grid.\n effect(() => {\n const api = this.gridApi();\n const sort = this.sort();\n if (!api) {\n return;\n }\n api.applyColumnState({\n state: sort\n ? [\n {\n colId: sort.field as string,\n sort: sort.direction,\n },\n ]\n : [],\n defaultState: { sort: null },\n });\n });\n effect(() => {\n const api = this.gridApi();\n const page = this.page();\n const pageCount = this.pageCount();\n if (!pageCount || !api) {\n return;\n }\n if (page < 1) {\n this.currentPageChange(1);\n } else if (page > pageCount) {\n this.currentPageChange(pageCount);\n } else if (untracked(this.autoPage)) {\n api.paginationGoToPage(page - 1);\n }\n });\n // Sync `page` to the URL query parameter when it changes, e.g. when set\n // programmatically rather than through the paging controls (which\n // already navigate directly). Tracks only `page` itself, not `gridApi`/\n // `pageCount`, so a grid becoming ready does not push a `page` value\n // that is still stale from an in-flight URL change onto the URL. Only\n // syncs valid page numbers; out-of-range values are corrected by the\n // effect above instead of being reflected in the URL.\n effect(() => {\n const page = this.page();\n if (Number.isInteger(page) && page >= 1) {\n this.#syncPageQueryParam(page);\n }\n });\n\n effect(() => {\n const api = this.gridApi();\n const label = this.labelText();\n api?.setGridAriaProperty('label', label ?? null);\n });\n\n // Sync page from URL query parameter.\n effect(() => {\n const queryParamPage = this.#queryParamPage();\n const pageSize = this.pageSize();\n if (pageSize && Number.isInteger(queryParamPage)) {\n this.page.set(queryParamPage);\n }\n });\n\n // Warn when server-side paging is configured without the required\n // `rowCount`. Without it, `pageItemsCount` resolves to zero and the paging\n // controls silently disappear. Only warn once data has loaded so a grid\n // that is still fetching its first page does not trigger a false positive.\n effect(() => {\n if (\n !this.autoPage() &&\n this.pageSize() &&\n this.rowCount() === undefined &&\n !this.loading() &&\n Array.isArray(this.data())\n ) {\n this.#logger.warn(\n 'When using paging and `autoPage` is not enabled, the `rowCount` input is required so the paging controls know how many pages to display. Set `rowCount` to the total number of rows available on the server.',\n );\n }\n });\n\n // Warn when `pageQueryParam` is configured without a `Router` and\n // `ActivatedRoute` available for injection. Without them, page changes\n // fall back to updating the `page` model directly instead of the URL.\n effect(() => {\n if (this.pageQueryParam() && (!this.#router || !this.#activatedRoute)) {\n this.#logger.warn(\n 'The `pageQueryParam` input is set, but a `Router` and `ActivatedRoute` are not available for injection. Page changes will not be reflected in the URL.',\n );\n }\n });\n\n this.#gridDestroyed.pipe(takeUntilDestroyed()).subscribe(() => {\n this.gridApi.set(undefined);\n this.gridReady.set(false);\n });\n\n // Emit updates from the grid.\n this.#gridSelectedRowIds\n .pipe(\n takeUntilDestroyed(),\n map((ids) => coerceStringArray(ids)),\n )\n .subscribe((selectedRowIds) => {\n // Maintain IDs not in the current dataset.\n const validRowIds = new Set(this.rowData().map(({ id }) => id));\n const selectedSet = new Set(selectedRowIds);\n this.selectedRowIds.update((val) => {\n const valSet = new Set(val);\n const hasAddition = selectedRowIds.some((id) => !valSet.has(id));\n const hasRemoval = val.some(\n (id) => validRowIds.has(id) && !selectedSet.has(id),\n );\n if (hasAddition || hasRemoval) {\n return [\n ...new Set([\n ...val.filter((id) => !validRowIds.has(id)),\n ...selectedRowIds,\n ]),\n ].sort((a, b) => a.localeCompare(b));\n }\n return val;\n });\n });\n this.#gridSortChange.pipe(takeUntilDestroyed()).subscribe((sortChange) => {\n if (sortChange) {\n this.sort.update((sort) => {\n if (\n !!sort !== !!sortChange ||\n sort?.direction !== sortChange?.direction ||\n sort?.field !== sortChange?.field\n ) {\n return sortChange;\n }\n return sort;\n });\n } else {\n // Clear the sort when the grid no longer has a sorted column so the\n // two-way bound model does not retain a stale value.\n this.sort.update(() => undefined);\n }\n });\n }\n\n protected currentPageChange(page: number): void {\n if (page && page !== this.page()) {\n const pageQueryParam = this.pageQueryParam();\n if (pageQueryParam && this.#router && this.#activatedRoute) {\n // When using a query parameter, send the change through the router.\n this.#navigateToPageQueryParam(pageQueryParam, page);\n } else {\n this.page.set(page);\n }\n }\n }\n\n /**\n * Updates the URL to reflect a programmatic page change so deep linking stays\n * in sync when a consumer drives `page` directly instead of using the paging\n * controls. Reads untracked so it does not add reactive dependencies to the\n * effect that calls it.\n */\n #syncPageQueryParam(page: number): void {\n const pageQueryParam = untracked(this.pageQueryParam);\n if (pageQueryParam && untracked(this.#queryParamPage) !== page) {\n this.#navigateToPageQueryParam(pageQueryParam, page);\n }\n }\n\n #navigateToPageQueryParam(pageQueryParam: string, page: number): void {\n void this.#router?.navigate([], {\n relativeTo: this.#activatedRoute,\n queryParams: {\n [pageQueryParam]: page === 1 ? null : page,\n },\n queryParamsHandling: 'merge',\n });\n }\n\n #createColDef(col: SkyDataGridColumn): ColDef {\n const field = col.field();\n const colDef: ColDef = {\n colId: col.columnId(),\n field,\n headerName: col.headingText(),\n headerComponentParams: this.#getHeaderComponentParams(col),\n hide: col.columnHidden(),\n initialHide: col.columnHidden(),\n resizable: col.resizable(),\n sortable: col.sortable(),\n lockPosition: col.locked(),\n suppressMovable: col.locked(),\n type: [],\n autoHeight: col.wrapText(),\n wrapText: col.wrapText(),\n };\n if (col.dataType() === 'date') {\n (colDef.type as string[]).push(SkyCellType.Date);\n colDef.cellDataType = 'dateString';\n } else if (field && col.dataType() === 'number') {\n (colDef.type as string[]).push(SkyCellType.Number);\n colDef.cellDataType = 'number';\n colDef.valueGetter = (params): number | null => {\n const n = Number(params.data?.[field]);\n return Number.isFinite(n) ? n : null;\n };\n } else if (col.dataType() === 'boolean') {\n colDef.cellDataType = 'boolean';\n } else {\n (colDef.type as string[]).push(SkyCellType.Text);\n colDef.cellDataType = 'text';\n }\n const colWithTemplate = col as unknown as {\n cellTemplate: Signal<TemplateRef<unknown> | undefined>;\n };\n if (colWithTemplate.cellTemplate()) {\n (colDef.type as string[]).push(SkyCellType.Template);\n colDef.cellRendererParams = { template: colWithTemplate.cellTemplate };\n }\n if (!this.autoSort()) {\n colDef.comparator = (): number => 0;\n }\n this.#applyColumnWidthSettings(col, colDef);\n return colDef;\n }\n\n #applyColumnWidthSettings(col: SkyDataGridColumn, colDef: ColDef): void {\n if (Number.isFinite(col.flexWidth())) {\n colDef.flex = col.flexWidth();\n colDef.initialFlex = col.flexWidth();\n if (Number.isFinite(col.width())) {\n colDef.minWidth = col.width();\n }\n } else if (Number.isFinite(col.width())) {\n colDef.initialWidth = col.width();\n colDef.suppressAutoSize = true;\n }\n if (!col.resizable() || col.flexWidth() === 0) {\n colDef.suppressSizeToFit = true;\n colDef.suppressAutoSize = true;\n if (!col.resizable() && Number.isFinite(col.width())) {\n colDef.minWidth = col.width();\n colDef.maxWidth = col.width();\n }\n }\n }\n\n #getHeaderComponentParams(col: SkyDataGridColumn): object {\n return {\n headerHidden: col.headingHidden(),\n helpPopoverTitle: col.helpPopoverTitle(),\n helpPopoverContent: col.helpPopoverContent(),\n inlineHelpComponent: SkyDataGridColumnInlineHelp,\n };\n }\n\n #getRowIds(rows: (IRowNode | undefined)[] | null | undefined): string[] {\n return coerceArray(rows)\n .map((node) => node?.id as string)\n .filter(Boolean) as string[];\n }\n\n #hasFlexColumns(): boolean {\n return this.#columnDefs().some((col) => !!col.initialFlex);\n }\n\n #getAutoSizeStrategy(): AutoSizeStrategy | undefined {\n if (this.#hasFlexColumns()) {\n // Avoid the console warning if `autoSizeColumns` is called on a grid with flex columns, so skip it.\n return undefined;\n }\n return {\n type: 'fitCellContents',\n skipHeader: true,\n scaleUpToFitGridWidth: this.columnFit() === 'container',\n };\n }\n\n #getRowSelection(): RowSelectionOptions<SkyDataGridRowData> {\n return this.multiselect()\n ? {\n checkboxes: true,\n checkboxLocation: 'selectionColumn',\n headerCheckbox: true,\n mode: 'multiRow',\n }\n : { checkboxes: false, mode: 'singleRow' };\n }\n}\n","<sky-wait [isWaiting]=\"!gridReady()\" />\n@if (gridOptions(); as gridOptions) {\n <sky-ag-grid-wrapper [compact]=\"compact()\" [minHeight]=\"minHeight()\">\n <ag-grid-angular\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [skyViewkeeper]=\"skyViewkeeper()\"\n [gridOptions]=\"gridOptions\"\n />\n </sky-ag-grid-wrapper>\n\n @if (pageCount() && pageSize(); as pageSize) {\n <sky-paging\n [currentPage]=\"page()\"\n [itemCount]=\"pageItemsCount()\"\n [pageSize]=\"pageSize\"\n (currentPageChange)=\"currentPageChange($event)\"\n />\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-data-grid.mjs","sources":["../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid-column.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid-column-inline-help.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid-event-utils.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid.ts","../../../../../libs/components/data-grid/src/lib/modules/data-grid/data-grid.html","../../../../../libs/components/data-grid/src/skyux-data-grid.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n numberAttribute,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\n\n/**\n * Defines a single column in a `SkyDataGrid`. Add one `sky-data-grid-column` for each\n * column to render.\n * @preview\n */\n@Component({\n selector: 'sky-data-grid-column',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataGridColumn {\n /**\n * Whether the column is hidden.\n * @default false\n */\n public readonly columnHidden = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The unique ID for the column. You must provide either the `columnId` or `field` property\n * for every column, but do not provide both. Use `columnId` when the column does not map directly to a field\n * in the data set.\n */\n public readonly columnId = input<string>();\n\n /**\n * The data type of the column used for sorting and rendering when a template is not provided.\n * @default 'text'\n */\n public readonly dataType = input<'text' | 'number' | 'date' | 'boolean'>(\n 'text',\n );\n\n /**\n * The property to retrieve cell information from an entry on the grid `data` array.\n * You must provide either the `columnId` or `field` property for every column,\n * but do not provide both. When a column maps directly to a property on the data,\n * use `field`; the column's ID defaults to the `field` value.\n */\n public readonly field = input<string>();\n\n /**\n * When set, `flexWidth` takes precedence over `width` for sizing and works like\n * [CSS flex-grow](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow), where a column\n * with `flexWidth=\"2\"` is twice the width of a column with `flexWidth=\"1\"`, and `flexWidth=\"0\"` does not auto-expand.\n * If `width` is also set, it acts as the column's minimum width.\n */\n public readonly flexWidth = input<number | undefined, unknown>(undefined, {\n transform: (value) => numberAttribute(value, undefined),\n });\n\n /**\n * Text to display in the column header.\n * @required\n */\n public readonly headingText = input.required<string>();\n\n /**\n * Whether to visually hide `headingText` while keeping it available to\n * assistive technologies. The header cell still renders, so its sorting and\n * resizing controls remain available.\n * @default false\n */\n public readonly headingHidden = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n public readonly helpPopoverTitle = input<string>();\n\n /**\n * The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the column header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title.\n */\n public readonly helpPopoverContent = input<string | TemplateRef<unknown>>();\n\n /**\n * Whether the column is locked. The intent is to display locked columns first\n * on the left side of the grid. If set to `true`, then users cannot drag the column\n * to another position or drag other columns before it.\n * @default false\n */\n public readonly locked = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * Whether the column can be resized by dragging the column header border.\n * @default true\n */\n public readonly resizable = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /**\n * Whether the column sorts the grid when users click the column header.\n * @default true\n */\n public readonly sortable = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /**\n * The template for a column. This can be assigned as a reference\n * to the `template` input, or it can be assigned as an `<ng-template>` child\n * of the `sky-data-grid-column` component. The template has access to the `value` variable,\n * which contains the value passed to the column, and the `row` variable, which contains\n * the entire row data.\n */\n public readonly template = input<TemplateRef<unknown>>();\n\n /**\n * The width of the column in pixels. Used as the column's initial width; the\n * column can still be resized and is included when columns are sized to fit\n * the grid's width. When `flexWidth` is also set, `width` instead acts as the\n * column's minimum width. When no width is set, the column width is evenly distributed.\n */\n public readonly width = input<number | undefined, unknown>(undefined, {\n transform: (value) => numberAttribute(value, undefined),\n });\n\n /**\n * Whether text in this column should wrap to multiple lines.\n * @default false\n */\n public readonly wrapText = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n protected readonly templateChild = contentChild(TemplateRef);\n\n constructor() {\n const logger = inject(SkyLogService);\n afterRenderEffect(() => {\n const columnId = this.columnId();\n const field = this.field();\n if (columnId && field) {\n logger.warn(\n `A <sky-data-grid-column> should have either a columnId or a field, but not both.`,\n );\n }\n if (!columnId && !field) {\n logger.warn(\n `A <sky-data-grid-column> must have a columnId or a field.`,\n );\n }\n });\n }\n\n /**\n * @internal\n */\n protected readonly cellTemplate = computed<TemplateRef<unknown> | undefined>(\n () => {\n const template = this.template();\n const templateChild = this.templateChild();\n return template || templateChild;\n },\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { SkyAgGridHeaderInfo } from '@skyux/ag-grid';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-data-grid-column-inline-help',\n imports: [SkyHelpInlineModule],\n template: `@if (showHelpInline()) {\n <sky-help-inline\n [popoverTitle]=\"helpPopoverTitle()\"\n [popoverContent]=\"helpPopoverContent()\"\n />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataGridColumnInlineHelp {\n protected readonly info = inject(SkyAgGridHeaderInfo);\n\n protected readonly showHelpInline = computed(\n () => !!this.helpPopoverContent(),\n );\n\n protected readonly helpPopoverTitle = computed(\n () => this.#headerComponentParams()?.helpPopoverTitle,\n );\n\n protected readonly helpPopoverContent = computed(\n () => this.#headerComponentParams()?.helpPopoverContent,\n );\n\n readonly #headerComponentParams = computed(\n () => this.info.column?.getColDef().headerComponentParams,\n );\n}\n","import {\n AgEventListener,\n AgEventTypeParams,\n AgPublicEventType,\n GridApi,\n} from 'ag-grid-community';\nimport { Observable } from 'rxjs';\n\n/**\n * @internal\n */\nexport function fromGridEvent<\n TEventType extends AgPublicEventType,\n TData = unknown,\n TContext = unknown,\n>(\n target: Pick<\n GridApi,\n 'addEventListener' | 'removeEventListener' | 'isDestroyed'\n >,\n eventType: TEventType,\n): Observable<AgEventTypeParams<TData, TContext>[TEventType]> {\n return new Observable<AgEventTypeParams<TData, TContext>[TEventType]>(\n (subscriber) => {\n const handler: AgEventListener<TData, TContext, TEventType> = (\n event: AgEventTypeParams<TData, TContext>[TEventType],\n ): void => subscriber.next(event);\n target.addEventListener(eventType, handler);\n\n return () => {\n if (!target.isDestroyed || !target.isDestroyed()) {\n target.removeEventListener(eventType, handler);\n }\n };\n },\n );\n}\n","import {\n coerceArray,\n coerceBooleanProperty,\n coerceNumberProperty,\n coerceStringArray,\n} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n Signal,\n signal,\n TemplateRef,\n untracked,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n toObservable,\n toSignal,\n} from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SkyAgGridModule, SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport { SkyLogService, SkyViewkeeperModule } from '@skyux/core';\nimport { SkyWaitModule } from '@skyux/indicators';\nimport { SkyPagingModule } from '@skyux/lists';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AutoSizeStrategy,\n CellStyleModule,\n ClientSideRowModelApiModule,\n ClientSideRowModelModule,\n ColDef,\n ColumnApiModule,\n ColumnAutoSizeModule,\n EventApiModule,\n GridApi,\n GridOptions,\n GridStateModule,\n IRowNode,\n ModuleRegistry,\n PaginationModule,\n RenderApiModule,\n RowApiModule,\n RowAutoHeightModule,\n RowSelectionModule,\n RowSelectionOptions,\n RowStyleModule,\n ValidationModule,\n} from 'ag-grid-community';\nimport {\n filter,\n map,\n ObservableInput,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs';\n\nimport { SkyDataGridRowData } from '../types/data-grid-row-data';\nimport { SkyDataGridSort } from '../types/data-grid-sort';\n\nimport { SkyDataGridColumn } from './data-grid-column';\nimport { SkyDataGridColumnInlineHelp } from './data-grid-column-inline-help';\nimport { fromGridEvent } from './data-grid-event-utils';\n\n// Register only the AG Grid community modules this component actually uses,\n// rather than `AllCommunityModule`, to keep the consumer's bundle lean. This\n// covers the client-side row model, sorting, pagination, row selection, cell\n// and row styling, column auto-sizing, auto-height (text wrap), the grid/column\n// state and event APIs the component and its harness rely on, and dev-time\n// validation messaging.\nModuleRegistry.registerModules([\n CellStyleModule,\n ClientSideRowModelApiModule,\n ClientSideRowModelModule,\n ColumnApiModule,\n ColumnAutoSizeModule,\n EventApiModule,\n GridStateModule,\n PaginationModule,\n RenderApiModule,\n RowApiModule,\n RowAutoHeightModule,\n RowSelectionModule,\n RowStyleModule,\n ValidationModule,\n]);\n\nfunction arraySorted(arr: string[]): string[] {\n return arr.slice().sort((a, b) => a.localeCompare(b));\n}\n\n/**\n * Displays tabular data in a grid using a declarative set of columns and inputs.\n * Provide the `data` array and one `sky-data-grid-column` for each column to render.\n * @preview\n */\n@Component({\n selector: 'sky-data-grid',\n imports: [\n AgGridAngular,\n SkyAgGridModule,\n SkyPagingModule,\n SkyViewkeeperModule,\n SkyWaitModule,\n ],\n templateUrl: './data-grid.html',\n styleUrl: './data-grid.css',\n host: {\n '[class.sky-margin-stacked-lg]': 'stacked()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataGrid {\n /**\n * Whether the grid sorts the data order when a column header is clicked.\n * When `autoSort` is set to `false`, the data grid will not modify the sort\n * order, `sort` will emit a new value, and `data` will need to be updated.\n * Use this option when the data is returned from the server already sorted,\n * such as sorting a \"name\" column using last name.\n * @default true\n */\n public readonly autoSort = input<boolean, unknown>(true, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Whether the items in `data` represent the full result set used for paging.\n * This applies only when `pageSize` is greater than zero. When `true` (the\n * default), the grid pages through `data` on the client. When `false`, the\n * `rowCount` input is required to size the paging controls, and `data` should\n * be updated to the rows for the current page whenever `page` emits a new\n * value (server-side paging).\n * @default true\n */\n public readonly autoPage = input<boolean, unknown>(true, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * How the grid columns are sized. The valid options are `container`, which\n * attempts to fit the grid to the parent's full width, and `content`, which\n * attempts to optimize columns to display their contents and may exceed the\n * parent's width. If the grid does not have enough columns to fill\n * the parent's width, it always stretches to the parent's full width.\n * This property is applied when the grid initializes; changes after\n * initialization are not reflected.\n * @default 'container'\n */\n public readonly columnFit = input<'container' | 'content'>('container');\n\n /**\n * Whether to enable a compact layout for the grid when using modern theme. Compact layout\n * uses a smaller font size and row height to display more data in a smaller space.\n * @default false\n */\n public readonly compact = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The data for the grid. Each item must implement `SkyDataGridRowData`, and other properties should map to a `field` of the grid columns.\n * When `data` is `null` or `undefined`, the grid will show a loading indicator, and when `data` is an empty array,\n * the grid will show a \"no rows\" message.\n */\n public readonly data = input<SkyDataGridRowData[] | null | undefined>();\n\n /**\n * The text to read to screen readers to describe the grid. This sets the `aria-label` attribute on the grid container.\n */\n public readonly labelText = input<string>();\n\n /**\n * Whether data is being loaded. When `loading` is true or when `data` is nullish,\n * the grid shows a waiting overlay and is not interactive.\n * @default false\n */\n public readonly loading = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The minimum height of the grid in pixels.\n * @default 50\n */\n public readonly minHeight = input<number, unknown>(50, {\n transform: (value: unknown) => coerceNumberProperty(value, 50),\n });\n\n /**\n * Whether to enable the multiselect feature to display a column of\n * checkboxes on the left side of the grid.\n * @default false\n */\n public readonly multiselect = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The number of items to display per page. Setting a value greater than zero\n * enables paging. When `autoPage` is `true` (the default), the grid pages\n * through `data` on the client; when `autoPage` is `false`, set `rowCount` to\n * the total number of rows and update `data` as `page` changes.\n */\n public readonly pageSize = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) => coerceNumberProperty(value, undefined),\n });\n\n /**\n * The query parameter name that stores the current page number.\n * When set, the grid syncs page changes to the URL for deep linking, and there should only be one grid on the page.\n */\n public readonly pageQueryParam = input<string | undefined>();\n\n /**\n * The total number of rows to page through, used to calculate how many pages\n * the paging controls display. Required when `pageSize` is greater than zero\n * and `autoPage` is `false`; ignored when `autoPage` is `true` because the\n * length of `data` is used instead.\n */\n public readonly rowCount = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) => {\n if (typeof value === 'undefined') {\n return undefined;\n }\n return coerceNumberProperty(value, undefined);\n },\n });\n\n /**\n * Whether the data grid is stacked with another element below it. When specified, the appropriate\n * vertical spacing is automatically added to the data grid.\n * @default false\n */\n public readonly stacked = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Whether to move the horizontal scrollbar to just below the header row.\n * This property is applied when the grid initializes; changes after\n * initialization are not reflected.\n * @default false\n */\n public readonly topScrollEnabled = input<boolean, unknown>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * The current page number of the grid when `pageSize` has been set. This is two-way bindable:\n * it updates as the user navigates pages, and you can set it to change the current page.\n * When `autoPage` is `false`, update `data` to the rows for the new page whenever this changes.\n * @default 1\n */\n public readonly page = model<number>(1);\n\n /**\n * The set of IDs for the rows to select in a multiselect grid.\n * Rows with IDs that are not included are de-selected in the grid. This is two-way bindable:\n * it emits the updated set of IDs when the user changes the selection.\n * @default []\n */\n public readonly selectedRowIds = model<string[]>([]);\n\n /**\n * The current sort applied to the grid. This is two-way bindable: it emits a new value\n * whenever the user sorts a column, and you can set it to sort the grid programmatically.\n * When `autoSort` is `false`, the grid emits the new value here but does not reorder the\n * data itself, leaving it to you to update `data`.\n */\n public readonly sort = model<SkyDataGridSort | undefined>(undefined);\n\n protected readonly columns = contentChildren(SkyDataGridColumn);\n protected readonly gridApi = signal<GridApi<SkyDataGridRowData> | undefined>(\n undefined,\n );\n protected readonly gridOptions = computed(() => {\n const hasColumnDefs = this.#hasColumnDefs();\n if (!hasColumnDefs) {\n return undefined;\n }\n const columnDefs = untracked(() => this.#columnDefs());\n const { pagination, paginationPageSize } = untracked(() =>\n this.#paginationOptions(),\n );\n const rowData = untracked(() => this.rowData());\n // Seed the initial sort through AG Grid's own state so it is applied as the\n // grid initializes (and re-applied when the grid is recreated). Subsequent\n // sort changes are applied at runtime by the dedicated `sort` effect.\n const sort = untracked(() => this.sort());\n return this.#gridService.getGridOptions({\n gridOptions: {\n columnDefs,\n context: {\n enableTopScroll: untracked(() => this.topScrollEnabled()),\n },\n domLayout: 'autoHeight',\n initialState: sort\n ? {\n sort: {\n sortModel: [\n { colId: sort.field as string, sort: sort.direction },\n ],\n },\n }\n : undefined,\n loading: untracked(() => this.loading() || !Array.isArray(this.data())),\n onGridReady: (args) => {\n this.gridApi.set(args.api);\n this.gridReady.set(true);\n },\n pagination,\n paginationPageSize,\n suppressMultiSort: true,\n suppressPaginationPanel: true,\n rowData,\n rowSelection: untracked(() => this.#getRowSelection()),\n autoSizeStrategy: untracked(() => this.#getAutoSizeStrategy()),\n },\n }) as GridOptions<SkyDataGridRowData>;\n });\n\n protected readonly gridReady = signal(false);\n protected readonly rowData = computed(() => {\n const rowData = this.data() ?? [];\n const pageSize = this.pageSize();\n if (!this.autoPage() && pageSize && rowData.length > pageSize) {\n this.#logger.warn(\n 'When using paging and `autoPage` is not enabled, the `data` input will be limited to the number of rows specified by `pageSize`. To display more rows, update the `data` input when the `page` changes.',\n );\n return rowData.slice(0, pageSize);\n }\n return rowData;\n });\n protected readonly pageCount = computed(() => {\n const dataLength = this.pageItemsCount();\n const pageSize = this.pageSize();\n const gridReady = this.gridReady();\n if (!gridReady || !pageSize) {\n return 0;\n }\n return Math.ceil(dataLength / pageSize);\n });\n protected readonly pageItemsCount = linkedSignal({\n source: () => {\n const pageSize = this.pageSize();\n const gridReady = this.gridReady();\n const rowCount = this.rowCount() ?? 0;\n if (!gridReady || !pageSize) {\n return 0;\n }\n const dataLength = this.rowData().length;\n const autoPage = this.autoPage();\n return autoPage ? dataLength : rowCount;\n },\n computation: (source, previous): number => {\n // Avoid flickering the pagination controls while data is updating.\n if (this.loading()) {\n return previous?.value || 0;\n }\n return source;\n },\n });\n\n protected readonly skyViewkeeper = computed(() => {\n // Only used when not using SkyDataManagerService because data manager handles SkyViewkeeper.\n const classes = ['.ag-header'];\n if (this.topScrollEnabled()) {\n classes.push('.ag-body-horizontal-scroll');\n }\n return classes;\n });\n\n readonly #activatedRoute = inject(ActivatedRoute, { optional: true });\n readonly #gridService = inject(SkyAgGridService);\n readonly #logger = inject(SkyLogService);\n readonly #router = inject(Router, { optional: true });\n\n readonly #columnDefs = computed<ColDef<SkyDataGridRowData>[]>(() => {\n const columns = this.columns();\n return columns.map((col) => this.#createColDef(col));\n });\n readonly #hasColumnDefs = computed(() => this.#columnDefs().length > 0);\n\n readonly #gridDestroyed = toObservable(this.gridApi).pipe(\n filter(Boolean),\n switchMap((api) => fromGridEvent(api, 'gridPreDestroyed')),\n );\n readonly #gridSelectedRowIds = toObservable(this.gridApi).pipe(\n filter(Boolean),\n switchMap((api) =>\n fromGridEvent(api, 'selectionChanged').pipe(\n takeUntil(this.#gridDestroyed),\n map(() => arraySorted(this.#getRowIds(api.getSelectedNodes()))),\n ),\n ),\n );\n readonly #gridSortChange = toObservable(this.gridApi).pipe(\n filter(Boolean),\n switchMap((api) =>\n fromGridEvent(api, 'sortChanged').pipe(\n takeUntil(this.#gridDestroyed),\n map((sortEvent): SkyDataGridSort | undefined => {\n const sortColumn = sortEvent?.columns?.find((col) => !!col.getSort());\n if (sortColumn) {\n return {\n direction: sortColumn.getSort() as 'asc' | 'desc',\n field: sortColumn.getColId(),\n };\n }\n return undefined;\n }),\n ),\n ),\n );\n /**\n * The pagination options passed to AG Grid; not used when `autoPage` is false.\n */\n readonly #paginationOptions = computed(() => {\n const pageSize = this.pageSize();\n const pagination = this.autoPage() && !!pageSize;\n const paginationPageSize = (pagination && pageSize) || undefined;\n return {\n pagination,\n paginationPageSize,\n };\n });\n readonly #queryParamPage = toSignal(\n toObservable(this.pageQueryParam).pipe(\n switchMap((pageQueryParam): ObservableInput<number> =>\n pageQueryParam && this.#activatedRoute\n ? this.#activatedRoute.queryParamMap.pipe(\n startWith(this.#activatedRoute.snapshot.queryParamMap),\n map((params) =>\n coerceNumberProperty(params.get(pageQueryParam), 1),\n ),\n )\n : [],\n ),\n ),\n { initialValue: NaN },\n );\n\n constructor() {\n // Update specific grid options after the grid has been loaded. These read\n // `gridApi` untracked because a recreated grid rebuilds its options from the\n // `gridOptions` computed; the selection and page effects below instead track\n // `gridApi` so they re-apply their state to a freshly created grid.\n effect(() => {\n const api = untracked(() => this.gridApi());\n const columnDefs = this.#columnDefs();\n api?.setGridOption('columnDefs', columnDefs);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const isLoading = this.loading() || !Array.isArray(this.data());\n api?.setGridOption('loading', isLoading);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const { pagination, paginationPageSize } = this.#paginationOptions();\n api?.setGridOption('pagination', pagination);\n api?.setGridOption('paginationPageSize', paginationPageSize);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const rowData = this.rowData();\n api?.setGridOption('rowData', rowData);\n });\n effect(() => {\n const api = untracked(() => this.gridApi());\n const rowSelection = this.#getRowSelection();\n api?.setGridOption('rowSelection', rowSelection);\n });\n\n // Apply inputs once the grid is loaded and on subsequent changes.\n effect(() => {\n const api = this.gridApi();\n const isLoading = this.loading() || !Array.isArray(this.data());\n // Don't reconcile selection while data is still loading; pruning here\n // would wipe a selection a consumer set before the rows arrived.\n // An empty array is \"loaded but no rows\", so only `null`/`undefined` skip.\n if (isLoading) {\n return;\n }\n const validRowIds = new Set(this.rowData().map((row) => row.id));\n const selectedRowIds = coerceStringArray(this.selectedRowIds());\n const validSelectedRowIds = selectedRowIds.filter((id) =>\n validRowIds.has(id),\n );\n if (\n this.autoPage() &&\n validSelectedRowIds.length !== selectedRowIds.length\n ) {\n this.selectedRowIds.set(validSelectedRowIds);\n }\n if (!api) {\n return;\n }\n // Diff against the grid's current selection; only touch nodes that\n // change, so a no-op reconcile fires no selectionChanged event.\n const desired = new Set(validSelectedRowIds);\n const selectedNodes = api.getSelectedNodes();\n const alreadySelected = new Set(this.#getRowIds(selectedNodes));\n const toDeselect = selectedNodes.filter(\n (node) => !desired.has(node.id as string),\n );\n const toSelect = validSelectedRowIds\n .filter((id) => !alreadySelected.has(id))\n .map((id) => api.getRowNode(id))\n .filter((node): node is IRowNode<SkyDataGridRowData> => !!node);\n if (toDeselect.length) {\n api.setNodesSelected({ nodes: toDeselect, newValue: false });\n }\n if (toSelect.length) {\n api.setNodesSelected({ nodes: toSelect, newValue: true });\n }\n });\n // Apply the sort as runtime column state rather than through `columnDefs`,\n // so sorting never re-applies the declared column order and wipes a\n // user's drag-reordered (or resized) columns. Tracks `gridApi` so the\n // sort re-applies to a freshly created grid.\n effect(() => {\n const api = this.gridApi();\n const sort = this.sort();\n if (!api) {\n return;\n }\n api.applyColumnState({\n state: sort\n ? [\n {\n colId: sort.field as string,\n sort: sort.direction,\n },\n ]\n : [],\n defaultState: { sort: null },\n });\n });\n effect(() => {\n const api = this.gridApi();\n const page = this.page();\n const pageCount = this.pageCount();\n if (!pageCount || !api) {\n return;\n }\n if (page < 1) {\n this.currentPageChange(1);\n } else if (page > pageCount) {\n this.currentPageChange(pageCount);\n } else if (untracked(this.autoPage)) {\n api.paginationGoToPage(page - 1);\n }\n });\n // Sync `page` to the URL query parameter when it changes, e.g. when set\n // programmatically rather than through the paging controls (which\n // already navigate directly). Tracks only `page` itself, not `gridApi`/\n // `pageCount`, so a grid becoming ready does not push a `page` value\n // that is still stale from an in-flight URL change onto the URL. Only\n // syncs valid page numbers; out-of-range values are corrected by the\n // effect above instead of being reflected in the URL.\n effect(() => {\n const page = this.page();\n if (Number.isInteger(page) && page >= 1) {\n this.#syncPageQueryParam(page);\n }\n });\n\n effect(() => {\n const api = this.gridApi();\n const label = this.labelText();\n api?.setGridAriaProperty('label', label ?? null);\n });\n\n // Sync page from URL query parameter.\n effect(() => {\n const queryParamPage = this.#queryParamPage();\n const pageSize = this.pageSize();\n if (pageSize && Number.isInteger(queryParamPage)) {\n this.page.set(queryParamPage);\n }\n });\n\n // Warn when server-side paging is configured without the required\n // `rowCount`. Without it, `pageItemsCount` resolves to zero and the paging\n // controls silently disappear. Only warn once data has loaded so a grid\n // that is still fetching its first page does not trigger a false positive.\n effect(() => {\n if (\n !this.autoPage() &&\n this.pageSize() &&\n this.rowCount() === undefined &&\n !this.loading() &&\n Array.isArray(this.data())\n ) {\n this.#logger.warn(\n 'When using paging and `autoPage` is not enabled, the `rowCount` input is required so the paging controls know how many pages to display. Set `rowCount` to the total number of rows available on the server.',\n );\n }\n });\n\n // Warn when `pageQueryParam` is configured without a `Router` and\n // `ActivatedRoute` available for injection. Without them, page changes\n // fall back to updating the `page` model directly instead of the URL.\n effect(() => {\n if (this.pageQueryParam() && (!this.#router || !this.#activatedRoute)) {\n this.#logger.warn(\n 'The `pageQueryParam` input is set, but a `Router` and `ActivatedRoute` are not available for injection. Page changes will not be reflected in the URL.',\n );\n }\n });\n\n this.#gridDestroyed.pipe(takeUntilDestroyed()).subscribe(() => {\n this.gridApi.set(undefined);\n this.gridReady.set(false);\n });\n\n // Emit updates from the grid.\n this.#gridSelectedRowIds\n .pipe(\n takeUntilDestroyed(),\n map((ids) => coerceStringArray(ids)),\n )\n .subscribe((selectedRowIds) => {\n // Maintain IDs not in the current dataset.\n const validRowIds = new Set(this.rowData().map(({ id }) => id));\n const selectedSet = new Set(selectedRowIds);\n this.selectedRowIds.update((val) => {\n const valSet = new Set(val);\n const hasAddition = selectedRowIds.some((id) => !valSet.has(id));\n const hasRemoval = val.some(\n (id) => validRowIds.has(id) && !selectedSet.has(id),\n );\n if (hasAddition || hasRemoval) {\n return [\n ...new Set([\n ...val.filter((id) => !validRowIds.has(id)),\n ...selectedRowIds,\n ]),\n ].sort((a, b) => a.localeCompare(b));\n }\n return val;\n });\n });\n this.#gridSortChange.pipe(takeUntilDestroyed()).subscribe((sortChange) => {\n if (sortChange) {\n this.sort.update((sort) => {\n if (\n !!sort !== !!sortChange ||\n sort?.direction !== sortChange?.direction ||\n sort?.field !== sortChange?.field\n ) {\n return sortChange;\n }\n return sort;\n });\n } else {\n // Clear the sort when the grid no longer has a sorted column so the\n // two-way bound model does not retain a stale value.\n this.sort.update(() => undefined);\n }\n });\n }\n\n protected currentPageChange(page: number): void {\n if (page && page !== this.page()) {\n const pageQueryParam = this.pageQueryParam();\n if (pageQueryParam && this.#router && this.#activatedRoute) {\n // When using a query parameter, send the change through the router.\n this.#navigateToPageQueryParam(pageQueryParam, page);\n } else {\n this.page.set(page);\n }\n }\n }\n\n /**\n * Updates the URL to reflect a programmatic page change so deep linking stays\n * in sync when a consumer drives `page` directly instead of using the paging\n * controls. Reads untracked so it does not add reactive dependencies to the\n * effect that calls it.\n */\n #syncPageQueryParam(page: number): void {\n const pageQueryParam = untracked(this.pageQueryParam);\n if (pageQueryParam && untracked(this.#queryParamPage) !== page) {\n this.#navigateToPageQueryParam(pageQueryParam, page);\n }\n }\n\n #navigateToPageQueryParam(pageQueryParam: string, page: number): void {\n void this.#router?.navigate([], {\n relativeTo: this.#activatedRoute,\n queryParams: {\n [pageQueryParam]: page === 1 ? null : page,\n },\n queryParamsHandling: 'merge',\n });\n }\n\n #createColDef(col: SkyDataGridColumn): ColDef {\n const field = col.field();\n const colDef: ColDef = {\n colId: col.columnId(),\n field,\n headerName: col.headingText(),\n headerComponentParams: this.#getHeaderComponentParams(col),\n hide: col.columnHidden(),\n initialHide: col.columnHidden(),\n resizable: col.resizable(),\n sortable: col.sortable(),\n lockPosition: col.locked(),\n suppressMovable: col.locked(),\n type: [],\n autoHeight: col.wrapText(),\n wrapText: col.wrapText(),\n };\n if (col.dataType() === 'date') {\n (colDef.type as string[]).push(SkyCellType.Date);\n colDef.cellDataType = 'dateString';\n } else if (field && col.dataType() === 'number') {\n (colDef.type as string[]).push(SkyCellType.Number);\n colDef.cellDataType = 'number';\n colDef.valueGetter = (params): number | null => {\n const n = Number(params.data?.[field]);\n return Number.isFinite(n) ? n : null;\n };\n } else if (col.dataType() === 'boolean') {\n colDef.cellDataType = 'boolean';\n } else {\n (colDef.type as string[]).push(SkyCellType.Text);\n colDef.cellDataType = 'text';\n }\n const colWithTemplate = col as unknown as {\n cellTemplate: Signal<TemplateRef<unknown> | undefined>;\n };\n if (colWithTemplate.cellTemplate()) {\n (colDef.type as string[]).push(SkyCellType.Template);\n colDef.cellRendererParams = { template: colWithTemplate.cellTemplate };\n }\n if (!this.autoSort()) {\n colDef.comparator = (): number => 0;\n }\n this.#applyColumnWidthSettings(col, colDef);\n return colDef;\n }\n\n #applyColumnWidthSettings(col: SkyDataGridColumn, colDef: ColDef): void {\n if (Number.isFinite(col.flexWidth())) {\n colDef.flex = col.flexWidth();\n colDef.initialFlex = col.flexWidth();\n if (Number.isFinite(col.width())) {\n colDef.minWidth = col.width();\n }\n } else if (Number.isFinite(col.width())) {\n colDef.initialWidth = col.width();\n colDef.suppressAutoSize = true;\n }\n if (!col.resizable() || col.flexWidth() === 0) {\n colDef.suppressSizeToFit = true;\n colDef.suppressAutoSize = true;\n if (!col.resizable() && Number.isFinite(col.width())) {\n colDef.minWidth = col.width();\n colDef.maxWidth = col.width();\n }\n }\n }\n\n #getHeaderComponentParams(col: SkyDataGridColumn): object {\n return {\n headerHidden: col.headingHidden(),\n helpPopoverTitle: col.helpPopoverTitle(),\n helpPopoverContent: col.helpPopoverContent(),\n inlineHelpComponent: SkyDataGridColumnInlineHelp,\n };\n }\n\n #getRowIds(rows: (IRowNode | undefined)[] | null | undefined): string[] {\n return coerceArray(rows)\n .map((node) => node?.id as string)\n .filter(Boolean) as string[];\n }\n\n #hasFlexColumns(): boolean {\n return this.#columnDefs().some((col) => !!col.initialFlex);\n }\n\n #getAutoSizeStrategy(): AutoSizeStrategy | undefined {\n if (this.#hasFlexColumns()) {\n // Avoid the console warning if `autoSizeColumns` is called on a grid with flex columns, so skip it.\n return undefined;\n }\n return {\n type: 'fitCellContents',\n skipHeader: true,\n scaleUpToFitGridWidth: this.columnFit() === 'container',\n };\n }\n\n #getRowSelection(): RowSelectionOptions<SkyDataGridRowData> {\n return this.multiselect()\n ? {\n checkboxes: true,\n checkboxLocation: 'selectionColumn',\n headerCheckbox: true,\n mode: 'multiRow',\n }\n : { checkboxes: false, mode: 'singleRow' };\n }\n}\n","<sky-wait [isWaiting]=\"!gridReady()\" />\n@if (gridOptions(); as gridOptions) {\n <sky-ag-grid-wrapper [compact]=\"compact()\" [minHeight]=\"minHeight()\">\n <ag-grid-angular\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [skyViewkeeper]=\"skyViewkeeper()\"\n [gridOptions]=\"gridOptions\"\n />\n </sky-ag-grid-wrapper>\n\n @if (pageCount() && pageSize(); as pageSize) {\n <sky-paging\n [currentPage]=\"page()\"\n [itemCount]=\"pageItemsCount()\"\n [pageSize]=\"pageSize\"\n (currentPageChange)=\"currentPageChange($event)\"\n />\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;AAcA;;;;AAIG;MAMU,iBAAiB,CAAA;AA8H5B,IAAA,WAAA,GAAA;AA7HA;;;AAGG;QACa,IAAA,CAAA,YAAY,GAAG,KAAK,CAAmB,KAAK,oFAC1D,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEF;;;;AAIG;AACa,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK;gGAAU;AAE1C;;;AAGG;QACa,IAAA,CAAA,QAAQ,GAAG,KAAK,CAC9B,MAAM;qFACP;AAED;;;;;AAKG;AACa,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;6FAAU;AAEvC;;;;;AAKG;AACa,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAA8B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EACtE,SAAS,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,GACvD;AAEF;;;AAGG;QACa,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ;wFAAU;AAEtD;;;;;AAKG;QACa,IAAA,CAAA,aAAa,GAAG,KAAK,CAAmB,KAAK,qFAC3D,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEF;;;AAGG;AACa,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK;wGAAU;AAElD;;;;AAIG;AACa,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK;0GAAiC;AAE3E;;;;;AAKG;QACa,IAAA,CAAA,MAAM,GAAG,KAAK,CAAmB,KAAK,8EACpD,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEF;;;AAGG;QACa,IAAA,CAAA,SAAS,GAAG,KAAK,CAAmB,IAAI,iFACtD,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEF;;;AAGG;QACa,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,IAAI,gFACrD,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEF;;;;;;AAMG;AACa,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK;gGAAwB;AAExD;;;;;AAKG;AACa,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA8B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,CAAA,EAClE,SAAS,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,GACvD;AAEF;;;AAGG;QACa,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,KAAK,gFACtD,SAAS,EAAE,gBAAgB,EAAA,CAC3B;QAEiB,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,WAAW;0FAAC;AAoB5D;;AAEG;AACgB,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CACxC,MAAK;AACH,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;YAC1C,OAAO,QAAQ,IAAI,aAAa;QAClC,CAAC;yFACF;AA1BC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;QACpC,iBAAiB,CAAC,MAAK;AACrB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;AACrB,gBAAA,MAAM,CAAC,IAAI,CACT,CAAA,gFAAA,CAAkF,CACnF;YACH;AACA,YAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE;AACvB,gBAAA,MAAM,CAAC,IAAI,CACT,CAAA,yDAAA,CAA2D,CAC5D;YACH;AACF,QAAA,CAAC,CAAC;IACJ;8GA9IW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4HoB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/HjD,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;2kDA6HiD,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC3I7D;;AAEG;MAYU,2BAA2B,CAAA;AAXxC,IAAA,WAAA,GAAA;AAYqB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAElC,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE;2FAClC;QAEkB,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAC5C,MAAM,IAAI,CAAC,sBAAsB,EAAE,EAAE,gBAAgB;6FACtD;QAEkB,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAC9C,MAAM,IAAI,CAAC,sBAAsB,EAAE,EAAE,kBAAkB;+FACxD;AAEQ,QAAA,IAAA,CAAA,sBAAsB,GAAG,QAAQ,CACxC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,qBAAqB;mGAC1D;AACF,IAAA;AAHU,IAAA,sBAAsB;8GAfpB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAR5B,CAAA;;;;;AAKR,GAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EANQ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASlB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAXvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;oBAC5C,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC9B,oBAAA,QAAQ,EAAE,CAAA;;;;;AAKR,GAAA,CAAA;oBACF,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACdD;;AAEG;AACG,SAAU,aAAa,CAK3B,MAGC,EACD,SAAqB,EAAA;AAErB,IAAA,OAAO,IAAI,UAAU,CACnB,CAAC,UAAU,KAAI;AACb,QAAA,MAAM,OAAO,GAAiD,CAC5D,KAAqD,KAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC;AAE3C,QAAA,OAAO,MAAK;YACV,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAChD,gBAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;YAChD;AACF,QAAA,CAAC;AACH,IAAA,CAAC,CACF;AACH;;ACoCA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,CAAC,eAAe,CAAC;IAC7B,eAAe;IACf,2BAA2B;IAC3B,wBAAwB;IACxB,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;AACjB,CAAA,CAAC;AAEF,SAAS,WAAW,CAAC,GAAa,EAAA;IAChC,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACvD;AAEA;;;;AAIG;MAiBU,WAAW,CAAA;AAoQb,IAAA,eAAe;AACf,IAAA,YAAY;AACZ,IAAA,OAAO;AACP,IAAA,OAAO;AAEP,IAAA,WAAW;AAIX,IAAA,cAAc;AAEd,IAAA,cAAc;AAId,IAAA,mBAAmB;AASnB,IAAA,eAAe;AAkBxB;;AAEG;AACM,IAAA,kBAAkB;AASlB,IAAA,eAAe;AAgBxB,IAAA,WAAA,GAAA;AAzUA;;;;;;;AAOG;QACa,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,IAAI,gFACrD,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;;;;AAQG;QACa,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAmB,IAAI,gFACrD,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;;;;;AASG;QACa,IAAA,CAAA,SAAS,GAAG,KAAK,CAA0B,WAAW;sFAAC;AAEvE;;;;AAIG;QACa,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmB,KAAK,+EACrD,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;AAIG;AACa,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAA2C;AAEvE;;AAEG;AACa,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK;iGAAU;AAE3C;;;;AAIG;QACa,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmB,KAAK,+EACrD,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;AAGG;AACa,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAkB,EAAE,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EACnD,SAAS,EAAE,CAAC,KAAc,KAAK,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,GAC9D;AAEF;;;;AAIG;QACa,IAAA,CAAA,WAAW,GAAG,KAAK,CAAmB,KAAK,mFACzD,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;AAKG;AACa,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA8B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACrE,SAAS,EAAE,CAAC,KAAc,KAAK,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,GACrE;AAEF;;;AAGG;AACa,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAAsB;AAE5D;;;;;AAKG;QACa,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA8B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACrE,SAAS,EAAE,CAAC,KAAc,KAAI;AAC5B,gBAAA,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AAChC,oBAAA,OAAO,SAAS;gBAClB;AACA,gBAAA,OAAO,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,YAAA,CAAC,GACD;AAEF;;;;AAIG;QACa,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmB,KAAK,+EACrD,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;AAKG;QACa,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAmB,KAAK,wFAC9D,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;AAKG;QACa,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,CAAC;iFAAC;AAEvC;;;;;AAKG;QACa,IAAA,CAAA,cAAc,GAAG,KAAK,CAAW,EAAE;2FAAC;AAEpD;;;;;AAKG;QACa,IAAA,CAAA,IAAI,GAAG,KAAK,CAA8B,SAAS;iFAAC;QAEjD,IAAA,CAAA,OAAO,GAAG,eAAe,CAAC,iBAAiB;oFAAC;QAC5C,IAAA,CAAA,OAAO,GAAG,MAAM,CACjC,SAAS;oFACV;AACkB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;YAC3C,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,OAAO,SAAS;YAClB;AACA,YAAA,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACtD,YAAA,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC,MACnD,IAAI,CAAC,kBAAkB,EAAE,CAC1B;AACD,YAAA,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;;;;AAI/C,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACzC,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;AACtC,gBAAA,WAAW,EAAE;oBACX,UAAU;AACV,oBAAA,OAAO,EAAE;wBACP,eAAe,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1D,qBAAA;AACD,oBAAA,SAAS,EAAE,YAAY;AACvB,oBAAA,YAAY,EAAE;AACZ,0BAAE;AACE,4BAAA,IAAI,EAAE;AACJ,gCAAA,SAAS,EAAE;oCACT,EAAE,KAAK,EAAE,IAAI,CAAC,KAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;AACtD,iCAAA;AACF,6BAAA;AACF;AACH,0BAAE,SAAS;oBACb,OAAO,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACvE,oBAAA,WAAW,EAAE,CAAC,IAAI,KAAI;wBACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,wBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1B,CAAC;oBACD,UAAU;oBACV,kBAAkB;AAClB,oBAAA,iBAAiB,EAAE,IAAI;AACvB,oBAAA,uBAAuB,EAAE,IAAI;oBAC7B,OAAO;oBACP,YAAY,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtD,gBAAgB,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/D,iBAAA;AACF,aAAA,CAAoC;QACvC,CAAC;wFAAC;QAEiB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK;sFAAC;AACzB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AACjC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,EAAE;AAC7D,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,yMAAyM,CAC1M;gBACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;YACnC;AACA,YAAA,OAAO,OAAO;QAChB,CAAC;oFAAC;AACiB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE;AACxC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAA,OAAO,CAAC;YACV;YACA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QACzC,CAAC;sFAAC;AACiB,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,CAAA,EAC9C,MAAM,EAAE,MAAK;AACX,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AACrC,gBAAA,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;AAC3B,oBAAA,OAAO,CAAC;gBACV;gBACA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;AACxC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;gBAChC,OAAO,QAAQ,GAAG,UAAU,GAAG,QAAQ;YACzC,CAAC;AACD,YAAA,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAY;;AAExC,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,oBAAA,OAAO,QAAQ,EAAE,KAAK,IAAI,CAAC;gBAC7B;AACA,gBAAA,OAAO,MAAM;AACf,YAAA,CAAC,GACD;AAEiB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;;AAE/C,YAAA,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC;AAC9B,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,gBAAA,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;YAC5C;AACA,YAAA,OAAO,OAAO;QAChB,CAAC;0FAAC;QAEO,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5D,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;QAC/B,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE5C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAA+B,MAAK;AACjE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC;wFAAC;AACO,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC;2FAAC;AAE9D,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,OAAO,CAAC,EACf,SAAS,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAC3D;QACQ,IAAA,CAAA,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5D,MAAM,CAAC,OAAO,CAAC,EACf,SAAS,CAAC,CAAC,GAAG,KACZ,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,IAAI,CACzC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAC9B,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAChE,CACF,CACF;AACQ,QAAA,IAAA,CAAA,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACxD,MAAM,CAAC,OAAO,CAAC,EACf,SAAS,CAAC,CAAC,GAAG,KACZ,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,IAAI,CACpC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAC9B,GAAG,CAAC,CAAC,SAAS,KAAiC;YAC7C,MAAM,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrE,IAAI,UAAU,EAAE;gBACd,OAAO;AACL,oBAAA,SAAS,EAAE,UAAU,CAAC,OAAO,EAAoB;AACjD,oBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;iBAC7B;YACH;AACA,YAAA,OAAO,SAAS;AAClB,QAAA,CAAC,CAAC,CACH,CACF,CACF;AACD;;AAEG;AACM,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ;YAChD,MAAM,kBAAkB,GAAG,CAAC,UAAU,IAAI,QAAQ,KAAK,SAAS;YAChE,OAAO;gBACL,UAAU;gBACV,kBAAkB;aACnB;QACH,CAAC;+FAAC;QACO,IAAA,CAAA,eAAe,GAAG,QAAQ,CACjC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CACpC,SAAS,CAAC,CAAC,cAAc,KACvB,cAAc,IAAI,IAAI,CAAC;AACrB,cAAE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CACrC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtD,GAAG,CAAC,CAAC,MAAM,KACT,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CACpD;cAEH,EAAE,CACP,CACF,EACD,EAAE,YAAY,EAAE,GAAG,EAAE,CACtB;;;;;QAOC,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;AACrC,YAAA,GAAG,EAAE,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC;AAC9C,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3C,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/D,YAAA,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;AAC1C,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpE,YAAA,GAAG,EAAE,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC;AAC5C,YAAA,GAAG,EAAE,aAAa,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;AAC9D,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC;AACxC,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC5C,YAAA,GAAG,EAAE,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC;AAClD,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;;;;YAI/D,IAAI,SAAS,EAAE;gBACb;YACF;YACA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AAC/D,YAAA,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,KACnD,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CACpB;YACD,IACE,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,mBAAmB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EACpD;AACA,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC9C;YACA,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;;;AAGA,YAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC;AAC5C,YAAA,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,EAAE;AAC5C,YAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CACrC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,CAAC,CAC1C;YACD,MAAM,QAAQ,GAAG;AACd,iBAAA,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,iBAAA,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;iBAC9B,MAAM,CAAC,CAAC,IAAI,KAA2C,CAAC,CAAC,IAAI,CAAC;AACjE,YAAA,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,gBAAA,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAC9D;AACA,YAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;AACnB,gBAAA,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC3D;AACF,QAAA,CAAC,CAAC;;;;;QAKF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;YACA,GAAG,CAAC,gBAAgB,CAAC;AACnB,gBAAA,KAAK,EAAE;AACL,sBAAE;AACE,wBAAA;4BACE,KAAK,EAAE,IAAI,CAAC,KAAe;4BAC3B,IAAI,EAAE,IAAI,CAAC,SAAS;AACrB,yBAAA;AACF;AACH,sBAAE,EAAE;AACN,gBAAA,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7B,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE;gBACtB;YACF;AACA,YAAA,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3B;AAAO,iBAAA,IAAI,IAAI,GAAG,SAAS,EAAE;AAC3B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACnC;AAAO,iBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACnC,gBAAA,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;YAClC;AACF,QAAA,CAAC,CAAC;;;;;;;;QAQF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAChC;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;YAC9B,GAAG,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;AAClD,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE;AAC7C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;YAC/B;AACF,QAAA,CAAC,CAAC;;;;;QAMF,MAAM,CAAC,MAAK;AACV,YAAA,IACE,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS;gBAC7B,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAC1B;AACA,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,8MAA8M,CAC/M;YACH;AACF,QAAA,CAAC,CAAC;;;;QAKF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;AACrE,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,wJAAwJ,CACzJ;YACH;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5D,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3B,QAAA,CAAC,CAAC;;AAGF,QAAA,IAAI,CAAC;AACF,aAAA,IAAI,CACH,kBAAkB,EAAE,EACpB,GAAG,CAAC,CAAC,GAAG,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAErC,aAAA,SAAS,CAAC,CAAC,cAAc,KAAI;;YAE5B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,YAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;AACjC,gBAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC3B,gBAAA,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChE,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CACzB,CAAC,EAAE,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CACpD;AACD,gBAAA,IAAI,WAAW,IAAI,UAAU,EAAE;oBAC7B,OAAO;wBACL,GAAG,IAAI,GAAG,CAAC;AACT,4BAAA,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3C,4BAAA,GAAG,cAAc;yBAClB,CAAC;AACH,qBAAA,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtC;AACA,gBAAA,OAAO,GAAG;AACZ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,KAAI;YACvE,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AACxB,oBAAA,IACE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU;AACvB,wBAAA,IAAI,EAAE,SAAS,KAAK,UAAU,EAAE,SAAS;AACzC,wBAAA,IAAI,EAAE,KAAK,KAAK,UAAU,EAAE,KAAK,EACjC;AACA,wBAAA,OAAO,UAAU;oBACnB;AACA,oBAAA,OAAO,IAAI;AACb,gBAAA,CAAC,CAAC;YACJ;iBAAO;;;gBAGL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC;YACnC;AACF,QAAA,CAAC,CAAC;IACJ;AAEU,IAAA,iBAAiB,CAAC,IAAY,EAAA;QACtC,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE;AAChC,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE;;AAE1D,gBAAA,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,IAAI,CAAC;YACtD;iBAAO;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACrB;QACF;IACF;AAEA;;;;;AAKG;AACH,IAAA,mBAAmB,CAAC,IAAY,EAAA;QAC9B,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;QACrD,IAAI,cAAc,IAAI,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;AAC9D,YAAA,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,IAAI,CAAC;QACtD;IACF;IAEA,yBAAyB,CAAC,cAAsB,EAAE,IAAY,EAAA;AAC5D,QAAA,KAAK,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC9B,UAAU,EAAE,IAAI,CAAC,eAAe;AAChC,YAAA,WAAW,EAAE;AACX,gBAAA,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI;AAC3C,aAAA;AACD,YAAA,mBAAmB,EAAE,OAAO;AAC7B,SAAA,CAAC;IACJ;AAEA,IAAA,aAAa,CAAC,GAAsB,EAAA;AAClC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE;AACzB,QAAA,MAAM,MAAM,GAAW;AACrB,YAAA,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;YACrB,KAAK;AACL,YAAA,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;AAC7B,YAAA,qBAAqB,EAAE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC;AAC1D,YAAA,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE;AACxB,YAAA,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE;AAC/B,YAAA,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;AAC1B,YAAA,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;AACxB,YAAA,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE;AAC1B,YAAA,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE;AAC1B,YAAA,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;SACzB;AACD,QAAA,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;YAC5B,MAAM,CAAC,IAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAChD,YAAA,MAAM,CAAC,YAAY,GAAG,YAAY;QACpC;aAAO,IAAI,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;YAC9C,MAAM,CAAC,IAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAClD,YAAA,MAAM,CAAC,YAAY,GAAG,QAAQ;AAC9B,YAAA,MAAM,CAAC,WAAW,GAAG,CAAC,MAAM,KAAmB;AAC7C,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AACtC,gBAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;AACtC,YAAA,CAAC;QACH;AAAO,aAAA,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE;AACvC,YAAA,MAAM,CAAC,YAAY,GAAG,SAAS;QACjC;aAAO;YACJ,MAAM,CAAC,IAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAChD,YAAA,MAAM,CAAC,YAAY,GAAG,MAAM;QAC9B;QACA,MAAM,eAAe,GAAG,GAEvB;AACD,QAAA,IAAI,eAAe,CAAC,YAAY,EAAE,EAAE;YACjC,MAAM,CAAC,IAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YACpD,MAAM,CAAC,kBAAkB,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE;QACxE;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,MAAM,CAAC,UAAU,GAAG,MAAc,CAAC;QACrC;AACA,QAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC;AAC3C,QAAA,OAAO,MAAM;IACf;IAEA,yBAAyB,CAAC,GAAsB,EAAE,MAAc,EAAA;QAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE;AAC7B,YAAA,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,EAAE;YACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE;AAChC,gBAAA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE;YAC/B;QACF;aAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE;AACvC,YAAA,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK,EAAE;AACjC,YAAA,MAAM,CAAC,gBAAgB,GAAG,IAAI;QAChC;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AAC7C,YAAA,MAAM,CAAC,iBAAiB,GAAG,IAAI;AAC/B,YAAA,MAAM,CAAC,gBAAgB,GAAG,IAAI;AAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE;AACpD,gBAAA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE;AAC7B,gBAAA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE;YAC/B;QACF;IACF;AAEA,IAAA,yBAAyB,CAAC,GAAsB,EAAA;QAC9C,OAAO;AACL,YAAA,YAAY,EAAE,GAAG,CAAC,aAAa,EAAE;AACjC,YAAA,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE;AACxC,YAAA,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,EAAE;AAC5C,YAAA,mBAAmB,EAAE,2BAA2B;SACjD;IACH;AAEA,IAAA,UAAU,CAAC,IAAiD,EAAA;QAC1D,OAAO,WAAW,CAAC,IAAI;aACpB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,EAAY;aAChC,MAAM,CAAC,OAAO,CAAa;IAChC;IAEA,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5D;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;;AAE1B,YAAA,OAAO,SAAS;QAClB;QACA,OAAO;AACL,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,qBAAqB,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,WAAW;SACxD;IACH;IAEA,gBAAgB,GAAA;QACd,OAAO,IAAI,CAAC,WAAW;AACrB,cAAE;AACE,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,gBAAgB,EAAE,iBAAiB;AACnC,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,IAAI,EAAE,UAAU;AACjB;cACD,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;IAC9C;8GAvrBW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EA+JuB,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvRhE,4lBAmBA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDwFI,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,+BAAA,EAAA,sCAAA,EAAA,uCAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,gCAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,uCAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,gCAAA,EAAA,qCAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,qCAAA,EAAA,aAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,GAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,mBAAmB,qJACnB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,GAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASJ,WAAW,EAAA,UAAA,EAAA,CAAA;kBAhBvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,OAAA,EAChB;wBACP,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,mBAAmB;wBACnB,aAAa;qBACd,EAAA,IAAA,EAGK;AACJ,wBAAA,+BAA+B,EAAE,WAAW;qBAC7C,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4lBAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA;03DAiKF,iBAAiB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEvRhE;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/data-grid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "15.0.0-alpha.1",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -16,15 +16,15 @@
|
|
|
16
16
|
},
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#readme",
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@angular/cdk": "^
|
|
20
|
-
"@angular/common": "^
|
|
21
|
-
"@angular/core": "^
|
|
22
|
-
"@angular/router": "^
|
|
23
|
-
"@skyux/ag-grid": "^
|
|
24
|
-
"@skyux/core": "^
|
|
25
|
-
"@skyux/help-inline": "^
|
|
26
|
-
"@skyux/indicators": "^
|
|
27
|
-
"@skyux/lists": "^
|
|
19
|
+
"@angular/cdk": "^22.0.4",
|
|
20
|
+
"@angular/common": "^22.0.6",
|
|
21
|
+
"@angular/core": "^22.0.6",
|
|
22
|
+
"@angular/router": "^22.0.6",
|
|
23
|
+
"@skyux/ag-grid": "^15.0.0-alpha.1",
|
|
24
|
+
"@skyux/core": "^15.0.0-alpha.1",
|
|
25
|
+
"@skyux/help-inline": "^15.0.0-alpha.1",
|
|
26
|
+
"@skyux/indicators": "^15.0.0-alpha.1",
|
|
27
|
+
"@skyux/lists": "^15.0.0-alpha.1",
|
|
28
28
|
"ag-grid-angular": "^35.1.0",
|
|
29
29
|
"ag-grid-community": "^35.1.0"
|
|
30
30
|
},
|