@polygrid/angular 0.0.677 → 0.0.678

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.
@@ -208,6 +208,26 @@ function allowColumnReorderInputEffect(value, grid) {
208
208
  });
209
209
  }
210
210
 
211
+ function showToolBarInputEffect(value, grid) {
212
+ return effectSkipFirst((isInitial) => {
213
+ const showToolBar = value();
214
+ if (isInitial)
215
+ return;
216
+ if (grid)
217
+ grid.api.setShowToolBar(showToolBar);
218
+ });
219
+ }
220
+
221
+ function toolBarRendererInputEffect(value, grid) {
222
+ return effectSkipFirst((isInitial) => {
223
+ const toolBarRenderer = value();
224
+ if (isInitial)
225
+ return;
226
+ if (grid)
227
+ grid.api.setToolBarRenderer(toolBarRenderer);
228
+ });
229
+ }
230
+
211
231
  class PolyGridNoDataTemplateDirective {
212
232
  template;
213
233
  constructor(template) {
@@ -518,15 +538,20 @@ function extractStatusBarTemplate(dir) {
518
538
  return dir?.template;
519
539
  }
520
540
 
541
+ function extractToolBarTemplate(dir) {
542
+ return dir?.template;
543
+ }
544
+
521
545
  class TemplateCollectorService {
522
- collect(noDataTplDir, loadingTplDir, errorTplDir, groupColumnTplDir, groupHeaderTplDir, statusBarTplDir) {
546
+ collect(noDataTplDir, loadingTplDir, errorTplDir, groupColumnTplDir, groupHeaderTplDir, statusBarTplDir, toolBarTplDir) {
523
547
  return {
524
548
  noData: extractNoDataTemplate(noDataTplDir),
525
549
  loading: extractLoadingTemplate(loadingTplDir),
526
550
  error: extractErrorTemplate(errorTplDir),
527
551
  groupColumn: extractGroupColumnTemplate(groupColumnTplDir),
528
552
  groupHeader: extractGroupHeaderTemplate(groupHeaderTplDir),
529
- statusBar: extractStatusBarTemplate(statusBarTplDir)
553
+ statusBar: extractStatusBarTemplate(statusBarTplDir),
554
+ toolBar: extractToolBarTemplate(toolBarTplDir),
530
555
  };
531
556
  }
532
557
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TemplateCollectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -911,6 +936,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
911
936
  }]
912
937
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
913
938
 
939
+ class PolyGridToolBarTemplateDirective {
940
+ template;
941
+ constructor(template) {
942
+ this.template = template;
943
+ }
944
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridToolBarTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
945
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: PolyGridToolBarTemplateDirective, isStandalone: true, selector: "[polyGridToolBarTemplate]", ngImport: i0 });
946
+ }
947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridToolBarTemplateDirective, decorators: [{
948
+ type: Directive,
949
+ args: [{
950
+ selector: "[polyGridToolBarTemplate]",
951
+ }]
952
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
953
+
914
954
  class PolyGridComponent {
915
955
  grid = null;
916
956
  injector = inject(Injector);
@@ -925,6 +965,7 @@ class PolyGridComponent {
925
965
  groupColumnTemplateDir;
926
966
  groupHeaderTemplateDir;
927
967
  statusBarTemplateDir;
968
+ toolBarTemplateDir;
928
969
  projectedColumns;
929
970
  // inputs
930
971
  id = input.required(...(ngDevMode ? [{ debugName: "id" }] : []));
@@ -950,6 +991,8 @@ class PolyGridComponent {
950
991
  showStatusBar = input(false, ...(ngDevMode ? [{ debugName: "showStatusBar" }] : []));
951
992
  columnMenu = input(false, ...(ngDevMode ? [{ debugName: "columnMenu" }] : []));
952
993
  allowColumnReorder = input(false, ...(ngDevMode ? [{ debugName: "allowColumnReorder" }] : []));
994
+ showToolBar = input(false, ...(ngDevMode ? [{ debugName: "showToolBar" }] : []));
995
+ toolBarRenderer = input(null, ...(ngDevMode ? [{ debugName: "toolBarRenderer" }] : []));
953
996
  // reactive effects
954
997
  gridIdEffect;
955
998
  dataEffect;
@@ -969,9 +1012,11 @@ class PolyGridComponent {
969
1012
  showStatusBarEffect;
970
1013
  columnMenuEffect;
971
1014
  allowColumnReorderEffect;
1015
+ showToolBarEffect;
1016
+ toolBarRendererEffect;
972
1017
  ngAfterViewInit() {
973
1018
  const host = this.hostRef.nativeElement;
974
- const registry = this.templateCollector.collect(this.noDataTemplateDir, this.loadingTemplateDir, this.errorTemplateDir, this.groupColumnTemplateDir, this.groupHeaderTemplateDir, this.statusBarTemplateDir);
1019
+ const registry = this.templateCollector.collect(this.noDataTemplateDir, this.loadingTemplateDir, this.errorTemplateDir, this.groupColumnTemplateDir, this.groupHeaderTemplateDir, this.statusBarTemplateDir, this.toolBarTemplateDir);
975
1020
  const adapter = this.adapterFactory.buildAdapter(registry);
976
1021
  this.columnService.setAdapter(adapter);
977
1022
  const projected = this.columnService.collectProjectedColumns(this.projectedColumns);
@@ -1000,6 +1045,8 @@ class PolyGridComponent {
1000
1045
  showStatusBar: this.showStatusBar(),
1001
1046
  columnMenu: this.columnMenu(),
1002
1047
  allowColumnReorder: this.allowColumnReorder(),
1048
+ showToolBar: this.showToolBar(),
1049
+ toolBarRenderer: this.toolBarRenderer(),
1003
1050
  };
1004
1051
  this.grid = new PolyGrid(host, options);
1005
1052
  this.columnService.setGrid(this.grid);
@@ -1022,6 +1069,8 @@ class PolyGridComponent {
1022
1069
  this.showStatusBarEffect = showStatusBarInputEffect(this.showStatusBar, this.grid);
1023
1070
  this.columnMenuEffect = columnMenuInputEffect(this.columnMenu, this.grid);
1024
1071
  this.allowColumnReorderEffect = allowColumnReorderInputEffect(this.allowColumnReorder, this.grid);
1072
+ this.showToolBarEffect = showToolBarInputEffect(this.showToolBar, this.grid);
1073
+ this.toolBarRendererEffect = toolBarRendererInputEffect(this.toolBarRenderer, this.grid);
1025
1074
  });
1026
1075
  if (this.errorType)
1027
1076
  this.grid.api.setError(true, this.errorType);
@@ -1041,7 +1090,7 @@ class PolyGridComponent {
1041
1090
  this.grid.api.expandAllGroups();
1042
1091
  }
1043
1092
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1044
- 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 }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, resizeMode: { classPropertyName: "resizeMode", publicName: "resizeMode", isSignal: true, isRequired: false, transformFunction: null }, enableAnimations: { classPropertyName: "enableAnimations", publicName: "enableAnimations", isSignal: true, isRequired: false, transformFunction: null }, animationOptions: { classPropertyName: "animationOptions", publicName: "animationOptions", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, sortSettings: { classPropertyName: "sortSettings", publicName: "sortSettings", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, groupable: { classPropertyName: "groupable", publicName: "groupable", isSignal: true, isRequired: false, transformFunction: null }, pageable: { classPropertyName: "pageable", publicName: "pageable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, showStatusBar: { classPropertyName: "showStatusBar", publicName: "showStatusBar", isSignal: true, isRequired: false, transformFunction: null }, columnMenu: { classPropertyName: "columnMenu", publicName: "columnMenu", isSignal: true, isRequired: false, transformFunction: null }, allowColumnReorder: { classPropertyName: "allowColumnReorder", publicName: "allowColumnReorder", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "noDataTemplateDir", first: true, predicate: PolyGridNoDataTemplateDirective, descendants: true }, { propertyName: "loadingTemplateDir", first: true, predicate: PolyGridLoadingTemplateDirective, descendants: true }, { propertyName: "errorTemplateDir", first: true, predicate: PolyGridErrorTemplateDirective, descendants: true }, { propertyName: "groupColumnTemplateDir", first: true, predicate: PolyGridGroupColumnTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplateDir", first: true, predicate: PolyGridGroupHeaderTemplateDirective, descendants: true }, { propertyName: "statusBarTemplateDir", first: true, predicate: PolyGridStatusBarTemplateDirective, descendants: true }, { propertyName: "projectedColumns", predicate: PolyGridColumnComponent }], 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 });
1093
+ 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 }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, resizeMode: { classPropertyName: "resizeMode", publicName: "resizeMode", isSignal: true, isRequired: false, transformFunction: null }, enableAnimations: { classPropertyName: "enableAnimations", publicName: "enableAnimations", isSignal: true, isRequired: false, transformFunction: null }, animationOptions: { classPropertyName: "animationOptions", publicName: "animationOptions", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, sortSettings: { classPropertyName: "sortSettings", publicName: "sortSettings", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, groupable: { classPropertyName: "groupable", publicName: "groupable", isSignal: true, isRequired: false, transformFunction: null }, pageable: { classPropertyName: "pageable", publicName: "pageable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, showStatusBar: { classPropertyName: "showStatusBar", publicName: "showStatusBar", isSignal: true, isRequired: false, transformFunction: null }, columnMenu: { classPropertyName: "columnMenu", publicName: "columnMenu", isSignal: true, isRequired: false, transformFunction: null }, allowColumnReorder: { classPropertyName: "allowColumnReorder", publicName: "allowColumnReorder", isSignal: true, isRequired: false, transformFunction: null }, showToolBar: { classPropertyName: "showToolBar", publicName: "showToolBar", isSignal: true, isRequired: false, transformFunction: null }, toolBarRenderer: { classPropertyName: "toolBarRenderer", publicName: "toolBarRenderer", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "noDataTemplateDir", first: true, predicate: PolyGridNoDataTemplateDirective, descendants: true }, { propertyName: "loadingTemplateDir", first: true, predicate: PolyGridLoadingTemplateDirective, descendants: true }, { propertyName: "errorTemplateDir", first: true, predicate: PolyGridErrorTemplateDirective, descendants: true }, { propertyName: "groupColumnTemplateDir", first: true, predicate: PolyGridGroupColumnTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplateDir", first: true, predicate: PolyGridGroupHeaderTemplateDirective, descendants: true }, { propertyName: "statusBarTemplateDir", first: true, predicate: PolyGridStatusBarTemplateDirective, descendants: true }, { propertyName: "toolBarTemplateDir", first: true, predicate: PolyGridToolBarTemplateDirective, descendants: true }, { propertyName: "projectedColumns", predicate: PolyGridColumnComponent }], 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 });
1045
1094
  }
1046
1095
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PolyGridComponent, decorators: [{
1047
1096
  type: Component,
@@ -1067,10 +1116,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
1067
1116
  }], statusBarTemplateDir: [{
1068
1117
  type: ContentChild,
1069
1118
  args: [PolyGridStatusBarTemplateDirective]
1119
+ }], toolBarTemplateDir: [{
1120
+ type: ContentChild,
1121
+ args: [PolyGridToolBarTemplateDirective]
1070
1122
  }], projectedColumns: [{
1071
1123
  type: ContentChildren,
1072
1124
  args: [PolyGridColumnComponent]
1073
- }], 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 }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], resizeMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizeMode", required: false }] }], enableAnimations: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableAnimations", required: false }] }], animationOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationOptions", required: false }] }], filterable: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterable", required: false }] }], sortSettings: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortSettings", required: false }] }], showFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFooter", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], groupable: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupable", required: false }] }], pageable: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageable", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], showStatusBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStatusBar", required: false }] }], columnMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnMenu", required: false }] }], allowColumnReorder: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowColumnReorder", required: false }] }] } });
1125
+ }], 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 }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], resizeMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizeMode", required: false }] }], enableAnimations: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableAnimations", required: false }] }], animationOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationOptions", required: false }] }], filterable: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterable", required: false }] }], sortSettings: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortSettings", required: false }] }], showFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFooter", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], groupable: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupable", required: false }] }], pageable: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageable", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], showStatusBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStatusBar", required: false }] }], columnMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnMenu", required: false }] }], allowColumnReorder: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowColumnReorder", required: false }] }], showToolBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "showToolBar", required: false }] }], toolBarRenderer: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolBarRenderer", required: false }] }] } });
1074
1126
 
