senangwebs-aframe-editor 1.6.13 → 1.6.15

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.
@@ -95091,7 +95091,7 @@ object-assign
95091
95091
  /***/ (module) => {
95092
95092
  'use strict';
95093
95093
  module.exports = /*#__PURE__*/ JSON.parse(
95094
- '{"name":"senangwebs-aframe-editor","version":"1.6.13","description":"A fork of A-Frame Inspector designed to be use as visual editor used in SenangWebs.","main":"dist/aframe-inspector.min.js","scripts":{"build":"webpack --progress","deploy":"npm run ghpages","dist":"npm run dist:max && npm run dist:min","dist:max":"npm run build","dist:min":"cross-env MINIFY=true npm run build","ghpages":"npm run preghpages && ghpages -p gh-pages","lint":"npm run lintfile src/","lint:css":"stylelint src/css/main.css","lintfile":"eslint","preghpages":"npm run dist && shx rm -rf gh-pages && shx mkdir gh-pages && shx cp -r assets dist examples index.html gh-pages && shx sed -i http://localhost:3333 .. gh-pages/examples/index.html","prepare":"husky install","prepublish":"npm run dist","prettier":"prettier --write \'src/**/*.js\'","start":"webpack serve --progress -d eval-source-map","test":"jest --watch","test:ci":"jest"},"repository":"aframevr/aframe-inspector","license":"MIT","dependencies":{"@fortawesome/free-solid-svg-icons":"^6.5.1","@fortawesome/free-brands-svg-icons":"^6.5.1","clipboard-copy":"^4.0.1","clsx":"^2.1.0","lodash.debounce":"^4.0.8","prop-types":"^15.8.1","react":"^18.2.0","react-dom":"^18.2.0","react-select":"^5.8.0","three":"0.168.0"},"devDependencies":{"@babel/core":"^7.24.0","@babel/eslint-parser":"^7.23.10","@babel/preset-env":"^7.24.0","@babel/preset-react":"^7.23.3","autoprefixer":"^10.4.17","babel-jest":"^29.7.0","babel-loader":"^9.1.3","cross-env":"^7.0.3","css-loader":"^6.10.0","eslint":"^8.57.0","eslint-config-standard":"^17.1.0","eslint-plugin-react":"^7.33.2","ghpages":"0.0.10","husky":"^8.0.1","jest":"^29.7.0","lint-staged":"^13.0.3","postcss-loader":"^8.1.1","prettier":"^3.2.5","react-test-renderer":"^18.2.0","shx":"^0.3.4","style-loader":"^3.3.4","stylelint":"^16.2.1","stylelint-config-standard":"^36.0.0","stylelint-order":"^6.0.4","stylus":"^0.62.0","stylus-loader":"^8.1.0","webpack":"^5.91.0","webpack-cli":"^5.1.4","webpack-dev-server":"^5.0.4"},"keywords":["3d","aframe","editor","inspector","three.js","tool","unity","vr","virtualreality","webvr","wysiwyg"],"lint-staged":{"*.js":"prettier --write"}}'
95094
+ '{"name":"senangwebs-aframe-editor","version":"1.6.15","description":"A fork of A-Frame Inspector designed to be use as visual editor used in SenangWebs.","main":"dist/aframe-inspector.min.js","scripts":{"build":"webpack --progress","deploy":"npm run ghpages","dist":"npm run dist:max && npm run dist:min","dist:max":"npm run build","dist:min":"cross-env MINIFY=true npm run build","ghpages":"npm run preghpages && ghpages -p gh-pages","lint":"npm run lintfile src/","lint:css":"stylelint src/css/main.css","lintfile":"eslint","preghpages":"npm run dist && shx rm -rf gh-pages && shx mkdir gh-pages && shx cp -r assets dist examples index.html gh-pages && shx sed -i http://localhost:3333 .. gh-pages/examples/index.html","prepare":"husky install","prepublish":"npm run dist","prettier":"prettier --write \'src/**/*.js\'","start":"webpack serve --progress -d eval-source-map","test":"jest --watch","test:ci":"jest"},"repository":"aframevr/aframe-inspector","license":"MIT","dependencies":{"@fortawesome/free-solid-svg-icons":"^6.5.1","@fortawesome/free-brands-svg-icons":"^6.5.1","clipboard-copy":"^4.0.1","clsx":"^2.1.0","lodash.debounce":"^4.0.8","prop-types":"^15.8.1","react":"^18.2.0","react-dom":"^18.2.0","react-select":"^5.8.0","three":"0.168.0"},"devDependencies":{"@babel/core":"^7.24.0","@babel/eslint-parser":"^7.23.10","@babel/preset-env":"^7.24.0","@babel/preset-react":"^7.23.3","autoprefixer":"^10.4.17","babel-jest":"^29.7.0","babel-loader":"^9.1.3","cross-env":"^7.0.3","css-loader":"^6.10.0","eslint":"^8.57.0","eslint-config-standard":"^17.1.0","eslint-plugin-react":"^7.33.2","ghpages":"0.0.10","husky":"^8.0.1","jest":"^29.7.0","lint-staged":"^13.0.3","postcss-loader":"^8.1.1","prettier":"^3.2.5","react-test-renderer":"^18.2.0","shx":"^0.3.4","style-loader":"^3.3.4","stylelint":"^16.2.1","stylelint-config-standard":"^36.0.0","stylelint-order":"^6.0.4","stylus":"^0.62.0","stylus-loader":"^8.1.0","webpack":"^5.91.0","webpack-cli":"^5.1.4","webpack-dev-server":"^5.0.4"},"keywords":["3d","aframe","editor","inspector","three.js","tool","unity","vr","virtualreality","webvr","wysiwyg"],"lint-staged":{"*.js":"prettier --write"}}'
95095
95095
  );
95096
95096
 
95097
95097
  /***/
@@ -96481,6 +96481,12 @@ object-assign
96481
96481
  inspectorEnabled: enabled
96482
96482
  });
