igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
205 lines (204 loc) • 6.11 kB
TypeScript
import { EventEmitter } from '@angular/core';
import { IBaseEventArgs } from '../../core/utils';
import { GridColumnDataType } from '../../data-operations/data-util';
import { IgxExporterOptionsBase } from './exporter-options-base';
import { ColumnType, GridType } from '../../grids/common/grid.interface';
export declare enum ExportRecordType {
GroupedRecord = "GroupedRecord",
TreeGridRecord = "TreeGridRecord",
DataRecord = "DataRecord",
HierarchicalGridRecord = "HierarchicalGridRecord",
HeaderRecord = "HeaderRecord",
SummaryRecord = "SummaryRecord",
PivotGridRecord = "PivotGridRecord"
}
export declare enum ExportHeaderType {
RowHeader = "RowHeader",
ColumnHeader = "ColumnHeader",
MultiRowHeader = "MultiRowHeader",
MultiColumnHeader = "MultiColumnHeader",
PivotRowHeader = "PivotRowHeader",
PivotMergedHeader = "PivotMergedHeader"
}
export interface IExportRecord {
data: any;
level: number;
type: ExportRecordType;
owner?: string | GridType;
hidden?: boolean;
summaryKey?: string;
hierarchicalOwner?: string;
references?: IColumnInfo[];
}
export interface IColumnList {
columns: IColumnInfo[];
columnWidths: number[];
indexOfLastPinnedColumn: number;
maxLevel?: number;
maxRowLevel?: number;
}
export interface IColumnInfo {
header: string;
field: string;
skip: boolean;
dataType?: GridColumnDataType;
skipFormatter?: boolean;
formatter?: any;
headerType?: ExportHeaderType;
startIndex?: number;
columnSpan?: number;
rowSpan?: number;
level?: number;
exportIndex?: number;
pinnedIndex?: number;
columnGroupParent?: ColumnType | string;
columnGroup?: ColumnType | string;
currencyCode?: string;
displayFormat?: string;
dateFormat?: string;
digitsInfo?: string;
}
/**
* rowExporting event arguments
* this.exporterService.rowExporting.subscribe((args: IRowExportingEventArgs) => {
* // set args properties here
* })
*/
export interface IRowExportingEventArgs extends IBaseEventArgs {
/**
* Contains the exporting row data
*/
rowData: any;
/**
* Contains the exporting row index
*/
rowIndex: number;
/**
* Skip the exporting row when set to true
*/
cancel: boolean;
}
/**
* columnExporting event arguments
* ```typescript
* this.exporterService.columnExporting.subscribe((args: IColumnExportingEventArgs) => {
* // set args properties here
* });
* ```
*/
export interface IColumnExportingEventArgs extends IBaseEventArgs {
/**
* Contains the exporting column header
*/
header: string;
/**
* Contains the exporting column field name
*/
field: string;
/**
* Contains the exporting column index
*/
columnIndex: number;
/**
* Skip the exporting column when set to true
*/
cancel: boolean;
/**
* Export the column's data without applying its formatter, when set to true
*/
skipFormatter: boolean;
/**
* A reference to the grid owner.
*/
grid?: GridType;
}
export declare const DEFAULT_OWNER = "default";
export declare const GRID_ROOT_SUMMARY = "igxGridRootSummary";
export declare const GRID_PARENT = "grid-parent";
export declare const GRID_LEVEL_COL = "GRID_LEVEL_COL";
export declare abstract class IgxBaseExporter {
exportEnded: EventEmitter<IBaseEventArgs>;
/**
* This event is emitted when a row is exported.
* ```typescript
* this.exporterService.rowExporting.subscribe((args: IRowExportingEventArgs) => {
* // put event handler code here
* });
* ```
*
* @memberof IgxBaseExporter
*/
rowExporting: EventEmitter<IRowExportingEventArgs>;
/**
* This event is emitted when a column is exported.
* ```typescript
* this.exporterService.columnExporting.subscribe((args: IColumnExportingEventArgs) => {
* // put event handler code here
* });
* ```
*
* @memberof IgxBaseExporter
*/
columnExporting: EventEmitter<IColumnExportingEventArgs>;
protected _sort: any;
protected pivotGridFilterFieldsCount: number;
protected _ownersMap: Map<any, IColumnList>;
private locale;
private _setChildSummaries;
private isPivotGridExport;
private options;
private summaries;
private rowIslandCounter;
private flatRecords;
private pivotGridColumns;
private pivotGridRowDimensionsMap;
private pivotGridKeyValueMap;
private ownerGrid;
/**
* Method for exporting IgxGrid component's data.
* ```typescript
* this.exporterService.export(this.igxGridForExport, this.exportOptions);
* ```
*
* @memberof IgxBaseExporter
*/
export(grid: any, options: IgxExporterOptionsBase): void;
/**
* Method for exporting any kind of array data.
* ```typescript
* this.exporterService.exportData(this.arrayForExport, this.exportOptions);
* ```
*
* @memberof IgxBaseExporter
*/
exportData(data: any[], options: IgxExporterOptionsBase): void;
private addToRowDimensionsMap;
private exportGridRecordsData;
private calculateColumnSpans;
private exportRow;
private reorderColumns;
private prepareData;
private preparePivotGridData;
private prepareHierarchicalGridData;
private addHierarchicalGridData;
private prepareSummaries;
private prepareIslandData;
private getAllChildColumnsAndData;
private prepareGridData;
private prepareTreeGridData;
private addTreeGridData;
private getTreeGridChildData;
private addFlatData;
private setSummaries;
private addGroupedData;
private getColumns;
private mapHierarchicalGridColumns;
private getAutoGeneratedColumns;
private addPivotRowHeaders;
private addPivotGridColumns;
private preparePivotGridColumns;
private addLevelColumns;
private addLevelData;
private resetDefaults;
protected abstract exportDataImplementation(data: any[], options: IgxExporterOptionsBase, done: () => void): void;
}