@babylonjs/inspector 5.54.0 → 5.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52021,10 +52021,15 @@ class ExtensionsComponent extends react__WEBPACK_IMPORTED_MODULE_2__.Component {
52021
52021
  if (options.length === 0) {
52022
52022
  return null;
52023
52023
  }
52024
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { ref: this._extensionRef, className: "extensions", onClick: () => this.showPopup(), children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { title: "Additional options", className: "icon", children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_fortawesome_react_fontawesome__WEBPACK_IMPORTED_MODULE_1__.FontAwesomeIcon, { icon: _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_3__.faEllipsisH }) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { ref: (input) => {
52024
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { ref: this._extensionRef, className: "extensions", children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { title: "Additional options", className: "icon", onClick: () => this.showPopup(), children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_fortawesome_react_fontawesome__WEBPACK_IMPORTED_MODULE_1__.FontAwesomeIcon, { icon: _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_3__.faEllipsisH }) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { ref: (input) => {
52025
52025
  this._popup = input;
52026
52026
  }, tabIndex: -1, className: this.state.popupVisible ? "popup show" : "popup", onBlur: () => this.setState({ popupVisible: false }), children: options.map((extensibility) => {
52027
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { className: "popupMenu", onClick: () => extensibility.action(this.props.target), children: extensibility.label }, extensibility.label));
52027
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { className: "popupMenu", onClick: () => {
52028
+ extensibility.action(this.props.target);
52029
+ if (!extensibility.keepOpenAfterClick) {
52030
+ this.setState({ popupVisible: false });
52031
+ }
52032
+ }, children: extensibility.label }, extensibility.label));
52028
52033
  }) })] }));
52029
52034
  }
52030
52035
  }
@@ -52230,7 +52235,7 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52230
52235
  else if (keyEvent.keyCode === 46) {
52231
52236
  // delete
52232
52237
  this.state.selectedEntity.dispose();
52233
- this.setState({ selectedEntity: null });
52238
+ this.props.globalState.onSelectionChangedObservable.notifyObservers(scene);
52234
52239
  }
52235
52240
  if (!search) {
52236
52241
  return;
@@ -52243,38 +52248,11 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52243
52248
  }
52244
52249
  }
52245
52250
  }