96483
96483
  });
96484
+ _defineProperty(_this, 'handleSceneReload', function (newSceneEl) {
96485
+ _this.setState({
96486
+ entity: null,
96487
+ sceneEl: newSceneEl
96488
+ });
96489
+ });
96484
96490
  _defineProperty(_this, 'handleOpenHelpModal', function () {
96485
96491
  _this.setState({
96486
96492
  isHelpOpen: true
@@ -96596,6 +96602,10 @@ object-assign
96596
96602
  'openhelpmodal',
96597
96603
  this.handleOpenHelpModal
96598
96604
  );
96605
+ _lib_Events__WEBPACK_IMPORTED_MODULE_2__['default'].on(
96606
+ 'scenereload',
96607
+ this.handleSceneReload
96608
+ );
96599
96609
  }
96600
96610
  },
96601
96611
  {
@@ -96617,6 +96627,10 @@ object-assign
96617
96627
  'openhelpmodal',
96618
96628
  this.handleOpenHelpModal
96619
96629
  );
96630
+ _lib_Events__WEBPACK_IMPORTED_MODULE_2__['default'].off(
96631
+ 'scenereload',
96632
+ this.handleSceneReload
96633
+ );
96620
96634
  }
96621
96635
  },
96622
96636
  {
@@ -96889,14 +96903,6 @@ object-assign
96889
96903
  }
96890
96904
  ),
