@polygrid/angular 0.0.623 → 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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { effect, Directive, Injectable, inject, signal, Injector, input, runInInjectionContext, ChangeDetectionStrategy, Component, ContentChildren, ContentChild, ViewChild, NgModule } from '@angular/core';
2
+ import { effect, Directive, Injectable, inject, signal, Injector, input, runInInjectionContext, ContentChild, ChangeDetectionStrategy, Component, ContentChildren, ViewChild, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { PolyGrid } from '@polygrid/core/engine/core/grid';
5
5
 
@@ -191,13 +191,57 @@ function renderErrorTemplate(req, template, templateMountService) {
191
191
  return templateMountService.mount(template, req.container, ctx);
192
192
  }
193
193
 
194
+ function renderColumnHeaderTemplate(req, template, templateMountService) {
195
+ if (!template)
196
+ return null;
197
+ const ctx = {
198
+ $implicit: req.context,
199
+ field: req.context.field,
200
+ header: req.context.header,
201
+ columnKey: req.context.columnKey,
202
+ columnId: req.context.columnId,
203
+ };
204
+ return templateMountService.mount(template, req.container, ctx);
205
+ }
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
+
194
222
  class RendererAdapterFactory {
195
223
  templateMountService = inject(TemplateMountService);
196
224
  buildAdapter(templates) {
225
+ const headerTemplates = new Map();
226
+ const footerTemplates = new Map();
197
227
  return {
198
228
  renderNoDataTemplate: (req) => renderNoDataTemplate(req, templates.noData, this.templateMountService),
199
229
  renderLoadingTemplate: (req) => renderLoadingTemplate(req, templates.loading, this.templateMountService),
200
230
  renderErrorTemplate: (req) => renderErrorTemplate(req, templates.error, this.templateMountService),
231
+ renderColumnHeaderTemplate: (req) => {
232
+ const tpl = headerTemplates.get(req.context.columnKey);
233
+ return renderColumnHeaderTemplate(req, tpl, this.templateMountService);
234
+ },
235
+ registerColumnHeaderTemplate: (key, tpl) => {
236
+ headerTemplates.set(key, tpl);
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
+ },
201
245
  };
202
246
  }
203
247
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RendererAdapterFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -270,9 +314,39 @@ function collectProjectedColumns(projectedColumns) {
270
314
  class ColumnService {
271
315
  _grid = signal(null, ...(ngDevMode ? [{ debugName: "_grid" }] : []));
272
316
  grid = this._grid.asReadonly();
317
+ adapter;
318
+ pendingHeaderTemplates = new Map();
319
+ pendingFooterTemplates = new Map();
273
320
  setGrid(grid) {
274
321
  this._grid.set(grid);
275
322
  }
323
+ setAdapter(adapter) {
324
+ this.adapter = adapter;
325
+ // flush pending templates into the adapter
326
+ this.pendingHeaderTemplates.forEach((tpl, key) => {
327
+ this.adapter.registerColumnHeaderTemplate?.(key, tpl);
328
+ });
329
+ this.pendingFooterTemplates.clear();
330
+ this.pendingFooterTemplates.forEach((tpl, key) => {
331
+ this.adapter.registerColumnFooterTemplate?.(key, tpl);
332
+ });
333
+ }
334
+ registerHeaderTemplate(key, tpl) {
335
+ if (this.adapter) {
336
+ this.adapter.registerColumnHeaderTemplate?.(key, tpl);
337
+ }
338
+ else {
339
+ this.pendingHeaderTemplates.set(key, tpl);
340
+ }
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
+ }
276
350
  collectProjectedColumns = collectProjectedColumns;
277
351
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ColumnService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
278
352
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ColumnService, providedIn: "root" });
@@ -282,6 +356,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
282
356
  args: [{ providedIn: "root" }]
283
357
  }] });
284
358
 
