@toolbox-web/grid-angular 1.9.0 → 2.0.0-beta

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 (33) hide show
  1. package/fesm2022/toolbox-web-grid-angular-features-editing.mjs +2317 -4
  2. package/fesm2022/toolbox-web-grid-angular-features-editing.mjs.map +1 -1
  3. package/fesm2022/toolbox-web-grid-angular-features-filtering.mjs +91 -2
  4. package/fesm2022/toolbox-web-grid-angular-features-filtering.mjs.map +1 -1
  5. package/fesm2022/toolbox-web-grid-angular-features-master-detail.mjs +97 -4
  6. package/fesm2022/toolbox-web-grid-angular-features-master-detail.mjs.map +1 -1
  7. package/fesm2022/toolbox-web-grid-angular-features-pinned-rows.mjs +1 -15
  8. package/fesm2022/toolbox-web-grid-angular-features-pinned-rows.mjs.map +1 -1
  9. package/fesm2022/toolbox-web-grid-angular-features-responsive.mjs +109 -3
  10. package/fesm2022/toolbox-web-grid-angular-features-responsive.mjs.map +1 -1
  11. package/fesm2022/toolbox-web-grid-angular-features-shell.mjs +452 -0
  12. package/fesm2022/toolbox-web-grid-angular-features-shell.mjs.map +1 -1
  13. package/fesm2022/toolbox-web-grid-angular.mjs +768 -4649
  14. package/fesm2022/toolbox-web-grid-angular.mjs.map +1 -1
  15. package/package.json +2 -6
  16. package/types/toolbox-web-grid-angular-features-editing.d.ts +1181 -4
  17. package/types/toolbox-web-grid-angular-features-editing.d.ts.map +1 -1
  18. package/types/toolbox-web-grid-angular-features-filtering.d.ts +102 -7
  19. package/types/toolbox-web-grid-angular-features-filtering.d.ts.map +1 -1
  20. package/types/toolbox-web-grid-angular-features-master-detail.d.ts +88 -4
  21. package/types/toolbox-web-grid-angular-features-master-detail.d.ts.map +1 -1
  22. package/types/toolbox-web-grid-angular-features-pinned-rows.d.ts +2 -7
  23. package/types/toolbox-web-grid-angular-features-pinned-rows.d.ts.map +1 -1
  24. package/types/toolbox-web-grid-angular-features-responsive.d.ts +109 -3
  25. package/types/toolbox-web-grid-angular-features-responsive.d.ts.map +1 -1
  26. package/types/toolbox-web-grid-angular-features-shell.d.ts +229 -0
  27. package/types/toolbox-web-grid-angular-features-shell.d.ts.map +1 -1
  28. package/types/toolbox-web-grid-angular.d.ts +483 -2929
  29. package/types/toolbox-web-grid-angular.d.ts.map +1 -1
  30. package/fesm2022/toolbox-web-grid-angular-features-reorder-rows.mjs +0 -70
  31. package/fesm2022/toolbox-web-grid-angular-features-reorder-rows.mjs.map +0 -1
  32. package/types/toolbox-web-grid-angular-features-reorder-rows.d.ts +0 -25
  33. package/types/toolbox-web-grid-angular-features-reorder-rows.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"toolbox-web-grid-angular-features-editing.d.ts","sources":["../../../../libs/grid-angular/features/editing/src/grid-editing.directive.ts"],"mappings":";;;;;;;AAiCA;;;;AAIG;AACH,cAKa,oBAAqB,YAAW,MAAM,EAAE,SAAS;AAC5D;sBAEgB,aAAA,CAAA,WAAA,WAAA,aAAA;yBACG,aAAA,CAAA,gBAAA,CAAA,eAAA;yBACA,aAAA,CAAA,gBAAA,CAAA,gBAAA;wBACD,aAAA,CAAA,gBAAA,CAAA,cAAA;+BAEO,aAAA,CAAA,gBAAA,CAAA,sBAAA;uBAER,aAAA,CAAA,gBAAA,CAAA,cAAA;8BAEO,aAAA,CAAA,gBAAA,CAAA,qBAAA;wBAEN,aAAA,CAAA,gBAAA,CAAA,eAAA;0BAEE,aAAA,CAAA,gBAAA,CAAA,iBAAA;AAEpB;AACA;;AAiBA;AAsBA;oDA1DW,oBAAoB;sDAApB,oBAAoB;AAiEhC;;;;","names":[]}
