@2112-lab/central-plant 0.1.2 → 0.1.3

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.
Files changed (46) hide show
  1. package/dist/bundle/index.js +1 -15498
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +1 -366
  3. package/dist/cjs/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1 -1448
  4. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1 -1292
  5. package/dist/cjs/node_modules/three/examples/jsm/controls/TransformControls.js +1 -1543
  6. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +1 -4374
  7. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +1 -465
  8. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +1 -117
  9. package/dist/cjs/src/animationManager.js +1 -121
  10. package/dist/cjs/src/componentManager.js +1 -151
  11. package/dist/cjs/src/debugLogger.js +1 -176
  12. package/dist/cjs/src/disposalManager.js +1 -185
  13. package/dist/cjs/src/environmentManager.js +1 -1308
  14. package/dist/cjs/src/hotReloadManager.js +1 -252
  15. package/dist/cjs/src/index.js +1 -79
  16. package/dist/cjs/src/keyboardControlsManager.js +1 -206
  17. package/dist/cjs/src/nameUtils.js +1 -106
  18. package/dist/cjs/src/pathfindingManager.js +1 -503
  19. package/dist/cjs/src/performanceMonitor.js +1 -718
  20. package/dist/cjs/src/sceneExportManager.js +1 -292
  21. package/dist/cjs/src/sceneInitializationManager.js +1 -540
  22. package/dist/cjs/src/textureConfig.js +1 -624
  23. package/dist/cjs/src/transformControlsManager.js +1 -851
  24. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -339
  25. package/dist/esm/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1 -1444
  26. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1 -1287
  27. package/dist/esm/node_modules/three/examples/jsm/controls/TransformControls.js +1 -1537
  28. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +1 -4370
  29. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +1 -461
  30. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +1 -113
  31. package/dist/esm/src/animationManager.js +1 -112
  32. package/dist/esm/src/componentManager.js +1 -123
  33. package/dist/esm/src/debugLogger.js +1 -167
  34. package/dist/esm/src/disposalManager.js +1 -155
  35. package/dist/esm/src/environmentManager.js +1 -1282
  36. package/dist/esm/src/hotReloadManager.js +1 -244
  37. package/dist/esm/src/index.js +1 -70
  38. package/dist/esm/src/keyboardControlsManager.js +1 -196
  39. package/dist/esm/src/nameUtils.js +1 -99
  40. package/dist/esm/src/pathfindingManager.js +1 -479
  41. package/dist/esm/src/performanceMonitor.js +1 -712
  42. package/dist/esm/src/sceneExportManager.js +1 -286
  43. package/dist/esm/src/sceneInitializationManager.js +1 -513
  44. package/dist/esm/src/textureConfig.js +1 -595
  45. package/dist/esm/src/transformControlsManager.js +1 -827
  46. package/package.json +1 -1