52246
- renderContent() {
52247
- const scene = this.state.scene;
52248
- if (!scene) {
52249
- this._onNewSceneAddedObserver = core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.EngineStore.LastCreatedEngine.onNewSceneAddedObservable.addOnce((scene) => this.setState({ scene: scene }));
52250
- return null;
52251
- }
52252
- if (!this._hooked) {
52253
- this._hooked = true;
52254
- scene.onNewSkeletonAddedObservable.add(this._sceneMutationFunc);
52255
- scene.onNewCameraAddedObservable.add(this._sceneMutationFunc);
52256
- scene.onNewLightAddedObservable.add(this._sceneMutationFunc);
52257
- scene.onNewMaterialAddedObservable.add(this._sceneMutationFunc);
52258
- scene.onNewMeshAddedObservable.add(this._sceneMutationFunc);
52259
- scene.onNewTextureAddedObservable.add(this._sceneMutationFunc);
52260
- scene.onNewTransformNodeAddedObservable.add(this._sceneMutationFunc);
52261
- scene.onSkeletonRemovedObservable.add(this._sceneMutationFunc);
52262
- scene.onMeshRemovedObservable.add(this._sceneMutationFunc);
52263
- scene.onCameraRemovedObservable.add(this._sceneMutationFunc);
52264
- scene.onLightRemovedObservable.add(this._sceneMutationFunc);
52265
- scene.onMaterialRemovedObservable.add(this._sceneMutationFunc);
52266
- scene.onTransformNodeRemovedObservable.add(this._sceneMutationFunc);
52267
- scene.onTextureRemovedObservable.add(this._sceneMutationFunc);
52268
- }
52269
- const guiElements = scene.textures.filter((t) => t.getClassName() === "AdvancedDynamicTexture");
52270
- const textures = scene.textures.filter((t) => t.getClassName() !== "AdvancedDynamicTexture");
52271
- const postProcessses = scene.postProcesses;
52272
- const pipelines = scene.postProcessRenderPipelineManager.supportedPipelines;
52273
- // Context menus
52274
- const pipelineContextMenus = [];
52251
+ _getPipelineContextMenus(scene, pipelines) {
52252
+ const defaultMenuItems = [];
52275
52253
  if (scene.activeCamera) {
52276
52254
  if (!pipelines.some((p) => p.getClassName() === "DefaultRenderingPipeline")) {
52277
- pipelineContextMenus.push({
52255
+ defaultMenuItems.push({
52278
52256
  label: "Add new Default Rendering Pipeline",
52279
52257
  action: () => {
52280
52258
  const newPipeline = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.DefaultRenderingPipeline("Default rendering pipeline", true, scene, scene.cameras);
@@ -52283,7 +52261,7 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52283
52261
  });
52284
52262
  }
52285
52263
  if (!pipelines.some((p) => p.getClassName() === "SSAORenderingPipeline")) {
52286
- pipelineContextMenus.push({
52264
+ defaultMenuItems.push({
52287
52265
  label: "Add new SSAO Rendering Pipeline",
52288
52266
  action: () => {
52289
52267
  const newPipeline = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.SSAORenderingPipeline("SSAO rendering pipeline", scene, 1, scene.cameras);
@@ -52292,7 +52270,7 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52292
52270
  });
52293
52271
  }
52294
52272
  if (scene.getEngine().getCaps().drawBuffersExtension && !pipelines.some((p) => p.getClassName() === "SSAORenderingPipeline")) {
52295
- pipelineContextMenus.push({
52273
+ defaultMenuItems.push({
52296
52274
  label: "Add new SSAO2 Rendering Pipeline",
52297
52275
  action: () => {
52298
52276
  const newPipeline = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.SSAO2RenderingPipeline("SSAO2 rendering pipeline", scene, 1, scene.cameras);
@@ -52301,7 +52279,7 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52301
52279
  });
52302
52280
  }
52303
52281
  if (scene.getEngine().getCaps().drawBuffersExtension && scene.getEngine().getCaps().texelFetch && !pipelines.some((p) => p.getClassName() === "SSRRenderingPipeline")) {
52304
- pipelineContextMenus.push({
52282
+ defaultMenuItems.push({
52305
52283
  label: "Add new SSR Rendering Pipeline",
52306
52284
  action: () => {
52307
52285
  const newPipeline = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.SSRRenderingPipeline("SSR rendering pipeline", scene, scene.cameras);
@@ -52310,22 +52288,27 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52310
52288
  });
52311
52289
  }
52312
52290
  }
52313
- const nodeContextMenus = [];
52314
- nodeContextMenus.push({
52291
+ const customMenuItems = this.props.contextMenu?.pipeline || [];
52292
+ const useDefaults = !this.props.contextMenuOverride?.includes("pipeline");
52293
+ return useDefaults ? [...defaultMenuItems, ...customMenuItems] : customMenuItems;
52294
+ }
52295
+ _getNodeContextMenus(scene) {
52296
+ const defaultMenuItems = [];
52297
+ defaultMenuItems.push({
52315
52298
  label: "Add new point light",
52316
52299
  action: () => {
52317
52300
  const newPointLight = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.PointLight("point light", core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.Vector3.Zero(), scene);
52318
52301
  this.props.globalState.onSelectionChangedObservable.notifyObservers(newPointLight);
52319
52302
  },
52320
52303
  });
52321
- nodeContextMenus.push({
52304
+ defaultMenuItems.push({
52322
52305
  label: "Add new directional light",
52323
52306
  action: () => {
52324
52307
  const newDirectionalLight = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.DirectionalLight("directional light", new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.Vector3(-1, -1, -0.5), scene);
52325
52308
  this.props.globalState.onSelectionChangedObservable.notifyObservers(newDirectionalLight);
52326
52309
  },
52327
52310
  });
52328
- nodeContextMenus.push({
52311
+ defaultMenuItems.push({
52329
52312
  label: "Add new free camera",
52330
52313
  action: () => {
52331
52314
  const newFreeCamera = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.FreeCamera("free camera", scene.activeCamera ? scene.activeCamera.globalPosition : new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.Vector3(0, 0, -5), scene);
@@ -52339,6 +52322,11 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52339
52322
  this.props.globalState.onSelectionChangedObservable.notifyObservers(newFreeCamera);
52340
52323
  },
52341
52324
  });
52325
+ const customMenuItems = this.props.contextMenu?.node || [];
52326
+ const useDefaults = !this.props.contextMenuOverride?.includes("node");
52327
+ return useDefaults ? [...defaultMenuItems, ...customMenuItems] : customMenuItems;
52328
+ }
52329
+ _getMaterialsContextMenus(scene) {
52342
52330
  const getUniqueName = (name) => {
52343
52331
  let idSubscript = 1;
52344
52332
  while (scene.getMaterialById(name)) {
@@ -52346,23 +52334,22 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52346
52334
  }
52347
52335
  return name;
52348
52336
  };
52349
- // Materials
52350
- const materialsContextMenus = [];
52351
- materialsContextMenus.push({
52337
+ const defaultMenuItems = [];
52338
+ defaultMenuItems.push({
52352
52339
  label: "Add new standard material",
52353
52340
  action: () => {
52354
52341
  const newStdMaterial = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.StandardMaterial(getUniqueName("Standard material"), scene);
52355
52342
  this.props.globalState.onSelectionChangedObservable.notifyObservers(newStdMaterial);
52356
52343
  },
52357
52344
  });
52358
- materialsContextMenus.push({
52345
+ defaultMenuItems.push({
52359
52346
  label: "Add new PBR material",
52360
52347
  action: () => {
52361
52348
  const newPBRMaterial = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.PBRMaterial(getUniqueName("PBR material"), scene);
52362
52349
  this.props.globalState.onSelectionChangedObservable.notifyObservers(newPBRMaterial);
52363
52350
  },
52364
52351
  });
52365
- materialsContextMenus.push({
52352
+ defaultMenuItems.push({
52366
52353
  label: "Add new node material",
52367
52354
  action: () => {
52368
52355
  const newNodeMaterial = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.NodeMaterial(getUniqueName("node material"), scene);
@@ -52371,23 +52358,26 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52371
52358
  this.props.globalState.onSelectionChangedObservable.notifyObservers(newNodeMaterial);
52372
52359
  },
52373
52360
  });
52374
- const materials = [];
52375
- materials.push(...scene.materials);
52376
- if (scene.multiMaterials && scene.multiMaterials.length) {
52377
- materials.push(...scene.multiMaterials);
52378
- }
52379
- // Sprite Managers
52380
- const spriteManagersContextMenus = [];
52381
- spriteManagersContextMenus.push({
52361
+ const customMenuItems = this.props.contextMenu?.materials || [];
52362
+ const useDefaults = !this.props.contextMenuOverride?.includes("materials");
52363
+ return useDefaults ? [...defaultMenuItems, ...customMenuItems] : customMenuItems;
52364
+ }
52365
+ _getSpriteManagersContextMenus(scene) {
52366
+ const defaultMenuItems = [];
52367
+ defaultMenuItems.push({
52382
52368
  label: "Add new sprite manager",
52383
52369
  action: () => {
52384
52370
  const newSpriteManager = new core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.SpriteManager("Default sprite manager", "//playground.babylonjs.com/textures/player.png", 500, 64, scene);
52385
52371
  this.props.globalState.onSelectionChangedObservable.notifyObservers(newSpriteManager);
52386
52372
  },
52387
52373
  });
52388
- // Particle systems
52389
- const particleSystemsContextMenus = [];
52390
- particleSystemsContextMenus.push({
52374
+ const customMenuItems = this.props.contextMenu?.spriteManagers || [];
52375
+ const useDefaults = !this.props.contextMenuOverride?.includes("spriteManagers");
52376
+ return useDefaults ? [...defaultMenuItems, ...customMenuItems] : customMenuItems;
52377
+ }
52378
+ _getParticleSystemsContextMenus(scene) {
52379
+ const defaultMenuItems = [];
52380
+ defaultMenuItems.push({
52391
52381
  label: "Add new CPU particle system",
52392
52382
  action: () => {
52393
52383
  const newSystem = core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.ParticleHelper.CreateDefault(core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.Vector3.Zero(), 10000, scene);
@@ -52397,7 +52387,7 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52397
52387
  },
52398
52388
  });
52399
52389
  if (core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.GPUParticleSystem.IsSupported) {
52400
- particleSystemsContextMenus.push({
52390
+ defaultMenuItems.push({
52401
52391
  label: "Add new GPU particle system",
52402
52392
  action: () => {
52403
52393
  const newSystem = core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.ParticleHelper.CreateDefault(core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.Vector3.Zero(), 10000, scene, true);
@@ -52407,6 +52397,48 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52407
52397
  },
52408
52398
  });
52409
52399
  }
52400
+ const customMenuItems = this.props.contextMenu?.particleSystems || [];
52401
+ const useDefaults = !this.props.contextMenuOverride?.includes("particleSystems");
52402
+ return useDefaults ? [...defaultMenuItems, ...customMenuItems] : customMenuItems;
52403
+ }
52404
+ renderContent() {
52405
+ const scene = this.state.scene;
52406
+ if (!scene) {
52407
+ this._onNewSceneAddedObserver = core_Engines_engineStore__WEBPACK_IMPORTED_MODULE_2__.EngineStore.LastCreatedEngine.onNewSceneAddedObservable.addOnce((scene) => this.setState({ scene: scene }));
52408
+ return null;
52409
+ }
52410
+ if (!this._hooked) {
52411
+ this._hooked = true;
52412
+ scene.onNewSkeletonAddedObservable.add(this._sceneMutationFunc);
52413
+ scene.onNewCameraAddedObservable.add(this._sceneMutationFunc);
52414
+ scene.onNewLightAddedObservable.add(this._sceneMutationFunc);
52415
+ scene.onNewMaterialAddedObservable.add(this._sceneMutationFunc);
52416
+ scene.onNewMeshAddedObservable.add(this._sceneMutationFunc);
52417
+ scene.onNewTextureAddedObservable.add(this._sceneMutationFunc);
52418
+ scene.onNewTransformNodeAddedObservable.add(this._sceneMutationFunc);
52419
+ scene.onSkeletonRemovedObservable.add(this._sceneMutationFunc);
52420
+ scene.onMeshRemovedObservable.add(this._sceneMutationFunc);
52421
+ scene.onCameraRemovedObservable.add(this._sceneMutationFunc);
52422
+ scene.onLightRemovedObservable.add(this._sceneMutationFunc);
52423
+ scene.onMaterialRemovedObservable.add(this._sceneMutationFunc);
52424
+ scene.onTransformNodeRemovedObservable.add(this._sceneMutationFunc);
52425
+ scene.onTextureRemovedObservable.add(this._sceneMutationFunc);
52426
+ }
52427
+ const guiElements = scene.textures.filter((t) => t.getClassName() === "AdvancedDynamicTexture");
52428
+ const textures = scene.textures.filter((t) => t.getClassName() !== "AdvancedDynamicTexture");
52429
+ const postProcesses = scene.postProcesses;
52430
+ const pipelines = scene.postProcessRenderPipelineManager.supportedPipelines;
52431
+ // Context menus
52432
+ const pipelineContextMenus = this._getPipelineContextMenus(scene, pipelines);
52433
+ const nodeContextMenus = this._getNodeContextMenus(scene);
52434
+ const materialsContextMenus = this._getMaterialsContextMenus(scene);
52435
+ const spriteManagersContextMenus = this._getSpriteManagersContextMenus(scene);
52436
+ const particleSystemsContextMenus = this._getParticleSystemsContextMenus(scene);
52437
+ const materials = [];
52438
+ materials.push(...scene.materials);
52439
+ if (scene.multiMaterials && scene.multiMaterials.length) {
52440
+ materials.push(...scene.multiMaterials);
52441
+ }
52410
52442
  const rootNodes = scene.rootNodes.slice(0);
52411
52443
  // Adding nodes parented to a bone
52412
52444
  for (const mesh of scene.meshes) {
@@ -52414,7 +52446,7 @@ class SceneExplorerComponent extends react__WEBPACK_IMPORTED_MODULE_1__.Componen
52414
52446
  rootNodes.push(mesh);
52415
52447
  }
52416
52448
  }
52417
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { id: "tree", onContextMenu: (e) => e.preventDefault(), children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SceneExplorerFilterComponent, { onFilter: (filter) => this.filterContent(filter) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_sceneTreeItemComponent__WEBPACK_IMPORTED_MODULE_6__.SceneTreeItemComponent, { globalState: this.props.globalState, gizmoCamera: this.props.gizmoCamera, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, scene: scene, onRefresh: () => this.forceUpdate(), onSelectionChangedObservable: this.props.globalState.onSelectionChangedObservable }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, contextMenuItems: nodeContextMenus, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: rootNodes, label: "Nodes", offset: 1, filter: this.state.filter }), scene.skeletons.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.skeletons, label: "Skeletons", offset: 1, filter: this.state.filter })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: materials, contextMenuItems: materialsContextMenus, label: "Materials", offset: 1, filter: this.state.filter }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: textures, label: "Textures", offset: 1, filter: this.state.filter }), postProcessses.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: postProcessses, label: "Post-processes", offset: 1, filter: this.state.filter })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, contextMenuItems: pipelineContextMenus, selectedEntity: this.state.selectedEntity, items: pipelines, label: "Rendering pipelines", offset: 1, filter: this.state.filter }), scene.effectLayers && scene.effectLayers.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.effectLayers, label: "Effect layers", offset: 1, filter: this.state.filter })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, contextMenuItems: particleSystemsContextMenus, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.particleSystems, label: "Particle systems", offset: 1, filter: this.state.filter }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, contextMenuItems: spriteManagersContextMenus, forceSubitems: true, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.spriteManagers, label: "Sprite managers", offset: 1, filter: this.state.filter }), guiElements && guiElements.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: guiElements, label: "GUI", offset: 1, filter: this.state.filter })), scene.animationGroups.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.animationGroups, label: "Animation groups", offset: 1, filter: this.state.filter })), scene.mainSoundTrack && scene.mainSoundTrack.soundCollection.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.mainSoundTrack.soundCollection, label: "Sounds", offset: 1, filter: this.state.filter })), this.props.additionalNodes &&
52449
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { id: "tree", onContextMenu: (e) => e.preventDefault(), children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SceneExplorerFilterComponent, { onFilter: (filter) => this.filterContent(filter) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_sceneTreeItemComponent__WEBPACK_IMPORTED_MODULE_6__.SceneTreeItemComponent, { globalState: this.props.globalState, gizmoCamera: this.props.gizmoCamera, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, scene: scene, onRefresh: () => this.forceUpdate(), onSelectionChangedObservable: this.props.globalState.onSelectionChangedObservable }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, contextMenuItems: nodeContextMenus, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: rootNodes, label: "Nodes", offset: 1, filter: this.state.filter }), scene.skeletons.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.skeletons, label: "Skeletons", offset: 1, filter: this.state.filter })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: materials, contextMenuItems: materialsContextMenus, label: "Materials", offset: 1, filter: this.state.filter }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: textures, label: "Textures", offset: 1, filter: this.state.filter }), postProcesses.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: postProcesses, label: "Post-processes", offset: 1, filter: this.state.filter })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, contextMenuItems: pipelineContextMenus, selectedEntity: this.state.selectedEntity, items: pipelines, label: "Rendering pipelines", offset: 1, filter: this.state.filter }), scene.effectLayers && scene.effectLayers.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.effectLayers, label: "Effect layers", offset: 1, filter: this.state.filter })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, contextMenuItems: particleSystemsContextMenus, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.particleSystems, label: "Particle systems", offset: 1, filter: this.state.filter }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, contextMenuItems: spriteManagersContextMenus, forceSubitems: true, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.spriteManagers, label: "Sprite managers", offset: 1, filter: this.state.filter }), guiElements && guiElements.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: guiElements, label: "GUI", offset: 1, filter: this.state.filter })), scene.animationGroups.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.animationGroups, label: "Animation groups", offset: 1, filter: this.state.filter })), scene.mainSoundTrack && scene.mainSoundTrack.soundCollection.length > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: scene.mainSoundTrack.soundCollection, label: "Sounds", offset: 1, filter: this.state.filter })), this.props.additionalNodes &&
52418
52450
  this.props.additionalNodes.map((additionalNode) => {
52419
52451
  return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemComponent__WEBPACK_IMPORTED_MODULE_3__.TreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: additionalNode.getContent(), label: additionalNode.name, offset: 1, filter: this.state.filter }, additionalNode.name));