1
+ {"version":3,"file":"toolbox-web-grid-angular-features-editing.d.ts","sources":["../../../../libs/grid-angular/features/editing/src/grid-editing.directive.ts","../../../../libs/grid-angular/features/editing/src/base-grid-editor.ts","../../../../libs/grid-angular/features/editing/src/base-grid-editor-cva.ts","../../../../libs/grid-angular/features/editing/src/base-overlay-editor.ts","../../../../libs/grid-angular/features/editing/src/grid-column-editor.directive.ts","../../../../libs/grid-angular/features/editing/src/grid-form-array.directive.ts","../../../../libs/grid-angular/features/editing/src/grid-lazy-form.directive.ts","../../../../libs/grid-angular/features/editing/src/structural-editor.directive.ts"],"mappings":";;;;;;;;AAiCA;;;;AAIG;AACH,cAKa,oBAAqB,YAAW,MAAM,EAAE,SAAS;AAC5D;sBAEgB,aAAA,CAAA,WAAA,qBAAA,aAAA;yBACG,aAAA,CAAA,gBAAA,CAAA,eAAA;yBACA,aAAA,CAAA,gBAAA,CAAA,gBAAA;wBACD,aAAA,CAAA,gBAAA,CAAA,cAAA;+BAEO,aAAA,CAAA,gBAAA,CAAA,sBAAA;uBAER,aAAA,CAAA,gBAAA,CAAA,cAAA;8BAEO,aAAA,CAAA,gBAAA,CAAA,qBAAA;wBAEN,aAAA,CAAA,gBAAA,CAAA,eAAA;0BAEE,aAAA,CAAA,gBAAA,CAAA,iBAAA;AAEpB;AACA;;AAiBA;AAsBA;oDA1DW,oBAAoB;sDAApB,oBAAoB;AAiEhC;;ACxGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DG;AACH,uBACsB,cAAc;AAClC,mCAA6B,UAAA;AAC7B;;;AASA;;;AAGG;oBACW,aAAA,CAAA,WAAA;AAEd;;AAEG;kBACS,aAAA,CAAA,WAAA;AAEZ;;AAEG;qBACY,aAAA,CAAA,WAAA,CAAA,YAAA;AAEf;;;AAGG;sBACa,aAAA,CAAA,WAAA,CAAA,eAAA;AAMhB;;;AAGG;qBACY,aAAA,CAAA,gBAAA;AAEf;;AAEG;qBACY,aAAA,CAAA,gBAAA;AAMf;;;AAGG;2BACkB,aAAA,CAAA,MAAA;AAQrB;;;AAGG;wBACe,aAAA,CAAA,MAAA;AAIlB;;;AAGG;sBACa,aAAA,CAAA,MAAA;AAIhB;;;AAGG;wBACe,aAAA,CAAA,MAAA;AAIlB;;AAEG;wBACe,aAAA,CAAA,MAAA;AAKlB;;;AAGG;gCACuB,aAAA,CAAA,MAAA;AAQ1B;;AAEG;+BACsB,aAAA,CAAA,MAAA;;AAmBzB;AA+BA;;;;;;;;AAQG;;AAKH;;;;;;;;AAQG;;AAKH;;;;;;;;;AASG;;AAKH;;;;;;;;;;;;AAYG;AACH;AAIA;;;;AAIG;AACH;AASA;;;AAGG;AACH;AAQA;;;;;;;AAOG;AACH;oDA5PoB,cAAc;sDAAd,cAAc;AAwRnC;;ACvVD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDG;AACH,uBACsB,iBAAiB,2CAC7B,cAAc,0BACX,oBAAoB;;;;;AAc/B;;;AAGG;AACH,iCAA2B,aAAA,CAAA,cAAA;AAE3B;;;AAGG;4BACmB,aAAA,CAAA,cAAA;AAEtB;;;;;;;;AAQG;2BACkB,aAAA,CAAA,MAAA;AAQrB;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAQA;;;;;;;;;;AAUG;;oDAvFiB,iBAAiB;sDAAjB,iBAAiB;AAkGtC;;ACtJD;;;;;;;;;AASG;AACG,KAAM,eAAe;AAuF3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGG;AACH,uBACsB,iBAAiB,2CAA2C,cAAc;AAC9F;AACA;AAMA;;;;;AAKG;AACH,+BAA2B,eAAe;;;;;;;;;;;;AAsB1C,8BAA0B,gBAAgB;;AAmB1C;;;;;;;AAOG;AACH,iCAA6B,WAAW;AAoDxC;;;;;AAKG;;AAaH;;;;;AAKG;;AAYH;;;AAGG;;AAQH;;;;;AAKG;;AA4BH;;;;AAIG;AACgB;AAQnB;;;;;;;AAOG;AACH,2BAAuB,aAAa;AAgBpC;;;;;AAKG;AACH;AASA;;;;;AAKG;AACH,kCAA8B,KAAK;AASnC;;;;;;;AAOG;AACH;AAkBA;;;;;AAKG;AACH,yCAAqC,gBAAgB;AAErD;;;;;AAKG;AACH;AAEA;;;;;AAKG;;;AAUH;;AAKA;AASA;;;AAGG;AACH;AA+DA;;;;AAIG;AACH;AAYA;;;;;;;;AAQG;AACH;AAKA;;;;;;;;;;AAUG;;oDAxbiB,iBAAiB;sDAAjB,iBAAiB;AAqftC;;AC3rBD;;;;AAIG;AACG,UAAW,iBAAiB;;;;;;;;;;;;;AAahC;;;AAGG;AACH;AACA;;;AAGG;;AAEH;;;AAGG;yBACkB,OAAO;AAC5B;;;;;;AAMG;AACH;AACA;;;;;;;;;;;;;;AAcG;cACO,eAAe;AAC1B;AAKD;;;AAGG;AACH,iBAAgB,iBAAiB,UAAU,WAAW,GAAG,WAAW,CAAC,iBAAiB;AAItF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACH,cACa,gBAAgB;;AAG3B;;AAEG;AACH,cAAQ,aAAA,CAAA,MAAA,CAAA,WAAA;;;AAWR;;;AAGG;AACH,uCAAmC,gBAAgB,wBAAwB,iBAAiB;oDArBjF,gBAAgB;sDAAhB,gBAAgB;AAwB5B;;ACvHD;;;;AAIG;UACc,gBAAgB;;AAE/B;;AAEA;;AAEA;AACA;;;;;;;AAOG;AACH,iDAA6C,eAAe;AAC5D;;;AAGG;;AAEH;;;;;;AAMG;uCACgC,SAAS;AAC5C;;;;;;AAMG;AACH;AACA;;;;;;AAMG;AACH;AACA;;;;;;AAMG;AACH;AACA;;;;;;AAMG;AACH,oCAAgC,MAAM;AACvC;AAKD;;;;AAIG;AACH,iBAAgB,mBAAmB,cAAc,WAAW,GAAG,gBAAgB;AAI/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DG;AACH,cAGa,aAAc,YAAW,MAAM,EAAE,SAAS;;AACrD;;;;;;;;AASA;;AAEG;wBACe,aAAA,CAAA,WAAA,CAAA,SAAA;AAElB;;;;;;;;;;AAUG;6BACoB,aAAA,CAAA,WAAA;AAEvB;;;AAGG;;AA8BH;AAsDA;oDAnHW,aAAa;sDAAb,aAAa;AA2bzB;;ACllBD;;;;AAIG;AACH,iBAAgB,kBAAkB,cAAc,WAAW,GAAG,gBAAgB;AAI9E;;;;;;;;;AASG;KACS,eAAe,oDAAoD,SAAS;AAExF;;;AAGG;AACG,UAAW,kBAAkB;;;;;;;;eAQtB,SAAS;;AAEpB,YAAQ,OAAO;;;;;AAKhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EG;AACH,cAGa,YAAY,4BAA4B,MAAM,EAAE,SAAS;;;;;;;;;AAcpE;;;;;;;;;;;;AAYG;uBACc,aAAA,CAAA,WAAA,CAAA,eAAA;AAEjB;;;;;;;;;AASG;6BACoB,aAAA,CAAA,WAAA;AAEvB;;;;;;;AAOG;6BACoB,aAAA,CAAA,WAAA;AAEvB;;;AAGG;4BACmB,aAAA,CAAA,gBAAA,CAAA,kBAAA;AAEtB;AA6BA;AAmTA;;;;;;AAMG;AACH,oCAAgC,SAAS;AAIzC;;;;;AAKG;AACH,wBAAoB,WAAW,OAAO,SAAS;AAI/C;;;AAGG;AACH;AAKA;;;;AAIG;AACH;oDA5aW,YAAY;sDAAZ,YAAY;AAubxB;;AChkBD;;;;;;AAMG;AAEG,UAAW,uBAAuB;;;;;;;;;AAUtC;;AAEG;AACH;AACA;;AAEG;;AAEH;;;;;;;AAOG;cACO,eAAe;AAC1B;AAKD;;;AAGG;AACH,iBAAgB,2BAA2B,gBAC1B,WAAW,GACzB,WAAW,CAAC,uBAAuB;AAatC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDG;AACH,cACa,SAAU,YAAW,SAAS;;;;;AAWzC;AAaA;AAMA;;;AAGG;AACH,uCAAmC,SAAS,wBAAwB,uBAAuB;oDAlChF,SAAS;sDAAT,SAAS;AAqCrB;;;;","names":[]}
@@ -1,9 +1,9 @@
1
- import * as _angular_core from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
2
  import { OnInit, OnDestroy, Type, Signal } from '@angular/core';