359
+ class PolyGridColumnHeaderTemplateDirective {
360
+ template;
361
+ constructor(template) {
362
+ this.template = template;
363
+ }
364
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
365
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: PolyGridColumnHeaderTemplateDirective, isStandalone: true, selector: "[polyGridColumnHeaderTemplate]", ngImport: i0 });
366
+ }
367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnHeaderTemplateDirective, decorators: [{
368
+ type: Directive,
369
+ args: [{
370
+ selector: "[polyGridColumnHeaderTemplate]",
371
+ }]
372
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
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
+
285
389
  class PolyGridColumnComponent {
286
390
  injector = inject(Injector);
287
391
  columnService = inject(ColumnService);
@@ -292,13 +396,23 @@ class PolyGridColumnComponent {
292
396
  minWidth = input(...(ngDevMode ? [undefined, { debugName: "minWidth" }] : []));
293
397
  maxWidth = input(...(ngDevMode ? [undefined, { debugName: "maxWidth" }] : []));
294
398
  toggleVisibilityEffect;
399
+ headerTemplateDir;
400
+ footerTemplateDir;
295
401
  ngAfterViewInit() {
296
402
  runInInjectionContext(this.injector, () => {
297
403
  this.toggleVisibilityEffect = toggleVisibilityInputEffect(`${this.field()}::${this.header()}`, this.visible, this.columnService);
298
404
  });
299
405
  }
406
+ ngAfterContentInit() {
407
+ if (this.headerTemplateDir) {
408
+ this.columnService.registerHeaderTemplate(`${this.field()}::${this.header()}`, this.headerTemplateDir.template);
409
+ }
410
+ if (this.footerTemplateDir) {
411
+ this.columnService.registerFooterTemplate(`${this.field()}::${this.header()}`, this.footerTemplateDir.template);
412
+ }
413
+ }
300
414
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
301
- 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 } }, 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 });
302
416
  }
303
417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridColumnComponent, decorators: [{
304
418
  type: Component,
@@ -308,7 +422,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
308
422
  template: "",
309
423
  changeDetection: ChangeDetectionStrategy.OnPush,
310
424
  }]
311
- }], 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 }] }] } });
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: [{
426
+ type: ContentChild,
427
+ args: [PolyGridColumnHeaderTemplateDirective]
428
+ }], footerTemplateDir: [{
429
+ type: ContentChild,
430
+ args: [PolyGridColumnFooterTemplateDirective]
431
+ }] } });
312
432
 
313
433
  class PolyGridComponent {
314
434
  grid = null;
@@ -342,6 +462,7 @@ class PolyGridComponent {
342
462
  const host = this.hostRef.nativeElement;
343
463
  const registry = this.templateCollector.collect(this.noDataTemplateDir, this.loadingTemplateDir, this.errorTemplateDir);
344
464
  const adapter = this.adapterFactory.buildAdapter(registry);
465
+ this.columnService.setAdapter(adapter);
345
466
  const projected = this.columnService.collectProjectedColumns(this.projectedColumns);
346
467
  const inputCols = this.columns();
347
468
  const finalColumns = inputCols !== undefined && inputCols !== null && inputCols.length > 0
@@ -409,11 +530,15 @@ class POLY_GRID {
409
530
  PolyGridColumnComponent,
410
531
  PolyGridNoDataTemplateDirective,
411
532
  PolyGridLoadingTemplateDirective,
412
- PolyGridErrorTemplateDirective], exports: [PolyGridComponent,
533
+ PolyGridErrorTemplateDirective,
534
+ PolyGridColumnHeaderTemplateDirective,
535
+ PolyGridColumnFooterTemplateDirective], exports: [PolyGridComponent,
413
536
  PolyGridColumnComponent,
414
537
  PolyGridNoDataTemplateDirective,
415
538
  PolyGridLoadingTemplateDirective,
416
- PolyGridErrorTemplateDirective] });
539
+ PolyGridErrorTemplateDirective,
540
+ PolyGridColumnHeaderTemplateDirective,
541
+ PolyGridColumnFooterTemplateDirective] });
417
542
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, imports: [PolyGridComponent,
418
543
  PolyGridColumnComponent] });
419
544
  }
@@ -426,6 +551,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
426
551
  PolyGridNoDataTemplateDirective,
427
552
  PolyGridLoadingTemplateDirective,
428
553
  PolyGridErrorTemplateDirective,
554
+ PolyGridColumnHeaderTemplateDirective,
555
+ PolyGridColumnFooterTemplateDirective,
429
556
  ],
430
557
  exports: [
431
558
  PolyGridComponent,
@@ -433,6 +560,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
433
560
  PolyGridNoDataTemplateDirective,
434
561
  PolyGridLoadingTemplateDirective,
435
562
  PolyGridErrorTemplateDirective,
563
+ PolyGridColumnHeaderTemplateDirective,
564
+ PolyGridColumnFooterTemplateDirective,
436
565
  ],
437
566
  providers: [],
438
567
  }]
@@ -442,5 +571,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
442
571
  * Generated bundle index. Do not edit.
443
572
  */
444
573
 
