devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
652 lines (631 loc) • 21.3 kB
TypeScript
/**
* DevExtreme (ui/pivot_grid.d.ts)
* Version: 21.1.4
* Build date: Mon Jun 21 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
UserDefinedElement,
DxElement
} from '../core/element';
import {
Cancelable,
NativeEventInfo,
EventInfo,
InitializedEventInfo,
ChangedOptionInfo
} from '../events/index';
import PivotGridDataSource, {
PivotGridDataSourceField,
PivotGridDataSourceOptions
} from './pivot_grid/data_source';
import dxPopup from './popup';
import Widget, {
WidgetOptions
} from './widget/ui.widget';
export type CellClickEvent = Cancelable & NativeEventInfo<dxPivotGrid> & {
readonly area?: string;
readonly cellElement?: DxElement;
readonly cell?: dxPivotGridPivotGridCell;
readonly rowIndex?: number;
readonly columnIndex?: number;
readonly columnFields?: Array<PivotGridDataSourceField>;
readonly rowFields?: Array<PivotGridDataSourceField>;
readonly dataFields?: Array<PivotGridDataSourceField>;
}
export type CellPreparedEvent = EventInfo<dxPivotGrid> & {
readonly area?: string;
readonly cellElement?: DxElement;
readonly cell?: dxPivotGridPivotGridCell;
readonly rowIndex?: number;
readonly columnIndex?: number
}
export type ContentReadyEvent = EventInfo<dxPivotGrid>;
export type ContextMenuPreparingEvent = EventInfo<dxPivotGrid> & {
readonly area?: string;
readonly cell?: dxPivotGridPivotGridCell;
readonly cellElement?: DxElement;
readonly columnIndex?: number;
readonly rowIndex?: number;
readonly dataFields?: Array<PivotGridDataSourceField>;
readonly rowFields?: Array<PivotGridDataSourceField>;
readonly columnFields?: Array<PivotGridDataSourceField>;
readonly field?: PivotGridDataSourceField;
items?: Array<any>;
}
export type DisposingEvent = EventInfo<dxPivotGrid>;
export type ExportedEvent = EventInfo<dxPivotGrid>;
export type ExportingEvent = Cancelable & EventInfo<dxPivotGrid> & {
fileName?: string;
}
export type FileSavingEvent = Cancelable & {
readonly component: dxPivotGrid;
readonly element: DxElement;
readonly data?: Blob;
readonly format?: string;
fileName?: string;
}
export type InitializedEvent = InitializedEventInfo<dxPivotGrid>;
export type OptionChangedEvent = EventInfo<dxPivotGrid> & ChangedOptionInfo;
/**
* @deprecated use Properties instead
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export interface dxPivotGridOptions extends WidgetOptions<dxPivotGrid> {
/**
* Allows an end-user to expand/collapse all header items within a header level.
*/
allowExpandAll?: boolean;
/**
* Allows a user to filter fields by selecting or deselecting values in the popup menu.
*/
allowFiltering?: boolean;
/**
* Allows an end-user to change sorting properties.
*/
allowSorting?: boolean;
/**
* Allows an end-user to sort columns by summary values.
*/
allowSortingBySummary?: boolean;
/**
* Specifies the area to which data field headers must belong.
*/
dataFieldArea?: 'column' | 'row';
/**
* Binds the UI component to data.
*/
dataSource?: Array<any> | PivotGridDataSource | PivotGridDataSourceOptions;
/**
* Specifies whether HTML tags are displayed as plain text or applied to cell values.
*/
encodeHtml?: boolean;
/**
* [tags] xlsx, csv Configures client-side exporting.
*/
export?: {
/**
* Enables client-side exporting.
*/
enabled?: boolean,
/**
* Specifies a default name for the file to which grid data is exported.
* @deprecated Since v20.2, we recommend ExcelJS-based export which does not use this property.
*/
fileName?: string,
/**
* Specifies whether Excel should hide warnings if there are errors in the exported document.
* @deprecated Since v20.2, we recommend ExcelJS-based export which does not use this property.
*/
ignoreExcelErrors?: boolean,
/**
* Specifies the URL of the server-side proxy that streams the resulting file to the end user to enable exporting in the Safari browser.
* @deprecated Since v10, Safari browser supports API for saving files, and this property is no longer required.
*/
proxyUrl?: string
};
/**
* The Field Chooser configuration properties.
*/
fieldChooser?: {
/**
* Specifies whether the field chooser allows searching in the 'All Fields' section.
*/
allowSearch?: boolean,
/**
* Specifies when to apply changes made in the field chooser to the PivotGrid.
*/
applyChangesMode?: 'instantly' | 'onDemand',
/**
* Enables or disables the field chooser.
*/
enabled?: boolean,
/**
* Specifies the field chooser height.
*/
height?: number,
/**
* Specifies the field chooser layout.
*/
layout?: 0 | 1 | 2,
/**
* Specifies a delay in milliseconds between when a user finishes typing in the field chooser's search panel, and when the search is executed.
*/
searchTimeout?: number,
/**
* Strings that can be changed or localized in the pivot grid's integrated Field Chooser.
*/
texts?: {
/**
* The string to display instead of All Fields.
*/
allFields?: string,
/**
* The string to display instead of Column Fields.
*/
columnFields?: string,
/**
* The string to display instead of Data Fields.
*/
dataFields?: string,
/**
* The string to display instead of Filter Fields.
*/
filterFields?: string,
/**
* The string to display instead of Row Fields.
*/
rowFields?: string
},
/**
* Specifies the text to display as a title of the field chooser popup window.
*/
title?: string,
/**
* Specifies the field chooser width.
*/
width?: number
};
/**
* Configures the field panel.
*/
fieldPanel?: {
/**
* Makes fields on the field panel draggable.
*/
allowFieldDragging?: boolean,
/**
* Shows/hides column fields on the field panel.
*/
showColumnFields?: boolean,
/**
* Shows/hides data fields on the field panel.
*/
showDataFields?: boolean,
/**
* Shows/hides filter fields on the field panel.
*/
showFilterFields?: boolean,
/**
* Shows/hides row fields on the field panel.
*/
showRowFields?: boolean,
/**
* Specifies the placeholders of the field areas.
*/
texts?: {
/**
* Specifies the placeholder of the column field area.
*/
columnFieldArea?: string,
/**
* Specifies the placeholder of the data field area.
*/
dataFieldArea?: string,
/**
* Specifies the placeholder of the filter field area.
*/
filterFieldArea?: string,
/**
* Specifies the placeholder of the row field area.
*/
rowFieldArea?: string
},
/**
* Shows/hides the field panel.
*/
visible?: boolean
};
/**
* Configures the header filter feature.
*/
headerFilter?: {
/**
* Specifies whether searching is enabled in the header filter.
*/
allowSearch?: boolean,
/**
* Specifies the height of the popup menu containing filtering values.
*/
height?: number,
/**
* Specifies a delay in milliseconds between when a user finishes typing in the header filter's search panel, and when the search is executed.
*/
searchTimeout?: number,
/**
* Specifies whether to show all field values or only those that satisfy the other applied filters.
*/
showRelevantValues?: boolean,
/**
* Configures the texts of the popup menu's elements.
*/
texts?: {
/**
* Specifies the text of the button that closes the popup menu without applying a filter.
*/
cancel?: string,
/**
* Specifies the name of the item that represents empty values in the popup menu.
*/
emptyValue?: string,
/**
* Specifies the text of the button that applies a filter.
*/
ok?: string
},
/**
* Specifies the width of the popup menu containing filtering values.
*/
width?: number
};
/**
* Specifies whether or not to hide rows and columns with no data.
*/
hideEmptySummaryCells?: boolean;
/**
* Specifies properties configuring the load panel.
*/
loadPanel?: {
/**
* Enables or disables the load panel.
*/
enabled?: boolean,
/**
* Specifies the height of the load panel.
*/
height?: number,
/**
* Specifies the URL pointing to an image that will be used as a load indicator.
*/
indicatorSrc?: string,
/**
* Specifies whether to shade the UI component when the load panel appears.
*/
shading?: boolean,
/**
* Specifies the shading color. Applies only if shading is true.
*/
shadingColor?: string,
/**
* Specifies whether or not to show a load indicator.
*/
showIndicator?: boolean,
/**
* Specifies whether or not to show load panel background.
*/
showPane?: boolean,
/**
* Specifies the text to display inside a load panel.
*/
text?: string,
/**
* Specifies the width of the load panel.
*/
width?: number
};
/**
* A function that is executed when a pivot grid cell is clicked or tapped.
*/
onCellClick?: ((e: CellClickEvent) => void);
/**
* A function that is executed after a pivot grid cell is created.
*/
onCellPrepared?: ((e: CellPreparedEvent) => void);
/**
* A function that is executed before the context menu is rendered.
*/
onContextMenuPreparing?: ((e: ContextMenuPreparingEvent) => void);
/**
* A function that is executed after data is exported.
* @deprecated Since v20.2, we recommend ExcelJS-based export which does not use this property.
*/
onExported?: ((e: ExportedEvent) => void);
/**
* A function that is executed before data is exported.
*/
onExporting?: ((e: ExportingEvent) => void);
/**
* A function that is executed before a file with exported data is saved to the user's local storage.
* @deprecated Since v20.2, we recommend ExcelJS-based export which does not use this property.
*/
onFileSaving?: ((e: FileSavingEvent) => void);
/**
* Specifies the layout of items in the row header.
*/
rowHeaderLayout?: 'standard' | 'tree';
/**
* A configuration object specifying scrolling properties.
*/
scrolling?: {
/**
* Specifies the scrolling mode.
*/
mode?: 'standard' | 'virtual',
/**
* Specifies whether or not the UI component uses native scrolling.
*/
useNative?: boolean | 'auto'
};
/**
* Specifies whether the outer borders of the grid are visible or not.
*/
showBorders?: boolean;
/**
* Specifies whether to display the Grand Total column.
*/
showColumnGrandTotals?: boolean;
/**
* Specifies whether to display the Total columns.
*/
showColumnTotals?: boolean;
/**
* Specifies whether to display the Grand Total row.
*/
showRowGrandTotals?: boolean;
/**
* Specifies whether to display the Total rows. Applies only if rowHeaderLayout is 'standard'.
*/
showRowTotals?: boolean;
/**
* Specifies where to show the total rows or columns. Applies only if rowHeaderLayout is 'standard'.
*/
showTotalsPrior?: 'both' | 'columns' | 'none' | 'rows';
/**
* A configuration object specifying properties related to state storing.
*/
stateStoring?: {
/**
* Specifies a function that is executed on state loading. Applies only if the type is 'custom'.
*/
customLoad?: (() => PromiseLike<any>),
/**
* Specifies a function that is executed on state saving. Applies only if the type is 'custom'.
*/
customSave?: ((state: any) => any),
/**
* Specifies whether or not a grid saves its state.
*/
enabled?: boolean,
/**
* Specifies the delay between the last change of a grid state and the operation of saving this state in milliseconds.
*/
savingTimeout?: number,
/**
* Specifies a unique key to be used for storing the grid state.
*/
storageKey?: string,
/**
* Specifies the type of storage to be used for state storing.
*/
type?: 'custom' | 'localStorage' | 'sessionStorage'
};
/**
* Strings that can be changed or localized in the PivotGrid UI component.
*/
texts?: {
/**
* The string to display as a Collapse All context menu item.
*/
collapseAll?: string,
/**
* Specifies text displayed in a cell when its data is unavailable for some reason.
*/
dataNotAvailable?: string,
/**
* The string to display as an Expand All context menu item.
*/
expandAll?: string,
/**
* The string to display as an Export to Excel file context menu item.
*/
exportToExcel?: string,
/**
* The string to display as a header of the Grand Total row and column.
*/
grandTotal?: string,
/**
* Specifies the text displayed when a pivot grid does not contain any fields.
*/
noData?: string,
/**
* The string to display as a Remove All Sorting context menu item.
*/
removeAllSorting?: string,
/**
* The string to display as a Show Field Chooser context menu item.
*/
showFieldChooser?: string,
/**
* The string to display as a Sort Column by Summary Value context menu item.
*/
sortColumnBySummary?: string,
/**
* The string to display as a Sort Row by Summary Value context menu item.
*/
sortRowBySummary?: string,
/**
* The string to display as a header of the Total row and column.
*/
total?: string
};
/**
* Specifies whether long text in header items should be wrapped.
*/
wordWrapEnabled?: boolean;
}
/**
* The PivotGrid is a UI component that allows you to display and analyze multi-dimensional data from a local storage or an OLAP cube.
*/
export default class dxPivotGrid extends Widget {
constructor(element: UserDefinedElement, options?: dxPivotGridOptions)
/**
* Binds a Chart to the PivotGrid.
*/
bindChart(chart: string | DxElement | any, integrationOptions: { inverted?: boolean, dataFieldsDisplayMode?: string, putDataFieldsInto?: string, alternateDataFields?: boolean, processCell?: Function, customizeChart?: Function, customizeSeries?: Function }): Function & null;
/**
* Exports pivot grid data to the Excel file.
* @deprecated Use exportPivotGrid instead.
*/
exportToExcel(): void;
/**
* Gets the PivotGridDataSource instance.
*/
getDataSource(): PivotGridDataSource;
/**
* Gets the Popup instance of the field chooser window.
*/
getFieldChooserPopup(): dxPopup;
/**
* Updates the UI component to the size of its content.
*/
updateDimensions(): void;
}
/**
* An object containing information about the pivot grid cell.
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export interface dxPivotGridPivotGridCell {
/**
* The cell's column path. Available for data area cells only.
*/
columnPath?: Array<string | number | Date>;
/**
* The type of the column to which the cell belongs. Available for data area cells only.
*/
columnType?: 'D' | 'T' | 'GT';
/**
* The data field's index. Available for data area cells only.
*/
dataIndex?: number;
/**
* Indicates whether the cell is expanded. Available for row or column area cells only.
*/
expanded?: boolean;
/**
* The path to the row/column cell. Available for row or column area cells only.
*/
path?: Array<string | number | Date>;
/**
* The cell's row path. Available for data area cells only.
*/
rowPath?: Array<string | number | Date>;
/**
* The type of the row to which the cell belongs. Available for data area cells only.
*/
rowType?: 'D' | 'T' | 'GT';
/**
* The text displayed in the cell.
*/
text?: string;
/**
* The cell's type. Available for row or column area cells only.
*/
type?: 'D' | 'T' | 'GT';
/**
* The cell's value.
*/
value?: any;
}
/**
* An object exposing methods that manipulate a summary cell and provide access to its neighboring cells.
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export interface dxPivotGridSummaryCell {
/**
* Gets the child cell in a specified direction.
*/
child(direction: string, fieldValue: number | string): dxPivotGridSummaryCell;
/**
* Gets all child cells in a specified direction.
*/
children(direction: string): Array<dxPivotGridSummaryCell>;
/**
* Gets a pivot grid field that corresponds to the summary cell.
*/
field(area: string): PivotGridDataSourceField;
/**
* Gets the Grand Total of the entire pivot grid.
*/
grandTotal(): dxPivotGridSummaryCell;
/**
* Gets a partial Grand Total cell of a row or column.
*/
grandTotal(direction: string): dxPivotGridSummaryCell;
/**
* Indicates whether the summaryDisplayMode or calculateSummaryValue post-processed the summary value.
*/
isPostProcessed(field: PivotGridDataSourceField | string): boolean;
/**
* Gets the cell next to the current one in a specified direction.
*/
next(direction: string): dxPivotGridSummaryCell;
/**
* Gets the cell next to current in a specified direction.
*/
next(direction: string, allowCrossGroup: boolean): dxPivotGridSummaryCell;
/**
* Gets the parent cell in a specified direction.
*/
parent(direction: string): dxPivotGridSummaryCell;
/**
* Gets the cell prior to the current one in a specified direction.
*/
prev(direction: string): dxPivotGridSummaryCell;
/**
* Gets the cell previous to current in a specified direction.
*/
prev(direction: string, allowCrossGroup: boolean): dxPivotGridSummaryCell;
/**
* Gets the cell located by the path of the source cell with one field value changed.
*/
slice(field: PivotGridDataSourceField, value: number | string): dxPivotGridSummaryCell;
/**
* Gets the summary cell value.
*/
value(): any;
/**
* Gets the value of any field associated with the summary cell.
*/
value(field: PivotGridDataSourceField | string): any;
/**
* Gets the value of any field associated with the summary cell.
*/
value(field: PivotGridDataSourceField | string, postProcessed: boolean): any;
/**
* Gets the summary cell value.
*/
value(postProcessed: boolean): any;
}
export type Properties = dxPivotGridOptions;
/**
* @deprecated use Properties instead
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export type Options = dxPivotGridOptions;
/**
* @deprecated use Properties instead
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please describe your scenario in the following GitHub Issue, and we will suggest a public alternative: {@link https://github.com/DevExpress/DevExtreme/issues/17885|Internal Types}.
*/
export type IOptions = dxPivotGridOptions;