import * as React from "react"; import * as ReactDOM from "react-dom"; import { IInspectorOptions } from "babylonjs/Debug/debugLayer"; import { Nullable } from "babylonjs/types"; import { Observable, Observer } from "babylonjs/Misc/observable"; import { EngineStore } from "babylonjs/Engines/engineStore"; import { Scene } from "babylonjs/scene"; import { SceneLoader } from "babylonjs/Loading/sceneLoader"; import { ActionTabsComponent } from "./components/actionTabs/actionTabsComponent"; import { SceneExplorerComponent } from "./components/sceneExplorer/sceneExplorerComponent"; import { EmbedHostComponent } from "./components/embedHost/embedHostComponent"; import { PropertyChangedEvent } from "./components/propertyChangedEvent"; import { GlobalState } from "./components/globalState"; import { GLTFFileLoader } from "babylonjs-loaders/glTF/index"; interface IInternalInspectorOptions extends IInspectorOptions { popup: boolean; original: boolean; explorerWidth?: string; inspectorWidth?: string; embedHostWidth?: string; } export class Inspector { private static _SceneExplorerHost: Nullable; private static _ActionTabsHost: Nullable; private static _EmbedHost: Nullable; private static _NewCanvasContainer: HTMLElement; private static _SceneExplorerWindow: Window; private static _ActionTabsWindow: Window; private static _EmbedHostWindow: Window; private static _Scene: Scene; private static _OpenedPane = 0; private static _OnBeforeRenderObserver: Nullable>; public static OnSelectionChangeObservable = new Observable(); public static OnPropertyChangedObservable = new Observable(); private static _GlobalState = new GlobalState(); public static MarkLineContainerTitleForHighlighting(title: string) { this._GlobalState.selectedLineContainerTitle = title; } private static _CopyStyles(sourceDoc: HTMLDocument, targetDoc: HTMLDocument) { for (var index = 0; index < sourceDoc.styleSheets.length; index++) { var styleSheet: any = sourceDoc.styleSheets[index]; if (styleSheet.cssRules) { // for