52420
52452
  })] }));
@@ -52744,25 +52776,27 @@ __webpack_require__.r(__webpack_exports__);
52744
52776
  /* harmony import */ var _entities_meshTreeItemComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./entities/meshTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/meshTreeItemComponent.js");
52745
52777
  /* harmony import */ var _entities_cameraTreeItemComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./entities/cameraTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/cameraTreeItemComponent.js");
52746
52778
  /* harmony import */ var _entities_lightTreeItemComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./entities/lightTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/lightTreeItemComponent.js");
52747
- /* harmony import */ var _treeItemLabelComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./treeItemLabelComponent */ "../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js");
52748
- /* harmony import */ var _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ "../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs");
52749
- /* harmony import */ var _entities_materialTreeItemComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./entities/materialTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/materialTreeItemComponent.js");
52750
- /* harmony import */ var _entities_textureTreeItemComponent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./entities/textureTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/textureTreeItemComponent.js");
52751
- /* harmony import */ var _entities_transformNodeTreeItemComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./entities/transformNodeTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/transformNodeTreeItemComponent.js");
52752
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
52753
- /* harmony import */ var _entities_gui_controlTreeItemComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./entities/gui/controlTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/gui/controlTreeItemComponent.js");
52754
- /* harmony import */ var _entities_gui_advancedDynamicTextureTreeItemComponent__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./entities/gui/advancedDynamicTextureTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/gui/advancedDynamicTextureTreeItemComponent.js");
52755
- /* harmony import */ var _entities_animationGroupTreeItemComponent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./entities/animationGroupTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/animationGroupTreeItemComponent.js");
52756
- /* harmony import */ var _entities_postProcessTreeItemComponent__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./entities/postProcessTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/postProcessTreeItemComponent.js");
52757
- /* harmony import */ var _entities_renderingPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./entities/renderingPipelineTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/renderingPipelineTreeItemComponent.js");
52758
- /* harmony import */ var _entities_skeletonTreeItemComponent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./entities/skeletonTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/skeletonTreeItemComponent.js");
52759
- /* harmony import */ var _entities_boneTreeItemComponent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./entities/boneTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/boneTreeItemComponent.js");
52760
- /* harmony import */ var _entities_particleSystemTreeItemComponent__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./entities/particleSystemTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/particleSystemTreeItemComponent.js");
52761
- /* harmony import */ var _entities_spriteManagerTreeItemComponent__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./entities/spriteManagerTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/spriteManagerTreeItemComponent.js");
52762
- /* harmony import */ var _entities_spriteTreeItemComponent__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./entities/spriteTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/spriteTreeItemComponent.js");
52763
- /* harmony import */ var _entities_targetedAnimationTreeItemComponent__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./entities/targetedAnimationTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/targetedAnimationTreeItemComponent.js");
52764
- /* harmony import */ var _entities_soundTreeItemComponent__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./entities/soundTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/soundTreeItemComponent.js");
52765
- /* harmony import */ var _entities_effectLayerPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./entities/effectLayerPipelineTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/effectLayerPipelineTreeItemComponent.js");
52779
+ /* harmony import */ var _extensionsComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./extensionsComponent */ "../../../dev/inspector/dist/components/sceneExplorer/extensionsComponent.js");
52780
+ /* harmony import */ var _treeItemLabelComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./treeItemLabelComponent */ "../../../dev/inspector/dist/components/sceneExplorer/treeItemLabelComponent.js");
52781
+ /* harmony import */ var _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ "../../../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs");
52782
+ /* harmony import */ var _entities_materialTreeItemComponent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./entities/materialTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/materialTreeItemComponent.js");
52783
+ /* harmony import */ var _entities_textureTreeItemComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./entities/textureTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/textureTreeItemComponent.js");
52784
+ /* harmony import */ var _entities_transformNodeTreeItemComponent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./entities/transformNodeTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/transformNodeTreeItemComponent.js");
52785
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
52786
+ /* harmony import */ var _entities_gui_controlTreeItemComponent__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./entities/gui/controlTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/gui/controlTreeItemComponent.js");
52787
+ /* harmony import */ var _entities_gui_advancedDynamicTextureTreeItemComponent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./entities/gui/advancedDynamicTextureTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/gui/advancedDynamicTextureTreeItemComponent.js");
52788
+ /* harmony import */ var _entities_animationGroupTreeItemComponent__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./entities/animationGroupTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/animationGroupTreeItemComponent.js");
52789
+ /* harmony import */ var _entities_postProcessTreeItemComponent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./entities/postProcessTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/postProcessTreeItemComponent.js");
52790
+ /* harmony import */ var _entities_renderingPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./entities/renderingPipelineTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/renderingPipelineTreeItemComponent.js");
52791
+ /* harmony import */ var _entities_skeletonTreeItemComponent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./entities/skeletonTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/skeletonTreeItemComponent.js");
52792
+ /* harmony import */ var _entities_boneTreeItemComponent__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./entities/boneTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/boneTreeItemComponent.js");
52793
+ /* harmony import */ var _entities_particleSystemTreeItemComponent__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./entities/particleSystemTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/particleSystemTreeItemComponent.js");
52794
+ /* harmony import */ var _entities_spriteManagerTreeItemComponent__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./entities/spriteManagerTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/spriteManagerTreeItemComponent.js");
52795
+ /* harmony import */ var _entities_spriteTreeItemComponent__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./entities/spriteTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/spriteTreeItemComponent.js");
52796
+ /* harmony import */ var _entities_targetedAnimationTreeItemComponent__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./entities/targetedAnimationTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/targetedAnimationTreeItemComponent.js");
52797
+ /* harmony import */ var _entities_soundTreeItemComponent__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./entities/soundTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/soundTreeItemComponent.js");
52798
+ /* harmony import */ var _entities_effectLayerPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./entities/effectLayerPipelineTreeItemComponent */ "../../../dev/inspector/dist/components/sceneExplorer/entities/effectLayerPipelineTreeItemComponent.js");
52799
+
52766
52800
 
