UNPKG

@univerjs-pro/sheets-pivot

Version:

Univer Sheets Pivot Table

306 lines (305 loc) • 13.8 kB
import { IAddPivotFieldCommandParams, IMovePivotFieldCommandParams, IPivotTableAddedEventParams, IPivotTableMovedEventParams, IPivotTableRemovedEventParams, IPivotTableRenderedEventParams, IRemovePivotFieldCommandParams, ISetPivotCollapseCommandParams, ISetPivotFilterCommandParams, ISetPivotSortCommandParams, IUpdatePivotFieldSettingCommandParams, IUpdatePivotValuePositionCommandParams } from '@univerjs-pro/sheets-pivot'; import { IEventBase, FEventName } from '@univerjs/core/facade'; /** * @ignore */ interface IPivotTableEventMixin { /** * The before pivot table add event.The event parameter is {@link IPivotTableAddedEventParams} * * @example * ```typescript * univerAPI.addEvent(univerAPI.Event.BeforePivotTableAdd, (params) => { * const { positionType, targetCellInfo } = params; * if (positionType === univerAPI.Enum.PositionTypeEnum.Existing && targetCellInfo.sheetName === 'Sheet 1') { * params.cancel = true; * console.log(`The pivot table can't be added to the sheet ${targetCellInfo.sheetName}`); * } * }); * ``` */ readonly BeforePivotTableAdd: 'BeforePivotTableAdd'; /** * The pivot table added event.The event parameter is {@link IPivotTableAddedEventParams} * * @example * ```typescript * univerAPI.addEvent(univerAPI.Event.PivotTableAdded, (params) => { * const { positionType, targetCellInfo } = params; * if (positionType === univerAPI.Enum.PositionTypeEnum.Existing) { * console.log('A pivot table created in an existing sheet'); * console.log(` * The target sheet name is ${targetCellInfo.sheetName}, * the target row is ${targetCellInfo.row}, the target column is ${targetCellInfo.column} * `); * } else { * console.log('A pivot table created in a new sheet'); * } * }); * ``` */ readonly PivotTableAdded: 'PivotTableAdded'; /** * The before pivot table moved event.The event parameter is {@link IPivotTableMovedEventParams} * * @example * ```typescript * univerAPI.addEvent(univerAPI.Event.BeforePivotTableMove, (params) => { * const { pivotTableId, targetCellInfo } = params; * if (pivotTableId === 'pivotTable1' && targetCellInfo.sheetName === 'Sheet 1') { * params.cancel = true; * console.log(`The pivot table can't be moved to the sheet ${targetCellInfo.sheetName}`); * } * }); * ``` */ readonly BeforePivotTableMove: 'BeforePivotTableMove'; /** * The pivot table moved event. The event parameter is {@link IPivotTableMovedEventParams} * * @example * ```typescript * univerAPI.addEvent(univerAPI.Event.PivotTableMoved, (params) => { * const { pivotTableId, targetCellInfo, originTargetInfo } = params; * if (pivotTableId === 'pivotTable1') { * console.log(` * The pivot table moved from row: ${originTargetInfo.row} & column: ${originTargetInfo.column} * to the sheet ${targetCellInfo.sheetName} row: ${targetCellInfo.row} & column: ${targetCellInfo.column} * `); * } * }); * ``` */ readonly PivotTableMoved: 'PivotTableMoved'; /** * The pivot table calculated done and fill the value to worksheet, the event parameter is {@link IPivotTableRenderedEventParams} * * @example * ```typescript * // import { unionPivotViewRange } from '@univerjs-pro/sheets-pivot'; * univerAPI.addEvent(univerAPI.Event.PivotTableRendered, (params) => { * const { pivotTableId, rangeInfo } = params; * console.log(`The pivot table ${pivotTableId} has been rendered`); * if (rangeInfo) { * console.log(unionPivotViewRange(rangeInfo)); * } * }); * ``` */ readonly PivotTableRendered: 'PivotTableRendered'; /** * The pivot table removed event. The event parameter is {@link IPivotTableRemovedEventParams} * * @example * ```typescript * univerAPI.addEvent(univerAPI.Event.PivotTableRemoved, (params) => { * const { pivotTableId } = params; * console.log(`The pivot table ${pivotTableId} has been removed`); * }); * ``` */ readonly PivotTableRemoved: 'PivotTableRemoved'; /** * The pivot table field added event. The event parameter is {@link IAddPivotFieldCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableFieldAdded, (params) => { * const { pivotTableId, fieldId, fieldArea, fieldIndex } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const fieldSetting = pivotTable.getFieldSetting('fieldId'); * console.log(fieldSetting); * }); * ``` */ readonly PivotTableFieldAdded: 'PivotTableFieldAdded'; /** * The pivot table field removed event. The event parameter is {@link IRemovePivotFieldCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableFieldRemoved, (params) => { * const { pivotTableId, fieldId } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const fieldSetting = pivotTable.getFieldSetting(fieldId); * console.log(fieldSetting); * }); * ``` */ readonly PivotTableFieldRemoved: 'PivotTableFieldRemoved'; /** * The pivot table field moved event. The event parameter is {@link IMovePivotFieldCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableFieldMoved, (params) => { * const { pivotTableId, fieldId, fieldArea, fieldIndex } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const fieldSetting = pivotTable.getFieldSetting(fieldId); * console.log(`The source name ${fieldSetting.sourceName} the display name ${fieldSetting.displayName}`); * }); * ``` */ readonly PivotTableFieldMoved: 'PivotTableFieldMoved'; /** * The pivot table field collapse changed event. The event parameter is {@link ISetPivotCollapseCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableFieldCollapseChanged, (params) => { * const { pivotTableId, fieldId, isCollapsed } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const fieldSetting = pivotTable.getFieldSetting(fieldId); * console.log(`The source name ${fieldSetting.sourceName} the display name ${fieldSetting.displayName}`); * }); * ``` */ readonly PivotTableFieldCollapseChanged: 'PivotTableFieldCollapseChanged'; /** * The pivot table field filter changed event. The event parameter is {@link ISetPivotFilterCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableFieldFilterChanged, (params) => { * const { pivotTableId, fieldId, filter } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const fieldSetting = pivotTable.getFieldSetting(fieldId); * console.log(`The Checklist filter value is ${fieldSetting.filterInfo.checklist}`); * }); * ``` */ readonly PivotTableFieldFilterChanged: 'PivotTableFieldFilterChanged'; /** * The pivot table field sort changed event. The event parameter is {@link ISetPivotSortCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableFieldSortChanged, (params) => { * const { pivotTableId, fieldId, sort } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const fieldSetting = pivotTable.getFieldSetting(fieldId); * console.log(`The sort info is ${fieldSetting.sortInfo}`); * }); * ``` */ readonly PivotTableFieldSortChanged: 'PivotTableFieldSortChanged'; /** * The pivot table field setting changed event. The event parameter is {@link IUpdatePivotFieldSettingCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableFieldSettingChanged, (params) => { * const { pivotTableId, fieldId, setting } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const fieldSetting = pivotTable.getFieldSetting(fieldId); * console.log(`The source name ${fieldSetting.sourceName} the display name ${fieldSetting.displayName}`); * }); * ``` */ readonly PivotTableFieldSettingChanged: 'PivotTableFieldSettingChanged'; /** * The pivot table value position changed event. The event parameter is {@link IUpdatePivotValuePositionCommandParams} * * @example * ```typescript * const fWorkbook = univerAPI.getActiveWorkbook(); * univerAPI.addEvent(univerAPI.Event.PivotTableValuePositionChanged, (params) => { * const { pivotTableId, valueId, position } = params; * const pivotTable = fWorkbook.getPivotTableById(pivotTableId); * const valueSetting = pivotTable.getValueSetting(valueId); * console.log(`The source name ${valueSetting.sourceName} the display name ${valueSetting.displayName}`); * }); * ``` */ readonly PivotTableValuePositionChanged: 'PivotTableValuePositionChanged'; } /** * @ignore */ export interface IPivotTableEventParamConfig { /** * The event parameter for the PivotTableAdded event. {@link IPivotTableAddedEventParams} */ PivotTableAdded: IPivotTableAddedEventParams & IEventBase; /** * The event parameter for the BeforePivotTableAdd event. {@link IPivotTableAddedEventParams} */ BeforePivotTableAdd: IPivotTableAddedEventParams & IEventBase; /** * The event parameter for the BeforePivotTableMove event. {@link IPivotTableMovedEventParams} */ BeforePivotTableMove: IPivotTableMovedEventParams & IEventBase; /** * The event parameter for the PivotTableMoved event. {@link IPivotTableMovedEventParams} */ PivotTableMoved: IPivotTableMovedEventParams & IEventBase; /** * The event parameter for the PivotTableRendered event. {@link IPivotTableRenderedEventParams} */ PivotTableRendered: IPivotTableRenderedEventParams & IEventBase; /** * The event parameter for the PivotTableRemoved event. {@link IPivotTableRemovedEventParams} */ PivotTableRemoved: IPivotTableRemovedEventParams & IEventBase; /** * The event parameter for the PivotTableFieldAdded event. {@link IAddPivotFieldCommandParams} */ PivotTableFieldAdded: IAddPivotFieldCommandParams & IEventBase; /** * The event parameter for the PivotTableFieldRemoved event. {@link IRemovePivotFieldCommandParams} */ PivotTableFieldRemoved: IRemovePivotFieldCommandParams & IEventBase; /** * The event parameter for the PivotTableFieldMoved event. {@link IMovePivotFieldCommandParams} */ PivotTableFieldMoved: IMovePivotFieldCommandParams & IEventBase; /** * The event parameter for the PivotTableFieldCollapseChanged event. {@link ISetPivotCollapseCommandParams} */ PivotTableFieldCollapseChanged: ISetPivotCollapseCommandParams & IEventBase; /** * The event parameter for the PivotTableFieldFilterChanged event. {@link ISetPivotFilterCommandParams} */ PivotTableFieldFilterChanged: ISetPivotFilterCommandParams & IEventBase; /** * The event parameter for the PivotTableFieldSortChanged event. {@link ISetPivotSortCommandParams} */ PivotTableFieldSortChanged: ISetPivotSortCommandParams & IEventBase; /** * The event parameter for the PivotTableFieldSettingChanged event. {@link IUpdatePivotFieldSettingCommandParams} */ PivotTableFieldSettingChanged: IUpdatePivotFieldSettingCommandParams & IEventBase; /** * The event parameter for the PivotTableValuePositionChanged event. {@link IUpdatePivotValuePositionCommand */ PivotTableValuePositionChanged: IUpdatePivotValuePositionCommandParams & IEventBase; } export declare class FPivotTableEvent extends FEventName implements IPivotTableEventMixin { get PivotTableAdded(): 'PivotTableAdded'; get BeforePivotTableAdd(): 'BeforePivotTableAdd'; get PivotTableRemoved(): 'PivotTableRemoved'; get PivotTableMoved(): 'PivotTableMoved'; get PivotTableRendered(): 'PivotTableRendered'; get PivotTableFieldAdded(): 'PivotTableFieldAdded'; get PivotTableFieldRemoved(): 'PivotTableFieldRemoved'; get PivotTableFieldMoved(): 'PivotTableFieldMoved'; get PivotTableFieldCollapseChanged(): 'PivotTableFieldCollapseChanged'; get PivotTableFieldFilterChanged(): 'PivotTableFieldFilterChanged'; get PivotTableFieldSortChanged(): 'PivotTableFieldSortChanged'; get PivotTableFieldSettingChanged(): 'PivotTableFieldSettingChanged'; get PivotTableValuePositionChanged(): 'PivotTableValuePositionChanged'; } declare module '@univerjs/core/facade' { interface FEventName extends IPivotTableEventMixin { } interface IEventParamConfig extends IPivotTableEventParamConfig { } } export {};