Browse Source

Add callback types to selectors

type-event-callbacks
Artur Arseniev 1 month ago
parent
commit
0492088423
  1. 5
      packages/core/src/editor/types.ts
  2. 37
      packages/core/src/selector_manager/types.ts

5
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[];
}

37
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<State> | string;
export interface SelectorStateEventOptions extends ObjectAny {
event?: string;
}
export interface SelectorCustomEventData {
states: State[];
selected: Selector[];
container: HTMLElement | undefined;
}
export interface SelectorEventCallback {
[SelectorEvents.add]: EventCallbackAdd<Selector>;
[SelectorEvents.remove]: EventCallbackRemove<Selector>;
[SelectorEvents.removeBefore]: EventCallbackRemoveBefore<Selector | undefined>;
[SelectorEvents.update]: EventCallbackUpdate<Selector>;
[SelectorEvents.state]: [SelectorStateEventData, SelectorStateEventOptions?];
[SelectorEvents.custom]: [SelectorCustomEventData];
[SelectorEvents.all]: EventCallbackAll<SelectorEvent, Selector | Selectors>;
}
// need this to avoid the TS documentation generator to break
export default SelectorEvents;

Loading…
Cancel
Save