///
declare module "babylonjs-gui-editor/components/log/logComponent" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface ILogComponentProps {
globalState: GlobalState;
}
export class LogEntry {
message: string;
isError: boolean;
constructor(message: string, isError: boolean);
}
export class LogComponent extends React.Component {
constructor(props: ILogComponentProps);
componentDidMount(): void;
componentDidUpdate(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/diagram/workbench" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
import { GUINode } from "babylonjs-gui-editor/diagram/guiNode";
import { Control } from 'babylonjs-gui/2D/controls/control';
export interface IWorkbenchComponentProps {
globalState: GlobalState;
}
export type FramePortData = {};
export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
export class WorkbenchComponent extends React.Component {
private readonly MinZoom;
private readonly MaxZoom;
private _hostCanvas;
private _gridCanvas;
private _selectionContainer;
private _frameContainer;
private _svgCanvas;
private _rootContainer;
private _guiNodes;
private _mouseStartPointX;
private _mouseStartPointY;
private _selectionStartX;
private _selectionStartY;
private _x;
private _y;
private _zoom;
private _selectedGuiNodes;
private _gridSize;
private _selectionBox;
private _frameCandidate;
private _altKeyIsPressed;
private _ctrlKeyIsPressed;
private _oldY;
_frameIsMoving: boolean;
_isLoading: boolean;
isOverGUINode: boolean;
get gridSize(): number;
set gridSize(value: number);
get globalState(): GlobalState;
get nodes(): GUINode[];
get zoom(): number;
set zoom(value: number);
get x(): number;
set x(value: number);
get y(): number;
set y(value: number);
get selectedGuiNodes(): GUINode[];
get canvasContainer(): HTMLDivElement;
get hostCanvas(): HTMLDivElement;
get svgCanvas(): HTMLElement;
get selectionContainer(): HTMLDivElement;
get frameContainer(): HTMLDivElement;
constructor(props: IWorkbenchComponentProps);
getGridPosition(position: number, useCeil?: boolean): number;
getGridPositionCeil(position: number): number;
loadFromJson(serializationObject: any): void;
loadFromSnippet(snippedID: string): Promise;
loadFromGuiTexture(): void;
updateTransform(): void;
onKeyUp(): void;
findNodeFromGuiElement(guiControl: Control): GUINode;
reset(): void;
appendBlock(guiElement: Control): GUINode;
distributeGraph(): void;
componentDidMount(): void;
onMove(evt: React.PointerEvent): void;
onDown(evt: React.PointerEvent): void;
isUp: boolean;
onUp(evt: React.PointerEvent): void;
onWheel(evt: React.WheelEvent): void;
zoomToFit(): void;
createGUICanvas(): void;
updateGUIs(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/diagram/guiNode" {
import { GlobalState } from "babylonjs-gui-editor/globalState";
import { Control } from "babylonjs-gui/2D/controls/control";
import { Vector2 } from "babylonjs/Maths/math.vector";
export class GUINode {
guiControl: Control;
private _x;
private _y;
private _gridAlignedX;
private _gridAlignedY;
private _globalState;
private _onSelectionChangedObserver;
private _onSelectionBoxMovedObserver;
private _onUpdateRequiredObserver;
private _ownerCanvas;
private _isSelected;
private _isVisible;
private _enclosingFrameId;
children: GUINode[];
get isVisible(): boolean;
set isVisible(value: boolean);
get gridAlignedX(): number;
get gridAlignedY(): number;
get x(): number;
set x(value: number);
get y(): number;
set y(value: number);
get width(): number;
get height(): number;
get id(): number;
get name(): string | undefined;
get isSelected(): boolean;
get enclosingFrameId(): number;
set enclosingFrameId(value: number);
set isSelected(value: boolean);
constructor(globalState: GlobalState, guiControl: Control);
cleanAccumulation(useCeil?: boolean): void;
clicked: boolean;
_onMove(evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
updateVisual(): void;
private _isContainer;
addGui(childNode: GUINode): void;
dispose(): void;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent" {
export class PropertyChangedEvent {
object: any;
property: string;
value: any;
initialValue: any;
allowNullValue?: boolean;
}
}
declare module "babylonjs-gui-editor/globalState" {
import { Nullable } from "babylonjs/types";
import { Observable } from "babylonjs/Misc/observable";
import { LogEntry } from "babylonjs-gui-editor/components/log/logComponent";
import { Color4 } from "babylonjs/Maths/math.color";
import { GUINode } from "babylonjs-gui-editor/diagram/guiNode";
import { WorkbenchComponent } from "babylonjs-gui-editor/diagram/workbench";
import { AdvancedDynamicTexture } from "babylonjs-gui/2D/advancedDynamicTexture";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
export class GlobalState {
guiTexture: AdvancedDynamicTexture;
hostElement: HTMLElement;
hostDocument: HTMLDocument;
hostWindow: Window;
onSelectionChangedObservable: Observable>;
onRebuildRequiredObservable: Observable;
onBuiltObservable: Observable;
onResetRequiredObservable: Observable;
onUpdateRequiredObservable: Observable;
onReOrganizedRequiredObservable: Observable;
onLogRequiredObservable: Observable;
onErrorMessageDialogRequiredObservable: Observable;
onIsLoadingChanged: Observable;
onSelectionBoxMoved: Observable;
onGuiNodeRemovalObservable: Observable;
backgroundColor: Color4;
blockKeyboardEvents: boolean;
controlCamera: boolean;
workbench: WorkbenchComponent;
onPropertyChangedObservable: Observable;
storeEditorData: (serializationObject: any) => void;
customSave?: {
label: string;
action: (data: string) => Promise;
};
constructor();
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/lineContainerComponent" {
import * as React from "react";
interface ILineContainerComponentProps {
title: string;
children: any[] | any;
closed?: boolean;
}
export class LineContainerComponent extends React.Component {
constructor(props: ILineContainerComponentProps);
switchExpandedState(): void;
renderHeader(): JSX.Element;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/draggableLineComponent" {
import * as React from "react";
export interface IButtonLineComponentProps {
data: string;
tooltip: string;
}
export class DraggableLineComponent extends React.Component {
constructor(props: IButtonLineComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/components/guiList/guiListComponent" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface IGuiListComponentProps {
globalState: GlobalState;
}
export class GuiListComponent extends React.Component {
private _onResetRequiredObserver;
private static _Tooltips;
constructor(props: IGuiListComponentProps);
componentWillUnmount(): void;
filterContent(filter: string): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/buttonLineComponent" {
import * as React from "react";
export interface IButtonLineComponentProps {
label: string;
onClick: () => void;
}
export class ButtonLineComponent extends React.Component {
constructor(props: IButtonLineComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/fileButtonLineComponent" {
import * as React from "react";
interface IFileButtonLineComponentProps {
label: string;
onClick: (file: File) => void;
accept: string;
}
export class FileButtonLineComponent extends React.Component {
private static _IDGenerator;
private _id;
private uploadInputRef;
constructor(props: IFileButtonLineComponentProps);
onChange(evt: any): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/checkBoxLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
export interface ICheckBoxLineComponentProps {
label: string;
target?: any;
propertyName?: string;
isSelected?: () => boolean;
onSelect?: (value: boolean) => void;
onValueChanged?: () => void;
onPropertyChangedObservable?: Observable;
disabled?: boolean;
}
export class CheckBoxLineComponent extends React.Component {
private static _UniqueIdSeed;
private _uniqueId;
private _localChange;
constructor(props: ICheckBoxLineComponentProps);
shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
isSelected: boolean;
isDisabled: boolean;
}): boolean;
onChange(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/textLineComponent" {
import * as React from "react";
interface ITextLineComponentProps {
label?: string;
value?: string;
color?: string;
underline?: boolean;
onLink?: () => void;
url?: string;
ignoreValue?: boolean;
additionalClass?: string;
}
export class TextLineComponent extends React.Component {
constructor(props: ITextLineComponentProps);
onLink(): void;
renderContent(): JSX.Element | null;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/stringTools" {
export class StringTools {
private static _SaveAs;
private static _Click;
/**
* Download a string into a file that will be saved locally by the browser
* @param content defines the string to download locally as a file
*/
static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
/**
* Class used to provide lock mechanism
*/
export class LockObject {
/**
* Gets or set if the lock is engaged
*/
lock: boolean;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/floatLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface IFloatLineComponentProps {
label: string;
target: any;
propertyName: string;
lockObject?: LockObject;
onChange?: (newValue: number) => void;
isInteger?: boolean;
onPropertyChangedObservable?: Observable;
additionalClass?: string;
step?: string;
digits?: number;
useEuler?: boolean;
min?: number;
max?: number;
smallUI?: boolean;
onEnter?: (newValue: number) => void;
}
export class FloatLineComponent extends React.Component {
private _localChange;
private _store;
constructor(props: IFloatLineComponentProps);
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
updateValue(valueString: string): void;
lock(): void;
unlock(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/sliderLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
interface ISliderLineComponentProps {
label: string;
target?: any;
propertyName?: string;
minimum: number;
maximum: number;
step: number;
directValue?: number;
useEuler?: boolean;
onChange?: (value: number) => void;
onInput?: (value: number) => void;
onPropertyChangedObservable?: Observable;
decimalCount?: number;
margin?: boolean;
}
export class SliderLineComponent extends React.Component {
private _localChange;
constructor(props: ISliderLineComponentProps);
shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
value: number;
}): boolean;
onChange(newValueString: any): void;
onInput(newValueString: any): void;
prepareDataToRead(value: number): number;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/textInputLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface ITextInputLineComponentProps {
label: string;
lockObject: LockObject;
target?: any;
propertyName?: string;
value?: string;
onChange?: (value: string) => void;
onPropertyChangedObservable?: Observable;
}
export class TextInputLineComponent extends React.Component {
private _localChange;
constructor(props: ITextInputLineComponentProps);
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: string, previousValue: string): void;
updateValue(value: string): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/optionsLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
export const Null_Value: number;
export class ListLineOption {
label: string;
value: number;
selected?: boolean;
}
export interface IOptionsLineComponentProps {
label: string;
target: any;
propertyName: string;
options: ListLineOption[];
noDirectUpdate?: boolean;
onSelect?: (value: number) => void;
extractValue?: () => number;
onPropertyChangedObservable?: Observable;
allowNullValue?: boolean;
}
export class OptionsLineComponent extends React.Component {
private _localChange;
private remapValueIn;
private remapValueOut;
constructor(props: IOptionsLineComponentProps);
shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
value: number;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
updateValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { Control } from "babylonjs-gui/2D/controls/control";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface ICommonControlPropertyGridComponentProps {
control: Control;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class CommonControlPropertyGridComponent extends React.Component {
constructor(props: ICommonControlPropertyGridComponentProps);
renderGridInformation(): JSX.Element | null;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { Slider } from "babylonjs-gui/2D/controls/sliders/slider";
interface ISliderPropertyGridComponentProps {
slider: Slider;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class SliderPropertyGridComponent extends React.Component {
constructor(props: ISliderPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/linePropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { Line } from "babylonjs-gui/2D/controls/line";
interface ILinePropertyGridComponentProps {
line: Line;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class LinePropertyGridComponent extends React.Component {
constructor(props: ILinePropertyGridComponentProps);
onDashChange(value: string): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { RadioButton } from "babylonjs-gui/2D/controls/radioButton";
interface IRadioButtonPropertyGridComponentProps {
radioButton: RadioButton;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class RadioButtonPropertyGridComponent extends React.Component {
constructor(props: IRadioButtonPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { TextBlock } from "babylonjs-gui/2D/controls/textBlock";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface ITextBlockPropertyGridComponentProps {
textBlock: TextBlock;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class TextBlockPropertyGridComponent extends React.Component {
constructor(props: ITextBlockPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { InputText } from "babylonjs-gui/2D/controls/inputText";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface IInputTextPropertyGridComponentProps {
inputText: InputText;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class InputTextPropertyGridComponent extends React.Component {
constructor(props: IInputTextPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/numericInputComponent" {
import * as React from "react";
interface INumericInputComponentProps {
label: string;
value: number;
step?: number;
onChange: (value: number) => void;
precision?: number;
}
export class NumericInputComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: INumericInputComponentProps);
shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
value: string;
}): boolean;
updateValue(evt: any): void;
onBlur(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/colorPicker/colorComponentEntry" {
import * as React from "react";
export interface IColorComponentEntryProps {
value: number;
label: string;
max?: number;
min?: number;
onChange: (value: number) => void;
}
export class ColorComponentEntry extends React.Component {
constructor(props: IColorComponentEntryProps);
updateValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/colorPicker/hexColor" {
import * as React from "react";
export interface IHexColorProps {
value: string;
expectedLength: number;
onChange: (value: string) => void;
}
export class HexColor extends React.Component {
constructor(props: IHexColorProps);
shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
hex: string;
}): boolean;
updateHexValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/colorPicker/colorPicker" {
import * as React from "react";
import { Color3, Color4 } from "babylonjs/Maths/math.color";
/**
* Interface used to specify creation options for color picker
*/
export interface IColorPickerProps {
color: Color3 | Color4;
debugMode?: boolean;
onColorChanged?: (color: Color3 | Color4) => void;
}
/**
* Interface used to specify creation options for color picker
*/
export interface IColorPickerState {
color: Color3;
alpha: number;
}
/**
* Class used to create a color picker
*/
export class ColorPicker extends React.Component {
private _saturationRef;
private _hueRef;
private _isSaturationPointerDown;
private _isHuePointerDown;
constructor(props: IColorPickerProps);
onSaturationPointerDown(evt: React.PointerEvent): void;
onSaturationPointerUp(evt: React.PointerEvent): void;
onSaturationPointerMove(evt: React.PointerEvent): void;
onHuePointerDown(evt: React.PointerEvent): void;
onHuePointerUp(evt: React.PointerEvent): void;
onHuePointerMove(evt: React.PointerEvent): void;
private _evaluateSaturation;
private _evaluateHue;
componentDidUpdate(): void;
raiseOnColorChanged(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/colorPickerComponent" {
import * as React from "react";
import { Color4, Color3 } from 'babylonjs/Maths/math.color';
export interface IColorPickerComponentProps {
value: Color4 | Color3;
onColorChanged: (newOne: string) => void;
}
interface IColorPickerComponentState {
pickerEnabled: boolean;
color: Color3 | Color4;
hex: string;
}
export class ColorPickerLineComponent extends React.Component {
private _floatRef;
private _floatHostRef;
constructor(props: IColorPickerComponentProps);
syncPositions(): void;
shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
componentDidUpdate(): void;
componentDidMount(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/color3LineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { Color3 } from 'babylonjs/Maths/math.color';
export interface IColor3LineComponentProps {
label: string;
target: any;
propertyName: string;
onPropertyChangedObservable?: Observable;
isLinear?: boolean;
}
export class Color3LineComponent extends React.Component {
private _localChange;
constructor(props: IColor3LineComponentProps);
shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
color: Color3;
}): boolean;
setPropertyValue(newColor: Color3): void;
onChange(newValue: string): void;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: Color3): void;
updateStateR(value: number): void;
updateStateG(value: number): void;
updateStateB(value: number): void;
copyToClipboard(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { ColorPicker } from "babylonjs-gui/2D/controls/colorpicker";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface IColorPickerPropertyGridComponentProps {
colorPicker: ColorPicker;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class ColorPickerPropertyGridComponent extends React.Component {
constructor(props: IColorPickerPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imagePropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { Image } from "babylonjs-gui/2D/controls/image";
interface IImagePropertyGridComponentProps {
image: Image;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class ImagePropertyGridComponent extends React.Component {
constructor(props: IImagePropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { ImageBasedSlider } from "babylonjs-gui/2D/controls/sliders/imageBasedSlider";
interface IImageBasedSliderPropertyGridComponentProps {
imageBasedSlider: ImageBasedSlider;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class ImageBasedSliderPropertyGridComponent extends React.Component {
constructor(props: IImageBasedSliderPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { Rectangle } from "babylonjs-gui/2D/controls/rectangle";
interface IRectanglePropertyGridComponentProps {
rectangle: Rectangle;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class RectanglePropertyGridComponent extends React.Component {
constructor(props: IRectanglePropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { StackPanel } from "babylonjs-gui/2D/controls/stackPanel";
interface IStackPanelPropertyGridComponentProps {
stackPanel: StackPanel;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class StackPanelPropertyGridComponent extends React.Component {
constructor(props: IStackPanelPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/gridPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { Grid } from "babylonjs-gui/2D/controls/grid";
interface IGridPropertyGridComponentProps {
grid: Grid;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class GridPropertyGridComponent extends React.Component {
constructor(props: IGridPropertyGridComponentProps);
renderRows(): JSX.Element[];
renderColumns(): JSX.Element[];
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { ScrollViewer } from "babylonjs-gui/2D/controls/scrollViewers/scrollViewer";
interface IScrollViewerPropertyGridComponentProps {
scrollViewer: ScrollViewer;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class ScrollViewerPropertyGridComponent extends React.Component {
constructor(props: IScrollViewerPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { Ellipse } from "babylonjs-gui/2D/controls/ellipse";
interface IEllipsePropertyGridComponentProps {
ellipse: Ellipse;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class EllipsePropertyGridComponent extends React.Component {
constructor(props: IEllipsePropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
import { Checkbox } from "babylonjs-gui/2D/controls/checkbox";
interface ICheckboxPropertyGridComponentProps {
checkbox: Checkbox;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class CheckboxPropertyGridComponent extends React.Component {
constructor(props: ICheckboxPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/gui/controlPropertyGridComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { Control } from "babylonjs-gui/2D/controls/control";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface IControlPropertyGridComponentProps {
control: Control;
lockObject: LockObject;
onPropertyChangedObservable?: Observable;
}
export class ControlPropertyGridComponent extends React.Component {
constructor(props: IControlPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/components/propertyTab/propertyTabComponent" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
import { Nullable } from "babylonjs/types";
import { GUINode } from "babylonjs-gui-editor/diagram/guiNode";
interface IPropertyTabComponentProps {
globalState: GlobalState;
}
interface IPropertyTabComponentState {
currentNode: Nullable;
}
export class PropertyTabComponent extends React.Component {
private _onBuiltObserver;
private _timerIntervalId;
private _lockObject;
constructor(props: IPropertyTabComponentProps);
timerRefresh(): void;
componentDidMount(): void;
componentWillUnmount(): void;
load(file: File): void;
save(): void;
saveToSnippetServer(): void;
loadFromSnippet(): void;
renderProperties(): JSX.Element | null;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/portal" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface IPortalProps {
globalState: GlobalState;
}
export class Portal extends React.Component {
render(): React.ReactPortal;
}
}
declare module "babylonjs-gui-editor/guiNodeTools" {
import { Checkbox } from "babylonjs-gui/2D/controls/checkbox";
import { ColorPicker } from "babylonjs-gui/2D/controls/colorpicker";
import { Ellipse } from "babylonjs-gui/2D/controls/ellipse";
import { Line } from "babylonjs-gui/2D/controls/line";
import { Rectangle } from "babylonjs-gui/2D/controls/rectangle";
import { Slider } from "babylonjs-gui/2D/controls/sliders/slider";
import { TextBlock } from "babylonjs-gui/2D/controls/textBlock";
export class GUINodeTools {
static CreateControlFromString(data: string): Slider | Line | TextBlock | ColorPicker | Rectangle | Ellipse | Checkbox;
}
}
declare module "babylonjs-gui-editor/nodeLocationInfo" {
export interface INodeLocationInfo {
blockId: number;
x: number;
y: number;
}
export interface IFrameData {
x: number;
y: number;
width: number;
height: number;
color: number[];
name: string;
isCollapsed: boolean;
blocks: number[];
comments: string;
}
export interface IEditorData {
locations: INodeLocationInfo[];
x: number;
y: number;
zoom: number;
frames?: IFrameData[];
map?: {
[key: number]: number;
};
}
}
declare module "babylonjs-gui-editor/sharedComponents/messageDialog" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface IMessageDialogComponentProps {
globalState: GlobalState;
}
export class MessageDialogComponent extends React.Component {
constructor(props: IMessageDialogComponentProps);
render(): JSX.Element | null;
}
}
declare module "babylonjs-gui-editor/workbenchEditor" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
import { Nullable } from "babylonjs/types";
import { IEditorData } from "babylonjs-gui-editor/nodeLocationInfo";
import { GUINode } from "babylonjs-gui-editor/diagram/guiNode";
import { Control } from "babylonjs-gui/2D/controls/control";
interface IGraphEditorProps {
globalState: GlobalState;
}
interface IGraphEditorState {
showPreviewPopUp: boolean;
}
export class WorkbenchEditor extends React.Component {
private _workbenchCanvas;
private _startX;
private _moveInProgress;
private _leftWidth;
private _rightWidth;
private _blocks;
private _onWidgetKeyUpPointer;
private _popUpWindow;
/**
* Creates a node and recursivly creates its parent nodes from it's input
* @param block
*/
createNodeFromObject(block: Control, recursion?: boolean): Nullable;
componentDidMount(): void;
componentWillUnmount(): void;
constructor(props: IGraphEditorProps);
pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[];
zoomToFit(): void;
showWaitScreen(): void;
hideWaitScreen(): void;
reOrganize(editorData?: Nullable, isImportingAFrame?: boolean): void;
onPointerDown(evt: React.PointerEvent): void;
onPointerUp(evt: React.PointerEvent): void;
resizeColumns(evt: React.PointerEvent, forLeft?: boolean): void;
buildColumnLayout(): string;
emitNewBlock(event: React.DragEvent): void;
handlePopUp: () => void;
handleClosingPopUp: () => void;
createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void;
fixPopUpStyles: (document: Document) => void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/popup" {
export class Popup {
static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
private static _CopyStyles;
}
}
declare module "babylonjs-gui-editor/guiEditor" {
import { Observable } from "babylonjs/Misc/observable";
/**
* Interface used to specify creation options for the gui editor
*/
export interface IGUIEditorOptions {
hostElement?: HTMLElement;
customSave?: {
label: string;
action: (data: string) => Promise;
};
customLoadObservable?: Observable;
}
/**
* Class used to create a gui editor
*/
export class GUIEditor {
private static _CurrentState;
/**
* Show the gui editor
* @param options defines the options to use to configure the gui editor
*/
static Show(options: IGUIEditorOptions): void;
}
}
declare module "babylonjs-gui-editor/index" {
export * from "babylonjs-gui-editor/guiEditor";
}
declare module "babylonjs-gui-editor/legacy/legacy" {
export * from "babylonjs-gui-editor/index";
}
declare module "babylonjs-gui-editor/sharedComponents/propertyChangedEvent" {
export class PropertyChangedEvent {
object: any;
property: string;
value: any;
initialValue: any;
}
}
declare module "babylonjs-gui-editor/sharedComponents/floatLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedComponents/propertyChangedEvent";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface IFloatLineComponentProps {
label: string;
target: any;
propertyName: string;
onChange?: (newValue: number) => void;
isInteger?: boolean;
onPropertyChangedObservable?: Observable;
additionalClass?: string;
step?: string;
digits?: number;
globalState: GlobalState;
min?: number;
max?: number;
smallUI?: boolean;
onEnter?: (newValue: number) => void;
}
export class FloatLineComponent extends React.Component {
private _localChange;
private _store;
private _regExp;
private _digits;
constructor(props: IFloatLineComponentProps);
shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
updateValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedComponents/lineWithFileButtonComponent" {
import * as React from "react";
interface ILineWithFileButtonComponentProps {
title: string;
closed?: boolean;
label: string;
iconImage: any;
onIconClick: (file: File) => void;
accept: string;
uploadName?: string;
}
export class LineWithFileButtonComponent extends React.Component {
private uploadRef;
constructor(props: ILineWithFileButtonComponentProps);
onChange(evt: any): void;
switchExpandedState(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedComponents/numericInputComponent" {
import * as React from "react";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface INumericInputComponentProps {
label: string;
value: number;
step?: number;
onChange: (value: number) => void;
globalState: GlobalState;
}
export class NumericInputComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: INumericInputComponentProps);
shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
value: string;
}): boolean;
updateValue(evt: any): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedComponents/sliderLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedComponents/propertyChangedEvent";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface ISliderLineComponentProps {
label: string;
target?: any;
propertyName?: string;
minimum: number;
maximum: number;
step: number;
directValue?: number;
useEuler?: boolean;
onChange?: (value: number) => void;
onInput?: (value: number) => void;
onPropertyChangedObservable?: Observable;
decimalCount?: number;
globalState: GlobalState;
}
export class SliderLineComponent extends React.Component {
private _localChange;
constructor(props: ISliderLineComponentProps);
shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
value: number;
}): boolean;
onChange(newValueString: any): void;
onInput(newValueString: any): void;
prepareDataToRead(value: number): number;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedComponents/textInputLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedComponents/propertyChangedEvent";
import { GlobalState } from "babylonjs-gui-editor/globalState";
interface ITextInputLineComponentProps {
label: string;
globalState: GlobalState;
target?: any;
propertyName?: string;
value?: string;
multilines?: boolean;
onChange?: (value: string) => void;
validator?: (value: string) => boolean;
onPropertyChangedObservable?: Observable;
}
export class TextInputLineComponent extends React.Component {
private _localChange;
constructor(props: ITextInputLineComponentProps);
shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: string, previousValue: string): void;
updateValue(value: string, raisePropertyChanged: boolean): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/booleanLineComponent" {
import * as React from "react";
export interface IBooleanLineComponentProps {
label: string;
value: boolean;
}
export class BooleanLineComponent extends React.Component {
constructor(props: IBooleanLineComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/color4LineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { Color4 } from "babylonjs/Maths/math.color";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
export interface IColor4LineComponentProps {
label: string;
target: any;
propertyName: string;
onPropertyChangedObservable?: Observable;
onChange?: () => void;
isLinear?: boolean;
}
export class Color4LineComponent extends React.Component {
private _localChange;
constructor(props: IColor4LineComponentProps);
shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
color: Color4;
}): boolean;
setPropertyValue(newColor: Color4): void;
onChange(newValue: string): void;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: Color4): void;
updateStateR(value: number): void;
updateStateG(value: number): void;
updateStateB(value: number): void;
updateStateA(value: number): void;
copyToClipboard(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/fileMultipleButtonLineComponent" {
import * as React from "react";
interface IFileMultipleButtonLineComponentProps {
label: string;
onClick: (event: any) => void;
accept: string;
}
export class FileMultipleButtonLineComponent extends React.Component {
private static _IDGenerator;
private _id;
private uploadInputRef;
constructor(props: IFileMultipleButtonLineComponentProps);
onChange(evt: any): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/hexLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
interface IHexLineComponentProps {
label: string;
target: any;
propertyName: string;
lockObject?: LockObject;
onChange?: (newValue: number) => void;
isInteger?: boolean;
replaySourceReplacement?: string;
onPropertyChangedObservable?: Observable;
additionalClass?: string;
step?: string;
digits?: number;
useEuler?: boolean;
min?: number;
}
export class HexLineComponent extends React.Component {
private _localChange;
private _store;
private _propertyChange;
constructor(props: IHexLineComponentProps);
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
convertToHexString(valueString: string): string;
updateValue(valueString: string, raisePropertyChanged: boolean): void;
lock(): void;
unlock(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/iconButtonLineComponent" {
import * as React from 'react';
export interface IIconButtonLineComponentProps {
icon: string;
onClick: () => void;
tooltip: string;
active?: boolean;
}
export class IconButtonLineComponent extends React.Component {
constructor(props: IIconButtonLineComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/indentedTextLineComponent" {
import * as React from "react";
interface IIndentedTextLineComponentProps {
value?: string;
color?: string;
underline?: boolean;
onLink?: () => void;
url?: string;
additionalClass?: string;
}
export class IndentedTextLineComponent extends React.Component {
constructor(props: IIndentedTextLineComponentProps);
onLink(): void;
renderContent(): JSX.Element;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/linkButtonComponent" {
import * as React from "react";
interface ILinkButtonComponentProps {
label: string;
buttonLabel: string;
url?: string;
onClick: () => void;
onIconClick?: () => void;
}
export class LinkButtonComponent extends React.Component {
constructor(props: ILinkButtonComponentProps);
onLink(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/messageLineComponent" {
import * as React from "react";
interface IMessageLineComponentProps {
text: string;
color?: string;
}
export class MessageLineComponent extends React.Component {
constructor(props: IMessageLineComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/radioLineComponent" {
import * as React from "react";
import { Observable } from "babylonjs/Misc/observable";
interface IRadioButtonLineComponentProps {
onSelectionChangedObservable: Observable;
label: string;
isSelected: () => boolean;
onSelect: () => void;
}
export class RadioButtonLineComponent extends React.Component {
private _onSelectionChangedObserver;
constructor(props: IRadioButtonLineComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
onChange(): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/valueLineComponent" {
import * as React from "react";
interface IValueLineComponentProps {
label: string;
value: number;
color?: string;
fractionDigits?: number;
units?: string;
}
export class ValueLineComponent extends React.Component {
constructor(props: IValueLineComponentProps);
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/vector2LineComponent" {
import * as React from "react";
import { Vector2 } from "babylonjs/Maths/math.vector";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
interface IVector2LineComponentProps {
label: string;
target: any;
propertyName: string;
step?: number;
onChange?: (newvalue: Vector2) => void;
onPropertyChangedObservable?: Observable;
}
export class Vector2LineComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: IVector2LineComponentProps);
shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
isExpanded: boolean;
value: Vector2;
}): boolean;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: Vector2): void;
updateStateX(value: number): void;
updateStateY(value: number): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/vector3LineComponent" {
import * as React from "react";
import { Vector3 } from "babylonjs/Maths/math.vector";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
interface IVector3LineComponentProps {
label: string;
target: any;
propertyName: string;
step?: number;
onChange?: (newvalue: Vector3) => void;
useEuler?: boolean;
onPropertyChangedObservable?: Observable;
noSlider?: boolean;
}
export class Vector3LineComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: IVector3LineComponentProps);
getCurrentValue(): any;
shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
isExpanded: boolean;
value: Vector3;
}): boolean;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: Vector3): void;
updateVector3(): void;
updateStateX(value: number): void;
updateStateY(value: number): void;
updateStateZ(value: number): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor/sharedUiComponents/lines/vector4LineComponent" {
import * as React from "react";
import { Vector4 } from "babylonjs/Maths/math.vector";
import { Observable } from "babylonjs/Misc/observable";
import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent";
interface IVector4LineComponentProps {
label: string;
target: any;
propertyName: string;
step?: number;
onChange?: (newvalue: Vector4) => void;
useEuler?: boolean;
onPropertyChangedObservable?: Observable;
}
export class Vector4LineComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: IVector4LineComponentProps);
getCurrentValue(): any;
shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
isExpanded: boolean;
value: Vector4;
}): boolean;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: Vector4): void;
updateVector4(): void;
updateStateX(value: number): void;
updateStateY(value: number): void;
updateStateZ(value: number): void;
updateStateW(value: number): void;
render(): JSX.Element;
}
}
declare module "babylonjs-gui-editor" {
export * from "babylonjs-gui-editor/legacy/legacy";
}
///
declare module GUIEDITOR {
interface ILogComponentProps {
globalState: GlobalState;
}
export class LogEntry {
message: string;
isError: boolean;
constructor(message: string, isError: boolean);
}
export class LogComponent extends React.Component {
constructor(props: ILogComponentProps);
componentDidMount(): void;
componentDidUpdate(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IWorkbenchComponentProps {
globalState: GlobalState;
}
export type FramePortData = {};
export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
export class WorkbenchComponent extends React.Component {
private readonly MinZoom;
private readonly MaxZoom;
private _hostCanvas;
private _gridCanvas;
private _selectionContainer;
private _frameContainer;
private _svgCanvas;
private _rootContainer;
private _guiNodes;
private _mouseStartPointX;
private _mouseStartPointY;
private _selectionStartX;
private _selectionStartY;
private _x;
private _y;
private _zoom;
private _selectedGuiNodes;
private _gridSize;
private _selectionBox;
private _frameCandidate;
private _altKeyIsPressed;
private _ctrlKeyIsPressed;
private _oldY;
_frameIsMoving: boolean;
_isLoading: boolean;
isOverGUINode: boolean;
get gridSize(): number;
set gridSize(value: number);
get globalState(): GlobalState;
get nodes(): GUINode[];
get zoom(): number;
set zoom(value: number);
get x(): number;
set x(value: number);
get y(): number;
set y(value: number);
get selectedGuiNodes(): GUINode[];
get canvasContainer(): HTMLDivElement;
get hostCanvas(): HTMLDivElement;
get svgCanvas(): HTMLElement;
get selectionContainer(): HTMLDivElement;
get frameContainer(): HTMLDivElement;
constructor(props: IWorkbenchComponentProps);
getGridPosition(position: number, useCeil?: boolean): number;
getGridPositionCeil(position: number): number;
loadFromJson(serializationObject: any): void;
loadFromSnippet(snippedID: string): Promise;
loadFromGuiTexture(): void;
updateTransform(): void;
onKeyUp(): void;
findNodeFromGuiElement(guiControl: Control): GUINode;
reset(): void;
appendBlock(guiElement: Control): GUINode;
distributeGraph(): void;
componentDidMount(): void;
onMove(evt: React.PointerEvent): void;
onDown(evt: React.PointerEvent): void;
isUp: boolean;
onUp(evt: React.PointerEvent): void;
onWheel(evt: React.WheelEvent): void;
zoomToFit(): void;
createGUICanvas(): void;
updateGUIs(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export class GUINode {
guiControl: Control;
private _x;
private _y;
private _gridAlignedX;
private _gridAlignedY;
private _globalState;
private _onSelectionChangedObserver;
private _onSelectionBoxMovedObserver;
private _onUpdateRequiredObserver;
private _ownerCanvas;
private _isSelected;
private _isVisible;
private _enclosingFrameId;
children: GUINode[];
get isVisible(): boolean;
set isVisible(value: boolean);
get gridAlignedX(): number;
get gridAlignedY(): number;
get x(): number;
set x(value: number);
get y(): number;
set y(value: number);
get width(): number;
get height(): number;
get id(): number;
get name(): string | undefined;
get isSelected(): boolean;
get enclosingFrameId(): number;
set enclosingFrameId(value: number);
set isSelected(value: boolean);
constructor(globalState: GlobalState, guiControl: Control);
cleanAccumulation(useCeil?: boolean): void;
clicked: boolean;
_onMove(evt: BABYLON.Vector2, startPos: BABYLON.Vector2, ignorClick?: boolean): boolean;
updateVisual(): void;
private _isContainer;
addGui(childNode: GUINode): void;
dispose(): void;
}
}
declare module GUIEDITOR {
export class PropertyChangedEvent {
object: any;
property: string;
value: any;
initialValue: any;
allowNullValue?: boolean;
}
}
declare module GUIEDITOR {
export class GlobalState {
guiTexture: AdvancedDynamicTexture;
hostElement: HTMLElement;
hostDocument: HTMLDocument;
hostWindow: Window;
onSelectionChangedObservable: BABYLON.Observable>;
onRebuildRequiredObservable: BABYLON.Observable;
onBuiltObservable: BABYLON.Observable;
onResetRequiredObservable: BABYLON.Observable;
onUpdateRequiredObservable: BABYLON.Observable;
onReOrganizedRequiredObservable: BABYLON.Observable;
onLogRequiredObservable: BABYLON.Observable;
onErrorMessageDialogRequiredObservable: BABYLON.Observable;
onIsLoadingChanged: BABYLON.Observable;
onSelectionBoxMoved: BABYLON.Observable;
onGuiNodeRemovalObservable: BABYLON.Observable;
backgroundColor: BABYLON.Color4;
blockKeyboardEvents: boolean;
controlCamera: boolean;
workbench: WorkbenchComponent;
onPropertyChangedObservable: BABYLON.Observable;
storeEditorData: (serializationObject: any) => void;
customSave?: {
label: string;
action: (data: string) => Promise;
};
constructor();
}
}
declare module GUIEDITOR {
interface ILineContainerComponentProps {
title: string;
children: any[] | any;
closed?: boolean;
}
export class LineContainerComponent extends React.Component {
constructor(props: ILineContainerComponentProps);
switchExpandedState(): void;
renderHeader(): JSX.Element;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IButtonLineComponentProps {
data: string;
tooltip: string;
}
export class DraggableLineComponent extends React.Component {
constructor(props: IButtonLineComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IGuiListComponentProps {
globalState: GlobalState;
}
export class GuiListComponent extends React.Component {
private _onResetRequiredObserver;
private static _Tooltips;
constructor(props: IGuiListComponentProps);
componentWillUnmount(): void;
filterContent(filter: string): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IButtonLineComponentProps {
label: string;
onClick: () => void;
}
export class ButtonLineComponent extends React.Component {
constructor(props: IButtonLineComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IFileButtonLineComponentProps {
label: string;
onClick: (file: File) => void;
accept: string;
}
export class FileButtonLineComponent extends React.Component {
private static _IDGenerator;
private _id;
private uploadInputRef;
constructor(props: IFileButtonLineComponentProps);
onChange(evt: any): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface ICheckBoxLineComponentProps {
label: string;
target?: any;
propertyName?: string;
isSelected?: () => boolean;
onSelect?: (value: boolean) => void;
onValueChanged?: () => void;
onPropertyChangedObservable?: BABYLON.Observable;
disabled?: boolean;
}
export class CheckBoxLineComponent extends React.Component {
private static _UniqueIdSeed;
private _uniqueId;
private _localChange;
constructor(props: ICheckBoxLineComponentProps);
shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
isSelected: boolean;
isDisabled: boolean;
}): boolean;
onChange(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ITextLineComponentProps {
label?: string;
value?: string;
color?: string;
underline?: boolean;
onLink?: () => void;
url?: string;
ignoreValue?: boolean;
additionalClass?: string;
}
export class TextLineComponent extends React.Component {
constructor(props: ITextLineComponentProps);
onLink(): void;
renderContent(): JSX.Element | null;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export class StringTools {
private static _SaveAs;
private static _Click;
/**
* Download a string into a file that will be saved locally by the browser
* @param content defines the string to download locally as a file
*/
static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
}
}
declare module GUIEDITOR {
/**
* Class used to provide lock mechanism
*/
export class LockObject {
/**
* Gets or set if the lock is engaged
*/
lock: boolean;
}
}
declare module GUIEDITOR {
interface IFloatLineComponentProps {
label: string;
target: any;
propertyName: string;
lockObject?: LockObject;
onChange?: (newValue: number) => void;
isInteger?: boolean;
onPropertyChangedObservable?: BABYLON.Observable;
additionalClass?: string;
step?: string;
digits?: number;
useEuler?: boolean;
min?: number;
max?: number;
smallUI?: boolean;
onEnter?: (newValue: number) => void;
}
export class FloatLineComponent extends React.Component {
private _localChange;
private _store;
constructor(props: IFloatLineComponentProps);
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
updateValue(valueString: string): void;
lock(): void;
unlock(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ISliderLineComponentProps {
label: string;
target?: any;
propertyName?: string;
minimum: number;
maximum: number;
step: number;
directValue?: number;
useEuler?: boolean;
onChange?: (value: number) => void;
onInput?: (value: number) => void;
onPropertyChangedObservable?: BABYLON.Observable;
decimalCount?: number;
margin?: boolean;
}
export class SliderLineComponent extends React.Component {
private _localChange;
constructor(props: ISliderLineComponentProps);
shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
value: number;
}): boolean;
onChange(newValueString: any): void;
onInput(newValueString: any): void;
prepareDataToRead(value: number): number;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ITextInputLineComponentProps {
label: string;
lockObject: LockObject;
target?: any;
propertyName?: string;
value?: string;
onChange?: (value: string) => void;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class TextInputLineComponent extends React.Component {
private _localChange;
constructor(props: ITextInputLineComponentProps);
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: string, previousValue: string): void;
updateValue(value: string): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export const Null_Value: number;
export class ListLineOption {
label: string;
value: number;
selected?: boolean;
}
export interface IOptionsLineComponentProps {
label: string;
target: any;
propertyName: string;
options: ListLineOption[];
noDirectUpdate?: boolean;
onSelect?: (value: number) => void;
extractValue?: () => number;
onPropertyChangedObservable?: BABYLON.Observable;
allowNullValue?: boolean;
}
export class OptionsLineComponent extends React.Component {
private _localChange;
private remapValueIn;
private remapValueOut;
constructor(props: IOptionsLineComponentProps);
shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
value: number;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
updateValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ICommonControlPropertyGridComponentProps {
control: Control;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class CommonControlPropertyGridComponent extends React.Component {
constructor(props: ICommonControlPropertyGridComponentProps);
renderGridInformation(): JSX.Element | null;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ISliderPropertyGridComponentProps {
slider: Slider;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class SliderPropertyGridComponent extends React.Component {
constructor(props: ISliderPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ILinePropertyGridComponentProps {
line: Line;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class LinePropertyGridComponent extends React.Component {
constructor(props: ILinePropertyGridComponentProps);
onDashChange(value: string): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IRadioButtonPropertyGridComponentProps {
radioButton: RadioButton;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class RadioButtonPropertyGridComponent extends React.Component {
constructor(props: IRadioButtonPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ITextBlockPropertyGridComponentProps {
textBlock: TextBlock;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class TextBlockPropertyGridComponent extends React.Component {
constructor(props: ITextBlockPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IInputTextPropertyGridComponentProps {
inputText: InputText;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class InputTextPropertyGridComponent extends React.Component {
constructor(props: IInputTextPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface INumericInputComponentProps {
label: string;
value: number;
step?: number;
onChange: (value: number) => void;
precision?: number;
}
export class NumericInputComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: INumericInputComponentProps);
shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
value: string;
}): boolean;
updateValue(evt: any): void;
onBlur(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IColorComponentEntryProps {
value: number;
label: string;
max?: number;
min?: number;
onChange: (value: number) => void;
}
export class ColorComponentEntry extends React.Component {
constructor(props: IColorComponentEntryProps);
updateValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IHexColorProps {
value: string;
expectedLength: number;
onChange: (value: string) => void;
}
export class HexColor extends React.Component {
constructor(props: IHexColorProps);
shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
hex: string;
}): boolean;
updateHexValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
/**
* Interface used to specify creation options for color picker
*/
export interface IColorPickerProps {
color: BABYLON.Color3 | BABYLON.Color4;
debugMode?: boolean;
onColorChanged?: (color: BABYLON.Color3 | BABYLON.Color4) => void;
}
/**
* Interface used to specify creation options for color picker
*/
export interface IColorPickerState {
color: BABYLON.Color3;
alpha: number;
}
/**
* Class used to create a color picker
*/
export class ColorPicker extends React.Component {
private _saturationRef;
private _hueRef;
private _isSaturationPointerDown;
private _isHuePointerDown;
constructor(props: IColorPickerProps);
onSaturationPointerDown(evt: React.PointerEvent): void;
onSaturationPointerUp(evt: React.PointerEvent): void;
onSaturationPointerMove(evt: React.PointerEvent): void;
onHuePointerDown(evt: React.PointerEvent): void;
onHuePointerUp(evt: React.PointerEvent): void;
onHuePointerMove(evt: React.PointerEvent): void;
private _evaluateSaturation;
private _evaluateHue;
componentDidUpdate(): void;
raiseOnColorChanged(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IColorPickerComponentProps {
value: BABYLON.Color4 | BABYLON.Color3;
onColorChanged: (newOne: string) => void;
}
interface IColorPickerComponentState {
pickerEnabled: boolean;
color: BABYLON.Color3 | BABYLON.Color4;
hex: string;
}
export class ColorPickerLineComponent extends React.Component {
private _floatRef;
private _floatHostRef;
constructor(props: IColorPickerComponentProps);
syncPositions(): void;
shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
componentDidUpdate(): void;
componentDidMount(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IColor3LineComponentProps {
label: string;
target: any;
propertyName: string;
onPropertyChangedObservable?: BABYLON.Observable;
isLinear?: boolean;
}
export class Color3LineComponent extends React.Component {
private _localChange;
constructor(props: IColor3LineComponentProps);
shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
color: BABYLON.Color3;
}): boolean;
setPropertyValue(newColor: BABYLON.Color3): void;
onChange(newValue: string): void;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: BABYLON.Color3): void;
updateStateR(value: number): void;
updateStateG(value: number): void;
updateStateB(value: number): void;
copyToClipboard(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IColorPickerPropertyGridComponentProps {
colorPicker: ColorPicker;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class ColorPickerPropertyGridComponent extends React.Component {
constructor(props: IColorPickerPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IImagePropertyGridComponentProps {
image: Image;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class ImagePropertyGridComponent extends React.Component {
constructor(props: IImagePropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IImageBasedSliderPropertyGridComponentProps {
imageBasedSlider: ImageBasedSlider;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class ImageBasedSliderPropertyGridComponent extends React.Component {
constructor(props: IImageBasedSliderPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IRectanglePropertyGridComponentProps {
rectangle: Rectangle;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class RectanglePropertyGridComponent extends React.Component {
constructor(props: IRectanglePropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IStackPanelPropertyGridComponentProps {
stackPanel: StackPanel;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class StackPanelPropertyGridComponent extends React.Component {
constructor(props: IStackPanelPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IGridPropertyGridComponentProps {
grid: Grid;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class GridPropertyGridComponent extends React.Component {
constructor(props: IGridPropertyGridComponentProps);
renderRows(): JSX.Element[];
renderColumns(): JSX.Element[];
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IScrollViewerPropertyGridComponentProps {
scrollViewer: ScrollViewer;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class ScrollViewerPropertyGridComponent extends React.Component {
constructor(props: IScrollViewerPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IEllipsePropertyGridComponentProps {
ellipse: Ellipse;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class EllipsePropertyGridComponent extends React.Component {
constructor(props: IEllipsePropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ICheckboxPropertyGridComponentProps {
checkbox: Checkbox;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class CheckboxPropertyGridComponent extends React.Component {
constructor(props: ICheckboxPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IControlPropertyGridComponentProps {
control: Control;
lockObject: LockObject;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class ControlPropertyGridComponent extends React.Component {
constructor(props: IControlPropertyGridComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IPropertyTabComponentProps {
globalState: GlobalState;
}
interface IPropertyTabComponentState {
currentNode: BABYLON.Nullable;
}
export class PropertyTabComponent extends React.Component {
private _onBuiltObserver;
private _timerIntervalId;
private _lockObject;
constructor(props: IPropertyTabComponentProps);
timerRefresh(): void;
componentDidMount(): void;
componentWillUnmount(): void;
load(file: File): void;
save(): void;
saveToSnippetServer(): void;
loadFromSnippet(): void;
renderProperties(): JSX.Element | null;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IPortalProps {
globalState: GlobalState;
}
export class Portal extends React.Component {
render(): React.ReactPortal;
}
}
declare module GUIEDITOR {
export class GUINodeTools {
static CreateControlFromString(data: string): Slider | Line | TextBlock | ColorPicker | Rectangle | Ellipse | Checkbox;
}
}
declare module GUIEDITOR {
export interface INodeLocationInfo {
blockId: number;
x: number;
y: number;
}
export interface IFrameData {
x: number;
y: number;
width: number;
height: number;
color: number[];
name: string;
isCollapsed: boolean;
blocks: number[];
comments: string;
}
export interface IEditorData {
locations: INodeLocationInfo[];
x: number;
y: number;
zoom: number;
frames?: IFrameData[];
map?: {
[key: number]: number;
};
}
}
declare module GUIEDITOR {
interface IMessageDialogComponentProps {
globalState: GlobalState;
}
export class MessageDialogComponent extends React.Component {
constructor(props: IMessageDialogComponentProps);
render(): JSX.Element | null;
}
}
declare module GUIEDITOR {
interface IGraphEditorProps {
globalState: GlobalState;
}
interface IGraphEditorState {
showPreviewPopUp: boolean;
}
export class WorkbenchEditor extends React.Component {
private _workbenchCanvas;
private _startX;
private _moveInProgress;
private _leftWidth;
private _rightWidth;
private _blocks;
private _onWidgetKeyUpPointer;
private _popUpWindow;
/**
* Creates a node and recursivly creates its parent nodes from it's input
* @param block
*/
createNodeFromObject(block: Control, recursion?: boolean): BABYLON.Nullable;
componentDidMount(): void;
componentWillUnmount(): void;
constructor(props: IGraphEditorProps);
pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[];
zoomToFit(): void;
showWaitScreen(): void;
hideWaitScreen(): void;
reOrganize(editorData?: BABYLON.Nullable, isImportingAFrame?: boolean): void;
onPointerDown(evt: React.PointerEvent): void;
onPointerUp(evt: React.PointerEvent): void;
resizeColumns(evt: React.PointerEvent, forLeft?: boolean): void;
buildColumnLayout(): string;
emitNewBlock(event: React.DragEvent): void;
handlePopUp: () => void;
handleClosingPopUp: () => void;
createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void;
fixPopUpStyles: (document: Document) => void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export class Popup {
static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
private static _CopyStyles;
}
}
declare module GUIEDITOR {
/**
* Interface used to specify creation options for the gui editor
*/
export interface IGUIEditorOptions {
hostElement?: HTMLElement;
customSave?: {
label: string;
action: (data: string) => Promise;
};
customLoadObservable?: BABYLON.Observable;
}
/**
* Class used to create a gui editor
*/
export class GUIEditor {
private static _CurrentState;
/**
* Show the gui editor
* @param options defines the options to use to configure the gui editor
*/
static Show(options: IGUIEditorOptions): void;
}
}
declare module GUIEDITOR {
export class PropertyChangedEvent {
object: any;
property: string;
value: any;
initialValue: any;
}
}
declare module GUIEDITOR {
interface IFloatLineComponentProps {
label: string;
target: any;
propertyName: string;
onChange?: (newValue: number) => void;
isInteger?: boolean;
onPropertyChangedObservable?: BABYLON.Observable;
additionalClass?: string;
step?: string;
digits?: number;
globalState: GlobalState;
min?: number;
max?: number;
smallUI?: boolean;
onEnter?: (newValue: number) => void;
}
export class FloatLineComponent extends React.Component {
private _localChange;
private _store;
private _regExp;
private _digits;
constructor(props: IFloatLineComponentProps);
shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
updateValue(valueString: string): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ILineWithFileButtonComponentProps {
title: string;
closed?: boolean;
label: string;
iconImage: any;
onIconClick: (file: File) => void;
accept: string;
uploadName?: string;
}
export class LineWithFileButtonComponent extends React.Component {
private uploadRef;
constructor(props: ILineWithFileButtonComponentProps);
onChange(evt: any): void;
switchExpandedState(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface INumericInputComponentProps {
label: string;
value: number;
step?: number;
onChange: (value: number) => void;
globalState: GlobalState;
}
export class NumericInputComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: INumericInputComponentProps);
shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
value: string;
}): boolean;
updateValue(evt: any): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ISliderLineComponentProps {
label: string;
target?: any;
propertyName?: string;
minimum: number;
maximum: number;
step: number;
directValue?: number;
useEuler?: boolean;
onChange?: (value: number) => void;
onInput?: (value: number) => void;
onPropertyChangedObservable?: BABYLON.Observable;
decimalCount?: number;
globalState: GlobalState;
}
export class SliderLineComponent extends React.Component {
private _localChange;
constructor(props: ISliderLineComponentProps);
shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
value: number;
}): boolean;
onChange(newValueString: any): void;
onInput(newValueString: any): void;
prepareDataToRead(value: number): number;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ITextInputLineComponentProps {
label: string;
globalState: GlobalState;
target?: any;
propertyName?: string;
value?: string;
multilines?: boolean;
onChange?: (value: string) => void;
validator?: (value: string) => boolean;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class TextInputLineComponent extends React.Component {
private _localChange;
constructor(props: ITextInputLineComponentProps);
shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: string, previousValue: string): void;
updateValue(value: string, raisePropertyChanged: boolean): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IBooleanLineComponentProps {
label: string;
value: boolean;
}
export class BooleanLineComponent extends React.Component {
constructor(props: IBooleanLineComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IColor4LineComponentProps {
label: string;
target: any;
propertyName: string;
onPropertyChangedObservable?: BABYLON.Observable;
onChange?: () => void;
isLinear?: boolean;
}
export class Color4LineComponent extends React.Component {
private _localChange;
constructor(props: IColor4LineComponentProps);
shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
color: BABYLON.Color4;
}): boolean;
setPropertyValue(newColor: BABYLON.Color4): void;
onChange(newValue: string): void;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: BABYLON.Color4): void;
updateStateR(value: number): void;
updateStateG(value: number): void;
updateStateB(value: number): void;
updateStateA(value: number): void;
copyToClipboard(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IFileMultipleButtonLineComponentProps {
label: string;
onClick: (event: any) => void;
accept: string;
}
export class FileMultipleButtonLineComponent extends React.Component {
private static _IDGenerator;
private _id;
private uploadInputRef;
constructor(props: IFileMultipleButtonLineComponentProps);
onChange(evt: any): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IHexLineComponentProps {
label: string;
target: any;
propertyName: string;
lockObject?: LockObject;
onChange?: (newValue: number) => void;
isInteger?: boolean;
replaySourceReplacement?: string;
onPropertyChangedObservable?: BABYLON.Observable;
additionalClass?: string;
step?: string;
digits?: number;
useEuler?: boolean;
min?: number;
}
export class HexLineComponent extends React.Component {
private _localChange;
private _store;
private _propertyChange;
constructor(props: IHexLineComponentProps);
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
value: string;
}): boolean;
raiseOnPropertyChanged(newValue: number, previousValue: number): void;
convertToHexString(valueString: string): string;
updateValue(valueString: string, raisePropertyChanged: boolean): void;
lock(): void;
unlock(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
export interface IIconButtonLineComponentProps {
icon: string;
onClick: () => void;
tooltip: string;
active?: boolean;
}
export class IconButtonLineComponent extends React.Component {
constructor(props: IIconButtonLineComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IIndentedTextLineComponentProps {
value?: string;
color?: string;
underline?: boolean;
onLink?: () => void;
url?: string;
additionalClass?: string;
}
export class IndentedTextLineComponent extends React.Component {
constructor(props: IIndentedTextLineComponentProps);
onLink(): void;
renderContent(): JSX.Element;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface ILinkButtonComponentProps {
label: string;
buttonLabel: string;
url?: string;
onClick: () => void;
onIconClick?: () => void;
}
export class LinkButtonComponent extends React.Component {
constructor(props: ILinkButtonComponentProps);
onLink(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IMessageLineComponentProps {
text: string;
color?: string;
}
export class MessageLineComponent extends React.Component {
constructor(props: IMessageLineComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IRadioButtonLineComponentProps {
onSelectionChangedObservable: BABYLON.Observable;
label: string;
isSelected: () => boolean;
onSelect: () => void;
}
export class RadioButtonLineComponent extends React.Component {
private _onSelectionChangedObserver;
constructor(props: IRadioButtonLineComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
onChange(): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IValueLineComponentProps {
label: string;
value: number;
color?: string;
fractionDigits?: number;
units?: string;
}
export class ValueLineComponent extends React.Component {
constructor(props: IValueLineComponentProps);
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IVector2LineComponentProps {
label: string;
target: any;
propertyName: string;
step?: number;
onChange?: (newvalue: BABYLON.Vector2) => void;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class Vector2LineComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: IVector2LineComponentProps);
shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
isExpanded: boolean;
value: BABYLON.Vector2;
}): boolean;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void;
updateStateX(value: number): void;
updateStateY(value: number): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IVector3LineComponentProps {
label: string;
target: any;
propertyName: string;
step?: number;
onChange?: (newvalue: BABYLON.Vector3) => void;
useEuler?: boolean;
onPropertyChangedObservable?: BABYLON.Observable;
noSlider?: boolean;
}
export class Vector3LineComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: IVector3LineComponentProps);
getCurrentValue(): any;
shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
isExpanded: boolean;
value: BABYLON.Vector3;
}): boolean;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void;
updateVector3(): void;
updateStateX(value: number): void;
updateStateY(value: number): void;
updateStateZ(value: number): void;
render(): JSX.Element;
}
}
declare module GUIEDITOR {
interface IVector4LineComponentProps {
label: string;
target: any;
propertyName: string;
step?: number;
onChange?: (newvalue: BABYLON.Vector4) => void;
useEuler?: boolean;
onPropertyChangedObservable?: BABYLON.Observable;
}
export class Vector4LineComponent extends React.Component {
static defaultProps: {
step: number;
};
private _localChange;
constructor(props: IVector4LineComponentProps);
getCurrentValue(): any;
shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
isExpanded: boolean;
value: BABYLON.Vector4;
}): boolean;
switchExpandState(): void;
raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void;
updateVector4(): void;
updateStateX(value: number): void;
updateStateY(value: number): void;
updateStateZ(value: number): void;
updateStateW(value: number): void;
render(): JSX.Element;
}
}