import { Observable } from 'babylonjs'; import { isUrl, loadFile, camelToKebab, kebabToCamel } from './helper'; export interface ITemplateConfiguration { location?: string; // #template-id OR http://example.com/loading.html html?: string; // raw html string id?: string; params?: { [key: string]: string | number | boolean | object }; events?: { // pointer events pointerdown?: boolean | { [id: string]: boolean; }; pointerup?: boolean | { [id: string]: boolean; }; pointermove?: boolean | { [id: string]: boolean; }; pointerover?: boolean | { [id: string]: boolean; }; pointerout?: boolean | { [id: string]: boolean; }; pointerenter?: boolean | { [id: string]: boolean; }; pointerleave?: boolean | { [id: string]: boolean; }; pointercancel?: boolean | { [id: string]: boolean; }; //click, just in case click?: boolean | { [id: string]: boolean; }; // drag and drop dragstart?: boolean | { [id: string]: boolean; }; drop?: boolean | { [id: string]: boolean; }; [key: string]: boolean | { [id: string]: boolean; } | undefined; } } export interface EventCallback { event: Event; template: Template; selector: string; payload?: any; } export class TemplateManager { public onInit: Observable