@polygrid/angular 0.0.625 → 0.0.626

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.
@@ -204,10 +204,26 @@ function renderColumnHeaderTemplate(req, template, templateMountService) {
204
204
  return templateMountService.mount(template, req.container, ctx);
205
205
  }
206
206
 
207
+ function renderColumnFooterTemplate(req, template, templateMountService) {
208
+ if (!template)
209
+ return null;
210
+ const ctx = {
211
+ $implicit: req.context,
212
+ field: req.context.field,
213
+ header: req.context.header,
214
+ columnKey: req.context.columnKey,
215
+ columnId: req.context.columnId,
216
+ values: req.context.values,
217
+ rows: req.context.rows,
218
+ };
219
+ return templateMountService.mount(template, req.container, ctx);
220
+ }
221
+
207
222
  class RendererAdapterFactory {
208
223
  templateMountService = inject(TemplateMountService);
209
224
  buildAdapter(templates) {
210
225
  const headerTemplates = new Map();
226
+ const footerTemplates = new Map();
211
227
  return {
212
228
  renderNoDataTemplate: (req) => renderNoDataTemplate(req, templates.noData, this.templateMountService),
213
229
  renderLoadingTemplate: (req) => renderLoadingTemplate(req, templates.loading, this.templateMountService),
@@ -219,6 +235,13 @@ class RendererAdapterFactory {
219
235
  registerColumnHeaderTemplate: (key, tpl) => {
220
236
  headerTemplates.set(key, tpl);
221
237
  },
238
+ renderColumnFooterTemplate: (req) => {
239
+ const tpl = footerTemplates.get(req.context.columnKey);
240
+ return renderColumnFooterTemplate(req, tpl, this.templateMountService);
241
+ },
242
+ registerColumnFooterTemplate: (key, tpl) => {
243
+ footerTemplates.set(key, tpl);
244
+ },
222
245
  };
223
246
  }
224
247
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RendererAdapterFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -293,6 +316,7 @@ class ColumnService {
293
316
  grid = this._grid.asReadonly();
294
317
  adapter;
295
318
  pendingHeaderTemplates = new Map();
319
+ pendingFooterTemplates = new Map();
296
320
  setGrid(grid) {
297
321
  this._grid.set(grid);
298
322
  }
@@ -302,7 +326,10 @@ class ColumnService {
302
326
  this.pendingHeaderTemplates.forEach((tpl, key) => {
303
327
  this.adapter.registerColumnHeaderTemplate?.(key, tpl);
304
328
  });
305
- this.pendingHeaderTemplates.clear();
329
+ this.pendingFooterTemplates.clear();
330
+ this.pendingFooterTemplates.forEach((tpl, key) => {
331
+ this.adapter.registerColumnFooterTemplate?.(key, tpl);
332
+ });
306
333
  }
307
334
  registerHeaderTemplate(key, tpl) {
308
335
  if (this.adapter) {
@@ -312,6 +339,14 @@ class ColumnService {
312
339
  this.pendingHeaderTemplates.set(key, tpl);
313
340
  }
314
341
  }
342
+ registerFooterTemplate(key, tpl) {
343
+ if (this.adapter) {
344
+ this.adapter.registerColumnFooterTemplate?.(key, tpl);
345
+ }
346
+ else {
347
+ this.pendingFooterTemplates.set(key, tpl);
348
+ }
349
+ }
315
350
  collectProjectedColumns = collectProjectedColumns;
316
351
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ColumnService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
317
352
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ColumnService, providedIn: "root" });
@@ -336,6 +371,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
336
371
  }]
337
372
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
338
373
 
374
+ class PolyGridColumnFooterTemplateDirective {
375
+ template;
376
+ constructor(template) {
377
+ this.template = template;
378
+ }
379
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnFooterTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
380
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: PolyGridColumnFooterTemplateDirective, isStandalone: true, selector: "[polyGridColumnFooterTemplate]", ngImport: i0 });
381
+ }
382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnFooterTemplateDirective, decorators: [{
383
+ type: Directive,
384
+ args: [{
385
+ selector: "[polyGridColumnFooterTemplate]",
386
+ }]
387
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
388
+
339
389
  class PolyGridColumnComponent {
340
390
  injector = inject(Injector);
341
391
  columnService = inject(ColumnService);
@@ -347,6 +397,7 @@ class PolyGridColumnComponent {
347
397
  maxWidth = input(...(ngDevMode ? [undefined, { debugName: "maxWidth" }] : []));
348
398
  toggleVisibilityEffect;
349
399
  headerTemplateDir;
400
+ footerTemplateDir;
350
401
  ngAfterViewInit() {
351
402
  runInInjectionContext(this.injector, () => {
352
403
  this.toggleVisibilityEffect = toggleVisibilityInputEffect(`${this.field()}::${this.header()}`, this.visible, this.columnService);
@@ -356,9 +407,12 @@ class PolyGridColumnComponent {
356
407
  if (this.headerTemplateDir) {
357
408
  this.columnService.registerHeaderTemplate(`${this.field()}::${this.header()}`, this.headerTemplateDir.template);
358
409
  }
410
+ if (this.footerTemplateDir) {
411
+ this.columnService.registerFooterTemplate(`${this.field()}::${this.header()}`, this.footerTemplateDir.template);
412
+ }
359
413
  }
360
414
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
361
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: PolyGridColumnComponent, isStandalone: true, selector: "pg-column", inputs: { header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", 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 } }, queries: [{ propertyName: "headerTemplateDir", first: true, predicate: PolyGridColumnHeaderTemplateDirective, descendants: true }], ngImport: i0, template: "", isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
415
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: PolyGridColumnComponent, isStandalone: true, selector: "pg-column", inputs: { header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", 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 } }, queries: [{ propertyName: "headerTemplateDir", first: true, predicate: PolyGridColumnHeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplateDir", first: true, predicate: PolyGridColumnFooterTemplateDirective, descendants: true }], ngImport: i0, template: "", isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
362
416
  }
363
417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnComponent, decorators: [{
364
418
  type: Component,
@@ -371,6 +425,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
371
425
  }], propDecorators: { header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: true }] }], field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], headerTemplateDir: [{
372
426
  type: ContentChild,
373
427
  args: [PolyGridColumnHeaderTemplateDirective]
428
+ }], footerTemplateDir: [{
429
+ type: ContentChild,
430
+ args: [PolyGridColumnFooterTemplateDirective]
374
431
  }] } });
375
432
 
376
433
  class PolyGridComponent {
@@ -474,12 +531,14 @@ class POLY_GRID {
474
531
  PolyGridNoDataTemplateDirective,
475
532
  PolyGridLoadingTemplateDirective,
476
533
  PolyGridErrorTemplateDirective,
477
- PolyGridColumnHeaderTemplateDirective], exports: [PolyGridComponent,
534
+ PolyGridColumnHeaderTemplateDirective,
535
+ PolyGridColumnFooterTemplateDirective], exports: [PolyGridComponent,
478
536
  PolyGridColumnComponent,
479
537
  PolyGridNoDataTemplateDirective,
480
538
  PolyGridLoadingTemplateDirective,
481
539
  PolyGridErrorTemplateDirective,
482
- PolyGridColumnHeaderTemplateDirective] });
540
+ PolyGridColumnHeaderTemplateDirective,
541
+ PolyGridColumnFooterTemplateDirective] });
483
542
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, imports: [PolyGridComponent,
484
543
  PolyGridColumnComponent] });
485
544
  }
@@ -493,6 +552,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
493
552
  PolyGridLoadingTemplateDirective,
494
553
  PolyGridErrorTemplateDirective,
495
554
  PolyGridColumnHeaderTemplateDirective,
555
+ PolyGridColumnFooterTemplateDirective,
496
556
  ],
497
557
  exports: [
498
558
  PolyGridComponent,
@@ -501,6 +561,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
501
561
  PolyGridLoadingTemplateDirective,
502
562
  PolyGridErrorTemplateDirective,
503
563
  PolyGridColumnHeaderTemplateDirective,
564
+ PolyGridColumnFooterTemplateDirective,
504
565
  ],
505
566
  providers: [],
506
567
  }]
@@ -510,5 +571,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
510
571
  * Generated bundle index. Do not edit.
511
572
  */
512
573
 