3
3
  import { FilterConfig as FilterConfig$1, FilterChangeDetail, FilterModel, BlankMode } from '@toolbox-web/grid/plugins/filtering';
4
4
  export { _Augmentation as _FilteringAugmentation } from '@toolbox-web/grid/features/filtering';
5
5
  import { FilterPanel } from '@toolbox-web/grid-angular';
6
- export { BaseFilterPanel } from '@toolbox-web/grid-angular';
6
+ import * as _toolbox_web_grid_all from '@toolbox-web/grid/all';
7
7
 
8
8
  /**
9
9
  * Angular-specific filter config that allows an Angular component class as
@@ -43,7 +43,7 @@ declare class GridFilteringDirective implements OnInit, OnDestroy {
43
43
  * <tbw-grid [filtering]="{ debounceMs: 200 }" />
44
44
  * ```
45
45
  */
46
- readonly filtering: _angular_core.InputSignal<boolean | FilterConfig<any> | undefined>;
46
+ readonly filtering: i0.InputSignal<boolean | FilterConfig<any> | undefined>;
47
47
  /**
48
48
  * Emitted when filter values change.
49
49
  *
@@ -52,13 +52,108 @@ declare class GridFilteringDirective implements OnInit, OnDestroy {
52
52
  * <tbw-grid (filterChange)="onFilterChange($event)" />
53
53
  * ```
54
54
  */
55
- readonly filterChange: _angular_core.OutputEmitterRef<FilterChangeDetail>;
55
+ readonly filterChange: i0.OutputEmitterRef<FilterChangeDetail>;
56
56
  private listener?;
57
57
  constructor();
58
58
  ngOnInit(): void;
59
59
  ngOnDestroy(): void;
