diff --git a/packages/core/src/editor/types.ts b/packages/core/src/editor/types.ts index 6998774fd..eeb8089d1 100644 --- a/packages/core/src/editor/types.ts +++ b/packages/core/src/editor/types.ts @@ -13,7 +13,7 @@ import { LayerEvent, LayerEventCallback } from '../navigator/types'; import { PageEvent, PagesEventCallback } from '../pages/types'; import { ParserEvent, ParserEventCallback } from '../parser/types'; import { RichTextEditorEvent, RichTextEditorEventCallback } from '../rich_text_editor'; -import { SelectorEvent } from '../selector_manager'; +import { SelectorEvent, SelectorEventCallback } from '../selector_manager/types'; import { StyleManagerEvent } from '../style_manager'; import { EditorConfig } from './config/config'; import EditorModel from './model/Editor'; @@ -59,7 +59,8 @@ export interface EditorEventCallbacks ModalEventCallback, PagesEventCallback, ParserEventCallback, - RichTextEditorEventCallback + RichTextEditorEventCallback, + SelectorEventCallback { [key: string]: any[]; } diff --git a/packages/core/src/selector_manager/types.ts b/packages/core/src/selector_manager/types.ts index ddb11a35a..02845f4b8 100644 --- a/packages/core/src/selector_manager/types.ts +++ b/packages/core/src/selector_manager/types.ts @@ -1,3 +1,16 @@ +import { + Collection, + EventCallbackAdd, + EventCallbackAll, + EventCallbackRemove, + EventCallbackRemoveBefore, + EventCallbackUpdate, + ObjectAny, +} from '../common'; +import Selector from './model/Selector'; +import Selectors from './model/Selectors'; +import State from './model/State'; + /**{START_EVENTS}*/ export enum SelectorEvents { /** @@ -51,7 +64,31 @@ export enum SelectorEvents { } /**{END_EVENTS}*/ +export type SelectorEvent = `${SelectorEvents}`; + export type SelectorStringObject = string | { name?: string; label?: string; type?: number }; +export type SelectorStateEventData = State | Collection | string; + +export interface SelectorStateEventOptions extends ObjectAny { + event?: string; +} + +export interface SelectorCustomEventData { + states: State[]; + selected: Selector[]; + container: HTMLElement | undefined; +} + +export interface SelectorEventCallback { + [SelectorEvents.add]: EventCallbackAdd; + [SelectorEvents.remove]: EventCallbackRemove; + [SelectorEvents.removeBefore]: EventCallbackRemoveBefore; + [SelectorEvents.update]: EventCallbackUpdate; + [SelectorEvents.state]: [SelectorStateEventData, SelectorStateEventOptions?]; + [SelectorEvents.custom]: [SelectorCustomEventData]; + [SelectorEvents.all]: EventCallbackAll; +} + // need this to avoid the TS documentation generator to break export default SelectorEvents;