513
- export { POLY_GRID, PolyGridColumnComponent, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective };
574
+ export { POLY_GRID, PolyGridColumnComponent, PolyGridColumnFooterTemplateDirective, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective };
514
575
  //# sourceMappingURL=polygrid-angular.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"polygrid-angular.mjs","sources":["../../src/lib/effects/skip-first.ts","../../src/lib/effects/grid-id.ts","../../src/lib/effects/data.ts","../../src/lib/effects/column.ts","../../src/lib/effects/loading.ts","../../src/lib/effects/resizable.ts","../../src/lib/effects/resize-mode.ts","../../src/lib/effects/toggle-visibility.ts","../../src/lib/effects/enable-animations.ts","../../src/lib/directives/no-data-template.ts","../../src/lib/directives/loading-template.ts","../../src/lib/services/templates/template-mount.ts","../../src/lib/services/renderer-adapter/no-data.ts","../../src/lib/services/renderer-adapter/loading.ts","../../src/lib/services/renderer-adapter/error.ts","../../src/lib/services/renderer-adapter/column-header.ts","../../src/lib/services/renderer-adapter/renderer-adapter-factory.ts","../../src/lib/services/template-collector/extract-no-data.ts","../../src/lib/services/template-collector/extract-loading.ts","../../src/lib/services/template-collector/extract-error.ts","../../src/lib/services/template-collector/template-collector.ts","../../src/lib/directives/error-template.ts","../../src/lib/services/column/methods/collect-projected-columns.ts","../../src/lib/services/column/column.ts","../../src/lib/directives/column-header-template.ts","../../src/lib/components/column/poly-grid-column.ts","../../src/lib/components/grid/poly-grid.ts","../../src/lib/components/grid/poly-grid.html","../../src/lib/modules/poly-grid.ts","../../src/polygrid-angular.ts"],"sourcesContent":["import { effect, EffectRef } from \"@angular/core\";\r\n\r\nexport function effectSkipFirst(fn: (isInitial: boolean) => void): EffectRef {\r\n let first = true;\r\n return effect(() => {\r\n // Always execute fn, so it reads signals and establishes tracking\r\n fn(first);\r\n first = false;\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function gridIdInputEffect(\r\n value: Signal<string>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const id = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setGridId(id);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function dataInputEffect(\r\n value: Signal<any[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const data = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setData(data);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { PolyGridColumn } from \"@polygrid/core/engine/services/column/interfaces/column\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function columnInputEffect(\r\n value: Signal<PolyGridColumn[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const columns = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setColumns(columns);\r\n });\r\n}\r\n","import { effect, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function loadingInputEffect(value: Signal<boolean>, grid: PolyGrid) {\r\n return effect(() => {\r\n grid.api.setLoading(value());\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function resizableInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const resizable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setResizable(resizable);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\nimport { PolyGridResizeMode } from \"@polygrid/core/engine/store/types/resize-mode\";\r\n\r\nexport function resizeModeInputEffect(\r\n value: Signal<PolyGridResizeMode>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const resizeMode = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setResizeMode(resizeMode);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\nimport { ColumnService } from \"../services/column/column\";\r\n\r\nexport function toggleVisibilityInputEffect(\r\n key: string,\r\n value: Signal<boolean>,\r\n columnService: ColumnService,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const visible = value();\r\n\r\n if (isInitial) return;\r\n\r\n const grid = columnService.grid();\r\n if (!grid) return;\r\n\r\n const { enableAnimations } = grid._store.getState().view;\r\n\r\n if (enableAnimations) {\r\n visible\r\n ? grid.api.showColumnAnimated(key)\r\n : grid.api.hideColumnAnimated(key);\r\n } else {\r\n grid.api.setColumnVisible(key, visible);\r\n }\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function enableAnimationsInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const enableAnimations = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setEnableAnimations(enableAnimations);\r\n });\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridNoDataTemplate]\",\r\n})\r\nexport class PolyGridNoDataTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridLoadingTemplate]\",\r\n})\r\nexport class PolyGridLoadingTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { ApplicationRef, Injectable, TemplateRef } from \"@angular/core\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TemplateMountService {\r\n constructor(private appRef: ApplicationRef) {}\r\n\r\n mount<T>(\r\n template: TemplateRef<T>,\r\n container: HTMLElement,\r\n context: T\r\n ): RendererHandle {\r\n const view = template.createEmbeddedView(context);\r\n this.appRef.attachView(view);\r\n view.detectChanges();\r\n\r\n const frag = document.createDocumentFragment();\r\n for (const node of view.rootNodes) frag.appendChild(node);\r\n container.appendChild(frag);\r\n\r\n return {\r\n update: (partial: Partial<T>) => {\r\n Object.assign(view.context as any, partial);\r\n view.detectChanges();\r\n },\r\n destroy: () => {\r\n this.appRef.detachView(view);\r\n view.destroy();\r\n },\r\n };\r\n }\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { NoDataMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/no-data-mount\";\r\n\r\nexport function renderNoDataTemplate(\r\n req: NoDataMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n context: req.context,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { LoadingMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/loading-mount\";\r\n\r\nexport function renderLoadingTemplate(\r\n req: LoadingMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n context: req.context,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { ErrorMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/error-mount\";\r\n\r\nexport function renderErrorTemplate(\r\n req: ErrorMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n title: req.context.title,\r\n message: req.context.message,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { ColumnHeaderMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/column-header-mount\";\r\n\r\nexport function renderColumnHeaderTemplate(\r\n req: ColumnHeaderMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService,\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n field: req.context.field,\r\n header: req.context.header,\r\n columnKey: req.context.columnKey,\r\n columnId: req.context.columnId,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { inject, Injectable, TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { TemplateRegistry } from \"../templates/interfaces/template-registry\";\r\nimport { RendererAdapter } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-adapter\";\r\nimport { renderNoDataTemplate } from \"./no-data\";\r\nimport { renderLoadingTemplate } from \"./loading\";\r\nimport { renderErrorTemplate } from \"./error\";\r\nimport { renderColumnHeaderTemplate } from \"./column-header\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class RendererAdapterFactory {\r\n private templateMountService = inject(TemplateMountService);\r\n\r\n buildAdapter(templates: TemplateRegistry): RendererAdapter {\r\n const headerTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n return {\r\n renderNoDataTemplate: (req) =>\r\n renderNoDataTemplate(req, templates.noData, this.templateMountService),\r\n renderLoadingTemplate: (req) =>\r\n renderLoadingTemplate(\r\n req,\r\n templates.loading,\r\n this.templateMountService,\r\n ),\r\n renderErrorTemplate: (req) =>\r\n renderErrorTemplate(req, templates.error, this.templateMountService),\r\n renderColumnHeaderTemplate: (req) => {\r\n const tpl = headerTemplates.get(req.context.columnKey);\r\n return renderColumnHeaderTemplate(req, tpl, this.templateMountService);\r\n },\r\n registerColumnHeaderTemplate: (key, tpl) => {\r\n headerTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n };\r\n }\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data-template\";\r\n\r\nexport function extractNoDataTemplate(\r\n dir?: PolyGridNoDataTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\n\r\nexport function extractLoadingTemplate(\r\n dir?: PolyGridLoadingTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\n\r\nexport function extractErrorTemplate(\r\n dir?: PolyGridErrorTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data-template\";\r\nimport { TemplateRegistry } from \"../templates/interfaces/template-registry\";\r\nimport { extractNoDataTemplate } from \"./extract-no-data\";\r\nimport { extractLoadingTemplate } from \"./extract-loading\";\r\nimport { extractErrorTemplate } from \"./extract-error\";\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TemplateCollectorService {\r\n collect(\r\n noDataTplDir?: PolyGridNoDataTemplateDirective,\r\n loadingTplDir?: PolyGridLoadingTemplateDirective,\r\n errorTplDir?: PolyGridErrorTemplateDirective,\r\n ): TemplateRegistry {\r\n return {\r\n noData: extractNoDataTemplate(noDataTplDir),\r\n loading: extractLoadingTemplate(loadingTplDir),\r\n error: extractErrorTemplate(errorTplDir),\r\n };\r\n }\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridErrorTemplate]\",\r\n})\r\nexport class PolyGridErrorTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { QueryList } from \"@angular/core\";\r\nimport { PolyGridColumnComponent } from \"../../../components/column/poly-grid-column\";\r\nimport { PolyGridColumn } from \"@polygrid/core/engine/services/column/interfaces/column\";\r\n\r\nexport function collectProjectedColumns(\r\n projectedColumns: QueryList<PolyGridColumnComponent>\r\n): PolyGridColumn[] {\r\n const columns: PolyGridColumn[] = [];\r\n for (const projCol of projectedColumns) {\r\n const col: PolyGridColumn = {\r\n header: projCol.header(),\r\n field: projCol.field(),\r\n width: projCol.width(),\r\n minWidth: projCol.minWidth(),\r\n maxWidth: projCol.maxWidth() ?? Infinity,\r\n visible: projCol.visible(),\r\n };\r\n columns.push(col);\r\n }\r\n return columns;\r\n}\r\n","import { Injectable, signal, TemplateRef } from \"@angular/core\";\r\nimport * as methods from \"./methods/index\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { RendererAdapter } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-adapter\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ColumnService {\r\n private _grid = signal<PolyGrid | null>(null);\r\n grid = this._grid.asReadonly();\r\n\r\n private adapter?: RendererAdapter;\r\n private pendingHeaderTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n setGrid(grid: PolyGrid) {\r\n this._grid.set(grid);\r\n }\r\n\r\n setAdapter(adapter: RendererAdapter) {\r\n this.adapter = adapter;\r\n // flush pending templates into the adapter\r\n this.pendingHeaderTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnHeaderTemplate?.(key, tpl);\r\n });\r\n this.pendingHeaderTemplates.clear();\r\n }\r\n\r\n registerHeaderTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerColumnHeaderTemplate?.(key, tpl);\r\n } else {\r\n this.pendingHeaderTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n collectProjectedColumns = methods.collectProjectedColumns;\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridColumnHeaderTemplate]\",\r\n})\r\nexport class PolyGridColumnHeaderTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n EffectRef,\r\n inject,\r\n Injector,\r\n input,\r\n runInInjectionContext,\r\n} from \"@angular/core\";\r\nimport * as effects from \"../../effects/index\";\r\nimport { ColumnService } from \"../../services/column/column\";\r\nimport { PolyGridColumnHeaderTemplateDirective } from \"../../directives/column-header-template\";\r\n\r\n@Component({\r\n selector: \"pg-column\",\r\n imports: [CommonModule],\r\n template: \"\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PolyGridColumnComponent\r\n implements AfterViewInit, AfterContentInit\r\n{\r\n private injector = inject(Injector);\r\n private columnService = inject(ColumnService);\r\n\r\n header = input.required<string>();\r\n field = input.required<string>();\r\n width = input<number>();\r\n visible = input<boolean>(true);\r\n minWidth = input<number>();\r\n maxWidth = input<number>();\r\n\r\n toggleVisibilityEffect!: EffectRef;\r\n\r\n @ContentChild(PolyGridColumnHeaderTemplateDirective)\r\n headerTemplateDir?: PolyGridColumnHeaderTemplateDirective;\r\n\r\n ngAfterViewInit(): void {\r\n runInInjectionContext(this.injector, () => {\r\n this.toggleVisibilityEffect = effects.toggleVisibilityInputEffect(\r\n `${this.field()}::${this.header()}`,\r\n this.visible,\r\n this.columnService,\r\n );\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (this.headerTemplateDir) {\r\n this.columnService.registerHeaderTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.headerTemplateDir.template,\r\n );\r\n }\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EffectRef,\r\n ElementRef,\r\n inject,\r\n Injector,\r\n input,\r\n OnDestroy,\r\n QueryList,\r\n runInInjectionContext,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport * as effects from \"../../effects/index\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { PolyGridColumn } from \"@polygrid/core/engine/services/column/interfaces/column\";\r\nimport { PolyGridOptions } from \"@polygrid/core/engine/core/interfaces/grid-options\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data-template\";\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\nimport { RendererAdapterFactory } from \"../../services/renderer-adapter/renderer-adapter-factory\";\r\nimport { TemplateCollectorService } from \"../../services/template-collector/template-collector\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\nimport { PolyGridColumnComponent } from \"../column/poly-grid-column\";\r\nimport { GridErrorType } from \"@polygrid/core/engine/services/error/types/error-type\";\r\nimport { PolyGridResizeMode } from \"@polygrid/core/engine/store/types/resize-mode\";\r\nimport { ColumnService } from \"../../services/column/column\";\r\n\r\n@Component({\r\n selector: \"pg-grid\",\r\n imports: [CommonModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: \"./poly-grid.html\",\r\n styleUrl: \"./poly-grid.css\",\r\n})\r\nexport class PolyGridComponent\r\n implements AfterViewInit, OnDestroy, AfterContentInit\r\n{\r\n private grid: PolyGrid | null = null;\r\n private injector = inject(Injector);\r\n private adapterFactory = inject(RendererAdapterFactory);\r\n private templateCollector = inject(TemplateCollectorService);\r\n private errorType!: GridErrorType | null;\r\n private columnService = inject(ColumnService);\r\n\r\n @ViewChild(\"host\", { static: true }) hostRef!: ElementRef<HTMLDivElement>;\r\n\r\n @ContentChild(PolyGridNoDataTemplateDirective)\r\n noDataTemplateDir?: PolyGridNoDataTemplateDirective;\r\n @ContentChild(PolyGridLoadingTemplateDirective)\r\n loadingTemplateDir?: PolyGridLoadingTemplateDirective;\r\n @ContentChild(PolyGridErrorTemplateDirective)\r\n errorTemplateDir?: PolyGridErrorTemplateDirective;\r\n\r\n @ContentChildren(PolyGridColumnComponent)\r\n projectedColumns!: QueryList<PolyGridColumnComponent>;\r\n\r\n // inputs\r\n id = input.required<string>();\r\n columns = input<PolyGridColumn[]>([]);\r\n data = input<any[]>([]);\r\n loading = input<boolean>(false);\r\n resizable = input<boolean>(false);\r\n resizeMode = input<PolyGridResizeMode>(\"unconstrained\");\r\n enableAnimations = input<boolean>(false);\r\n\r\n // reactive effects\r\n gridIdEffect!: EffectRef;\r\n dataEffect!: EffectRef;\r\n columnEffect!: EffectRef;\r\n loadingEffect!: EffectRef;\r\n resizableEffect!: EffectRef;\r\n resizeModeEffect!: EffectRef;\r\n enableAnimationsEffect!: EffectRef;\r\n\r\n ngAfterViewInit(): void {\r\n const host = this.hostRef.nativeElement;\r\n const registry = this.templateCollector.collect(\r\n this.noDataTemplateDir,\r\n this.loadingTemplateDir,\r\n this.errorTemplateDir,\r\n );\r\n const adapter = this.adapterFactory.buildAdapter(registry);\r\n this.columnService.setAdapter(adapter);\r\n\r\n const projected = this.columnService.collectProjectedColumns(\r\n this.projectedColumns,\r\n );\r\n const inputCols = this.columns();\r\n const finalColumns =\r\n inputCols !== undefined && inputCols !== null && inputCols.length > 0\r\n ? inputCols\r\n : projected;\r\n\r\n const options: PolyGridOptions = {\r\n id: this.id(),\r\n columns: finalColumns,\r\n data: this.data(),\r\n rendererAdapter: adapter,\r\n };\r\n\r\n this.grid = new PolyGrid(host, options);\r\n this.columnService.setGrid(this.grid);\r\n\r\n runInInjectionContext(this.injector, () => {\r\n this.gridIdEffect = effects.gridIdInputEffect(this.id, this.grid!);\r\n this.dataEffect = effects.dataInputEffect(this.data, this.grid!);\r\n this.columnEffect = effects.columnInputEffect(this.columns, this.grid!);\r\n this.loadingEffect = effects.loadingInputEffect(this.loading, this.grid!);\r\n this.resizableEffect = effects.resizableInputEffect(\r\n this.resizable,\r\n this.grid!,\r\n );\r\n this.resizeModeEffect = effects.resizeModeInputEffect(\r\n this.resizeMode,\r\n this.grid!,\r\n );\r\n this.enableAnimationsEffect = effects.enableAnimationsInputEffect(\r\n this.enableAnimations,\r\n this.grid!,\r\n );\r\n });\r\n\r\n if (this.errorType) {\r\n switch (this.errorType) {\r\n case \"ambiguous-column-definition\":\r\n this.grid.api.setError(true, this.errorType);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (this.columns().length > 0 && this.projectedColumns.length > 0)\r\n this.errorType = \"ambiguous-column-definition\";\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.grid?.destroy();\r\n this.grid = null;\r\n }\r\n}\r\n","<div #host class=\"pg-host\"></div>\r\n","import { NgModule } from \"@angular/core\";\r\nimport {\r\n PolyGridColumnComponent,\r\n PolyGridColumnHeaderTemplateDirective,\r\n PolyGridComponent,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridNoDataTemplateDirective,\r\n} from \"../../public-api\";\r\n\r\n@NgModule({\r\n imports: [\r\n PolyGridComponent,\r\n PolyGridColumnComponent,\r\n PolyGridNoDataTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridColumnHeaderTemplateDirective,\r\n ],\r\n exports: [\r\n PolyGridComponent,\r\n PolyGridColumnComponent,\r\n PolyGridNoDataTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridColumnHeaderTemplateDirective,\r\n ],\r\n providers: [],\r\n})\r\nexport class POLY_GRID {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["methods.collectProjectedColumns","effects.toggleVisibilityInputEffect","effects.gridIdInputEffect","effects.dataInputEffect","effects.columnInputEffect","effects.loadingInputEffect","effects.resizableInputEffect","effects.resizeModeInputEffect","effects.enableAnimationsInputEffect"],"mappings":"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"}