52767
52801
 
52768
52802
 
@@ -52786,7 +52820,7 @@ __webpack_require__.r(__webpack_exports__);
52786
52820
 
52787
52821
 
52788
52822
 
52789
- class TreeItemSpecializedComponent extends react__WEBPACK_IMPORTED_MODULE_8__.Component {
52823
+ class TreeItemSpecializedComponent extends react__WEBPACK_IMPORTED_MODULE_9__.Component {
52790
52824
  constructor(props) {
52791
52825
  super(props);
52792
52826
  }
@@ -52805,19 +52839,19 @@ class TreeItemSpecializedComponent extends react__WEBPACK_IMPORTED_MODULE_8__.Co
52805
52839
  return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_meshTreeItemComponent__WEBPACK_IMPORTED_MODULE_1__.MeshTreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, mesh: mesh, onClick: () => this.onClick() }));
52806
52840
  }
52807
52841
  if (className.indexOf("SpriteManager") !== -1) {
52808
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_spriteManagerTreeItemComponent__WEBPACK_IMPORTED_MODULE_17__.SpriteManagerTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, spriteManager: entity, onClick: () => this.onClick() }));
52842
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_spriteManagerTreeItemComponent__WEBPACK_IMPORTED_MODULE_18__.SpriteManagerTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, spriteManager: entity, onClick: () => this.onClick() }));
52809
52843
  }
