@2112-lab/central-plant 0.1.4 → 0.1.5

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 (87) hide show
  1. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +432 -1
  2. package/dist/cjs/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1448 -1
  3. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1853 -1
  4. package/dist/cjs/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3537 -1
  5. package/dist/cjs/node_modules/three/examples/jsm/exporters/OBJExporter.js +305 -1
  6. package/dist/cjs/node_modules/three/examples/jsm/exporters/PLYExporter.js +542 -1
  7. package/dist/cjs/node_modules/three/examples/jsm/exporters/STLExporter.js +218 -1
  8. package/dist/cjs/node_modules/three/examples/jsm/loaders/DRACOLoader.js +683 -1
  9. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4811 -1
  10. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +480 -1
  11. package/dist/cjs/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +309 -1
  12. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +120 -1
  13. package/dist/cjs/src/analysis/analysis.js +560 -1
  14. package/dist/cjs/src/analysis/testing.js +958 -1
  15. package/dist/cjs/src/core/centralPlant.js +1149 -1
  16. package/dist/cjs/src/core/debugLogger.js +175 -1
  17. package/dist/cjs/src/core/mathUtils.js +574 -1
  18. package/dist/cjs/src/core/nameUtils.js +93 -1
  19. package/dist/cjs/src/data/export.js +716 -1
  20. package/dist/cjs/src/data/import.js +380 -1
  21. package/dist/cjs/src/data/numerics.js +522 -1
  22. package/dist/cjs/src/helpers/sceneHelper.js +572 -1
  23. package/dist/cjs/src/index.js +69 -1
  24. package/dist/cjs/src/managers/components/animationManager.js +123 -1
  25. package/dist/cjs/src/managers/components/componentManager.js +332 -1
  26. package/dist/cjs/src/managers/components/pathfindingManager.js +1441 -1
  27. package/dist/cjs/src/managers/controls/TransformControls.js +1063 -1
  28. package/dist/cjs/src/managers/controls/cameraControlsManager.js +79 -1
  29. package/dist/cjs/src/managers/controls/dragDropManager.js +1026 -1
  30. package/dist/cjs/src/managers/controls/keyboardControlsManager.js +395 -1
  31. package/dist/cjs/src/managers/controls/transformControlsManager.js +1807 -1
  32. package/dist/cjs/src/managers/environment/environmentManager.js +714 -1
  33. package/dist/cjs/src/managers/environment/textureConfig.js +229 -1
  34. package/dist/cjs/src/managers/scene/sceneExportManager.js +264 -1
  35. package/dist/cjs/src/managers/scene/sceneInitializationManager.js +346 -1
  36. package/dist/cjs/src/managers/scene/sceneOperationsManager.js +1509 -1
  37. package/dist/cjs/src/managers/scene/sceneTooltipsManager.js +661 -1
  38. package/dist/cjs/src/managers/system/disposalManager.js +444 -1
  39. package/dist/cjs/src/managers/system/hotReloadManager.js +291 -1
  40. package/dist/cjs/src/managers/system/performanceMonitor.js +863 -1
  41. package/dist/cjs/src/rendering/modelPreloader.js +369 -1
  42. package/dist/cjs/src/rendering/rendering2D.js +631 -1
  43. package/dist/cjs/src/rendering/rendering3D.js +685 -1
  44. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +396 -1
  45. package/dist/esm/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1444 -1
  46. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1849 -1
  47. package/dist/esm/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3533 -1
  48. package/dist/esm/node_modules/three/examples/jsm/exporters/OBJExporter.js +301 -1
  49. package/dist/esm/node_modules/three/examples/jsm/exporters/PLYExporter.js +538 -1
  50. package/dist/esm/node_modules/three/examples/jsm/exporters/STLExporter.js +214 -1
  51. package/dist/esm/node_modules/three/examples/jsm/loaders/DRACOLoader.js +679 -1
  52. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4807 -1
  53. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +476 -1
  54. package/dist/esm/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +304 -1
  55. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +116 -1
  56. package/dist/esm/src/analysis/analysis.js +536 -1
  57. package/dist/esm/src/analysis/testing.js +954 -1
  58. package/dist/esm/src/core/centralPlant.js +1144 -1
  59. package/dist/esm/src/core/debugLogger.js +167 -1
  60. package/dist/esm/src/core/mathUtils.js +570 -1
  61. package/dist/esm/src/core/nameUtils.js +87 -1
  62. package/dist/esm/src/data/export.js +712 -1
  63. package/dist/esm/src/data/import.js +356 -1
  64. package/dist/esm/src/data/numerics.js +518 -1
  65. package/dist/esm/src/helpers/sceneHelper.js +547 -1
  66. package/dist/esm/src/index.js +35 -1
  67. package/dist/esm/src/managers/components/animationManager.js +119 -1
  68. package/dist/esm/src/managers/components/componentManager.js +328 -1
  69. package/dist/esm/src/managers/components/pathfindingManager.js +1417 -1
  70. package/dist/esm/src/managers/controls/TransformControls.js +1057 -1
  71. package/dist/esm/src/managers/controls/cameraControlsManager.js +75 -1
  72. package/dist/esm/src/managers/controls/dragDropManager.js +1002 -1
  73. package/dist/esm/src/managers/controls/keyboardControlsManager.js +371 -1
  74. package/dist/esm/src/managers/controls/transformControlsManager.js +1782 -1
  75. package/dist/esm/src/managers/environment/environmentManager.js +690 -1
  76. package/dist/esm/src/managers/environment/textureConfig.js +202 -1
  77. package/dist/esm/src/managers/scene/sceneExportManager.js +260 -1
  78. package/dist/esm/src/managers/scene/sceneInitializationManager.js +322 -1
  79. package/dist/esm/src/managers/scene/sceneOperationsManager.js +1485 -1
  80. package/dist/esm/src/managers/scene/sceneTooltipsManager.js +637 -1
  81. package/dist/esm/src/managers/system/disposalManager.js +440 -1
  82. package/dist/esm/src/managers/system/hotReloadManager.js +287 -1
  83. package/dist/esm/src/managers/system/performanceMonitor.js +858 -1
  84. package/dist/esm/src/rendering/modelPreloader.js +364 -1
  85. package/dist/esm/src/rendering/rendering2D.js +627 -1
  86. package/dist/esm/src/rendering/rendering3D.js +661 -1
  87. package/package.json +1 -1
