@toolbox-web/grid-angular 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +296 -16
  2. package/feature-registry-C-cKloXB.js +45 -0
  3. package/features/clipboard.d.ts +18 -0
  4. package/features/clipboard.d.ts.map +1 -0
  5. package/features/clipboard.js +3 -0
  6. package/features/column-virtualization.d.ts +16 -0
  7. package/features/column-virtualization.d.ts.map +1 -0
  8. package/features/column-virtualization.js +3 -0
  9. package/features/context-menu.d.ts +16 -0
  10. package/features/context-menu.d.ts.map +1 -0
  11. package/features/context-menu.js +3 -0
  12. package/features/editing.d.ts +16 -0
  13. package/features/editing.d.ts.map +1 -0
  14. package/features/editing.js +3 -0
  15. package/features/export.d.ts +17 -0
  16. package/features/export.d.ts.map +1 -0
  17. package/features/export.js +3 -0
  18. package/features/filtering.d.ts +17 -0
  19. package/features/filtering.d.ts.map +1 -0
  20. package/features/filtering.js +3 -0
  21. package/features/grouping-columns.d.ts +16 -0
  22. package/features/grouping-columns.d.ts.map +1 -0
  23. package/features/grouping-columns.js +3 -0
  24. package/features/grouping-rows.d.ts +16 -0
  25. package/features/grouping-rows.d.ts.map +1 -0
  26. package/features/grouping-rows.js +3 -0
  27. package/features/index.d.ts +1 -0
  28. package/features/index.d.ts.map +1 -0
  29. package/features/index.js +22 -0
  30. package/features/master-detail.d.ts +16 -0
  31. package/features/master-detail.d.ts.map +1 -0
  32. package/features/master-detail.js +3 -0
  33. package/features/pinned-columns.d.ts +19 -0
  34. package/features/pinned-columns.d.ts.map +1 -0
  35. package/features/pinned-columns.js +3 -0
  36. package/features/pinned-rows.d.ts +16 -0
  37. package/features/pinned-rows.d.ts.map +1 -0
  38. package/features/pinned-rows.js +3 -0
  39. package/features/pivot.d.ts +16 -0
  40. package/features/pivot.d.ts.map +1 -0
  41. package/features/pivot.js +3 -0
  42. package/features/print.d.ts +16 -0
  43. package/features/print.d.ts.map +1 -0
  44. package/features/print.js +3 -0
  45. package/features/reorder.d.ts +16 -0
  46. package/features/reorder.d.ts.map +1 -0
  47. package/features/reorder.js +3 -0
  48. package/features/responsive.d.ts +16 -0
  49. package/features/responsive.d.ts.map +1 -0
  50. package/features/responsive.js +3 -0
  51. package/features/row-reorder.d.ts +16 -0
  52. package/features/row-reorder.d.ts.map +1 -0
  53. package/features/row-reorder.js +3 -0
  54. package/features/selection.d.ts +16 -0
  55. package/features/selection.d.ts.map +1 -0
  56. package/features/selection.js +3 -0
  57. package/features/server-side.d.ts +16 -0
  58. package/features/server-side.d.ts.map +1 -0
  59. package/features/server-side.js +3 -0
  60. package/features/sorting.d.ts +16 -0
  61. package/features/sorting.d.ts.map +1 -0
  62. package/features/sorting.js +3 -0
  63. package/features/tree.d.ts +16 -0
  64. package/features/tree.d.ts.map +1 -0
  65. package/features/tree.js +3 -0
  66. package/features/undo-redo.d.ts +18 -0
  67. package/features/undo-redo.d.ts.map +1 -0
  68. package/features/undo-redo.js +3 -0
  69. package/features/visibility.d.ts +16 -0
  70. package/features/visibility.d.ts.map +1 -0
  71. package/features/visibility.js +3 -0
  72. package/index.d.ts +7 -0
  73. package/index.d.ts.map +1 -1
  74. package/index.js +1272 -294
  75. package/lib/angular-column-config.d.ts +1 -1
  76. package/lib/angular-grid-adapter.d.ts +1 -1
  77. package/lib/angular-grid-adapter.d.ts.map +1 -1
  78. package/lib/base-grid-editor.d.ts +145 -0
  79. package/lib/base-grid-editor.d.ts.map +1 -0
  80. package/lib/directives/grid-column-editor.directive.d.ts +17 -0
  81. package/lib/directives/grid-column-editor.directive.d.ts.map +1 -1
  82. package/lib/directives/grid-detail-view.directive.d.ts +1 -1
  83. package/lib/directives/grid-form-array.directive.d.ts +141 -0
  84. package/lib/directives/grid-form-array.directive.d.ts.map +1 -0
  85. package/lib/directives/grid.directive.d.ts +554 -3
  86. package/lib/directives/grid.directive.d.ts.map +1 -1
  87. package/lib/directives/index.d.ts +2 -0
  88. package/lib/directives/index.d.ts.map +1 -1
  89. package/lib/directives/structural-directives.d.ts +10 -0
  90. package/lib/directives/structural-directives.d.ts.map +1 -1
  91. package/lib/feature-registry.d.ts +72 -0
  92. package/lib/feature-registry.d.ts.map +1 -0
  93. package/lib/grid-type-registry.d.ts +1 -1
  94. package/lib/inject-grid.d.ts +109 -0
  95. package/lib/inject-grid.d.ts.map +1 -0
  96. package/package.json +12 -2
