@toolbox-web/grid-angular 0.5.0 → 0.7.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 (89) hide show
  1. package/feature-registry-C-cKloXB.js +45 -0
  2. package/features/clipboard.d.ts +18 -0
  3. package/features/clipboard.d.ts.map +1 -0
  4. package/features/clipboard.js +3 -0
  5. package/features/column-virtualization.d.ts +16 -0
  6. package/features/column-virtualization.d.ts.map +1 -0
  7. package/features/column-virtualization.js +3 -0
  8. package/features/context-menu.d.ts +16 -0
  9. package/features/context-menu.d.ts.map +1 -0
  10. package/features/context-menu.js +3 -0
  11. package/features/editing.d.ts +16 -0
  12. package/features/editing.d.ts.map +1 -0
  13. package/features/editing.js +3 -0
  14. package/features/export.d.ts +17 -0
  15. package/features/export.d.ts.map +1 -0
  16. package/features/export.js +3 -0
  17. package/features/filtering.d.ts +17 -0
  18. package/features/filtering.d.ts.map +1 -0
  19. package/features/filtering.js +3 -0
  20. package/features/grouping-columns.d.ts +16 -0
  21. package/features/grouping-columns.d.ts.map +1 -0
  22. package/features/grouping-columns.js +3 -0
  23. package/features/grouping-rows.d.ts +16 -0
  24. package/features/grouping-rows.d.ts.map +1 -0
  25. package/features/grouping-rows.js +3 -0
  26. package/features/index.d.ts +1 -0
  27. package/features/index.d.ts.map +1 -0
  28. package/features/index.js +22 -0
  29. package/features/master-detail.d.ts +16 -0
  30. package/features/master-detail.d.ts.map +1 -0
  31. package/features/master-detail.js +3 -0
  32. package/features/multi-sort.d.ts +22 -0
  33. package/features/multi-sort.d.ts.map +1 -0
  34. package/features/pinned-columns.d.ts +19 -0
  35. package/features/pinned-columns.d.ts.map +1 -0
  36. package/features/pinned-columns.js +3 -0
  37. package/features/pinned-rows.d.ts +16 -0
  38. package/features/pinned-rows.d.ts.map +1 -0
  39. package/features/pinned-rows.js +3 -0
  40. package/features/pivot.d.ts +16 -0
  41. package/features/pivot.d.ts.map +1 -0
  42. package/features/pivot.js +3 -0
  43. package/features/print.d.ts +16 -0
  44. package/features/print.d.ts.map +1 -0
  45. package/features/print.js +3 -0
  46. package/features/reorder.d.ts +16 -0
  47. package/features/reorder.d.ts.map +1 -0
  48. package/features/reorder.js +3 -0
  49. package/features/responsive.d.ts +16 -0
  50. package/features/responsive.d.ts.map +1 -0
  51. package/features/responsive.js +3 -0
  52. package/features/row-reorder.d.ts +16 -0
  53. package/features/row-reorder.d.ts.map +1 -0
  54. package/features/row-reorder.js +3 -0
  55. package/features/selection.d.ts +16 -0
  56. package/features/selection.d.ts.map +1 -0
  57. package/features/selection.js +3 -0
  58. package/features/server-side.d.ts +16 -0
  59. package/features/server-side.d.ts.map +1 -0
  60. package/features/server-side.js +3 -0
  61. package/features/sorting.d.ts +1 -0
  62. package/features/sorting.d.ts.map +1 -0
  63. package/features/sorting.js +1 -0
  64. package/features/tree.d.ts +16 -0
  65. package/features/tree.d.ts.map +1 -0
  66. package/features/tree.js +3 -0
  67. package/features/undo-redo.d.ts +18 -0
  68. package/features/undo-redo.d.ts.map +1 -0
  69. package/features/undo-redo.js +3 -0
  70. package/features/visibility.d.ts +16 -0
  71. package/features/visibility.d.ts.map +1 -0
  72. package/features/visibility.js +3 -0
  73. package/index.d.ts +5 -1
  74. package/index.d.ts.map +1 -1
  75. package/index.js +1094 -306
  76. package/lib/angular-column-config.d.ts +1 -1
  77. package/lib/angular-grid-adapter.d.ts +1 -1
  78. package/lib/angular-grid-adapter.d.ts.map +1 -1
  79. package/lib/base-grid-editor.d.ts +1 -1
  80. package/lib/directives/grid-detail-view.directive.d.ts +1 -1
  81. package/lib/directives/grid.directive.d.ts +629 -3
  82. package/lib/directives/grid.directive.d.ts.map +1 -1
  83. package/lib/feature-registry.d.ts +72 -0
  84. package/lib/feature-registry.d.ts.map +1 -0
  85. package/lib/grid-type-registry.d.ts +1 -1
  86. package/lib/inject-grid.d.ts +109 -0
  87. package/lib/inject-grid.d.ts.map +1 -0
  88. package/multi-sort-DPbW58yz.js +3 -0
  89. package/package.json +11 -1
