@polygrid/angular 0.0.5-a → 0.0.601

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, input, inject, Injector, runInInjectionContext, ViewChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
2
+ import { effect, Directive, Injectable, inject, Injector, input, runInInjectionContext, ContentChild, ViewChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { PolyGrid } from '@polygrid/core/engine/core/grid';
5
5
 
@@ -24,9 +24,103 @@ function columnInputEffect(value, grid) {
24
24
  });
25
25
  }
26
26
 
27
+ class PolyGridNoDataTemplateDirective {
28
+ template;
29
+ constructor(template) {
30
+ this.template = template;
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridNoDataTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
33
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: PolyGridNoDataTemplateDirective, isStandalone: true, selector: "[polyGridNoDataTemplate]", ngImport: i0 });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridNoDataTemplateDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: "[polyGridNoDataTemplate]",
39
+ }]
40
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
41
+
42
+ class TemplateMountService {
43
+ appRef;
44
+ constructor(appRef) {
45
+ this.appRef = appRef;
46
+ }
47
+ mount(template, container, context) {
48
+ const view = template.createEmbeddedView(context);
49
+ this.appRef.attachView(view);
50
+ view.detectChanges();
51
+ const frag = document.createDocumentFragment();
52
+ for (const node of view.rootNodes)
53
+ frag.appendChild(node);
54
+ container.appendChild(frag);
55
+ return {
56
+ update: (partial) => {
57
+ Object.assign(view.context, partial);
58
+ view.detectChanges();
59
+ },
60
+ destroy: () => {
61
+ this.appRef.detachView(view);
62
+ view.destroy();
63
+ },
64
+ };
65
+ }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TemplateMountService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
67
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TemplateMountService, providedIn: "root" });
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TemplateMountService, decorators: [{
70
+ type: Injectable,
71
+ args: [{ providedIn: "root" }]
72
+ }], ctorParameters: () => [{ type: i0.ApplicationRef }] });
73
+
74
+ function renderNoDataTemplate(req, template, templateMountService) {
75
+ if (!template)
76
+ return null;
77
+ const ctx = {
78
+ $implicit: req.context,
79
+ context: req.context,
80
+ };
81
+ return templateMountService.mount(template, req.container, ctx);
82
+ }
83
+
84
+ class RendererAdapterFactory {
85
+ templateMountService = inject(TemplateMountService);
86
+ buildAdapter(templates) {
87
+ return {
88
+ renderNoDataTemplate: (req) => renderNoDataTemplate(req, templates.noData, this.templateMountService),
89
+ };
90
+ }
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RendererAdapterFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
92
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RendererAdapterFactory, providedIn: "root" });
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RendererAdapterFactory, decorators: [{
95
+ type: Injectable,
96
+ args: [{ providedIn: "root" }]
97
+ }] });
98
+
99
+ function extractNoDataTemplate(dir) {
100
+ return dir?.template;
101
+ }
102
+
103
+ class TemplateCollectorService {
104
+ collect(noDataTplDir) {
105
+ return {
106
+ noData: extractNoDataTemplate(noDataTplDir),
107
+ };
108
+ }
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TemplateCollectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
110
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TemplateCollectorService, providedIn: "root" });
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TemplateCollectorService, decorators: [{
113
+ type: Injectable,
114
+ args: [{ providedIn: "root" }]
115
+ }] });
116
+
27
117
  class PolyGridComponent {
28
118
  grid = null;
119
+ injector = inject(Injector);
120
+ adapterFactory = inject(RendererAdapterFactory);
121
+ templateCollector = inject(TemplateCollectorService);
29
122
  hostRef;
123
+ noDataTemplateDir;
30
124
  // inputs
31
125
  id = input.required(...(ngDevMode ? [{ debugName: "id" }] : []));
32
126
  columns = input([], ...(ngDevMode ? [{ debugName: "columns" }] : []));
@@ -35,13 +129,15 @@ class PolyGridComponent {
35
129
  gridIdEffect;
36
130
  dataEffect;
37
131
  columnEffect;
38
- injector = inject(Injector);
39
132
  ngAfterViewInit() {
40
133
  const host = this.hostRef.nativeElement;
134
+ const registry = this.templateCollector.collect(this.noDataTemplateDir);
135
+ const adapter = this.adapterFactory.buildAdapter(registry);
41
136
  const options = {
42
137
  id: this.id(),
43
138
  columns: this.columns(),
44
139
  data: this.data(),
140
+ rendererAdapter: adapter,
45
141
  };
46
142
  this.grid = new PolyGrid(host, options);
47
143
  runInInjectionContext(this.injector, () => {
@@ -55,7 +151,7 @@ class PolyGridComponent {
55
151
  this.grid = null;
56
152
  }
57
153
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: PolyGridComponent, isStandalone: true, selector: "pg-grid", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "hostRef", first: true, predicate: ["host"], descendants: true, static: true }], ngImport: i0, template: "<div #host class=\"pg-host\"></div>\r\n", styles: [":host{display:block;width:100%;height:100%}.pg-host{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: PolyGridComponent, isStandalone: true, selector: "pg-grid", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "noDataTemplateDir", first: true, predicate: PolyGridNoDataTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "hostRef", first: true, predicate: ["host"], descendants: true, static: true }], ngImport: i0, template: "<div #host class=\"pg-host\"></div>\r\n", styles: [":host{display:block;width:100%;height:100%}.pg-host{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
155
  }
60
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridComponent, decorators: [{
61
157
  type: Component,
@@ -63,18 +159,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
63
159
  }], propDecorators: { hostRef: [{
64
160
  type: ViewChild,
65
161
  args: ["host", { static: true }]
162
+ }], noDataTemplateDir: [{
163
+ type: ContentChild,
164
+ args: [PolyGridNoDataTemplateDirective]
66
165
  }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }] } });