@@ -1,4 +1,6 @@
1
1
  import { AfterContentInit, OnDestroy, OnInit } from '@angular/core';
2
+ import { CellActivateDetail, CellChangeDetail, CellClickDetail, ChangedRowsResetDetail, ColumnResizeDetail, GridColumnState, RowClickDetail, SortChangeDetail } from '@toolbox-web/grid';
3
+ import { ClipboardConfig, ColumnMoveDetail, ColumnVirtualizationConfig, ColumnVisibilityDetail, ContextMenuConfig, CopyDetail, DetailExpandDetail, ExportCompleteDetail, ExportConfig, FilterChangeDetail, FilterConfig, GroupingColumnsConfig, GroupingRowsConfig, GroupToggleDetail, MasterDetailConfig, MultiSortConfig, PasteDetail, PinnedRowsConfig, PivotConfig, PrintCompleteDetail, PrintConfig, PrintStartDetail, ReorderConfig, ResponsiveChangeDetail, ResponsivePluginConfig, RowMoveDetail, RowReorderConfig, SelectionChangeDetail, SelectionConfig, ServerSideConfig, TreeConfig, TreeExpandDetail, UndoRedoConfig, UndoRedoDetail, VisibilityConfig } from '@toolbox-web/grid/all';
2
4
  import { AngularGridConfig } from '../angular-column-config';
3
5
  /**
4
6
  * Event detail for cell commit events.
@@ -75,9 +77,7 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
75
77
  private appRef;
76
78
  private viewContainerRef;
77
79
  private adapter;
78
- private cellCommitListener;
79
80
  constructor();
80
- private rowCommitListener;
81
81
  /**
82
82
  * Custom CSS styles to inject into the grid.
83
83
  * Use this to style custom cell renderers, editors, or detail panels.
@@ -132,6 +132,374 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
132
132
  * ```
133
133
  */
134
134
  angularConfig: import('@angular/core').InputSignal<AngularGridConfig<any> | undefined>;