@@ -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.
@@ -96,6 +96,67 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
96
96
  * ```
97
97
  */
98
98
  customStyles: import('@angular/core').InputSignal<string | undefined>;
99
+ /**
100
+ * Grid-wide sorting toggle.
101
+ * When false, disables sorting for all columns regardless of their individual `sortable` setting.
102
+ * When true (default), columns with `sortable: true` can be sorted.
103
+ *
104
+ * This is a core grid config property, not a plugin feature.
105
+ * For multi-column sorting, also add the `[multiSort]` feature.
106
+ *
107
+ * @default true
108
+ *
109
+ * @example
110
+ * ```html
111
+ * <!-- Disable all sorting -->
112
+ * <tbw-grid [sortable]="false" />
113
+ *
114
+ * <!-- Enable sorting (default) - columns still need sortable: true -->
115
+ * <tbw-grid [sortable]="true" />
116
+ *
117
+ * <!-- Enable multi-column sorting -->
118
+ * <tbw-grid [sortable]="true" [multiSort]="true" />
119
+ * ```
120
+ */
121
+ sortable: import('@angular/core').InputSignal<boolean | undefined>;
122
+ /**
123
+ * Grid-wide filtering toggle.
124
+ * When false, disables filtering for all columns regardless of their individual `filterable` setting.
125
+ * When true (default), columns with `filterable: true` can be filtered.
126
+ *
127
+ * Requires the FilteringPlugin to be loaded.
128
+ *
129
+ * @default true
130
+ *
131
+ * @example
132
+ * ```html
133
+ * <!-- Disable all filtering -->
134
+ * <tbw-grid [filterable]="false" [filtering]="true" />
135
+ *
136
+ * <!-- Enable filtering (default) -->
137
+ * <tbw-grid [filterable]="true" [filtering]="true" />
138
+ * ```
139
+ */
140
+ filterable: import('@angular/core').InputSignal<boolean | undefined>;
141
+ /**
142
+ * Grid-wide selection toggle.
143
+ * When false, disables selection for all rows/cells.
144
+ * When true (default), selection is enabled based on plugin mode.
145
+ *
146
+ * Requires the SelectionPlugin to be loaded.
147
+ *
148
+ * @default true
149
+ *
150
+ * @example
151
+ * ```html
152
+ * <!-- Disable all selection -->
153
+ * <tbw-grid [selectable]="false" [selection]="'range'" />
154
+ *
155
+ * <!-- Enable selection (default) -->
156
+ * <tbw-grid [selectable]="true" [selection]="'range'" />
157
+ * ```
158
+ */
159
+ selectable: import('@angular/core').InputSignal<boolean | undefined>;
99
160
  /**
100
161
  * Angular-specific grid configuration that supports component classes for renderers/editors.
101
162
  *
@@ -132,6 +193,388 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
132
193
  * ```
