igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
1,111 lines (1,037 loc) • 52.7 kB
text/typescript
import { Component, ViewChild, OnInit } from '@angular/core';
import { NgIf } from '@angular/common';
import { IgxTreeGridComponent } from '../grids/tree-grid/tree-grid.component';
import { SampleTestData } from './sample-test-data.spec';
import { IgxSummaryOperand, IgxNumberSummaryOperand, IgxSummaryResult, IPinningConfig, IgxColumnComponent } from '../grids/public_api';
import { DisplayDensity } from '../core/density';
import { IgxActionStripComponent, IgxGridEditingActionsComponent, IgxGridPinningActionsComponent } from '../action-strip/public_api';
import { IGroupingExpression } from '../data-operations/grouping-expression.interface';
import { IgxTreeGridGroupByAreaComponent } from '../grids/grouping/tree-grid-group-by-area.component';
import { IgxPaginatorComponent } from '../paginator/paginator.component';
import { IgxHeadSelectorDirective, IgxRowSelectorDirective } from '../grids/selection/row-selectors';
import { IgxIconComponent } from '../icon/icon.component';
import { IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleSearchComponent, IgxExcelStyleSortingComponent, IgxGridExcelStyleFilteringComponent } from '../grids/filtering/excel-style/public_api';
import { IgxColumnGroupComponent } from '../grids/columns/column-group.component';
import { GridSummaryCalculationMode, RowPinningPosition } from '../grids/common/enums';
import { IgxCheckboxComponent } from '../checkbox/checkbox.component';
import { IgxExcelStyleHeaderIconDirective, IgxRowCollapsedIndicatorDirective, IgxRowExpandedIndicatorDirective } from '../grids/grid/public_api';
import { DefaultSortingStrategy } from '../data-operations/sorting-strategy';
import { IgxTreeGridGroupingPipe } from '../grids/tree-grid/tree-grid.grouping.pipe';
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number" [sortable]="true"></igx-column>
<igx-column [field]="'Name'" dataType="string" [sortable]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [sortable]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [sortable]="true"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSortingComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeSmallTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" [expansionDepth]="2" width="900px" height="1200px">
<igx-column [field]="'ID'" dataType="number" [filterable]="true"></igx-column>
<igx-column [field]="'Name'" dataType="string" [filterable]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [filterable]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [filterable]="true"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridFilteringComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" [expansionDepth]="2" width="900px" height="1200px">
<igx-column [field]="'ID'" dataType="number" [filterable]="true"></igx-column>
<igx-column [field]="'Name'" dataType="string" [filterable]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [filterable]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [filterable]="true"></igx-column>
<ng-template igxExcelStyleHeaderIcon>
<igx-icon>filter_alt</igx-icon>
</ng-template>
<igx-grid-excel-style-filtering [minHeight]="'0px'" [maxHeight]="'500px'">
<igx-excel-style-column-operations>
<igx-excel-style-sorting></igx-excel-style-sorting>
</igx-excel-style-column-operations>
<igx-excel-style-filter-operations>
<igx-excel-style-search></igx-excel-style-search>
</igx-excel-style-filter-operations>
</igx-grid-excel-style-filtering>
</igx-tree-grid>
`,
standalone: true,
imports: [
IgxTreeGridComponent,
IgxColumnComponent,
IgxIconComponent,
IgxGridExcelStyleFilteringComponent,
IgxExcelStyleColumnOperationsTemplateDirective,
IgxExcelStyleSortingComponent,
IgxExcelStyleFilterOperationsTemplateDirective,
IgxExcelStyleSearchComponent,
IgxExcelStyleHeaderIconDirective
]
})
export class IgxTreeGridFilteringESFTemplatesComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" primaryKey="ID" [selectedRows]="selectedRows"
width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-paginator *ngIf="paging"></igx-paginator>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf]
})
export class IgxTreeGridSimpleComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeSmallTreeData();
public selectedRows = [];
public paging = false;
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees"
primaryKey="ID" width="318px" height="400px" columnWidth="100px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridWithScrollsComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeAllTypesTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" primaryKey="ID" width="600px" height="600px" columnWidth="100px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridWithNoScrollsComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeAllTypesTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-paginator *ngIf="paging"></igx-paginator>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf]
})
export class IgxTreeGridPrimaryForeignKeyComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeePrimaryForeignKeyTreeData();
public paging = false;
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" [expansionDepth]="0" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-paginator [perPage]="10"></igx-paginator>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent]
})
export class IgxTreeGridExpandingComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" childDataKey="Employees" [expansionDepth]="2"
width="900px" height="500px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-paginator [perPage]="10"></igx-paginator>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent]
})
export class IgxTreeGridCellSelectionComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid primaryKey="ID" childDataKey="Employees" [expansionDepth]="2"
width="900px" height="500px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [hasSummary]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [hasSummary]="true"></igx-column>
<igx-paginator [perPage]="10"></igx-paginator>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent]
})
export class IgxTreeGridNoDataComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
}
// Test Component with 'string' dataType tree-column
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" width="900px" height="600px">
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridStringTreeColumnComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeSmallTreeData();
}
// Test Component with 'date' dataType tree-column
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" width="900px" height="600px">
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridDateTreeColumnComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeSmallTreeData();
}
// Test Component with 'boolean' dataType tree-column
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" width="900px" height="600px">
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridBooleanTreeColumnComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeAllTypesTreeData();
}
// Test Component for tree-grid row editing
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" [rowEditable]='true' childDataKey="Employees" width="900px" height="600px">
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridRowEditingComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeSmallTreeData();
}
// Test Component for tree-grid filtering and row editing
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" [rowEditable]="true" width="900px" height="600px">
<igx-column [field]="'HireDate'" dataType="date" [sortable]="true" [filterable]="true"></igx-column>
<igx-column [field]="'Name'" dataType="string" [sortable]="true" [filterable]="true"></igx-column>
<igx-column [field]="'ID'" dataType="number" [sortable]="true" [filterable]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [sortable]="true" [filterable]="true"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridFilteringRowEditingComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" primaryKey="ID" width="900px" height="600px">
<igx-column [editable]="true" [field]="'ID'" dataTtype="number"></igx-column>
<igx-column [editable]="true" [field]="'Name'" dataType="string"></igx-column>
<igx-column [editable]="true" [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [editable]="true" [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSelectionRowEditingComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" primaryKey="ID" width="900px" height="600px">
<igx-column-group header="General Information" >
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
</igx-column-group>
<igx-column-group header="Additional Information">
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-column-group>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxColumnGroupComponent]
})
export class IgxTreeGridMultiColHeadersComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeSmallTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" [expansionDepth]="0" width="900px" height="1000px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string" [hasSummary]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [hasSummary]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [hasSummary]="true"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean" [hasSummary]="true"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSummariesComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
public ageSummary = AgeSummary;
public ageSummaryTest = AgeSummaryTest;
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID" [expansionDepth]="0"
width="400px" height="800px">
<igx-column [field]="'ID'" width="150px" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" width="150px" dataType="number" [hasSummary]="true"></igx-column>
<igx-column [field]="'Name'" width="150px" dataType="string" [hasSummary]="true"></igx-column>
<igx-column [field]="'HireDate'" width="150px" dataType="date" [hasSummary]="true"></igx-column>
<igx-column [field]="'Age'" width="150px" dataType="number" [hasSummary]="true"></igx-column>
<igx-column [field]="'OnPTO'" width="150px" dataType="boolean" [hasSummary]="true"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSummariesKeyScroliingComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeDataPrimaryForeignKey();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" width="400px" height="800px">
<igx-column [field]="'ID'" width="150px" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" width="150px" dataType="number"></igx-column>
<igx-column [field]="'Name'" width="150px" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" width="150px" dataType="date"></igx-column>
<igx-column [field]="'Age'" width="150px" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" width="150px" dataType="boolean"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridWithNoForeignKeyComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeDataPrimaryForeignKey();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID" [expansionDepth]="0"
width="900px" height="1000px" [summaryCalculationMode]="calculationMode">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string" [hasSummary]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [hasSummary]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [hasSummary]="true"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean" [hasSummary]="true"></igx-column>
<igx-paginator *ngIf="paging"></igx-paginator>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf]
})
export class IgxTreeGridSummariesKeyComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeDataPrimaryForeignKey();
public calculationMode: GridSummaryCalculationMode = 'rootAndChildLevels';
public ageSummary = AgeSummary;
public ageSummaryTest = AgeSummaryTest;
public paging = false;
}
@Component({
template: `
<igx-tree-grid #treeGrid [batchEditing]="true" [data]="data" primaryKey="ID" foreignKey="ParentID" [expansionDepth]="0"
width="800px" height="800px" [summaryCalculationMode]="calculationMode">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string" [hasSummary]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [hasSummary]="false"></igx-column>
<igx-column [field]="'Age'" dataType="number" [hasSummary]="true" [summaries]="ageSummary"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean" [hasSummary]="true"></igx-column>
<igx-column [field]="'ParentID'" dataType="number" [hasSummary]="false"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSummariesTransactionsComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeDataPrimaryForeignKey();
public calculationMode: GridSummaryCalculationMode = 'rootAndChildLevels';
public ageSummary = AgeSummaryMinMax;
public ageSummaryTest = AgeSummaryTest;
}
class AgeSummary extends IgxNumberSummaryOperand {
constructor() {
super();
}
public override operate(summaries?: any[]): IgxSummaryResult[] {
const result = super.operate(summaries).filter((obj) => {
if (obj.key === 'average' || obj.key === 'sum' || obj.key === 'count') {
const summaryResult = obj.summaryResult;
// apply formatting to float numbers
if (!Number.isInteger(parseFloat(summaryResult))) {
obj.summaryResult = parseFloat(summaryResult).toLocaleString('en-us', { maximumFractionDigits: 2 });
}
return obj;
}
});
return result;
}
}
class AgeSummaryMinMax extends IgxNumberSummaryOperand {
constructor() {
super();
}
public override operate(summaries?: any[]): IgxSummaryResult[] {
const result = super.operate(summaries).filter((obj) => {
if (obj.key === 'min' || obj.key === 'max') {
const summaryResult = obj.summaryResult;
// apply formatting to float numbers
if (Number(summaryResult) === summaryResult) {
obj.summaryResult = summaryResult.toLocaleString('en-us', { maximumFractionDigits: 2 });
}
return obj;
}
});
return result;
}
}
class AgeSummaryTest extends IgxNumberSummaryOperand {
constructor() {
super();
}
public override operate(summaries?: any[]): IgxSummaryResult[] {
const result = super.operate(summaries);
result.push({
key: 'test',
label: 'Test',
summaryResult: summaries.filter(rec => rec > 10 && rec < 40).length
});
return result;
}
}
class PTOSummary extends IgxSummaryOperand {
constructor() {
super();
}
public override operate(summaries?: any[], allData = [], field?): IgxSummaryResult[] {
const result = super.operate(summaries);
if (field && field === 'Name') {
result.push({
key: 'test',
label: 'People on PTO',
summaryResult: allData.filter((rec) => rec.OnPTO).length
});
}
return result;
}
}
@Component({
template: `
<igx-tree-grid #treeGrid [batchEditing]="true" [data]="data"
primaryKey="ID" foreignKey="ParentID" [rowEditable]="true" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" dataType="number"></igx-column>
<igx-column [editable]="true" [field]="'Name'" dataType="string"></igx-column>
<igx-column [editable]="true" [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [editable]="true" [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridRowEditingTransactionComponent {
@ViewChild('treeGrid', { read: IgxTreeGridComponent, static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeePrimaryForeignKeyTreeData();
public paging = false;
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" [expansionDepth]="0" width="900px" height="1000px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string" [hasSummary]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [hasSummary]="false"></igx-column>
<igx-column [field]="'Age'" dataType="number" [hasSummary]="true" [summaries]="ageSummary"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean" [hasSummary]="true"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridCustomSummariesComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
public ageSummary = AgeSummary;
public ageSummaryTest = AgeSummaryTest;
public ptoSummary = PTOSummary;
}
@Component({
template: `
<igx-tree-grid #treeGrid [batchEditing]="true" [data]="data" primaryKey="ID" childDataKey="Employees"
[rowEditable]="true" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [editable]="true" [field]="'Name'" dataType="string"></igx-column>
<igx-column [editable]="true" [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [editable]="true" [field]="'Age'" dataType="number"></igx-column>
<igx-column [editable]="true" [field]="'OnPTO'" dataType="boolean"></igx-column>
</igx-tree-grid>`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridRowEditingHierarchicalDSTransactionComponent {
@ViewChild('treeGrid', { read: IgxTreeGridComponent, static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeAllTypesTreeData();
public paging = false;
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" childDataKey="Employees"
[rowEditable]="true" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-paginator *ngIf="paging"></igx-paginator>
</igx-tree-grid>`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf]
})
export class IgxTreeGridRowPinningComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeAllTypesTreeData();
public paging = false;
}
@Component({
template: `
<div [style.width.px]="outerWidth" [style.height.px]="outerHeight">
<igx-tree-grid #treeGrid [data]="data" [displayDensity]="density"
childDataKey="Employees" primaryKey="ID">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
</div>`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridWrappedInContComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
public height = null;
public paging = false;
public pageSize = 5;
public density: DisplayDensity = DisplayDensity.comfortable;
public outerWidth = 800;
public outerHeight: number;
public isHorizontalScrollbarVisible() {
const scrollbar = this.treeGrid.headerContainer.getScroll();
if (scrollbar) {
return scrollbar.offsetWidth < (scrollbar.children[0] as HTMLElement).offsetWidth;
}
return false;
}
public getVerticalScrollHeight() {
const scrollbar = this.treeGrid.verticalScrollContainer.getScroll();
if (scrollbar) {
return parseInt(scrollbar.style.height, 10);
}
return 0;
}
public isVerticalScrollbarVisible() {
const scrollbar = this.treeGrid.verticalScrollContainer.getScroll();
if (scrollbar && scrollbar.offsetHeight > 0) {
return scrollbar.offsetHeight < (scrollbar.children[0] as HTMLElement).offsetHeight;
}
return false;
}
public clearData(){
this.data = [];
}
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="employeeID" foreignKey="PID" width="900px" height="800px">
<igx-column [field]="'employeeID'" dataType="number"></igx-column>
<igx-column [field]="'firstName'"></igx-column>
<igx-column [field]="'lastName'"></igx-column>
<igx-column [field]="'Salary'" dataType="number" [hasSummary]="true" ></igx-column>
<igx-paginator *ngIf="paging"></igx-paginator>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf]
})
export class IgxTreeGridSummariesScrollingComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeScrollingData();
public paging = false;
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" width="900px" height="600px">
<igx-column [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSearchComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeSearchTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID"
[loadChildrenOnDemand]="loadChildren"
width="900px" height="600px">
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" dataType="number"></igx-column>
<igx-column [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridLoadOnDemandComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public allData = SampleTestData.employeePrimaryForeignKeyTreeData();
public data = [];
constructor() {
this.data = this.allData.filter(r => r.ParentID === -1);
}
public loadChildren = (parentID: any, done: (children: any[]) => void) => {
requestAnimationFrame(() => done(this.allData.filter(r => r.ParentID === parentID)));
};
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID" width="500px" height="600px"columnWidth="150px" >
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSelectionKeyComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeDataPrimaryForeignKey();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" childDataKey="Employees"
[loadChildrenOnDemand]="loadChildren"
width="900px" height="600px">
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" dataType="number"></igx-column>
<igx-column [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridLoadOnDemandChildDataComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public allData = SampleTestData.employeePrimaryForeignKeyTreeData();
public data = [];
constructor() {
this.data = this.allData.filter(r => r.ParentID === -1);
}
public loadChildren = (parentID: any, done: (children: any[]) => void) => {
requestAnimationFrame(() => done(this.allData.filter(r => r.ParentID === parentID)));
};
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" width="500px" height="600px"columnWidth="150px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSelectionComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID"
[loadChildrenOnDemand]="loadChildren" hasChildrenKey="hasEmployees"
width="900px" height="600px">
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" dataType="number"></igx-column>
<igx-column [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridLoadOnDemandHasChildrenComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public allData = SampleTestData.employeePrimaryForeignKeyTreeData();
public data = [];
constructor() {
this.data = this.getChildren(-1);
}
public loadChildren = (parentID: any, done: (children: any[]) => void) => {
requestAnimationFrame(() => {
const children = this.getChildren(parentID);
done(children);
});
};
private getChildren(parentID) {
const children = this.allData.filter(r => r.ParentID === parentID);
for (const child of children) {
child['hasEmployees'] = this.allData.some(r => r.ParentID === child.ID);
}
return children;
}
}
@Component({
template: `
<igx-tree-grid #treeGrid [batchEditing]="true"
[data]="data" childDataKey="Employees" width="800px" height="600px" columnWidth="150px" primaryKey="ID">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridSelectionWithTransactionComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [batchEditing]="true"
[data]="data" primaryKey="ID" foreignKey="ParentID" width="500px" height="600px"columnWidth="150px" >
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridFKeySelectionWithTransactionComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeDataPrimaryForeignKey();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent]
})
export class IgxTreeGridDefaultLoadingComponent implements OnInit {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = [];
public ngOnInit(): void {
this.treeGrid.isLoading = true;
setTimeout(() => {
this.data = SampleTestData.employeePrimaryForeignKeyTreeData();
this.treeGrid.isLoading = false;
}, 1000);
}
}
@Component({
template: `
<igx-tree-grid #treeGridCustomSelectors
[data]="data" primaryKey="ID" foreignKey="ParentID" [rowSelection]="'multiple'" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-paginator [perPage]="5"></igx-paginator>
<ng-template igxRowSelector let-rowContext>
<span class="rowNumber">{{ rowContext.index }}</span>
<igx-checkbox [checked]="rowContext.selected" (click)="onRowCheckboxClick($event, rowContext)"></igx-checkbox>
</ng-template>
<ng-template igxHeadSelector let-headContext>
<igx-checkbox
[checked]="headContext.totalCount === headContext.selectedCount"
[indeterminate]="headContext.totalCount !== headContext.selectedCount && headContext.selectedCount !== 0"
(click)="onHeaderCheckboxClick($event, headContext)">
</igx-checkbox>
</ng-template>
</igx-tree-grid>`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxCheckboxComponent, IgxPaginatorComponent, IgxHeadSelectorDirective, IgxRowSelectorDirective]
})
export class IgxTreeGridCustomRowSelectorsComponent implements OnInit {
@ViewChild(IgxTreeGridComponent, { static: true })
public treeGrid: IgxTreeGridComponent;
public rowCheckboxClick: any;
public headerCheckboxClick: any;
public data = [];
public ngOnInit(): void {
this.data = SampleTestData.employeePrimaryForeignKeyTreeData();
}
public onRowCheckboxClick(event, rowContext) {
this.rowCheckboxClick = event;
event.stopPropagation();
event.preventDefault();
if (rowContext.selected) {
this.treeGrid.deselectRows([rowContext.rowID]);
} else {
this.treeGrid.selectRows([rowContext.rowID]);
}
}
public onHeaderCheckboxClick(event, headContext) {
this.headerCheckboxClick = event;
event.stopPropagation();
event.preventDefault();
if (headContext.selected) {
this.treeGrid.deselectAllRows();
} else {
this.treeGrid.selectAllRows();
}
}
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" width="900px" height="600px">
<igx-column [field]="'ID'" dataType="number" [sortable]="true"></igx-column>
<igx-column [field]="'Name'" dataType="string" [sortable]="true"></igx-column>
<igx-column [field]="'HireDate'" dataType="date" [sortable]="true"></igx-column>
<igx-column [field]="'Age'" dataType="number" [sortable]="true"></igx-column>
<ng-template igxRowExpandedIndicator>
<span>EXPANDED</span>
</ng-template>
<ng-template igxRowCollapsedIndicator>
<span>COLLAPSED</span>
</ng-template>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxRowExpandedIndicatorDirective, IgxRowCollapsedIndicatorDirective]
})
export class IgxTreeGridCustomExpandersTemplateComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" primaryKey="ID" foreignKey="ParentID" width="900px" height="600px" [rowEditable]="true">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'ParentID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-action-strip #actionStrip>
<igx-grid-editing-actions [addRow]="true" [addChild]='true'></igx-grid-editing-actions>
</igx-action-strip>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent]
})
export class IgxTreeGridEditActionsComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
@ViewChild('actionStrip', { read: IgxActionStripComponent, static: true })
public actionStrip: IgxActionStripComponent;
public data = SampleTestData.employeePrimaryForeignKeyTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data" childDataKey="Employees" primaryKey="ID" [rowSelection]="'multipleCascade'"
width="900px" height="600px" [rowEditable]="true">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-action-strip #actionStrip>
<igx-grid-editing-actions [addRow]="true" [addChild]='true'></igx-grid-editing-actions>
</igx-action-strip>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent]
})
export class IgxTreeGridCascadingSelectionComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
@ViewChild('actionStrip', { read: IgxActionStripComponent, static: true })
public actionStrip: IgxActionStripComponent;
public data = SampleTestData.employeeSmallTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [batchEditing]="true"
[data]="data" childDataKey="Employees" [rowSelection]="'multipleCascade'"
width="800px" height="600px" columnWidth="150px" primaryKey="ID">
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-action-strip #actionStrip>
<igx-grid-editing-actions [addRow]="true" [addChild]='true'></igx-grid-editing-actions>
</igx-action-strip>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent]
})
export class IgxTreeGridCascadingSelectionTransactionComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
@ViewChild('actionStrip', { read: IgxActionStripComponent, static: true })
public actionStrip: IgxActionStripComponent;
public data = SampleTestData.employeeSmallTreeData();
}
@Component({
template: `
<igx-tree-grid #treeGrid [data]="data | treeGridGrouping:groupingExpressions:groupKey:childDataKey:treeGrid:aggregations"
[childDataKey]="childDataKey" [expansionDepth]="0" width="900px" height="1000px">
<igx-tree-grid-group-by-area
[grid]="treeGrid"
[expressions]="groupingExpressions"
[hideGroupedColumns]="false">
</igx-tree-grid-group-by-area>
<igx-column [field]="groupKey" [resizable]="true" [width]="'250px'" [hidden]="groupingExpressions.length === 0"></igx-column>
<igx-column [field]="'ID'" dataType="number"></igx-column>
<igx-column [field]="'Name'" dataType="string"></igx-column>
<igx-column [field]="'JobTitle'" dataType="string"></igx-column>
<igx-column [field]="'HireDate'" dataType="date"></igx-column>
<igx-column [field]="'Age'" dataType="number"></igx-column>
<igx-column [field]="'OnPTO'" dataType="boolean"></igx-column>
</igx-tree-grid>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxColumnComponent, IgxTreeGridGroupByAreaComponent, IgxTreeGridGroupingPipe]
})
export class IgxTreeGridGroupingComponent {
@ViewChild(IgxTreeGridGroupByAreaComponent, { static: true }) public groupByArea: IgxTreeGridGroupByAreaComponent;
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
public data = SampleTestData.employeeTreeDataPrimaryForeignKeyExt();
public groupKey = 'GK_Employees';
public groupedInitially = true;
public childDataKey='Employees';
public groupingExpressions: IGroupingExpression[] =
[
{ fieldName: 'OnPTO', dir: 1, ignoreCase: true, strategy: DefaultSortingStrategy.instance() },
{ fieldName: 'HireDate', dir: 2, ignoreCase: true, strategy: DefaultSortingStrategy.instance() }
];
public aggregations = [];
}
@Component({
template: `
<div>
<igx-tree-grid-group-by-area #groupArea [grid]="treeGrid">
</igx-tree-grid-group-by-area>
<igx-tree-grid #treeGrid>
</igx-tree-grid>
</div>
`,
standalone: true,
imports: [IgxTreeGridComponent, IgxTreeGridGroupByAreaComponent]
})
export class IgxTreeGridGroupByAreaTestComponent {
@ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent;
@ViewChild(IgxTreeGridGrou