67
166
 
68
167
  class POLY_GRID {
69
168
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
70
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, imports: [PolyGridComponent], exports: [PolyGridComponent] });
169
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, imports: [PolyGridComponent, PolyGridNoDataTemplateDirective], exports: [PolyGridComponent, PolyGridNoDataTemplateDirective] });
71
170
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, imports: [PolyGridComponent] });
72
171
  }
73
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, decorators: [{
74
173
  type: NgModule,
75
174
  args: [{
76
- imports: [PolyGridComponent],
77
- exports: [PolyGridComponent],
175
+ imports: [PolyGridComponent, PolyGridNoDataTemplateDirective],
176
+ exports: [PolyGridComponent, PolyGridNoDataTemplateDirective],
78
177
  providers: [],
79
178
  }]
80
179
  }] });
@@ -83,5 +182,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
83
182
  * Generated bundle index. Do not edit.
84
183
  */
85
184
 
86
- export { POLY_GRID, PolyGridComponent };
185
+ export { POLY_GRID, PolyGridComponent, PolyGridNoDataTemplateDirective };
87
186
  //# sourceMappingURL=polygrid-angular.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"polygrid-angular.mjs","sources":["../../src/lib/effects/grid-id.ts","../../src/lib/effects/data.ts","../../src/lib/effects/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, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function gridIdInputEffect(\r\n value: Signal<string>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effect(() => {\r\n if (grid) grid.api.setGridId(value());\r\n });\r\n}\r\n","import { effect, EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function dataInputEffect(\r\n value: Signal<any[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effect(() => {\r\n if (grid) grid.api.setData(value());\r\n });\r\n}\r\n","import { effect, 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\n\r\nexport function columnInputEffect(\r\n value: Signal<PolyGridColumn[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effect(() => {\r\n if (grid) grid.api.setColumns(value());\r\n });\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EffectRef,\r\n ElementRef,\r\n inject,\r\n Injector,\r\n input,\r\n OnDestroy,\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\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 implements AfterViewInit, OnDestroy {\r\n private grid: PolyGrid | null = null;\r\n\r\n @ViewChild(\"host\", { static: true }) hostRef!: ElementRef<HTMLDivElement>;\r\n\r\n // inputs\r\n id = input.required<string>();\r\n columns = input<PolyGridColumn[]>([]);\r\n data = input<any[]>([]);\r\n\r\n // reactive effects\r\n gridIdEffect!: EffectRef;\r\n dataEffect!: EffectRef;\r\n columnEffect!: EffectRef;\r\n\r\n private injector = inject(Injector);\r\n\r\n ngAfterViewInit(): void {\r\n const host = this.hostRef.nativeElement;\r\n\r\n const options: PolyGridOptions = {\r\n id: this.id(),\r\n columns: this.columns(),\r\n data: this.data(),\r\n };\r\n\r\n this.grid = new PolyGrid(host, options);\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 });\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 { PolyGridComponent } from \"../../public-api\";\r\n\r\n@NgModule({\r\n imports: [PolyGridComponent],\r\n exports: [PolyGridComponent],\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":["effects.gridIdInputEffect","effects.dataInputEffect","effects.columnInputEffect"],"mappings":"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"}
