editor.js/types/events/block/index.ts
ferntheplant 494d6e4b9b
fix: use type imports for block events (#2491)
* fix: use type imports for block events

* add changelog entry

---------

Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
2023-12-05 19:26:10 +03:00

45 lines
1.1 KiB
TypeScript

import { type BlockAddedEvent, BlockAddedMutationType } from './BlockAdded';
import { type BlockChangedEvent, BlockChangedMutationType } from './BlockChanged';
import { type BlockMovedEvent, BlockMovedMutationType } from './BlockMoved';
import { type BlockRemovedEvent, BlockRemovedMutationType } from './BlockRemoved';
/**
* Map for Custom Events related to block mutation types
*/
export interface BlockMutationEventMap {
/**
* New Block added
*/
[BlockAddedMutationType]: BlockAddedEvent;
/**
* On Block deletion
*/
[BlockRemovedMutationType]: BlockRemovedEvent;
/**
* Moving of a Block
*/
[BlockMovedMutationType]: BlockMovedEvent;
/**
* Any changes inside the Block
*/
[BlockChangedMutationType]: BlockChangedEvent;
}
/**
* What kind of modification happened with the Block
*/
export type BlockMutationType = keyof BlockMutationEventMap;
/**
* Returns a union type of values of passed object
*/
type ValueOf<T> = T[keyof T];
/**
* CustomEvent describing a change related to a block
*/
export type BlockMutationEvent = ValueOf<BlockMutationEventMap>;