52810
52844
  if (className.indexOf("Sprite") !== -1) {
52811
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_spriteTreeItemComponent__WEBPACK_IMPORTED_MODULE_18__.SpriteTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, sprite: entity, onClick: () => this.onClick() });
52845
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_spriteTreeItemComponent__WEBPACK_IMPORTED_MODULE_19__.SpriteTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, sprite: entity, onClick: () => this.onClick() });
52812
52846
  }
52813
52847
  if (className.indexOf("Skeleton") !== -1) {
52814
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_skeletonTreeItemComponent__WEBPACK_IMPORTED_MODULE_14__.SkeletonTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, skeleton: entity, onClick: () => this.onClick() });
52848
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_skeletonTreeItemComponent__WEBPACK_IMPORTED_MODULE_15__.SkeletonTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, skeleton: entity, onClick: () => this.onClick() });
52815
52849
  }
52816
52850
  if (className.indexOf("Bone") !== -1) {
52817
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_boneTreeItemComponent__WEBPACK_IMPORTED_MODULE_15__.BoneTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, bone: entity, onClick: () => this.onClick() });
52851
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_boneTreeItemComponent__WEBPACK_IMPORTED_MODULE_16__.BoneTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, bone: entity, onClick: () => this.onClick() });
52818
52852
  }