445
- export { POLY_GRID, PolyGridColumnComponent, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective };
574
+ export { POLY_GRID, PolyGridColumnComponent, PolyGridColumnFooterTemplateDirective, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective };
446
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/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/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 { inject, Injectable } 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\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 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 };\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 } from \"@angular/core\";\r\nimport * as methods from \"./methods/index\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\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 setGrid(grid: PolyGrid) {\r\n this._grid.set(grid);\r\n }\r\n\r\n collectProjectedColumns = methods.collectProjectedColumns;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\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\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 implements AfterViewInit {\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 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","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\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 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 ],\r\n exports: [\r\n PolyGridComponent,\r\n PolyGridColumnComponent,\r\n PolyGridNoDataTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridErrorTemplateDirective,\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;;MCVa,sBAAsB,CAAA;AACzB,IAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAE3D,IAAA,YAAY,CAAC,SAA2B,EAAA;QACtC,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;SACvE;IACH;uGAhBW,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;;;ACL5B,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;;MCfa,aAAa,CAAA;AAChB,IAAA,KAAK,GAAG,MAAM,CAAkB,IAAI,iDAAC;AAC7C,IAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAE9B,IAAA,OAAO,CAAC,IAAc,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACtB;AAEA,IAAA,uBAAuB,GAAGA,uBAA+B;uGAR9C,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;;;MCgBrB,uBAAuB,CAAA;AAC1B,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;IAEtB,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;uGArBW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EADF,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;;;MCoBY,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;AAE1D,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;uGAxGW,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;;;MEhC7B,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,YAflB,iBAAiB;YACjB,uBAAuB;YACvB,+BAA+B;YAC/B,gCAAgC;AAChC,YAAA,8BAA8B,aAG9B,iBAAiB;YACjB,uBAAuB;YACvB,+BAA+B;YAC/B,gCAAgC;YAChC,8BAA8B,CAAA,EAAA,CAAA;AAIrB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YAflB,iBAAiB;YACjB,uBAAuB,CAAA,EAAA,CAAA;;2FAcd,SAAS,EAAA,UAAA,EAAA,CAAA;kBAjBrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,uBAAuB;wBACvB,+BAA+B;wBAC/B,gCAAgC;wBAChC,8BAA8B;AAC/B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,uBAAuB;wBACvB,+BAA+B;wBAC/B,gCAAgC;wBAChC,8BAA8B;AAC/B,qBAAA;AACD,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACzBD;;AAEG;;;;"}
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":"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"}
@@ -1,42 +1,59 @@
1
- import * as _angular_core from '@angular/core';
2
- import { TemplateRef, AfterViewInit, EffectRef, OnDestroy, AfterContentInit, ElementRef, QueryList } from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
+ import { TemplateRef, AfterViewInit, AfterContentInit, EffectRef, OnDestroy, ElementRef, QueryList } from '@angular/core';
3
3
  import { PolyGridColumn } from '@polygrid/core/engine/services/column/interfaces/column';
4
4
  import { PolyGridResizeMode } from '@polygrid/core/engine/store/types/resize-mode';
5
5
 
6
6
  declare class PolyGridNoDataTemplateDirective {
7
7
  template: TemplateRef<any>;
8
8
  constructor(template: TemplateRef<any>);
9
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PolyGridNoDataTemplateDirective, never>;
10
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PolyGridNoDataTemplateDirective, "[polyGridNoDataTemplate]", never, {}, {}, never, never, true, never>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridNoDataTemplateDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridNoDataTemplateDirective, "[polyGridNoDataTemplate]", never, {}, {}, never, never, true, never>;
11
11
  }
12
12
 
13
13
  declare class PolyGridLoadingTemplateDirective {
14
14
  template: TemplateRef<any>;
15
15
  constructor(template: TemplateRef<any>);
16
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PolyGridLoadingTemplateDirective, never>;
17
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PolyGridLoadingTemplateDirective, "[polyGridLoadingTemplate]", never, {}, {}, never, never, true, never>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridLoadingTemplateDirective, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridLoadingTemplateDirective, "[polyGridLoadingTemplate]", never, {}, {}, never, never, true, never>;
18
18
  }
19
19
 
20
20
  declare class PolyGridErrorTemplateDirective {
21
21
  template: TemplateRef<any>;
22
22
  constructor(template: TemplateRef<any>);
23
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PolyGridErrorTemplateDirective, never>;
24
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PolyGridErrorTemplateDirective, "[polyGridErrorTemplate]", never, {}, {}, never, never, true, never>;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridErrorTemplateDirective, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridErrorTemplateDirective, "[polyGridErrorTemplate]", never, {}, {}, never, never, true, never>;
25
25
  }
26
26
 
