@zengrid/angular 1.2.1 → 1.2.3

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.
@@ -91,11 +91,13 @@ const EVENT_MAP = {
91
91
  };
92
92
 
93
93
  class ZenCellTemplateDirective {
94
- templateRef = inject((TemplateRef));
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenCellTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
96
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.5", type: ZenCellTemplateDirective, isStandalone: true, selector: "[zenCellTemplate]", ngImport: i0 });
94
+ constructor() {
95
+ this.templateRef = inject((TemplateRef));
96
+ }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenCellTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
98
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: ZenCellTemplateDirective, isStandalone: true, selector: "[zenCellTemplate]", ngImport: i0 }); }
97
99
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenCellTemplateDirective, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenCellTemplateDirective, decorators: [{
99
101
  type: Directive,
100
102
  args: [{
101
103
  selector: '[zenCellTemplate]',
@@ -104,11 +106,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
104
106
  }] });
105
107
 
106
108
  class ZenEditorTemplateDirective {
107
- templateRef = inject((TemplateRef));
108
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenEditorTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
109
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.5", type: ZenEditorTemplateDirective, isStandalone: true, selector: "[zenEditorTemplate]", ngImport: i0 });
109
+ constructor() {
110
+ this.templateRef = inject((TemplateRef));
111
+ }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenEditorTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
113
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: ZenEditorTemplateDirective, isStandalone: true, selector: "[zenEditorTemplate]", ngImport: i0 }); }
110
114
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenEditorTemplateDirective, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenEditorTemplateDirective, decorators: [{
112
116
  type: Directive,
113
117
  args: [{
114
118
  selector: '[zenEditorTemplate]',
@@ -117,11 +121,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
117
121
  }] });
118
122
 
119
123
  class ZenHeaderTemplateDirective {
120
- templateRef = inject((TemplateRef));
121
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenHeaderTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
122
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.5", type: ZenHeaderTemplateDirective, isStandalone: true, selector: "[zenHeaderTemplate]", ngImport: i0 });
124
+ constructor() {
125
+ this.templateRef = inject((TemplateRef));
126
+ }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenHeaderTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
128
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: ZenHeaderTemplateDirective, isStandalone: true, selector: "[zenHeaderTemplate]", ngImport: i0 }); }
123
129
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenHeaderTemplateDirective, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenHeaderTemplateDirective, decorators: [{
125
131
  type: Directive,
126
132
  args: [{
127
133
  selector: '[zenHeaderTemplate]',
@@ -130,25 +136,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
130
136
  }] });
131
137
 