133
194
  */
134
195
  angularConfig: import('@angular/core').InputSignal<AngularGridConfig<any> | undefined>;
196
+ /**
197
+ * Enable cell/row/range selection.
198
+ *
199
+ * **Requires feature import:**
200
+ * ```typescript
201
+ * import '@toolbox-web/grid-angular/features/selection';
202
+ * ```
203
+ *
204
+ * @example
205
+ * ```html
206
+ * <!-- Shorthand - just the mode -->
207
+ * <tbw-grid [selection]="'range'" />
208
+ *
209
+ * <!-- Full config object -->
210
+ * <tbw-grid [selection]="{ mode: 'range', checkbox: true }" />
211
+ * ```
212
+ */
213
+ selection: import('@angular/core').InputSignal<"row" | "range" | "cell" | SelectionConfig<any> | undefined>;
214
+ /**
215
+ * Enable inline cell editing.
216
+ *
217
+ * **Requires feature import:**
218
+ * ```typescript
219
+ * import '@toolbox-web/grid-angular/features/editing';
220
+ * ```
221
+ *
222
+ * @example
223
+ * ```html
224
+ * <!-- Enable with default trigger (dblclick) -->
225
+ * <tbw-grid [editing]="true" />
226
+ *
227
+ * <!-- Specify trigger -->
228
+ * <tbw-grid [editing]="'click'" />
229
+ * <tbw-grid [editing]="'dblclick'" />
230
+ * <tbw-grid [editing]="'manual'" />
231
+ * ```
232
+ */
233
+ editing: import('@angular/core').InputSignal<boolean | "click" | "dblclick" | "manual" | undefined>;
234
+ /**
235
+ * Enable clipboard copy/paste. Requires selection to be enabled.
236
+ *
237
+ * **Requires feature import:**
238
+ * ```typescript
239
+ * import '@toolbox-web/grid-angular/features/clipboard';
240
+ * ```
241
+ *
242
+ * @example
243
+ * ```html
244
+ * <tbw-grid [selection]="'range'" [clipboard]="true" />
245
+ * ```
246
+ */
247
+ clipboard: import('@angular/core').InputSignal<boolean | ClipboardConfig | undefined>;
248
+ /**
249
+ * Enable right-click context menu.
250
+ *
251
+ * **Requires feature import:**
252
+ * ```typescript
253
+ * import '@toolbox-web/grid-angular/features/context-menu';
254
+ * ```
255
+ *
256
+ * @example
257
+ * ```html
258
+ * <tbw-grid [contextMenu]="true" />
259
+ * ```
260
+ */
261
+ contextMenu: import('@angular/core').InputSignal<boolean | ContextMenuConfig | undefined>;
262
+ /**
263
+ * Enable multi-column sorting.
264
+ *
265
+ * Multi-sort allows users to sort by multiple columns simultaneously.
266
+ * For basic single-column sorting, columns with `sortable: true` work without this plugin.
267
+ *
268
+ * **Requires feature import:**
269
+ * ```typescript
270
+ * import '@toolbox-web/grid-angular/features/multi-sort';
271
+ * ```
272
+ *
273
+ * @example
274
+ * ```html
275
+ * <!-- Enable multi-column sorting -->
276
+ * <tbw-grid [multiSort]="true" />
277
+ *
278
+ * <!-- Limit to single column (uses plugin but restricts to 1 column) -->
279
+ * <tbw-grid [multiSort]="'single'" />
280
+ *
281
+ * <!-- Full config -->
282
+ * <tbw-grid [multiSort]="{ maxSortColumns: 3 }" />
283
+ * ```
284
+ */
285
+ multiSort: import('@angular/core').InputSignal<boolean | "multi" | MultiSortConfig | "single" | undefined>;
286
+ /**
287
+ * @deprecated Use `[multiSort]` instead. Will be removed in a future version.
288
+ *
289
+ * Enable column sorting. This is an alias for `[multiSort]`.
290
+ *
291
+ * **Requires feature import:**
292
+ * ```typescript
293
+ * import '@toolbox-web/grid-angular/features/multi-sort';
294
+ * ```
295
+ */
296
+ sorting: import('@angular/core').InputSignal<boolean | "multi" | MultiSortConfig | "single" | undefined>;
297
+ /**
298
+ * Enable column filtering.
299
+ *
300
+ * **Requires feature import:**
301
+ * ```typescript
302
+ * import '@toolbox-web/grid-angular/features/filtering';
303
+ * ```
304
+ *
305
+ * @example
306
+ * ```html
307
+ * <tbw-grid [filtering]="true" />
308
+ * <tbw-grid [filtering]="{ debounceMs: 200 }" />
309
+ * ```
310
+ */
311
+ filtering: import('@angular/core').InputSignal<boolean | FilterConfig<any> | undefined>;
312
+ /**
313
+ * Enable column drag-to-reorder.
314
+ *
315
+ * **Requires feature import:**
316
+ * ```typescript
317
+ * import '@toolbox-web/grid-angular/features/reorder';
318
+ * ```
319
+ *
320
+ * @example
321
+ * ```html
322
+ * <tbw-grid [reorder]="true" />
323
+ * ```
324
+ */
325
+ reorder: import('@angular/core').InputSignal<boolean | ReorderConfig | undefined>;
326
+ /**
327
+ * Enable column visibility toggle panel.
328
+ *
329
+ * **Requires feature import:**
330
+ * ```typescript
331
+ * import '@toolbox-web/grid-angular/features/visibility';
332
+ * ```
333
+ *
334
+ * @example
335
+ * ```html
336
+ * <tbw-grid [visibility]="true" />
337
+ * ```
338
+ */
339
+ visibility: import('@angular/core').InputSignal<boolean | VisibilityConfig | undefined>;
340
+ /**
341
+ * Enable pinned/sticky columns.
342
+ * Columns are pinned via the `sticky` column property.
343
+ *
344
+ * **Requires feature import:**
345
+ * ```typescript
346
+ * import '@toolbox-web/grid-angular/features/pinned-columns';
347
+ * ```
348
+ *
349
+ * @example
350
+ * ```html
351
+ * <tbw-grid [pinnedColumns]="true" [columns]="[
352
+ * { field: 'id', sticky: 'left' },
353
+ * { field: 'name' },
354
+ * { field: 'actions', sticky: 'right' }
355
+ * ]" />
356
+ * ```
357
+ */
358
+ pinnedColumns: import('@angular/core').InputSignal<boolean | undefined>;
359
+ /**
360
+ * Enable multi-level column headers (column groups).
361
+ *
362
+ * **Requires feature import:**
363
+ * ```typescript
364
+ * import '@toolbox-web/grid-angular/features/grouping-columns';
365
+ * ```
366
+ *
367
+ * @example
368
+ * ```html
369
+ * <tbw-grid [groupingColumns]="{ columnGroups: [...] }" />
370
+ * ```
371
+ */
372
+ groupingColumns: import('@angular/core').InputSignal<boolean | GroupingColumnsConfig | undefined>;
373
+ /**
374
+ * Enable horizontal column virtualization for wide grids.
375
+ *
376
+ * **Requires feature import:**
377
+ * ```typescript
378
+ * import '@toolbox-web/grid-angular/features/column-virtualization';
379
+ * ```
380
+ *
381
+ * @example
382
+ * ```html
383
+ * <tbw-grid [columnVirtualization]="true" />
384
+ * ```
385
+ */
386
+ columnVirtualization: import('@angular/core').InputSignal<boolean | ColumnVirtualizationConfig | undefined>;
387
+ /**
388
+ * Enable row drag-to-reorder.
389
+ *
390
+ * **Requires feature import:**
391
+ * ```typescript
392
+ * import '@toolbox-web/grid-angular/features/row-reorder';
393
+ * ```
394
+ *
395
+ * @example
396
+ * ```html
397
+ * <tbw-grid [rowReorder]="true" />
398
+ * ```
399
+ */
400
+ rowReorder: import('@angular/core').InputSignal<boolean | RowReorderConfig | undefined>;
401
+ /**
402
+ * Enable row grouping by field values.
403
+ *
404
+ * **Requires feature import:**
405
+ * ```typescript
406
+ * import '@toolbox-web/grid-angular/features/grouping-rows';
407
+ * ```
408
+ *
409
+ * @example
410
+ * ```html
411
+ * <tbw-grid [groupingRows]="{ groupBy: ['department'] }" />
412
+ * ```
413
+ */
414
+ groupingRows: import('@angular/core').InputSignal<GroupingRowsConfig | undefined>;
415
+ /**
416
+ * Enable pinned rows (aggregation/status bar).
417
+ *
418
+ * **Requires feature import:**
419
+ * ```typescript
420
+ * import '@toolbox-web/grid-angular/features/pinned-rows';
421
+ * ```
422
+ *
423
+ * @example
424
+ * ```html
425
+ * <tbw-grid [pinnedRows]="{ bottom: [{ type: 'aggregation' }] }" />
426
+ * ```
427
+ */
428
+ pinnedRows: import('@angular/core').InputSignal<boolean | PinnedRowsConfig | undefined>;
429
+ /**
430
+ * Enable hierarchical tree view.
431
+ *
432
+ * **Requires feature import:**
433
+ * ```typescript
434
+ * import '@toolbox-web/grid-angular/features/tree';
435
+ * ```
436
+ *
437
+ * @example
438
+ * ```html
439
+ * <tbw-grid [tree]="{ childrenField: 'children' }" />
440
+ * ```
441
+ */
442
+ tree: import('@angular/core').InputSignal<boolean | TreeConfig | undefined>;
443
+ /**
444
+ * Enable master-detail expandable rows.
445
+ *
446
+ * **Requires feature import:**
447
+ * ```typescript
448
+ * import '@toolbox-web/grid-angular/features/master-detail';
449
+ * ```
450
+ *
451
+ * @example
452
+ * ```html
453
+ * <tbw-grid [masterDetail]="{ detailRenderer: detailFn }" />
454
+ * ```
455
+ */
456
+ masterDetail: import('@angular/core').InputSignal<MasterDetailConfig | undefined>;
457
+ /**
458
+ * Enable responsive card layout for narrow viewports.
459
+ *
460
+ * **Requires feature import:**
461
+ * ```typescript
462
+ * import '@toolbox-web/grid-angular/features/responsive';
463
+ * ```
464
+ *
465
+ * @example
466
+ * ```html
467
+ * <tbw-grid [responsive]="{ breakpoint: 768 }" />
468
+ * ```
469
+ */
470
+ responsive: import('@angular/core').InputSignal<boolean | ResponsivePluginConfig<unknown> | undefined>;
471
+ /**
472
+ * Enable undo/redo for cell edits. Requires editing to be enabled.
473
+ *
474
+ * **Requires feature import:**
475
+ * ```typescript
476
+ * import '@toolbox-web/grid-angular/features/undo-redo';
477
+ * ```
478
+ *
479
+ * @example
480
+ * ```html
481
+ * <tbw-grid [editing]="'dblclick'" [undoRedo]="true" />
482
+ * ```
483
+ */
484
+ undoRedo: import('@angular/core').InputSignal<boolean | UndoRedoConfig | undefined>;
485
+ /**
486
+ * Enable CSV/JSON export functionality.
487
+ *
488
+ * **Requires feature import:**
489
+ * ```typescript
490
+ * import '@toolbox-web/grid-angular/features/export';
491
+ * ```
492
+ *
493
+ * @example
494
+ * ```html
495
+ * <tbw-grid [export]="true" />
496
+ * <tbw-grid [export]="{ filename: 'data.csv' }" />
497
+ * ```
498
+ */
499
+ exportFeature: import('@angular/core').InputSignal<boolean | ExportConfig | undefined>;
500
+ /**
501
+ * Enable print functionality.
502
+ *
503
+ * **Requires feature import:**
504
+ * ```typescript
505
+ * import '@toolbox-web/grid-angular/features/print';
506
+ * ```
507
+ *
508
+ * @example
509
+ * ```html
510
+ * <tbw-grid [print]="true" />
511
+ * ```
512
+ */
513
+ print: import('@angular/core').InputSignal<boolean | PrintConfig | undefined>;
514
+ /**
515
+ * Enable pivot table functionality.
516
+ *
517
+ * **Requires feature import:**
518
+ * ```typescript
519
+ * import '@toolbox-web/grid-angular/features/pivot';
520
+ * ```
521
+ *
522
+ * @example
523
+ * ```html
524
+ * <tbw-grid [pivot]="{ rowFields: ['category'], valueField: 'sales' }" />
525
+ * ```
526
+ */
527
+ pivot: import('@angular/core').InputSignal<PivotConfig | undefined>;
528
+ /**
529
+ * Enable server-side data operations.
530
+ *
531
+ * **Requires feature import:**
532
+ * ```typescript
533
+ * import '@toolbox-web/grid-angular/features/server-side';
534
+ * ```
535
+ *
536
+ * @example
537
+ * ```html
538
+ * <tbw-grid [serverSide]="{ dataSource: fetchDataFn }" />
539
+ * ```
540
+ */
541
+ serverSide: import('@angular/core').InputSignal<ServerSideConfig | undefined>;
542
+ /**
543
+ * Emitted when a cell is clicked.
544
+ *
545
+ * @example
546
+ * ```html
547
+ * <tbw-grid (cellClick)="onCellClick($event)">...</tbw-grid>
548
+ * ```
549
+ */
550
+ cellClick: import('@angular/core').OutputEmitterRef<CellClickDetail<any>>;
551
+ /**
552
+ * Emitted when a row is clicked.
553
+ *
554
+ * @example
555
+ * ```html
556
+ * <tbw-grid (rowClick)="onRowClick($event)">...</tbw-grid>
557
+ * ```
558
+ */
559
+ rowClick: import('@angular/core').OutputEmitterRef<RowClickDetail<any>>;
560
+ /**
561
+ * Emitted when a cell is activated (Enter key or double-click).
562
+ *
563
+ * @example
564
+ * ```html
565
+ * <tbw-grid (cellActivate)="onCellActivate($event)">...</tbw-grid>
566
+ * ```
567
+ */
568
+ cellActivate: import('@angular/core').OutputEmitterRef<CellActivateDetail<any>>;
569
+ /**
570
+ * Emitted when a cell value changes (before commit).
571
+ *
572
+ * @example
573
+ * ```html
574
+ * <tbw-grid (cellChange)="onCellChange($event)">...</tbw-grid>
575
+ * ```
576
+ */
577
+ cellChange: import('@angular/core').OutputEmitterRef<CellChangeDetail<any>>;
135
578
  /**
136
579
  * Emitted when a cell value is committed (inline editing).
137
580
  * Provides the row, field, new value, and change tracking information.
@@ -158,7 +601,190 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
158
601
  * ```
159
602
  */