1075
1127
  class POLY_GRID {
1076
1128
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1087,7 +1139,8 @@ class POLY_GRID {
1087
1139
  PolyGridGroupHeaderCellTemplateDirective,
1088
1140
  PolyGridGroupHeaderTemplateDirective,
1089
1141
  PolyGridGroupFooterCellTemplateDirective,
1090
- PolyGridStatusBarTemplateDirective], exports: [PolyGridComponent,
1142
+ PolyGridStatusBarTemplateDirective,
1143
+ PolyGridToolBarTemplateDirective], exports: [PolyGridComponent,
1091
1144
  PolyGridColumnComponent,
1092
1145
  PolyGridNoDataTemplateDirective,
1093
1146
  PolyGridLoadingTemplateDirective,
@@ -1100,7 +1153,8 @@ class POLY_GRID {
1100
1153
  PolyGridGroupHeaderCellTemplateDirective,
1101
1154
  PolyGridGroupHeaderTemplateDirective,
1102
1155
  PolyGridGroupFooterCellTemplateDirective,
1103
- PolyGridStatusBarTemplateDirective] });
1156
+ PolyGridStatusBarTemplateDirective,
1157
+ PolyGridToolBarTemplateDirective] });
1104
1158
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: POLY_GRID, imports: [PolyGridComponent,
1105
1159
  PolyGridColumnComponent] });
1106
1160
  }
@@ -1121,7 +1175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
1121
1175
  PolyGridGroupHeaderCellTemplateDirective,
1122
1176
  PolyGridGroupHeaderTemplateDirective,
1123
1177
  PolyGridGroupFooterCellTemplateDirective,
1124
- PolyGridStatusBarTemplateDirective
1178
+ PolyGridStatusBarTemplateDirective,
1179
+ PolyGridToolBarTemplateDirective,
1125
1180
  ],
1126
1181
  exports: [
1127
1182
  PolyGridComponent,
@@ -1137,7 +1192,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
1137
1192
  PolyGridGroupHeaderCellTemplateDirective,
1138
1193
  PolyGridGroupHeaderTemplateDirective,
1139
1194
  PolyGridGroupFooterCellTemplateDirective,
1140
- PolyGridStatusBarTemplateDirective
1195
+ PolyGridStatusBarTemplateDirective,
1196
+ PolyGridToolBarTemplateDirective,
1141
1197
  ],
1142
1198
  providers: [],
1143
1199
  }]
@@ -1147,5 +1203,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
1147
1203
  * Generated bundle index. Do not edit.
1148
1204
  */
1149
1205
 