132
138
  class ZenColumnComponent {
133
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : []));
134
- header = input.required(...(ngDevMode ? [{ debugName: "header" }] : []));
135
- width = input(undefined, ...(ngDevMode ? [{ debugName: "width" }] : []));
136
- renderer = input(undefined, ...(ngDevMode ? [{ debugName: "renderer" }] : []));
137
- sortable = input(undefined, ...(ngDevMode ? [{ debugName: "sortable" }] : []));
138
- editable = input(undefined, ...(ngDevMode ? [{ debugName: "editable" }] : []));
139
- editor = input(undefined, ...(ngDevMode ? [{ debugName: "editor" }] : []));
140
- editorOptions = input(undefined, ...(ngDevMode ? [{ debugName: "editorOptions" }] : []));
141
- filterable = input(undefined, ...(ngDevMode ? [{ debugName: "filterable" }] : []));
142
- resizable = input(undefined, ...(ngDevMode ? [{ debugName: "resizable" }] : []));
143
- reorderable = input(undefined, ...(ngDevMode ? [{ debugName: "reorderable" }] : []));
144
- minWidth = input(undefined, ...(ngDevMode ? [{ debugName: "minWidth" }] : []));
145
- maxWidth = input(undefined, ...(ngDevMode ? [{ debugName: "maxWidth" }] : []));
146
- overflow = input(undefined, ...(ngDevMode ? [{ debugName: "overflow" }] : []));
147
- autoHeight = input(undefined, ...(ngDevMode ? [{ debugName: "autoHeight" }] : []));
148
- id = input(undefined, ...(ngDevMode ? [{ debugName: "id" }] : []));
149
- cellTemplate = contentChild(ZenCellTemplateDirective, ...(ngDevMode ? [{ debugName: "cellTemplate" }] : []));
150
- editorTemplate = contentChild(ZenEditorTemplateDirective, ...(ngDevMode ? [{ debugName: "editorTemplate" }] : []));
151
- headerTemplate = contentChild(ZenHeaderTemplateDirective, ...(ngDevMode ? [{ debugName: "headerTemplate" }] : []));
139
+ constructor() {
140
+ this.field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
141
+ this.header = input.required(...(ngDevMode ? [{ debugName: "header" }] : /* istanbul ignore next */ []));
142
+ this.width = input(undefined, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
143
+ this.renderer = input(undefined, ...(ngDevMode ? [{ debugName: "renderer" }] : /* istanbul ignore next */ []));
144
+ this.sortable = input(undefined, ...(ngDevMode ? [{ debugName: "sortable" }] : /* istanbul ignore next */ []));
145
+ this.editable = input(undefined, ...(ngDevMode ? [{ debugName: "editable" }] : /* istanbul ignore next */ []));
146
+ this.editor = input(undefined, ...(ngDevMode ? [{ debugName: "editor" }] : /* istanbul ignore next */ []));
147
+ this.editorOptions = input(undefined, ...(ngDevMode ? [{ debugName: "editorOptions" }] : /* istanbul ignore next */ []));
148
+ this.filterable = input(undefined, ...(ngDevMode ? [{ debugName: "filterable" }] : /* istanbul ignore next */ []));
149
+ this.resizable = input(undefined, ...(ngDevMode ? [{ debugName: "resizable" }] : /* istanbul ignore next */ []));
150
+ this.reorderable = input(undefined, ...(ngDevMode ? [{ debugName: "reorderable" }] : /* istanbul ignore next */ []));
151
+ this.minWidth = input(undefined, ...(ngDevMode ? [{ debugName: "minWidth" }] : /* istanbul ignore next */ []));
152
+ this.maxWidth = input(undefined, ...(ngDevMode ? [{ debugName: "maxWidth" }] : /* istanbul ignore next */ []));
153
+ this.overflow = input(undefined, ...(ngDevMode ? [{ debugName: "overflow" }] : /* istanbul ignore next */ []));
154
+ this.autoHeight = input(undefined, ...(ngDevMode ? [{ debugName: "autoHeight" }] : /* istanbul ignore next */ []));
155
+ this.id = input(undefined, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
156
+ this.cellTemplate = contentChild(ZenCellTemplateDirective, ...(ngDevMode ? [{ debugName: "cellTemplate" }] : /* istanbul ignore next */ []));
157
+ this.editorTemplate = contentChild(ZenEditorTemplateDirective, ...(ngDevMode ? [{ debugName: "editorTemplate" }] : /* istanbul ignore next */ []));
158
+ this.headerTemplate = contentChild(ZenHeaderTemplateDirective, ...(ngDevMode ? [{ debugName: "headerTemplate" }] : /* istanbul ignore next */ []));
159
+ }
152
160
  toColumnDef(bridge) {
153
161
  const def = {
154
162
  field: this.field(),
@@ -227,10 +235,10 @@ class ZenColumnComponent {
227
235
  }
228
236
  return def;
229
237
  }
230
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
231
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.5", type: ZenColumnComponent, isStandalone: true, selector: "zen-column", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: true, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, renderer: { classPropertyName: "renderer", publicName: "renderer", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, editorOptions: { classPropertyName: "editorOptions", publicName: "editorOptions", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, reorderable: { classPropertyName: "reorderable", publicName: "reorderable", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, overflow: { classPropertyName: "overflow", publicName: "overflow", isSignal: true, isRequired: false, transformFunction: null }, autoHeight: { classPropertyName: "autoHeight", publicName: "autoHeight", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ZenCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "editorTemplate", first: true, predicate: ZenEditorTemplateDirective, descendants: true, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ZenHeaderTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
238
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
239
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.7", type: ZenColumnComponent, isStandalone: true, selector: "zen-column", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: true, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, renderer: { classPropertyName: "renderer", publicName: "renderer", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, editor: { classPropertyName: "editor", publicName: "editor", isSignal: true, isRequired: false, transformFunction: null }, editorOptions: { classPropertyName: "editorOptions", publicName: "editorOptions", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, reorderable: { classPropertyName: "reorderable", publicName: "reorderable", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, overflow: { classPropertyName: "overflow", publicName: "overflow", isSignal: true, isRequired: false, transformFunction: null }, autoHeight: { classPropertyName: "autoHeight", publicName: "autoHeight", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ZenCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "editorTemplate", first: true, predicate: ZenEditorTemplateDirective, descendants: true, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ZenHeaderTemplateDirective, descendants: true, isSignal: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
232
240
  }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenColumnComponent, decorators: [{
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenColumnComponent, decorators: [{
234
242
  type: Component,
235
243
  args: [{
236
244
  selector: 'zen-column',
@@ -241,11 +249,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
241
249
 
242
250
  const MAX_POOL_SIZE = 100;
243
251
  class TemplateBridgeService {
244
- appRef = inject(ApplicationRef);
245
- injector = inject(Injector);
246
- envInjector = inject(EnvironmentInjector);
247
- templatePools = new Map();
248
- componentPools = new Map();
252
+ constructor() {
253
+ this.appRef = inject(ApplicationRef);
254
+ this.injector = inject(Injector);
255
+ this.envInjector = inject(EnvironmentInjector);
256
+ this.templatePools = new Map();
257
+ this.componentPools = new Map();
258
+ }
249
259
  createTemplateRenderer(templateRef) {
250
260
  return new TemplateRendererBridge(this, templateRef);
251
261
  }
@@ -350,20 +360,18 @@ class TemplateBridgeService {
350
360
  }
351
361
  this.componentPools.clear();
352
362
  }
353
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TemplateBridgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
354
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TemplateBridgeService, providedIn: 'root' });
363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: TemplateBridgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
364
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: TemplateBridgeService, providedIn: 'root' }); }
355
365
  }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: TemplateBridgeService, decorators: [{
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: TemplateBridgeService, decorators: [{
357
367
  type: Injectable,
358
368
  args: [{ providedIn: 'root' }]
359
369
  }] });
360
370
  class TemplateRendererBridge {
361
- bridge;
362
- templateRef;
363
- activeViews = new Map();
364
371
  constructor(bridge, templateRef) {
365
372
  this.bridge = bridge;
366
373
  this.templateRef = templateRef;
374
+ this.activeViews = new Map();
367
375
  }
368
376
  render(element, params) {
369
377
  const context = {
@@ -404,12 +412,10 @@ class TemplateRendererBridge {
404
412
  }
405
413
  }
406
414
  class ComponentRendererBridge {
407
- bridge;
408
- componentType;
409
- activeComponents = new Map();
410
415
  constructor(bridge, componentType) {
411
416
  this.bridge = bridge;
412
417
  this.componentType = componentType;
418
+ this.activeComponents = new Map();
413
419
  }
414
420
  render(element, params) {
415
421
  const componentRef = this.bridge.acquireComponent(this.componentType, element);
@@ -435,14 +441,12 @@ class ComponentRendererBridge {
435
441
  }
436
442
  }
437
443
  class TemplateEditorBridge {
438
- bridge;
439
- templateRef;
440
- viewRef = null;
441
- currentValue = null;
442
- onCompleteFn = null;
443
444
  constructor(bridge, templateRef) {
444
445
  this.bridge = bridge;
445
446
  this.templateRef = templateRef;
447
+ this.viewRef = null;
448
+ this.currentValue = null;
449
+ this.onCompleteFn = null;
446
450
  }
447
451
  init(container, value, params) {
448
452
  this.currentValue = value;
@@ -483,13 +487,11 @@ class TemplateEditorBridge {
483
487
  }
484
488
  }
485
489
  class ComponentEditorBridge {
486
- bridge;
487
- componentType;
488
- componentRef = null;
489
- currentValue = null;
490
490
  constructor(bridge, componentType) {
491
491
  this.bridge = bridge;
492
492
  this.componentType = componentType;
493
+ this.componentRef = null;
494
+ this.currentValue = null;
493
495
  }
494
496
  init(container, value, params) {
495
497
  this.currentValue = value;
@@ -530,164 +532,155 @@ function provideZenGrid(config) {
530
532
  }
531
533
 
532
534
  class ZenGridComponent {
533
- platformId = inject(PLATFORM_ID);
534
- cdr = inject(ChangeDetectorRef);
535
- ngZone = inject(NgZone);
536
- destroyRef = inject(DestroyRef);
537
- templateBridge = inject(TemplateBridgeService);
538
- globalConfig = inject(ZEN_GRID_CONFIG, { optional: true });
539
- _isBrowser = isPlatformBrowser(this.platformId);
540
535
  get placeholderHeight() {
541
536
  const rowHeight = this.getResolvedRowHeight();
542
537
  const height = typeof rowHeight === 'number' ? rowHeight : 30;
543
538
  return this.rowCount() * height;
544
539
  }
545
- gridContainerRef = viewChild('gridContainer', ...(ngDevMode ? [{ debugName: "gridContainerRef" }] : []));
546
- columnChildren = contentChildren(ZenColumnComponent, ...(ngDevMode ? [{ debugName: "columnChildren" }] : []));
547
- grid = null;
548
- gridReady = false;
549
- warnedOnLegacyBackendCallbacks = false;
550
- explicitInputs = new Set();
551
- pendingModelDataSync = null;
552
- // Legacy sort/filter backend callbacks are kept as wrapper inputs for
553
- // template compatibility, but the unified core contract only supports
554
- // onDataRequest.
555
- static legacyBackendCallbackWarning = '[zen-grid] onSortRequest/onFilterRequest are deprecated. Use onDataRequest with the unified query contract instead.';
556
- // --- Core Inputs ---
557
- rowCount = input.required(...(ngDevMode ? [{ debugName: "rowCount" }] : []));
558
- colCount = input.required(...(ngDevMode ? [{ debugName: "colCount" }] : []));
559
- rowHeight = input(30, { ...(ngDevMode ? { debugName: "rowHeight" } : {}), transform: (value) => this.markExplicitInput('rowHeight', value) });
560
- colWidth = input(100, { ...(ngDevMode ? { debugName: "colWidth" } : {}), transform: (value) => this.markExplicitInput('colWidth', value) });
561
- columns = input([], { ...(ngDevMode ? { debugName: "columns" } : {}), transform: (value) => this.markExplicitInput('columns', value) });
562
- // --- Feature Inputs ---
563
- enableSelection = input(undefined, ...(ngDevMode ? [{ debugName: "enableSelection" }] : []));
564
- enableMultiSelection = input(undefined, ...(ngDevMode ? [{ debugName: "enableMultiSelection" }] : []));
565
- selectionType = input(undefined, ...(ngDevMode ? [{ debugName: "selectionType" }] : []));
566
- enableColumnResize = input(undefined, ...(ngDevMode ? [{ debugName: "enableColumnResize" }] : []));
567
- enableColumnDrag = input(undefined, ...(ngDevMode ? [{ debugName: "enableColumnDrag" }] : []));
568
- enableKeyboardNavigation = input(undefined, ...(ngDevMode ? [{ debugName: "enableKeyboardNavigation" }] : []));
569
- enableA11y = input(undefined, ...(ngDevMode ? [{ debugName: "enableA11y" }] : []));
570
- enableCellPooling = input(undefined, ...(ngDevMode ? [{ debugName: "enableCellPooling" }] : []));
571
- // --- Mode Inputs ---
572
- dataMode = input(undefined, ...(ngDevMode ? [{ debugName: "dataMode" }] : []));
573
- sortMode = input(undefined, ...(ngDevMode ? [{ debugName: "sortMode" }] : []));
574
- filterMode = input(undefined, ...(ngDevMode ? [{ debugName: "filterMode" }] : []));
575
- // --- Backend Callback Inputs ---
576
- onDataRequest = input(undefined, ...(ngDevMode ? [{ debugName: "onDataRequest" }] : []));
577
- onSortRequest = input(undefined, ...(ngDevMode ? [{ debugName: "onSortRequest" }] : []));
578
- onFilterRequest = input(undefined, ...(ngDevMode ? [{ debugName: "onFilterRequest" }] : []));
579
- onLoadMoreRows = input(undefined, ...(ngDevMode ? [{ debugName: "onLoadMoreRows" }] : []));
580
- // --- Config Object Inputs ---
581
- pagination = input(undefined, ...(ngDevMode ? [{ debugName: "pagination" }] : []));
582
- loading = input(undefined, ...(ngDevMode ? [{ debugName: "loading" }] : []));
583
- infiniteScrolling = input(undefined, ...(ngDevMode ? [{ debugName: "infiniteScrolling" }] : []));
584
- rowHeightMode = input(undefined, ...(ngDevMode ? [{ debugName: "rowHeightMode" }] : []));
585
- rowHeightConfig = input(undefined, ...(ngDevMode ? [{ debugName: "rowHeightConfig" }] : []));
586
- columnResize = input(undefined, ...(ngDevMode ? [{ debugName: "columnResize" }] : []));
587
- columnDrag = input(undefined, ...(ngDevMode ? [{ debugName: "columnDrag" }] : []));
588
- cellOverflow = input(undefined, ...(ngDevMode ? [{ debugName: "cellOverflow" }] : []));
589
- autoResize = input(undefined, ...(ngDevMode ? [{ debugName: "autoResize" }] : []));
590
- overscanRows = input(undefined, ...(ngDevMode ? [{ debugName: "overscanRows" }] : []));
591
- overscanCols = input(undefined, ...(ngDevMode ? [{ debugName: "overscanCols" }] : []));
592
- sortIcons = input(undefined, ...(ngDevMode ? [{ debugName: "sortIcons" }] : []));
593
- rendererCache = input(undefined, ...(ngDevMode ? [{ debugName: "rendererCache" }] : []));
594
- // --- Callback Inputs (GridOptions event callbacks) ---
595
- onScrollCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onScrollCallback" }] : []));
596
- onCellClickCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onCellClickCallback" }] : []));
597
- onCellDoubleClickCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onCellDoubleClickCallback" }] : []));
598
- onCellContextMenuCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onCellContextMenuCallback" }] : []));
599
- onSelectionChangeCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onSelectionChangeCallback" }] : []));
600
- onPageChangeCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onPageChangeCallback" }] : []));
601
- onColumnWidthsChangeCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onColumnWidthsChangeCallback" }] : []));
602
- // --- Plugin Input ---
603
- plugins = input([], ...(ngDevMode ? [{ debugName: "plugins" }] : []));
604
- // --- Two-way Model Signals ---
605
- data = model([], ...(ngDevMode ? [{ debugName: "data" }] : []));
606
- selection = model([], ...(ngDevMode ? [{ debugName: "selection" }] : []));
607
- sortState = model([], ...(ngDevMode ? [{ debugName: "sortState" }] : []));
608
- filterState = model([], ...(ngDevMode ? [{ debugName: "filterState" }] : []));
609
- currentPage = model(1, ...(ngDevMode ? [{ debugName: "currentPage" }] : []));
610
- // --- Cell Events ---
611
- cellClick = output();
612
- cellDoubleClick = output();
613
- cellContextMenu = output();
614
- cellChange = output();
615
- cellBeforeChange = output();
616
- cellAfterChange = output();
617
- // --- Selection Events ---
618
- selectionChangeEvent = output({ alias: 'selectionChanged' });
619
- selectionStart = output();
620
- selectionEnd = output();
621
- // --- Editing Events ---
622
- editStart = output();
623
- editEnd = output();
624
- editCommit = output();
625
- editCancel = output();
626
- // --- Scroll Events ---
627
- scroll = output();
628
- scrollStart = output();
629
- scrollEnd = output();
630
- // --- Sort Events ---
631
- sortChange = output();
632
- sortBeforeSort = output();
633
- sortAfterSort = output();
634
- // --- Filter Events ---
635
- filterChange = output();
636
- filterBeforeFilter = output();
637
- filterAfterFilter = output();
638
- filterExport = output();
639
- filterStart = output();
640
- filterEnd = output();
641
- filterError = output();
642
- filterClear = output();
643
- // --- Focus Events ---
644
- focusChange = output();
645
- focusIn = output();
646
- focusOut = output();
647
- // --- Keyboard Events ---
648
- keyDown = output();
649
- keyUp = output();
650
- keyPress = output();
651
- // --- Column Events ---
652
- columnResizeEvent = output({ alias: 'columnResize' });
653
- columnMove = output();
654
- columnHide = output();
655
- columnShow = output();
656
- columnDragStart = output();
657
- columnDragEvent = output({ alias: 'columnDrag' });
658
- columnDragEnd = output();
659
- columnDragCancel = output();
660
- // --- Header Events ---
661
- headerClick = output();
662
- headerDoubleClick = output();
663
- headerContextMenu = output();
664
- headerHover = output();
665
- headerSortClick = output();
666
- headerFilterClick = output();
667
- headerCheckboxChange = output();
668
- // --- Lifecycle Events ---
669
- renderStart = output();
670
- renderEnd = output();
671
- dataLoad = output();
672
- dataChange = output();
673
- loadingStart = output();
674
- loadingEnd = output();
675
- loadingProgress = output();
676
- undoRedoChange = output();
677
- gridDestroy = output();
678
- gridError = output();
679
- gridWarning = output();
680
- // --- Row Events ---
681
- rowInsert = output();
682
- rowDelete = output();
683
- rowMove = output();
684
- // --- Clipboard Events ---
685
- copy = output();
686
- cut = output();
687
- paste = output();
688
- outputMap = {};
689
- eventHandlers = [];
690
540
  constructor() {
541
+ this.platformId = inject(PLATFORM_ID);
542
+ this.cdr = inject(ChangeDetectorRef);
543
+ this.ngZone = inject(NgZone);
544
+ this.destroyRef = inject(DestroyRef);
545
+ this.templateBridge = inject(TemplateBridgeService);
546
+ this.globalConfig = inject(ZEN_GRID_CONFIG, { optional: true });
547
+ this._isBrowser = isPlatformBrowser(this.platformId);
548
+ this.gridContainerRef = viewChild('gridContainer', ...(ngDevMode ? [{ debugName: "gridContainerRef" }] : /* istanbul ignore next */ []));
549
+ this.columnChildren = contentChildren(ZenColumnComponent, ...(ngDevMode ? [{ debugName: "columnChildren" }] : /* istanbul ignore next */ []));
550
+ this.grid = null;
551
+ this.gridReady = false;
552
+ this.explicitInputs = new Set();
553
+ this.pendingModelDataSync = null;
554
+ // --- Core Inputs ---
555
+ this.rowCount = input.required(...(ngDevMode ? [{ debugName: "rowCount" }] : /* istanbul ignore next */ []));
556
+ this.colCount = input.required(...(ngDevMode ? [{ debugName: "colCount" }] : /* istanbul ignore next */ []));
557
+ this.rowHeight = input(30, { ...(ngDevMode ? { debugName: "rowHeight" } : /* istanbul ignore next */ {}), transform: (value) => this.markExplicitInput('rowHeight', value) });
558
+ this.colWidth = input(100, { ...(ngDevMode ? { debugName: "colWidth" } : /* istanbul ignore next */ {}), transform: (value) => this.markExplicitInput('colWidth', value) });
559
+ this.columns = input([], { ...(ngDevMode ? { debugName: "columns" } : /* istanbul ignore next */ {}), transform: (value) => this.markExplicitInput('columns', value) });
560
+ // --- Feature Inputs ---
561
+ this.enableSelection = input(undefined, ...(ngDevMode ? [{ debugName: "enableSelection" }] : /* istanbul ignore next */ []));
562
+ this.enableMultiSelection = input(undefined, ...(ngDevMode ? [{ debugName: "enableMultiSelection" }] : /* istanbul ignore next */ []));
563
+ this.selectionType = input(undefined, ...(ngDevMode ? [{ debugName: "selectionType" }] : /* istanbul ignore next */ []));
564
+ this.enableColumnResize = input(undefined, ...(ngDevMode ? [{ debugName: "enableColumnResize" }] : /* istanbul ignore next */ []));
565
+ this.enableColumnDrag = input(undefined, ...(ngDevMode ? [{ debugName: "enableColumnDrag" }] : /* istanbul ignore next */ []));
566
+ this.enableKeyboardNavigation = input(undefined, ...(ngDevMode ? [{ debugName: "enableKeyboardNavigation" }] : /* istanbul ignore next */ []));
567
+ this.enableA11y = input(undefined, ...(ngDevMode ? [{ debugName: "enableA11y" }] : /* istanbul ignore next */ []));
568
+ this.enableCellPooling = input(undefined, ...(ngDevMode ? [{ debugName: "enableCellPooling" }] : /* istanbul ignore next */ []));
569
+ // --- Mode Inputs ---
570
+ this.dataMode = input(undefined, ...(ngDevMode ? [{ debugName: "dataMode" }] : /* istanbul ignore next */ []));
571
+ // --- Backend Callback Inputs ---
572
+ this.onDataRequest = input(undefined, ...(ngDevMode ? [{ debugName: "onDataRequest" }] : /* istanbul ignore next */ []));
573
+ this.onLoadMoreRows = input(undefined, ...(ngDevMode ? [{ debugName: "onLoadMoreRows" }] : /* istanbul ignore next */ []));
574
+ // --- Config Object Inputs ---
575
+ this.pagination = input(undefined, ...(ngDevMode ? [{ debugName: "pagination" }] : /* istanbul ignore next */ []));
576
+ this.loading = input(undefined, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
577
+ this.infiniteScrolling = input(undefined, ...(ngDevMode ? [{ debugName: "infiniteScrolling" }] : /* istanbul ignore next */ []));
578
+ this.rowHeightMode = input(undefined, ...(ngDevMode ? [{ debugName: "rowHeightMode" }] : /* istanbul ignore next */ []));
579
+ this.rowHeightConfig = input(undefined, ...(ngDevMode ? [{ debugName: "rowHeightConfig" }] : /* istanbul ignore next */ []));
580
+ this.columnResize = input(undefined, ...(ngDevMode ? [{ debugName: "columnResize" }] : /* istanbul ignore next */ []));
581
+ this.columnDrag = input(undefined, ...(ngDevMode ? [{ debugName: "columnDrag" }] : /* istanbul ignore next */ []));
582
+ this.cellOverflow = input(undefined, ...(ngDevMode ? [{ debugName: "cellOverflow" }] : /* istanbul ignore next */ []));
583
+ this.autoResize = input(undefined, ...(ngDevMode ? [{ debugName: "autoResize" }] : /* istanbul ignore next */ []));
584
+ this.overscanRows = input(undefined, ...(ngDevMode ? [{ debugName: "overscanRows" }] : /* istanbul ignore next */ []));
585
+ this.overscanCols = input(undefined, ...(ngDevMode ? [{ debugName: "overscanCols" }] : /* istanbul ignore next */ []));
586
+ this.sortIcons = input(undefined, ...(ngDevMode ? [{ debugName: "sortIcons" }] : /* istanbul ignore next */ []));
587
+ this.rendererCache = input(undefined, ...(ngDevMode ? [{ debugName: "rendererCache" }] : /* istanbul ignore next */ []));
588
+ // --- Callback Inputs (GridOptions event callbacks) ---
589
+ this.onScrollCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onScrollCallback" }] : /* istanbul ignore next */ []));
590
+ this.onCellClickCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onCellClickCallback" }] : /* istanbul ignore next */ []));
591
+ this.onCellDoubleClickCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onCellDoubleClickCallback" }] : /* istanbul ignore next */ []));
592
+ this.onCellContextMenuCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onCellContextMenuCallback" }] : /* istanbul ignore next */ []));
593
+ this.onSelectionChangeCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onSelectionChangeCallback" }] : /* istanbul ignore next */ []));
594
+ this.onPageChangeCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onPageChangeCallback" }] : /* istanbul ignore next */ []));
595
+ this.onColumnWidthsChangeCallback = input(undefined, ...(ngDevMode ? [{ debugName: "onColumnWidthsChangeCallback" }] : /* istanbul ignore next */ []));
596
+ // --- Plugin Input ---
597
+ this.plugins = input([], ...(ngDevMode ? [{ debugName: "plugins" }] : /* istanbul ignore next */ []));
598
+ // --- Two-way Model Signals ---
599
+ this.data = model([], ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
600
+ this.selection = model([], ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
601
+ this.sortState = model([], ...(ngDevMode ? [{ debugName: "sortState" }] : /* istanbul ignore next */ []));
602
+ this.filterState = model([], ...(ngDevMode ? [{ debugName: "filterState" }] : /* istanbul ignore next */ []));
603
+ this.currentPage = model(1, ...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
604
+ // --- Cell Events ---
605
+ this.cellClick = output();
606
+ this.cellDoubleClick = output();
607
+ this.cellContextMenu = output();
608
+ this.cellChange = output();
609
+ this.cellBeforeChange = output();
610
+ this.cellAfterChange = output();
611
+ // --- Selection Events ---
612
+ this.selectionChangeEvent = output({ alias: 'selectionChanged' });
613
+ this.selectionStart = output();
614
+ this.selectionEnd = output();
615
+ // --- Editing Events ---
616
+ this.editStart = output();
617
+ this.editEnd = output();
618
+ this.editCommit = output();
619
+ this.editCancel = output();
620
+ // --- Scroll Events ---
621
+ this.scroll = output();
622
+ this.scrollStart = output();
623
+ this.scrollEnd = output();
624
+ // --- Sort Events ---
625
+ this.sortChange = output();
626
+ this.sortBeforeSort = output();
627
+ this.sortAfterSort = output();
628
+ // --- Filter Events ---
629
+ this.filterChange = output();
630
+ this.filterBeforeFilter = output();
631
+ this.filterAfterFilter = output();
632
+ this.filterExport = output();
633
+ this.filterStart = output();
634
+ this.filterEnd = output();
635
+ this.filterError = output();
636
+ this.filterClear = output();
637
+ // --- Focus Events ---
638
+ this.focusChange = output();
639
+ this.focusIn = output();
640
+ this.focusOut = output();
641
+ // --- Keyboard Events ---
642
+ this.keyDown = output();
643
+ this.keyUp = output();
644
+ this.keyPress = output();
645
+ // --- Column Events ---
646
+ this.columnResizeEvent = output({ alias: 'columnResize' });
647
+ this.columnMove = output();
648
+ this.columnHide = output();
649
+ this.columnShow = output();
650
+ this.columnDragStart = output();
651
+ this.columnDragEvent = output({ alias: 'columnDrag' });
652
+ this.columnDragEnd = output();
653
+ this.columnDragCancel = output();
654
+ // --- Header Events ---
655
+ this.headerClick = output();
656
+ this.headerDoubleClick = output();
657
+ this.headerContextMenu = output();
658
+ this.headerHover = output();
659
+ this.headerSortClick = output();
660
+ this.headerFilterClick = output();
661
+ this.headerCheckboxChange = output();
662
+ // --- Lifecycle Events ---
663
+ this.renderStart = output();
664
+ this.renderEnd = output();
665
+ this.dataLoad = output();
666
+ this.dataChange = output();
667
+ this.loadingStart = output();
668
+ this.loadingEnd = output();
669
+ this.loadingProgress = output();
670
+ this.undoRedoChange = output();
671
+ this.gridDestroy = output();
672
+ this.gridError = output();
673
+ this.gridWarning = output();
674
+ // --- Row Events ---
675
+ this.rowInsert = output();
676
+ this.rowDelete = output();
677
+ this.rowMove = output();
678
+ // --- Clipboard Events ---
679
+ this.copy = output();
680
+ this.cut = output();
681
+ this.paste = output();
682
+ this.outputMap = {};
683
+ this.eventHandlers = [];
691
684
  this.buildOutputMap();
692
685
  this.destroyRef.onDestroy(() => {
693
686
  if (this.grid) {
@@ -743,7 +736,7 @@ class ZenGridComponent {
743
736
  ['enableA11y', this.enableA11y()],
744
737
  ['enableColumnResize', this.enableColumnResize()],
745
738
  ['enableColumnDrag', this.enableColumnDrag()],
746
- ['dataMode', this.getRequestedDataMode()],
739
+ ['dataMode', this.getConfiguredDataMode()],
747
740
  ['pagination', this.pagination()],
748
741
  ['loading', this.loading()],
749
742
  ['infiniteScrolling', this.infiniteScrolling()],
@@ -786,41 +779,13 @@ class ZenGridComponent {
786
779
  }
787
780
  getResolvedDataMode() {
788
781
  return resolveOperationMode({
789
- mode: this.getRequestedDataMode(),
782
+ mode: this.getConfiguredDataMode(),
790
783
  callback: this.onDataRequest() ??
791
784
  this.globalConfig?.['onDataRequest'],
792
785
  }, { rowCount: this.rowCount() });
793
786
  }
794
- getRequestedDataMode() {
795
- const configuredDataMode = this.dataMode() ?? this.globalConfig?.['dataMode'];
796
- if (configuredDataMode !== undefined) {
797
- return configuredDataMode;
798
- }
799
- const legacyModes = [
800
- this.sortMode(),
801
- this.filterMode(),
802
- this.globalConfig?.['sortMode'],
803
- this.globalConfig?.['filterMode'],
804
- ].filter((mode) => mode !== undefined);
805
- if (legacyModes.includes('backend'))
806
- return 'backend';
807
- if (legacyModes.includes('auto'))
808
- return 'auto';
809
- if (legacyModes.includes('frontend'))
810
- return 'frontend';
811
- return undefined;
812
- }
813
- warnOnLegacyBackendCallbacks() {
814
- if (this.warnedOnLegacyBackendCallbacks)
815
- return;
816
- const hasLegacyCallback = this.onSortRequest() !== undefined ||
817
- this.onFilterRequest() !== undefined ||
818
- this.globalConfig?.['onSortRequest'] !== undefined ||
819
- this.globalConfig?.['onFilterRequest'] !== undefined;
820
- if (!hasLegacyCallback)
821
- return;
822
- this.warnedOnLegacyBackendCallbacks = true;
823
- console.warn(ZenGridComponent.legacyBackendCallbackWarning);
787
+ getConfiguredDataMode() {
788
+ return this.dataMode() ?? this.globalConfig?.['dataMode'];
824
789
  }
825
790
  getResolvedRowHeight() {
826
791
  const configured = this.globalConfig?.['rowHeight'];
@@ -918,7 +883,6 @@ class ZenGridComponent {
918
883
  const dataValue = this.data();
919
884
  const componentColumns = this.getComponentColumns();
920
885
  const resolvedDataMode = this.getResolvedDataMode();
921
- this.warnOnLegacyBackendCallbacks();
922
886
  const options = {
923
887
  ...(this.globalConfig ?? {}),
924
888
  rowCount: this.rowCount(),
@@ -953,7 +917,7 @@ class ZenGridComponent {
953
917
  const enPool = this.enableCellPooling();
954
918
  const enResize = this.enableColumnResize();
955
919
  const enDrag = this.enableColumnDrag();
956
- const dMode = this.getRequestedDataMode();
920
+ const dMode = this.getConfiguredDataMode();
957
921
  const dReq = this.onDataRequest();
958
922
  const loadMore = this.onLoadMoreRows();
959
923
  const pag = this.pagination();
@@ -1325,8 +1289,8 @@ class ZenGridComponent {
1325
1289
  getGridApi() {
1326
1290
  return this.grid?.getGridApi() ?? null;
1327
1291
  }
1328
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1329
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: ZenGridComponent, isStandalone: true, selector: "zen-grid", inputs: { rowCount: { classPropertyName: "rowCount", publicName: "rowCount", isSignal: true, isRequired: true, transformFunction: null }, colCount: { classPropertyName: "colCount", publicName: "colCount", isSignal: true, isRequired: true, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, colWidth: { classPropertyName: "colWidth", publicName: "colWidth", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, enableSelection: { classPropertyName: "enableSelection", publicName: "enableSelection", isSignal: true, isRequired: false, transformFunction: null }, enableMultiSelection: { classPropertyName: "enableMultiSelection", publicName: "enableMultiSelection", isSignal: true, isRequired: false, transformFunction: null }, selectionType: { classPropertyName: "selectionType", publicName: "selectionType", isSignal: true, isRequired: false, transformFunction: null }, enableColumnResize: { classPropertyName: "enableColumnResize", publicName: "enableColumnResize", isSignal: true, isRequired: false, transformFunction: null }, enableColumnDrag: { classPropertyName: "enableColumnDrag", publicName: "enableColumnDrag", isSignal: true, isRequired: false, transformFunction: null }, enableKeyboardNavigation: { classPropertyName: "enableKeyboardNavigation", publicName: "enableKeyboardNavigation", isSignal: true, isRequired: false, transformFunction: null }, enableA11y: { classPropertyName: "enableA11y", publicName: "enableA11y", isSignal: true, isRequired: false, transformFunction: null }, enableCellPooling: { classPropertyName: "enableCellPooling", publicName: "enableCellPooling", isSignal: true, isRequired: false, transformFunction: null }, dataMode: { classPropertyName: "dataMode", publicName: "dataMode", isSignal: true, isRequired: false, transformFunction: null }, sortMode: { classPropertyName: "sortMode", publicName: "sortMode", isSignal: true, isRequired: false, transformFunction: null }, filterMode: { classPropertyName: "filterMode", publicName: "filterMode", isSignal: true, isRequired: false, transformFunction: null }, onDataRequest: { classPropertyName: "onDataRequest", publicName: "onDataRequest", isSignal: true, isRequired: false, transformFunction: null }, onSortRequest: { classPropertyName: "onSortRequest", publicName: "onSortRequest", isSignal: true, isRequired: false, transformFunction: null }, onFilterRequest: { classPropertyName: "onFilterRequest", publicName: "onFilterRequest", isSignal: true, isRequired: false, transformFunction: null }, onLoadMoreRows: { classPropertyName: "onLoadMoreRows", publicName: "onLoadMoreRows", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, infiniteScrolling: { classPropertyName: "infiniteScrolling", publicName: "infiniteScrolling", isSignal: true, isRequired: false, transformFunction: null }, rowHeightMode: { classPropertyName: "rowHeightMode", publicName: "rowHeightMode", isSignal: true, isRequired: false, transformFunction: null }, rowHeightConfig: { classPropertyName: "rowHeightConfig", publicName: "rowHeightConfig", isSignal: true, isRequired: false, transformFunction: null }, columnResize: { classPropertyName: "columnResize", publicName: "columnResize", isSignal: true, isRequired: false, transformFunction: null }, columnDrag: { classPropertyName: "columnDrag", publicName: "columnDrag", isSignal: true, isRequired: false, transformFunction: null }, cellOverflow: { classPropertyName: "cellOverflow", publicName: "cellOverflow", isSignal: true, isRequired: false, transformFunction: null }, autoResize: { classPropertyName: "autoResize", publicName: "autoResize", isSignal: true, isRequired: false, transformFunction: null }, overscanRows: { classPropertyName: "overscanRows", publicName: "overscanRows", isSignal: true, isRequired: false, transformFunction: null }, overscanCols: { classPropertyName: "overscanCols", publicName: "overscanCols", isSignal: true, isRequired: false, transformFunction: null }, sortIcons: { classPropertyName: "sortIcons", publicName: "sortIcons", isSignal: true, isRequired: false, transformFunction: null }, rendererCache: { classPropertyName: "rendererCache", publicName: "rendererCache", isSignal: true, isRequired: false, transformFunction: null }, onScrollCallback: { classPropertyName: "onScrollCallback", publicName: "onScrollCallback", isSignal: true, isRequired: false, transformFunction: null }, onCellClickCallback: { classPropertyName: "onCellClickCallback", publicName: "onCellClickCallback", isSignal: true, isRequired: false, transformFunction: null }, onCellDoubleClickCallback: { classPropertyName: "onCellDoubleClickCallback", publicName: "onCellDoubleClickCallback", isSignal: true, isRequired: false, transformFunction: null }, onCellContextMenuCallback: { classPropertyName: "onCellContextMenuCallback", publicName: "onCellContextMenuCallback", isSignal: true, isRequired: false, transformFunction: null }, onSelectionChangeCallback: { classPropertyName: "onSelectionChangeCallback", publicName: "onSelectionChangeCallback", isSignal: true, isRequired: false, transformFunction: null }, onPageChangeCallback: { classPropertyName: "onPageChangeCallback", publicName: "onPageChangeCallback", isSignal: true, isRequired: false, transformFunction: null }, onColumnWidthsChangeCallback: { classPropertyName: "onColumnWidthsChangeCallback", publicName: "onColumnWidthsChangeCallback", isSignal: true, isRequired: false, transformFunction: null }, plugins: { classPropertyName: "plugins", publicName: "plugins", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, sortState: { classPropertyName: "sortState", publicName: "sortState", isSignal: true, isRequired: false, transformFunction: null }, filterState: { classPropertyName: "filterState", publicName: "filterState", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", selection: "selectionChange", sortState: "sortStateChange", filterState: "filterStateChange", currentPage: "currentPageChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellContextMenu: "cellContextMenu", cellChange: "cellChange", cellBeforeChange: "cellBeforeChange", cellAfterChange: "cellAfterChange", selectionChangeEvent: "selectionChanged", selectionStart: "selectionStart", selectionEnd: "selectionEnd", editStart: "editStart", editEnd: "editEnd", editCommit: "editCommit", editCancel: "editCancel", scroll: "scroll", scrollStart: "scrollStart", scrollEnd: "scrollEnd", sortChange: "sortChange", sortBeforeSort: "sortBeforeSort", sortAfterSort: "sortAfterSort", filterChange: "filterChange", filterBeforeFilter: "filterBeforeFilter", filterAfterFilter: "filterAfterFilter", filterExport: "filterExport", filterStart: "filterStart", filterEnd: "filterEnd", filterError: "filterError", filterClear: "filterClear", focusChange: "focusChange", focusIn: "focusIn", focusOut: "focusOut", keyDown: "keyDown", keyUp: "keyUp", keyPress: "keyPress", columnResizeEvent: "columnResize", columnMove: "columnMove", columnHide: "columnHide", columnShow: "columnShow", columnDragStart: "columnDragStart", columnDragEvent: "columnDrag", columnDragEnd: "columnDragEnd", columnDragCancel: "columnDragCancel", headerClick: "headerClick", headerDoubleClick: "headerDoubleClick", headerContextMenu: "headerContextMenu", headerHover: "headerHover", headerSortClick: "headerSortClick", headerFilterClick: "headerFilterClick", headerCheckboxChange: "headerCheckboxChange", renderStart: "renderStart", renderEnd: "renderEnd", dataLoad: "dataLoad", dataChange: "dataChange", loadingStart: "loadingStart", loadingEnd: "loadingEnd", loadingProgress: "loadingProgress", undoRedoChange: "undoRedoChange", gridDestroy: "gridDestroy", gridError: "gridError", gridWarning: "gridWarning", rowInsert: "rowInsert", rowDelete: "rowDelete", rowMove: "rowMove", copy: "copy", cut: "cut", paste: "paste" }, queries: [{ propertyName: "columnChildren", predicate: ZenColumnComponent, isSignal: true }], viewQueries: [{ propertyName: "gridContainerRef", first: true, predicate: ["gridContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `
1292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: ZenGridComponent, isStandalone: true, selector: "zen-grid", inputs: { rowCount: { classPropertyName: "rowCount", publicName: "rowCount", isSignal: true, isRequired: true, transformFunction: null }, colCount: { classPropertyName: "colCount", publicName: "colCount", isSignal: true, isRequired: true, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, colWidth: { classPropertyName: "colWidth", publicName: "colWidth", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, enableSelection: { classPropertyName: "enableSelection", publicName: "enableSelection", isSignal: true, isRequired: false, transformFunction: null }, enableMultiSelection: { classPropertyName: "enableMultiSelection", publicName: "enableMultiSelection", isSignal: true, isRequired: false, transformFunction: null }, selectionType: { classPropertyName: "selectionType", publicName: "selectionType", isSignal: true, isRequired: false, transformFunction: null }, enableColumnResize: { classPropertyName: "enableColumnResize", publicName: "enableColumnResize", isSignal: true, isRequired: false, transformFunction: null }, enableColumnDrag: { classPropertyName: "enableColumnDrag", publicName: "enableColumnDrag", isSignal: true, isRequired: false, transformFunction: null }, enableKeyboardNavigation: { classPropertyName: "enableKeyboardNavigation", publicName: "enableKeyboardNavigation", isSignal: true, isRequired: false, transformFunction: null }, enableA11y: { classPropertyName: "enableA11y", publicName: "enableA11y", isSignal: true, isRequired: false, transformFunction: null }, enableCellPooling: { classPropertyName: "enableCellPooling", publicName: "enableCellPooling", isSignal: true, isRequired: false, transformFunction: null }, dataMode: { classPropertyName: "dataMode", publicName: "dataMode", isSignal: true, isRequired: false, transformFunction: null }, onDataRequest: { classPropertyName: "onDataRequest", publicName: "onDataRequest", isSignal: true, isRequired: false, transformFunction: null }, onLoadMoreRows: { classPropertyName: "onLoadMoreRows", publicName: "onLoadMoreRows", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, infiniteScrolling: { classPropertyName: "infiniteScrolling", publicName: "infiniteScrolling", isSignal: true, isRequired: false, transformFunction: null }, rowHeightMode: { classPropertyName: "rowHeightMode", publicName: "rowHeightMode", isSignal: true, isRequired: false, transformFunction: null }, rowHeightConfig: { classPropertyName: "rowHeightConfig", publicName: "rowHeightConfig", isSignal: true, isRequired: false, transformFunction: null }, columnResize: { classPropertyName: "columnResize", publicName: "columnResize", isSignal: true, isRequired: false, transformFunction: null }, columnDrag: { classPropertyName: "columnDrag", publicName: "columnDrag", isSignal: true, isRequired: false, transformFunction: null }, cellOverflow: { classPropertyName: "cellOverflow", publicName: "cellOverflow", isSignal: true, isRequired: false, transformFunction: null }, autoResize: { classPropertyName: "autoResize", publicName: "autoResize", isSignal: true, isRequired: false, transformFunction: null }, overscanRows: { classPropertyName: "overscanRows", publicName: "overscanRows", isSignal: true, isRequired: false, transformFunction: null }, overscanCols: { classPropertyName: "overscanCols", publicName: "overscanCols", isSignal: true, isRequired: false, transformFunction: null }, sortIcons: { classPropertyName: "sortIcons", publicName: "sortIcons", isSignal: true, isRequired: false, transformFunction: null }, rendererCache: { classPropertyName: "rendererCache", publicName: "rendererCache", isSignal: true, isRequired: false, transformFunction: null }, onScrollCallback: { classPropertyName: "onScrollCallback", publicName: "onScrollCallback", isSignal: true, isRequired: false, transformFunction: null }, onCellClickCallback: { classPropertyName: "onCellClickCallback", publicName: "onCellClickCallback", isSignal: true, isRequired: false, transformFunction: null }, onCellDoubleClickCallback: { classPropertyName: "onCellDoubleClickCallback", publicName: "onCellDoubleClickCallback", isSignal: true, isRequired: false, transformFunction: null }, onCellContextMenuCallback: { classPropertyName: "onCellContextMenuCallback", publicName: "onCellContextMenuCallback", isSignal: true, isRequired: false, transformFunction: null }, onSelectionChangeCallback: { classPropertyName: "onSelectionChangeCallback", publicName: "onSelectionChangeCallback", isSignal: true, isRequired: false, transformFunction: null }, onPageChangeCallback: { classPropertyName: "onPageChangeCallback", publicName: "onPageChangeCallback", isSignal: true, isRequired: false, transformFunction: null }, onColumnWidthsChangeCallback: { classPropertyName: "onColumnWidthsChangeCallback", publicName: "onColumnWidthsChangeCallback", isSignal: true, isRequired: false, transformFunction: null }, plugins: { classPropertyName: "plugins", publicName: "plugins", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, sortState: { classPropertyName: "sortState", publicName: "sortState", isSignal: true, isRequired: false, transformFunction: null }, filterState: { classPropertyName: "filterState", publicName: "filterState", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", selection: "selectionChange", sortState: "sortStateChange", filterState: "filterStateChange", currentPage: "currentPageChange", cellClick: "cellClick", cellDoubleClick: "cellDoubleClick", cellContextMenu: "cellContextMenu", cellChange: "cellChange", cellBeforeChange: "cellBeforeChange", cellAfterChange: "cellAfterChange", selectionChangeEvent: "selectionChanged", selectionStart: "selectionStart", selectionEnd: "selectionEnd", editStart: "editStart", editEnd: "editEnd", editCommit: "editCommit", editCancel: "editCancel", scroll: "scroll", scrollStart: "scrollStart", scrollEnd: "scrollEnd", sortChange: "sortChange", sortBeforeSort: "sortBeforeSort", sortAfterSort: "sortAfterSort", filterChange: "filterChange", filterBeforeFilter: "filterBeforeFilter", filterAfterFilter: "filterAfterFilter", filterExport: "filterExport", filterStart: "filterStart", filterEnd: "filterEnd", filterError: "filterError", filterClear: "filterClear", focusChange: "focusChange", focusIn: "focusIn", focusOut: "focusOut", keyDown: "keyDown", keyUp: "keyUp", keyPress: "keyPress", columnResizeEvent: "columnResize", columnMove: "columnMove", columnHide: "columnHide", columnShow: "columnShow", columnDragStart: "columnDragStart", columnDragEvent: "columnDrag", columnDragEnd: "columnDragEnd", columnDragCancel: "columnDragCancel", headerClick: "headerClick", headerDoubleClick: "headerDoubleClick", headerContextMenu: "headerContextMenu", headerHover: "headerHover", headerSortClick: "headerSortClick", headerFilterClick: "headerFilterClick", headerCheckboxChange: "headerCheckboxChange", renderStart: "renderStart", renderEnd: "renderEnd", dataLoad: "dataLoad", dataChange: "dataChange", loadingStart: "loadingStart", loadingEnd: "loadingEnd", loadingProgress: "loadingProgress", undoRedoChange: "undoRedoChange", gridDestroy: "gridDestroy", gridError: "gridError", gridWarning: "gridWarning", rowInsert: "rowInsert", rowDelete: "rowDelete", rowMove: "rowMove", copy: "copy", cut: "cut", paste: "paste" }, queries: [{ propertyName: "columnChildren", predicate: ZenColumnComponent, isSignal: true }], viewQueries: [{ propertyName: "gridContainerRef", first: true, predicate: ["gridContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `
1330
1294
  @if (_isBrowser) {
1331
1295
  <div #gridContainer class="zen-grid-container"></div>
1332
1296
  } @else {
@@ -1335,9 +1299,9 @@ class ZenGridComponent {
1335
1299
  <div style="display:none">
1336
1300
  <ng-content></ng-content>
1337
1301
  </div>
1338
- `, isInline: true, styles: [":host{display:block;position:relative;height:100%}.zen-grid-container{width:100%;height:100%}.zen-grid-placeholder{width:100%;background:#f5f5f5}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1302
+ `, isInline: true, styles: [":host{display:block;position:relative;height:100%}.zen-grid-container{width:100%;height:100%}.zen-grid-placeholder{width:100%;background:#f5f5f5}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1339
1303
  }
1340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenGridComponent, decorators: [{
1304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenGridComponent, decorators: [{
1341
1305
  type: Component,
1342
1306
  args: [{ selector: 'zen-grid', standalone: true, template: `
1343
1307
  @if (_isBrowser) {
@@ -1349,13 +1313,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
1349
1313
  <ng-content></ng-content>
1350
1314
  </div>
1351
1315
  `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;position:relative;height:100%}.zen-grid-container{width:100%;height:100%}.zen-grid-placeholder{width:100%;background:#f5f5f5}\n"] }]
1352
- }], ctorParameters: () => [], propDecorators: { gridContainerRef: [{ type: i0.ViewChild, args: ['gridContainer', { isSignal: true }] }], columnChildren: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ZenColumnComponent), { isSignal: true }] }], rowCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowCount", required: true }] }], colCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "colCount", required: true }] }], rowHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeight", required: false }] }], colWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "colWidth", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], enableSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableSelection", required: false }] }], enableMultiSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableMultiSelection", required: false }] }], selectionType: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionType", required: false }] }], enableColumnResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableColumnResize", required: false }] }], enableColumnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableColumnDrag", required: false }] }], enableKeyboardNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableKeyboardNavigation", required: false }] }], enableA11y: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableA11y", required: false }] }], enableCellPooling: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableCellPooling", required: false }] }], dataMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataMode", required: false }] }], sortMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortMode", required: false }] }], filterMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterMode", required: false }] }], onDataRequest: [{ type: i0.Input, args: [{ isSignal: true, alias: "onDataRequest", required: false }] }], onSortRequest: [{ type: i0.Input, args: [{ isSignal: true, alias: "onSortRequest", required: false }] }], onFilterRequest: [{ type: i0.Input, args: [{ isSignal: true, alias: "onFilterRequest", required: false }] }], onLoadMoreRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "onLoadMoreRows", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], infiniteScrolling: [{ type: i0.Input, args: [{ isSignal: true, alias: "infiniteScrolling", required: false }] }], rowHeightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeightMode", required: false }] }], rowHeightConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeightConfig", required: false }] }], columnResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnResize", required: false }] }], columnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDrag", required: false }] }], cellOverflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellOverflow", required: false }] }], autoResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoResize", required: false }] }], overscanRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "overscanRows", required: false }] }], overscanCols: [{ type: i0.Input, args: [{ isSignal: true, alias: "overscanCols", required: false }] }], sortIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortIcons", required: false }] }], rendererCache: [{ type: i0.Input, args: [{ isSignal: true, alias: "rendererCache", required: false }] }], onScrollCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onScrollCallback", required: false }] }], onCellClickCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onCellClickCallback", required: false }] }], onCellDoubleClickCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onCellDoubleClickCallback", required: false }] }], onCellContextMenuCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onCellContextMenuCallback", required: false }] }], onSelectionChangeCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onSelectionChangeCallback", required: false }] }], onPageChangeCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onPageChangeCallback", required: false }] }], onColumnWidthsChangeCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onColumnWidthsChangeCallback", required: false }] }], plugins: [{ type: i0.Input, args: [{ isSignal: true, alias: "plugins", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }, { type: i0.Output, args: ["dataChange"] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], sortState: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortState", required: false }] }, { type: i0.Output, args: ["sortStateChange"] }], filterState: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterState", required: false }] }, { type: i0.Output, args: ["filterStateChange"] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], cellClick: [{ type: i0.Output, args: ["cellClick"] }], cellDoubleClick: [{ type: i0.Output, args: ["cellDoubleClick"] }], cellContextMenu: [{ type: i0.Output, args: ["cellContextMenu"] }], cellChange: [{ type: i0.Output, args: ["cellChange"] }], cellBeforeChange: [{ type: i0.Output, args: ["cellBeforeChange"] }], cellAfterChange: [{ type: i0.Output, args: ["cellAfterChange"] }], selectionChangeEvent: [{ type: i0.Output, args: ["selectionChanged"] }], selectionStart: [{ type: i0.Output, args: ["selectionStart"] }], selectionEnd: [{ type: i0.Output, args: ["selectionEnd"] }], editStart: [{ type: i0.Output, args: ["editStart"] }], editEnd: [{ type: i0.Output, args: ["editEnd"] }], editCommit: [{ type: i0.Output, args: ["editCommit"] }], editCancel: [{ type: i0.Output, args: ["editCancel"] }], scroll: [{ type: i0.Output, args: ["scroll"] }], scrollStart: [{ type: i0.Output, args: ["scrollStart"] }], scrollEnd: [{ type: i0.Output, args: ["scrollEnd"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], sortBeforeSort: [{ type: i0.Output, args: ["sortBeforeSort"] }], sortAfterSort: [{ type: i0.Output, args: ["sortAfterSort"] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], filterBeforeFilter: [{ type: i0.Output, args: ["filterBeforeFilter"] }], filterAfterFilter: [{ type: i0.Output, args: ["filterAfterFilter"] }], filterExport: [{ type: i0.Output, args: ["filterExport"] }], filterStart: [{ type: i0.Output, args: ["filterStart"] }], filterEnd: [{ type: i0.Output, args: ["filterEnd"] }], filterError: [{ type: i0.Output, args: ["filterError"] }], filterClear: [{ type: i0.Output, args: ["filterClear"] }], focusChange: [{ type: i0.Output, args: ["focusChange"] }], focusIn: [{ type: i0.Output, args: ["focusIn"] }], focusOut: [{ type: i0.Output, args: ["focusOut"] }], keyDown: [{ type: i0.Output, args: ["keyDown"] }], keyUp: [{ type: i0.Output, args: ["keyUp"] }], keyPress: [{ type: i0.Output, args: ["keyPress"] }], columnResizeEvent: [{ type: i0.Output, args: ["columnResize"] }], columnMove: [{ type: i0.Output, args: ["columnMove"] }], columnHide: [{ type: i0.Output, args: ["columnHide"] }], columnShow: [{ type: i0.Output, args: ["columnShow"] }], columnDragStart: [{ type: i0.Output, args: ["columnDragStart"] }], columnDragEvent: [{ type: i0.Output, args: ["columnDrag"] }], columnDragEnd: [{ type: i0.Output, args: ["columnDragEnd"] }], columnDragCancel: [{ type: i0.Output, args: ["columnDragCancel"] }], headerClick: [{ type: i0.Output, args: ["headerClick"] }], headerDoubleClick: [{ type: i0.Output, args: ["headerDoubleClick"] }], headerContextMenu: [{ type: i0.Output, args: ["headerContextMenu"] }], headerHover: [{ type: i0.Output, args: ["headerHover"] }], headerSortClick: [{ type: i0.Output, args: ["headerSortClick"] }], headerFilterClick: [{ type: i0.Output, args: ["headerFilterClick"] }], headerCheckboxChange: [{ type: i0.Output, args: ["headerCheckboxChange"] }], renderStart: [{ type: i0.Output, args: ["renderStart"] }], renderEnd: [{ type: i0.Output, args: ["renderEnd"] }], dataLoad: [{ type: i0.Output, args: ["dataLoad"] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], loadingStart: [{ type: i0.Output, args: ["loadingStart"] }], loadingEnd: [{ type: i0.Output, args: ["loadingEnd"] }], loadingProgress: [{ type: i0.Output, args: ["loadingProgress"] }], undoRedoChange: [{ type: i0.Output, args: ["undoRedoChange"] }], gridDestroy: [{ type: i0.Output, args: ["gridDestroy"] }], gridError: [{ type: i0.Output, args: ["gridError"] }], gridWarning: [{ type: i0.Output, args: ["gridWarning"] }], rowInsert: [{ type: i0.Output, args: ["rowInsert"] }], rowDelete: [{ type: i0.Output, args: ["rowDelete"] }], rowMove: [{ type: i0.Output, args: ["rowMove"] }], copy: [{ type: i0.Output, args: ["copy"] }], cut: [{ type: i0.Output, args: ["cut"] }], paste: [{ type: i0.Output, args: ["paste"] }] } });
1316
+ }], ctorParameters: () => [], propDecorators: { gridContainerRef: [{ type: i0.ViewChild, args: ['gridContainer', { isSignal: true }] }], columnChildren: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ZenColumnComponent), { isSignal: true }] }], rowCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowCount", required: true }] }], colCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "colCount", required: true }] }], rowHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeight", required: false }] }], colWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "colWidth", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], enableSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableSelection", required: false }] }], enableMultiSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableMultiSelection", required: false }] }], selectionType: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionType", required: false }] }], enableColumnResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableColumnResize", required: false }] }], enableColumnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableColumnDrag", required: false }] }], enableKeyboardNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableKeyboardNavigation", required: false }] }], enableA11y: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableA11y", required: false }] }], enableCellPooling: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableCellPooling", required: false }] }], dataMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataMode", required: false }] }], onDataRequest: [{ type: i0.Input, args: [{ isSignal: true, alias: "onDataRequest", required: false }] }], onLoadMoreRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "onLoadMoreRows", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], infiniteScrolling: [{ type: i0.Input, args: [{ isSignal: true, alias: "infiniteScrolling", required: false }] }], rowHeightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeightMode", required: false }] }], rowHeightConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeightConfig", required: false }] }], columnResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnResize", required: false }] }], columnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDrag", required: false }] }], cellOverflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellOverflow", required: false }] }], autoResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoResize", required: false }] }], overscanRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "overscanRows", required: false }] }], overscanCols: [{ type: i0.Input, args: [{ isSignal: true, alias: "overscanCols", required: false }] }], sortIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortIcons", required: false }] }], rendererCache: [{ type: i0.Input, args: [{ isSignal: true, alias: "rendererCache", required: false }] }], onScrollCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onScrollCallback", required: false }] }], onCellClickCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onCellClickCallback", required: false }] }], onCellDoubleClickCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onCellDoubleClickCallback", required: false }] }], onCellContextMenuCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onCellContextMenuCallback", required: false }] }], onSelectionChangeCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onSelectionChangeCallback", required: false }] }], onPageChangeCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onPageChangeCallback", required: false }] }], onColumnWidthsChangeCallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "onColumnWidthsChangeCallback", required: false }] }], plugins: [{ type: i0.Input, args: [{ isSignal: true, alias: "plugins", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }, { type: i0.Output, args: ["dataChange"] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], sortState: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortState", required: false }] }, { type: i0.Output, args: ["sortStateChange"] }], filterState: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterState", required: false }] }, { type: i0.Output, args: ["filterStateChange"] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], cellClick: [{ type: i0.Output, args: ["cellClick"] }], cellDoubleClick: [{ type: i0.Output, args: ["cellDoubleClick"] }], cellContextMenu: [{ type: i0.Output, args: ["cellContextMenu"] }], cellChange: [{ type: i0.Output, args: ["cellChange"] }], cellBeforeChange: [{ type: i0.Output, args: ["cellBeforeChange"] }], cellAfterChange: [{ type: i0.Output, args: ["cellAfterChange"] }], selectionChangeEvent: [{ type: i0.Output, args: ["selectionChanged"] }], selectionStart: [{ type: i0.Output, args: ["selectionStart"] }], selectionEnd: [{ type: i0.Output, args: ["selectionEnd"] }], editStart: [{ type: i0.Output, args: ["editStart"] }], editEnd: [{ type: i0.Output, args: ["editEnd"] }], editCommit: [{ type: i0.Output, args: ["editCommit"] }], editCancel: [{ type: i0.Output, args: ["editCancel"] }], scroll: [{ type: i0.Output, args: ["scroll"] }], scrollStart: [{ type: i0.Output, args: ["scrollStart"] }], scrollEnd: [{ type: i0.Output, args: ["scrollEnd"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], sortBeforeSort: [{ type: i0.Output, args: ["sortBeforeSort"] }], sortAfterSort: [{ type: i0.Output, args: ["sortAfterSort"] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], filterBeforeFilter: [{ type: i0.Output, args: ["filterBeforeFilter"] }], filterAfterFilter: [{ type: i0.Output, args: ["filterAfterFilter"] }], filterExport: [{ type: i0.Output, args: ["filterExport"] }], filterStart: [{ type: i0.Output, args: ["filterStart"] }], filterEnd: [{ type: i0.Output, args: ["filterEnd"] }], filterError: [{ type: i0.Output, args: ["filterError"] }], filterClear: [{ type: i0.Output, args: ["filterClear"] }], focusChange: [{ type: i0.Output, args: ["focusChange"] }], focusIn: [{ type: i0.Output, args: ["focusIn"] }], focusOut: [{ type: i0.Output, args: ["focusOut"] }], keyDown: [{ type: i0.Output, args: ["keyDown"] }], keyUp: [{ type: i0.Output, args: ["keyUp"] }], keyPress: [{ type: i0.Output, args: ["keyPress"] }], columnResizeEvent: [{ type: i0.Output, args: ["columnResize"] }], columnMove: [{ type: i0.Output, args: ["columnMove"] }], columnHide: [{ type: i0.Output, args: ["columnHide"] }], columnShow: [{ type: i0.Output, args: ["columnShow"] }], columnDragStart: [{ type: i0.Output, args: ["columnDragStart"] }], columnDragEvent: [{ type: i0.Output, args: ["columnDrag"] }], columnDragEnd: [{ type: i0.Output, args: ["columnDragEnd"] }], columnDragCancel: [{ type: i0.Output, args: ["columnDragCancel"] }], headerClick: [{ type: i0.Output, args: ["headerClick"] }], headerDoubleClick: [{ type: i0.Output, args: ["headerDoubleClick"] }], headerContextMenu: [{ type: i0.Output, args: ["headerContextMenu"] }], headerHover: [{ type: i0.Output, args: ["headerHover"] }], headerSortClick: [{ type: i0.Output, args: ["headerSortClick"] }], headerFilterClick: [{ type: i0.Output, args: ["headerFilterClick"] }], headerCheckboxChange: [{ type: i0.Output, args: ["headerCheckboxChange"] }], renderStart: [{ type: i0.Output, args: ["renderStart"] }], renderEnd: [{ type: i0.Output, args: ["renderEnd"] }], dataLoad: [{ type: i0.Output, args: ["dataLoad"] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], loadingStart: [{ type: i0.Output, args: ["loadingStart"] }], loadingEnd: [{ type: i0.Output, args: ["loadingEnd"] }], loadingProgress: [{ type: i0.Output, args: ["loadingProgress"] }], undoRedoChange: [{ type: i0.Output, args: ["undoRedoChange"] }], gridDestroy: [{ type: i0.Output, args: ["gridDestroy"] }], gridError: [{ type: i0.Output, args: ["gridError"] }], gridWarning: [{ type: i0.Output, args: ["gridWarning"] }], rowInsert: [{ type: i0.Output, args: ["rowInsert"] }], rowDelete: [{ type: i0.Output, args: ["rowDelete"] }], rowMove: [{ type: i0.Output, args: ["rowMove"] }], copy: [{ type: i0.Output, args: ["copy"] }], cut: [{ type: i0.Output, args: ["cut"] }], paste: [{ type: i0.Output, args: ["paste"] }] } });
1353
1317
 
1354
1318
  class ZenGridValueAccessorDirective {
1355
- grid = inject(ZenGridComponent);
1356
- onChange = () => { };
1357
- onTouched = () => { };
1358
1319
  constructor() {
1320
+ this.grid = inject(ZenGridComponent);
1321
+ this.onChange = () => { };
1322
+ this.onTouched = () => { };
1359
1323
  this.grid.dataChange.subscribe(() => {
1360
1324
  this.onChange(this.grid.data());
1361
1325
  this.onTouched();
@@ -1372,16 +1336,16 @@ class ZenGridValueAccessorDirective {
1372
1336
  registerOnTouched(fn) {
1373
1337
  this.onTouched = fn;
1374
1338
  }
1375
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenGridValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1376
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.5", type: ZenGridValueAccessorDirective, isStandalone: true, selector: "zen-grid[formControl],zen-grid[formControlName],zen-grid[ngModel]", providers: [
1339
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenGridValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1340
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: ZenGridValueAccessorDirective, isStandalone: true, selector: "zen-grid[formControl],zen-grid[formControlName],zen-grid[ngModel]", providers: [
1377
1341
  {
1378
1342
  provide: NG_VALUE_ACCESSOR,
1379
1343
  useExisting: forwardRef(() => ZenGridValueAccessorDirective),
1380
1344
  multi: true,
1381
1345
  },
1382
- ], ngImport: i0 });
1346
+ ], ngImport: i0 }); }
1383
1347
  }
1384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ZenGridValueAccessorDirective, decorators: [{
1348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ZenGridValueAccessorDirective, decorators: [{
1385
1349
  type: Directive,
1386
1350
  args: [{
1387
1351
  selector: 'zen-grid[formControl],zen-grid[formControlName],zen-grid[ngModel]',
@@ -1397,11 +1361,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
1397
1361
  }], ctorParameters: () => [] });
1398
1362
 
1399
1363
  class AngularPluginWrapper {
1400
- injector;
1401
- pluginFactory;
1402
- name;
1403
- phase;
1404
- dependencies;
1405
1364
  constructor(injector, pluginFactory) {
1406
1365
  this.injector = injector;
1407
1366
  this.pluginFactory = pluginFactory;
@@ -1410,9 +1369,9 @@ class AngularPluginWrapper {
1410
1369
  this.phase = plugin.phase;
1411
1370
  this.dependencies = plugin.dependencies;
1412
1371
  }
1413
- setup(store, api) {
1372
+ setup(store, api, context) {
1414
1373
  const plugin = this.pluginFactory(this.injector);
1415
- return plugin.setup(store, api);
1374
+ return plugin.setup(store, api, context);
1416
1375
  }
1417
1376
  dispose() {
1418
1377
  // Plugin cleanup handled by PluginHost
@@ -1423,7 +1382,7 @@ function createAngularPlugin(injector, factory) {
1423
1382
  }
1424
1383
 
1425
1384
  function bridgeStoreSignal(store, key) {
1426
- const angularSignal = signal(store.get(key), ...(ngDevMode ? [{ debugName: "angularSignal" }] : []));
1385
+ const angularSignal = signal(store.get(key), ...(ngDevMode ? [{ debugName: "angularSignal" }] : /* istanbul ignore next */ []));
1427
1386
  store.effect(`angular-bridge:${key}`, () => {
1428
1387
  const value = store.get(key);
1429
1388
  angularSignal.set(value);