# Events

- Human documentation: [https://docs.univer.ai/reference/facade/events](https://docs.univer.ai/reference/facade/events)

- Agent Markdown: [https://docs.univer.ai/reference/facade/events.md](https://docs.univer.ai/reference/facade/events.md)

- Requested language: `en-US`

- Content language: `en-US`

- Documentation version: `1.0.0-rc.0`

- Source: [facade/events.mdx](https://github.com/dream-num/documentation/blob/dev/content/reference/facade/events.mdx)

---

| Packages | `@univerjs/core`, `@univerjs/sheets`, `@univerjs/sheets-ui`, `@univerjs/sheets-data-validation`, `@univerjs/sheets-drawing`, `@univerjs/sheets-drawing-ui`, `@univerjs/sheets-filter`, `@univerjs/sheets-hyper-link`, `@univerjs/sheets-note`, `@univerjs/sheets-sort`, `@univerjs/sheets-thread-comment`, `@univerjs-pro/bases`, `@univerjs-pro/collaboration-client`, `@univerjs-pro/shape-editor`, `@univerjs-pro/sheets-pivot`, `@univerjs-pro/sheets-print`, `@univerjs-pro/sheets-sparkline` |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

## Overview

### @univerjs/core

| Method                                          | Description                          |
| ----------------------------------------------- | ------------------------------------ |
| [`addEvent`](#addevent)                         | Add an event listener                |
| [`extend`](#extend)                             | -                                    |
| [`fireEvent`](#fireevent)                       | Fire an event, used in internal only |
| [`get`](#get)                                   | -                                    |
| [`registerEventHandler`](#registereventhandler) | -                                    |
| [`removeEvent`](#removeevent)                   | -                                    |

### @univerjs-pro/sheets-pivot

| Method                                      | Description |
| ------------------------------------------- | ----------- |
| [`generatePivotTable`](#generatepivottable) | -           |

## Available Event Names

Use these values through `univerAPI.Event`.

```typescript
// @univerjs/core
BeforeCommandExecute
BeforeRedo
BeforeUndo
CommandExecuted
DocCreated
DocDisposed
LifeCycleChanged
Redo
Undo

// @univerjs/sheets
ActiveSheetChanged
BeforeActiveSheetChange
BeforeGridlineColorChange
BeforeGridlineEnableChange
BeforeSheetCreate
BeforeSheetDelete
BeforeSheetHideChange
BeforeSheetMove
BeforeSheetNameChange
BeforeSheetTabColorChange
GridlineChanged
SheetCreated
SheetDeleted
SheetHideChanged
SheetMoved
SheetNameChanged
SheetTabColorChanged
SheetValueChanged
WorkbookCreated
WorkbookDisposed

// @univerjs/sheets-crosshair-highlight
CrosshairHighlightEnabledChanged

// @univerjs/sheets-data-validation
BeforeSheetDataValidationAdd
BeforeSheetDataValidationCriteriaUpdate
BeforeSheetDataValidationDelete
BeforeSheetDataValidationDeleteAll
BeforeSheetDataValidationOptionsUpdate
BeforeSheetDataValidationRangeUpdate
SheetDataValidationChanged
SheetDataValidatorStatusChanged

// @univerjs/sheets-drawing
BeforeFloatDomAdd
BeforeFloatDomDelete
BeforeFloatDomUpdate
BeforeOverGridImageChange
BeforeOverGridImageInsert
BeforeOverGridImageRemove
BeforeOverGridImageSelect
FloatDomAdded
FloatDomDeleted
FloatDomUpdated
OverGridImageChanged
OverGridImageInserted
OverGridImageRemoved
OverGridImageSelected

// @univerjs/sheets-drawing-ui
BeforeFloatDomAdd
BeforeFloatDomDelete
BeforeFloatDomUpdate
FloatDomAdded
FloatDomDeleted
FloatDomUpdated

// @univerjs/sheets-filter
SheetBeforeRangeFilter
SheetBeforeRangeFilterClear
SheetRangeFilterCleared
SheetRangeFiltered

// @univerjs/sheets-hyper-link
BeforeSheetLinkAdd
BeforeSheetLinkCancel
BeforeSheetLinkUpdate

// @univerjs/sheets-note
BeforeSheetNoteAdd
BeforeSheetNoteDelete
BeforeSheetNoteHide
BeforeSheetNoteShow
BeforeSheetNoteUpdate
SheetNoteAdd
SheetNoteDelete
SheetNoteHide
SheetNoteShow
SheetNoteUpdate

// @univerjs/sheets-sort
SheetBeforeRangeSort
SheetRangeSorted

// @univerjs/sheets-thread-comment
BeforeCommentAdd
BeforeCommentDelete
BeforeCommentResolve
BeforeCommentUpdate
CommentAdded
CommentDeleted
CommentResolved
CommentUpdated

// @univerjs/sheets-ui
BeforeClipboardChange
BeforeClipboardPaste
BeforeSheetEditEnd
BeforeSheetEditStart
BeforeSheetZoomChange
CellClicked
CellHover
CellPointerDown
CellPointerMove
CellPointerUp
ClipboardChanged
ClipboardPasted
ColumnHeaderClick
ColumnHeaderHover
ColumnHeaderPointerDown
ColumnHeaderPointerUp
DragOver
Drop
RowHeaderClick
RowHeaderHover
RowHeaderPointerDown
RowHeaderPointerUp
Scroll
SelectionChanged
SelectionMoveEnd
SelectionMoveStart
SelectionMoving
SheetEditChanging
SheetEditEnded
SheetEditStarted
SheetSkeletonChanged
SheetZoomChanged

// @univerjs-pro/bases
BaseHierarchyChanged
BaseTableCellValueChanged
BaseTableCreated
BaseTableFieldCreated
BaseTableRecordCreated
BaseTableViewCreated
BeforeBaseHierarchyChange
BeforeBaseTableCellValueChange
BeforeBaseTableCreate
BeforeBaseTableFieldCreate
BeforeBaseTableRecordCreate
BeforeBaseTableViewCreate

// @univerjs-pro/collaboration-client
CollaborationStatusChanged

// @univerjs-pro/shape-editor
FormulaShapeResultChanged

// @univerjs-pro/sheets-pivot
BeforePivotTableAdd
PivotTableAdded
PivotTableFieldAdded
PivotTableFieldCollapseChanged
PivotTableFieldFilterChanged
PivotTableFieldMoved
PivotTableFieldRemoved
PivotTableFieldSettingChanged
PivotTableFieldSortChanged
PivotTableMoved
PivotTableRemoved
PivotTableRendered
PivotTableValuePositionChanged

// @univerjs-pro/sheets-print
BeforeSheetPrintCanceled
BeforeSheetPrintConfirm
BeforeSheetPrintOpen
SheetPrintCanceled
SheetPrintConfirmed
SheetPrintOpen

// @univerjs-pro/sheets-sparkline
SheetSparklineChanged
```

## APIs

### Lifecycle & Creation

### `addEvent`

Add an event listener

**Signature**

```typescript
addEvent<T extends keyof IEventParamConfig>(event: T, callback: (params: IEventParamConfig[T]) => void): IDisposable
```

**Parameters**

* `event` `T` — *No description*
* `callback` `(params: IEventParamConfig[T]) => void` — when event triggered

**Returns**

* `IDisposable` — The Disposable instance, for remove the listener

**Examples**

```ts
univerAPI.addEvent(univerAPI.Event.LifeCycleChanged, (params) => {
  const { stage } = params;
  console.log('life cycle changed', params);
});
```

Source: 

`@univerjs/core`

### Getters & Queries

### `get`

**Signature**

```typescript
static get(): FEventName
```

**Returns**

* `FEventName` — See signature above.

Source: 

`@univerjs/core`

### Actions & Operations

### `removeEvent`

**Signature**

```typescript
removeEvent<T extends keyof IEventParamConfig>(event: T, callback: (params: IEventParamConfig[T]) => void): void
```

**Parameters**

* `event` `T` — *No description*
* `callback` `(params: IEventParamConfig[T]) => void` — *No description*

Source: 

`@univerjs/core`

### Events

### `fireEvent`

Fire an event, used in internal only.

**Signature**

```typescript
fireEvent<T extends keyof IEventParamConfig>(event: T, params: IEventParamConfig[T]): boolean | undefined
```

**Parameters**

* `event` `T` — *No description*
* `params` `IEventParamConfig[T]` — of event

**Returns**

* `boolean` — should cancel

**Examples**

```ts
this.fireEvent(univerAPI.Event.LifeCycleChanged, params);
```

Source: 

`@univerjs/core`

### `registerEventHandler`

**Signature**

```typescript
registerEventHandler(event: string, handler: () => IDisposable | Subscription): IDisposable
```

**Parameters**

* `event` `string` — *No description*
* `handler` `() => any` — *No description*

**Returns**

* `IDisposable` — See signature above.

Source: 

`@univerjs/core`

### Miscellaneous

### `extend`

**Signature**

```typescript
static extend(source: any): void
```

**Parameters**

* `source` `any` — *No description*

Source: 

`@univerjs/core`

### `generatePivotTable`

**Signature**

```typescript
generatePivotTable<T extends DataFieldManager>(data: IDataFieldDataArray, CustomDataFieldManager?: new (...args: unknown[]) => T): FGenericPivotTable
```

**Parameters**

* `data` `[string[], ...(IDataFieldValue & Date)[][]]` — *No description*
* `CustomDataFieldManager` `new (...args: unknown[]) => T` *(optional)* — *No description*

**Returns**

* `FGenericPivotTable` — See signature above.

Source: 

`@univerjs-pro/sheets-pivot`
