import { ModalType, ModalDetail } from '../../../../lib/types/modal.interface'; const ModalService = { on(event: string, callback: (props: ModalDetail) => void) { document.addEventListener(event, (e: Event) => callback((e as CustomEvent>).detail) ); }, open(component: ModalType, props: any = {}) { return new Promise((resolve, _) => { document.dispatchEvent( new CustomEvent>('open', { detail: { component, props, resolve, target: (document.activeElement as HTMLElement) || undefined, }, }) ); }); }, }; export default ModalService;