27
- declare class PolyGridColumnComponent implements AfterViewInit {
27
+ declare class PolyGridColumnHeaderTemplateDirective {
28
+ template: TemplateRef<any>;
29
+ constructor(template: TemplateRef<any>);
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridColumnHeaderTemplateDirective, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridColumnHeaderTemplateDirective, "[polyGridColumnHeaderTemplate]", never, {}, {}, never, never, true, never>;
32
+ }
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
+
41
+ declare class PolyGridColumnComponent implements AfterViewInit, AfterContentInit {
28
42
  private injector;
29
43
  private columnService;
30
- header: _angular_core.InputSignal<string>;
31
- field: _angular_core.InputSignal<string>;
32
- width: _angular_core.InputSignal<number>;
33
- visible: _angular_core.InputSignal<boolean>;
34
- minWidth: _angular_core.InputSignal<number>;
35
- maxWidth: _angular_core.InputSignal<number>;
44
+ header: i0.InputSignal<string>;
45
+ field: i0.InputSignal<string>;
46
+ width: i0.InputSignal<number>;
47
+ visible: i0.InputSignal<boolean>;
48
+ minWidth: i0.InputSignal<number>;
49
+ maxWidth: i0.InputSignal<number>;
36
50
  toggleVisibilityEffect: EffectRef;
51
+ headerTemplateDir?: PolyGridColumnHeaderTemplateDirective;
52
+ footerTemplateDir?: PolyGridColumnFooterTemplateDirective;
37
53
  ngAfterViewInit(): void;
38
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PolyGridColumnComponent, never>;
39
- static ɵcmp: _angular_core.ɵɵ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; }; }, {}, never, never, true, never>;
54
+ ngAfterContentInit(): void;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridColumnComponent, 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>;
40
57
  }
41
58
 
42
59
  declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterContentInit {
@@ -51,13 +68,13 @@ declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterConten
51
68
  loadingTemplateDir?: PolyGridLoadingTemplateDirective;
52
69
  errorTemplateDir?: PolyGridErrorTemplateDirective;
53
70
  projectedColumns: QueryList<PolyGridColumnComponent>;
54
- id: _angular_core.InputSignal<string>;
55
- columns: _angular_core.InputSignal<PolyGridColumn[]>;
56
- data: _angular_core.InputSignal<any[]>;
57
- loading: _angular_core.InputSignal<boolean>;
58
- resizable: _angular_core.InputSignal<boolean>;
59
- resizeMode: _angular_core.InputSignal<PolyGridResizeMode>;
60
- enableAnimations: _angular_core.InputSignal<boolean>;
71
+ id: i0.InputSignal<string>;
72
+ columns: i0.InputSignal<PolyGridColumn[]>;
73
+ data: i0.InputSignal<any[]>;
74
+ loading: i0.InputSignal<boolean>;
75
+ resizable: i0.InputSignal<boolean>;
76
+ resizeMode: i0.InputSignal<PolyGridResizeMode>;
77
+ enableAnimations: i0.InputSignal<boolean>;
61
78
  gridIdEffect: EffectRef;
62
79
  dataEffect: EffectRef;
63
80
  columnEffect: EffectRef;
@@ -68,14 +85,14 @@ declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterConten
68
85
  ngAfterViewInit(): void;
69
86
  ngAfterContentInit(): void;
70
87
  ngOnDestroy(): void;
71
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PolyGridComponent, never>;
72
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PolyGridComponent, "pg-grid", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "resizeMode": { "alias": "resizeMode"; "required": false; "isSignal": true; }; "enableAnimations": { "alias": "enableAnimations"; "required": false; "isSignal": true; }; }, {}, ["noDataTemplateDir", "loadingTemplateDir", "errorTemplateDir", "projectedColumns"], never, true, never>;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridComponent, never>;
89
+ static ɵcmp: i0.ɵɵComponentDeclaration<PolyGridComponent, "pg-grid", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "resizeMode": { "alias": "resizeMode"; "required": false; "isSignal": true; }; "enableAnimations": { "alias": "enableAnimations"; "required": false; "isSignal": true; }; }, {}, ["noDataTemplateDir", "loadingTemplateDir", "errorTemplateDir", "projectedColumns"], never, true, never>;
73
90
  }
74
91
 
75
92
  declare class POLY_GRID {
76
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<POLY_GRID, never>;
77
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<POLY_GRID, never, [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective], [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective]>;
78
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<POLY_GRID>;
93
+ static ɵfac: i0.ɵɵFactoryDeclaration<POLY_GRID, never>;
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]>;
95
+ static ɵinj: i0.ɵɵInjectorDeclaration<POLY_GRID>;
79
96
  }
80
97
 
81
- export { POLY_GRID, PolyGridColumnComponent, 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.623",
3
+ "version": "0.0.626",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^21.0.6",
6
6
  "@angular/common": "^21.0.6",