@@ -1,252 +1 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
6
-
7
- /**
8
- * Hot-Reload Manager Module
9
- * Handles development environment hot-reload detection and cleanup
10
- */
11
-
12
- // Check if we're in a browser environment
13
- var isBrowser = typeof window !== 'undefined';
14
- var isDev = isBrowser && process.env.NODE_ENV === 'development';
15
- var HotReloadManager = /*#__PURE__*/function () {
16
- function HotReloadManager(componentInstance) {
17
- _rollupPluginBabelHelpers.classCallCheck(this, HotReloadManager);
18
- this.component = componentInstance;
19
- this.isDev = isDev;
20
- this.instanceId = Date.now() + Math.random();
21
-
22
- // Event handlers
23
- this.hotReloadCleanupHandler = null;
24
- this.visibilityChangeHandler = null;
25
- this.nuxtHotReloadHandler = null;
26
- this.memoryCheckInterval = null;
27
-
28
- // Async operation tracking
29
- this.timeoutIds = new Set();
30
- this.intervalIds = new Set();
31
- }
32
-
33
- /**
34
- * Setup hot-reload handling for development environment
35
- */
36
- return _rollupPluginBabelHelpers.createClass(HotReloadManager, [{
37
- key: "setupHotReloadHandling",
38
- value: function setupHotReloadHandling() {
39
- var _this = this;
40
- if (!isBrowser || !this.isDev) {
41
- console.log('Not in browser or development mode, skipping hot-reload setup');
42
- return;
43
- }
44
- console.log('Setting up hot-reload handling...');
45
-
46
- // Initialize global instance tracking
47
- if (!window._sceneViewerInstances) {
48
- window._sceneViewerInstances = new Set();
49
- console.log('🔧 [Hot-Reload] Initialized global instance tracking');
50
- }
51
-
52
- // Add this instance to global tracking
53
- window._sceneViewerInstances.add(this.component);
54
- console.log('📍 [Hot-Reload] Instance registered:', {
55
- instanceId: this.instanceId,
56
- totalInstances: window._sceneViewerInstances.size
57
- });
58
-
59
- // Enhanced beforeunload handler for development
60
- this.hotReloadCleanupHandler = function () {
61
- console.log('🔄 [Hot-Reload] Page unload detected, performing enhanced cleanup');
62
- if (_this.component && typeof _this.component.enhancedDisposal === 'function') {
63
- _this.component.enhancedDisposal();
64
- }
65
- if (window._sceneViewerInstances) {
66
- window._sceneViewerInstances.delete(_this.component);
67
- }
68
- };
69
-
70
- // Add event listeners
71
- window.addEventListener('beforeunload', this.hotReloadCleanupHandler);
72
- window.addEventListener('pagehide', this.hotReloadCleanupHandler);
73
- console.log('✅ [Hot-Reload] Hot-reload handling setup completed');
74
- }
75
-
76
- /**
77
- * Cleanup hot-reload handlers (development only)
78
- */
79
- }, {
80
- key: "cleanupHotReloadHandlers",
81
- value: function cleanupHotReloadHandlers() {
82
- if (!isBrowser || !this.isDev) return;
83
-
84
- // Remove event listeners
85
- if (this.hotReloadCleanupHandler) {
86
- window.removeEventListener('beforeunload', this.hotReloadCleanupHandler);
87
- window.removeEventListener('pagehide', this.hotReloadCleanupHandler);
88
- this.hotReloadCleanupHandler = null;
89
- }
90
- if (this.visibilityChangeHandler) {
91
- document.removeEventListener('visibilitychange', this.visibilityChangeHandler);
92
- this.visibilityChangeHandler = null;
93
- }
94
-
95
- // Remove Nuxt hot-reload handlers
96
- if (this.nuxtHotReloadHandler && window.$nuxt && window.$nuxt.$off) {
97
- window.$nuxt.$off('routeChanged', this.nuxtHotReloadHandler);
98
- window.$nuxt.$off('$nuxtReady', this.nuxtHotReloadHandler);
99
- this.nuxtHotReloadHandler = null;
100
- }
101
-
102
- // Clear memory monitoring interval
103
- if (this.memoryCheckInterval) {
104
- clearInterval(this.memoryCheckInterval);
105
- this.memoryCheckInterval = null;
106
- }
107
-
108
- // Remove from global instance tracking
109
- if (window._sceneViewerInstances) {
110
- window._sceneViewerInstances.delete(this.component);
111
- console.log('📍 [Hot-Reload] Instance removed from tracking:', {
112
- instanceId: this.instanceId,
113
- remainingInstances: window._sceneViewerInstances.size
114
- });
115
- }
116
- }
117
-
118
- /**
119
- * Track a timeout ID for cleanup on component destruction
120
- */
121
- }, {
122
- key: "trackTimeout",
123
- value: function trackTimeout(timeoutId) {
124
- if (timeoutId) {
125
- this.timeoutIds.add(timeoutId);
126
- }
127
- return timeoutId;
128
- }
129
-
130
- /**
131
- * Track an interval ID for cleanup on component destruction
132
- */
133
- }, {
134
- key: "trackInterval",
135
- value: function trackInterval(intervalId) {
136
- if (intervalId) {
137
- this.intervalIds.add(intervalId);
138
- }
139
- return intervalId;
140
- }
141
-
142
- /**
143
- * Clear a tracked timeout and remove from tracking
144
- */
145
- }, {
146
- key: "clearTrackedTimeout",
147
- value: function clearTrackedTimeout(timeoutId) {
148
- if (this.timeoutIds.has(timeoutId)) {
149
- clearTimeout(timeoutId);
150
- this.timeoutIds.delete(timeoutId);
151
- return true;
152
- }
153
- return false;
154
- }
155
-
156
- /**
157
- * Clear a tracked interval and remove from tracking
158
- */
159
- }, {
160
- key: "clearTrackedInterval",
161
- value: function clearTrackedInterval(intervalId) {
162
- if (this.intervalIds.has(intervalId)) {
163
- clearInterval(intervalId);
164
- this.intervalIds.delete(intervalId);
165
- return true;
166
- }
167
- return false;
168
- }
169
-
170
- /**
171
- * Clear all tracked timeouts and intervals
172
- */
173
- }, {
174
- key: "clearAllTrackedTimers",
175
- value: function clearAllTrackedTimers() {
176
- // Clear all timeouts
177
- this.timeoutIds.forEach(function (id) {
178
- clearTimeout(id);
179
- });
180
- this.timeoutIds.clear();
181
-
182
- // Clear all intervals
183
- this.intervalIds.forEach(function (id) {
184
- clearInterval(id);
185
- });
186
- this.intervalIds.clear();
187
- console.log('🧹 [Hot-Reload] Cleared all tracked timers');
188
- }
189
- }]);
190
- }();
191
-
192
- /**
193
- * Simple utility to handle hot-reload for componentId
194
- * @param {string} instanceId - Unique instance identifier for the component
195
- * @param {Function} cleanupMethod - Method to call to clean up resources
196
- */
197
- function handleHotReload(instanceId, cleanupMethod) {
198
- if (!isBrowser || !isDev) return;
199
-
200
- // Initialize registry if needed
201
- if (!window._hotReloadRegistry) {
202
- window._hotReloadRegistry = new Map();
203
- }
204
-
205
- // If we're reloading and have a previous instance with the same ID, clean it up
206
- var existingInstance = window._hotReloadRegistry.get(instanceId);
207
- if (existingInstance) {
208
- console.log("\uD83D\uDD25 [Hot-Reload] Detected hot reload for instance: ".concat(instanceId));
209
- if (typeof existingInstance.cleanup === 'function') {
210
- existingInstance.cleanup();
211
- }
212
- }
213
-
214
- // Register new instance
215
- window._hotReloadRegistry.set(instanceId, {
216
- timestamp: Date.now(),
217
- cleanup: cleanupMethod
218
- });
219
- }
220
-
221
- /**
222
- * Check if we're currently hot-reloading
223
- */
224
- function isHotReloading() {
225
- return isDev && isBrowser && window._hotReloadRegistry && window._hotReloadRegistry.size > 0;
226
- }
227
-
228
- /**
229
- * Clean up resources for a component before hot-reload
230
- * @param {string} instanceId - ID of the component instance to clean up
231
- */
232
- function cleanupForHotReload(instanceId) {
233
- if (!isBrowser || !isDev || !window._hotReloadRegistry) return;
234
- var instance = window._hotReloadRegistry.get(instanceId);
235
- if (instance && typeof instance.cleanup === 'function') {
236
- instance.cleanup();
237
- window._hotReloadRegistry.delete(instanceId);
238
- console.log("\uD83E\uDDF9 [Hot-Reload] Cleaned up instance: ".concat(instanceId));
239
- }
240
- }
241
- var hotReloadManager = {
242
- HotReloadManager: HotReloadManager,
243
- handleHotReload: handleHotReload,
244
- isHotReloading: isHotReloading,
245
- cleanupForHotReload: cleanupForHotReload
246
- };
247
-
248
- exports.HotReloadManager = HotReloadManager;
249
- exports.cleanupForHotReload = cleanupForHotReload;
250
- exports["default"] = hotReloadManager;
251
- exports.handleHotReload = handleHotReload;
252
- exports.isHotReloading = isHotReloading;
1
+ "use strict";Object.defineProperty(exports,"t",{value:!0});var t=require("../_virtual/_rollupPluginBabelHelpers.js"),i="undefined"!=typeof window,e=i&&"development"===process.env.NODE_ENV,n=function(){return t.createClass(function i(n){t.classCallCheck(this,i),this.component=n,this.isDev=e,this.instanceId=Date.now()+Math.random(),this.hotReloadCleanupHandler=null,this.visibilityChangeHandler=null,this.nuxtHotReloadHandler=null,this.memoryCheckInterval=null,this.timeoutIds=new Set,this.intervalIds=new Set},[{key:"setupHotReloadHandling",value:function(){var t=this;i&&this.isDev&&(window._sceneViewerInstances||(window._sceneViewerInstances=new Set),window._sceneViewerInstances.add(this.component),this.hotReloadCleanupHandler=function(){t.component&&"function"==typeof t.component.enhancedDisposal&&t.component.enhancedDisposal(),window._sceneViewerInstances&&window._sceneViewerInstances.delete(t.component)},window.addEventListener("beforeunload",this.hotReloadCleanupHandler),window.addEventListener("pagehide",this.hotReloadCleanupHandler))}},{key:"cleanupHotReloadHandlers",value:function(){i&&this.isDev&&(this.hotReloadCleanupHandler&&(window.removeEventListener("beforeunload",this.hotReloadCleanupHandler),window.removeEventListener("pagehide",this.hotReloadCleanupHandler),this.hotReloadCleanupHandler=null),this.visibilityChangeHandler&&(document.removeEventListener("visibilitychange",this.visibilityChangeHandler),this.visibilityChangeHandler=null),this.nuxtHotReloadHandler&&window.$nuxt&&window.$nuxt.$off&&(window.$nuxt.$off("routeChanged",this.nuxtHotReloadHandler),window.$nuxt.$off("$nuxtReady",this.nuxtHotReloadHandler),this.nuxtHotReloadHandler=null),this.memoryCheckInterval&&(clearInterval(this.memoryCheckInterval),this.memoryCheckInterval=null),window._sceneViewerInstances&&window._sceneViewerInstances.delete(this.component))}},{key:"trackTimeout",value:function(t){return t&&this.timeoutIds.add(t),t}},{key:"trackInterval",value:function(t){return t&&this.intervalIds.add(t),t}},{key:"clearTrackedTimeout",value:function(t){return!!this.timeoutIds.has(t)&&(clearTimeout(t),this.timeoutIds.delete(t),!0)}},{key:"clearTrackedInterval",value:function(t){return!!this.intervalIds.has(t)&&(clearInterval(t),this.intervalIds.delete(t),!0)}},{key:"clearAllTrackedTimers",value:function(){this.timeoutIds.forEach(function(t){clearTimeout(t)}),this.timeoutIds.clear(),this.intervalIds.forEach(function(t){clearInterval(t)}),this.intervalIds.clear()}}])}();function o(t,n){if(i&&e){window._hotReloadRegistry||(window._hotReloadRegistry=new Map);var o=window._hotReloadRegistry.get(t);o&&"function"==typeof o.cleanup&&o.cleanup(),window._hotReloadRegistry.set(t,{timestamp:Date.now(),cleanup:n})}}function l(){return e&&i&&window._hotReloadRegistry&&window._hotReloadRegistry.size>0}function s(t){if(i&&e&&window._hotReloadRegistry){var n=window._hotReloadRegistry.get(t);n&&"function"==typeof n.cleanup&&(n.cleanup(),window._hotReloadRegistry.delete(t))}}var u={HotReloadManager:n,handleHotReload:o,isHotReloading:l,cleanupForHotReload:s};exports.HotReloadManager=n,exports.cleanupForHotReload=s,exports.default=u,exports.handleHotReload=o,exports.isHotReloading=l;
@@ -1,79 +1 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var animationManager = require('./animationManager.js');
6
- var componentManager = require('./componentManager.js');
7
- var debugLogger = require('./debugLogger.js');
8
- var disposalManager = require('./disposalManager.js');
9
- var environmentManager = require('./environmentManager.js');
10
- var hotReloadManager = require('./hotReloadManager.js');
11
- var keyboardControlsManager = require('./keyboardControlsManager.js');
12
- var nameUtils = require('./nameUtils.js');
13
- var pathfindingManager = require('./pathfindingManager.js');
14
- var performanceMonitor = require('./performanceMonitor.js');
15
- var sceneExportManager = require('./sceneExportManager.js');
16
- var sceneInitializationManager = require('./sceneInitializationManager.js');
17
- var textureConfig = require('./textureConfig.js');
18
- var transformControlsManager = require('./transformControlsManager.js');
19
-
20
- // Import all utility modules
21
-
22
- /**
23
- * Central API object that provides access to all utility modules
24
- * @type {Object}
25
- * @property {Object} animation - Animation management utilities
26
- * @property {Object} component - Component management utilities
27
- * @property {Object} debug - Debugging and logging utilities
28
- * @property {Object} disposal - Resource disposal utilities
29
- * @property {Object} environment - 3D environment management utilities
30
- * @property {Object} hotReload - Hot reload handling utilities
31
- * @property {Object} keyboardControls - Keyboard controls management
32
- * @property {Object} name - Name and UUID management utilities
33
- * @property {Object} pathfinding - Pathfinding utilities
34
- * @property {Object} performance - Performance monitoring utilities
35
- * @property {Object} sceneExport - Scene export utilities
36
- * @property {Object} sceneInitialization - Scene initialization utilities
37
- * @property {Object} texture - Texture management utilities
38
- * @property {Object} transformControls - Transform controls utilities
39
- */
40
- var CentralPlantUtils = {
41
- animation: animationManager,
42
- component: componentManager,
43
- debug: debugLogger,
44
- disposal: disposalManager,
45
- environment: environmentManager,
46
- hotReload: hotReloadManager,
47
- keyboardControls: keyboardControlsManager,
48
- name: nameUtils,
49
- pathfinding: pathfindingManager,
50
- performance: performanceMonitor,
51
- sceneExport: sceneExportManager,
52
- sceneInitialization: sceneInitializationManager,
53
- texture: textureConfig,
54
- transformControls: transformControlsManager
55
- };
56
-
57
- exports.animationManager = animationManager;
58
- exports.componentManager = componentManager;
59
- exports.debugLogger = debugLogger;
60
- exports.logger = debugLogger.logger;
61
- exports.modelLogger = debugLogger.modelLogger;
62
- exports.pathfinderLogger = debugLogger.pathfinderLogger;
63
- exports.transformLogger = debugLogger.transformLogger;
64
- exports.disposalManager = disposalManager;
65
- exports.environmentManager = environmentManager;
66
- exports.hotReloadManager = hotReloadManager;
67
- exports.keyboardControlsManager = keyboardControlsManager;
68
- exports.findObjectByHardcodedUuid = nameUtils.findObjectByHardcodedUuid;
69
- exports.generateUuidFromName = nameUtils.generateUuidFromName;
70
- exports.getHardcodedUuid = nameUtils.getHardcodedUuid;
71
- exports.nameUtils = nameUtils;
72
- exports.pathfindingManager = pathfindingManager;
73
- exports.getSceneExportManager = sceneExportManager.getSceneExportManager;
74
- exports.sceneExportManager = sceneExportManager;
75
- exports.sceneInitializationManager = sceneInitializationManager;
76
- exports.textureConfig = textureConfig;
77
- exports.getTransformControlsManager = transformControlsManager.getTransformControlsManager;
78
- exports.transformControlsManager = transformControlsManager;
79
- exports["default"] = CentralPlantUtils;
1
+ "use strict";Object.defineProperty(exports,"o",{value:!0});var e=require("./animationManager.js"),r=require("./componentManager.js"),o=require("./debugLogger.js"),s=require("./disposalManager.js"),t=require("./environmentManager.js"),n=require("./hotReloadManager.js"),a=require("./keyboardControlsManager.js"),i=require("./nameUtils.js"),p=require("./pathfindingManager.js"),x=require("./performanceMonitor.js"),u=require("./sceneExportManager.js"),g=require("./sceneInitializationManager.js"),j=require("./textureConfig.js"),q=require("./transformControlsManager.js"),l={animation:e,component:r,debug:o,disposal:s,environment:t,hotReload:n,keyboardControls:a,name:i,pathfinding:p,performance:x,sceneExport:u,sceneInitialization:g,texture:j,transformControls:q};exports.animationManager=e,exports.componentManager=r,exports.debugLogger=o,exports.logger=o.logger,exports.modelLogger=o.modelLogger,exports.pathfinderLogger=o.pathfinderLogger,exports.transformLogger=o.transformLogger,exports.disposalManager=s,exports.environmentManager=t,exports.hotReloadManager=n,exports.keyboardControlsManager=a,exports.findObjectByHardcodedUuid=i.findObjectByHardcodedUuid,exports.generateUuidFromName=i.generateUuidFromName,exports.getHardcodedUuid=i.getHardcodedUuid,exports.nameUtils=i,exports.pathfindingManager=p,exports.getSceneExportManager=u.getSceneExportManager,exports.sceneExportManager=u,exports.sceneInitializationManager=g,exports.textureConfig=j,exports.getTransformControlsManager=q.getTransformControlsManager,exports.transformControlsManager=q,exports.default=l;
@@ -1,206 +1 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var debugLogger = require('./debugLogger.js');
6
-
7
- /**
8
- * Keyboard Controls Manager
9
- * Manages keyboard shortcuts and controls
10
- */
11
-
12
- // Store registered key handlers
13
- var keyHandlers = new Map();
14
- var isListening = false;
15
-
16
- /**
17
- * Initialize keyboard controls
18
- */
19
- function initKeyboardControls() {
20
- if (typeof window === 'undefined') {
21
- debugLogger.logger.warn('Cannot initialize keyboard controls: window is not defined');
22
- return;
23
- }
24
-
25
- // Only add event listener once
26
- if (isListening) return;
27
-
28
- // Handle keydown events
29
- window.addEventListener('keydown', handleKeyDown);
30
- window.addEventListener('keyup', handleKeyUp);
31
- isListening = true;
32
- debugLogger.logger.info('Keyboard controls initialized');
33
- }
34
-
35
- /**
36
- * Clean up keyboard controls
37
- */
38
- function cleanupKeyboardControls() {
39
- if (typeof window === 'undefined' || !isListening) {
40
- return;
41
- }
42
- window.removeEventListener('keydown', handleKeyDown);
43
- window.removeEventListener('keyup', handleKeyUp);
44
- keyHandlers.clear();
45
- isListening = false;
46
- debugLogger.logger.info('Keyboard controls cleaned up');
47
- }
48
-
49
- /**
50
- * Handler for keydown events
51
- */
52
- function handleKeyDown(event) {
53
- // Get key or combination
54
- var keyCombo = getKeyCombo(event);
55
-
56
- // Get handler for this key
57
- var handler = keyHandlers.get(keyCombo);
58
- if (handler) {
59
- event.preventDefault();
60
- handler.callback(event);
61
- }
62
- }
63
-
64
- /**
65
- * Handler for keyup events
66
- */
67
- function handleKeyUp(event) {
68
- var keyCombo = getKeyCombo(event);
69
-
70
- // Get handler for this key
71
- var handler = keyHandlers.get(keyCombo);
72
- if (handler && handler.onKeyUp) {
73
- event.preventDefault();
74
- handler.onKeyUp(event);
75
- }
76
- }
77
-
78
- /**
79
- * Register a key handler
80
- */
81
- function registerKeyHandler(key, callback) {
82
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
83
- // Normalize key format
84
- var normalizedKey = normalizeKey(key);
85
-
86
- // Register handler
87
- keyHandlers.set(normalizedKey, {
88
- callback: callback,
89
- onKeyUp: options.onKeyUp || null,
90
- description: options.description || ''
91
- });
92
-
93
- // Initialize controls if not already done
94
- if (!isListening) {
95
- initKeyboardControls();
96
- }
97
- return normalizedKey;
98
- }
99
-
100
- /**
101
- * Unregister a key handler
102
- */
103
- function unregisterKeyHandler(key) {
104
- var normalizedKey = normalizeKey(key);
105
- return keyHandlers.delete(normalizedKey);
106
- }
107
-
108
- /**
109
- * Get all registered key handlers
110
- */
111
- function getRegisteredKeyHandlers() {
112
- var handlers = [];
113
- keyHandlers.forEach(function (handler, key) {
114
- handlers.push({
115
- key: key,
116
- description: handler.description
117
- });
118
- });
119
- return handlers;
120
- }
121
-
122
- /**
123
- * Helper function to normalize key format
124
- */
125
- function normalizeKey(key) {
126
- return key.toLowerCase();
127
- }
128
-
129
- /**
130
- * Helper function to get key combo string from event
131
- */
132
- function getKeyCombo(event) {
133
- var combo = '';
134
- if (event.ctrlKey) combo += 'ctrl+';
135
- if (event.altKey) combo += 'alt+';
136
- if (event.shiftKey) combo += 'shift+';
137
- if (event.metaKey) combo += 'meta+';
138
- combo += event.key.toLowerCase();
139
- return combo;
140
- }
141
-
142
- /**
143
- * Setup common keyboard controls for a Three.js scene
144
- */
145
- function setupCommonControls(component) {
146
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
147
- // Reset view
148
- registerKeyHandler('r', function () {
149
- if (component.camera && component.controls) {
150
- component.camera.position.set(-10, 10, 10);
151
- component.controls.target.set(0, 0, 0);
152
- component.controls.update();
153
- debugLogger.logger.info('Camera reset');
154
- }
155
- }, {
156
- description: 'Reset camera view'
157
- });
158
-
159
- // Toggle wireframe mode
160
- registerKeyHandler('w', function () {
161
- if (component.scene) {
162
- var wireframeEnabled = !options.wireframeEnabled;
163
- options.wireframeEnabled = wireframeEnabled;
164
- component.scene.traverse(function (object) {
165
- if (object.isMesh && object.material) {
166
- if (Array.isArray(object.material)) {
167
- object.material.forEach(function (mat) {
168
- mat.wireframe = wireframeEnabled;
169
- });
170
- } else {
171
- object.material.wireframe = wireframeEnabled;
172
- }
173
- }
174
- });
175
- debugLogger.logger.info("Wireframe mode: ".concat(wireframeEnabled ? 'enabled' : 'disabled'));
176
- }
177
- }, {
178
- description: 'Toggle wireframe mode'
179
- });
180
-
181
- // Toggle performance monitor
182
- registerKeyHandler('p', function () {
183
- if (component.performanceUI) {
184
- component.performanceUI.toggle();
185
- }
186
- }, {
187
- description: 'Toggle performance monitor'
188
- });
189
- debugLogger.logger.info('Common keyboard controls setup');
190
- }
191
- var keyboardControlsManager = {
192
- initKeyboardControls: initKeyboardControls,
193
- cleanupKeyboardControls: cleanupKeyboardControls,
194
- registerKeyHandler: registerKeyHandler,
195
- unregisterKeyHandler: unregisterKeyHandler,
196
- getRegisteredKeyHandlers: getRegisteredKeyHandlers,
197
- setupCommonControls: setupCommonControls
198
- };
199
-
200
- exports.cleanupKeyboardControls = cleanupKeyboardControls;
201
- exports["default"] = keyboardControlsManager;
202
- exports.getRegisteredKeyHandlers = getRegisteredKeyHandlers;
203
- exports.initKeyboardControls = initKeyboardControls;
204
- exports.registerKeyHandler = registerKeyHandler;
205
- exports.setupCommonControls = setupCommonControls;
206
- exports.unregisterKeyHandler = unregisterKeyHandler;
1
+ "use strict";Object.defineProperty(exports,"o",{value:!0});var e=require("./debugLogger.js"),n=new Map,o=!1;function r(){"undefined"!=typeof window?o||(window.addEventListener("keydown",i),window.addEventListener("keyup",d),o=!0,e.logger.info("Keyboard controls initialized")):e.logger.warn("Cannot initialize keyboard controls: window is not defined")}function t(){"undefined"!=typeof window&&o&&(window.removeEventListener("keydown",i),window.removeEventListener("keyup",d),n.clear(),o=!1,e.logger.info("Keyboard controls cleaned up"))}function i(e){var o=f(e),r=n.get(o);r&&(e.preventDefault(),r.callback(e))}function d(e){var o=f(e),r=n.get(o);r&&r.onKeyUp&&(e.preventDefault(),r.onKeyUp(e))}function a(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},d=c(e);return n.set(d,{callback:t,onKeyUp:i.onKeyUp||null,description:i.description||""}),o||r(),d}function u(e){var o=c(e);return n.delete(o)}function s(){var e=[];return n.forEach(function(n,o){e.push({key:o,description:n.description})}),e}function c(e){return e.toLowerCase()}function f(e){var n="";return e.ctrlKey&&(n+="ctrl+"),e.altKey&&(n+="alt+"),e.shiftKey&&(n+="shift+"),e.metaKey&&(n+="meta+"),n+=e.key.toLowerCase()}function l(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a("r",function(){n.camera&&n.controls&&(n.camera.position.set(-10,10,10),n.controls.target.set(0,0,0),n.controls.update(),e.logger.info("Camera reset"))},{description:"Reset camera view"}),a("w",function(){if(n.scene){var r=!o.wireframeEnabled;o.wireframeEnabled=r,n.scene.traverse(function(e){e.isMesh&&e.material&&(Array.isArray(e.material)?e.material.forEach(function(e){e.wireframe=r}):e.material.wireframe=r)}),e.logger.info("Wireframe mode: ".concat(r?"enabled":"disabled"))}},{description:"Toggle wireframe mode"}),a("p",function(){n.performanceUI&&n.performanceUI.toggle()},{description:"Toggle performance monitor"}),e.logger.info("Common keyboard controls setup")}var p={initKeyboardControls:r,cleanupKeyboardControls:t,registerKeyHandler:a,unregisterKeyHandler:u,getRegisteredKeyHandlers:s,setupCommonControls:l};exports.cleanupKeyboardControls=t,exports.default=p,exports.getRegisteredKeyHandlers=s,exports.initKeyboardControls=r,exports.registerKeyHandler=a,exports.setupCommonControls=l,exports.unregisterKeyHandler=u;
@@ -1,106 +1 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- /**
6
- * Name Utilities
7
- * Common helper functions for name and UUID generation
8
- */
9
-
10
- /**
11
- * Generate UUID from name using consistent transformation rules
12
- * @param {string} name - The name to convert to UUID
13
- * @returns {string} The generated UUID
14
- */
15
- function generateUuidFromName(name) {
16
- if (!name) return null;
17
-
18
- // Convert name to uppercase and replace spaces with hyphens
19
- var uuid = name.toUpperCase().replace(/\s+COMPONENT$/i, '') // Remove "Component" suffix
20
- .replace(/\s+/g, '-') // Replace spaces with hyphens
21
- .replace(/[^A-Z0-9\-]/g, ''); // Remove special characters except hyphens
22
-
23
- // Clean up any duplicate "COMPONENT" text that might have been left behind
24
- uuid = uuid.replace(/-COMPONENT$/, '');
25
- return uuid;
26
- }
27
-
28
- /**
29
- * Check if two names would generate the same UUID
30
- * @param {string} name1 - First name
31
- * @param {string} name2 - Second name
32
- * @returns {boolean} Whether the names generate the same UUID
33
- */
34
- function namesGenerateSameUuid(name1, name2) {
35
- var uuid1 = generateUuidFromName(name1);
36
- var uuid2 = generateUuidFromName(name2);
37
- return uuid1 && uuid2 && uuid1 === uuid2;
38
- }
39
-
40
- /**
41
- * Find an object in a Three.js scene by hardcoded UUID with fallback strategies
42
- * @param {THREE.Scene} scene - The Three.js scene to search
43
- * @param {string} targetUuid - The UUID to search for
44
- * @returns {THREE.Object3D|null} The found object or null
45
- */
46
- function findObjectByHardcodedUuid(scene, targetUuid) {
47
- if (!scene || !targetUuid) return null;
48
- var foundObject = null;
49
- scene.traverse(function (child) {
50
- var _child$userData;
51
- if (foundObject) return; // Stop if already found
52
-
53
- // Strategy 1: Direct UUID match (HIGHEST PRIORITY)
54
- if (child.uuid === targetUuid) {
55
- foundObject = child;
56
- return;
57
- }
58
-
59
- // Strategy 2: Original hardcoded UUID match
60
- if (((_child$userData = child.userData) === null || _child$userData === void 0 ? void 0 : _child$userData.originalUuid) === targetUuid) {
61
- foundObject = child;
62
- return;
63
- }
64
-
65
- // Strategy 3: Name-based UUID match (FALLBACK)
66
- if (child.name) {
67
- var generatedUuid = generateUuidFromName(child.name);
68
- if (generatedUuid === targetUuid) {
69
- foundObject = child;
70
- return;
71
- }
72
- }
73
- });
74
- return foundObject;
75
- }
76
-
77
- /**
78
- * Get the hardcoded UUID for an object, prioritizing original over current
79
- * @param {THREE.Object3D} object - The Three.js object
80
- * @returns {string|null} The hardcoded UUID or null
81
- */
82
- function getHardcodedUuid(object) {
83
- var _object$userData;
84
- if (!object) return null;
85
-
86
- // Priority 1: Original hardcoded UUID stored in userData
87
- if ((_object$userData = object.userData) !== null && _object$userData !== void 0 && _object$userData.originalUuid) {
88
- return object.userData.originalUuid;
89
- }
90
-
91
- // Priority 2: Current UUID (if it looks like a hardcoded one)
92
- if (object.uuid && !object.uuid.includes('-') && object.uuid.length > 10) {
93
- return object.uuid;
94
- }
95
-
96
- // Priority 3: Generate from name if available
97
- if (object.name) {
98
- return generateUuidFromName(object.name);
99
- }
100
- return null;
101
- }
102
-
103
- exports.findObjectByHardcodedUuid = findObjectByHardcodedUuid;
104
- exports.generateUuidFromName = generateUuidFromName;
105
- exports.getHardcodedUuid = getHardcodedUuid;
106
- exports.namesGenerateSameUuid = namesGenerateSameUuid;
1
+ "use strict";function r(r){if(!r)return null;var n=r.toUpperCase().replace(/\s+COMPONENT$/i,"").replace(/\s+/g,"-").replace(/[^A-Z0-9\-]/g,"");return n=n.replace(/-COMPONENT$/,"")}Object.defineProperty(exports,"u",{value:!0}),exports.findObjectByHardcodedUuid=function(n,u){if(!n||!u)return null;var e=null;return n.traverse(function(n){var t;if(!e)if(n.uuid!==u)if((null===(t=n.userData)||void 0===t?void 0:t.originalUuid)!==u){if(n.name&&r(n.name)===u)return void(e=n)}else e=n;else e=n}),e},exports.generateUuidFromName=r,exports.getHardcodedUuid=function(n){var u;return n?null!==(u=n.userData)&&void 0!==u&&u.originalUuid?n.userData.originalUuid:n.uuid&&!n.uuid.includes("-")&&n.uuid.length>10?n.uuid:n.name?r(n.name):null:null},exports.namesGenerateSameUuid=function(n,u){var e=r(n),t=r(u);return e&&t&&e===t};