52819
52853
  if (className.indexOf("TransformNode") !== -1) {
52820
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_transformNodeTreeItemComponent__WEBPACK_IMPORTED_MODULE_7__.TransformNodeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, transformNode: entity, onClick: () => this.onClick() });
52854
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_transformNodeTreeItemComponent__WEBPACK_IMPORTED_MODULE_8__.TransformNodeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, transformNode: entity, onClick: () => this.onClick() });
52821
52855
  }
52822
52856
  if (className.indexOf("Camera") !== -1) {
52823
52857
  return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_cameraTreeItemComponent__WEBPACK_IMPORTED_MODULE_2__.CameraTreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, camera: entity, onClick: () => this.onClick() }));
@@ -52826,40 +52860,40 @@ class TreeItemSpecializedComponent extends react__WEBPACK_IMPORTED_MODULE_8__.Co
52826
52860
  return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_lightTreeItemComponent__WEBPACK_IMPORTED_MODULE_3__.LightTreeItemComponent, { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, light: entity, onClick: () => this.onClick() }));
52827
52861
  }
52828
52862
  if (className.indexOf("Material") !== -1) {
52829
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_materialTreeItemComponent__WEBPACK_IMPORTED_MODULE_5__.MaterialTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, material: entity, onClick: () => this.onClick() });
52863
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_materialTreeItemComponent__WEBPACK_IMPORTED_MODULE_6__.MaterialTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, material: entity, onClick: () => this.onClick() });
52830
52864
  }