1
+ {"version":3,"file":"polygrid-angular.mjs","sources":["../../src/lib/effects/skip-first.ts","../../src/lib/effects/grid-id.ts","../../src/lib/effects/data.ts","../../src/lib/effects/column.ts","../../src/lib/effects/loading.ts","../../src/lib/effects/resizable.ts","../../src/lib/effects/resize-mode.ts","../../src/lib/effects/toggle-visibility.ts","../../src/lib/effects/enable-animations.ts","../../src/lib/directives/no-data-template.ts","../../src/lib/directives/loading-template.ts","../../src/lib/services/templates/template-mount.ts","../../src/lib/services/renderer-adapter/no-data.ts","../../src/lib/services/renderer-adapter/loading.ts","../../src/lib/services/renderer-adapter/error.ts","../../src/lib/services/renderer-adapter/column-header.ts","../../src/lib/services/renderer-adapter/column-footer.ts","../../src/lib/services/renderer-adapter/renderer-adapter-factory.ts","../../src/lib/services/template-collector/extract-no-data.ts","../../src/lib/services/template-collector/extract-loading.ts","../../src/lib/services/template-collector/extract-error.ts","../../src/lib/services/template-collector/template-collector.ts","../../src/lib/directives/error-template.ts","../../src/lib/services/column/methods/collect-projected-columns.ts","../../src/lib/services/column/column.ts","../../src/lib/directives/column-header-template.ts","../../src/lib/directives/column-footer-template.ts","../../src/lib/components/column/poly-grid-column.ts","../../src/lib/components/grid/poly-grid.ts","../../src/lib/components/grid/poly-grid.html","../../src/lib/modules/poly-grid.ts","../../src/polygrid-angular.ts"],"sourcesContent":["import { effect, EffectRef } from \"@angular/core\";\r\n\r\nexport function effectSkipFirst(fn: (isInitial: boolean) => void): EffectRef {\r\n let first = true;\r\n return effect(() => {\r\n // Always execute fn, so it reads signals and establishes tracking\r\n fn(first);\r\n first = false;\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function gridIdInputEffect(\r\n value: Signal<string>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const id = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setGridId(id);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function dataInputEffect(\r\n value: Signal<any[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const data = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setData(data);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { PolyGridColumn } from \"@polygrid/core/engine/services/column/interfaces/column\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function columnInputEffect(\r\n value: Signal<PolyGridColumn[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const columns = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setColumns(columns);\r\n });\r\n}\r\n","import { effect, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function loadingInputEffect(value: Signal<boolean>, grid: PolyGrid) {\r\n return effect(() => {\r\n grid.api.setLoading(value());\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function resizableInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const resizable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setResizable(resizable);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\nimport { PolyGridResizeMode } from \"@polygrid/core/engine/store/types/resize-mode\";\r\n\r\nexport function resizeModeInputEffect(\r\n value: Signal<PolyGridResizeMode>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const resizeMode = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setResizeMode(resizeMode);\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\nimport { ColumnService } from \"../services/column/column\";\r\n\r\nexport function toggleVisibilityInputEffect(\r\n key: string,\r\n value: Signal<boolean>,\r\n columnService: ColumnService,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const visible = value();\r\n\r\n if (isInitial) return;\r\n\r\n const grid = columnService.grid();\r\n if (!grid) return;\r\n\r\n const { enableAnimations } = grid._store.getState().view;\r\n\r\n if (enableAnimations) {\r\n visible\r\n ? grid.api.showColumnAnimated(key)\r\n : grid.api.hideColumnAnimated(key);\r\n } else {\r\n grid.api.setColumnVisible(key, visible);\r\n }\r\n });\r\n}\r\n","import { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\n\r\nexport function enableAnimationsInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const enableAnimations = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setEnableAnimations(enableAnimations);\r\n });\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridNoDataTemplate]\",\r\n})\r\nexport class PolyGridNoDataTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridLoadingTemplate]\",\r\n})\r\nexport class PolyGridLoadingTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { ApplicationRef, Injectable, TemplateRef } from \"@angular/core\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TemplateMountService {\r\n constructor(private appRef: ApplicationRef) {}\r\n\r\n mount<T>(\r\n template: TemplateRef<T>,\r\n container: HTMLElement,\r\n context: T\r\n ): RendererHandle {\r\n const view = template.createEmbeddedView(context);\r\n this.appRef.attachView(view);\r\n view.detectChanges();\r\n\r\n const frag = document.createDocumentFragment();\r\n for (const node of view.rootNodes) frag.appendChild(node);\r\n container.appendChild(frag);\r\n\r\n return {\r\n update: (partial: Partial<T>) => {\r\n Object.assign(view.context as any, partial);\r\n view.detectChanges();\r\n },\r\n destroy: () => {\r\n this.appRef.detachView(view);\r\n view.destroy();\r\n },\r\n };\r\n }\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { NoDataMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/no-data-mount\";\r\n\r\nexport function renderNoDataTemplate(\r\n req: NoDataMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n context: req.context,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { LoadingMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/loading-mount\";\r\n\r\nexport function renderLoadingTemplate(\r\n req: LoadingMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n context: req.context,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { ErrorMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/error-mount\";\r\n\r\nexport function renderErrorTemplate(\r\n req: ErrorMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n title: req.context.title,\r\n message: req.context.message,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { ColumnHeaderMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/column-header-mount\";\r\n\r\nexport function renderColumnHeaderTemplate(\r\n req: ColumnHeaderMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService,\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n field: req.context.field,\r\n header: req.context.header,\r\n columnKey: req.context.columnKey,\r\n columnId: req.context.columnId,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { RendererHandle } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-handle\";\r\nimport { ColumnFooterMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/column-footer-mount\";\r\n\r\nexport function renderColumnFooterTemplate(\r\n req: ColumnFooterMount,\r\n template: TemplateRef<any> | undefined,\r\n templateMountService: TemplateMountService,\r\n): RendererHandle | null {\r\n if (!template) return null;\r\n\r\n const ctx = {\r\n $implicit: req.context,\r\n field: req.context.field,\r\n header: req.context.header,\r\n columnKey: req.context.columnKey,\r\n columnId: req.context.columnId,\r\n values: req.context.values,\r\n rows: req.context.rows,\r\n };\r\n\r\n return templateMountService.mount(template, req.container, ctx);\r\n}\r\n","import { inject, Injectable, TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { TemplateRegistry } from \"../templates/interfaces/template-registry\";\r\nimport { RendererAdapter } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-adapter\";\r\nimport { renderNoDataTemplate } from \"./no-data\";\r\nimport { renderLoadingTemplate } from \"./loading\";\r\nimport { renderErrorTemplate } from \"./error\";\r\nimport { renderColumnHeaderTemplate } from \"./column-header\";\r\nimport { renderColumnFooterTemplate } from \"./column-footer\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class RendererAdapterFactory {\r\n private templateMountService = inject(TemplateMountService);\r\n\r\n buildAdapter(templates: TemplateRegistry): RendererAdapter {\r\n const headerTemplates = new Map<string, TemplateRef<any>>();\r\n const footerTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n return {\r\n renderNoDataTemplate: (req) =>\r\n renderNoDataTemplate(req, templates.noData, this.templateMountService),\r\n renderLoadingTemplate: (req) =>\r\n renderLoadingTemplate(\r\n req,\r\n templates.loading,\r\n this.templateMountService,\r\n ),\r\n renderErrorTemplate: (req) =>\r\n renderErrorTemplate(req, templates.error, this.templateMountService),\r\n renderColumnHeaderTemplate: (req) => {\r\n const tpl = headerTemplates.get(req.context.columnKey);\r\n return renderColumnHeaderTemplate(req, tpl, this.templateMountService);\r\n },\r\n registerColumnHeaderTemplate: (key, tpl) => {\r\n headerTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n renderColumnFooterTemplate: (req) => {\r\n const tpl = footerTemplates.get(req.context.columnKey);\r\n return renderColumnFooterTemplate(req, tpl, this.templateMountService);\r\n },\r\n registerColumnFooterTemplate: (key, tpl) => {\r\n footerTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n };\r\n }\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data-template\";\r\n\r\nexport function extractNoDataTemplate(\r\n dir?: PolyGridNoDataTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\n\r\nexport function extractLoadingTemplate(\r\n dir?: PolyGridLoadingTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\n\r\nexport function extractErrorTemplate(\r\n dir?: PolyGridErrorTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data-template\";\r\nimport { TemplateRegistry } from \"../templates/interfaces/template-registry\";\r\nimport { extractNoDataTemplate } from \"./extract-no-data\";\r\nimport { extractLoadingTemplate } from \"./extract-loading\";\r\nimport { extractErrorTemplate } from \"./extract-error\";\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TemplateCollectorService {\r\n collect(\r\n noDataTplDir?: PolyGridNoDataTemplateDirective,\r\n loadingTplDir?: PolyGridLoadingTemplateDirective,\r\n errorTplDir?: PolyGridErrorTemplateDirective,\r\n ): TemplateRegistry {\r\n return {\r\n noData: extractNoDataTemplate(noDataTplDir),\r\n loading: extractLoadingTemplate(loadingTplDir),\r\n error: extractErrorTemplate(errorTplDir),\r\n };\r\n }\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridErrorTemplate]\",\r\n})\r\nexport class PolyGridErrorTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { QueryList } from \"@angular/core\";\r\nimport { PolyGridColumnComponent } from \"../../../components/column/poly-grid-column\";\r\nimport { PolyGridColumn } from \"@polygrid/core/engine/services/column/interfaces/column\";\r\n\r\nexport function collectProjectedColumns(\r\n projectedColumns: QueryList<PolyGridColumnComponent>\r\n): PolyGridColumn[] {\r\n const columns: PolyGridColumn[] = [];\r\n for (const projCol of projectedColumns) {\r\n const col: PolyGridColumn = {\r\n header: projCol.header(),\r\n field: projCol.field(),\r\n width: projCol.width(),\r\n minWidth: projCol.minWidth(),\r\n maxWidth: projCol.maxWidth() ?? Infinity,\r\n visible: projCol.visible(),\r\n };\r\n columns.push(col);\r\n }\r\n return columns;\r\n}\r\n","import { Injectable, signal, TemplateRef } from \"@angular/core\";\r\nimport * as methods from \"./methods/index\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { RendererAdapter } from \"@polygrid/core/engine/services/renderer/interfaces/renderer-adapter\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ColumnService {\r\n private _grid = signal<PolyGrid | null>(null);\r\n grid = this._grid.asReadonly();\r\n\r\n private adapter?: RendererAdapter;\r\n private pendingHeaderTemplates = new Map<string, TemplateRef<any>>();\r\n private pendingFooterTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n setGrid(grid: PolyGrid) {\r\n this._grid.set(grid);\r\n }\r\n\r\n setAdapter(adapter: RendererAdapter) {\r\n this.adapter = adapter;\r\n // flush pending templates into the adapter\r\n this.pendingHeaderTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnHeaderTemplate?.(key, tpl);\r\n });\r\n this.pendingFooterTemplates.clear();\r\n this.pendingFooterTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnFooterTemplate?.(key, tpl);\r\n });\r\n }\r\n\r\n registerHeaderTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerColumnHeaderTemplate?.(key, tpl);\r\n } else {\r\n this.pendingHeaderTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n registerFooterTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerColumnFooterTemplate?.(key, tpl);\r\n } else {\r\n this.pendingFooterTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n collectProjectedColumns = methods.collectProjectedColumns;\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridColumnHeaderTemplate]\",\r\n})\r\nexport class PolyGridColumnHeaderTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridColumnFooterTemplate]\",\r\n})\r\nexport class PolyGridColumnFooterTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n EffectRef,\r\n inject,\r\n Injector,\r\n input,\r\n runInInjectionContext,\r\n} from \"@angular/core\";\r\nimport * as effects from \"../../effects/index\";\r\nimport { ColumnService } from \"../../services/column/column\";\r\nimport { PolyGridColumnHeaderTemplateDirective } from \"../../directives/column-header-template\";\r\nimport { PolyGridColumnFooterTemplateDirective } from \"../../directives/column-footer-template\";\r\n\r\n@Component({\r\n selector: \"pg-column\",\r\n imports: [CommonModule],\r\n template: \"\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PolyGridColumnComponent\r\n implements AfterViewInit, AfterContentInit\r\n{\r\n private injector = inject(Injector);\r\n private columnService = inject(ColumnService);\r\n\r\n header = input.required<string>();\r\n field = input.required<string>();\r\n width = input<number>();\r\n visible = input<boolean>(true);\r\n minWidth = input<number>();\r\n maxWidth = input<number>();\r\n\r\n toggleVisibilityEffect!: EffectRef;\r\n\r\n @ContentChild(PolyGridColumnHeaderTemplateDirective)\r\n headerTemplateDir?: PolyGridColumnHeaderTemplateDirective;\r\n @ContentChild(PolyGridColumnFooterTemplateDirective)\r\n footerTemplateDir?: PolyGridColumnFooterTemplateDirective;\r\n\r\n ngAfterViewInit(): void {\r\n runInInjectionContext(this.injector, () => {\r\n this.toggleVisibilityEffect = effects.toggleVisibilityInputEffect(\r\n `${this.field()}::${this.header()}`,\r\n this.visible,\r\n this.columnService,\r\n );\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (this.headerTemplateDir) {\r\n this.columnService.registerHeaderTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.headerTemplateDir.template,\r\n );\r\n }\r\n if (this.footerTemplateDir) {\r\n this.columnService.registerFooterTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.footerTemplateDir.template,\r\n );\r\n }\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EffectRef,\r\n ElementRef,\r\n inject,\r\n Injector,\r\n input,\r\n OnDestroy,\r\n QueryList,\r\n runInInjectionContext,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport * as effects from \"../../effects/index\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { PolyGridColumn } from \"@polygrid/core/engine/services/column/interfaces/column\";\r\nimport { PolyGridOptions } from \"@polygrid/core/engine/core/interfaces/grid-options\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data-template\";\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\nimport { RendererAdapterFactory } from \"../../services/renderer-adapter/renderer-adapter-factory\";\r\nimport { TemplateCollectorService } from \"../../services/template-collector/template-collector\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\nimport { PolyGridColumnComponent } from \"../column/poly-grid-column\";\r\nimport { GridErrorType } from \"@polygrid/core/engine/services/error/types/error-type\";\r\nimport { PolyGridResizeMode } from \"@polygrid/core/engine/store/types/resize-mode\";\r\nimport { ColumnService } from \"../../services/column/column\";\r\n\r\n@Component({\r\n selector: \"pg-grid\",\r\n imports: [CommonModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: \"./poly-grid.html\",\r\n styleUrl: \"./poly-grid.css\",\r\n})\r\nexport class PolyGridComponent\r\n implements AfterViewInit, OnDestroy, AfterContentInit\r\n{\r\n private grid: PolyGrid | null = null;\r\n private injector = inject(Injector);\r\n private adapterFactory = inject(RendererAdapterFactory);\r\n private templateCollector = inject(TemplateCollectorService);\r\n private errorType!: GridErrorType | null;\r\n private columnService = inject(ColumnService);\r\n\r\n @ViewChild(\"host\", { static: true }) hostRef!: ElementRef<HTMLDivElement>;\r\n\r\n @ContentChild(PolyGridNoDataTemplateDirective)\r\n noDataTemplateDir?: PolyGridNoDataTemplateDirective;\r\n @ContentChild(PolyGridLoadingTemplateDirective)\r\n loadingTemplateDir?: PolyGridLoadingTemplateDirective;\r\n @ContentChild(PolyGridErrorTemplateDirective)\r\n errorTemplateDir?: PolyGridErrorTemplateDirective;\r\n\r\n @ContentChildren(PolyGridColumnComponent)\r\n projectedColumns!: QueryList<PolyGridColumnComponent>;\r\n\r\n // inputs\r\n id = input.required<string>();\r\n columns = input<PolyGridColumn[]>([]);\r\n data = input<any[]>([]);\r\n loading = input<boolean>(false);\r\n resizable = input<boolean>(false);\r\n resizeMode = input<PolyGridResizeMode>(\"unconstrained\");\r\n enableAnimations = input<boolean>(false);\r\n\r\n // reactive effects\r\n gridIdEffect!: EffectRef;\r\n dataEffect!: EffectRef;\r\n columnEffect!: EffectRef;\r\n loadingEffect!: EffectRef;\r\n resizableEffect!: EffectRef;\r\n resizeModeEffect!: EffectRef;\r\n enableAnimationsEffect!: EffectRef;\r\n\r\n ngAfterViewInit(): void {\r\n const host = this.hostRef.nativeElement;\r\n const registry = this.templateCollector.collect(\r\n this.noDataTemplateDir,\r\n this.loadingTemplateDir,\r\n this.errorTemplateDir,\r\n );\r\n const adapter = this.adapterFactory.buildAdapter(registry);\r\n this.columnService.setAdapter(adapter);\r\n\r\n const projected = this.columnService.collectProjectedColumns(\r\n this.projectedColumns,\r\n );\r\n const inputCols = this.columns();\r\n const finalColumns =\r\n inputCols !== undefined && inputCols !== null && inputCols.length > 0\r\n ? inputCols\r\n : projected;\r\n\r\n const options: PolyGridOptions = {\r\n id: this.id(),\r\n columns: finalColumns,\r\n data: this.data(),\r\n rendererAdapter: adapter,\r\n };\r\n\r\n this.grid = new PolyGrid(host, options);\r\n this.columnService.setGrid(this.grid);\r\n\r\n runInInjectionContext(this.injector, () => {\r\n this.gridIdEffect = effects.gridIdInputEffect(this.id, this.grid!);\r\n this.dataEffect = effects.dataInputEffect(this.data, this.grid!);\r\n this.columnEffect = effects.columnInputEffect(this.columns, this.grid!);\r\n this.loadingEffect = effects.loadingInputEffect(this.loading, this.grid!);\r\n this.resizableEffect = effects.resizableInputEffect(\r\n this.resizable,\r\n this.grid!,\r\n );\r\n this.resizeModeEffect = effects.resizeModeInputEffect(\r\n this.resizeMode,\r\n this.grid!,\r\n );\r\n this.enableAnimationsEffect = effects.enableAnimationsInputEffect(\r\n this.enableAnimations,\r\n this.grid!,\r\n );\r\n });\r\n\r\n if (this.errorType) {\r\n switch (this.errorType) {\r\n case \"ambiguous-column-definition\":\r\n this.grid.api.setError(true, this.errorType);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (this.columns().length > 0 && this.projectedColumns.length > 0)\r\n this.errorType = \"ambiguous-column-definition\";\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.grid?.destroy();\r\n this.grid = null;\r\n }\r\n}\r\n","<div #host class=\"pg-host\"></div>\r\n","import { NgModule } from \"@angular/core\";\r\nimport {\r\n PolyGridColumnComponent,\r\n PolyGridColumnFooterTemplateDirective,\r\n PolyGridColumnHeaderTemplateDirective,\r\n PolyGridComponent,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridNoDataTemplateDirective,\r\n} from \"../../public-api\";\r\n\r\n@NgModule({\r\n imports: [\r\n PolyGridComponent,\r\n PolyGridColumnComponent,\r\n PolyGridNoDataTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridColumnHeaderTemplateDirective,\r\n PolyGridColumnFooterTemplateDirective,\r\n ],\r\n exports: [\r\n PolyGridComponent,\r\n PolyGridColumnComponent,\r\n PolyGridNoDataTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridColumnHeaderTemplateDirective,\r\n PolyGridColumnFooterTemplateDirective,\r\n ],\r\n providers: [],\r\n})\r\nexport class POLY_GRID {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["methods.collectProjectedColumns","effects.toggleVisibilityInputEffect","effects.gridIdInputEffect","effects.dataInputEffect","effects.columnInputEffect","effects.loadingInputEffect","effects.resizableInputEffect","effects.resizeModeInputEffect","effects.enableAnimationsInputEffect"],"mappings":";;;;;AAEM,SAAU,eAAe,CAAC,EAAgC,EAAA;IAC9D,IAAI,KAAK,GAAG,IAAI;IAChB,OAAO,MAAM,CAAC,MAAK;;QAEjB,EAAE,CAAC,KAAK,CAAC;QACT,KAAK,GAAG,KAAK;AACf,IAAA,CAAC,CAAC;AACJ;;ACLM,SAAU,iBAAiB,CAC/B,KAAqB,EACrB,IAAc,EAAA;AAEd,IAAA,OAAO,eAAe,CAAC,CAAC,SAAS,KAAI;AACnC,QAAA,MAAM,EAAE,GAAG,KAAK,EAAE;AAClB,QAAA,IAAI,SAAS;YAAE;AACf,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;AAClC,IAAA,CAAC,CAAC;AACJ;;ACTM,SAAU,eAAe,CAC7B,KAAoB,EACpB,IAAc,EAAA;AAEd,IAAA,OAAO,eAAe,CAAC,CAAC,SAAS,KAAI;AACnC,QAAA,MAAM,IAAI,GAAG,KAAK,EAAE;AACpB,QAAA,IAAI,SAAS;YAAE;AACf,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAClC,IAAA,CAAC,CAAC;AACJ;;ACRM,SAAU,iBAAiB,CAC/B,KAA+B,EAC/B,IAAc,EAAA;AAEd,IAAA,OAAO,eAAe,CAAC,CAAC,SAAS,KAAI;AACnC,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE;AACvB,QAAA,IAAI,SAAS;YAAE;AACf,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;AACxC,IAAA,CAAC,CAAC;AACJ;;ACXM,SAAU,kBAAkB,CAAC,KAAsB,EAAE,IAAc,EAAA;IACvE,OAAO,MAAM,CAAC,MAAK;QACjB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC9B,IAAA,CAAC,CAAC;AACJ;;ACHM,SAAU,oBAAoB,CAClC,KAAsB,EACtB,IAAc,EAAA;AAEd,IAAA,OAAO,eAAe,CAAC,CAAC,SAAS,KAAI;AACnC,QAAA,MAAM,SAAS,GAAG,KAAK,EAAE;AACzB,QAAA,IAAI,SAAS;YAAE;AACf,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;AAC5C,IAAA,CAAC,CAAC;AACJ;;ACRM,SAAU,qBAAqB,CACnC,KAAiC,EACjC,IAAc,EAAA;AAEd,IAAA,OAAO,eAAe,CAAC,CAAC,SAAS,KAAI;AACnC,QAAA,MAAM,UAAU,GAAG,KAAK,EAAE;AAC1B,QAAA,IAAI,SAAS;YAAE;AACf,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC;AAC9C,IAAA,CAAC,CAAC;AACJ;;SCVgB,2BAA2B,CACzC,GAAW,EACX,KAAsB,EACtB,aAA4B,EAAA;AAE5B,IAAA,OAAO,eAAe,CAAC,CAAC,SAAS,KAAI;AACnC,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE;AAEvB,QAAA,IAAI,SAAS;YAAE;AAEf,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI;QAExD,IAAI,gBAAgB,EAAE;YACpB;kBACI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG;kBAC/B,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC;QACtC;aAAO;YACL,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC;QACzC;AACF,IAAA,CAAC,CAAC;AACJ;;ACvBM,SAAU,2BAA2B,CACzC,KAAsB,EACtB,IAAc,EAAA;AAEd,IAAA,OAAO,eAAe,CAAC,CAAC,SAAS,KAAI;AACnC,QAAA,MAAM,gBAAgB,GAAG,KAAK,EAAE;AAChC,QAAA,IAAI,SAAS;YAAE;AACf,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;AAC1D,IAAA,CAAC,CAAC;AACJ;;MCRa,+BAA+B,CAAA;AACvB,IAAA,QAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;uGADrC,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACrC,iBAAA;;;MCCY,gCAAgC,CAAA;AACxB,IAAA,QAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;uGADrC,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAH5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACtC,iBAAA;;;MCAY,oBAAoB,CAAA;AACX,IAAA,MAAA;AAApB,IAAA,WAAA,CAAoB,MAAsB,EAAA;QAAtB,IAAA,CAAA,MAAM,GAAN,MAAM;IAAmB;AAE7C,IAAA,KAAK,CACH,QAAwB,EACxB,SAAsB,EACtB,OAAU,EAAA;QAEV,MAAM,IAAI,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACjD,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE;AAEpB,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,sBAAsB,EAAE;AAC9C,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACzD,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;QAE3B,OAAO;AACL,YAAA,MAAM,EAAE,CAAC,OAAmB,KAAI;gBAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAc,EAAE,OAAO,CAAC;gBAC3C,IAAI,CAAC,aAAa,EAAE;YACtB,CAAC;YACD,OAAO,EAAE,MAAK;AACZ,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC5B,IAAI,CAAC,OAAO,EAAE;YAChB,CAAC;SACF;IACH;uGA1BW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAApB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA;;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;SCElB,oBAAoB,CAClC,GAAgB,EAChB,QAAsC,EACtC,oBAA0C,EAAA;AAE1C,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,IAAI;AAE1B,IAAA,MAAM,GAAG,GAAG;QACV,SAAS,EAAE,GAAG,CAAC,OAAO;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB;AAED,IAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AACjE;;SCbgB,qBAAqB,CACnC,GAAiB,EACjB,QAAsC,EACtC,oBAA0C,EAAA;AAE1C,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,IAAI;AAE1B,IAAA,MAAM,GAAG,GAAG;QACV,SAAS,EAAE,GAAG,CAAC,OAAO;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB;AAED,IAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AACjE;;SCbgB,mBAAmB,CACjC,GAAe,EACf,QAAsC,EACtC,oBAA0C,EAAA;AAE1C,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,IAAI;AAE1B,IAAA,MAAM,GAAG,GAAG;QACV,SAAS,EAAE,GAAG,CAAC,OAAO;AACtB,QAAA,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AACxB,QAAA,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;KAC7B;AAED,IAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AACjE;;SCdgB,0BAA0B,CACxC,GAAsB,EACtB,QAAsC,EACtC,oBAA0C,EAAA;AAE1C,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,IAAI;AAE1B,IAAA,MAAM,GAAG,GAAG;QACV,SAAS,EAAE,GAAG,CAAC,OAAO;AACtB,QAAA,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AACxB,QAAA,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;AAC1B,QAAA,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;AAChC,QAAA,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ;KAC/B;AAED,IAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AACjE;;SChBgB,0BAA0B,CACxC,GAAsB,EACtB,QAAsC,EACtC,oBAA0C,EAAA;AAE1C,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,IAAI;AAE1B,IAAA,MAAM,GAAG,GAAG;QACV,SAAS,EAAE,GAAG,CAAC,OAAO;AACtB,QAAA,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AACxB,QAAA,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;AAC1B,QAAA,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;AAChC,QAAA,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ;AAC9B,QAAA,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;AAC1B,QAAA,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;KACvB;AAED,IAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AACjE;;MCZa,sBAAsB,CAAA;AACzB,IAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAE3D,IAAA,YAAY,CAAC,SAA2B,EAAA;AACtC,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B;AAC3D,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B;QAE3D,OAAO;AACL,YAAA,oBAAoB,EAAE,CAAC,GAAG,KACxB,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC;AACxE,YAAA,qBAAqB,EAAE,CAAC,GAAG,KACzB,qBAAqB,CACnB,GAAG,EACH,SAAS,CAAC,OAAO,EACjB,IAAI,CAAC,oBAAoB,CAC1B;AACH,YAAA,mBAAmB,EAAE,CAAC,GAAG,KACvB,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC;AACtE,YAAA,0BAA0B,EAAE,CAAC,GAAG,KAAI;AAClC,gBAAA,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;gBACtD,OAAO,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,oBAAoB,CAAC;YACxE,CAAC;AACD,YAAA,4BAA4B,EAAE,CAAC,GAAG,EAAE,GAAG,KAAI;AACzC,gBAAA,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAuB,CAAC;YACnD,CAAC;AACD,YAAA,0BAA0B,EAAE,CAAC,GAAG,KAAI;AAClC,gBAAA,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;gBACtD,OAAO,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,oBAAoB,CAAC;YACxE,CAAC;AACD,YAAA,4BAA4B,EAAE,CAAC,GAAG,EAAE,GAAG,KAAI;AACzC,gBAAA,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAuB,CAAC;YACnD,CAAC;SACF;IACH;uGAjCW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACP5B,SAAU,qBAAqB,CACnC,GAAqC,EAAA;IAErC,OAAO,GAAG,EAAE,QAAQ;AACtB;;ACJM,SAAU,sBAAsB,CACpC,GAAsC,EAAA;IAEtC,OAAO,GAAG,EAAE,QAAQ;AACtB;;ACJM,SAAU,oBAAoB,CAClC,GAAoC,EAAA;IAEpC,OAAO,GAAG,EAAE,QAAQ;AACtB;;MCGa,wBAAwB,CAAA;AACnC,IAAA,OAAO,CACL,YAA8C,EAC9C,aAAgD,EAChD,WAA4C,EAAA;QAE5C,OAAO;AACL,YAAA,MAAM,EAAE,qBAAqB,CAAC,YAAY,CAAC;AAC3C,YAAA,OAAO,EAAE,sBAAsB,CAAC,aAAa,CAAC;AAC9C,YAAA,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC;SACzC;IACH;uGAXW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADX,MAAM,EAAA,CAAA;;2FACnB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCJrB,8BAA8B,CAAA;AACtB,IAAA,QAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;uGADrC,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACpC,iBAAA;;;ACAK,SAAU,uBAAuB,CACrC,gBAAoD,EAAA;IAEpD,MAAM,OAAO,GAAqB,EAAE;AACpC,IAAA,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;AACtC,QAAA,MAAM,GAAG,GAAmB;AAC1B,YAAA,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;AACxB,YAAA,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;AACtB,YAAA,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;AACtB,YAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;AAC5B,YAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,QAAQ;AACxC,YAAA,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;SAC3B;AACD,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IACnB;AACA,IAAA,OAAO,OAAO;AAChB;;MCda,aAAa,CAAA;AAChB,IAAA,KAAK,GAAG,MAAM,CAAkB,IAAI,iDAAC;AAC7C,IAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAEtB,IAAA,OAAO;AACP,IAAA,sBAAsB,GAAG,IAAI,GAAG,EAA4B;AAC5D,IAAA,sBAAsB,GAAG,IAAI,GAAG,EAA4B;AAEpE,IAAA,OAAO,CAAC,IAAc,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACtB;AAEA,IAAA,UAAU,CAAC,OAAwB,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;QAEtB,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;YAC/C,IAAI,CAAC,OAAQ,CAAC,4BAA4B,GAAG,GAAG,EAAE,GAAG,CAAC;AACxD,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;QACnC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;YAC/C,IAAI,CAAC,OAAQ,CAAC,4BAA4B,GAAG,GAAG,EAAE,GAAG,CAAC;AACxD,QAAA,CAAC,CAAC;IACJ;IAEA,sBAAsB,CAAC,GAAW,EAAE,GAAqB,EAAA;AACvD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,4BAA4B,GAAG,GAAG,EAAE,GAAG,CAAC;QACvD;aAAO;YACL,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;QAC3C;IACF;IAEA,sBAAsB,CAAC,GAAW,EAAE,GAAqB,EAAA;AACvD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,4BAA4B,GAAG,GAAG,EAAE,GAAG,CAAC;QACvD;aAAO;YACL,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;QAC3C;IACF;AAEA,IAAA,uBAAuB,GAAGA,uBAA+B;uGAxC9C,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCArB,qCAAqC,CAAA;AAC7B,IAAA,QAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;uGADrC,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAHjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC3C,iBAAA;;;MCCY,qCAAqC,CAAA;AAC7B,IAAA,QAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;uGADrC,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAHjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC3C,iBAAA;;;MCoBY,uBAAuB,CAAA;AAG1B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAE7C,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,iDAAU;AACjC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;IAChC,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACvB,IAAA,OAAO,GAAG,KAAK,CAAU,IAAI,mDAAC;IAC9B,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IAC1B,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAE1B,IAAA,sBAAsB;AAGtB,IAAA,iBAAiB;AAEjB,IAAA,iBAAiB;IAEjB,eAAe,GAAA;AACb,QAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;YACxC,IAAI,CAAC,sBAAsB,GAAGC,2BAAmC,CAC/D,CAAA,EAAG,IAAI,CAAC,KAAK,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,EACnC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB;AACH,QAAA,CAAC,CAAC;IACJ;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACvC,CAAA,EAAG,IAAI,CAAC,KAAK,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,EACnC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAChC;QACH;AACA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACvC,CAAA,EAAG,IAAI,CAAC,KAAK,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,EACnC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAChC;QACH;IACF;uGA3CW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,y2BAepB,qCAAqC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAErC,qCAAqC,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EApBzC,EAAE,2DADF,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;sBAgBE,YAAY;uBAAC,qCAAqC;;sBAElD,YAAY;uBAAC,qCAAqC;;;MCFxC,iBAAiB,CAAA;IAGpB,IAAI,GAAoB,IAAI;AAC5B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC/C,IAAA,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACpD,IAAA,SAAS;AACT,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAER,IAAA,OAAO;AAG5C,IAAA,iBAAiB;AAEjB,IAAA,kBAAkB;AAElB,IAAA,gBAAgB;AAGhB,IAAA,gBAAgB;;AAGhB,IAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,6CAAU;AAC7B,IAAA,OAAO,GAAG,KAAK,CAAmB,EAAE,mDAAC;AACrC,IAAA,IAAI,GAAG,KAAK,CAAQ,EAAE,gDAAC;AACvB,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,qDAAC;AACjC,IAAA,UAAU,GAAG,KAAK,CAAqB,eAAe,sDAAC;AACvD,IAAA,gBAAgB,GAAG,KAAK,CAAU,KAAK,4DAAC;;AAGxC,IAAA,YAAY;AACZ,IAAA,UAAU;AACV,IAAA,YAAY;AACZ,IAAA,aAAa;AACb,IAAA,eAAe;AACf,IAAA,gBAAgB;AAChB,IAAA,sBAAsB;IAEtB,eAAe,GAAA;AACb,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC7C,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,gBAAgB,CACtB;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC1D,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC;AAEtC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAC1D,IAAI,CAAC,gBAAgB,CACtB;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE;AAChC,QAAA,MAAM,YAAY,GAChB,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG;AAClE,cAAE;cACA,SAAS;AAEf,QAAA,MAAM,OAAO,GAAoB;AAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,YAAY;AACrB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,eAAe,EAAE,OAAO;SACzB;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAErC,QAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;AACxC,YAAA,IAAI,CAAC,YAAY,GAAGC,iBAAyB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAK,CAAC;AAClE,YAAA,IAAI,CAAC,UAAU,GAAGC,eAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAK,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY,GAAGC,iBAAyB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAK,CAAC;AACvE,YAAA,IAAI,CAAC,aAAa,GAAGC,kBAA0B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAK,CAAC;AACzE,YAAA,IAAI,CAAC,eAAe,GAAGC,oBAA4B,CACjD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAK,CACX;AACD,YAAA,IAAI,CAAC,gBAAgB,GAAGC,qBAA6B,CACnD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAK,CACX;AACD,YAAA,IAAI,CAAC,sBAAsB,GAAGC,2BAAmC,CAC/D,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,IAAK,CACX;AACH,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,QAAQ,IAAI,CAAC,SAAS;AACpB,gBAAA,KAAK,6BAA6B;AAChC,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC5C;;QAEN;IACF;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAC/D,YAAA,IAAI,CAAC,SAAS,GAAG,6BAA6B;IAClD;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;uGAzGW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAYd,+BAA+B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE/B,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEhC,8BAA8B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAG3B,uBAAuB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1D1C,yCACA,EAAA,MAAA,EAAA,CAAA,+EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDiCY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,WACV,CAAC,YAAY,CAAC,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,+EAAA,CAAA,EAAA;;sBAc9C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAElC,YAAY;uBAAC,+BAA+B;;sBAE5C,YAAY;uBAAC,gCAAgC;;sBAE7C,YAAY;uBAAC,8BAA8B;;sBAG3C,eAAe;uBAAC,uBAAuB;;;ME1B7B,SAAS,CAAA;uGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YAnBlB,iBAAiB;YACjB,uBAAuB;YACvB,+BAA+B;YAC/B,gCAAgC;YAChC,8BAA8B;YAC9B,qCAAqC;AACrC,YAAA,qCAAqC,aAGrC,iBAAiB;YACjB,uBAAuB;YACvB,+BAA+B;YAC/B,gCAAgC;YAChC,8BAA8B;YAC9B,qCAAqC;YACrC,qCAAqC,CAAA,EAAA,CAAA;AAI5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YAnBlB,iBAAiB;YACjB,uBAAuB,CAAA,EAAA,CAAA;;2FAkBd,SAAS,EAAA,UAAA,EAAA,CAAA;kBArBrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,uBAAuB;wBACvB,+BAA+B;wBAC/B,gCAAgC;wBAChC,8BAA8B;wBAC9B,qCAAqC;wBACrC,qCAAqC;AACtC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,uBAAuB;wBACvB,+BAA+B;wBAC/B,gCAAgC;wBAChC,8BAA8B;wBAC9B,qCAAqC;wBACrC,qCAAqC;AACtC,qBAAA;AACD,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;AC/BD;;AAEG;;;;"}
@@ -31,6 +31,13 @@ declare class PolyGridColumnHeaderTemplateDirective {
31
31
  static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridColumnHeaderTemplateDirective, "[polyGridColumnHeaderTemplate]", never, {}, {}, never, never, true, never>;
32
32
  }
33
33
 
34
+ declare class PolyGridColumnFooterTemplateDirective {
35
+ template: TemplateRef<any>;
36
+ constructor(template: TemplateRef<any>);
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridColumnFooterTemplateDirective, never>;
38
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridColumnFooterTemplateDirective, "[polyGridColumnFooterTemplate]", never, {}, {}, never, never, true, never>;
39
+ }
40
+
34
41
  declare class PolyGridColumnComponent implements AfterViewInit, AfterContentInit {
35
42
  private injector;
36
43
  private columnService;
@@ -42,10 +49,11 @@ declare class PolyGridColumnComponent implements AfterViewInit, AfterContentInit
42
49
  maxWidth: i0.InputSignal<number>;
43
50
  toggleVisibilityEffect: EffectRef;
44
51
  headerTemplateDir?: PolyGridColumnHeaderTemplateDirective;
52
+ footerTemplateDir?: PolyGridColumnFooterTemplateDirective;
45
53
  ngAfterViewInit(): void;
46
54
  ngAfterContentInit(): void;
47
55
  static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridColumnComponent, never>;
48
- static ɵcmp: i0.ɵɵComponentDeclaration<PolyGridColumnComponent, "pg-column", never, { "header": { "alias": "header"; "required": true; "isSignal": true; }; "field": { "alias": "field"; "required": true; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, {}, ["headerTemplateDir"], never, true, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<PolyGridColumnComponent, "pg-column", never, { "header": { "alias": "header"; "required": true; "isSignal": true; }; "field": { "alias": "field"; "required": true; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, {}, ["headerTemplateDir", "footerTemplateDir"], never, true, never>;
49
57
  }
50
58
 
51
59
  declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterContentInit {
@@ -83,8 +91,8 @@ declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterConten
83
91
 
84
92
  declare class POLY_GRID {
85
93
  static ɵfac: i0.ɵɵFactoryDeclaration<POLY_GRID, never>;
86
- static ɵmod: i0.ɵɵNgModuleDeclaration<POLY_GRID, never, [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective], [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective]>;
94
+ static ɵmod: i0.ɵɵNgModuleDeclaration<POLY_GRID, never, [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective, typeof PolyGridColumnFooterTemplateDirective], [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective, typeof PolyGridColumnFooterTemplateDirective]>;
87
95
  static ɵinj: i0.ɵɵInjectorDeclaration<POLY_GRID>;
88
96
  }
89
97
 
90
- export { POLY_GRID, PolyGridColumnComponent, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective };
98
+ export { POLY_GRID, PolyGridColumnComponent, PolyGridColumnFooterTemplateDirective, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/angular",
3
- "version": "0.0.625",
3
+ "version": "0.0.626",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^21.0.6",
6
6
  "@angular/common": "^21.0.6",