@lumeer/pivot 0.1.0 → 0.2.0

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.
@@ -1629,10 +1629,10 @@ class LmrEmptyTablesTemplateDirective {
1629
1629
  constructor(template) {
1630
1630
  this.template = template;
1631
1631
  }
1632
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrEmptyTablesTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1633
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: LmrEmptyTablesTemplateDirective, isStandalone: false, selector: "[lmr-empty-tables-tmp]", ngImport: i0 });
1632
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrEmptyTablesTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1633
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: LmrEmptyTablesTemplateDirective, isStandalone: false, selector: "[lmr-empty-tables-tmp]", ngImport: i0 });
1634
1634
  }
1635
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrEmptyTablesTemplateDirective, decorators: [{
1635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrEmptyTablesTemplateDirective, decorators: [{
1636
1636
  type: Directive,
1637
1637
  args: [{
1638
1638
  selector: '[lmr-empty-tables-tmp]',
@@ -1644,10 +1644,10 @@ class LmrTableCellTemplateDirective {
1644
1644
  constructor(template) {
1645
1645
  this.template = template;
1646
1646
  }
1647
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrTableCellTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1648
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: LmrTableCellTemplateDirective, isStandalone: false, selector: "[lmr-table-cell-tmp]", ngImport: i0 });
1647
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrTableCellTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1648
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: LmrTableCellTemplateDirective, isStandalone: false, selector: "[lmr-table-cell-tmp]", ngImport: i0 });
1649
1649
  }
1650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrTableCellTemplateDirective, decorators: [{
1650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrTableCellTemplateDirective, decorators: [{
1651
1651
  type: Directive,
1652
1652
  args: [{
1653
1653
  selector: '[lmr-table-cell-tmp]',
@@ -1836,10 +1836,10 @@ class PivotDataEmptyPipe {
1836
1836
  });
1837
1837
  return !anythingToDisplay;
1838
1838
  }
1839
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PivotDataEmptyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1840
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: PivotDataEmptyPipe, isStandalone: false, name: "pivotDataEmpty" });
1839
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PivotDataEmptyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1840
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: PivotDataEmptyPipe, isStandalone: false, name: "pivotDataEmpty" });
1841
1841
  }
1842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PivotDataEmptyPipe, decorators: [{
1842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PivotDataEmptyPipe, decorators: [{
1843
1843
  type: Pipe,
1844
1844
  args: [{
1845
1845
  name: 'pivotDataEmpty',
@@ -1869,10 +1869,10 @@ class CellHasValuePipe {
1869
1869
  transform(cell) {
1870
1870
  return isNotNullOrUndefined(cell.value) && String(cell.value).trim() !== '';
1871
1871
  }
1872
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CellHasValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1873
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: CellHasValuePipe, isStandalone: false, name: "cellHasValue" });
1872
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CellHasValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1873
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: CellHasValuePipe, isStandalone: false, name: "cellHasValue" });
1874
1874
  }
1875
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: CellHasValuePipe, decorators: [{
1875
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CellHasValuePipe, decorators: [{
1876
1876
  type: Pipe,
1877
1877
  args: [{
1878
1878
  name: 'cellHasValue',
@@ -1902,10 +1902,10 @@ class IsCellExpandablePipe {
1902
1902
  transform(cell) {
1903
1903
  return isCellExpandable(cell);
1904
1904
  }
1905
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: IsCellExpandablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1906
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: IsCellExpandablePipe, isStandalone: false, name: "isCellExpandable" });
1905
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IsCellExpandablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1906
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: IsCellExpandablePipe, isStandalone: false, name: "isCellExpandable" });
1907
1907
  }
1908
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: IsCellExpandablePipe, decorators: [{
1908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IsCellExpandablePipe, decorators: [{
1909
1909
  type: Pipe,
1910
1910
  args: [{
1911
1911
  name: 'isCellExpandable',
@@ -1938,10 +1938,10 @@ class IsCellExpandedPipe {
1938
1938
  }
1939
1939
  return false;
1940
1940
  }
1941
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: IsCellExpandedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1942
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: IsCellExpandedPipe, isStandalone: false, name: "isCellExpanded" });
1941
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IsCellExpandedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1942
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: IsCellExpandedPipe, isStandalone: false, name: "isCellExpanded" });
1943
1943
  }
1944
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: IsCellExpandedPipe, decorators: [{
1944
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IsCellExpandedPipe, decorators: [{
1945
1945
  type: Pipe,
1946
1946
  args: [{
1947
1947
  name: 'isCellExpanded',
@@ -1971,10 +1971,10 @@ class IsCellRowsExpandablePipe {
1971
1971
  transform(cell) {
1972
1972
  return isCellRowsExpandable(cell);
1973
1973
  }
1974
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: IsCellRowsExpandablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1975
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: IsCellRowsExpandablePipe, isStandalone: false, name: "isCellRowsExpandable" });
1974
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IsCellRowsExpandablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1975
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: IsCellRowsExpandablePipe, isStandalone: false, name: "isCellRowsExpandable" });
1976
1976
  }
1977
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: IsCellRowsExpandablePipe, decorators: [{
1977
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IsCellRowsExpandablePipe, decorators: [{
1978
1978
  type: Pipe,
1979
1979
  args: [{
1980
1980
  name: 'isCellRowsExpandable',
@@ -2004,10 +2004,10 @@ class FilterVisibleCellsPipe {
2004
2004
  transform(table, state) {
2005
2005
  return filterVisibleCells(table.cells, state?.cells);
2006
2006
  }
2007
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FilterVisibleCellsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2008
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: FilterVisibleCellsPipe, isStandalone: false, name: "filterVisibleCells" });
2007
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FilterVisibleCellsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2008
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: FilterVisibleCellsPipe, isStandalone: false, name: "filterVisibleCells" });
2009
2009
  }
2010
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: FilterVisibleCellsPipe, decorators: [{
2010
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FilterVisibleCellsPipe, decorators: [{
2011
2011
  type: Pipe,
2012
2012
  args: [{
2013
2013
  name: 'filterVisibleCells',
@@ -2037,11 +2037,11 @@ class ContrastColorPipe {
2037
2037
  transform(color, returnCodes, opacity) {
2038
2038
  return contrastColor(color, returnCodes, opacity);
2039
2039
  }
2040
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ContrastColorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2041
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: ContrastColorPipe, isStandalone: false, name: "contrastColor" });
2042
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ContrastColorPipe, providedIn: 'root' });
2040
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ContrastColorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2041
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ContrastColorPipe, isStandalone: false, name: "contrastColor" });
2042
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ContrastColorPipe, providedIn: 'root' });
2043
2043
  }
2044
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ContrastColorPipe, decorators: [{
2044
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ContrastColorPipe, decorators: [{
2045
2045
  type: Pipe,
2046
2046
  args: [{
2047
2047
  name: 'contrastColor',
@@ -2130,10 +2130,10 @@ class LmrPivotTableComponent {
2130
2130
  statesCopy.splice(index, 1, state);
2131
2131
  this.pivotStates$.next(statesCopy);
2132
2132
  }
2133
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrPivotTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2134
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: LmrPivotTableComponent, isStandalone: false, selector: "lmr-pivot-table", inputs: { collections: "collections", data: "data", linkTypes: "linkTypes", query: "query", constraintData: "constraintData", config: "config", transform: "transform", emptyTablesTemplateInput: "emptyTablesTemplateInput", tableCellTemplateInput: "tableCellTemplateInput", initiallyCollapsed: "initiallyCollapsed" }, outputs: { cellClick: "cellClick", pivotDataChange: "pivotDataChange", pivotTablesChange: "pivotTablesChange" }, queries: [{ propertyName: "emptyTablesTemplate", first: true, predicate: LmrEmptyTablesTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "tableCellTemplate", first: true, predicate: LmrTableCellTemplateDirective, descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"{pivotTables: pivotTables$ | async, pivotStates: pivotStates$ | async, pivotData: pivotData$ | async} as data\">\n <ng-container *ngIf=\"data.pivotTables?.length && !(data.pivotData | pivotDataEmpty)\">\n <table *ngFor=\"let pivotTable of data.pivotTables; let first; let tableIndex = index\"\n class=\"table table-without-padding table-borderless table-md\"\n [class.mt-4]=\"!first\">\n <tr *ngFor=\"let rowCells of pivotTable | filterVisibleCells:data.pivotStates[tableIndex]; let rowIndex = index\">\n\n <ng-container *ngFor=\"let cell of rowCells; let cellIndex = index\">\n <td *ngIf=\"cell && {hasValue: cell | cellHasValue} as cellData\"\n class=\"cell position-relative {{cell.constraint ? (cell.constraint.type | lowercase) : ''}} text-truncate\"\n [class.expandable]=\"cell | isCellExpandable\"\n [class.expandable-rows]=\"cell | isCellRowsExpandable\"\n [class.expanded]=\"cell | isCellExpanded:cellIndex:data.pivotStates[tableIndex]\"\n [class.sticky-start]=\"cell.stickyStart\"\n [class.sticky-top]=\"cell.stickyTop\"\n [rowSpan]=\"cell.rowSpan\"\n [colSpan]=\"cell.colSpan\"\n [style.top.px]=\"cell.stickyTop ? (rowIndex * stickyColumnHeight) : undefined\"\n [style.left.px]=\"cell.stickyStart ? (cellIndex * stickyColumnWidth) : undefined\"\n [style.width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : undefined\"\n [style.max-width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : 300\"\n [style.min-width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : undefined\"\n [ngClass]=\"cell.cssClass\"\n [style.background]=\"cell.background\"\n [style.color]=\"cell.background && (cell.background | contrastColor)\"\n (click)=\"onCellClick(cell, rowCells, tableIndex, rowIndex, cellIndex)\">\n <ng-container *ngIf=\"cell.summary\">\n <ng-container *ngIf=\"cellData.hasValue\">\n <div class=\"d-flex align-items-center h-100\">\n <span class=\"summary me-2\">{{cell.summary}}</span>\n <ng-template #defaultTableCellTemplate>\n <span class=\"flex-grow-1 h-100 text-truncate d-inline-block\">\n {{ cell.value }}\n </span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tableCellTemplate || tableCellTemplateInput || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{ value: cell.value, cell: cell }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!cellData.hasValue\">\n <span class=\"d-block\" style=\"overflow: hidden; white-space: normal\">{{cell.summary}}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!cell.summary\">\n <ng-container *ngIf=\"cellData.hasValue\">\n <ng-template #defaultTableCellTemplate>\n <span class=\"d-block\" style=\"overflow: hidden; white-space: normal; cursor: pointer\">\n {{ cell.value }}\n </span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tableCellTemplate || tableCellTemplateInput || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{ value: cell.value, cell: cell }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!cellData.hasValue\">&nbsp;</ng-container>\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </table>\n </ng-container>\n\n <ng-container *ngIf=\"!data.pivotTables?.length || (data.pivotData | pivotDataEmpty)\">\n <ng-template #defaultEmptyTablesTemplate>\n <div>&nbsp;</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"emptyTablesTemplate || emptyTablesTemplateInput || defaultEmptyTablesTemplate\"\n [ngTemplateOutletContext]=\"{ }\">\n </ng-template>\n </ng-container>\n</ng-container>\n", styles: [".table{border-spacing:0;border-collapse:separate}.pivot-data-cell,.pivot-data-group-cell,.pivot-column-header-cell,.pivot-column-group-header-cell{text-align:right}.pivot-column-header-cell,.pivot-row-attribute-header-cell,.pivot-row-header-cell,.pivot-data-group-cell,.pivot-row-group-header-cell,.pivot-column-group-header-cell{font-weight:700;border:1px #f8f9fa solid}.pivot-row-header-cell.sticky-start,.pivot-row-group-header-cell.sticky-start,.pivot-empty-cell.sticky-start{position:sticky!important;width:150px;min-width:150px;max-width:150px!important;z-index:9}.pivot-row-header-cell.expandable,.pivot-row-group-header-cell.expandable{position:absolute;cursor:pointer;padding-right:15px}.pivot-row-header-cell.expandable:after,.pivot-row-group-header-cell.expandable:after{content:\"\";position:absolute;top:50%;right:5px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #253746;transform:translateY(-50%)}.pivot-row-header-cell.expandable.expanded.expandable-rows:after,.pivot-row-header-cell.expandable.expanded:after,.pivot-row-group-header-cell.expandable.expanded.expandable-rows:after,.pivot-row-group-header-cell.expandable.expanded:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #253746;border-bottom:0}.pivot-column-header-cell.sticky-top,.pivot-row-attribute-header-cell.sticky-top,.pivot-column-group-header-cell.sticky-top,.pivot-empty-cell.sticky-top{position:sticky!important;z-index:10}.pivot-row-attribute-header-cell.sticky-top,.pivot-row-attribute-header-cell.sticky-start{position:sticky!important;z-index:11}.pivot-empty-cell{background:#fff;border:1px white solid}.pivot-empty-cell.sticky-top{z-index:11}.cell.color{padding:0!important;height:30px}.cell.color .summary{padding-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: PivotDataEmptyPipe, name: "pivotDataEmpty" }, { kind: "pipe", type: CellHasValuePipe, name: "cellHasValue" }, { kind: "pipe", type: IsCellExpandablePipe, name: "isCellExpandable" }, { kind: "pipe", type: IsCellExpandedPipe, name: "isCellExpanded" }, { kind: "pipe", type: IsCellRowsExpandablePipe, name: "isCellRowsExpandable" }, { kind: "pipe", type: FilterVisibleCellsPipe, name: "filterVisibleCells" }, { kind: "pipe", type: ContrastColorPipe, name: "contrastColor" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrPivotTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2134
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LmrPivotTableComponent, isStandalone: false, selector: "lmr-pivot-table", inputs: { collections: "collections", data: "data", linkTypes: "linkTypes", query: "query", constraintData: "constraintData", config: "config", transform: "transform", emptyTablesTemplateInput: "emptyTablesTemplateInput", tableCellTemplateInput: "tableCellTemplateInput", initiallyCollapsed: "initiallyCollapsed" }, outputs: { cellClick: "cellClick", pivotDataChange: "pivotDataChange", pivotTablesChange: "pivotTablesChange" }, queries: [{ propertyName: "emptyTablesTemplate", first: true, predicate: LmrEmptyTablesTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "tableCellTemplate", first: true, predicate: LmrTableCellTemplateDirective, descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"{pivotTables: pivotTables$ | async, pivotStates: pivotStates$ | async, pivotData: pivotData$ | async} as data\">\n <ng-container *ngIf=\"data.pivotTables?.length && !(data.pivotData | pivotDataEmpty)\">\n <table *ngFor=\"let pivotTable of data.pivotTables; let first; let tableIndex = index\"\n class=\"table table-without-padding table-borderless table-md\"\n [class.mt-4]=\"!first\">\n <tr *ngFor=\"let rowCells of pivotTable | filterVisibleCells:data.pivotStates[tableIndex]; let rowIndex = index\">\n\n <ng-container *ngFor=\"let cell of rowCells; let cellIndex = index\">\n <td *ngIf=\"cell && {hasValue: cell | cellHasValue} as cellData\"\n class=\"cell position-relative {{cell.constraint ? (cell.constraint.type | lowercase) : ''}} text-truncate\"\n [class.expandable]=\"cell | isCellExpandable\"\n [class.expandable-rows]=\"cell | isCellRowsExpandable\"\n [class.expanded]=\"cell | isCellExpanded:cellIndex:data.pivotStates[tableIndex]\"\n [class.sticky-start]=\"cell.stickyStart\"\n [class.sticky-top]=\"cell.stickyTop\"\n [rowSpan]=\"cell.rowSpan\"\n [colSpan]=\"cell.colSpan\"\n [style.top.px]=\"cell.stickyTop ? (rowIndex * stickyColumnHeight) : undefined\"\n [style.left.px]=\"cell.stickyStart ? (cellIndex * stickyColumnWidth) : undefined\"\n [style.width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : undefined\"\n [style.max-width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : 300\"\n [style.min-width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : undefined\"\n [ngClass]=\"cell.cssClass\"\n [style.background]=\"cell.background\"\n [style.color]=\"cell.background && (cell.background | contrastColor)\"\n (click)=\"onCellClick(cell, rowCells, tableIndex, rowIndex, cellIndex)\">\n <ng-container *ngIf=\"cell.summary\">\n <ng-container *ngIf=\"cellData.hasValue\">\n <div class=\"d-flex align-items-center h-100\">\n <span class=\"summary me-2\">{{cell.summary}}</span>\n <ng-template #defaultTableCellTemplate>\n <span class=\"flex-grow-1 h-100 text-truncate d-inline-block\">\n {{ cell.value }}\n </span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tableCellTemplate || tableCellTemplateInput || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{ value: cell.value, cell: cell }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!cellData.hasValue\">\n <span class=\"d-block\" style=\"overflow: hidden; white-space: normal\">{{cell.summary}}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!cell.summary\">\n <ng-container *ngIf=\"cellData.hasValue\">\n <ng-template #defaultTableCellTemplate>\n <span class=\"d-block\" style=\"overflow: hidden; white-space: normal; cursor: pointer\">\n {{ cell.value }}\n </span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tableCellTemplate || tableCellTemplateInput || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{ value: cell.value, cell: cell }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!cellData.hasValue\">&nbsp;</ng-container>\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </table>\n </ng-container>\n\n <ng-container *ngIf=\"!data.pivotTables?.length || (data.pivotData | pivotDataEmpty)\">\n <ng-template #defaultEmptyTablesTemplate>\n <div>&nbsp;</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"emptyTablesTemplate || emptyTablesTemplateInput || defaultEmptyTablesTemplate\"\n [ngTemplateOutletContext]=\"{ }\">\n </ng-template>\n </ng-container>\n</ng-container>\n", styles: [".table{border-spacing:0;border-collapse:separate}.pivot-data-cell,.pivot-data-group-cell,.pivot-column-header-cell,.pivot-column-group-header-cell{text-align:right}.pivot-column-header-cell,.pivot-row-attribute-header-cell,.pivot-row-header-cell,.pivot-data-group-cell,.pivot-row-group-header-cell,.pivot-column-group-header-cell{font-weight:700;border:1px #f8f9fa solid}.pivot-row-header-cell.sticky-start,.pivot-row-group-header-cell.sticky-start,.pivot-empty-cell.sticky-start{position:sticky!important;width:150px;min-width:150px;max-width:150px!important;z-index:9}.pivot-row-header-cell.expandable,.pivot-row-group-header-cell.expandable{position:absolute;cursor:pointer;padding-right:15px}.pivot-row-header-cell.expandable:after,.pivot-row-group-header-cell.expandable:after{content:\"\";position:absolute;top:50%;right:5px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #253746;transform:translateY(-50%)}.pivot-row-header-cell.expandable.expanded.expandable-rows:after,.pivot-row-header-cell.expandable.expanded:after,.pivot-row-group-header-cell.expandable.expanded.expandable-rows:after,.pivot-row-group-header-cell.expandable.expanded:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #253746;border-bottom:0}.pivot-column-header-cell.sticky-top,.pivot-row-attribute-header-cell.sticky-top,.pivot-column-group-header-cell.sticky-top,.pivot-empty-cell.sticky-top{position:sticky!important;z-index:10}.pivot-row-attribute-header-cell.sticky-top,.pivot-row-attribute-header-cell.sticky-start{position:sticky!important;z-index:11}.pivot-empty-cell{background:#fff;border:1px white solid}.pivot-empty-cell.sticky-top{z-index:11}.cell.color{padding:0!important;height:30px}.cell.color .summary{padding-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: PivotDataEmptyPipe, name: "pivotDataEmpty" }, { kind: "pipe", type: CellHasValuePipe, name: "cellHasValue" }, { kind: "pipe", type: IsCellExpandablePipe, name: "isCellExpandable" }, { kind: "pipe", type: IsCellExpandedPipe, name: "isCellExpanded" }, { kind: "pipe", type: IsCellRowsExpandablePipe, name: "isCellRowsExpandable" }, { kind: "pipe", type: FilterVisibleCellsPipe, name: "filterVisibleCells" }, { kind: "pipe", type: ContrastColorPipe, name: "contrastColor" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2135
2135
  }
2136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrPivotTableComponent, decorators: [{
2136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrPivotTableComponent, decorators: [{
2137
2137
  type: Component,
2138
2138
  args: [{ selector: 'lmr-pivot-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container *ngIf=\"{pivotTables: pivotTables$ | async, pivotStates: pivotStates$ | async, pivotData: pivotData$ | async} as data\">\n <ng-container *ngIf=\"data.pivotTables?.length && !(data.pivotData | pivotDataEmpty)\">\n <table *ngFor=\"let pivotTable of data.pivotTables; let first; let tableIndex = index\"\n class=\"table table-without-padding table-borderless table-md\"\n [class.mt-4]=\"!first\">\n <tr *ngFor=\"let rowCells of pivotTable | filterVisibleCells:data.pivotStates[tableIndex]; let rowIndex = index\">\n\n <ng-container *ngFor=\"let cell of rowCells; let cellIndex = index\">\n <td *ngIf=\"cell && {hasValue: cell | cellHasValue} as cellData\"\n class=\"cell position-relative {{cell.constraint ? (cell.constraint.type | lowercase) : ''}} text-truncate\"\n [class.expandable]=\"cell | isCellExpandable\"\n [class.expandable-rows]=\"cell | isCellRowsExpandable\"\n [class.expanded]=\"cell | isCellExpanded:cellIndex:data.pivotStates[tableIndex]\"\n [class.sticky-start]=\"cell.stickyStart\"\n [class.sticky-top]=\"cell.stickyTop\"\n [rowSpan]=\"cell.rowSpan\"\n [colSpan]=\"cell.colSpan\"\n [style.top.px]=\"cell.stickyTop ? (rowIndex * stickyColumnHeight) : undefined\"\n [style.left.px]=\"cell.stickyStart ? (cellIndex * stickyColumnWidth) : undefined\"\n [style.width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : undefined\"\n [style.max-width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : 300\"\n [style.min-width.px]=\"cell.stickyStart ? (cell.colSpan * stickyColumnWidth) : undefined\"\n [ngClass]=\"cell.cssClass\"\n [style.background]=\"cell.background\"\n [style.color]=\"cell.background && (cell.background | contrastColor)\"\n (click)=\"onCellClick(cell, rowCells, tableIndex, rowIndex, cellIndex)\">\n <ng-container *ngIf=\"cell.summary\">\n <ng-container *ngIf=\"cellData.hasValue\">\n <div class=\"d-flex align-items-center h-100\">\n <span class=\"summary me-2\">{{cell.summary}}</span>\n <ng-template #defaultTableCellTemplate>\n <span class=\"flex-grow-1 h-100 text-truncate d-inline-block\">\n {{ cell.value }}\n </span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tableCellTemplate || tableCellTemplateInput || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{ value: cell.value, cell: cell }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!cellData.hasValue\">\n <span class=\"d-block\" style=\"overflow: hidden; white-space: normal\">{{cell.summary}}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!cell.summary\">\n <ng-container *ngIf=\"cellData.hasValue\">\n <ng-template #defaultTableCellTemplate>\n <span class=\"d-block\" style=\"overflow: hidden; white-space: normal; cursor: pointer\">\n {{ cell.value }}\n </span>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"tableCellTemplate || tableCellTemplateInput || defaultTableCellTemplate\"\n [ngTemplateOutletContext]=\"{ value: cell.value, cell: cell }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!cellData.hasValue\">&nbsp;</ng-container>\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </table>\n </ng-container>\n\n <ng-container *ngIf=\"!data.pivotTables?.length || (data.pivotData | pivotDataEmpty)\">\n <ng-template #defaultEmptyTablesTemplate>\n <div>&nbsp;</div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"emptyTablesTemplate || emptyTablesTemplateInput || defaultEmptyTablesTemplate\"\n [ngTemplateOutletContext]=\"{ }\">\n </ng-template>\n </ng-container>\n</ng-container>\n", styles: [".table{border-spacing:0;border-collapse:separate}.pivot-data-cell,.pivot-data-group-cell,.pivot-column-header-cell,.pivot-column-group-header-cell{text-align:right}.pivot-column-header-cell,.pivot-row-attribute-header-cell,.pivot-row-header-cell,.pivot-data-group-cell,.pivot-row-group-header-cell,.pivot-column-group-header-cell{font-weight:700;border:1px #f8f9fa solid}.pivot-row-header-cell.sticky-start,.pivot-row-group-header-cell.sticky-start,.pivot-empty-cell.sticky-start{position:sticky!important;width:150px;min-width:150px;max-width:150px!important;z-index:9}.pivot-row-header-cell.expandable,.pivot-row-group-header-cell.expandable{position:absolute;cursor:pointer;padding-right:15px}.pivot-row-header-cell.expandable:after,.pivot-row-group-header-cell.expandable:after{content:\"\";position:absolute;top:50%;right:5px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #253746;transform:translateY(-50%)}.pivot-row-header-cell.expandable.expanded.expandable-rows:after,.pivot-row-header-cell.expandable.expanded:after,.pivot-row-group-header-cell.expandable.expanded.expandable-rows:after,.pivot-row-group-header-cell.expandable.expanded:after{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #253746;border-bottom:0}.pivot-column-header-cell.sticky-top,.pivot-row-attribute-header-cell.sticky-top,.pivot-column-group-header-cell.sticky-top,.pivot-empty-cell.sticky-top{position:sticky!important;z-index:10}.pivot-row-attribute-header-cell.sticky-top,.pivot-row-attribute-header-cell.sticky-start{position:sticky!important;z-index:11}.pivot-empty-cell{background:#fff;border:1px white solid}.pivot-empty-cell.sticky-top{z-index:11}.cell.color{padding:0!important;height:30px}.cell.color .summary{padding-left:.5rem}\n"] }]
2139
2139
  }], propDecorators: { collections: [{
@@ -2247,10 +2247,10 @@ class LmrSimplePivotTableComponent {
2247
2247
  }]
2248
2248
  });
2249
2249
  }
2250
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrSimplePivotTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2251
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: LmrSimplePivotTableComponent, isStandalone: false, selector: "lmr-simple-pivot-table", inputs: { rows: "rows", attributes: "attributes", color: "color", config: "config", transform: "transform", locale: "locale", initiallyCollapsed: "initiallyCollapsed" }, outputs: { cellClick: "cellClick", pivotDataChange: "pivotDataChange", pivotTablesChange: "pivotTablesChange" }, queries: [{ propertyName: "emptyTablesTemplate", first: true, predicate: LmrEmptyTablesTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "tableCellTemplate", first: true, predicate: LmrTableCellTemplateDirective, descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<lmr-pivot-table [transform]=\"transform\"\n [data]=\"data\"\n [config]=\"pivotConfig\"\n [query]=\"query\"\n [constraintData]=\"constraintData\"\n [collections]=\"[collection]\"\n [emptyTablesTemplateInput]=\"emptyTablesTemplate\"\n [tableCellTemplateInput]=\"tableCellTemplate\"\n [initiallyCollapsed]=\"initiallyCollapsed\"\n (cellClick)=\"cellClick.emit($event)\"\n (pivotDataChange)=\"pivotDataChange.emit($event)\"\n (pivotTablesChange)=\"pivotTablesChange.emit($event)\">\n</lmr-pivot-table>\n", dependencies: [{ kind: "component", type: LmrPivotTableComponent, selector: "lmr-pivot-table", inputs: ["collections", "data", "linkTypes", "query", "constraintData", "config", "transform", "emptyTablesTemplateInput", "tableCellTemplateInput", "initiallyCollapsed"], outputs: ["cellClick", "pivotDataChange", "pivotTablesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2250
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrSimplePivotTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2251
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LmrSimplePivotTableComponent, isStandalone: false, selector: "lmr-simple-pivot-table", inputs: { rows: "rows", attributes: "attributes", color: "color", config: "config", transform: "transform", locale: "locale", initiallyCollapsed: "initiallyCollapsed" }, outputs: { cellClick: "cellClick", pivotDataChange: "pivotDataChange", pivotTablesChange: "pivotTablesChange" }, queries: [{ propertyName: "emptyTablesTemplate", first: true, predicate: LmrEmptyTablesTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "tableCellTemplate", first: true, predicate: LmrTableCellTemplateDirective, descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<lmr-pivot-table [transform]=\"transform\"\n [data]=\"data\"\n [config]=\"pivotConfig\"\n [query]=\"query\"\n [constraintData]=\"constraintData\"\n [collections]=\"[collection]\"\n [emptyTablesTemplateInput]=\"emptyTablesTemplate\"\n [tableCellTemplateInput]=\"tableCellTemplate\"\n [initiallyCollapsed]=\"initiallyCollapsed\"\n (cellClick)=\"cellClick.emit($event)\"\n (pivotDataChange)=\"pivotDataChange.emit($event)\"\n (pivotTablesChange)=\"pivotTablesChange.emit($event)\">\n</lmr-pivot-table>\n", dependencies: [{ kind: "component", type: LmrPivotTableComponent, selector: "lmr-pivot-table", inputs: ["collections", "data", "linkTypes", "query", "constraintData", "config", "transform", "emptyTablesTemplateInput", "tableCellTemplateInput", "initiallyCollapsed"], outputs: ["cellClick", "pivotDataChange", "pivotTablesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2252
2252
  }
2253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrSimplePivotTableComponent, decorators: [{
2253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrSimplePivotTableComponent, decorators: [{
2254
2254
  type: Component,
2255
2255
  args: [{ selector: 'lmr-simple-pivot-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lmr-pivot-table [transform]=\"transform\"\n [data]=\"data\"\n [config]=\"pivotConfig\"\n [query]=\"query\"\n [constraintData]=\"constraintData\"\n [collections]=\"[collection]\"\n [emptyTablesTemplateInput]=\"emptyTablesTemplate\"\n [tableCellTemplateInput]=\"tableCellTemplate\"\n [initiallyCollapsed]=\"initiallyCollapsed\"\n (cellClick)=\"cellClick.emit($event)\"\n (pivotDataChange)=\"pivotDataChange.emit($event)\"\n (pivotTablesChange)=\"pivotTablesChange.emit($event)\">\n</lmr-pivot-table>\n" }]
2256
2256
  }], propDecorators: { rows: [{
@@ -2282,8 +2282,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
2282
2282
  }] } });
2283
2283
 
2284
2284
  class LmrPivotTableModule {
2285
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrPivotTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2286
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: LmrPivotTableModule, declarations: [LmrPivotTableComponent,
2285
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrPivotTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2286
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: LmrPivotTableModule, declarations: [LmrPivotTableComponent,
2287
2287
  LmrSimplePivotTableComponent,
2288
2288
  PivotDataEmptyPipe,
2289
2289
  CellHasValuePipe,
@@ -2298,10 +2298,10 @@ class LmrPivotTableModule {
2298
2298
  LmrSimplePivotTableComponent,
2299
2299
  LmrEmptyTablesTemplateDirective,
2300
2300
  LmrTableCellTemplateDirective] });
2301
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrPivotTableModule, imports: [CommonModule,
2301
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrPivotTableModule, imports: [CommonModule,
2302
2302
  ScrollingModule] });
2303
2303
  }
2304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: LmrPivotTableModule, decorators: [{
2304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LmrPivotTableModule, decorators: [{
2305
2305
  type: NgModule,
2306
2306
  args: [{
2307
2307
  declarations: [