60
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridFilteringDirective, never>;
61
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridFilteringDirective, "tbw-grid[filtering], tbw-grid[filterChange]", never, { "filtering": { "alias": "filtering"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<GridFilteringDirective, never>;
61
+ static ɵdir: i0.ɵɵDirectiveDeclaration<GridFilteringDirective, "tbw-grid[filtering], tbw-grid[filterChange]", never, { "filtering": { "alias": "filtering"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
62
+ }
63
+
64
+ /**
65
+ * Base class for Angular filter panel components.
66
+ *
67
+ * Provides a ready-made `params` input and common lifecycle helpers
68
+ * (`applyAndClose`, `clearAndClose`) so consumers only need to implement
69
+ * their filter logic in `applyFilter()`.
70
+ *
71
+ * ## Usage
72
+ *
73
+ * ```typescript
74
+ * import { Component, viewChild, ElementRef } from '@angular/core';
75
+ * import { BaseFilterPanel } from '@toolbox-web/grid-angular/features/filtering';
76
+ *
77
+ * @Component({
78
+ * selector: 'app-text-filter',
79
+ * template: `
80
+ * <input #input (keydown.enter)="applyAndClose()" />
81
+ * <button (click)="applyAndClose()">Apply</button>
82
+ * <button (click)="clearAndClose()">Clear</button>
83
+ * `
84
+ * })
85
+ * export class TextFilterComponent extends BaseFilterPanel {
86
+ * input = viewChild.required<ElementRef<HTMLInputElement>>('input');
87
+ *
88
+ * applyFilter(): void {
89
+ * this.params().applyTextFilter('contains', this.input().nativeElement.value);
90
+ * }
91
+ * }
92
+ * ```
93
+ *
94
+ * ## Template Syntax
95
+ *
96
+ * The grid's filtering plugin will mount this component and provide `params`
97
+ * automatically. No manual wiring is required:
98
+ *
99
+ * ```typescript
100
+ * gridConfig = {
101
+ * columns: [
102
+ * { field: 'name', filterable: true, filterPanel: TextFilterComponent },
103
+ * ],
104
+ * };
105
+ * ```
106
+ *
107
+ * @typeParam TRow - The row data type (available via `params().column`)
108
+ *
109
+ * @since 0.13.0
110
+ */
111
+ declare abstract class BaseFilterPanel implements FilterPanel {
112
+ /**
113
+ * Filter panel parameters injected by the grid's filtering plugin.
114
+ *
115
+ * Provides access to:
116
+ * - `field` — the column field name
117
+ * - `column` — full column configuration
118
+ * - `uniqueValues` — distinct values in the column
119
+ * - `excludedValues` — currently excluded values (set filter)
120
+ * - `searchText` — current search text
121
+ * - `applySetFilter(excluded)` — apply a set-based (include/exclude) filter
122
+ * - `applyTextFilter(operator, value, valueTo?)` — apply a text/number filter
123
+ * - `clearFilter()` — clear the filter for this column
124
+ * - `closePanel()` — close the filter panel
125
+ */
126
+ readonly params: i0.InputSignal<_toolbox_web_grid_all.FilterPanelParams>;
127
+ /**
128
+ * Implement this to apply your filter logic.
129
+ *
130
+ * Called by {@link applyAndClose} before closing the panel.
131
+ * Use `this.params()` to access the filter API.
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * applyFilter(): void {
136
+ * this.params().applyTextFilter('contains', this.searchText);
137
+ * }
138
+ * ```
139
+ */
140
+ abstract applyFilter(): void;
141
+ /**
142
+ * Apply the filter then close the panel.
143
+ *
144
+ * Calls {@link applyFilter} followed by `params().closePanel()`.
145
+ * Bind this to your "Apply" button or Enter key handler.
146
+ */
147
+ applyAndClose(): void;
148
+ /**
149
+ * Clear the filter then close the panel.
150
+ *
151
+ * Calls `params().clearFilter()` followed by `params().closePanel()`.
152
+ * Bind this to your "Clear" / "Reset" button.
153
+ */
154
+ clearAndClose(): void;
155
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseFilterPanel, never>;
156
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFilterPanel, never, never, { "params": { "alias": "params"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
62
157
  }
63
158
 
64
159
  /**
@@ -225,6 +320,6 @@ interface FilteringMethods {
225
320
  */
226
321
  declare function injectGridFiltering(selector?: string): FilteringMethods;
227
322
 
228
- export { GridFilteringDirective, injectGridFiltering };
323
+ export { BaseFilterPanel, GridFilteringDirective, injectGridFiltering };
229
324
  export type { FilterConfig, FilteringMethods };
230
325
  //# sourceMappingURL=toolbox-web-grid-angular-features-filtering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbox-web-grid-angular-features-filtering.d.ts","sources":["../../../../libs/grid-angular/features/filtering/src/grid-filtering.directive.ts","../../../../libs/grid-angular/features/filtering/src/index.ts"],"mappings":";;;;;;;AAuDA;;;;;;;;;;;;;;AAcG;KAES,YAAY,eAAe,IAAI,CAACA,cAAgB;AAC1D,0BAAsBA,cAAgB,gCAAgC,IAAI,CAAC,WAAW;;AAGxF;;;;;;;AAOG;AACH,cAIa,sBAAuB,YAAW,MAAM,EAAE,SAAS;AAC9D;AAEA;;;;;;;;;AASG;wBAEe,aAAA,CAAA,WAAA,WAAA,YAAA;AAElB;;;;;;;AAOG;2BACkB,aAAA,CAAA,gBAAA,CAAA,kBAAA;;;AAiBrB;AAQA;oDAjDW,sBAAsB;sDAAtB,sBAAsB;AA6DlC;;ACpJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDG;;AA8EH;;;;AAIG;UACc,gBAAgB;AAC/B;;;;;AAKG;AACH,uCAAmC,IAAI,CAAC,WAAW;;AAAiD;AAEpG;;AAEG;kCAC2B,WAAW;AAEzC;;AAEG;AACH,sBAAkB,WAAW;AAE7B;;;AAGG;8BACuB,WAAW;;AAAkC;AAEvE;;;AAGG;AACH;;AAAgD;AAEhD;;;AAGG;;;AAC6D;AAEhE;;AAEG;AACH;AAEA;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;AACH,2BAAuB,WAAW;AAElC;;AAEG;AACH,qCAAiC,SAAS;AAE1C;;AAEG;6CACsC,SAAS;AAElD;;AAEG;AACH,aAAS,MAAM;AAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;AACH,iBAAgB,mBAAmB,qBAAyB,gBAAgB;;;;","names":["CoreFilterConfig"]}
1
+ {"version":3,"file":"toolbox-web-grid-angular-features-filtering.d.ts","sources":["../../../../libs/grid-angular/features/filtering/src/grid-filtering.directive.ts","../../../../libs/grid-angular/features/filtering/src/base-filter-panel.ts","../../../../libs/grid-angular/features/filtering/src/index.ts"],"mappings":";;;;;;;AAuDA;;;;;;;;;;;;;;AAcG;KAES,YAAY,eAAe,IAAI,CAACA,cAAgB;AAC1D,0BAAsBA,cAAgB,gCAAgC,IAAI,CAAC,WAAW;;AAGxF;;;;;;;AAOG;AACH,cAIa,sBAAuB,YAAW,MAAM,EAAE,SAAS;AAC9D;AAEA;;;;;;;;;AASG;wBAEeC,EAAA,CAAA,WAAA,WAAA,YAAA;AAElB;;;;;;;AAOG;2BACkBA,EAAA,CAAA,gBAAA,CAAA,kBAAA;;;AAiBrB;AAQA;yCAjDW,sBAAsB;2CAAtB,sBAAsB;AA6DlC;;AC/ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;AACH,uBACsB,eAAgB,YAAW,WAAW;AAC1D;;;;;;;;;;;;;AAaG;qBACYA,EAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,iBAAA;AAEf;;;;;;;;;;;;AAYG;;AAGH;;;;;AAKG;AACH;AAKA;;;;;AAKG;AACH;yCAjDoB,eAAe;2CAAf,eAAe;AAqDpC;;AC1GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDG;;AA2EH;;;;AAIG;UACc,gBAAgB;AAC/B;;;;;AAKG;AACH,uCAAmC,IAAI,CAAC,WAAW;;AAAiD;AAEpG;;AAEG;kCAC2B,WAAW;AAEzC;;AAEG;AACH,sBAAkB,WAAW;AAE7B;;;AAGG;8BACuB,WAAW;;AAAkC;AAEvE;;;AAGG;AACH;;AAAgD;AAEhD;;;AAGG;;;AAC6D;AAEhE;;AAEG;AACH;AAEA;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;AACH,2BAAuB,WAAW;AAElC;;AAEG;AACH,qCAAiC,SAAS;AAE1C;;AAEG;6CACsC,SAAS;AAElD;;AAEG;AACH,aAAS,MAAM;AAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;AACH,iBAAgB,mBAAmB,qBAAyB,gBAAgB;;;;","names":["CoreFilterConfig","_angular_core"]}
@@ -1,8 +1,8 @@
1
1
  export { _Augmentation as _MasterDetailAugmentation } from '@toolbox-web/grid/features/master-detail';
2
2
  import * as _angular_core from '@angular/core';
3
- import { OnInit, OnDestroy, Type } from '@angular/core';
3
+ import { OnInit, OnDestroy, Type, TemplateRef } from '@angular/core';
4
4
  import { MasterDetailConfig as MasterDetailConfig$1, DetailExpandDetail } from '@toolbox-web/grid/plugins/master-detail';
5
- export { GridDetailContext, GridDetailView, getDetailTemplate } from '@toolbox-web/grid-angular';
5
+ import { ExpandCollapseAnimation } from '@toolbox-web/grid';
6
6
 
7
7
  /**
8
8
  * Angular-specific master-detail config that allows an Angular component class
@@ -40,6 +40,90 @@ declare class GridMasterDetailDirective implements OnInit, OnDestroy {
40
40
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridMasterDetailDirective, "tbw-grid[masterDetail], tbw-grid[detailExpand]", never, { "masterDetail": { "alias": "masterDetail"; "required": false; "isSignal": true; }; }, { "detailExpand": "detailExpand"; }, never, never, true, never>;
41
41
  }
42
42
 
43
- export { GridMasterDetailDirective };
44
- export type { MasterDetailConfig };
43
+ /**
44
+ * Context object passed to the detail renderer template.
45
+ * Contains the row data for the expanded detail view.
46
+ * @since 0.1.0
47
+ */
48
+ interface GridDetailContext<TRow = unknown> {
49
+ /** The row data (implicit binding for let-row) */
50
+ $implicit: TRow;
51
+ /** The row data (explicit binding) */
52
+ row: TRow;
53
+ }
54
+ /**
55
+ * Gets the detail template registered for a given grid element.
56
+ * Used by AngularGridAdapter to retrieve templates at render time.
57
+ * @since 0.1.0
58
+ */
59
+ declare function getDetailTemplate(gridElement: HTMLElement): TemplateRef<GridDetailContext> | undefined;
60
+ /**
61
+ * Directive that captures an `<ng-template>` for use as a master-detail row renderer.
62
+ *
63
+ * This enables declarative Angular component usage for expandable detail rows
64
+ * that appear below the main row when expanded.
65
+ *
66
+ * ## Usage
67
+ *
68
+ * ```html
69
+ * <tbw-grid [rows]="rows" [gridConfig]="config">
70
+ * <tbw-grid-detail [showExpandColumn]="true" animation="slide">
71
+ * <ng-template let-row>
72
+ * <app-detail-panel [employee]="row" />
73
+ * </ng-template>
74
+ * </tbw-grid-detail>
75
+ * </tbw-grid>
76
+ * ```
77
+ *
78
+ * The template context provides:
79
+ * - `$implicit` / `row`: The full row data object
80
+ *
81
+ * Import the directive from the master-detail feature entry:
82
+ *
83
+ * ```typescript
84
+ * import { GridDetailView } from '@toolbox-web/grid-angular/features/master-detail';
85
+ *
86
+ * @Component({
87
+ * imports: [GridDetailView],
88
+ * // ...
89
+ * })
90
+ * ```
91
+ *
92
+ * @example
93
+ * ```html
94
+ * <tbw-grid [rows]="rows" [gridConfig]="config">
95
+ * <tbw-grid-detail [showExpandColumn]="true" animation="slide">
96
+ * <ng-template let-row>
97
+ * <app-detail-panel [employee]="row" />
98
+ * </ng-template>
99
+ * </tbw-grid-detail>
100
+ * </tbw-grid>
101
+ * ```
102
+ *
103
+ * @category Directive
104
+ * @since 0.1.0
105
+ */
106
+ declare class GridDetailView {
107
+ private elementRef;
108
+ /** Whether to show the expand/collapse column. Default: true */
109
+ showExpandColumn: _angular_core.InputSignal<boolean>;
110
+ /** Animation style for expand/collapse. Default: 'slide' */
111
+ animation: _angular_core.InputSignal<ExpandCollapseAnimation>;
112
+ /**
113
+ * Query for the ng-template content child.
114
+ */
115
+ template: _angular_core.Signal<TemplateRef<any> | undefined>;
116
+ /** Effect that triggers when the template is available */
117
+ private onTemplateReceived;
118
+ /**
119
+ * Static type guard for template context.
120
+ * Enables type inference in templates.
121
+ */
122
+ static ngTemplateContextGuard(dir: GridDetailView, ctx: unknown): ctx is GridDetailContext;
123
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDetailView, never>;
124
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridDetailView, "tbw-grid-detail", never, { "showExpandColumn": { "alias": "showExpandColumn"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; }, {}, ["template"], never, true, never>;
125
+ }
126
+
127
+ export { GridDetailView, GridMasterDetailDirective, getDetailTemplate };
128
+ export type { GridDetailContext, MasterDetailConfig };
45
129
  //# sourceMappingURL=toolbox-web-grid-angular-features-master-detail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbox-web-grid-angular-features-master-detail.d.ts","sources":["../../../../libs/grid-angular/features/master-detail/src/grid-master-detail.directive.ts"],"mappings":";;;;;;AAmBA;;;;;;;;;;;;;;;AAeG;AACG,KAAM,kBAAkB,GAAG,IAAI,CAACA,oBAAsB;qBACzCA,oBAAsB,qBAAqB,IAAI;;AAGlE;;;;AAIG;AACH,cAIa,yBAA0B,YAAW,MAAM,EAAE,SAAS;AACjE;2BAEqB,aAAA,CAAA,WAAA,CAAA,kBAAA;2BACA,aAAA,CAAA,gBAAA,CAAA,kBAAA;;;AAUrB;AAMA;oDApBW,yBAAyB;sDAAzB,yBAAyB;AA6BrC;;;;","names":["CoreMasterDetailConfig"]}
1
+ {"version":3,"file":"toolbox-web-grid-angular-features-master-detail.d.ts","sources":["../../../../libs/grid-angular/features/master-detail/src/grid-master-detail.directive.ts","../../../../libs/grid-angular/features/master-detail/src/grid-detail-view.directive.ts"],"mappings":";;;;;;AAmBA;;;;;;;;;;;;;;;AAeG;AACG,KAAM,kBAAkB,GAAG,IAAI,CAACA,oBAAsB;qBACzCA,oBAAsB,qBAAqB,IAAI;;AAGlE;;;;AAIG;AACH,cAIa,yBAA0B,YAAW,MAAM,EAAE,SAAS;AACjE;2BAEqB,aAAA,CAAA,WAAA,CAAA,kBAAA;2BACA,aAAA,CAAA,gBAAA,CAAA,kBAAA;;;AAUrB;AAMA;oDApBW,yBAAyB;sDAAzB,yBAAyB;AA6BrC;;AC1ED;;;;AAIG;AACG,UAAW,iBAAiB;;;;;AAKjC;AAKD;;;;AAIG;AACH,iBAAgB,iBAAiB,cAAc,WAAW,GAAG,WAAW,CAAC,iBAAiB;AAS1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CG;AACH,cACa,cAAc;;;AAIzB,sBAAgB,aAAA,CAAA,WAAA;;AAGhB,eAAS,aAAA,CAAA,WAAA,CAAA,uBAAA;AAET;;AAEG;AACH,cAAQ,aAAA,CAAA,MAAA,CAAA,WAAA;;;AAWR;;;AAGG;AACH,uCAAmC,cAAc,wBAAwB,iBAAiB;oDA3B/E,cAAc;sDAAd,cAAc;AA8B1B;;;;","names":["CoreMasterDetailConfig"]}
@@ -44,7 +44,7 @@ type CoreAggregationSlot = Exclude<CoreSlot, {
44
44
  type PinnedRowSlot = CoreAggregationSlot | PanelSlot;
45
45
  /**
46
46
  * Pinned-rows config widened to accept Angular component classes as `render`
47
- * inside `slots[]` and `customPanels[]`. Bridging to vanilla DOM is handled
47
+ * inside `slots[]`. Bridging to vanilla DOM is handled
48
48
  * by the side-effect import `@toolbox-web/grid-angular/features/pinned-rows`.
49
49
  *
50
50
  * Re-exported under the same name as the core type so Angular users see a
@@ -53,13 +53,8 @@ type PinnedRowSlot = CoreAggregationSlot | PanelSlot;
53
53
  *
54
54
  * @since 1.7.1
55
55
  */
56
- type PinnedRowsConfig = Omit<PinnedRowsConfig$1, 'slots' | 'customPanels'> & {
56
+ type PinnedRowsConfig = Omit<PinnedRowsConfig$1, 'slots'> & {
57
57
  slots?: PinnedRowSlot[];
58
- customPanels?: Array<{
59
- id: string;
60
- position: PanelZone;
61
- render: ((ctx: PinnedRowsContext) => HTMLElement) | Type<unknown>;
62
- }>;
63
58
  };
64
59
  /** @deprecated Use {@link PanelRender} instead. */
65
60
  type AngularPanelRender = PanelRender;
@@ -1 +1 @@
1
- {"version":3,"file":"toolbox-web-grid-angular-features-pinned-rows.d.ts","sources":["../../../../libs/grid-angular/features/pinned-rows/src/grid-pinned-rows.directive.ts"],"mappings":";;;;;AAeA;;;;;;;AAOG;KACS,WAAW,UAAU,iBAAiB,KAAK,WAAW,WAAW,IAAI;AAEjF;;;;AAIG;UACc,gBAAgB;WACxB,SAAS;YACR,WAAW;AACpB;AAED;;;;AAIG;UACc,SAAS;;AAExB;AACA,YAAQ,WAAW,GAAG,gBAAgB;AACvC;AAED,KAAK,QAAQ,GAAG,WAAW,CAACA,kBAAoB;AAChD,KAAK,mBAAmB,GAAG,OAAO,CAAC,QAAQ;;AAAqB;AAEhE;;;;;AAKG;KACS,aAAa,GAAG,mBAAmB,GAAG,SAAS;AAE3D;;;;;;;;;;AAUG;AACG,KAAM,gBAAgB,GAAG,IAAI,CAACA,kBAAoB;AACtD,YAAQ,aAAa;mBACN,KAAK;;kBAER,SAAS;AACnB,uBAAe,iBAAiB,KAAK,WAAW,IAAI,IAAI;AACzD;;AAOH;AACM,KAAM,kBAAkB,GAAG,WAAW;AAC5C;AACM,KAAM,uBAAuB,GAAG,gBAAgB;AACtD;AACM,KAAM,gBAAgB,GAAG,SAAS;AACxC;AACM,KAAM,oBAAoB,GAAG,aAAa;AAChD;AACM,KAAM,uBAAuB,GAAG,gBAAgB;AAEtD;;;;AAIG;AACH,cAIa,uBAAwB,YAAW,SAAS;AACvD;yBAEmBC,EAAA,CAAA,WAAA,WAAA,gBAAA;;AAMnB;yCATW,uBAAuB;2CAAvB,uBAAuB;AAYnC;;;;","names":["CorePinnedRowsConfig","_angular_core"]}
1
+ {"version":3,"file":"toolbox-web-grid-angular-features-pinned-rows.d.ts","sources":["../../../../libs/grid-angular/features/pinned-rows/src/grid-pinned-rows.directive.ts"],"mappings":";;;;;AAeA;;;;;;;AAOG;KACS,WAAW,UAAU,iBAAiB,KAAK,WAAW,WAAW,IAAI;AAEjF;;;;AAIG;UACc,gBAAgB;WACxB,SAAS;YACR,WAAW;AACpB;AAED;;;;AAIG;UACc,SAAS;;AAExB;AACA,YAAQ,WAAW,GAAG,gBAAgB;AACvC;AAED,KAAK,QAAQ,GAAG,WAAW,CAACA,kBAAoB;AAChD,KAAK,mBAAmB,GAAG,OAAO,CAAC,QAAQ;;AAAqB;AAEhE;;;;;AAKG;KACS,aAAa,GAAG,mBAAmB,GAAG,SAAS;AAE3D;;;;;;;;;;AAUG;AACG,KAAM,gBAAgB,GAAG,IAAI,CAACA,kBAAoB;AACtD,YAAQ,aAAa;;AAOvB;AACM,KAAM,kBAAkB,GAAG,WAAW;AAC5C;AACM,KAAM,uBAAuB,GAAG,gBAAgB;AACtD;AACM,KAAM,gBAAgB,GAAG,SAAS;AACxC;AACM,KAAM,oBAAoB,GAAG,aAAa;AAChD;AACM,KAAM,uBAAuB,GAAG,gBAAgB;AAEtD;;;;AAIG;AACH,cAIa,uBAAwB,YAAW,SAAS;AACvD;yBAEmBC,EAAA,CAAA,WAAA,WAAA,gBAAA;;AAMnB;yCATW,uBAAuB;2CAAvB,uBAAuB;AAYnC;;;;","names":["CorePinnedRowsConfig","_angular_core"]}
@@ -1,6 +1,6 @@
1
1
  export { _Augmentation as _ResponsiveAugmentation } from '@toolbox-web/grid/features/responsive';
2
2
  import * as _angular_core from '@angular/core';
3
- import { OnInit, OnDestroy, Type } from '@angular/core';
3
+ import { OnInit, OnDestroy, Type, TemplateRef } from '@angular/core';
4
4
  import { ResponsivePluginConfig as ResponsivePluginConfig$1, ResponsiveChangeDetail } from '@toolbox-web/grid/plugins/responsive';
5
5
 
6
6
  /**
@@ -39,6 +39,112 @@ declare class GridResponsiveDirective implements OnInit, OnDestroy {
39
39
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridResponsiveDirective, "tbw-grid[responsive], tbw-grid[responsiveChange]", never, { "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, { "responsiveChange": "responsiveChange"; }, never, never, true, never>;
40
40
  }
41
41
 
42
- export { GridResponsiveDirective };
43
- export type { ResponsivePluginConfig };
42
+ /**
43
+ * Context object passed to the responsive card template.
44
+ *
45
+ * @template TRow - The type of row data
46
+ *
47
+ * @example
48
+ * ```html
49
+ * <tbw-grid-responsive-card>
50
+ * <ng-template let-row let-index="index">
51
+ * <div class="card-content">
52
+ * <span>{{ row.name }}</span>
53
+ * <span>Row #{{ index }}</span>
54
+ * </div>
55
+ * </ng-template>
56
+ * </tbw-grid-responsive-card>
57
+ * ```
58
+ * @since 0.4.0
59
+ */
60
+ interface GridResponsiveCardContext<TRow = unknown> {
61
+ /**
62
+ * The row data (available as `let-row` or `let-myVar`).
63
+ */
64
+ $implicit: TRow;
65
+ /**
66
+ * The row data (explicit access via `let-row="row"`).
67
+ */
68
+ row: TRow;
69
+ /**
70
+ * The row index (zero-based).
71
+ */
72
+ index: number;
73
+ }
74
+ /**
75
+ * Retrieves the responsive card template for a grid element.
76
+ *
77
+ * @param gridElement - The grid element to look up
78
+ * @returns The template reference or undefined if not found
79
+ * @since 0.4.0
80
+ */
81
+ declare function getResponsiveCardTemplate(gridElement: HTMLElement): TemplateRef<GridResponsiveCardContext> | undefined;
82
+ /**
83
+ * Directive for providing custom Angular templates for responsive card layout.
84
+ *
85
+ * Use this directive to define how each row should render when the grid
86
+ * is in responsive/mobile mode. The template receives the row data and index.
87
+ *
88
+ * ## Usage
89
+ *
90
+ * ```html
91
+ * <tbw-grid [rows]="employees">
92
+ * <tbw-grid-responsive-card>
93
+ * <ng-template let-employee let-idx="index">
94
+ * <div class="employee-card">
95
+ * <img [src]="employee.avatar" alt="">
96
+ * <div class="info">
97
+ * <strong>{{ employee.name }}</strong>
98
+ * <span>{{ employee.department }}</span>
99
+ * </div>
100
+ * </div>
101
+ * </ng-template>
102
+ * </tbw-grid-responsive-card>
103
+ * </tbw-grid>
104
+ * ```
105
+ *
106
+ * ## Important Notes
107
+ *
108
+ * - The ResponsivePlugin must be added to your grid config
109
+ * - The Grid directive will automatically configure the plugin's cardRenderer
110
+ * - Template context provides `$implicit` (row), `row`, and `index`
111
+ *
112
+ * @see ResponsivePlugin
113
+ * @category Directive
114
+ * @since 0.4.0
115
+ */
116
+ declare class GridResponsiveCard<TRow = unknown> {
117
+ private elementRef;
118
+ /**
119
+ * Card row height in pixels. Use `'auto'` for dynamic height based on content.
120
+ *
121
+ * Mirrors to the `card-row-height` attribute on the underlying
122
+ * `<tbw-grid-responsive-card>` element which the ResponsivePlugin reads.
123
+ *
124
+ * @default 'auto'
125
+ */
126
+ cardRowHeight: _angular_core.InputSignal<number | "auto" | undefined>;
127
+ /**
128
+ * The ng-template containing the card content.
129
+ */
130
+ template: _angular_core.Signal<TemplateRef<any> | undefined>;
131
+ /**
132
+ * Effect that registers the template when it becomes available.
133
+ */
134
+ private onTemplateReceived;
135
+ /**
136
+ * Effect that mirrors the `cardRowHeight` input to the kebab-cased attribute
137
+ * read by the ResponsivePlugin.
138
+ */
139
+ private onCardRowHeightChange;
140
+ /**
141
+ * Type guard for template context inference.
142
+ */
143
+ static ngTemplateContextGuard<T>(_directive: GridResponsiveCard<T>, context: unknown): context is GridResponsiveCardContext<T>;
144
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridResponsiveCard<any>, never>;
145
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridResponsiveCard<any>, "tbw-grid-responsive-card", never, { "cardRowHeight": { "alias": "cardRowHeight"; "required": false; "isSignal": true; }; }, {}, ["template"], never, true, never>;
146
+ }
147
+
148
+ export { GridResponsiveCard, GridResponsiveDirective, getResponsiveCardTemplate };
149
+ export type { GridResponsiveCardContext, ResponsivePluginConfig };
44
150
  //# sourceMappingURL=toolbox-web-grid-angular-features-responsive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbox-web-grid-angular-features-responsive.d.ts","sources":["../../../../libs/grid-angular/features/responsive/src/grid-responsive.directive.ts"],"mappings":";;;;;AAcA;;;;;;;;;;;;;;;AAeG;KACS,sBAAsB,mBAAmB,IAAI,CAACA,wBAA0B;AAClF,mBAAeA,wBAA0B,yBAAyB,IAAI;;AAGxE;;;;AAIG;AACH,cAIa,uBAAwB,YAAW,MAAM,EAAE,SAAS;AAC/D;yBAEmB,aAAA,CAAA,WAAA,WAAA,sBAAA;+BACM,aAAA,CAAA,gBAAA,CAAA,sBAAA;;;AAUzB;AAMA;oDApBW,uBAAuB;sDAAvB,uBAAuB;AA6BnC;;;;","names":["CoreResponsivePluginConfig"]}
1
+ {"version":3,"file":"toolbox-web-grid-angular-features-responsive.d.ts","sources":["../../../../libs/grid-angular/features/responsive/src/grid-responsive.directive.ts","../../../../libs/grid-angular/features/responsive/src/grid-responsive-card.directive.ts"],"mappings":";;;;;AAcA;;;;;;;;;;;;;;;AAeG;KACS,sBAAsB,mBAAmB,IAAI,CAACA,wBAA0B;AAClF,mBAAeA,wBAA0B,yBAAyB,IAAI;;AAGxE;;;;AAIG;AACH,cAIa,uBAAwB,YAAW,MAAM,EAAE,SAAS;AAC/D;yBAEmB,aAAA,CAAA,WAAA,WAAA,sBAAA;+BACM,aAAA,CAAA,gBAAA,CAAA,sBAAA;;;AAUzB;AAMA;oDApBW,uBAAuB;sDAAvB,uBAAuB;AA6BnC;;ACtED;;;;;;;;;;;;;;;;;AAiBG;AACG,UAAW,yBAAyB;AACxC;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAEJ;AAQD;;;;;;AAMG;AACH,iBAAgB,yBAAyB,cAC1B,WAAW,GACvB,WAAW,CAAC,yBAAyB;AAOxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;AACH,cAGa,kBAAkB;;AAG7B;;;;;;;AAOG;AACH,mBAAa,aAAA,CAAA,WAAA;AAEb;;AAEG;AACH,cAAQ,aAAA,CAAA,MAAA,CAAA,WAAA;AAER;;AAEG;;AAWH;;;AAGG;;AAWH;;AAEG;iDAEW,kBAAkB,mCAElB,yBAAyB;oDAnD5B,kBAAkB;sDAAlB,kBAAkB;AAsD9B;;;;","names":["CoreResponsivePluginConfig"]}
@@ -1,2 +1,231 @@
1
1
  export { _Augmentation as _ShellAugmentation } from '@toolbox-web/grid/features/shell';
2
+ import * as _angular_core from '@angular/core';
3
+ import { TemplateRef } from '@angular/core';
4
+ import { DataGridElement } from '@toolbox-web/grid';
5
+
6
+ /**
7
+ * Context object passed to the header content template.
8
+ * @since 1.7.0
9
+ */
10
+ interface GridHeaderContentContext {
11
+ /** The grid element (implicit binding for `let-grid`). */
12
+ $implicit: DataGridElement;
13
+ /** The grid element. */
14
+ grid: DataGridElement;
15
+ }
16
+ /**
17
+ * Declarative wrapper around the grid's imperative
18
+ * {@link ShellPlugin.registerHeaderContent} API.
19
+ *
20
+ * Captures an `<ng-template>` and mounts it as an Angular embedded view into
21
+ * the slot the grid provides for header content. Must be a child of
22
+ * `<tbw-grid>`.
23
+ *
24
+ * ## Usage
25
+ *
26
+ * ```html
27
+ * <tbw-grid [rows]="rows" [gridConfig]="config">
28
+ * <tbw-grid-header-content id="calendar-nav" [order]="0">
29
+ * <ng-template let-grid>
30
+ * <app-header-nav [year]="year()" (yearChange)="setYear($event)" />
31
+ * </ng-template>
32
+ * </tbw-grid-header-content>
33
+ * </tbw-grid>
34
+ * ```
35
+ *
36
+ * @category Directive
37
+ * @since 1.7.0
38
+ */
39
+ declare class GridHeaderContent {
40
+ private elementRef;
41
+ private viewContainerRef;
42
+ private destroyRef;
43
+ /** Unique identifier for this header content entry. Optional — defaults to a stable generated id. */
44
+ id: _angular_core.InputSignal<string | undefined>;
45
+ /** Render order priority. Lower values appear first. @default 100 */
46
+ order: _angular_core.InputSignal<number>;
47
+ /** The template to mount into the grid's header content slot. */
48
+ template: _angular_core.Signal<TemplateRef<any> | undefined>;
49
+ private viewRef;
50
+ private registeredId;
51
+ private resolvedId;
52
+ private destroyed;
53
+ constructor();
54
+ private lastOrder;
55
+ private register;
56
+ private unregister;
57
+ private findGrid;
58
+ /** Type guard for template context inference. */
59
+ static ngTemplateContextGuard(_dir: GridHeaderContent, ctx: unknown): ctx is GridHeaderContentContext;
60
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridHeaderContent, never>;
61
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridHeaderContent, "tbw-grid-header-content", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "order": { "alias": "order"; "required": false; "isSignal": true; }; }, {}, ["template"], never, true, never>;
62
+ }
63
+
64
+ /**
65
+ * Context object passed to the tool panel template.
66
+ * Provides access to grid-related information for the panel content.
67
+ * @since 0.1.0
68
+ */
69
+ interface GridToolPanelContext {
70
+ /** The grid element (implicit binding) */
71
+ $implicit: HTMLElement;
72
+ /** The grid element */
73
+ grid: HTMLElement;
74
+ }
75
+ /**
76
+ * Gets the tool panel template registered for a given tool panel element.
77
+ * Used by AngularGridAdapter to retrieve templates at render time.
78
+ */
79
+ declare function getToolPanelTemplate(panelElement: HTMLElement): TemplateRef<GridToolPanelContext> | undefined;
80
+ /**
81
+ * Gets all tool panel elements with registered templates within a grid element.
82
+ */
83
+ declare function getToolPanelElements(gridElement: HTMLElement): HTMLElement[];
84
+ /**
85
+ * Directive that captures an `<ng-template>` for use as a custom tool panel.
86
+ *
87
+ * This enables declarative Angular component usage for tool panels
88
+ * that appear in the grid's side panel.
89
+ *
90
+ * ## Usage
91
+ *
92
+ * ```html
93
+ * <tbw-grid [rows]="rows" [gridConfig]="config">
94
+ * <tbw-grid-tool-panel
95
+ * id="quick-filters"
96
+ * title="Quick Filters"
97
+ * icon="🔍"
98
+ * tooltip="Apply quick filters"
99
+ * [order]="10"
100
+ * >
101
+ * <ng-template let-grid>
102
+ * <app-quick-filters [grid]="grid" />
103
+ * </ng-template>
104
+ * </tbw-grid-tool-panel>
105
+ * </tbw-grid>
106
+ * ```
107
+ *
108
+ * The template context provides:
109
+ * - `$implicit` / `grid`: The grid element reference
110
+ *
111
+ * ### Attributes
112
+ *
113
+ * - `id` (required): Unique identifier for the panel
114
+ * - `title` (required): Panel title shown in accordion header
115
+ * - `icon`: Icon for accordion section header (emoji or text)
116
+ * - `tooltip`: Tooltip for accordion section header
117
+ * - `order`: Panel order priority (lower = first, default: 100)
118
+ *
119
+ * Import the directive in your component:
120
+ *
121
+ * ```typescript
122
+ * import { GridToolPanel } from '@toolbox-web/grid-angular/features/shell';
123
+ *
124
+ * @Component({
125
+ * imports: [GridToolPanel],
126
+ * // ...
127
+ * })
128
+ * ```
129
+ *
130
+ * @example
131
+ * ```html
132
+ * <tbw-grid [rows]="rows">
133
+ * <tbw-grid-tool-panel id="quick-filters" title="Quick Filters" icon="\uD83D\uDD0D">
134
+ * <ng-template let-grid>
135
+ * <app-quick-filters [grid]="grid" />
136
+ * </ng-template>
137
+ * </tbw-grid-tool-panel>
138
+ * </tbw-grid>
139
+ * ```
140
+ *
141
+ * @category Directive
142
+ * @since 0.1.0
143
+ */
144
+ declare class GridToolPanel {
145
+ private elementRef;
146
+ /** Unique panel identifier (required) */
147
+ id: _angular_core.InputSignal<string>;
148
+ /** Panel title shown in accordion header (required) */
149
+ title: _angular_core.InputSignal<string>;
150
+ /** Icon for accordion section header (emoji or text) */
151
+ icon: _angular_core.InputSignal<string | undefined>;
152
+ /** Tooltip for accordion section header */
153
+ tooltip: _angular_core.InputSignal<string | undefined>;
154
+ /** Panel order priority (lower = first, default: 100) */
155
+ order: _angular_core.InputSignal<number>;
156
+ /**
157
+ * Query for the ng-template content child.
158
+ */
159
+ template: _angular_core.Signal<TemplateRef<any> | undefined>;
160
+ /** Effect that triggers when the template is available */
161
+ private onTemplateReceived;
162
+ /**
163
+ * Static type guard for template context.
164
+ * Enables type inference in templates.
165
+ */
166
+ static ngTemplateContextGuard(dir: GridToolPanel, ctx: unknown): ctx is GridToolPanelContext;
167
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridToolPanel, never>;
168
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridToolPanel, "tbw-grid-tool-panel", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "order": { "alias": "order"; "required": false; "isSignal": true; }; }, {}, ["template"], never, true, never>;
169
+ }
170
+
171
+ /**
172
+ * Context object passed to the toolbar content template.
173
+ * @since 1.7.0
174
+ */
175
+ interface GridToolbarContentContext {
176
+ /** The grid element (implicit binding for `let-grid`). */
177
+ $implicit: DataGridElement;
178
+ /** The grid element. */
179
+ grid: DataGridElement;
180
+ }
181
+ /**
182
+ * Declarative wrapper around the grid's imperative
183
+ * {@link ShellPlugin.registerToolbarContent} API.
184
+ *
185
+ * Captures an `<ng-template>` and mounts it as an Angular embedded view into
186
+ * the slot the grid provides for toolbar content. Must be a child of
187
+ * `<tbw-grid>`.
188
+ *
189
+ * Prefer this over `<tbw-grid-tool-buttons>` (light DOM) when you need
190
+ * Angular template bindings to component state. Use the light-DOM form for
191
+ * static markup that should be moved verbatim into the toolbar.
192
+ *
193
+ * ## Usage
194
+ *
195
+ * ```html
196
+ * <tbw-grid [rows]="rows" [gridConfig]="config">
197
+ * <tbw-grid-toolbar-content id="calendar-nav" [order]="0">
198
+ * <ng-template let-grid>
199
+ * <app-toolbar-nav (prev)="prev()" (today)="today()" (next)="next()" />
200
+ * </ng-template>
201
+ * </tbw-grid-toolbar-content>
202
+ * </tbw-grid>
203
+ * ```
204
+ *
205
+ * @category Directive
206
+ * @since 1.7.0
207
+ */
208
+ declare class GridToolbarContent {
209
+ private elementRef;
210
+ private viewContainerRef;
211
+ private destroyRef;
212
+ id: _angular_core.InputSignal<string | undefined>;
213
+ order: _angular_core.InputSignal<number>;
214
+ template: _angular_core.Signal<TemplateRef<any> | undefined>;
215
+ private viewRef;
216
+ private registeredId;
217
+ private resolvedId;
218
+ private lastOrder;
219
+ private destroyed;
220
+ constructor();
221
+ private register;
222
+ private unregister;
223
+ private findGrid;
224
+ static ngTemplateContextGuard(_dir: GridToolbarContent, ctx: unknown): ctx is GridToolbarContentContext;
225
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridToolbarContent, never>;
226
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridToolbarContent, "tbw-grid-toolbar-content", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "order": { "alias": "order"; "required": false; "isSignal": true; }; }, {}, ["template"], never, true, never>;
227
+ }
228
+
229
+ export { GridHeaderContent, GridToolPanel, GridToolbarContent, getToolPanelElements, getToolPanelTemplate };
230
+ export type { GridHeaderContentContext, GridToolPanelContext, GridToolbarContentContext };
2
231
  //# sourceMappingURL=toolbox-web-grid-angular-features-shell.d.ts.map