135
+ /**
136
+ * Enable cell/row/range selection.
137
+ *
138
+ * **Requires feature import:**
139
+ * ```typescript
140
+ * import '@toolbox-web/grid-angular/features/selection';
141
+ * ```
142
+ *
143
+ * @example
144
+ * ```html
145
+ * <!-- Shorthand - just the mode -->
146
+ * <tbw-grid [selection]="'range'" />
147
+ *
148
+ * <!-- Full config object -->
149
+ * <tbw-grid [selection]="{ mode: 'range', checkbox: true }" />
150
+ * ```
151
+ */
152
+ selection: import('@angular/core').InputSignal<"row" | "range" | "cell" | SelectionConfig<any> | undefined>;
153
+ /**
154
+ * Enable inline cell editing.
155
+ *
156
+ * **Requires feature import:**
157
+ * ```typescript
158
+ * import '@toolbox-web/grid-angular/features/editing';
159
+ * ```
160
+ *
161
+ * @example
162
+ * ```html
163
+ * <!-- Enable with default trigger (dblclick) -->
164
+ * <tbw-grid [editing]="true" />
165
+ *
166
+ * <!-- Specify trigger -->
167
+ * <tbw-grid [editing]="'click'" />
168
+ * <tbw-grid [editing]="'dblclick'" />
169
+ * <tbw-grid [editing]="'manual'" />
170
+ * ```
171
+ */
172
+ editing: import('@angular/core').InputSignal<boolean | "click" | "dblclick" | "manual" | undefined>;
173
+ /**
174
+ * Enable clipboard copy/paste. Requires selection to be enabled.
175
+ *
176
+ * **Requires feature import:**
177
+ * ```typescript
178
+ * import '@toolbox-web/grid-angular/features/clipboard';
179
+ * ```
180
+ *
181
+ * @example
182
+ * ```html
183
+ * <tbw-grid [selection]="'range'" [clipboard]="true" />
184
+ * ```
185
+ */
186
+ clipboard: import('@angular/core').InputSignal<boolean | ClipboardConfig | undefined>;
187
+ /**
188
+ * Enable right-click context menu.
189
+ *
190
+ * **Requires feature import:**
191
+ * ```typescript
192
+ * import '@toolbox-web/grid-angular/features/context-menu';
193
+ * ```
194
+ *
195
+ * @example
196
+ * ```html
197
+ * <tbw-grid [contextMenu]="true" />
198
+ * ```
199
+ */
200
+ contextMenu: import('@angular/core').InputSignal<boolean | ContextMenuConfig | undefined>;
201
+ /**
202
+ * Enable column sorting.
203
+ *
204
+ * **Requires feature import:**
205
+ * ```typescript
206
+ * import '@toolbox-web/grid-angular/features/sorting';
207
+ * ```
208
+ *
209
+ * @example
210
+ * ```html
211
+ * <!-- Enable with default (multi-sort) -->
212
+ * <tbw-grid [sorting]="true" />
213
+ *
214
+ * <!-- Single column sort only -->
215
+ * <tbw-grid [sorting]="'single'" />
216
+ *
217
+ * <!-- Multi-column sort -->
218
+ * <tbw-grid [sorting]="'multi'" />
219
+ * ```
220
+ */
221
+ sorting: import('@angular/core').InputSignal<boolean | "multi" | MultiSortConfig | "single" | undefined>;
222
+ /**
223
+ * Enable column filtering.
224
+ *
225
+ * **Requires feature import:**
226
+ * ```typescript
227
+ * import '@toolbox-web/grid-angular/features/filtering';
228
+ * ```
229
+ *
230
+ * @example
231
+ * ```html
232
+ * <tbw-grid [filtering]="true" />
233
+ * <tbw-grid [filtering]="{ debounceMs: 200 }" />
234
+ * ```
235
+ */
236
+ filtering: import('@angular/core').InputSignal<boolean | FilterConfig<any> | undefined>;
237
+ /**
238
+ * Enable column drag-to-reorder.
239
+ *
240
+ * **Requires feature import:**
241
+ * ```typescript
242
+ * import '@toolbox-web/grid-angular/features/reorder';
243
+ * ```
244
+ *
245
+ * @example
246
+ * ```html
247
+ * <tbw-grid [reorder]="true" />
248
+ * ```
249
+ */
250
+ reorder: import('@angular/core').InputSignal<boolean | ReorderConfig | undefined>;
251
+ /**
252
+ * Enable column visibility toggle panel.
253
+ *
254
+ * **Requires feature import:**
255
+ * ```typescript
256
+ * import '@toolbox-web/grid-angular/features/visibility';
257
+ * ```
258
+ *
259
+ * @example
260
+ * ```html
261
+ * <tbw-grid [visibility]="true" />
262
+ * ```
263
+ */
264
+ visibility: import('@angular/core').InputSignal<boolean | VisibilityConfig | undefined>;
265
+ /**
266
+ * Enable pinned/sticky columns.
267
+ * Columns are pinned via the `sticky` column property.
268
+ *
269
+ * **Requires feature import:**
270
+ * ```typescript
271
+ * import '@toolbox-web/grid-angular/features/pinned-columns';
272
+ * ```
273
+ *
274
+ * @example
275
+ * ```html
276
+ * <tbw-grid [pinnedColumns]="true" [columns]="[
277
+ * { field: 'id', sticky: 'left' },
278
+ * { field: 'name' },
279
+ * { field: 'actions', sticky: 'right' }
280
+ * ]" />
281
+ * ```
282
+ */
283
+ pinnedColumns: import('@angular/core').InputSignal<boolean | undefined>;
284
+ /**
285
+ * Enable multi-level column headers (column groups).
286
+ *
287
+ * **Requires feature import:**
288
+ * ```typescript
289
+ * import '@toolbox-web/grid-angular/features/grouping-columns';
290
+ * ```
291
+ *
292
+ * @example
293
+ * ```html
294
+ * <tbw-grid [groupingColumns]="{ columnGroups: [...] }" />
295
+ * ```
296
+ */
297
+ groupingColumns: import('@angular/core').InputSignal<boolean | GroupingColumnsConfig | undefined>;
298
+ /**
299
+ * Enable horizontal column virtualization for wide grids.
300
+ *
301
+ * **Requires feature import:**
302
+ * ```typescript
303
+ * import '@toolbox-web/grid-angular/features/column-virtualization';
304
+ * ```
305
+ *
306
+ * @example
307
+ * ```html
308
+ * <tbw-grid [columnVirtualization]="true" />
309
+ * ```
310
+ */
311
+ columnVirtualization: import('@angular/core').InputSignal<boolean | ColumnVirtualizationConfig | undefined>;
312
+ /**
313
+ * Enable row drag-to-reorder.
314
+ *
315
+ * **Requires feature import:**
316
+ * ```typescript
317
+ * import '@toolbox-web/grid-angular/features/row-reorder';
318
+ * ```
319
+ *
320
+ * @example
321
+ * ```html
322
+ * <tbw-grid [rowReorder]="true" />
323
+ * ```
324
+ */
325
+ rowReorder: import('@angular/core').InputSignal<boolean | RowReorderConfig | undefined>;
326
+ /**
327
+ * Enable row grouping by field values.
328
+ *
329
+ * **Requires feature import:**
330
+ * ```typescript
331
+ * import '@toolbox-web/grid-angular/features/grouping-rows';
332
+ * ```
333
+ *
334
+ * @example
335
+ * ```html
336
+ * <tbw-grid [groupingRows]="{ groupBy: ['department'] }" />
337
+ * ```
338
+ */
339
+ groupingRows: import('@angular/core').InputSignal<GroupingRowsConfig | undefined>;
340
+ /**
341
+ * Enable pinned rows (aggregation/status bar).
342
+ *
343
+ * **Requires feature import:**
344
+ * ```typescript
345
+ * import '@toolbox-web/grid-angular/features/pinned-rows';
346
+ * ```
347
+ *
348
+ * @example
349
+ * ```html
350
+ * <tbw-grid [pinnedRows]="{ bottom: [{ type: 'aggregation' }] }" />
351
+ * ```
352
+ */
353
+ pinnedRows: import('@angular/core').InputSignal<boolean | PinnedRowsConfig | undefined>;
354
+ /**
355
+ * Enable hierarchical tree view.
356
+ *
357
+ * **Requires feature import:**
358
+ * ```typescript
359
+ * import '@toolbox-web/grid-angular/features/tree';
360
+ * ```
361
+ *
362
+ * @example
363
+ * ```html
364
+ * <tbw-grid [tree]="{ childrenField: 'children' }" />
365
+ * ```
366
+ */
367
+ tree: import('@angular/core').InputSignal<boolean | TreeConfig | undefined>;
368
+ /**
369
+ * Enable master-detail expandable rows.
370
+ *
371
+ * **Requires feature import:**
372
+ * ```typescript
373
+ * import '@toolbox-web/grid-angular/features/master-detail';
374
+ * ```
375
+ *
376
+ * @example
377
+ * ```html
378
+ * <tbw-grid [masterDetail]="{ detailRenderer: detailFn }" />
379
+ * ```
380
+ */
381
+ masterDetail: import('@angular/core').InputSignal<MasterDetailConfig | undefined>;
382
+ /**
383
+ * Enable responsive card layout for narrow viewports.
384
+ *
385
+ * **Requires feature import:**
386
+ * ```typescript
387
+ * import '@toolbox-web/grid-angular/features/responsive';
388
+ * ```
389
+ *
390
+ * @example
391
+ * ```html
392
+ * <tbw-grid [responsive]="{ breakpoint: 768 }" />
393
+ * ```
394
+ */
395
+ responsive: import('@angular/core').InputSignal<boolean | ResponsivePluginConfig<unknown> | undefined>;
396
+ /**
397
+ * Enable undo/redo for cell edits. Requires editing to be enabled.
398
+ *
399
+ * **Requires feature import:**
400
+ * ```typescript
401
+ * import '@toolbox-web/grid-angular/features/undo-redo';
402
+ * ```
403
+ *
404
+ * @example
405
+ * ```html
406
+ * <tbw-grid [editing]="'dblclick'" [undoRedo]="true" />
407
+ * ```
408
+ */
409
+ undoRedo: import('@angular/core').InputSignal<boolean | UndoRedoConfig | undefined>;
410
+ /**
411
+ * Enable CSV/JSON export functionality.
412
+ *
413
+ * **Requires feature import:**
414
+ * ```typescript
415
+ * import '@toolbox-web/grid-angular/features/export';
416
+ * ```
417
+ *
418
+ * @example
419
+ * ```html
420
+ * <tbw-grid [export]="true" />
421
+ * <tbw-grid [export]="{ filename: 'data.csv' }" />
422
+ * ```
423
+ */
424
+ exportFeature: import('@angular/core').InputSignal<boolean | ExportConfig | undefined>;
425
+ /**
426
+ * Enable print functionality.
427
+ *
428
+ * **Requires feature import:**
429
+ * ```typescript
430
+ * import '@toolbox-web/grid-angular/features/print';
431
+ * ```
432
+ *
433
+ * @example
434
+ * ```html
435
+ * <tbw-grid [print]="true" />
436
+ * ```
437
+ */
438
+ print: import('@angular/core').InputSignal<boolean | PrintConfig | undefined>;
439
+ /**
440
+ * Enable pivot table functionality.
441
+ *
442
+ * **Requires feature import:**
443
+ * ```typescript
444
+ * import '@toolbox-web/grid-angular/features/pivot';
445
+ * ```
446
+ *
447
+ * @example
448
+ * ```html
449
+ * <tbw-grid [pivot]="{ rowFields: ['category'], valueField: 'sales' }" />
450
+ * ```
451
+ */
452
+ pivot: import('@angular/core').InputSignal<PivotConfig | undefined>;
453
+ /**
454
+ * Enable server-side data operations.
455
+ *
456
+ * **Requires feature import:**
457
+ * ```typescript
458
+ * import '@toolbox-web/grid-angular/features/server-side';
459
+ * ```
460
+ *
461
+ * @example
462
+ * ```html
463
+ * <tbw-grid [serverSide]="{ dataSource: fetchDataFn }" />
464
+ * ```
465
+ */
466
+ serverSide: import('@angular/core').InputSignal<ServerSideConfig | undefined>;
467
+ /**
468
+ * Emitted when a cell is clicked.
469
+ *
470
+ * @example
471
+ * ```html
472
+ * <tbw-grid (cellClick)="onCellClick($event)">...</tbw-grid>
473
+ * ```
474
+ */
475
+ cellClick: import('@angular/core').OutputEmitterRef<CellClickDetail<any>>;
476
+ /**
477
+ * Emitted when a row is clicked.
478
+ *
479
+ * @example
480
+ * ```html
481
+ * <tbw-grid (rowClick)="onRowClick($event)">...</tbw-grid>
482
+ * ```
483
+ */
484
+ rowClick: import('@angular/core').OutputEmitterRef<RowClickDetail<any>>;
485
+ /**
486
+ * Emitted when a cell is activated (Enter key or double-click).
487
+ *
488
+ * @example
489
+ * ```html
490
+ * <tbw-grid (cellActivate)="onCellActivate($event)">...</tbw-grid>
491
+ * ```
492
+ */
493
+ cellActivate: import('@angular/core').OutputEmitterRef<CellActivateDetail<any>>;
494
+ /**
495
+ * Emitted when a cell value changes (before commit).
496
+ *
497
+ * @example
498
+ * ```html
499
+ * <tbw-grid (cellChange)="onCellChange($event)">...</tbw-grid>
500
+ * ```
501
+ */
502
+ cellChange: import('@angular/core').OutputEmitterRef<CellChangeDetail<any>>;
135
503
  /**
136
504
  * Emitted when a cell value is committed (inline editing).
137
505
  * Provides the row, field, new value, and change tracking information.
@@ -158,7 +526,190 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
158
526
  * ```
159
527
  */
