import { IEditorState } from '../Interfaces/IEditorState'; export interface IAppEvent { name: string func: ( root: Element | Document, setEditor: (newState: IEditorState) => void, setLoaded: (loaded: boolean) => void, eventInitDict?: CustomEventInit ) => void } export const events: IAppEvent[] = [ { name: 'setEditor', func: SetEditor }, { name: 'setLoaded', func: SetLoaded } ]; function SetEditor( root: Element | Document, setEditor: (newState: IEditorState) => void, setLoaded: (loaded: boolean) => void, eventInitDict?: CustomEventInit ): void { const editor: IEditorState = eventInitDict?.detail; setEditor(editor); const customEvent = new CustomEvent('setEditor', { detail: editor }); root.dispatchEvent(customEvent); } function SetLoaded( root: Element | Document, setEditor: (newState: IEditorState) => void, setLoaded: (loaded: boolean) => void, eventInitDict?: CustomEventInit ): void { const isLoaded: boolean = eventInitDict?.detail; setLoaded(isLoaded); }