babylon.guiEditor.d.ts 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302
  1. /// <reference types="react" />
  2. declare module GUIEDITOR {
  3. interface ILogComponentProps {
  4. globalState: GlobalState;
  5. }
  6. export class LogEntry {
  7. message: string;
  8. isError: boolean;
  9. constructor(message: string, isError: boolean);
  10. }
  11. export class LogComponent extends React.Component<ILogComponentProps, {
  12. logs: LogEntry[];
  13. }> {
  14. constructor(props: ILogComponentProps);
  15. componentDidMount(): void;
  16. componentDidUpdate(): void;
  17. render(): JSX.Element;
  18. }
  19. }
  20. declare module GUIEDITOR {
  21. export interface IWorkbenchComponentProps {
  22. globalState: GlobalState;
  23. }
  24. export type FramePortData = {};
  25. export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
  26. export class WorkbenchComponent extends React.Component<IWorkbenchComponentProps> {
  27. private readonly MinZoom;
  28. private readonly MaxZoom;
  29. private _hostCanvas;
  30. private _gridCanvas;
  31. private _selectionContainer;
  32. private _frameContainer;
  33. private _svgCanvas;
  34. private _rootContainer;
  35. private _guiNodes;
  36. private _mouseStartPointX;
  37. private _mouseStartPointY;
  38. private _selectionStartX;
  39. private _selectionStartY;
  40. private _x;
  41. private _y;
  42. private _zoom;
  43. private _selectedGuiNodes;
  44. private _gridSize;
  45. private _selectionBox;
  46. private _frameCandidate;
  47. private _altKeyIsPressed;
  48. private _ctrlKeyIsPressed;
  49. private _oldY;
  50. _frameIsMoving: boolean;
  51. _isLoading: boolean;
  52. isOverGUINode: boolean;
  53. get gridSize(): number;
  54. set gridSize(value: number);
  55. get globalState(): GlobalState;
  56. get nodes(): GUINode[];
  57. get zoom(): number;
  58. set zoom(value: number);
  59. get x(): number;
  60. set x(value: number);
  61. get y(): number;
  62. set y(value: number);
  63. get selectedGuiNodes(): GUINode[];
  64. get canvasContainer(): HTMLDivElement;
  65. get hostCanvas(): HTMLDivElement;
  66. get svgCanvas(): HTMLElement;
  67. get selectionContainer(): HTMLDivElement;
  68. get frameContainer(): HTMLDivElement;
  69. constructor(props: IWorkbenchComponentProps);
  70. getGridPosition(position: number, useCeil?: boolean): number;
  71. getGridPositionCeil(position: number): number;
  72. clearGuiTexture(): void;
  73. loadFromJson(serializationObject: any): void;
  74. loadFromSnippet(snippedID: string): Promise<void>;
  75. loadFromGuiTexture(): void;
  76. updateTransform(): void;
  77. onKeyUp(): void;
  78. findNodeFromGuiElement(guiControl: Control): GUINode;
  79. reset(): void;
  80. appendBlock(guiElement: Control): GUINode;
  81. distributeGraph(): void;
  82. componentDidMount(): void;
  83. onMove(evt: React.PointerEvent): void;
  84. onDown(evt: React.PointerEvent<HTMLElement>): void;
  85. isUp: boolean;
  86. onUp(evt: React.PointerEvent): void;
  87. onWheel(evt: React.WheelEvent): void;
  88. zoomToFit(): void;
  89. createGUICanvas(): void;
  90. updateGUIs(): void;
  91. render(): JSX.Element;
  92. }
  93. }
  94. declare module GUIEDITOR {
  95. export class GUINode {
  96. guiControl: Control;
  97. private _x;
  98. private _y;
  99. private _gridAlignedX;
  100. private _gridAlignedY;
  101. private _globalState;
  102. private _onSelectionChangedObserver;
  103. private _onSelectionBoxMovedObserver;
  104. private _onUpdateRequiredObserver;
  105. private _ownerCanvas;
  106. private _isSelected;
  107. private _isVisible;
  108. private _enclosingFrameId;
  109. children: GUINode[];
  110. get isVisible(): boolean;
  111. set isVisible(value: boolean);
  112. get gridAlignedX(): number;
  113. get gridAlignedY(): number;
  114. get x(): number;
  115. set x(value: number);
  116. get y(): number;
  117. set y(value: number);
  118. get width(): number;
  119. get height(): number;
  120. get id(): number;
  121. get name(): string | undefined;
  122. get isSelected(): boolean;
  123. get enclosingFrameId(): number;
  124. set enclosingFrameId(value: number);
  125. set isSelected(value: boolean);
  126. constructor(globalState: GlobalState, guiControl: Control);
  127. cleanAccumulation(useCeil?: boolean): void;
  128. clicked: boolean;
  129. _onMove(evt: BABYLON.Vector2, startPos: BABYLON.Vector2, ignorClick?: boolean): boolean;
  130. updateVisual(): void;
  131. private _isContainer;
  132. addGui(childNode: GUINode): void;
  133. dispose(): void;
  134. }
  135. }
  136. declare module GUIEDITOR {
  137. export class PropertyChangedEvent {
  138. object: any;
  139. property: string;
  140. value: any;
  141. initialValue: any;
  142. allowNullValue?: boolean;
  143. }
  144. }
  145. declare module GUIEDITOR {
  146. export class GlobalState {
  147. guiTexture: AdvancedDynamicTexture;
  148. hostElement: HTMLElement;
  149. hostDocument: HTMLDocument;
  150. hostWindow: Window;
  151. onSelectionChangedObservable: BABYLON.Observable<BABYLON.Nullable<GUINode>>;
  152. onRebuildRequiredObservable: BABYLON.Observable<void>;
  153. onBuiltObservable: BABYLON.Observable<void>;
  154. onResetRequiredObservable: BABYLON.Observable<void>;
  155. onUpdateRequiredObservable: BABYLON.Observable<void>;
  156. onReOrganizedRequiredObservable: BABYLON.Observable<void>;
  157. onLogRequiredObservable: BABYLON.Observable<LogEntry>;
  158. onErrorMessageDialogRequiredObservable: BABYLON.Observable<string>;
  159. onIsLoadingChanged: BABYLON.Observable<boolean>;
  160. onSelectionBoxMoved: BABYLON.Observable<DOMRect | ClientRect>;
  161. onGuiNodeRemovalObservable: BABYLON.Observable<GUINode>;
  162. backgroundColor: BABYLON.Color4;
  163. blockKeyboardEvents: boolean;
  164. controlCamera: boolean;
  165. workbench: WorkbenchComponent;
  166. onPropertyChangedObservable: BABYLON.Observable<PropertyChangedEvent>;
  167. storeEditorData: (serializationObject: any) => void;
  168. customSave?: {
  169. label: string;
  170. action: (data: string) => Promise<void>;
  171. };
  172. constructor();
  173. }
  174. }
  175. declare module GUIEDITOR {
  176. interface ILineContainerComponentProps {
  177. title: string;
  178. children: any[] | any;
  179. closed?: boolean;
  180. }
  181. export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
  182. isExpanded: boolean;
  183. }> {
  184. constructor(props: ILineContainerComponentProps);
  185. switchExpandedState(): void;
  186. renderHeader(): JSX.Element;
  187. render(): JSX.Element;
  188. }
  189. }
  190. declare module GUIEDITOR {
  191. export interface IButtonLineComponentProps {
  192. data: string;
  193. tooltip: string;
  194. }
  195. export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
  196. constructor(props: IButtonLineComponentProps);
  197. render(): JSX.Element;
  198. }
  199. }
  200. declare module GUIEDITOR {
  201. interface IGuiListComponentProps {
  202. globalState: GlobalState;
  203. }
  204. export class GuiListComponent extends React.Component<IGuiListComponentProps, {
  205. filter: string;
  206. }> {
  207. private _onResetRequiredObserver;
  208. private static _Tooltips;
  209. constructor(props: IGuiListComponentProps);
  210. componentWillUnmount(): void;
  211. filterContent(filter: string): void;
  212. render(): JSX.Element;
  213. }
  214. }
  215. declare module GUIEDITOR {
  216. export interface IButtonLineComponentProps {
  217. label: string;
  218. onClick: () => void;
  219. }
  220. export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
  221. constructor(props: IButtonLineComponentProps);
  222. render(): JSX.Element;
  223. }
  224. }
  225. declare module GUIEDITOR {
  226. interface IFileButtonLineComponentProps {
  227. label: string;
  228. onClick: (file: File) => void;
  229. accept: string;
  230. }
  231. export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
  232. private static _IDGenerator;
  233. private _id;
  234. private uploadInputRef;
  235. constructor(props: IFileButtonLineComponentProps);
  236. onChange(evt: any): void;
  237. render(): JSX.Element;
  238. }
  239. }
  240. declare module GUIEDITOR {
  241. export interface ICheckBoxLineComponentProps {
  242. label: string;
  243. target?: any;
  244. propertyName?: string;
  245. isSelected?: () => boolean;
  246. onSelect?: (value: boolean) => void;
  247. onValueChanged?: () => void;
  248. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  249. disabled?: boolean;
  250. }
  251. export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
  252. isSelected: boolean;
  253. isDisabled?: boolean;
  254. }> {
  255. private static _UniqueIdSeed;
  256. private _uniqueId;
  257. private _localChange;
  258. constructor(props: ICheckBoxLineComponentProps);
  259. shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
  260. isSelected: boolean;
  261. isDisabled: boolean;
  262. }): boolean;
  263. onChange(): void;
  264. render(): JSX.Element;
  265. }
  266. }
  267. declare module GUIEDITOR {
  268. interface ITextLineComponentProps {
  269. label?: string;
  270. value?: string;
  271. color?: string;
  272. underline?: boolean;
  273. onLink?: () => void;
  274. url?: string;
  275. ignoreValue?: boolean;
  276. additionalClass?: string;
  277. }
  278. export class TextLineComponent extends React.Component<ITextLineComponentProps> {
  279. constructor(props: ITextLineComponentProps);
  280. onLink(): void;
  281. renderContent(): JSX.Element | null;
  282. render(): JSX.Element;
  283. }
  284. }
  285. declare module GUIEDITOR {
  286. export class StringTools {
  287. private static _SaveAs;
  288. private static _Click;
  289. /**
  290. * Download a string into a file that will be saved locally by the browser
  291. * @param content defines the string to download locally as a file
  292. */
  293. static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
  294. }
  295. }
  296. declare module GUIEDITOR {
  297. /**
  298. * Class used to provide lock mechanism
  299. */
  300. export class LockObject {
  301. /**
  302. * Gets or set if the lock is engaged
  303. */
  304. lock: boolean;
  305. }
  306. }
  307. declare module GUIEDITOR {
  308. interface IFloatLineComponentProps {
  309. label: string;
  310. target: any;
  311. propertyName: string;
  312. lockObject?: LockObject;
  313. onChange?: (newValue: number) => void;
  314. isInteger?: boolean;
  315. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  316. additionalClass?: string;
  317. step?: string;
  318. digits?: number;
  319. useEuler?: boolean;
  320. min?: number;
  321. max?: number;
  322. smallUI?: boolean;
  323. onEnter?: (newValue: number) => void;
  324. }
  325. export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
  326. value: string;
  327. }> {
  328. private _localChange;
  329. private _store;
  330. constructor(props: IFloatLineComponentProps);
  331. componentWillUnmount(): void;
  332. shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
  333. value: string;
  334. }): boolean;
  335. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  336. updateValue(valueString: string): void;
  337. lock(): void;
  338. unlock(): void;
  339. render(): JSX.Element;
  340. }
  341. }
  342. declare module GUIEDITOR {
  343. interface ISliderLineComponentProps {
  344. label: string;
  345. target?: any;
  346. propertyName?: string;
  347. minimum: number;
  348. maximum: number;
  349. step: number;
  350. directValue?: number;
  351. useEuler?: boolean;
  352. onChange?: (value: number) => void;
  353. onInput?: (value: number) => void;
  354. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  355. decimalCount?: number;
  356. margin?: boolean;
  357. }
  358. export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
  359. value: number;
  360. }> {
  361. private _localChange;
  362. constructor(props: ISliderLineComponentProps);
  363. shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
  364. value: number;
  365. }): boolean;
  366. onChange(newValueString: any): void;
  367. onInput(newValueString: any): void;
  368. prepareDataToRead(value: number): number;
  369. render(): JSX.Element;
  370. }
  371. }
  372. declare module GUIEDITOR {
  373. interface ITextInputLineComponentProps {
  374. label: string;
  375. lockObject: LockObject;
  376. target?: any;
  377. propertyName?: string;
  378. value?: string;
  379. onChange?: (value: string) => void;
  380. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  381. }
  382. export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
  383. value: string;
  384. }> {
  385. private _localChange;
  386. constructor(props: ITextInputLineComponentProps);
  387. componentWillUnmount(): void;
  388. shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
  389. value: string;
  390. }): boolean;
  391. raiseOnPropertyChanged(newValue: string, previousValue: string): void;
  392. updateValue(value: string): void;
  393. render(): JSX.Element;
  394. }
  395. }
  396. declare module GUIEDITOR {
  397. export const Null_Value: number;
  398. export class ListLineOption {
  399. label: string;
  400. value: number;
  401. selected?: boolean;
  402. }
  403. export interface IOptionsLineComponentProps {
  404. label: string;
  405. target: any;
  406. propertyName: string;
  407. options: ListLineOption[];
  408. noDirectUpdate?: boolean;
  409. onSelect?: (value: number) => void;
  410. extractValue?: () => number;
  411. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  412. allowNullValue?: boolean;
  413. }
  414. export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
  415. value: number;
  416. }> {
  417. private _localChange;
  418. private remapValueIn;
  419. private remapValueOut;
  420. constructor(props: IOptionsLineComponentProps);
  421. shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
  422. value: number;
  423. }): boolean;
  424. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  425. updateValue(valueString: string): void;
  426. render(): JSX.Element;
  427. }
  428. }
  429. declare module GUIEDITOR {
  430. interface ICommonControlPropertyGridComponentProps {
  431. control: Control;
  432. lockObject: LockObject;
  433. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  434. }
  435. export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
  436. constructor(props: ICommonControlPropertyGridComponentProps);
  437. renderGridInformation(): JSX.Element | null;
  438. render(): JSX.Element;
  439. }
  440. }
  441. declare module GUIEDITOR {
  442. interface ISliderPropertyGridComponentProps {
  443. slider: Slider;
  444. lockObject: LockObject;
  445. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  446. }
  447. export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
  448. constructor(props: ISliderPropertyGridComponentProps);
  449. render(): JSX.Element;
  450. }
  451. }
  452. declare module GUIEDITOR {
  453. interface ILinePropertyGridComponentProps {
  454. line: Line;
  455. lockObject: LockObject;
  456. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  457. }
  458. export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
  459. constructor(props: ILinePropertyGridComponentProps);
  460. onDashChange(value: string): void;
  461. render(): JSX.Element;
  462. }
  463. }
  464. declare module GUIEDITOR {
  465. interface IRadioButtonPropertyGridComponentProps {
  466. radioButton: RadioButton;
  467. lockObject: LockObject;
  468. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  469. }
  470. export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
  471. constructor(props: IRadioButtonPropertyGridComponentProps);
  472. render(): JSX.Element;
  473. }
  474. }
  475. declare module GUIEDITOR {
  476. interface ITextBlockPropertyGridComponentProps {
  477. textBlock: TextBlock;
  478. lockObject: LockObject;
  479. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  480. }
  481. export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
  482. constructor(props: ITextBlockPropertyGridComponentProps);
  483. render(): JSX.Element;
  484. }
  485. }
  486. declare module GUIEDITOR {
  487. interface IInputTextPropertyGridComponentProps {
  488. inputText: InputText;
  489. lockObject: LockObject;
  490. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  491. }
  492. export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
  493. constructor(props: IInputTextPropertyGridComponentProps);
  494. render(): JSX.Element;
  495. }
  496. }
  497. declare module GUIEDITOR {
  498. interface INumericInputComponentProps {
  499. label: string;
  500. value: number;
  501. step?: number;
  502. onChange: (value: number) => void;
  503. precision?: number;
  504. }
  505. export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
  506. value: string;
  507. }> {
  508. static defaultProps: {
  509. step: number;
  510. };
  511. private _localChange;
  512. constructor(props: INumericInputComponentProps);
  513. shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
  514. value: string;
  515. }): boolean;
  516. updateValue(evt: any): void;
  517. onBlur(): void;
  518. render(): JSX.Element;
  519. }
  520. }
  521. declare module GUIEDITOR {
  522. export interface IColorComponentEntryProps {
  523. value: number;
  524. label: string;
  525. max?: number;
  526. min?: number;
  527. onChange: (value: number) => void;
  528. }
  529. export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
  530. constructor(props: IColorComponentEntryProps);
  531. updateValue(valueString: string): void;
  532. render(): JSX.Element;
  533. }
  534. }
  535. declare module GUIEDITOR {
  536. export interface IHexColorProps {
  537. value: string;
  538. expectedLength: number;
  539. onChange: (value: string) => void;
  540. }
  541. export class HexColor extends React.Component<IHexColorProps, {
  542. hex: string;
  543. }> {
  544. constructor(props: IHexColorProps);
  545. shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
  546. hex: string;
  547. }): boolean;
  548. updateHexValue(valueString: string): void;
  549. render(): JSX.Element;
  550. }
  551. }
  552. declare module GUIEDITOR {
  553. /**
  554. * Interface used to specify creation options for color picker
  555. */
  556. export interface IColorPickerProps {
  557. color: BABYLON.Color3 | BABYLON.Color4;
  558. debugMode?: boolean;
  559. onColorChanged?: (color: BABYLON.Color3 | BABYLON.Color4) => void;
  560. }
  561. /**
  562. * Interface used to specify creation options for color picker
  563. */
  564. export interface IColorPickerState {
  565. color: BABYLON.Color3;
  566. alpha: number;
  567. }
  568. /**
  569. * Class used to create a color picker
  570. */
  571. export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
  572. private _saturationRef;
  573. private _hueRef;
  574. private _isSaturationPointerDown;
  575. private _isHuePointerDown;
  576. constructor(props: IColorPickerProps);
  577. onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  578. onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  579. onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  580. onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  581. onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  582. onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  583. private _evaluateSaturation;
  584. private _evaluateHue;
  585. componentDidUpdate(): void;
  586. raiseOnColorChanged(): void;
  587. render(): JSX.Element;
  588. }
  589. }
  590. declare module GUIEDITOR {
  591. export interface IColorPickerComponentProps {
  592. value: BABYLON.Color4 | BABYLON.Color3;
  593. onColorChanged: (newOne: string) => void;
  594. }
  595. interface IColorPickerComponentState {
  596. pickerEnabled: boolean;
  597. color: BABYLON.Color3 | BABYLON.Color4;
  598. hex: string;
  599. }
  600. export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
  601. private _floatRef;
  602. private _floatHostRef;
  603. constructor(props: IColorPickerComponentProps);
  604. syncPositions(): void;
  605. shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
  606. componentDidUpdate(): void;
  607. componentDidMount(): void;
  608. render(): JSX.Element;
  609. }
  610. }
  611. declare module GUIEDITOR {
  612. export interface IColor3LineComponentProps {
  613. label: string;
  614. target: any;
  615. propertyName: string;
  616. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  617. isLinear?: boolean;
  618. }
  619. export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
  620. isExpanded: boolean;
  621. color: BABYLON.Color3;
  622. }> {
  623. private _localChange;
  624. constructor(props: IColor3LineComponentProps);
  625. shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
  626. color: BABYLON.Color3;
  627. }): boolean;
  628. setPropertyValue(newColor: BABYLON.Color3): void;
  629. onChange(newValue: string): void;
  630. switchExpandState(): void;
  631. raiseOnPropertyChanged(previousValue: BABYLON.Color3): void;
  632. updateStateR(value: number): void;
  633. updateStateG(value: number): void;
  634. updateStateB(value: number): void;
  635. copyToClipboard(): void;
  636. render(): JSX.Element;
  637. }
  638. }
  639. declare module GUIEDITOR {
  640. interface IColorPickerPropertyGridComponentProps {
  641. colorPicker: ColorPicker;
  642. lockObject: LockObject;
  643. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  644. }
  645. export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
  646. constructor(props: IColorPickerPropertyGridComponentProps);
  647. render(): JSX.Element;
  648. }
  649. }
  650. declare module GUIEDITOR {
  651. interface IImagePropertyGridComponentProps {
  652. image: Image;
  653. lockObject: LockObject;
  654. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  655. }
  656. export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
  657. constructor(props: IImagePropertyGridComponentProps);
  658. render(): JSX.Element;
  659. }
  660. }
  661. declare module GUIEDITOR {
  662. interface IImageBasedSliderPropertyGridComponentProps {
  663. imageBasedSlider: ImageBasedSlider;
  664. lockObject: LockObject;
  665. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  666. }
  667. export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
  668. constructor(props: IImageBasedSliderPropertyGridComponentProps);
  669. render(): JSX.Element;
  670. }
  671. }
  672. declare module GUIEDITOR {
  673. interface IRectanglePropertyGridComponentProps {
  674. rectangle: Rectangle;
  675. lockObject: LockObject;
  676. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  677. }
  678. export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
  679. constructor(props: IRectanglePropertyGridComponentProps);
  680. render(): JSX.Element;
  681. }
  682. }
  683. declare module GUIEDITOR {
  684. interface IStackPanelPropertyGridComponentProps {
  685. stackPanel: StackPanel;
  686. lockObject: LockObject;
  687. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  688. }
  689. export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
  690. constructor(props: IStackPanelPropertyGridComponentProps);
  691. render(): JSX.Element;
  692. }
  693. }
  694. declare module GUIEDITOR {
  695. interface IGridPropertyGridComponentProps {
  696. grid: Grid;
  697. lockObject: LockObject;
  698. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  699. }
  700. export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
  701. constructor(props: IGridPropertyGridComponentProps);
  702. renderRows(): JSX.Element[];
  703. renderColumns(): JSX.Element[];
  704. render(): JSX.Element;
  705. }
  706. }
  707. declare module GUIEDITOR {
  708. interface IScrollViewerPropertyGridComponentProps {
  709. scrollViewer: ScrollViewer;
  710. lockObject: LockObject;
  711. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  712. }
  713. export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
  714. constructor(props: IScrollViewerPropertyGridComponentProps);
  715. render(): JSX.Element;
  716. }
  717. }
  718. declare module GUIEDITOR {
  719. interface IEllipsePropertyGridComponentProps {
  720. ellipse: Ellipse;
  721. lockObject: LockObject;
  722. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  723. }
  724. export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
  725. constructor(props: IEllipsePropertyGridComponentProps);
  726. render(): JSX.Element;
  727. }
  728. }
  729. declare module GUIEDITOR {
  730. interface ICheckboxPropertyGridComponentProps {
  731. checkbox: Checkbox;
  732. lockObject: LockObject;
  733. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  734. }
  735. export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
  736. constructor(props: ICheckboxPropertyGridComponentProps);
  737. render(): JSX.Element;
  738. }
  739. }
  740. declare module GUIEDITOR {
  741. interface IControlPropertyGridComponentProps {
  742. control: Control;
  743. lockObject: LockObject;
  744. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  745. }
  746. export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
  747. constructor(props: IControlPropertyGridComponentProps);
  748. render(): JSX.Element;
  749. }
  750. }
  751. declare module GUIEDITOR {
  752. interface IPropertyTabComponentProps {
  753. globalState: GlobalState;
  754. }
  755. interface IPropertyTabComponentState {
  756. currentNode: BABYLON.Nullable<GUINode>;
  757. }
  758. export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
  759. private _onBuiltObserver;
  760. private _timerIntervalId;
  761. private _lockObject;
  762. constructor(props: IPropertyTabComponentProps);
  763. timerRefresh(): void;
  764. componentDidMount(): void;
  765. componentWillUnmount(): void;
  766. load(file: File): void;
  767. save(): void;
  768. saveToSnippetServer(): void;
  769. loadFromSnippet(): void;
  770. renderProperties(): JSX.Element | null;
  771. render(): JSX.Element;
  772. }
  773. }
  774. declare module GUIEDITOR {
  775. interface IPortalProps {
  776. globalState: GlobalState;
  777. }
  778. export class Portal extends React.Component<IPortalProps> {
  779. render(): React.ReactPortal;
  780. }
  781. }
  782. declare module GUIEDITOR {
  783. export class GUINodeTools {
  784. static CreateControlFromString(data: string): Grid | Slider | Line | TextBlock | InputText | ColorPicker | Image | Rectangle | Ellipse | Checkbox | DisplayGrid | VirtualKeyboard;
  785. }
  786. }
  787. declare module GUIEDITOR {
  788. export interface INodeLocationInfo {
  789. blockId: number;
  790. x: number;
  791. y: number;
  792. }
  793. export interface IFrameData {
  794. x: number;
  795. y: number;
  796. width: number;
  797. height: number;
  798. color: number[];
  799. name: string;
  800. isCollapsed: boolean;
  801. blocks: number[];
  802. comments: string;
  803. }
  804. export interface IEditorData {
  805. locations: INodeLocationInfo[];
  806. x: number;
  807. y: number;
  808. zoom: number;
  809. frames?: IFrameData[];
  810. map?: {
  811. [key: number]: number;
  812. };
  813. }
  814. }
  815. declare module GUIEDITOR {
  816. interface IMessageDialogComponentProps {
  817. globalState: GlobalState;
  818. }
  819. export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
  820. message: string;
  821. isError: boolean;
  822. }> {
  823. constructor(props: IMessageDialogComponentProps);
  824. render(): JSX.Element | null;
  825. }
  826. }
  827. declare module GUIEDITOR {
  828. interface IGraphEditorProps {
  829. globalState: GlobalState;
  830. }
  831. interface IGraphEditorState {
  832. showPreviewPopUp: boolean;
  833. }
  834. export class WorkbenchEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
  835. private _workbenchCanvas;
  836. private _startX;
  837. private _moveInProgress;
  838. private _leftWidth;
  839. private _rightWidth;
  840. private _onWidgetKeyUpPointer;
  841. private _popUpWindow;
  842. componentDidMount(): void;
  843. componentWillUnmount(): void;
  844. constructor(props: IGraphEditorProps);
  845. pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[];
  846. zoomToFit(): void;
  847. showWaitScreen(): void;
  848. hideWaitScreen(): void;
  849. reOrganize(editorData?: BABYLON.Nullable<IEditorData>, isImportingAFrame?: boolean): void;
  850. onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  851. onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  852. resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
  853. buildColumnLayout(): string;
  854. emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
  855. handlePopUp: () => void;
  856. handleClosingPopUp: () => void;
  857. createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
  858. copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void;
  859. fixPopUpStyles: (document: Document) => void;
  860. render(): JSX.Element;
  861. }
  862. }
  863. declare module GUIEDITOR {
  864. export class Popup {
  865. static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
  866. private static _CopyStyles;
  867. }
  868. }
  869. declare module GUIEDITOR {
  870. /**
  871. * Interface used to specify creation options for the gui editor
  872. */
  873. export interface IGUIEditorOptions {
  874. hostElement?: HTMLElement;
  875. customSave?: {
  876. label: string;
  877. action: (data: string) => Promise<void>;
  878. };
  879. currentSnippetToken?: string;
  880. customLoadObservable?: BABYLON.Observable<any>;
  881. }
  882. /**
  883. * Class used to create a gui editor
  884. */
  885. export class GUIEditor {
  886. private static _CurrentState;
  887. /**
  888. * Show the gui editor
  889. * @param options defines the options to use to configure the gui editor
  890. */
  891. static Show(options: IGUIEditorOptions): void;
  892. }
  893. }
  894. declare module GUIEDITOR {
  895. export class PropertyChangedEvent {
  896. object: any;
  897. property: string;
  898. value: any;
  899. initialValue: any;
  900. }
  901. }
  902. declare module GUIEDITOR {
  903. interface IFloatLineComponentProps {
  904. label: string;
  905. target: any;
  906. propertyName: string;
  907. onChange?: (newValue: number) => void;
  908. isInteger?: boolean;
  909. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  910. additionalClass?: string;
  911. step?: string;
  912. digits?: number;
  913. globalState: GlobalState;
  914. min?: number;
  915. max?: number;
  916. smallUI?: boolean;
  917. onEnter?: (newValue: number) => void;
  918. }
  919. export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
  920. value: string;
  921. }> {
  922. private _localChange;
  923. private _store;
  924. private _regExp;
  925. private _digits;
  926. constructor(props: IFloatLineComponentProps);
  927. shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
  928. value: string;
  929. }): boolean;
  930. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  931. updateValue(valueString: string): void;
  932. render(): JSX.Element;
  933. }
  934. }
  935. declare module GUIEDITOR {
  936. interface ILineWithFileButtonComponentProps {
  937. title: string;
  938. closed?: boolean;
  939. label: string;
  940. iconImage: any;
  941. onIconClick: (file: File) => void;
  942. accept: string;
  943. uploadName?: string;
  944. }
  945. export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
  946. isExpanded: boolean;
  947. }> {
  948. private uploadRef;
  949. constructor(props: ILineWithFileButtonComponentProps);
  950. onChange(evt: any): void;
  951. switchExpandedState(): void;
  952. render(): JSX.Element;
  953. }
  954. }
  955. declare module GUIEDITOR {
  956. interface INumericInputComponentProps {
  957. label: string;
  958. value: number;
  959. step?: number;
  960. onChange: (value: number) => void;
  961. globalState: GlobalState;
  962. }
  963. export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
  964. value: string;
  965. }> {
  966. static defaultProps: {
  967. step: number;
  968. };
  969. private _localChange;
  970. constructor(props: INumericInputComponentProps);
  971. shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
  972. value: string;
  973. }): boolean;
  974. updateValue(evt: any): void;
  975. render(): JSX.Element;
  976. }
  977. }
  978. declare module GUIEDITOR {
  979. interface ISliderLineComponentProps {
  980. label: string;
  981. target?: any;
  982. propertyName?: string;
  983. minimum: number;
  984. maximum: number;
  985. step: number;
  986. directValue?: number;
  987. useEuler?: boolean;
  988. onChange?: (value: number) => void;
  989. onInput?: (value: number) => void;
  990. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  991. decimalCount?: number;
  992. globalState: GlobalState;
  993. }
  994. export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
  995. value: number;
  996. }> {
  997. private _localChange;
  998. constructor(props: ISliderLineComponentProps);
  999. shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
  1000. value: number;
  1001. }): boolean;
  1002. onChange(newValueString: any): void;
  1003. onInput(newValueString: any): void;
  1004. prepareDataToRead(value: number): number;
  1005. render(): JSX.Element;
  1006. }
  1007. }
  1008. declare module GUIEDITOR {
  1009. interface ITextInputLineComponentProps {
  1010. label: string;
  1011. globalState: GlobalState;
  1012. target?: any;
  1013. propertyName?: string;
  1014. value?: string;
  1015. multilines?: boolean;
  1016. onChange?: (value: string) => void;
  1017. validator?: (value: string) => boolean;
  1018. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1019. }
  1020. export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
  1021. value: string;
  1022. }> {
  1023. private _localChange;
  1024. constructor(props: ITextInputLineComponentProps);
  1025. shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
  1026. value: string;
  1027. }): boolean;
  1028. raiseOnPropertyChanged(newValue: string, previousValue: string): void;
  1029. updateValue(value: string, raisePropertyChanged: boolean): void;
  1030. render(): JSX.Element;
  1031. }
  1032. }
  1033. declare module GUIEDITOR {
  1034. export interface IBooleanLineComponentProps {
  1035. label: string;
  1036. value: boolean;
  1037. }
  1038. export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
  1039. constructor(props: IBooleanLineComponentProps);
  1040. render(): JSX.Element;
  1041. }
  1042. }
  1043. declare module GUIEDITOR {
  1044. export interface IColor4LineComponentProps {
  1045. label: string;
  1046. target: any;
  1047. propertyName: string;
  1048. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1049. onChange?: () => void;
  1050. isLinear?: boolean;
  1051. }
  1052. export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
  1053. isExpanded: boolean;
  1054. color: BABYLON.Color4;
  1055. }> {
  1056. private _localChange;
  1057. constructor(props: IColor4LineComponentProps);
  1058. shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
  1059. color: BABYLON.Color4;
  1060. }): boolean;
  1061. setPropertyValue(newColor: BABYLON.Color4): void;
  1062. onChange(newValue: string): void;
  1063. switchExpandState(): void;
  1064. raiseOnPropertyChanged(previousValue: BABYLON.Color4): void;
  1065. updateStateR(value: number): void;
  1066. updateStateG(value: number): void;
  1067. updateStateB(value: number): void;
  1068. updateStateA(value: number): void;
  1069. copyToClipboard(): void;
  1070. render(): JSX.Element;
  1071. }
  1072. }
  1073. declare module GUIEDITOR {
  1074. interface IFileMultipleButtonLineComponentProps {
  1075. label: string;
  1076. onClick: (event: any) => void;
  1077. accept: string;
  1078. }
  1079. export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
  1080. private static _IDGenerator;
  1081. private _id;
  1082. private uploadInputRef;
  1083. constructor(props: IFileMultipleButtonLineComponentProps);
  1084. onChange(evt: any): void;
  1085. render(): JSX.Element;
  1086. }
  1087. }
  1088. declare module GUIEDITOR {
  1089. interface IHexLineComponentProps {
  1090. label: string;
  1091. target: any;
  1092. propertyName: string;
  1093. lockObject?: LockObject;
  1094. onChange?: (newValue: number) => void;
  1095. isInteger?: boolean;
  1096. replaySourceReplacement?: string;
  1097. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1098. additionalClass?: string;
  1099. step?: string;
  1100. digits?: number;
  1101. useEuler?: boolean;
  1102. min?: number;
  1103. }
  1104. export class HexLineComponent extends React.Component<IHexLineComponentProps, {
  1105. value: string;
  1106. }> {
  1107. private _localChange;
  1108. private _store;
  1109. private _propertyChange;
  1110. constructor(props: IHexLineComponentProps);
  1111. componentWillUnmount(): void;
  1112. shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
  1113. value: string;
  1114. }): boolean;
  1115. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  1116. convertToHexString(valueString: string): string;
  1117. updateValue(valueString: string, raisePropertyChanged: boolean): void;
  1118. lock(): void;
  1119. unlock(): void;
  1120. render(): JSX.Element;
  1121. }
  1122. }
  1123. declare module GUIEDITOR {
  1124. export interface IIconButtonLineComponentProps {
  1125. icon: string;
  1126. onClick: () => void;
  1127. tooltip: string;
  1128. active?: boolean;
  1129. }
  1130. export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
  1131. constructor(props: IIconButtonLineComponentProps);
  1132. render(): JSX.Element;
  1133. }
  1134. }
  1135. declare module GUIEDITOR {
  1136. interface IIndentedTextLineComponentProps {
  1137. value?: string;
  1138. color?: string;
  1139. underline?: boolean;
  1140. onLink?: () => void;
  1141. url?: string;
  1142. additionalClass?: string;
  1143. }
  1144. export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
  1145. constructor(props: IIndentedTextLineComponentProps);
  1146. onLink(): void;
  1147. renderContent(): JSX.Element;
  1148. render(): JSX.Element;
  1149. }
  1150. }
  1151. declare module GUIEDITOR {
  1152. interface ILinkButtonComponentProps {
  1153. label: string;
  1154. buttonLabel: string;
  1155. url?: string;
  1156. onClick: () => void;
  1157. onIconClick?: () => void;
  1158. }
  1159. export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
  1160. constructor(props: ILinkButtonComponentProps);
  1161. onLink(): void;
  1162. render(): JSX.Element;
  1163. }
  1164. }
  1165. declare module GUIEDITOR {
  1166. interface IMessageLineComponentProps {
  1167. text: string;
  1168. color?: string;
  1169. }
  1170. export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
  1171. constructor(props: IMessageLineComponentProps);
  1172. render(): JSX.Element;
  1173. }
  1174. }
  1175. declare module GUIEDITOR {
  1176. interface IRadioButtonLineComponentProps {
  1177. onSelectionChangedObservable: BABYLON.Observable<RadioButtonLineComponent>;
  1178. label: string;
  1179. isSelected: () => boolean;
  1180. onSelect: () => void;
  1181. }
  1182. export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
  1183. isSelected: boolean;
  1184. }> {
  1185. private _onSelectionChangedObserver;
  1186. constructor(props: IRadioButtonLineComponentProps);
  1187. componentDidMount(): void;
  1188. componentWillUnmount(): void;
  1189. onChange(): void;
  1190. render(): JSX.Element;
  1191. }
  1192. }
  1193. declare module GUIEDITOR {
  1194. interface IValueLineComponentProps {
  1195. label: string;
  1196. value: number;
  1197. color?: string;
  1198. fractionDigits?: number;
  1199. units?: string;
  1200. }
  1201. export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
  1202. constructor(props: IValueLineComponentProps);
  1203. render(): JSX.Element;
  1204. }
  1205. }
  1206. declare module GUIEDITOR {
  1207. interface IVector2LineComponentProps {
  1208. label: string;
  1209. target: any;
  1210. propertyName: string;
  1211. step?: number;
  1212. onChange?: (newvalue: BABYLON.Vector2) => void;
  1213. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1214. }
  1215. export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
  1216. isExpanded: boolean;
  1217. value: BABYLON.Vector2;
  1218. }> {
  1219. static defaultProps: {
  1220. step: number;
  1221. };
  1222. private _localChange;
  1223. constructor(props: IVector2LineComponentProps);
  1224. shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
  1225. isExpanded: boolean;
  1226. value: BABYLON.Vector2;
  1227. }): boolean;
  1228. switchExpandState(): void;
  1229. raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void;
  1230. updateStateX(value: number): void;
  1231. updateStateY(value: number): void;
  1232. render(): JSX.Element;
  1233. }
  1234. }
  1235. declare module GUIEDITOR {
  1236. interface IVector3LineComponentProps {
  1237. label: string;
  1238. target: any;
  1239. propertyName: string;
  1240. step?: number;
  1241. onChange?: (newvalue: BABYLON.Vector3) => void;
  1242. useEuler?: boolean;
  1243. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1244. noSlider?: boolean;
  1245. }
  1246. export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
  1247. isExpanded: boolean;
  1248. value: BABYLON.Vector3;
  1249. }> {
  1250. static defaultProps: {
  1251. step: number;
  1252. };
  1253. private _localChange;
  1254. constructor(props: IVector3LineComponentProps);
  1255. getCurrentValue(): any;
  1256. shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
  1257. isExpanded: boolean;
  1258. value: BABYLON.Vector3;
  1259. }): boolean;
  1260. switchExpandState(): void;
  1261. raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void;
  1262. updateVector3(): void;
  1263. updateStateX(value: number): void;
  1264. updateStateY(value: number): void;
  1265. updateStateZ(value: number): void;
  1266. render(): JSX.Element;
  1267. }
  1268. }
  1269. declare module GUIEDITOR {
  1270. interface IVector4LineComponentProps {
  1271. label: string;
  1272. target: any;
  1273. propertyName: string;
  1274. step?: number;
  1275. onChange?: (newvalue: BABYLON.Vector4) => void;
  1276. useEuler?: boolean;
  1277. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  1278. }
  1279. export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
  1280. isExpanded: boolean;
  1281. value: BABYLON.Vector4;
  1282. }> {
  1283. static defaultProps: {
  1284. step: number;
  1285. };
  1286. private _localChange;
  1287. constructor(props: IVector4LineComponentProps);
  1288. getCurrentValue(): any;
  1289. shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
  1290. isExpanded: boolean;
  1291. value: BABYLON.Vector4;
  1292. }): boolean;
  1293. switchExpandState(): void;
  1294. raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void;
  1295. updateVector4(): void;
  1296. updateStateX(value: number): void;
  1297. updateStateY(value: number): void;
  1298. updateStateZ(value: number): void;
  1299. updateStateW(value: number): void;
  1300. render(): JSX.Element;
  1301. }
  1302. }