160
603
  rowCommit: import('@angular/core').OutputEmitterRef<RowCommitEvent<unknown>>;
604
+ /**
605
+ * Emitted when the changed rows are reset.
606
+ *
607
+ * @example
608
+ * ```html
609
+ * <tbw-grid (changedRowsReset)="onChangedRowsReset($event)">...</tbw-grid>
610
+ * ```
611
+ */
612
+ changedRowsReset: import('@angular/core').OutputEmitterRef<ChangedRowsResetDetail<unknown>>;
613
+ /**
614
+ * Emitted when sort state changes.
615
+ *
616
+ * @example
617
+ * ```html
618
+ * <tbw-grid (sortChange)="onSortChange($event)">...</tbw-grid>
619
+ * ```
620
+ */
621
+ sortChange: import('@angular/core').OutputEmitterRef<SortChangeDetail>;
622
+ /**
623
+ * Emitted when filter values change.
624
+ *
625
+ * @example
626
+ * ```html
627
+ * <tbw-grid (filterChange)="onFilterChange($event)">...</tbw-grid>
628
+ * ```
629
+ */
630
+ filterChange: import('@angular/core').OutputEmitterRef<FilterChangeDetail>;
631
+ /**
632
+ * Emitted when a column is resized.
633
+ *
634
+ * @example
635
+ * ```html
636
+ * <tbw-grid (columnResize)="onColumnResize($event)">...</tbw-grid>
637
+ * ```
638
+ */
639
+ columnResize: import('@angular/core').OutputEmitterRef<ColumnResizeDetail>;
640
+ /**
641
+ * Emitted when a column is moved via drag-and-drop.
642
+ *
643
+ * @example
644
+ * ```html
645
+ * <tbw-grid (columnMove)="onColumnMove($event)">...</tbw-grid>
646
+ * ```
647
+ */
648
+ columnMove: import('@angular/core').OutputEmitterRef<ColumnMoveDetail>;
649
+ /**
650
+ * Emitted when column visibility changes.
651
+ *
652
+ * @example
653
+ * ```html
654
+ * <tbw-grid (columnVisibility)="onColumnVisibility($event)">...</tbw-grid>
655
+ * ```
656
+ */
657
+ columnVisibility: import('@angular/core').OutputEmitterRef<ColumnVisibilityDetail>;
658
+ /**
659
+ * Emitted when column state changes (resize, reorder, visibility).
660
+ *
661
+ * @example
662
+ * ```html
663
+ * <tbw-grid (columnStateChange)="onColumnStateChange($event)">...</tbw-grid>
664
+ * ```
665
+ */
666
+ columnStateChange: import('@angular/core').OutputEmitterRef<GridColumnState>;
667
+ /**
668
+ * Emitted when selection changes.
669
+ *
670
+ * @example
671
+ * ```html
672
+ * <tbw-grid (selectionChange)="onSelectionChange($event)">...</tbw-grid>
673
+ * ```
674
+ */
675
+ selectionChange: import('@angular/core').OutputEmitterRef<SelectionChangeDetail>;
676
+ /**
677
+ * Emitted when a row is moved via drag-and-drop.
678
+ *
679
+ * @example
680
+ * ```html
681
+ * <tbw-grid (rowMove)="onRowMove($event)">...</tbw-grid>
682
+ * ```
683
+ */
684
+ rowMove: import('@angular/core').OutputEmitterRef<RowMoveDetail<any>>;
685
+ /**
686
+ * Emitted when a group is expanded or collapsed.
687
+ *
688
+ * @example
689
+ * ```html
690
+ * <tbw-grid (groupToggle)="onGroupToggle($event)">...</tbw-grid>
691
+ * ```
692
+ */
693
+ groupToggle: import('@angular/core').OutputEmitterRef<GroupToggleDetail>;
694
+ /**
695
+ * Emitted when a tree node is expanded.
696
+ *
697
+ * @example
698
+ * ```html
699
+ * <tbw-grid (treeExpand)="onTreeExpand($event)">...</tbw-grid>
700
+ * ```
701
+ */
702
+ treeExpand: import('@angular/core').OutputEmitterRef<TreeExpandDetail<any>>;
703
+ /**
704
+ * Emitted when a detail panel is expanded or collapsed.
705
+ *
706
+ * @example
707
+ * ```html
708
+ * <tbw-grid (detailExpand)="onDetailExpand($event)">...</tbw-grid>
709
+ * ```
710
+ */
711
+ detailExpand: import('@angular/core').OutputEmitterRef<DetailExpandDetail>;
712
+ /**
713
+ * Emitted when responsive mode changes (table ↔ card).
714
+ *
715
+ * @example
716
+ * ```html
717
+ * <tbw-grid (responsiveChange)="onResponsiveChange($event)">...</tbw-grid>
718
+ * ```
719
+ */
720
+ responsiveChange: import('@angular/core').OutputEmitterRef<ResponsiveChangeDetail>;
721
+ /**
722
+ * Emitted when cells are copied to clipboard.
723
+ *
724
+ * @example
725
+ * ```html
726
+ * <tbw-grid (copy)="onCopy($event)">...</tbw-grid>
727
+ * ```
728
+ */
729
+ copy: import('@angular/core').OutputEmitterRef<CopyDetail>;
730
+ /**
731
+ * Emitted when cells are pasted from clipboard.
732
+ *
733
+ * @example
734
+ * ```html
735
+ * <tbw-grid (paste)="onPaste($event)">...</tbw-grid>
736
+ * ```
737
+ */
738
+ paste: import('@angular/core').OutputEmitterRef<PasteDetail>;
739
+ /**
740
+ * Emitted when undo/redo is performed.
741
+ *
742
+ * @example
743
+ * ```html
744
+ * <tbw-grid (undoRedoAction)="onUndoRedo($event)">...</tbw-grid>
745
+ * ```
746
+ */
747
+ undoRedoAction: import('@angular/core').OutputEmitterRef<UndoRedoDetail>;
748
+ /**
749
+ * Emitted when export completes.
750
+ *
751
+ * @example
752
+ * ```html
753
+ * <tbw-grid (exportComplete)="onExportComplete($event)">...</tbw-grid>
754
+ * ```
755
+ */
756
+ exportComplete: import('@angular/core').OutputEmitterRef<ExportCompleteDetail>;
757
+ /**
758
+ * Emitted when print starts.
759
+ *
760
+ * @example
761
+ * ```html
762
+ * <tbw-grid (printStart)="onPrintStart($event)">...</tbw-grid>
763
+ * ```
764
+ */
765
+ printStart: import('@angular/core').OutputEmitterRef<PrintStartDetail>;
766
+ /**
767
+ * Emitted when print completes.
768
+ *
769
+ * @example
770
+ * ```html
771
+ * <tbw-grid (printComplete)="onPrintComplete($event)">...</tbw-grid>
772
+ * ```
773
+ */
774
+ printComplete: import('@angular/core').OutputEmitterRef<PrintCompleteDetail>;
775
+ private readonly eventOutputMap;
776
+ private eventListeners;
161
777
  ngOnInit(): void;
778
+ /**
779
+ * Sets up event listeners for all outputs using the eventOutputMap.
780
+ */
781
+ private setupEventListeners;
782
+ /**
783
+ * Creates plugins from feature inputs.
784
+ * Uses the feature registry to allow tree-shaking - only imported features are bundled.
785
+ * Returns the array of created plugins (doesn't modify grid).
786
+ */
787
+ private createFeaturePlugins;
162
788
  ngAfterContentInit(): void;
163
789
  /**
164
790
  * Registers custom styles into the grid.
@@ -168,7 +794,7 @@ export declare class Grid implements OnInit, AfterContentInit, OnDestroy {
168
794
  /**
169
795
  * Configures the MasterDetailPlugin after Angular templates are registered.
170
796
  * - If plugin exists: refresh its detail renderer
171
- * - If plugin doesn't exist but <tbw-grid-detail> is present: create and add the plugin
797
+ * - If plugin doesn't exist but <tbw-grid-detail> is present: dynamically import and add the plugin
172
798
  */
173
799
  private configureMasterDetail;
174
800
  /**
@@ -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":"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"}