160
528
  rowCommit: import('@angular/core').OutputEmitterRef<RowCommitEvent<unknown>>;
529
+ /**
530
+ * Emitted when the changed rows are reset.
531
+ *
532
+ * @example
533
+ * ```html
534
+ * <tbw-grid (changedRowsReset)="onChangedRowsReset($event)">...</tbw-grid>
535
+ * ```
536
+ */
537
+ changedRowsReset: import('@angular/core').OutputEmitterRef<ChangedRowsResetDetail<unknown>>;
538
+ /**
539
+ * Emitted when sort state changes.
540
+ *
541
+ * @example
542
+ * ```html
543
+ * <tbw-grid (sortChange)="onSortChange($event)">...</tbw-grid>
544
+ * ```
545
+ */
546
+ sortChange: import('@angular/core').OutputEmitterRef<SortChangeDetail>;
547
+ /**
548
+ * Emitted when filter values change.
549
+ *
550
+ * @example
551
+ * ```html
552
+ * <tbw-grid (filterChange)="onFilterChange($event)">...</tbw-grid>
553
+ * ```
554
+ */
555
+ filterChange: import('@angular/core').OutputEmitterRef<FilterChangeDetail>;
556
+ /**
557
+ * Emitted when a column is resized.
558
+ *
559
+ * @example
560
+ * ```html
561
+ * <tbw-grid (columnResize)="onColumnResize($event)">...</tbw-grid>
562
+ * ```
563
+ */
564
+ columnResize: import('@angular/core').OutputEmitterRef<ColumnResizeDetail>;
565
+ /**
566
+ * Emitted when a column is moved via drag-and-drop.
567
+ *
568
+ * @example
569
+ * ```html
570
+ * <tbw-grid (columnMove)="onColumnMove($event)">...</tbw-grid>
571
+ * ```
572
+ */
573
+ columnMove: import('@angular/core').OutputEmitterRef<ColumnMoveDetail>;
574
+ /**
575
+ * Emitted when column visibility changes.
576
+ *
577
+ * @example
578
+ * ```html
579
+ * <tbw-grid (columnVisibility)="onColumnVisibility($event)">...</tbw-grid>
580
+ * ```
581
+ */
582
+ columnVisibility: import('@angular/core').OutputEmitterRef<ColumnVisibilityDetail>;
583
+ /**
584
+ * Emitted when column state changes (resize, reorder, visibility).
585
+ *
586
+ * @example
587
+ * ```html
588
+ * <tbw-grid (columnStateChange)="onColumnStateChange($event)">...</tbw-grid>
589
+ * ```
590
+ */
591
+ columnStateChange: import('@angular/core').OutputEmitterRef<GridColumnState>;
592
+ /**
593
+ * Emitted when selection changes.
594
+ *
595
+ * @example
596
+ * ```html
597
+ * <tbw-grid (selectionChange)="onSelectionChange($event)">...</tbw-grid>
598
+ * ```
599
+ */
600
+ selectionChange: import('@angular/core').OutputEmitterRef<SelectionChangeDetail>;
601
+ /**
602
+ * Emitted when a row is moved via drag-and-drop.
603
+ *
604
+ * @example
605
+ * ```html
606
+ * <tbw-grid (rowMove)="onRowMove($event)">...</tbw-grid>
607
+ * ```
608
+ */
609
+ rowMove: import('@angular/core').OutputEmitterRef<RowMoveDetail<any>>;
610
+ /**
611
+ * Emitted when a group is expanded or collapsed.
612
+ *
613
+ * @example
614
+ * ```html
615
+ * <tbw-grid (groupToggle)="onGroupToggle($event)">...</tbw-grid>
616
+ * ```
617
+ */
618
+ groupToggle: import('@angular/core').OutputEmitterRef<GroupToggleDetail>;
619
+ /**
620
+ * Emitted when a tree node is expanded.
621
+ *
622
+ * @example
623
+ * ```html
624
+ * <tbw-grid (treeExpand)="onTreeExpand($event)">...</tbw-grid>
625
+ * ```
626
+ */
627
+ treeExpand: import('@angular/core').OutputEmitterRef<TreeExpandDetail<any>>;
628
+ /**
629
+ * Emitted when a detail panel is expanded or collapsed.
630
+ *
631
+ * @example
632
+ * ```html
633
+ * <tbw-grid (detailExpand)="onDetailExpand($event)">...</tbw-grid>
634
+ * ```
635
+ */
636
+ detailExpand: import('@angular/core').OutputEmitterRef<DetailExpandDetail>;
637
+ /**
638
+ * Emitted when responsive mode changes (table ↔ card).
639
+ *
640
+ * @example
641
+ * ```html
642
+ * <tbw-grid (responsiveChange)="onResponsiveChange($event)">...</tbw-grid>
643
+ * ```
644
+ */
645
+ responsiveChange: import('@angular/core').OutputEmitterRef<ResponsiveChangeDetail>;
646
+ /**
647
+ * Emitted when cells are copied to clipboard.
648
+ *
649
+ * @example
650
+ * ```html
651
+ * <tbw-grid (copy)="onCopy($event)">...</tbw-grid>
652
+ * ```
653
+ */
654
+ copy: import('@angular/core').OutputEmitterRef<CopyDetail>;
655
+ /**
656
+ * Emitted when cells are pasted from clipboard.
657
+ *
658
+ * @example
659
+ * ```html
660
+ * <tbw-grid (paste)="onPaste($event)">...</tbw-grid>
661
+ * ```
662
+ */
663
+ paste: import('@angular/core').OutputEmitterRef<PasteDetail>;
664
+ /**
665
+ * Emitted when undo/redo is performed.
666
+ *
667
+ * @example
668
+ * ```html
669
+ * <tbw-grid (undoRedoAction)="onUndoRedo($event)">...</tbw-grid>
670
+ * ```
671
+ */
672
+ undoRedoAction: import('@angular/core').OutputEmitterRef<UndoRedoDetail>;
673
+ /**
674
+ * Emitted when export completes.
675
+ *
676
+ * @example
677
+ * ```html
678
+ * <tbw-grid (exportComplete)="onExportComplete($event)">...</tbw-grid>
679
+ * ```
680
+ */
681
+ exportComplete: import('@angular/core').OutputEmitterRef<ExportCompleteDetail>;
682
+ /**
683
+ * Emitted when print starts.
684
+ *
685
+ * @example
686
+ * ```html
687
+ * <tbw-grid (printStart)="onPrintStart($event)">...</tbw-grid>
688
+ * ```
689
+ */
690
+ printStart: import('@angular/core').OutputEmitterRef<PrintStartDetail>;
691
+ /**
692
+ * Emitted when print completes.
693
+ *
694
+ * @example
695
+ * ```html
696
+ * <tbw-grid (printComplete)="onPrintComplete($event)">...</tbw-grid>
697
+ * ```
698
+ */
699
+ printComplete: import('@angular/core').OutputEmitterRef<PrintCompleteDetail>;
700
+ private readonly eventOutputMap;
701
+ private eventListeners;
161
702
  ngOnInit(): void;