52831
52865
  if (className.indexOf("ParticleSystem") !== -1) {
52832
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_particleSystemTreeItemComponent__WEBPACK_IMPORTED_MODULE_16__.ParticleSystemTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, system: entity, onClick: () => this.onClick() });
52866
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_particleSystemTreeItemComponent__WEBPACK_IMPORTED_MODULE_17__.ParticleSystemTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, system: entity, onClick: () => this.onClick() });
52833
52867
  }
52834
52868
  if (className === "AdvancedDynamicTexture") {
52835
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_gui_advancedDynamicTextureTreeItemComponent__WEBPACK_IMPORTED_MODULE_10__.AdvancedDynamicTextureTreeItemComponent, { onSelectionChangedObservable: this.props.globalState.onSelectionChangedObservable, extensibilityGroups: this.props.extensibilityGroups, texture: entity, onClick: () => this.onClick() }));
52869
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_gui_advancedDynamicTextureTreeItemComponent__WEBPACK_IMPORTED_MODULE_11__.AdvancedDynamicTextureTreeItemComponent, { onSelectionChangedObservable: this.props.globalState.onSelectionChangedObservable, extensibilityGroups: this.props.extensibilityGroups, texture: entity, onClick: () => this.onClick() }));
52836
52870
  }
52837
52871
  if (className === "AnimationGroup") {
52838
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_animationGroupTreeItemComponent__WEBPACK_IMPORTED_MODULE_11__.AnimationGroupItemComponent, { extensibilityGroups: this.props.extensibilityGroups, animationGroup: entity, onClick: () => this.onClick() }));
52872
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_animationGroupTreeItemComponent__WEBPACK_IMPORTED_MODULE_12__.AnimationGroupItemComponent, { extensibilityGroups: this.props.extensibilityGroups, animationGroup: entity, onClick: () => this.onClick() }));
52839
52873
  }
52840
52874
  if (className === "TargetedAnimation") {
52841
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_targetedAnimationTreeItemComponent__WEBPACK_IMPORTED_MODULE_19__.TargetedAnimationItemComponent, { extensibilityGroups: this.props.extensibilityGroups, targetedAnimation: entity, onClick: () => this.onClick() }));
52875
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_targetedAnimationTreeItemComponent__WEBPACK_IMPORTED_MODULE_20__.TargetedAnimationItemComponent, { extensibilityGroups: this.props.extensibilityGroups, targetedAnimation: entity, onClick: () => this.onClick() }));
52842
52876
  }