96891
96905
  /*#__PURE__*/ (0,
96892
- react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(
96893
- _modals_ModalHelp__WEBPACK_IMPORTED_MODULE_5__['default'],
96894
- {
96895
- isOpen: this.state.isHelpOpen,
96896
- onClose: this.onCloseHelpModal
96897
- }
96898
- ),
96899
- /*#__PURE__*/ (0,
96900
96906
  react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(
96901
96907
  _modals_ModalTextures__WEBPACK_IMPORTED_MODULE_4__[
96902
96908
  'default'
@@ -103350,7 +103356,7 @@ object-assign
103350
103356
  if (!curr) {
103351
103357
  return false;
103352
103358
  }
103353
- while (curr !== undefined && curr.isEntity) {
103359
+ while (curr != null && curr.isEntity) {
103354
103360
  if (!_this.isExpanded(curr)) {
103355
103361
  return false;
103356
103362
  }
@@ -103372,7 +103378,7 @@ object-assign
103372
103378
  _defineProperty(_this, 'expandToRoot', function (x) {
103373
103379
  // Expand element all the way to the scene element
103374
103380
  var curr = x.parentNode;
103375
- while (curr !== undefined && curr.isEntity) {
103381
+ while (curr != null && curr.isEntity) {
103376
103382
  _this.state.expandedElements.set(curr, true);
103377
103383
  curr = curr.parentNode;
103378
103384
  }
@@ -103684,12 +103690,41 @@ object-assign
103684
103690
  key: 'componentDidUpdate',
103685
103691
  value:
103686
103692
  /**
103687
- * Selected entity updated from somewhere else in the app.
103693
+ * Selected entity or scene updated from somewhere else in the app.
103688
103694
  */
103689
103695
  function componentDidUpdate(prevProps) {
103690
103696
  if (prevProps.selectedEntity !== this.props.selectedEntity) {
103691
103697
  this.selectEntity(this.props.selectedEntity);
103692
103698
  }
103699
+
103700
+ // Scene element was replaced — re-attach DOM listeners.
103701
+ if (prevProps.scene !== this.props.scene) {
103702
+ if (prevProps.scene) {
103703
+ prevProps.scene.removeEventListener(
103704
+ 'child-attached',
103705
+ this.rebuildEntityOptions
103706
+ );
103707
+ prevProps.scene.removeEventListener(
103708
+ 'child-detached',
103709
+ this.rebuildEntityOptions
103710
+ );
103711
+ }
103712
+ if (this.props.scene) {
103713
+ this.props.scene.addEventListener(
103714
+ 'child-attached',
103715
+ this.rebuildEntityOptions
103716
+ );
103717
+ this.props.scene.addEventListener(
103718
+ 'child-detached',
103719
+ this.rebuildEntityOptions
103720
+ );
103721
+ }
103722
+ // Reset expanded state with new scene root.
103723
+ this.setState({
103724
+ expandedElements: new WeakMap([[this.props.scene, true]])
103725
+ });
103726
+ this.rebuildEntityOptions();
103727
+ }
103693
103728
  }
103694
103729
  },
103695
103730
  {
@@ -112556,6 +112591,119 @@ object-assign
112556
112591
  }
112557
112592
  this.isFirstOpen = false;
112558
112593
  },
112594
+ /**
112595
+ * Reload the inspector UI to reflect current scene HTML.
112596
+ * Call this after programmatically modifying the scene DOM.
112597
+ */
112598
+ reload: function reload() {
112599
+ var _this7 = this;
112600
+ // Deselect current entity.
112601
+ this.selectEntity(null);
112602
+
112603
+ // Clear all existing helpers.
112604
+ for (var id in this.helpers) {
112605
+ var helper = this.helpers[id];
112606
+ this.sceneHelpers.remove(helper);
112607
+ if (helper.dispose) {
112608
+ helper.dispose();
112609
+ }
112610
+ }
112611
+ this.helpers = {};
112612
+
112613
+ // Remove old sceneHelpers from old scene.
112614
+ if (this.scene && this.sceneHelpers.parent) {
112615
+ this.scene.remove(this.sceneHelpers);
112616
+ }
112617
+
112618
+ // Poll for new scene to register in AFRAME.scenes.
112619
+ var _waitForScene = function waitForScene() {
112620
+ var newSceneEl = AFRAME.scenes[0];
112621
+ if (!newSceneEl) {
112622
+ setTimeout(_waitForScene, 100);
112623
+ return;
112624
+ }
112625
+ _this7.sceneEl = newSceneEl;
112626
+ var _onReady = function onReady() {
112627
+ // Wait for camera too.
112628
+ if (!_this7.sceneEl.camera) {
112629
+ _this7.sceneEl.addEventListener(
112630
+ 'camera-set-active',
112631
+ function () {
112632
+ return _onReady();
112633
+ },
112634
+ {
112635
+ once: true
112636
+ }
112637
+ );
112638
+ return;
112639
+ }
112640
+
112641
+ // Re-acquire container (new scene creates new canvas).
112642
+ _this7.container = document.querySelector('.a-canvas');
112643
+
112644
+ // Re-init cameras for new scene.
112645
+ (0, _lib_cameras__WEBPACK_IMPORTED_MODULE_7__.initCameras)(_this7);
112646
+
112647
+ // Refresh scene object3D reference.
112648
+ _this7.scene = _this7.sceneEl.object3D;
112649
+
112650
+ // Re-create sceneHelpers in new scene.
112651
+ _this7.sceneHelpers = new THREE.Scene();
112652
+ _this7.sceneHelpers.userData.source = 'INSPECTOR';
112653
+ _this7.sceneHelpers.visible = true;
112654
+ _this7.scene.add(_this7.sceneHelpers);
112655
+
112656
+ // Re-init viewport (transform controls, editor controls, raycaster).
112657
+ _this7.viewport =
112658
+ new _lib_viewport__WEBPACK_IMPORTED_MODULE_2__.Viewport(_this7);
112659
+
112660
+ // Rebuild helpers from new entities.
112661
+ _this7.sceneEl.object3D.traverse(function (node) {
112662
+ _this7.addHelper(node);
112663
+ });
112664
+
112665
+ // Notify React components to update scene reference.
112666
+ _lib_Events__WEBPACK_IMPORTED_MODULE_1__['default'].emit(
112667
+ 'scenereload',
112668
+ _this7.sceneEl
112669
+ );
112670
+
112671
+ // Notify React components to rebuild scenegraph.
112672
+ _lib_Events__WEBPACK_IMPORTED_MODULE_1__['default'].emit(
112673
+ 'entitycreated'
112674
+ );
112675
+
112676
+ // Enter inspector edit mode on new scene.
112677
+ _this7.opened = true;
112678
+ _lib_Events__WEBPACK_IMPORTED_MODULE_1__['default'].emit(
112679
+ 'inspectortoggle',
112680
+ true
112681
+ );
112682
+ document.body.classList.add('aframe-inspector-opened');
112683
+ _this7.sceneEl.resize();
112684
+ _this7.sceneEl.pause();
112685
+ _this7.sceneEl.isPlaying = true;
112686
+ _this7.cursor.play();
112687
+ _lib_shortcuts__WEBPACK_IMPORTED_MODULE_4__.Shortcuts.enable();
112688
+ };
112689
+ if (_this7.sceneEl.hasLoaded) {
112690
+ _onReady();
112691
+ } else {
112692
+ _this7.sceneEl.addEventListener(
112693
+ 'loaded',
112694
+ function () {
112695
+ return _onReady();
112696
+ },
112697
+ {
112698
+ once: true
112699
+ }
112700
+ );
112701
+ }
112702
+ };
112703
+
112704
+ // Start polling (small delay to let DOM settle after replaceWith).
112705
+ setTimeout(_waitForScene, 50);
112706
+ },
112559
112707
  /**
112560
112708
  * Closes the editor and gives the control back to the scene
112561
112709
  * @return {[type]} [description]