703
+ /**
704
+ * Sets up event listeners for all outputs using the eventOutputMap.
705
+ */
706
+ private setupEventListeners;
707
+ /**
708
+ * Creates plugins from feature inputs.
709
+ * Uses the feature registry to allow tree-shaking - only imported features are bundled.
710
+ * Returns the array of created plugins (doesn't modify grid).
711
+ */
712
+ private createFeaturePlugins;
162
713
  ngAfterContentInit(): void;
163
714
  /**
164
715
  * Registers custom styles into the grid.
@@ -168,7 +719,7 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
168
719
  /**
169
720
  * Configures the MasterDetailPlugin after Angular templates are registered.
170
721
  * - If plugin exists: refresh its detail renderer
171
- * - If plugin doesn't exist but <tbw-grid-detail> is present: create and add the plugin
722
+ * - If plugin doesn't exist but <tbw-grid-detail> is present: dynamically import and add the plugin
172
723
  */
173
724
  private configureMasterDetail;
174
725
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"grid.directive.d.ts","sourceRoot":"","sources":["../../../../../libs/grid-angular/src/lib/directives/grid.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAQhB,SAAS,EACT,MAAM,EAGP,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO;IAC/D,0BAA0B;IAC1B,GAAG,EAAE,IAAI,CAAC;IACV,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,iDAAiD;IACjD,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,IAAI,GAAG,OAAO;IAC5C,0BAA0B;IAC1B,GAAG,EAAE,IAAI,CAAC;IACV,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,iDAAiD;IACjD,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,IAAK,YAAW,MAAM,EAAE,gBAAgB,EAAE,SAAS;IAC9D,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,kBAAkB,CAAqC;;IAgB/D,OAAO,CAAC,iBAAiB,CAAqC;IAE9D;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,0DAAmB;IAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IAEH,aAAa,0EAAmC;IAEhD;;;;;;;;;;;;;;OAcG;IACH,UAAU,8EAA6B;IAEvC;;;;;;;;OAQG;IACH,SAAS,oEAA4B;IAErC,QAAQ,IAAI,IAAI;IAyBhB,kBAAkB,IAAI,IAAI;IA2B1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA6B/B,WAAW,IAAI,IAAI;CAyBpB"}
1
+ {"version":3,"file":"grid.directive.d.ts","sourceRoot":"","sources":["../../../../../libs/grid-angular/src/lib/directives/grid.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAQhB,SAAS,EACT,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAEf,cAAc,EACd,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAElB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EAEtB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO;IAC/D,0BAA0B;IAC1B,GAAG,EAAE,IAAI,CAAC;IACV,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,iDAAiD;IACjD,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,IAAI,GAAG,OAAO;IAC5C,0BAA0B;IAC1B,GAAG,EAAE,IAAI,CAAC;IACV,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,iDAAiD;IACjD,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,IAAK,YAAW,MAAM,EAAE,gBAAgB,EAAE,SAAS;IAC9D,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,OAAO,CAAC,OAAO,CAAmC;;IA4BlD;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,0DAAmB;IAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IAEH,aAAa,0EAAmC;IAMhD;;;;;;;;;;;;;;;;OAgBG;IAEH,SAAS,mGAA4D;IAErE;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,6FAAsD;IAE7D;;;;;;;;;;;;OAYG;IACH,SAAS,6EAAsC;IAE/C;;;;;;;;;;;;OAYG;IACH,WAAW,+EAAwC;IAEnD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,kGAA2D;IAElE;;;;;;;;;;;;;OAaG;IAEH,SAAS,+EAAwC;IAEjD;;;;;;;;;;;;OAYG;IACH,OAAO,2EAAoC;IAE3C;;;;;;;;;;;;OAYG;IACH,UAAU,8EAAuC;IAEjD;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,2DAAoB;IAEjC;;;;;;;;;;;;OAYG;IACH,eAAe,mFAA4C;IAE3D;;;;;;;;;;;;OAYG;IACH,oBAAoB,wFAAiD;IAErE;;;;;;;;;;;;OAYG;IACH,UAAU,8EAAuC;IAEjD;;;;;;;;;;;;OAYG;IACH,YAAY,sEAA+B;IAE3C;;;;;;;;;;;;OAYG;IACH,UAAU,8EAAuC;IAEjD;;;;;;;;;;;;OAYG;IACH,IAAI,wEAAiC;IAErC;;;;;;;;;;;;OAYG;IACH,YAAY,sEAA+B;IAE3C;;;;;;;;;;;;OAYG;IACH,UAAU,6FAA6C;IAEvD;;;;;;;;;;;;OAYG;IACH,QAAQ,4EAAqC;IAE7C;;;;;;;;;;;;;OAaG;IACH,aAAa,0EAAmC;IAEhD;;;;;;;;;;;;OAYG;IACH,KAAK,yEAAkC;IAEvC;;;;;;;;;;;;OAYG;IACH,KAAK,+DAAwB;IAE7B;;;;;;;;;;;;OAYG;IACH,UAAU,oEAA6B;IAMvC;;;;;;;OAOG;IAEH,SAAS,iEAAkC;IAE3C;;;;;;;OAOG;IAEH,QAAQ,gEAAiC;IAEzC;;;;;;;OAOG;IAEH,YAAY,oEAAqC;IAEjD;;;;;;;OAOG;IAEH,UAAU,kEAAmC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,UAAU,8EAA6B;IAEvC;;;;;;;;OAQG;IACH,SAAS,oEAA4B;IAErC;;;;;;;OAOG;IACH,gBAAgB,4EAAoC;IAEpD;;;;;;;OAOG;IACH,UAAU,6DAA8B;IAExC;;;;;;;OAOG;IACH,YAAY,+DAAgC;IAE5C;;;;;;;OAOG;IACH,YAAY,+DAAgC;IAE5C;;;;;;;OAOG;IACH,UAAU,6DAA8B;IAExC;;;;;;;OAOG;IACH,gBAAgB,mEAAoC;IAEpD;;;;;;;OAOG;IACH,iBAAiB,4DAA6B;IAE9C;;;;;;;OAOG;IACH,eAAe,kEAAmC;IAElD;;;;;;;OAOG;IAEH,OAAO,+DAAgC;IAEvC;;;;;;;OAOG;IACH,WAAW,8DAA+B;IAE1C;;;;;;;OAOG;IAEH,UAAU,kEAAmC;IAE7C;;;;;;;OAOG;IACH,YAAY,+DAAgC;IAE5C;;;;;;;OAOG;IACH,gBAAgB,mEAAoC;IAEpD;;;;;;;OAOG;IACH,IAAI,uDAAwB;IAE5B;;;;;;;OAOG;IACH,KAAK,wDAAyB;IAE9B;;;;;;;OAOG;IACH,cAAc,2DAA4B;IAE1C;;;;;;;OAOG;IACH,cAAc,iEAAkC;IAEhD;;;;;;;OAOG;IACH,UAAU,6DAA8B;IAExC;;;;;;;OAOG;IACH,aAAa,gEAAiC;IAG9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CA0BpB;IAIX,OAAO,CAAC,cAAc,CAA8C;IAEpE,QAAQ,IAAI,IAAI;IAgBhB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAsC5B,kBAAkB,IAAI,IAAI;IA2B1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;OAIG;YACW,qBAAqB;IAmDnC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAiC/B,WAAW,IAAI,IAAI;CAsBpB"}
@@ -1,6 +1,8 @@
1
1
  export { GridColumnEditor } from './grid-column-editor.directive';
2
2
  export { GridColumnView } from './grid-column-view.directive';
3
3
  export { GridDetailView } from './grid-detail-view.directive';
4
+ export { getFormArrayContext, GridFormArray } from './grid-form-array.directive';
5
+ export type { FormArrayContext } from './grid-form-array.directive';
4
6
  export { GridResponsiveCard } from './grid-responsive-card.directive';
5
7
  export { GridToolPanel } from './grid-tool-panel.directive';
6
8
  export { Grid } from './grid.directive';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/grid-angular/src/lib/directives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/grid-angular/src/lib/directives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { OnDestroy, TemplateRef } from '@angular/core';
2
+ import { AbstractControl } from '@angular/forms';
2
3
  /**
3
4
  * Context type for structural directives with `any` defaults.
4
5
  * This provides better ergonomics in templates without requiring explicit type annotations.
@@ -38,6 +39,15 @@ export interface StructuralEditorContext<TValue = any, TRow = any> {
38
39
  * Callback function to cancel editing.
39
40
  */
40
41
  onCancel: () => void;
42
+ /**
43
+ * The FormControl for this cell, if the grid is bound to a FormArray with FormGroups.
44
+ *
45
+ * Returns `undefined` if:
46
+ * - The grid is not bound to a FormArray
47
+ * - The FormArray doesn't contain FormGroups
48
+ * - The field doesn't exist in the FormGroup
49
+ */
50
+ control?: AbstractControl;
41
51
  }