1150
- export { POLY_GRID, PolyGridColumnCellTemplateDirective, PolyGridColumnComponent, PolyGridColumnFooterTemplateDirective, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridFilterCellTemplateDirective, PolyGridGroupColumnTemplateDirective, PolyGridGroupFooterCellTemplateDirective, PolyGridGroupHeaderCellTemplateDirective, PolyGridGroupHeaderTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective, PolyGridStatusBarTemplateDirective };
1206
+ export { POLY_GRID, PolyGridColumnCellTemplateDirective, PolyGridColumnComponent, PolyGridColumnFooterTemplateDirective, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridFilterCellTemplateDirective, PolyGridGroupColumnTemplateDirective, PolyGridGroupFooterCellTemplateDirective, PolyGridGroupHeaderCellTemplateDirective, PolyGridGroupHeaderTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective, PolyGridStatusBarTemplateDirective, PolyGridToolBarTemplateDirective };
1151
1207
  //# 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/effects/filterable.ts","../../src/lib/effects/sort-settings.ts","../../src/lib/effects/show-footer.ts","../../src/lib/effects/locale.ts","../../src/lib/effects/groupable.ts","../../src/lib/effects/animation-options.ts","../../src/lib/effects/pageable.ts","../../src/lib/effects/selectable.ts","../../src/lib/effects/show-statusbar.ts","../../src/lib/effects/column-menu.ts","../../src/lib/effects/allow-column-reorder.ts","../../src/lib/directives/no-data-template.ts","../../src/lib/directives/loading-template.ts","../../src/lib/directives/group-column-template.ts","../../src/lib/directives/group-header-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/column-cell.ts","../../src/lib/services/renderer-adapter/group-column.ts","../../src/lib/services/renderer-adapter/group-header-cell.ts","../../src/lib/services/renderer-adapter/group-header.ts","../../src/lib/services/renderer-adapter/group-footer-cell.ts","../../src/lib/services/renderer-adapter/statusbar.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/extract-group-column.ts","../../src/lib/services/template-collector/extract-group-header.ts","../../src/lib/services/template-collector/extract-statusbar.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/directives/column-cell-template.ts","../../src/lib/directives/filter-cell-template.ts","../../src/lib/directives/group-header-cell-template.ts","../../src/lib/directives/group-footer-cell-template.ts","../../src/lib/services/renderer-adapter/filter-editor-wrapper.ts","../../src/lib/services/renderer-adapter/filter-editor-factory.ts","../../src/lib/components/column/poly-grid-column.ts","../../src/lib/directives/statusbar-template.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 { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\nimport { PolyGridFilterType } from \"@polygrid/core/engine/services/filter/types/filter-type\";\r\n\r\nexport function filterableInputEffect(\r\n value: Signal<PolyGridFilterType>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const filterable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setFilterable(filterable);\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 { PolyGridSortSettings } from \"@polygrid/core/engine/services/sort/interfaces/grid-sorting-settings\";\r\n\r\nexport function sortSettingsInputEffect(\r\n value: Signal<PolyGridSortSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const sortSettings = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setSortSettings(sortSettings);\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 showFooterInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const showFooter = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setShowFooter(showFooter);\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 localeInputEffect(\r\n value: Signal<string>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const locale = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setLocale(locale);\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 { PolyGridGroupingSettings } from \"@polygrid/core/engine/services/grouping/interfaces/grouping-settings\";\r\n\r\nexport function groupableInputEffect(\r\n value: Signal<boolean | PolyGridGroupingSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const groupable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setGroupable(groupable);\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 { PolyGridAnimationOptions } from \"@polygrid/core/engine/services/animation/interfaces/animation-options\";\r\n\r\nexport function animationOptionsInputEffect(\r\n value: Signal<PolyGridAnimationOptions>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const animOptions = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setAnimationOptions(animOptions);\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 pageableInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const pageable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setPageable(pageable);\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 { PolyGridSelectionSettings } from \"@polygrid/core/engine/services/selection/interfaces/selection-settings\";\r\n\r\nexport function selectableInputEffect(\r\n value: Signal<boolean | PolyGridSelectionSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const selectable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setSelectable(selectable);\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 showStatusBarInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const showStatusBar = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setShowStatusBar(showStatusBar);\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 { PolyGridColumnMenuSettings } from \"@polygrid/core/engine/services/column/interfaces/column-menu-settings\";\r\n\r\nexport function columnMenuInputEffect(\r\n value: Signal<boolean | PolyGridColumnMenuSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const columnMenu = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setColumnMenu(columnMenu);\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 { PolyGridColumnReorderSettings } from \"@polygrid/core/engine/services/column/interfaces/column-reorder-settings\";\r\n\r\nexport function allowColumnReorderInputEffect(\r\n value: Signal<boolean | PolyGridColumnReorderSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const allowColumnReorder = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setAllowColumnReorder(allowColumnReorder);\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 { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridGroupColumnTemplate]\",\r\n})\r\nexport class PolyGridGroupColumnTemplateDirective {\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: \"[polyGridGroupHeaderTemplate]\",\r\n})\r\nexport class PolyGridGroupHeaderTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { ApplicationRef, Injectable, TemplateRef } from \"@angular/core\";\r\nimport { AngularRendererHandle } from \"./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 ): AngularRendererHandle<T> {\r\n const viewRef = template.createEmbeddedView(context);\r\n this.appRef.attachView(viewRef);\r\n viewRef.detectChanges();\r\n\r\n const frag = document.createDocumentFragment();\r\n for (const node of viewRef.rootNodes) frag.appendChild(node);\r\n container.appendChild(frag);\r\n\r\n return {\r\n update: (partial: Partial<T>) => {\r\n Object.assign(viewRef.context as any, partial);\r\n viewRef.detectChanges();\r\n },\r\n destroy: () => {\r\n this.appRef.detachView(viewRef);\r\n viewRef.destroy();\r\n },\r\n viewRef,\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 { 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 { ColumnCellMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/column-cell-mount\";\r\n\r\nexport function renderColumnCellTemplate(\r\n req: ColumnCellMount,\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 row: req.context.row,\r\n value: req.context.value,\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 rowIndex: req.context.rowIndex,\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 { GroupColumnMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-column-mount\";\r\n\r\nexport function renderGroupColumnTemplate(\r\n req: GroupColumnMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { GroupColumnMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-column-mount\";\r\n\r\nexport function renderGroupHeaderCellTemplate(\r\n req: GroupColumnMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { GroupHeaderMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-header-mount\";\r\n\r\nexport function renderGroupHeaderTemplate(\r\n req: GroupHeaderMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { GroupFooterCellMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-footer-cell-mount\";\r\n\r\nexport function renderGroupFooterCellTemplate(\r\n req: GroupFooterCellMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { StatusBarMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/statusbar-mount\";\r\n\r\nexport function renderStatusBarTemplate(\r\n req: StatusBarMount,\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 statusBar: req.context,\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\nimport { renderColumnCellTemplate } from \"./column-cell\";\r\nimport { renderGroupColumnTemplate } from \"./group-column\";\r\nimport { renderGroupHeaderCellTemplate } from \"./group-header-cell\";\r\nimport { renderGroupHeaderTemplate } from \"./group-header\";\r\nimport { renderGroupFooterCellTemplate } from \"./group-footer-cell\";\r\nimport { renderStatusBarTemplate } from \"./statusbar\";\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 const cellTemplates = new Map<string, TemplateRef<any>>();\r\n const groupHeaderCellTemplates = new Map<string, TemplateRef<any>>();\r\n const groupFooterCellTemplates = 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 renderGroupColumnTemplate: (req) =>\r\n renderGroupColumnTemplate(\r\n req,\r\n templates.groupColumn,\r\n this.templateMountService,\r\n ),\r\n renderGroupHeaderTemplate: (req) =>\r\n renderGroupHeaderTemplate(\r\n req,\r\n templates.groupHeader,\r\n this.templateMountService,\r\n ),\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 renderColumnCellTemplate: (req) => {\r\n const tpl = cellTemplates.get(req.context.columnKey);\r\n return renderColumnCellTemplate(req, tpl, this.templateMountService);\r\n },\r\n registerColumnCellTemplate: (key, tpl) => {\r\n cellTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n renderGroupHeaderCellTemplate: (req) => {\r\n const tpl = groupHeaderCellTemplates.get(req.context.columnKey);\r\n return renderGroupHeaderCellTemplate(\r\n req,\r\n tpl,\r\n this.templateMountService,\r\n );\r\n },\r\n registerGroupHeaderCellTemplate: (key, tpl) => {\r\n groupHeaderCellTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n renderGroupFooterCellTemplate: (req) => {\r\n const tpl = groupFooterCellTemplates.get(req.context.columnKey);\r\n return renderGroupFooterCellTemplate(\r\n req,\r\n tpl,\r\n this.templateMountService,\r\n );\r\n },\r\n registerGroupFooterCellTemplate: (key, tpl) => {\r\n groupFooterCellTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n renderStatusBarTemplate: (req) =>\r\n renderStatusBarTemplate(\r\n req,\r\n templates.statusBar,\r\n this.templateMountService,\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 { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridGroupColumnTemplateDirective } from \"../../directives/group-column-template\";\r\n\r\nexport function extractGroupColumnTemplate(\r\n dir?: PolyGridGroupColumnTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridGroupHeaderTemplateDirective } from \"../../directives/group-header-template\";\r\n\r\nexport function extractGroupHeaderTemplate(\r\n dir?: PolyGridGroupHeaderTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridStatusBarTemplateDirective } from \"../../directives/statusbar-template\";\r\n\r\nexport function extractStatusBarTemplate(\r\n dir?: PolyGridStatusBarTemplateDirective,\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 { extractGroupColumnTemplate } from \"./extract-group-column\";\r\nimport { extractGroupHeaderTemplate } from \"./extract-group-header\";\r\nimport { extractStatusBarTemplate } from \"./extract-statusbar\"\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\nimport { PolyGridGroupColumnTemplateDirective } from \"../../directives/group-column-template\";\r\nimport { PolyGridGroupHeaderTemplateDirective } from \"../../directives/group-header-template\";\r\nimport { PolyGridStatusBarTemplateDirective } from \"../../directives/statusbar-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 groupColumnTplDir?: PolyGridGroupColumnTemplateDirective,\r\n groupHeaderTplDir?: PolyGridGroupHeaderTemplateDirective,\r\n statusBarTplDir?: PolyGridStatusBarTemplateDirective\r\n ): TemplateRegistry {\r\n return {\r\n noData: extractNoDataTemplate(noDataTplDir),\r\n loading: extractLoadingTemplate(loadingTplDir),\r\n error: extractErrorTemplate(errorTplDir),\r\n groupColumn: extractGroupColumnTemplate(groupColumnTplDir),\r\n groupHeader: extractGroupHeaderTemplate(groupHeaderTplDir),\r\n statusBar: extractStatusBarTemplate(statusBarTplDir)\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 sortable: projCol.sortable(),\r\n filterEditor: projCol.filterEditor() ?? projCol.filterEditorFromTemplate,\r\n pinned: projCol.pinned(),\r\n columnMenu: projCol.columnMenu(),\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 private pendingCellTemplates = new Map<string, TemplateRef<any>>();\r\n private pendingGroupHeaderCellTemplates = new Map<string, TemplateRef<any>>();\r\n private pendingGroupFooterCellTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n setGrid(grid: PolyGrid) {\r\n this._grid.set(grid);\r\n }\r\n\r\n setAdapter(adapter: RendererAdapter) {\r\n this.adapter = adapter;\r\n // flush pending templates into the adapter\r\n this.pendingHeaderTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnHeaderTemplate?.(key, tpl);\r\n });\r\n this.pendingHeaderTemplates.clear();\r\n\r\n this.pendingFooterTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnFooterTemplate?.(key, tpl);\r\n });\r\n this.pendingFooterTemplates.clear();\r\n\r\n this.pendingCellTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnCellTemplate?.(key, tpl);\r\n });\r\n this.pendingCellTemplates.clear();\r\n\r\n this.pendingGroupHeaderCellTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerGroupHeaderCellTemplate?.(key, tpl);\r\n });\r\n this.pendingGroupHeaderCellTemplates.clear();\r\n\r\n this.pendingGroupFooterCellTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerGroupFooterCellTemplate?.(key, tpl);\r\n });\r\n this.pendingGroupFooterCellTemplates.clear();\r\n }\r\n\r\n registerHeaderTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerColumnHeaderTemplate?.(key, tpl);\r\n } else {\r\n this.pendingHeaderTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n 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 registerCellTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerColumnCellTemplate?.(key, tpl);\r\n } else {\r\n this.pendingCellTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n registerGroupHeaderCellTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerGroupHeaderCellTemplate?.(key, tpl);\r\n } else {\r\n this.pendingGroupHeaderCellTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n registerGroupFooterCellTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerGroupFooterCellTemplate?.(key, tpl);\r\n } else {\r\n this.pendingGroupFooterCellTemplates.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 { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridColumnCellTemplate]\",\r\n})\r\nexport class PolyGridColumnCellTemplateDirective {\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: \"[polyGridFilterCellTemplate]\",\r\n})\r\nexport class PolyGridFilterCellTemplateDirective {\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: \"[polyGridGroupHeaderCellTemplate]\",\r\n})\r\nexport class PolyGridGroupHeaderCellTemplateDirective {\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: \"[polyGridGroupFooterCellTemplate]\",\r\n})\r\nexport class PolyGridGroupFooterCellTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import {\r\n EmbeddedViewRef,\r\n signal,\r\n TemplateRef,\r\n WritableSignal,\r\n} from \"@angular/core\";\r\nimport { PolyGridFilterEditor } from \"@polygrid/core\";\r\nimport { FilterCellMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/filter-cell-mount\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { FilterOperator } from \"@polygrid/core/engine/services/filter/interfaces/filter-operator\";\r\n\r\nexport class TemplateFilterEditorWrapper implements PolyGridFilterEditor {\r\n element!: HTMLElement;\r\n controlElement!: HTMLElement;\r\n\r\n private onChangeCb: ((value: any) => void) | null = null;\r\n private onClearCb: (() => void) | null = null;\r\n private viewRef?: EmbeddedViewRef<TemplateFilterContext>;\r\n\r\n constructor(\r\n private template: TemplateRef<any>,\r\n private mountService: TemplateMountService,\r\n ) {}\r\n\r\n mount(mount: FilterCellMount): void {\r\n const ctx: TemplateFilterContext = {\r\n // static\r\n field: mount.context.field,\r\n header: mount.context.header,\r\n columnKey: mount.context.columnKey,\r\n columnId: mount.context.columnId,\r\n // dynamic\r\n value: signal(mount.context.value),\r\n disabled: signal(mount.context.disabled),\r\n operator: signal(mount.context.operator),\r\n // callbacks\r\n update: (v) => this.onChangeCb?.(v),\r\n clear: () => this.onClearCb?.(),\r\n };\r\n\r\n const handle = this.mountService.mount(this.template, mount.container, ctx);\r\n this.viewRef = handle.viewRef;\r\n\r\n const host = this.viewRef.rootNodes.find(\r\n (n) => n instanceof HTMLElement,\r\n ) as HTMLElement;\r\n\r\n // The container is the root element\r\n this.element = host;\r\n\r\n // Find the actual editor element inside the template\r\n this.controlElement = host.querySelector(\"[data-editor]\") as HTMLElement;\r\n\r\n if (!this.controlElement) {\r\n // fallback: assume the container itself is the control\r\n this.controlElement = this.element;\r\n }\r\n }\r\n\r\n // Grid → template\r\n setValue(value: any): void {\r\n if (!this.viewRef) return;\r\n this.viewRef.context.value.set(value);\r\n this.viewRef.detectChanges();\r\n }\r\n\r\n setDisabled(disabled: boolean): void {\r\n if (!this.viewRef) return;\r\n this.viewRef.context.disabled.set(disabled);\r\n this.viewRef.detectChanges();\r\n }\r\n\r\n onValueChange(cb: (value: any) => void): void {\r\n this.onChangeCb = cb;\r\n }\r\n\r\n onClear(cb: () => void): void {\r\n this.onClearCb = cb;\r\n }\r\n\r\n destroy(): void {\r\n this.viewRef?.destroy();\r\n }\r\n}\r\n\r\ninterface TemplateFilterContext {\r\n // static metadata\r\n field: string;\r\n header: string;\r\n columnKey: string;\r\n columnId: string;\r\n\r\n // dynamic values (signals)\r\n value: WritableSignal<any>;\r\n disabled: WritableSignal<boolean>;\r\n operator: WritableSignal<FilterOperator>;\r\n\r\n // callbacks\r\n update: (v: any) => void;\r\n clear: () => void;\r\n}\r\n","// template-filter-editor.factory.ts\r\nimport { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { TemplateFilterEditorWrapper } from \"./filter-editor-wrapper\";\r\nimport { PolyGridFilterEditorFactoryFn } from \"@polygrid/core/engine/services/filter/types/filter-editor-factory-fn\";\r\nimport { InternalColumn } from \"@polygrid/core/engine/services/column/interfaces/internal-column\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function templateFilterEditorFactory(\r\n template: TemplateRef<any>,\r\n mountService: TemplateMountService,\r\n): PolyGridFilterEditorFactoryFn {\r\n return (column: InternalColumn, grid: PolyGrid) => {\r\n // we don’t have FilterCellMount here yet\r\n // we just create an editor that knows how to mount itself later\r\n return new TemplateFilterEditorWrapper(template, mountService);\r\n };\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\nimport { PolyGridColumnCellTemplateDirective } from \"../../directives/column-cell-template\";\r\nimport { PolyGridFilterCellTemplateDirective } from \"../../directives/filter-cell-template\";\r\nimport { PolyGridGroupHeaderCellTemplateDirective } from \"../../directives/group-header-cell-template\";\r\nimport { PolyGridGroupFooterCellTemplateDirective } from \"../../directives/group-footer-cell-template\";\r\nimport { PolyGridColumnSortSettings } from \"@polygrid/core/engine/services/sort/interfaces/column-sorting-settings\";\r\nimport { PolyGridFilterEditorFactoryFn } from \"@polygrid/core/engine/services/filter/types/filter-editor-factory-fn\";\r\nimport { templateFilterEditorFactory } from \"../../services/renderer-adapter/filter-editor-factory\";\r\nimport { TemplateMountService } from \"../../services/templates/template-mount\";\r\nimport { PolyGridPinnedColumn } from \"@polygrid/core/engine/services/column/types/pinned\";\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 private templateMountService = inject(TemplateMountService);\r\n filterEditorFromTemplate?: PolyGridFilterEditorFactoryFn;\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 sortable = input<boolean | PolyGridColumnSortSettings>(false);\r\n filterEditor = input<PolyGridFilterEditorFactoryFn>();\r\n pinned = input<PolyGridPinnedColumn>();\r\n columnMenu = input<boolean>(true);\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 @ContentChild(PolyGridColumnCellTemplateDirective)\r\n cellTemplateDir?: PolyGridColumnCellTemplateDirective;\r\n @ContentChild(PolyGridFilterCellTemplateDirective)\r\n filterCellTemplateDir?: PolyGridFilterCellTemplateDirective;\r\n @ContentChild(PolyGridGroupHeaderCellTemplateDirective)\r\n groupHeaderCellTemplateDir?: PolyGridGroupHeaderCellTemplateDirective;\r\n @ContentChild(PolyGridGroupFooterCellTemplateDirective)\r\n groupFooterCellTemplateDir?: PolyGridGroupFooterCellTemplateDirective;\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 if (this.cellTemplateDir) {\r\n this.columnService.registerCellTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.cellTemplateDir.template,\r\n );\r\n }\r\n if (this.filterCellTemplateDir) {\r\n this.filterEditorFromTemplate = templateFilterEditorFactory(\r\n this.filterCellTemplateDir.template,\r\n this.templateMountService,\r\n );\r\n }\r\n if (this.groupHeaderCellTemplateDir) {\r\n this.columnService.registerGroupHeaderCellTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.groupHeaderCellTemplateDir.template,\r\n );\r\n }\r\n if (this.groupFooterCellTemplateDir) {\r\n this.columnService.registerGroupFooterCellTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.groupFooterCellTemplateDir.template,\r\n );\r\n }\r\n }\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridStatusBarTemplate]\",\r\n})\r\nexport class PolyGridStatusBarTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\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 { PolyGridGroupColumnTemplateDirective } from \"../../directives/group-column-template\";\r\nimport { PolyGridGroupHeaderTemplateDirective } from \"../../directives/group-header-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\nimport { PolyGridFilterType } from \"@polygrid/core/engine/services/filter/types/filter-type\";\r\nimport { PolyGridSortSettings } from \"@polygrid/core/engine/services/sort/interfaces/grid-sorting-settings\";\r\nimport { PolyGridGroupingSettings } from \"@polygrid/core/engine/services/grouping/interfaces/grouping-settings\";\r\nimport { PolyGridAnimationOptions } from \"@polygrid/core/engine/services/animation/interfaces/animation-options\";\r\nimport { PolyGridSelectionSettings } from \"@polygrid/core/engine/services/selection/interfaces/selection-settings\";\r\nimport { PolyGridStatusBarTemplateDirective } from \"../../directives/statusbar-template\";\r\nimport { PolyGridColumnMenuSettings } from \"@polygrid/core/engine/services/column/interfaces/column-menu-settings\";\r\nimport { PolyGridColumnReorderSettings } from \"@polygrid/core/engine/services/column/interfaces/column-reorder-settings\";\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 @ContentChild(PolyGridGroupColumnTemplateDirective)\r\n groupColumnTemplateDir?: PolyGridGroupColumnTemplateDirective;\r\n @ContentChild(PolyGridGroupHeaderTemplateDirective)\r\n groupHeaderTemplateDir?: PolyGridGroupHeaderTemplateDirective;\r\n @ContentChild(PolyGridStatusBarTemplateDirective)\r\n statusBarTemplateDir?: PolyGridStatusBarTemplateDirective;\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 animationOptions = input<PolyGridAnimationOptions>({\r\n sort: false,\r\n filter: false,\r\n group: true,\r\n paging: false,\r\n });\r\n filterable = input<PolyGridFilterType>(false);\r\n sortSettings = input<PolyGridSortSettings>({});\r\n showFooter = input<boolean>(true);\r\n locale = input<string>(navigator.language);\r\n groupable = input<boolean | PolyGridGroupingSettings>(false);\r\n pageable = input<boolean>(false);\r\n selectable = input<boolean | PolyGridSelectionSettings>(false);\r\n showStatusBar = input<boolean>(false);\r\n columnMenu = input<boolean | PolyGridColumnMenuSettings>(false);\r\n allowColumnReorder = input<boolean | PolyGridColumnReorderSettings>(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 animationOptionsEffect!: EffectRef;\r\n filterableEffect!: EffectRef;\r\n sortSettingsEffect!: EffectRef;\r\n showFooterEffect!: EffectRef;\r\n localeEffect!: EffectRef;\r\n groupableEffect!: EffectRef;\r\n pageableEffect!: EffectRef;\r\n selectableEffect!: EffectRef;\r\n showStatusBarEffect!: EffectRef;\r\n columnMenuEffect!: EffectRef;\r\n allowColumnReorderEffect!: 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 this.groupColumnTemplateDir,\r\n this.groupHeaderTemplateDir,\r\n this.statusBarTemplateDir,\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 if (finalColumns.length === 0) this.errorType = \"no-columns\";\r\n\r\n const options: PolyGridOptions = {\r\n id: this.id(),\r\n columns: finalColumns,\r\n data: this.data(),\r\n resizable: this.resizable(),\r\n resizeMode: this.resizeMode(),\r\n enableAnimations: this.enableAnimations(),\r\n animationOptions: this.animationOptions(),\r\n filterable: this.filterable(),\r\n sortSettings: this.sortSettings(),\r\n rendererAdapter: adapter,\r\n showFooter: this.showFooter(),\r\n locale: this.locale(),\r\n groupable: this.groupable(),\r\n pageable: this.pageable(),\r\n selectable: this.selectable(),\r\n showStatusBar: this.showStatusBar(),\r\n columnMenu: this.columnMenu(),\r\n allowColumnReorder: this.allowColumnReorder(),\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 this.animationOptionsEffect = effects.animationOptionsInputEffect(\r\n this.animationOptions,\r\n this.grid!,\r\n );\r\n this.filterableEffect = effects.filterableInputEffect(\r\n this.filterable,\r\n this.grid!,\r\n );\r\n this.sortSettingsEffect = effects.sortSettingsInputEffect(\r\n this.sortSettings,\r\n this.grid!,\r\n );\r\n this.showFooterEffect = effects.showFooterInputEffect(\r\n this.showFooter,\r\n this.grid!,\r\n );\r\n this.localeEffect = effects.localeInputEffect(this.locale, this.grid!);\r\n this.groupableEffect = effects.groupableInputEffect(\r\n this.groupable,\r\n this.grid!,\r\n );\r\n this.pageableEffect = effects.pageableInputEffect(\r\n this.pageable,\r\n this.grid!,\r\n );\r\n this.selectableEffect = effects.selectableInputEffect(\r\n this.selectable,\r\n this.grid!,\r\n );\r\n this.showStatusBarEffect = effects.showStatusBarInputEffect(\r\n this.showStatusBar,\r\n this.grid!,\r\n );\r\n this.columnMenuEffect = effects.columnMenuInputEffect(\r\n this.columnMenu,\r\n this.grid!,\r\n );\r\n this.allowColumnReorderEffect = effects.allowColumnReorderInputEffect(\r\n this.allowColumnReorder,\r\n this.grid!,\r\n );\r\n });\r\n\r\n if (this.errorType) this.grid.api.setError(true, this.errorType);\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 collapseAllGroups() {\r\n this.grid!.api.collapseAllGroups();\r\n }\r\n\r\n expandAllGroups() {\r\n this.grid!.api.expandAllGroups();\r\n }\r\n}\r\n","<div #host class=\"pg-host\"></div>\r\n","import { NgModule } from \"@angular/core\";\r\nimport {\r\n PolyGridColumnCellTemplateDirective,\r\n PolyGridColumnComponent,\r\n PolyGridColumnFooterTemplateDirective,\r\n PolyGridColumnHeaderTemplateDirective,\r\n PolyGridComponent,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridFilterCellTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridNoDataTemplateDirective,\r\n PolyGridGroupColumnTemplateDirective,\r\n PolyGridGroupHeaderCellTemplateDirective,\r\n PolyGridGroupHeaderTemplateDirective,\r\n PolyGridGroupFooterCellTemplateDirective,\r\n PolyGridStatusBarTemplateDirective\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 PolyGridColumnCellTemplateDirective,\r\n PolyGridFilterCellTemplateDirective,\r\n PolyGridGroupColumnTemplateDirective,\r\n PolyGridGroupHeaderCellTemplateDirective,\r\n PolyGridGroupHeaderTemplateDirective,\r\n PolyGridGroupFooterCellTemplateDirective,\r\n PolyGridStatusBarTemplateDirective\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 PolyGridColumnCellTemplateDirective,\r\n PolyGridFilterCellTemplateDirective,\r\n PolyGridGroupColumnTemplateDirective,\r\n PolyGridGroupHeaderCellTemplateDirective,\r\n PolyGridGroupHeaderTemplateDirective,\r\n PolyGridGroupFooterCellTemplateDirective,\r\n PolyGridStatusBarTemplateDirective\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","effects.animationOptionsInputEffect","effects.filterableInputEffect","effects.sortSettingsInputEffect","effects.showFooterInputEffect","effects.localeInputEffect","effects.groupableInputEffect","effects.pageableInputEffect","effects.selectableInputEffect","effects.showStatusBarInputEffect","effects.columnMenuInputEffect","effects.allowColumnReorderInputEffect"],"mappings":"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"}