1
+ {"version":3,"file":"polygrid-angular.mjs","sources":["../../src/lib/effects/grid-id.ts","../../src/lib/effects/data.ts","../../src/lib/effects/column.ts","../../src/lib/directives/no-data.ts","../../src/lib/services/templates/template-mount.ts","../../src/lib/services/renderer-adapter/no-data.ts","../../src/lib/services/renderer-adapter/renderer-adapter-factory.ts","../../src/lib/services/template-collector/extract-no-data.ts","../../src/lib/services/template-collector/template-collector.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, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function gridIdInputEffect(\r\n value: Signal<string>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effect(() => {\r\n if (grid) grid.api.setGridId(value());\r\n });\r\n}\r\n","import { effect, EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function dataInputEffect(\r\n value: Signal<any[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effect(() => {\r\n if (grid) grid.api.setData(value());\r\n });\r\n}\r\n","import { effect, 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\n\r\nexport function columnInputEffect(\r\n value: Signal<PolyGridColumn[]>,\r\n grid: PolyGrid\r\n): EffectRef {\r\n return effect(() => {\r\n if (grid) grid.api.setColumns(value());\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 { 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 { 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\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 };\r\n }\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data\";\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 { Injectable } from \"@angular/core\";\r\nimport { PolyGridNoDataTemplateDirective } from \"../../directives/no-data\";\r\nimport { TemplateRegistry } from \"../templates/interfaces/template-registry\";\r\nimport { extractNoDataTemplate } from \"./extract-no-data\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TemplateCollectorService {\r\n collect(noDataTplDir?: PolyGridNoDataTemplateDirective): TemplateRegistry {\r\n return {\r\n noData: extractNoDataTemplate(noDataTplDir),\r\n };\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n EffectRef,\r\n ElementRef,\r\n inject,\r\n Injector,\r\n input,\r\n OnDestroy,\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\";\r\nimport { RendererAdapterFactory } from \"../../services/renderer-adapter/renderer-adapter-factory\";\r\nimport { TemplateCollectorService } from \"../../services/template-collector/template-collector\";\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 implements AfterViewInit, OnDestroy {\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\r\n @ViewChild(\"host\", { static: true }) hostRef!: ElementRef<HTMLDivElement>;\r\n @ContentChild(PolyGridNoDataTemplateDirective)\r\n noDataTemplateDir?: PolyGridNoDataTemplateDirective;\r\n\r\n // inputs\r\n id = input.required<string>();\r\n columns = input<PolyGridColumn[]>([]);\r\n data = input<any[]>([]);\r\n\r\n // reactive effects\r\n gridIdEffect!: EffectRef;\r\n dataEffect!: EffectRef;\r\n columnEffect!: EffectRef;\r\n\r\n ngAfterViewInit(): void {\r\n const host = this.hostRef.nativeElement;\r\n const registry = this.templateCollector.collect(this.noDataTemplateDir);\r\n const adapter = this.adapterFactory.buildAdapter(registry);\r\n\r\n const options: PolyGridOptions = {\r\n id: this.id(),\r\n columns: this.columns(),\r\n data: this.data(),\r\n rendererAdapter: adapter,\r\n };\r\n\r\n this.grid = new PolyGrid(host, options);\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 });\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 PolyGridComponent,\r\n PolyGridNoDataTemplateDirective,\r\n} from \"../../public-api\";\r\n\r\n@NgModule({\r\n imports: [PolyGridComponent, PolyGridNoDataTemplateDirective],\r\n exports: [PolyGridComponent, PolyGridNoDataTemplateDirective],\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":["effects.gridIdInputEffect","effects.dataInputEffect","effects.columnInputEffect"],"mappings":";;;;;AAGM,SAAU,iBAAiB,CAC/B,KAAqB,EACrB,IAAc,EAAA;IAEd,OAAO,MAAM,CAAC,MAAK;AACjB,QAAA,IAAI,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvC,IAAA,CAAC,CAAC;AACJ;;ACPM,SAAU,eAAe,CAC7B,KAAoB,EACpB,IAAc,EAAA;IAEd,OAAO,MAAM,CAAC,MAAK;AACjB,QAAA,IAAI,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrC,IAAA,CAAC,CAAC;AACJ;;ACNM,SAAU,iBAAiB,CAC/B,KAA+B,EAC/B,IAAc,EAAA;IAEd,OAAO,MAAM,CAAC,MAAK;AACjB,QAAA,IAAI,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AACxC,IAAA,CAAC,CAAC;AACJ;;MCNa,+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;;;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;;MCXa,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;SACzE;IACH;uGARW,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;;;ACH5B,SAAU,qBAAqB,CACnC,GAAqC,EAAA;IAErC,OAAO,GAAG,EAAE,QAAQ;AACtB;;MCDa,wBAAwB,CAAA;AACnC,IAAA,OAAO,CAAC,YAA8C,EAAA;QACpD,OAAO;AACL,YAAA,MAAM,EAAE,qBAAqB,CAAC,YAAY,CAAC;SAC5C;IACH;uGALW,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;;;MCyBrB,iBAAiB,CAAA;IACpB,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;AAEvB,IAAA,OAAO;AAE5C,IAAA,iBAAiB;;AAGjB,IAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,6CAAU;AAC7B,IAAA,OAAO,GAAG,KAAK,CAAmB,EAAE,mDAAC;AACrC,IAAA,IAAI,GAAG,KAAK,CAAQ,EAAE,gDAAC;;AAGvB,IAAA,YAAY;AACZ,IAAA,UAAU;AACV,IAAA,YAAY;IAEZ,eAAe,GAAA;AACb,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;AACvC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC;AAE1D,QAAA,MAAM,OAAO,GAAoB;AAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,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;AAEvC,QAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;AACxC,YAAA,IAAI,CAAC,YAAY,GAAGA,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;AACzE,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;uGA5CW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,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,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOd,+BAA+B,EAAA,WAAA,EAAA,IAAA,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,ECrC/C,yCACA,sIDwBY,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;;sBAU9C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAClC,YAAY;uBAAC,+BAA+B;;;ME1BlC,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,YAJV,iBAAiB,EAAE,+BAA+B,CAAA,EAAA,OAAA,EAAA,CAClD,iBAAiB,EAAE,+BAA+B,CAAA,EAAA,CAAA;AAGjD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YAJV,iBAAiB,CAAA,EAAA,CAAA;;2FAIhB,SAAS,EAAA,UAAA,EAAA,CAAA;kBALrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;AAC7D,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;AAC7D,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACVD;;AAEG;;;;"}
@@ -1,27 +1,37 @@
1
1
  import * as i0 from '@angular/core';
2
- import { AfterViewInit, OnDestroy, ElementRef, EffectRef } from '@angular/core';
2
+ import { TemplateRef, AfterViewInit, OnDestroy, ElementRef, EffectRef } from '@angular/core';
3
3
  import { PolyGridColumn } from '@polygrid/core/engine/services/column/interfaces/column';
4
4
 
5
+ declare class PolyGridNoDataTemplateDirective {
6
+ template: TemplateRef<any>;
7
+ constructor(template: TemplateRef<any>);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridNoDataTemplateDirective, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridNoDataTemplateDirective, "[polyGridNoDataTemplate]", never, {}, {}, never, never, true, never>;
10
+ }
11
+
5
12
  declare class PolyGridComponent implements AfterViewInit, OnDestroy {
6
13
  private grid;
14
+ private injector;
15
+ private adapterFactory;
16
+ private templateCollector;
7
17
  hostRef: ElementRef<HTMLDivElement>;
18
+ noDataTemplateDir?: PolyGridNoDataTemplateDirective;
8
19
  id: i0.InputSignal<string>;
9
20
  columns: i0.InputSignal<PolyGridColumn[]>;
10
21
  data: i0.InputSignal<any[]>;
11
22
  gridIdEffect: EffectRef;
12
23
  dataEffect: EffectRef;
13
24
  columnEffect: EffectRef;
14
- private injector;
15
25
  ngAfterViewInit(): void;
16
26
  ngOnDestroy(): void;
17
27
  static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridComponent, never>;
18
- 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; }; }, {}, never, never, true, never>;
28
+ 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; }; }, {}, ["noDataTemplateDir"], never, true, never>;
19
29
  }
20
30
 
21
31
  declare class POLY_GRID {
22
32
  static ɵfac: i0.ɵɵFactoryDeclaration<POLY_GRID, never>;
23
- static ɵmod: i0.ɵɵNgModuleDeclaration<POLY_GRID, never, [typeof PolyGridComponent], [typeof PolyGridComponent]>;
33
+ static ɵmod: i0.ɵɵNgModuleDeclaration<POLY_GRID, never, [typeof PolyGridComponent, typeof PolyGridNoDataTemplateDirective], [typeof PolyGridComponent, typeof PolyGridNoDataTemplateDirective]>;
24
34
  static ɵinj: i0.ɵɵInjectorDeclaration<POLY_GRID>;
25
35
  }
26
36
 
27
- export { POLY_GRID, PolyGridComponent };
37
+ export { POLY_GRID, PolyGridComponent, PolyGridNoDataTemplateDirective };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/angular",
3
- "version": "0.0.5a",
3
+ "version": "0.0.601",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^21.0.6",
6
6
  "@angular/common": "^21.0.6",