52843
52877
  if (className.indexOf("Texture") !== -1) {
52844
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_textureTreeItemComponent__WEBPACK_IMPORTED_MODULE_6__.TextureTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, texture: entity, onClick: () => this.onClick() });
52878
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_textureTreeItemComponent__WEBPACK_IMPORTED_MODULE_7__.TextureTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, texture: entity, onClick: () => this.onClick() });
52845
52879
  }
52846
52880
  if (className.indexOf("RenderingPipeline") !== -1) {
52847
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_renderingPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_13__.RenderingPipelineItemComponent, { extensibilityGroups: this.props.extensibilityGroups, renderPipeline: entity, onClick: () => this.onClick() }));
52881
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_renderingPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_14__.RenderingPipelineItemComponent, { extensibilityGroups: this.props.extensibilityGroups, renderPipeline: entity, onClick: () => this.onClick() }));
52848
52882
  }
52849
52883
  if (className.indexOf("PostProcess") !== -1) {
52850
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_postProcessTreeItemComponent__WEBPACK_IMPORTED_MODULE_12__.PostProcessItemComponent, { extensibilityGroups: this.props.extensibilityGroups, postProcess: entity, onClick: () => this.onClick() });
52884
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_postProcessTreeItemComponent__WEBPACK_IMPORTED_MODULE_13__.PostProcessItemComponent, { extensibilityGroups: this.props.extensibilityGroups, postProcess: entity, onClick: () => this.onClick() });
52851
52885
  }
52852
52886
  if (className.indexOf("Layer") !== -1) {
52853
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_effectLayerPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_21__.EffectLayerItemComponent, { extensibilityGroups: this.props.extensibilityGroups, layer: entity, onClick: () => this.onClick() });
52887
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_effectLayerPipelineTreeItemComponent__WEBPACK_IMPORTED_MODULE_22__.EffectLayerItemComponent, { extensibilityGroups: this.props.extensibilityGroups, layer: entity, onClick: () => this.onClick() });
52854
52888
  }
52855
52889
  if (className.indexOf("Sound") !== -1) {
52856
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_soundTreeItemComponent__WEBPACK_IMPORTED_MODULE_20__.SoundTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, sound: entity, onClick: () => this.onClick() });
52890
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_soundTreeItemComponent__WEBPACK_IMPORTED_MODULE_21__.SoundTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, sound: entity, onClick: () => this.onClick() });
52857
52891
  }
52858
52892
  if (entity._host) {
52859
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_gui_controlTreeItemComponent__WEBPACK_IMPORTED_MODULE_9__.ControlTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, control: entity, onClick: () => this.onClick() });
52893
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_entities_gui_controlTreeItemComponent__WEBPACK_IMPORTED_MODULE_10__.ControlTreeItemComponent, { extensibilityGroups: this.props.extensibilityGroups, control: entity, onClick: () => this.onClick() });
52860
52894
  }
52861
52895
  }
52862
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { className: "meshTools", children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemLabelComponent__WEBPACK_IMPORTED_MODULE_4__.TreeItemLabelComponent, { label: entity.name, onClick: () => this.onClick(), icon: _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_22__.faProjectDiagram, color: "cornflowerblue" }) }));
52896
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { className: "meshTools", children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_treeItemLabelComponent__WEBPACK_IMPORTED_MODULE_5__.TreeItemLabelComponent, { label: entity.name, onClick: () => this.onClick(), icon: _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_23__.faProjectDiagram, color: "cornflowerblue" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_extensionsComponent__WEBPACK_IMPORTED_MODULE_4__.ExtensionsComponent, { target: entity, extensibilityGroups: this.props.extensibilityGroups })] }));
52863
52897
  }
52864
52898
  }
52865
52899
 
@@ -52967,6 +53001,8 @@ class Inspector {
52967
53001
  enableClose: options.enableClose,
52968
53002
  explorerExtensibility: options.explorerExtensibility,
52969
53003
  gizmoCamera: options.gizmoCamera,
53004
+ contextMenu: options.contextMenu,
53005
+ contextMenuOverride: options.contextMenuOverride,
52970
53006
  };
52971
53007
  }
52972
53008
  // Prepare the scene explorer host
@@ -52989,6 +53025,8 @@ class Inspector {
52989
53025
  this._OpenedPane++;
52990
53026
  const sceneExplorerElement = react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components_sceneExplorer_sceneExplorerComponent__WEBPACK_IMPORTED_MODULE_4__.SceneExplorerComponent, {
52991
53027
  scene,
53028
+ contextMenu: options.contextMenu,
53029
+ contextMenuOverride: options.contextMenuOverride,
52992
53030
  gizmoCamera: options.gizmoCamera,
52993
53031
  globalState: this._GlobalState,
52994
53032
  extensibilityGroups: options.explorerExtensibility,