1
+ {"version":3,"file":"polygrid-angular.mjs","sources":["../../src/lib/effects/skip-first.ts","../../src/lib/effects/grid-id.ts","../../src/lib/effects/data.ts","../../src/lib/effects/column.ts","../../src/lib/effects/loading.ts","../../src/lib/effects/resizable.ts","../../src/lib/effects/resize-mode.ts","../../src/lib/effects/toggle-visibility.ts","../../src/lib/effects/enable-animations.ts","../../src/lib/effects/filterable.ts","../../src/lib/effects/sort-settings.ts","../../src/lib/effects/show-footer.ts","../../src/lib/effects/locale.ts","../../src/lib/effects/groupable.ts","../../src/lib/effects/animation-options.ts","../../src/lib/effects/pageable.ts","../../src/lib/effects/selectable.ts","../../src/lib/effects/show-statusbar.ts","../../src/lib/effects/column-menu.ts","../../src/lib/effects/allow-column-reorder.ts","../../src/lib/effects/show-toolbar.ts","../../src/lib/effects/toolbar-renderer.ts","../../src/lib/directives/no-data-template.ts","../../src/lib/directives/loading-template.ts","../../src/lib/directives/group-column-template.ts","../../src/lib/directives/group-header-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/column-cell.ts","../../src/lib/services/renderer-adapter/group-column.ts","../../src/lib/services/renderer-adapter/group-header-cell.ts","../../src/lib/services/renderer-adapter/group-header.ts","../../src/lib/services/renderer-adapter/group-footer-cell.ts","../../src/lib/services/renderer-adapter/statusbar.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/extract-group-column.ts","../../src/lib/services/template-collector/extract-group-header.ts","../../src/lib/services/template-collector/extract-statusbar.ts","../../src/lib/services/template-collector/extract-toolbar.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/directives/column-cell-template.ts","../../src/lib/directives/filter-cell-template.ts","../../src/lib/directives/group-header-cell-template.ts","../../src/lib/directives/group-footer-cell-template.ts","../../src/lib/services/renderer-adapter/filter-editor-wrapper.ts","../../src/lib/services/renderer-adapter/filter-editor-factory.ts","../../src/lib/components/column/poly-grid-column.ts","../../src/lib/directives/statusbar-template.ts","../../src/lib/directives/toolbar-template.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 { EffectRef, Signal } from \"@angular/core\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\nimport { effectSkipFirst } from \"./skip-first\";\r\nimport { PolyGridFilterType } from \"@polygrid/core/engine/services/filter/types/filter-type\";\r\n\r\nexport function filterableInputEffect(\r\n value: Signal<PolyGridFilterType>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const filterable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setFilterable(filterable);\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 { PolyGridSortSettings } from \"@polygrid/core/engine/services/sort/interfaces/grid-sorting-settings\";\r\n\r\nexport function sortSettingsInputEffect(\r\n value: Signal<PolyGridSortSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const sortSettings = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setSortSettings(sortSettings);\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 showFooterInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const showFooter = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setShowFooter(showFooter);\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 localeInputEffect(\r\n value: Signal<string>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const locale = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setLocale(locale);\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 { PolyGridGroupingSettings } from \"@polygrid/core/engine/services/grouping/interfaces/grouping-settings\";\r\n\r\nexport function groupableInputEffect(\r\n value: Signal<boolean | PolyGridGroupingSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const groupable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setGroupable(groupable);\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 { PolyGridAnimationOptions } from \"@polygrid/core/engine/services/animation/interfaces/animation-options\";\r\n\r\nexport function animationOptionsInputEffect(\r\n value: Signal<PolyGridAnimationOptions>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const animOptions = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setAnimationOptions(animOptions);\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 pageableInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const pageable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setPageable(pageable);\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 { PolyGridSelectionSettings } from \"@polygrid/core/engine/services/selection/interfaces/selection-settings\";\r\n\r\nexport function selectableInputEffect(\r\n value: Signal<boolean | PolyGridSelectionSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const selectable = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setSelectable(selectable);\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 showStatusBarInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const showStatusBar = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setShowStatusBar(showStatusBar);\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 { PolyGridColumnMenuSettings } from \"@polygrid/core/engine/services/column/interfaces/column-menu-settings\";\r\n\r\nexport function columnMenuInputEffect(\r\n value: Signal<boolean | PolyGridColumnMenuSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const columnMenu = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setColumnMenu(columnMenu);\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 { PolyGridColumnReorderSettings } from \"@polygrid/core/engine/services/column/interfaces/column-reorder-settings\";\r\n\r\nexport function allowColumnReorderInputEffect(\r\n value: Signal<boolean | PolyGridColumnReorderSettings>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const allowColumnReorder = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setAllowColumnReorder(allowColumnReorder);\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 showToolBarInputEffect(\r\n value: Signal<boolean>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const showToolBar = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setShowToolBar(showToolBar);\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 toolBarRendererInputEffect(\r\n value: Signal<(() => HTMLElement | string) | null>,\r\n grid: PolyGrid,\r\n): EffectRef {\r\n return effectSkipFirst((isInitial) => {\r\n const toolBarRenderer = value();\r\n if (isInitial) return;\r\n if (grid) grid.api.setToolBarRenderer(toolBarRenderer);\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 { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridGroupColumnTemplate]\",\r\n})\r\nexport class PolyGridGroupColumnTemplateDirective {\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: \"[polyGridGroupHeaderTemplate]\",\r\n})\r\nexport class PolyGridGroupHeaderTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { ApplicationRef, Injectable, TemplateRef } from \"@angular/core\";\r\nimport { AngularRendererHandle } from \"./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 ): AngularRendererHandle<T> {\r\n const viewRef = template.createEmbeddedView(context);\r\n this.appRef.attachView(viewRef);\r\n viewRef.detectChanges();\r\n\r\n const frag = document.createDocumentFragment();\r\n for (const node of viewRef.rootNodes) frag.appendChild(node);\r\n container.appendChild(frag);\r\n\r\n return {\r\n update: (partial: Partial<T>) => {\r\n Object.assign(viewRef.context as any, partial);\r\n viewRef.detectChanges();\r\n },\r\n destroy: () => {\r\n this.appRef.detachView(viewRef);\r\n viewRef.destroy();\r\n },\r\n viewRef,\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 { 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 { ColumnCellMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/column-cell-mount\";\r\n\r\nexport function renderColumnCellTemplate(\r\n req: ColumnCellMount,\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 row: req.context.row,\r\n value: req.context.value,\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 rowIndex: req.context.rowIndex,\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 { GroupColumnMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-column-mount\";\r\n\r\nexport function renderGroupColumnTemplate(\r\n req: GroupColumnMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { GroupColumnMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-column-mount\";\r\n\r\nexport function renderGroupHeaderCellTemplate(\r\n req: GroupColumnMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { GroupHeaderMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-header-mount\";\r\n\r\nexport function renderGroupHeaderTemplate(\r\n req: GroupHeaderMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { GroupFooterCellMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/group-footer-cell-mount\";\r\n\r\nexport function renderGroupFooterCellTemplate(\r\n req: GroupFooterCellMount,\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 column: req.context.column,\r\n group: req.context.group,\r\n aggregate: req.context.aggregate,\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 { StatusBarMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/statusbar-mount\";\r\n\r\nexport function renderStatusBarTemplate(\r\n req: StatusBarMount,\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 statusBar: req.context,\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\nimport { renderColumnCellTemplate } from \"./column-cell\";\r\nimport { renderGroupColumnTemplate } from \"./group-column\";\r\nimport { renderGroupHeaderCellTemplate } from \"./group-header-cell\";\r\nimport { renderGroupHeaderTemplate } from \"./group-header\";\r\nimport { renderGroupFooterCellTemplate } from \"./group-footer-cell\";\r\nimport { renderStatusBarTemplate } from \"./statusbar\";\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 const cellTemplates = new Map<string, TemplateRef<any>>();\r\n const groupHeaderCellTemplates = new Map<string, TemplateRef<any>>();\r\n const groupFooterCellTemplates = 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 renderGroupColumnTemplate: (req) =>\r\n renderGroupColumnTemplate(\r\n req,\r\n templates.groupColumn,\r\n this.templateMountService,\r\n ),\r\n renderGroupHeaderTemplate: (req) =>\r\n renderGroupHeaderTemplate(\r\n req,\r\n templates.groupHeader,\r\n this.templateMountService,\r\n ),\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 renderColumnCellTemplate: (req) => {\r\n const tpl = cellTemplates.get(req.context.columnKey);\r\n return renderColumnCellTemplate(req, tpl, this.templateMountService);\r\n },\r\n registerColumnCellTemplate: (key, tpl) => {\r\n cellTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n renderGroupHeaderCellTemplate: (req) => {\r\n const tpl = groupHeaderCellTemplates.get(req.context.columnKey);\r\n return renderGroupHeaderCellTemplate(\r\n req,\r\n tpl,\r\n this.templateMountService,\r\n );\r\n },\r\n registerGroupHeaderCellTemplate: (key, tpl) => {\r\n groupHeaderCellTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n renderGroupFooterCellTemplate: (req) => {\r\n const tpl = groupFooterCellTemplates.get(req.context.columnKey);\r\n return renderGroupFooterCellTemplate(\r\n req,\r\n tpl,\r\n this.templateMountService,\r\n );\r\n },\r\n registerGroupFooterCellTemplate: (key, tpl) => {\r\n groupFooterCellTemplates.set(key, tpl as TemplateRef<any>);\r\n },\r\n renderStatusBarTemplate: (req) =>\r\n renderStatusBarTemplate(\r\n req,\r\n templates.statusBar,\r\n this.templateMountService,\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 { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridGroupColumnTemplateDirective } from \"../../directives/group-column-template\";\r\n\r\nexport function extractGroupColumnTemplate(\r\n dir?: PolyGridGroupColumnTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridGroupHeaderTemplateDirective } from \"../../directives/group-header-template\";\r\n\r\nexport function extractGroupHeaderTemplate(\r\n dir?: PolyGridGroupHeaderTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridStatusBarTemplateDirective } from \"../../directives/statusbar-template\";\r\n\r\nexport function extractStatusBarTemplate(\r\n dir?: PolyGridStatusBarTemplateDirective,\r\n): TemplateRef<any> | undefined {\r\n return dir?.template;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { PolyGridToolBarTemplateDirective } from \"../../directives/toolbar-template\";\r\n\r\nexport function extractToolBarTemplate(\r\n dir?: PolyGridToolBarTemplateDirective,\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 { extractGroupColumnTemplate } from \"./extract-group-column\";\r\nimport { extractGroupHeaderTemplate } from \"./extract-group-header\";\r\nimport { extractStatusBarTemplate } from \"./extract-statusbar\";\r\nimport { extractToolBarTemplate } from \"./extract-toolbar\";\r\nimport { PolyGridLoadingTemplateDirective } from \"../../directives/loading-template\";\r\nimport { PolyGridErrorTemplateDirective } from \"../../directives/error-template\";\r\nimport { PolyGridGroupColumnTemplateDirective } from \"../../directives/group-column-template\";\r\nimport { PolyGridGroupHeaderTemplateDirective } from \"../../directives/group-header-template\";\r\nimport { PolyGridStatusBarTemplateDirective } from \"../../directives/statusbar-template\";\r\nimport { PolyGridToolBarTemplateDirective } from \"../../directives/toolbar-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 groupColumnTplDir?: PolyGridGroupColumnTemplateDirective,\r\n groupHeaderTplDir?: PolyGridGroupHeaderTemplateDirective,\r\n statusBarTplDir?: PolyGridStatusBarTemplateDirective,\r\n toolBarTplDir?: PolyGridToolBarTemplateDirective,\r\n ): TemplateRegistry {\r\n return {\r\n noData: extractNoDataTemplate(noDataTplDir),\r\n loading: extractLoadingTemplate(loadingTplDir),\r\n error: extractErrorTemplate(errorTplDir),\r\n groupColumn: extractGroupColumnTemplate(groupColumnTplDir),\r\n groupHeader: extractGroupHeaderTemplate(groupHeaderTplDir),\r\n statusBar: extractStatusBarTemplate(statusBarTplDir),\r\n toolBar: extractToolBarTemplate(toolBarTplDir),\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 sortable: projCol.sortable(),\r\n filterEditor: projCol.filterEditor() ?? projCol.filterEditorFromTemplate,\r\n pinned: projCol.pinned(),\r\n columnMenu: projCol.columnMenu(),\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 private pendingCellTemplates = new Map<string, TemplateRef<any>>();\r\n private pendingGroupHeaderCellTemplates = new Map<string, TemplateRef<any>>();\r\n private pendingGroupFooterCellTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n setGrid(grid: PolyGrid) {\r\n this._grid.set(grid);\r\n }\r\n\r\n setAdapter(adapter: RendererAdapter) {\r\n this.adapter = adapter;\r\n // flush pending templates into the adapter\r\n this.pendingHeaderTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnHeaderTemplate?.(key, tpl);\r\n });\r\n this.pendingHeaderTemplates.clear();\r\n\r\n this.pendingFooterTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnFooterTemplate?.(key, tpl);\r\n });\r\n this.pendingFooterTemplates.clear();\r\n\r\n this.pendingCellTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerColumnCellTemplate?.(key, tpl);\r\n });\r\n this.pendingCellTemplates.clear();\r\n\r\n this.pendingGroupHeaderCellTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerGroupHeaderCellTemplate?.(key, tpl);\r\n });\r\n this.pendingGroupHeaderCellTemplates.clear();\r\n\r\n this.pendingGroupFooterCellTemplates.forEach((tpl, key) => {\r\n this.adapter!.registerGroupFooterCellTemplate?.(key, tpl);\r\n });\r\n this.pendingGroupFooterCellTemplates.clear();\r\n }\r\n\r\n registerHeaderTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerColumnHeaderTemplate?.(key, tpl);\r\n } else {\r\n this.pendingHeaderTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n 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 registerCellTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerColumnCellTemplate?.(key, tpl);\r\n } else {\r\n this.pendingCellTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n registerGroupHeaderCellTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerGroupHeaderCellTemplate?.(key, tpl);\r\n } else {\r\n this.pendingGroupHeaderCellTemplates.set(key, tpl);\r\n }\r\n }\r\n\r\n registerGroupFooterCellTemplate(key: string, tpl: TemplateRef<any>) {\r\n if (this.adapter) {\r\n this.adapter.registerGroupFooterCellTemplate?.(key, tpl);\r\n } else {\r\n this.pendingGroupFooterCellTemplates.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 { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridColumnCellTemplate]\",\r\n})\r\nexport class PolyGridColumnCellTemplateDirective {\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: \"[polyGridFilterCellTemplate]\",\r\n})\r\nexport class PolyGridFilterCellTemplateDirective {\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: \"[polyGridGroupHeaderCellTemplate]\",\r\n})\r\nexport class PolyGridGroupHeaderCellTemplateDirective {\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: \"[polyGridGroupFooterCellTemplate]\",\r\n})\r\nexport class PolyGridGroupFooterCellTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import {\r\n EmbeddedViewRef,\r\n signal,\r\n TemplateRef,\r\n WritableSignal,\r\n} from \"@angular/core\";\r\nimport { PolyGridFilterEditor } from \"@polygrid/core\";\r\nimport { FilterCellMount } from \"@polygrid/core/engine/services/renderer/interfaces/template-mounts/filter-cell-mount\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { FilterOperator } from \"@polygrid/core/engine/services/filter/interfaces/filter-operator\";\r\n\r\nexport class TemplateFilterEditorWrapper implements PolyGridFilterEditor {\r\n element!: HTMLElement;\r\n controlElement!: HTMLElement;\r\n\r\n private onChangeCb: ((value: any) => void) | null = null;\r\n private onClearCb: (() => void) | null = null;\r\n private viewRef?: EmbeddedViewRef<TemplateFilterContext>;\r\n\r\n constructor(\r\n private template: TemplateRef<any>,\r\n private mountService: TemplateMountService,\r\n ) {}\r\n\r\n mount(mount: FilterCellMount): void {\r\n const ctx: TemplateFilterContext = {\r\n // static\r\n field: mount.context.field,\r\n header: mount.context.header,\r\n columnKey: mount.context.columnKey,\r\n columnId: mount.context.columnId,\r\n // dynamic\r\n value: signal(mount.context.value),\r\n disabled: signal(mount.context.disabled),\r\n operator: signal(mount.context.operator),\r\n // callbacks\r\n update: (v) => this.onChangeCb?.(v),\r\n clear: () => this.onClearCb?.(),\r\n };\r\n\r\n const handle = this.mountService.mount(this.template, mount.container, ctx);\r\n this.viewRef = handle.viewRef;\r\n\r\n const host = this.viewRef.rootNodes.find(\r\n (n) => n instanceof HTMLElement,\r\n ) as HTMLElement;\r\n\r\n // The container is the root element\r\n this.element = host;\r\n\r\n // Find the actual editor element inside the template\r\n this.controlElement = host.querySelector(\"[data-editor]\") as HTMLElement;\r\n\r\n if (!this.controlElement) {\r\n // fallback: assume the container itself is the control\r\n this.controlElement = this.element;\r\n }\r\n }\r\n\r\n // Grid → template\r\n setValue(value: any): void {\r\n if (!this.viewRef) return;\r\n this.viewRef.context.value.set(value);\r\n this.viewRef.detectChanges();\r\n }\r\n\r\n setDisabled(disabled: boolean): void {\r\n if (!this.viewRef) return;\r\n this.viewRef.context.disabled.set(disabled);\r\n this.viewRef.detectChanges();\r\n }\r\n\r\n onValueChange(cb: (value: any) => void): void {\r\n this.onChangeCb = cb;\r\n }\r\n\r\n onClear(cb: () => void): void {\r\n this.onClearCb = cb;\r\n }\r\n\r\n destroy(): void {\r\n this.viewRef?.destroy();\r\n }\r\n}\r\n\r\ninterface TemplateFilterContext {\r\n // static metadata\r\n field: string;\r\n header: string;\r\n columnKey: string;\r\n columnId: string;\r\n\r\n // dynamic values (signals)\r\n value: WritableSignal<any>;\r\n disabled: WritableSignal<boolean>;\r\n operator: WritableSignal<FilterOperator>;\r\n\r\n // callbacks\r\n update: (v: any) => void;\r\n clear: () => void;\r\n}\r\n","// template-filter-editor.factory.ts\r\nimport { TemplateRef } from \"@angular/core\";\r\nimport { TemplateMountService } from \"../templates/template-mount\";\r\nimport { TemplateFilterEditorWrapper } from \"./filter-editor-wrapper\";\r\nimport { PolyGridFilterEditorFactoryFn } from \"@polygrid/core/engine/services/filter/types/filter-editor-factory-fn\";\r\nimport { InternalColumn } from \"@polygrid/core/engine/services/column/interfaces/internal-column\";\r\nimport { PolyGrid } from \"@polygrid/core/engine/core/grid\";\r\n\r\nexport function templateFilterEditorFactory(\r\n template: TemplateRef<any>,\r\n mountService: TemplateMountService,\r\n): PolyGridFilterEditorFactoryFn {\r\n return (column: InternalColumn, grid: PolyGrid) => {\r\n // we don’t have FilterCellMount here yet\r\n // we just create an editor that knows how to mount itself later\r\n return new TemplateFilterEditorWrapper(template, mountService);\r\n };\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\nimport { PolyGridColumnCellTemplateDirective } from \"../../directives/column-cell-template\";\r\nimport { PolyGridFilterCellTemplateDirective } from \"../../directives/filter-cell-template\";\r\nimport { PolyGridGroupHeaderCellTemplateDirective } from \"../../directives/group-header-cell-template\";\r\nimport { PolyGridGroupFooterCellTemplateDirective } from \"../../directives/group-footer-cell-template\";\r\nimport { PolyGridColumnSortSettings } from \"@polygrid/core/engine/services/sort/interfaces/column-sorting-settings\";\r\nimport { PolyGridFilterEditorFactoryFn } from \"@polygrid/core/engine/services/filter/types/filter-editor-factory-fn\";\r\nimport { templateFilterEditorFactory } from \"../../services/renderer-adapter/filter-editor-factory\";\r\nimport { TemplateMountService } from \"../../services/templates/template-mount\";\r\nimport { PolyGridPinnedColumn } from \"@polygrid/core/engine/services/column/types/pinned\";\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 private templateMountService = inject(TemplateMountService);\r\n filterEditorFromTemplate?: PolyGridFilterEditorFactoryFn;\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 sortable = input<boolean | PolyGridColumnSortSettings>(false);\r\n filterEditor = input<PolyGridFilterEditorFactoryFn>();\r\n pinned = input<PolyGridPinnedColumn>();\r\n columnMenu = input<boolean>(true);\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 @ContentChild(PolyGridColumnCellTemplateDirective)\r\n cellTemplateDir?: PolyGridColumnCellTemplateDirective;\r\n @ContentChild(PolyGridFilterCellTemplateDirective)\r\n filterCellTemplateDir?: PolyGridFilterCellTemplateDirective;\r\n @ContentChild(PolyGridGroupHeaderCellTemplateDirective)\r\n groupHeaderCellTemplateDir?: PolyGridGroupHeaderCellTemplateDirective;\r\n @ContentChild(PolyGridGroupFooterCellTemplateDirective)\r\n groupFooterCellTemplateDir?: PolyGridGroupFooterCellTemplateDirective;\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 if (this.cellTemplateDir) {\r\n this.columnService.registerCellTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.cellTemplateDir.template,\r\n );\r\n }\r\n if (this.filterCellTemplateDir) {\r\n this.filterEditorFromTemplate = templateFilterEditorFactory(\r\n this.filterCellTemplateDir.template,\r\n this.templateMountService,\r\n );\r\n }\r\n if (this.groupHeaderCellTemplateDir) {\r\n this.columnService.registerGroupHeaderCellTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.groupHeaderCellTemplateDir.template,\r\n );\r\n }\r\n if (this.groupFooterCellTemplateDir) {\r\n this.columnService.registerGroupFooterCellTemplate(\r\n `${this.field()}::${this.header()}`,\r\n this.groupFooterCellTemplateDir.template,\r\n );\r\n }\r\n }\r\n}\r\n","import { Directive, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[polyGridStatusBarTemplate]\",\r\n})\r\nexport class PolyGridStatusBarTemplateDirective {\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: \"[polyGridToolBarTemplate]\",\r\n})\r\nexport class PolyGridToolBarTemplateDirective {\r\n constructor(public template: TemplateRef<any>) {}\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 { PolyGridGroupColumnTemplateDirective } from \"../../directives/group-column-template\";\r\nimport { PolyGridGroupHeaderTemplateDirective } from \"../../directives/group-header-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\nimport { PolyGridFilterType } from \"@polygrid/core/engine/services/filter/types/filter-type\";\r\nimport { PolyGridSortSettings } from \"@polygrid/core/engine/services/sort/interfaces/grid-sorting-settings\";\r\nimport { PolyGridGroupingSettings } from \"@polygrid/core/engine/services/grouping/interfaces/grouping-settings\";\r\nimport { PolyGridAnimationOptions } from \"@polygrid/core/engine/services/animation/interfaces/animation-options\";\r\nimport { PolyGridSelectionSettings } from \"@polygrid/core/engine/services/selection/interfaces/selection-settings\";\r\nimport { PolyGridStatusBarTemplateDirective } from \"../../directives/statusbar-template\";\r\nimport { PolyGridColumnMenuSettings } from \"@polygrid/core/engine/services/column/interfaces/column-menu-settings\";\r\nimport { PolyGridColumnReorderSettings } from \"@polygrid/core/engine/services/column/interfaces/column-reorder-settings\";\r\nimport { PolyGridToolBarTemplateDirective } from \"../../directives/toolbar-template\";\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 @ContentChild(PolyGridGroupColumnTemplateDirective)\r\n groupColumnTemplateDir?: PolyGridGroupColumnTemplateDirective;\r\n @ContentChild(PolyGridGroupHeaderTemplateDirective)\r\n groupHeaderTemplateDir?: PolyGridGroupHeaderTemplateDirective;\r\n @ContentChild(PolyGridStatusBarTemplateDirective)\r\n statusBarTemplateDir?: PolyGridStatusBarTemplateDirective;\r\n @ContentChild(PolyGridToolBarTemplateDirective)\r\n toolBarTemplateDir?: PolyGridToolBarTemplateDirective;\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 animationOptions = input<PolyGridAnimationOptions>({\r\n sort: false,\r\n filter: false,\r\n group: true,\r\n paging: false,\r\n });\r\n filterable = input<PolyGridFilterType>(false);\r\n sortSettings = input<PolyGridSortSettings>({});\r\n showFooter = input<boolean>(true);\r\n locale = input<string>(navigator.language);\r\n groupable = input<boolean | PolyGridGroupingSettings>(false);\r\n pageable = input<boolean>(false);\r\n selectable = input<boolean | PolyGridSelectionSettings>(false);\r\n showStatusBar = input<boolean>(false);\r\n columnMenu = input<boolean | PolyGridColumnMenuSettings>(false);\r\n allowColumnReorder = input<boolean | PolyGridColumnReorderSettings>(false);\r\n showToolBar = input<boolean>(false);\r\n toolBarRenderer = input<(() => HTMLElement | string) | null>(null);\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 animationOptionsEffect!: EffectRef;\r\n filterableEffect!: EffectRef;\r\n sortSettingsEffect!: EffectRef;\r\n showFooterEffect!: EffectRef;\r\n localeEffect!: EffectRef;\r\n groupableEffect!: EffectRef;\r\n pageableEffect!: EffectRef;\r\n selectableEffect!: EffectRef;\r\n showStatusBarEffect!: EffectRef;\r\n columnMenuEffect!: EffectRef;\r\n allowColumnReorderEffect!: EffectRef;\r\n showToolBarEffect!: EffectRef;\r\n toolBarRendererEffect!: 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 this.groupColumnTemplateDir,\r\n this.groupHeaderTemplateDir,\r\n this.statusBarTemplateDir,\r\n this.toolBarTemplateDir,\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 if (finalColumns.length === 0) this.errorType = \"no-columns\";\r\n\r\n const options: PolyGridOptions = {\r\n id: this.id(),\r\n columns: finalColumns,\r\n data: this.data(),\r\n resizable: this.resizable(),\r\n resizeMode: this.resizeMode(),\r\n enableAnimations: this.enableAnimations(),\r\n animationOptions: this.animationOptions(),\r\n filterable: this.filterable(),\r\n sortSettings: this.sortSettings(),\r\n rendererAdapter: adapter,\r\n showFooter: this.showFooter(),\r\n locale: this.locale(),\r\n groupable: this.groupable(),\r\n pageable: this.pageable(),\r\n selectable: this.selectable(),\r\n showStatusBar: this.showStatusBar(),\r\n columnMenu: this.columnMenu(),\r\n allowColumnReorder: this.allowColumnReorder(),\r\n showToolBar: this.showToolBar(),\r\n toolBarRenderer: this.toolBarRenderer(),\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 this.animationOptionsEffect = effects.animationOptionsInputEffect(\r\n this.animationOptions,\r\n this.grid!,\r\n );\r\n this.filterableEffect = effects.filterableInputEffect(\r\n this.filterable,\r\n this.grid!,\r\n );\r\n this.sortSettingsEffect = effects.sortSettingsInputEffect(\r\n this.sortSettings,\r\n this.grid!,\r\n );\r\n this.showFooterEffect = effects.showFooterInputEffect(\r\n this.showFooter,\r\n this.grid!,\r\n );\r\n this.localeEffect = effects.localeInputEffect(this.locale, this.grid!);\r\n this.groupableEffect = effects.groupableInputEffect(\r\n this.groupable,\r\n this.grid!,\r\n );\r\n this.pageableEffect = effects.pageableInputEffect(\r\n this.pageable,\r\n this.grid!,\r\n );\r\n this.selectableEffect = effects.selectableInputEffect(\r\n this.selectable,\r\n this.grid!,\r\n );\r\n this.showStatusBarEffect = effects.showStatusBarInputEffect(\r\n this.showStatusBar,\r\n this.grid!,\r\n );\r\n this.columnMenuEffect = effects.columnMenuInputEffect(\r\n this.columnMenu,\r\n this.grid!,\r\n );\r\n this.allowColumnReorderEffect = effects.allowColumnReorderInputEffect(\r\n this.allowColumnReorder,\r\n this.grid!,\r\n );\r\n this.showToolBarEffect = effects.showToolBarInputEffect(\r\n this.showToolBar,\r\n this.grid!,\r\n );\r\n this.toolBarRendererEffect = effects.toolBarRendererInputEffect(\r\n this.toolBarRenderer,\r\n this.grid!,\r\n );\r\n });\r\n\r\n if (this.errorType) this.grid.api.setError(true, this.errorType);\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 collapseAllGroups() {\r\n this.grid!.api.collapseAllGroups();\r\n }\r\n\r\n expandAllGroups() {\r\n this.grid!.api.expandAllGroups();\r\n }\r\n}\r\n","<div #host class=\"pg-host\"></div>\r\n","import { NgModule } from \"@angular/core\";\r\nimport {\r\n PolyGridColumnCellTemplateDirective,\r\n PolyGridColumnComponent,\r\n PolyGridColumnFooterTemplateDirective,\r\n PolyGridColumnHeaderTemplateDirective,\r\n PolyGridComponent,\r\n PolyGridErrorTemplateDirective,\r\n PolyGridFilterCellTemplateDirective,\r\n PolyGridLoadingTemplateDirective,\r\n PolyGridNoDataTemplateDirective,\r\n PolyGridGroupColumnTemplateDirective,\r\n PolyGridGroupHeaderCellTemplateDirective,\r\n PolyGridGroupHeaderTemplateDirective,\r\n PolyGridGroupFooterCellTemplateDirective,\r\n PolyGridStatusBarTemplateDirective,\r\n PolyGridToolBarTemplateDirective,\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 PolyGridColumnCellTemplateDirective,\r\n PolyGridFilterCellTemplateDirective,\r\n PolyGridGroupColumnTemplateDirective,\r\n PolyGridGroupHeaderCellTemplateDirective,\r\n PolyGridGroupHeaderTemplateDirective,\r\n PolyGridGroupFooterCellTemplateDirective,\r\n PolyGridStatusBarTemplateDirective,\r\n PolyGridToolBarTemplateDirective,\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 PolyGridColumnCellTemplateDirective,\r\n PolyGridFilterCellTemplateDirective,\r\n PolyGridGroupColumnTemplateDirective,\r\n PolyGridGroupHeaderCellTemplateDirective,\r\n PolyGridGroupHeaderTemplateDirective,\r\n PolyGridGroupFooterCellTemplateDirective,\r\n PolyGridStatusBarTemplateDirective,\r\n PolyGridToolBarTemplateDirective,\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","effects.animationOptionsInputEffect","effects.filterableInputEffect","effects.sortSettingsInputEffect","effects.showFooterInputEffect","effects.localeInputEffect","effects.groupableInputEffect","effects.pageableInputEffect","effects.selectableInputEffect","effects.showStatusBarInputEffect","effects.columnMenuInputEffect","effects.allowColumnReorderInputEffect","effects.showToolBarInputEffect","effects.toolBarRendererInputEffect"],"mappings":"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"}
@@ -125,6 +125,13 @@ declare class PolyGridStatusBarTemplateDirective {
125
125
  static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridStatusBarTemplateDirective, "[polyGridStatusBarTemplate]", never, {}, {}, never, never, true, never>;
126
126
  }