@@ -1 +1,380 @@
1
- "use strict";Object.defineProperty(exports,"t",{value:!0});var e=require("../../_virtual/_rollupPluginBabelHelpers.js"),r=require("three"),t=require("../../node_modules/three/examples/jsm/loaders/GLTFLoader.js"),n=require("../../node_modules/three/examples/jsm/loaders/DRACOLoader.js"),o=require("../core/debugLogger.js");function s(e){if(e&&e.t)return e;var r=Object.create(null);return e&&Object.keys(e).forEach(function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}}),r.default=e,Object.freeze(r)}var i=s(r),u=function(){return e.createClass(function r(){e.classCallCheck(this,r),this.gltfLoader=new t.GLTFLoader,this.dracoLoader=new n.DRACOLoader,this.textureLoader=new i.TextureLoader,this.dracoLoader.setDecoderPath("/draco/"),this.gltfLoader.setDRACOLoader(this.dracoLoader),this.supportedFormats={models:[".glb",".gltf"],textures:[".jpg",".jpeg",".png",".hdr",".exr"],scenes:[".json"],configs:[".json",".yaml",".yml"]}},[{key:"importModel",value:(c=e.asyncToGenerator(e.regenerator().m(function r(t){var n,s,i,u,c,a,l,f,d,p,h,m,v,g,b,w=this,y=arguments;return e.regenerator().w(function(r){for(;;)switch(r.n){case 0:return s=(n=y.length>1&&void 0!==y[1]?y[1]:{}).scale,i=void 0===s?1:s,u=n.position,c=void 0===u?[0,0,0]:u,a=n.rotation,l=void 0===a?[0,0,0]:a,f=n.castShadow,d=void 0===f||f,p=n.receiveShadow,h=void 0===p||p,r.p=1,o.logger.info("🔄 Importing model: ".concat(t)),r.n=2,new Promise(function(e,r){w.gltfLoader.load(t,e,function(e){var r=(e.loaded/e.total*100).toFixed(1);o.logger.debug("Loading progress: ".concat(r,"%"))},r)});case 2:return g=r.v,1!==i&&g.scene.scale.setScalar(i),(m=g.scene.position).set.apply(m,e.toConsumableArray(c)),(v=g.scene.rotation).set.apply(v,e.toConsumableArray(l)),g.scene.traverse(function(e){e.isMesh&&(e.castShadow=d,e.receiveShadow=h)}),o.logger.info("✅ Model imported successfully: ".concat(t)),r.a(2,{scene:g.scene,animations:g.animations,cameras:g.cameras,asset:g.asset});case 3:throw r.p=3,b=r.v,o.logger.error("❌ Failed to import model ".concat(t,":"),b),b;case 4:return r.a(2)}},r,null,[[1,3]])})),function(e){return c.apply(this,arguments)})},{key:"importTextures",value:(u=e.asyncToGenerator(e.regenerator().m(function r(t){var n,s,i,u,c=this;return e.regenerator().w(function(e){for(;;)switch(e.n){case 0:return n=Array.isArray(t)?t:[t],e.p=1,s=n.map(function(e){return new Promise(function(r,t){c.textureLoader.load(e,r,void 0,t)})}),e.n=2,Promise.all(s);case 2:return i=e.v,o.logger.info("✅ Imported ".concat(i.length," texture(s)")),e.a(2,Array.isArray(t)?i:i[0]);case 3:throw e.p=3,u=e.v,o.logger.error("❌ Failed to import textures:",u),u;case 4:return e.a(2)}},r,null,[[1,3]])})),function(e){return u.apply(this,arguments)})},{key:"importSceneConfig",value:(s=e.asyncToGenerator(e.regenerator().m(function r(t){var n,s,i,u,c,a;return e.regenerator().w(function(e){for(;;)switch(e.n){case 0:return e.p=0,o.logger.info("🔄 Importing scene config: ".concat(t)),e.n=1,fetch(t);case 1:if((n=e.v).ok){e.n=2;break}throw new Error("HTTP ".concat(n.status,": ").concat(n.statusText));case 2:return e.n=3,n.json();case 3:for(s=e.v,i=0,u=["scene","connections"];i<u.length;i++)s[c=u[i]]||o.logger.warn("⚠️ Missing required property: ".concat(c));return o.logger.info("✅ Scene config imported: ".concat(t)),e.a(2,s);case 4:throw e.p=4,a=e.v,o.logger.error("❌ Failed to import scene config ".concat(t,":"),a),a;case 5:return e.a(2)}},r,null,[[0,4]])})),function(e){return s.apply(this,arguments)})},{key:"importBatch",value:(r=e.asyncToGenerator(e.regenerator().m(function r(t){var n,s,i,u,c,a,l,f,d;return e.regenerator().w(function(r){for(;;)switch(r.n){case 0:o.logger.info("🔄 Starting batch import of ".concat(t.length," files")),n=[],s=[],i=e.createForOfIteratorHelper(t),r.p=1,i.s();case 2:if((u=i.n()).done){r.n=14;break}c=u.value,r.p=3,a=void 0,l=c.type,r.n="model"===l?4:"texture"===l?6:"scene"===l?8:10;break;case 4:return r.n=5,this.importModel(c.url,c.options);case 5:return a=r.v,r.a(3,11);case 6:return r.n=7,this.importTextures(c.url);case 7:return a=r.v,r.a(3,11);case 8:return r.n=9,this.importSceneConfig(c.url);case 9:return a=r.v,r.a(3,11);case 10:throw new Error("Unknown import type: ".concat(c.type));case 11:n.push({url:c.url,type:c.type,data:a}),r.n=13;break;case 12:r.p=12,f=r.v,s.push({url:c.url,type:c.type,error:f}),o.logger.error("❌ Failed to import ".concat(c.url,":"),f);case 13:r.n=2;break;case 14:r.n=16;break;case 15:r.p=15,d=r.v,i.e(d);case 16:return r.p=16,i.f(),r.f(16);case 17:return o.logger.info("✅ Batch import complete: ".concat(n.length," successful, ").concat(s.length," failed")),r.a(2,{results:n,errors:s})}},r,this,[[3,12],[1,15,16,17]])})),function(e){return r.apply(this,arguments)})},{key:"isFormatSupported",value:function(e,r){var t,n="."+e.split(".").pop().toLowerCase();return(null===(t=this.supportedFormats[r])||void 0===t?void 0:t.includes(n))||!1}},{key:"getFormatInfo",value:function(r){for(var t="."+r.split(".").pop().toLowerCase(),n=0,o=Object.entries(this.supportedFormats);n<o.length;n++){var s=e.slicedToArray(o[n],2),i=s[0];if(s[1].includes(t))return{category:i,extension:t,supported:!0}}return{category:"unknown",extension:t,supported:!1}}},{key:"dispose",value:function(){this.dracoLoader.dispose&&this.dracoLoader.dispose(),o.logger.info("Import disposed")}}]);var r,s,u,c}();exports.Import=u;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var THREE = require('three');
7
+ var GLTFLoader = require('../../node_modules/three/examples/jsm/loaders/GLTFLoader.js');
8
+ var DRACOLoader = require('../../node_modules/three/examples/jsm/loaders/DRACOLoader.js');
9
+ var debugLogger = require('../core/debugLogger.js');
10
+
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n["default"] = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var THREE__namespace = /*#__PURE__*/_interopNamespace(THREE);
30
+
31
+ var Import = /*#__PURE__*/function () {
32
+ function Import() {
33
+ _rollupPluginBabelHelpers.classCallCheck(this, Import);
34
+ this.gltfLoader = new GLTFLoader.GLTFLoader();
35
+ this.dracoLoader = new DRACOLoader.DRACOLoader();
36
+ this.textureLoader = new THREE__namespace.TextureLoader();
37
+
38
+ // Configure DRACO decoder
39
+ this.dracoLoader.setDecoderPath('/draco/');
40
+ this.gltfLoader.setDRACOLoader(this.dracoLoader);
41
+ this.supportedFormats = {
42
+ models: ['.glb', '.gltf'],
43
+ textures: ['.jpg', '.jpeg', '.png', '.hdr', '.exr'],
44
+ scenes: ['.json'],
45
+ configs: ['.json', '.yaml', '.yml']
46
+ };
47
+ }
48
+
49
+ /**
50
+ * Import a 3D model file
51
+ * @param {string} url - Path to the model file
52
+ * @param {Object} options - Import options
53
+ * @returns {Promise<Object>} Imported model data
54
+ */
55
+ return _rollupPluginBabelHelpers.createClass(Import, [{
56
+ key: "importModel",
57
+ value: (function () {
58
+ var _importModel = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee(url) {
59
+ var _this = this;
60
+ var options,
61
+ _options$scale,
62
+ scale,
63
+ _options$position,
64
+ position,
65
+ _options$rotation,
66
+ rotation,
67
+ _options$castShadow,
68
+ castShadow,
69
+ _options$receiveShado,
70
+ receiveShadow,
71
+ _gltf$scene$position,
72
+ _gltf$scene$rotation,
73
+ gltf,
74
+ _args = arguments,
75
+ _t;
76
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
77
+ while (1) switch (_context.n) {
78
+ case 0:
79
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
80
+ _options$scale = options.scale, scale = _options$scale === void 0 ? 1 : _options$scale, _options$position = options.position, position = _options$position === void 0 ? [0, 0, 0] : _options$position, _options$rotation = options.rotation, rotation = _options$rotation === void 0 ? [0, 0, 0] : _options$rotation, _options$castShadow = options.castShadow, castShadow = _options$castShadow === void 0 ? true : _options$castShadow, _options$receiveShado = options.receiveShadow, receiveShadow = _options$receiveShado === void 0 ? true : _options$receiveShado;
81
+ _context.p = 1;
82
+ debugLogger.logger.info("\uD83D\uDD04 Importing model: ".concat(url));
83
+ _context.n = 2;
84
+ return new Promise(function (resolve, reject) {
85
+ _this.gltfLoader.load(url, resolve, function (progress) {
86
+ var percent = (progress.loaded / progress.total * 100).toFixed(1);
87
+ debugLogger.logger.debug("Loading progress: ".concat(percent, "%"));
88
+ }, reject);
89
+ });
90
+ case 2:
91
+ gltf = _context.v;
92
+ // Apply transformations
93
+ if (scale !== 1) {
94
+ gltf.scene.scale.setScalar(scale);
95
+ }
96
+ (_gltf$scene$position = gltf.scene.position).set.apply(_gltf$scene$position, _rollupPluginBabelHelpers.toConsumableArray(position));
97
+ (_gltf$scene$rotation = gltf.scene.rotation).set.apply(_gltf$scene$rotation, _rollupPluginBabelHelpers.toConsumableArray(rotation));
98
+
99
+ // Configure shadows
100
+ gltf.scene.traverse(function (child) {
101
+ if (child.isMesh) {
102
+ child.castShadow = castShadow;
103
+ child.receiveShadow = receiveShadow;
104
+ }
105
+ });
106
+ debugLogger.logger.info("\u2705 Model imported successfully: ".concat(url));
107
+ return _context.a(2, {
108
+ scene: gltf.scene,
109
+ animations: gltf.animations,
110
+ cameras: gltf.cameras,
111
+ asset: gltf.asset
112
+ });
113
+ case 3:
114
+ _context.p = 3;
115
+ _t = _context.v;
116
+ debugLogger.logger.error("\u274C Failed to import model ".concat(url, ":"), _t);
117
+ throw _t;
118
+ case 4:
119
+ return _context.a(2);
120
+ }
121
+ }, _callee, null, [[1, 3]]);
122
+ }));
123
+ function importModel(_x) {
124
+ return _importModel.apply(this, arguments);
125
+ }
126
+ return importModel;
127
+ }()
128
+ /**
129
+ * Import texture files
130
+ * @param {string|Array} urls - Single URL or array of texture URLs
131
+ * @returns {Promise<THREE.Texture|Array>} Loaded texture(s)
132
+ */
133
+ )
134
+ }, {
135
+ key: "importTextures",
136
+ value: (function () {
137
+ var _importTextures = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee2(urls) {
138
+ var _this2 = this;
139
+ var urlArray, texturePromises, textures, _t2;
140
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
141
+ while (1) switch (_context2.n) {
142
+ case 0:
143
+ urlArray = Array.isArray(urls) ? urls : [urls];
144
+ _context2.p = 1;
145
+ texturePromises = urlArray.map(function (url) {
146
+ return new Promise(function (resolve, reject) {
147
+ _this2.textureLoader.load(url, resolve, undefined, reject);
148
+ });
149
+ });
150
+ _context2.n = 2;
151
+ return Promise.all(texturePromises);
152
+ case 2:
153
+ textures = _context2.v;
154
+ debugLogger.logger.info("\u2705 Imported ".concat(textures.length, " texture(s)"));
155
+ return _context2.a(2, Array.isArray(urls) ? textures : textures[0]);
156
+ case 3:
157
+ _context2.p = 3;
158
+ _t2 = _context2.v;
159
+ debugLogger.logger.error('❌ Failed to import textures:', _t2);
160
+ throw _t2;
161
+ case 4:
162
+ return _context2.a(2);
163
+ }
164
+ }, _callee2, null, [[1, 3]]);
165
+ }));
166
+ function importTextures(_x2) {
167
+ return _importTextures.apply(this, arguments);
168
+ }
169
+ return importTextures;
170
+ }()
171
+ /**
172
+ * Import scene configuration from JSON
173
+ * @param {string} url - Path to the scene JSON file
174
+ * @returns {Promise<Object>} Scene configuration
175
+ */
176
+ )
177
+ }, {
178
+ key: "importSceneConfig",
179
+ value: (function () {
180
+ var _importSceneConfig = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee3(url) {
181
+ var response, sceneData, requiredProps, _i, _requiredProps, prop, _t3;
182
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context3) {
183
+ while (1) switch (_context3.n) {
184
+ case 0:
185
+ _context3.p = 0;
186
+ debugLogger.logger.info("\uD83D\uDD04 Importing scene config: ".concat(url));
187
+ _context3.n = 1;
188
+ return fetch(url);
189
+ case 1:
190
+ response = _context3.v;
191
+ if (response.ok) {
192
+ _context3.n = 2;
193
+ break;
194
+ }
195
+ throw new Error("HTTP ".concat(response.status, ": ").concat(response.statusText));
196
+ case 2:
197
+ _context3.n = 3;
198
+ return response.json();
199
+ case 3:
200
+ sceneData = _context3.v;
201
+ // Validate required scene properties
202
+ requiredProps = ['scene', 'connections'];
203
+ for (_i = 0, _requiredProps = requiredProps; _i < _requiredProps.length; _i++) {
204
+ prop = _requiredProps[_i];
205
+ if (!sceneData[prop]) {
206
+ debugLogger.logger.warn("\u26A0\uFE0F Missing required property: ".concat(prop));
207
+ }
208
+ }
209
+ debugLogger.logger.info("\u2705 Scene config imported: ".concat(url));
210
+ return _context3.a(2, sceneData);
211
+ case 4:
212
+ _context3.p = 4;
213
+ _t3 = _context3.v;
214
+ debugLogger.logger.error("\u274C Failed to import scene config ".concat(url, ":"), _t3);
215
+ throw _t3;
216
+ case 5:
217
+ return _context3.a(2);
218
+ }
219
+ }, _callee3, null, [[0, 4]]);
220
+ }));
221
+ function importSceneConfig(_x3) {
222
+ return _importSceneConfig.apply(this, arguments);
223
+ }
224
+ return importSceneConfig;
225
+ }()
226
+ /**
227
+ * Import multiple files in batch
228
+ * @param {Array} fileList - Array of file objects with {url, type, options}
229
+ * @returns {Promise<Array>} Array of imported data
230
+ */
231
+ )
232
+ }, {
233
+ key: "importBatch",
234
+ value: (function () {
235
+ var _importBatch = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee4(fileList) {
236
+ var results, errors, _iterator, _step, file, result, _t4, _t5, _t6;
237
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context4) {
238
+ while (1) switch (_context4.n) {
239
+ case 0:
240
+ debugLogger.logger.info("\uD83D\uDD04 Starting batch import of ".concat(fileList.length, " files"));
241
+ results = [];
242
+ errors = [];
243
+ _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelper(fileList);
244
+ _context4.p = 1;
245
+ _iterator.s();
246
+ case 2:
247
+ if ((_step = _iterator.n()).done) {
248
+ _context4.n = 14;
249
+ break;
250
+ }
251
+ file = _step.value;
252
+ _context4.p = 3;
253
+ result = void 0;
254
+ _t4 = file.type;
255
+ _context4.n = _t4 === 'model' ? 4 : _t4 === 'texture' ? 6 : _t4 === 'scene' ? 8 : 10;
256
+ break;
257
+ case 4:
258
+ _context4.n = 5;
259
+ return this.importModel(file.url, file.options);
260
+ case 5:
261
+ result = _context4.v;
262
+ return _context4.a(3, 11);
263
+ case 6:
264
+ _context4.n = 7;
265
+ return this.importTextures(file.url);
266
+ case 7:
267
+ result = _context4.v;
268
+ return _context4.a(3, 11);
269
+ case 8:
270
+ _context4.n = 9;
271
+ return this.importSceneConfig(file.url);
272
+ case 9:
273
+ result = _context4.v;
274
+ return _context4.a(3, 11);
275
+ case 10:
276
+ throw new Error("Unknown import type: ".concat(file.type));
277
+ case 11:
278
+ results.push({
279
+ url: file.url,
280
+ type: file.type,
281
+ data: result
282
+ });
283
+ _context4.n = 13;
284
+ break;
285
+ case 12:
286
+ _context4.p = 12;
287
+ _t5 = _context4.v;
288
+ errors.push({
289
+ url: file.url,
290
+ type: file.type,
291
+ error: _t5
292
+ });
293
+ debugLogger.logger.error("\u274C Failed to import ".concat(file.url, ":"), _t5);
294
+ case 13:
295
+ _context4.n = 2;
296
+ break;
297
+ case 14:
298
+ _context4.n = 16;
299
+ break;
300
+ case 15:
301
+ _context4.p = 15;
302
+ _t6 = _context4.v;
303
+ _iterator.e(_t6);
304
+ case 16:
305
+ _context4.p = 16;
306
+ _iterator.f();
307
+ return _context4.f(16);
308
+ case 17:
309
+ debugLogger.logger.info("\u2705 Batch import complete: ".concat(results.length, " successful, ").concat(errors.length, " failed"));
310
+ return _context4.a(2, {
311
+ results: results,
312
+ errors: errors
313
+ });
314
+ }
315
+ }, _callee4, this, [[3, 12], [1, 15, 16, 17]]);
316
+ }));
317
+ function importBatch(_x4) {
318
+ return _importBatch.apply(this, arguments);
319
+ }
320
+ return importBatch;
321
+ }()
322
+ /**
323
+ * Check if file format is supported
324
+ * @param {string} filename - Name of the file
325
+ * @param {string} category - Category to check (models, textures, scenes, configs)
326
+ * @returns {boolean} Whether format is supported
327
+ */
328
+ )
329
+ }, {
330
+ key: "isFormatSupported",
331
+ value: function isFormatSupported(filename, category) {
332
+ var _this$supportedFormat;
333
+ var extension = '.' + filename.split('.').pop().toLowerCase();
334
+ return ((_this$supportedFormat = this.supportedFormats[category]) === null || _this$supportedFormat === void 0 ? void 0 : _this$supportedFormat.includes(extension)) || false;
335
+ }
336
+
337
+ /**
338
+ * Get file format information
339
+ * @param {string} filename - Name of the file
340
+ * @returns {Object} Format information
341
+ */
342
+ }, {
343
+ key: "getFormatInfo",
344
+ value: function getFormatInfo(filename) {
345
+ var extension = '.' + filename.split('.').pop().toLowerCase();
346
+ for (var _i2 = 0, _Object$entries = Object.entries(this.supportedFormats); _i2 < _Object$entries.length; _i2++) {
347
+ var _Object$entries$_i = _rollupPluginBabelHelpers.slicedToArray(_Object$entries[_i2], 2),
348
+ category = _Object$entries$_i[0],
349
+ formats = _Object$entries$_i[1];
350
+ if (formats.includes(extension)) {
351
+ return {
352
+ category: category,
353
+ extension: extension,
354
+ supported: true
355
+ };
356
+ }
357
+ }
358
+ return {
359
+ category: 'unknown',
360
+ extension: extension,
361
+ supported: false
362
+ };
363
+ }
364
+
365
+ /**
366
+ * Dispose of loaders and free memory
367
+ */
368
+ }, {
369
+ key: "dispose",
370
+ value: function dispose() {
371
+ // Clean up loaders if they have dispose methods
372
+ if (this.dracoLoader.dispose) {
373
+ this.dracoLoader.dispose();
374
+ }
375
+ debugLogger.logger.info('Import disposed');
376
+ }
377
+ }]);
378
+ }();
379
+
380
+ exports.Import = Import;