|
|
|
@ -1,9 +1,29 @@ |
|
|
|
import { ItemsByCategory } from '../abstract/ModuleCategory'; |
|
|
|
import { AddOptions, RemoveOptions } from '../common'; |
|
|
|
import BlockManager from '.'; |
|
|
|
import Category, { CategoryProperties, ItemsByCategory } from '../abstract/ModuleCategory'; |
|
|
|
import { |
|
|
|
AddOptions, |
|
|
|
EventCallbackAdd, |
|
|
|
EventCallbackAll, |
|
|
|
EventCallbackRemove, |
|
|
|
EventCallbackRemoveBefore, |
|
|
|
EventCallbackUpdate, |
|
|
|
} from '../common'; |
|
|
|
import Component from '../dom_components/model/Component'; |
|
|
|
import Block from './model/Block'; |
|
|
|
|
|
|
|
export interface BlocksByCategory extends ItemsByCategory<Block> {} |
|
|
|
|
|
|
|
export interface BlocksCustomData { |
|
|
|
bm: BlockManager; |
|
|
|
blocks: Block[]; |
|
|
|
container: HTMLElement | undefined; |
|
|
|
dragStart: (block: Block, ev?: Event) => void; |
|
|
|
drag: (ev: Event) => void; |
|
|
|
dragStop: (cancel?: boolean) => void; |
|
|
|
} |
|
|
|
|
|
|
|
export type BlockEvent = `${BlocksEvents}`; |
|
|
|
|
|
|
|
/**{START_EVENTS}*/ |
|
|
|
export enum BlocksEvents { |
|
|
|
/** |
|
|
|
@ -79,9 +99,16 @@ export enum BlocksEvents { |
|
|
|
/**{END_EVENTS}*/ |
|
|
|
|
|
|
|
export interface BlocksEventCallback { |
|
|
|
[BlocksEvents.add]: [Block, AddOptions]; |
|
|
|
[BlocksEvents.remove]: [Block, RemoveOptions]; |
|
|
|
[BlocksEvents.update]: [Block, AddOptions]; |
|
|
|
[BlocksEvents.add]: EventCallbackAdd<Block>; |
|
|
|
[BlocksEvents.remove]: EventCallbackRemove<Block>; |
|
|
|
[BlocksEvents.removeBefore]: EventCallbackRemoveBefore<Block>; |
|
|
|
[BlocksEvents.update]: EventCallbackUpdate<Block>; |
|
|
|
[BlocksEvents.dragStart]: [Block, DragEvent?]; |
|
|
|
[BlocksEvents.drag]: [Block, DragEvent?]; |
|
|
|
[BlocksEvents.dragEnd]: [Component | undefined, Block]; |
|
|
|
[BlocksEvents.categoryUpdate]: [{ category: Category; changes: Partial<CategoryProperties>; options: AddOptions }]; |
|
|
|
[BlocksEvents.custom]: [BlocksCustomData]; |
|
|
|
[BlocksEvents.all]: EventCallbackAll<BlockEvent, Block>; |
|
|
|
} |
|
|
|
|
|
|
|
// need this to avoid the TS documentation generator to break
|
|
|
|
|