127
127
 
128
+ declare class PolyGridToolBarTemplateDirective {
129
+ template: TemplateRef<any>;
130
+ constructor(template: TemplateRef<any>);
131
+ static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridToolBarTemplateDirective, never>;
132
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PolyGridToolBarTemplateDirective, "[polyGridToolBarTemplate]", never, {}, {}, never, never, true, never>;
133
+ }
134
+
128
135
  declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterContentInit {
129
136
  private grid;
130
137
  private injector;
@@ -139,6 +146,7 @@ declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterConten
139
146
  groupColumnTemplateDir?: PolyGridGroupColumnTemplateDirective;
140
147
  groupHeaderTemplateDir?: PolyGridGroupHeaderTemplateDirective;
141
148
  statusBarTemplateDir?: PolyGridStatusBarTemplateDirective;
149
+ toolBarTemplateDir?: PolyGridToolBarTemplateDirective;
142
150
  projectedColumns: QueryList<PolyGridColumnComponent>;
143
151
  id: i0.InputSignal<string>;
144
152
  columns: i0.InputSignal<PolyGridColumn[]>;
@@ -158,6 +166,8 @@ declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterConten
158
166
  showStatusBar: i0.InputSignal<boolean>;
159
167
  columnMenu: i0.InputSignal<boolean | PolyGridColumnMenuSettings>;
160
168
  allowColumnReorder: i0.InputSignal<boolean | PolyGridColumnReorderSettings>;
169
+ showToolBar: i0.InputSignal<boolean>;
170
+ toolBarRenderer: i0.InputSignal<() => HTMLElement | string>;
161
171
  gridIdEffect: EffectRef;
162
172
  dataEffect: EffectRef;
163
173
  columnEffect: EffectRef;
@@ -176,19 +186,21 @@ declare class PolyGridComponent implements AfterViewInit, OnDestroy, AfterConten
176
186
  showStatusBarEffect: EffectRef;
177
187
  columnMenuEffect: EffectRef;
178
188
  allowColumnReorderEffect: EffectRef;
189
+ showToolBarEffect: EffectRef;
190
+ toolBarRendererEffect: EffectRef;
179
191
  ngAfterViewInit(): void;
180
192
  ngAfterContentInit(): void;
181
193
  ngOnDestroy(): void;
182
194
  collapseAllGroups(): void;
183
195
  expandAllGroups(): void;
184
196
  static ɵfac: i0.ɵɵFactoryDeclaration<PolyGridComponent, never>;
185
- 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; }; "animationOptions": { "alias": "animationOptions"; "required": false; "isSignal": true; }; "filterable": { "alias": "filterable"; "required": false; "isSignal": true; }; "sortSettings": { "alias": "sortSettings"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "groupable": { "alias": "groupable"; "required": false; "isSignal": true; }; "pageable": { "alias": "pageable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "showStatusBar": { "alias": "showStatusBar"; "required": false; "isSignal": true; }; "columnMenu": { "alias": "columnMenu"; "required": false; "isSignal": true; }; "allowColumnReorder": { "alias": "allowColumnReorder"; "required": false; "isSignal": true; }; }, {}, ["noDataTemplateDir", "loadingTemplateDir", "errorTemplateDir", "groupColumnTemplateDir", "groupHeaderTemplateDir", "statusBarTemplateDir", "projectedColumns"], never, true, never>;
197
+ 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; }; "animationOptions": { "alias": "animationOptions"; "required": false; "isSignal": true; }; "filterable": { "alias": "filterable"; "required": false; "isSignal": true; }; "sortSettings": { "alias": "sortSettings"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "groupable": { "alias": "groupable"; "required": false; "isSignal": true; }; "pageable": { "alias": "pageable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "showStatusBar": { "alias": "showStatusBar"; "required": false; "isSignal": true; }; "columnMenu": { "alias": "columnMenu"; "required": false; "isSignal": true; }; "allowColumnReorder": { "alias": "allowColumnReorder"; "required": false; "isSignal": true; }; "showToolBar": { "alias": "showToolBar"; "required": false; "isSignal": true; }; "toolBarRenderer": { "alias": "toolBarRenderer"; "required": false; "isSignal": true; }; }, {}, ["noDataTemplateDir", "loadingTemplateDir", "errorTemplateDir", "groupColumnTemplateDir", "groupHeaderTemplateDir", "statusBarTemplateDir", "toolBarTemplateDir", "projectedColumns"], never, true, never>;
186
198
  }
187
199
 
188
200
  declare class POLY_GRID {
189
201
  static ɵfac: i0.ɵɵFactoryDeclaration<POLY_GRID, never>;
190
- static ɵmod: i0.ɵɵNgModuleDeclaration<POLY_GRID, never, [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective, typeof PolyGridColumnFooterTemplateDirective, typeof PolyGridColumnCellTemplateDirective, typeof PolyGridFilterCellTemplateDirective, typeof PolyGridGroupColumnTemplateDirective, typeof PolyGridGroupHeaderCellTemplateDirective, typeof PolyGridGroupHeaderTemplateDirective, typeof PolyGridGroupFooterCellTemplateDirective, typeof PolyGridStatusBarTemplateDirective], [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective, typeof PolyGridColumnFooterTemplateDirective, typeof PolyGridColumnCellTemplateDirective, typeof PolyGridFilterCellTemplateDirective, typeof PolyGridGroupColumnTemplateDirective, typeof PolyGridGroupHeaderCellTemplateDirective, typeof PolyGridGroupHeaderTemplateDirective, typeof PolyGridGroupFooterCellTemplateDirective, typeof PolyGridStatusBarTemplateDirective]>;
202
+ static ɵmod: i0.ɵɵNgModuleDeclaration<POLY_GRID, never, [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective, typeof PolyGridColumnFooterTemplateDirective, typeof PolyGridColumnCellTemplateDirective, typeof PolyGridFilterCellTemplateDirective, typeof PolyGridGroupColumnTemplateDirective, typeof PolyGridGroupHeaderCellTemplateDirective, typeof PolyGridGroupHeaderTemplateDirective, typeof PolyGridGroupFooterCellTemplateDirective, typeof PolyGridStatusBarTemplateDirective, typeof PolyGridToolBarTemplateDirective], [typeof PolyGridComponent, typeof PolyGridColumnComponent, typeof PolyGridNoDataTemplateDirective, typeof PolyGridLoadingTemplateDirective, typeof PolyGridErrorTemplateDirective, typeof PolyGridColumnHeaderTemplateDirective, typeof PolyGridColumnFooterTemplateDirective, typeof PolyGridColumnCellTemplateDirective, typeof PolyGridFilterCellTemplateDirective, typeof PolyGridGroupColumnTemplateDirective, typeof PolyGridGroupHeaderCellTemplateDirective, typeof PolyGridGroupHeaderTemplateDirective, typeof PolyGridGroupFooterCellTemplateDirective, typeof PolyGridStatusBarTemplateDirective, typeof PolyGridToolBarTemplateDirective]>;
191
203
  static ɵinj: i0.ɵɵInjectorDeclaration<POLY_GRID>;
192
204
  }
193
205
 
194
- export { POLY_GRID, PolyGridColumnCellTemplateDirective, PolyGridColumnComponent, PolyGridColumnFooterTemplateDirective, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridFilterCellTemplateDirective, PolyGridGroupColumnTemplateDirective, PolyGridGroupFooterCellTemplateDirective, PolyGridGroupHeaderCellTemplateDirective, PolyGridGroupHeaderTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective, PolyGridStatusBarTemplateDirective };
206
+ export { POLY_GRID, PolyGridColumnCellTemplateDirective, PolyGridColumnComponent, PolyGridColumnFooterTemplateDirective, PolyGridColumnHeaderTemplateDirective, PolyGridComponent, PolyGridErrorTemplateDirective, PolyGridFilterCellTemplateDirective, PolyGridGroupColumnTemplateDirective, PolyGridGroupFooterCellTemplateDirective, PolyGridGroupHeaderCellTemplateDirective, PolyGridGroupHeaderTemplateDirective, PolyGridLoadingTemplateDirective, PolyGridNoDataTemplateDirective, PolyGridStatusBarTemplateDirective, PolyGridToolBarTemplateDirective };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/angular",
3
- "version": "0.0.677",
3
+ "version": "0.0.678",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^21.0.6",
6
6
  "@angular/common": "^21.0.6",