42
52
  /**
43
53
  * Gets the view template registered by the structural directive for a given column element.
@@ -1 +1 @@
1
- {"version":3,"file":"structural-directives.d.ts","sourceRoot":"","sources":["../../../../../libs/grid-angular/src/lib/directives/structural-directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI9F;;;;;GAKG;AAEH,MAAM,WAAW,qBAAqB,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG;IAC7D,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,GAAG,EAAE,IAAI,CAAC;IACV,+BAA+B;IAE/B,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;;;GAKG;AAEH,MAAM,WAAW,uBAAuB,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG;IAC/D,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,GAAG,EAAE,IAAI,CAAC;IACV,+BAA+B;IAE/B,MAAM,EAAE,GAAG,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,WAAW,GAAG,WAAW,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAWpH;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,WAAW,GACzB,WAAW,CAAC,uBAAuB,CAAC,GAAG,SAAS,CAWlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBACa,WAAY,YAAW,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,aAAa,CAA4B;;IAWjD,OAAO,CAAC,gBAAgB;IAcxB,WAAW,IAAI,IAAI;IAMnB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB;CAG5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBACa,SAAU,YAAW,SAAS;IACzC,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,aAAa,CAA4B;;IAQjD,OAAO,CAAC,gBAAgB;IAaxB,WAAW,IAAI,IAAI;IAMnB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,uBAAuB;CAG5F"}
1
+ {"version":3,"file":"structural-directives.d.ts","sourceRoot":"","sources":["../../../../../libs/grid-angular/src/lib/directives/structural-directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD;;;;;GAKG;AAEH,MAAM,WAAW,qBAAqB,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG;IAC7D,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,GAAG,EAAE,IAAI,CAAC;IACV,+BAA+B;IAE/B,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;;;GAKG;AAEH,MAAM,WAAW,uBAAuB,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG;IAC/D,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,GAAG,EAAE,IAAI,CAAC;IACV,+BAA+B;IAE/B,MAAM,EAAE,GAAG,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAMD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,WAAW,GAAG,WAAW,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAWpH;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,WAAW,GACzB,WAAW,CAAC,uBAAuB,CAAC,GAAG,SAAS,CAWlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBACa,WAAY,YAAW,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,aAAa,CAA4B;;IAWjD,OAAO,CAAC,gBAAgB;IAcxB,WAAW,IAAI,IAAI;IAMnB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB;CAG5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBACa,SAAU,YAAW,SAAS;IACzC,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,aAAa,CAA4B;;IAQjD,OAAO,CAAC,gBAAgB;IAaxB,WAAW,IAAI,IAAI;IAMnB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,uBAAuB;CAG5F"}