@2112-lab/central-plant 0.3.35 → 0.3.36
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.
- package/dist/bundle/index.js +34 -98
- package/dist/cjs/src/core/centralPlant.js +4 -6
- package/dist/cjs/src/core/centralPlantInternals.js +1 -3
- package/dist/cjs/src/managers/behaviors/IoBehaviorManager.js +14 -22
- package/dist/cjs/src/managers/cache/S3CacheService.js +2 -33
- package/dist/cjs/src/managers/cache/S3MetadataCacheService.js +0 -1
- package/dist/cjs/src/managers/components/componentDataManager.js +2 -6
- package/dist/cjs/src/managers/scene/sceneExportManager.js +10 -3
- package/dist/cjs/src/managers/scene/sceneOperationsManager.js +0 -2
- package/dist/cjs/src/rendering/modelPreloader.js +1 -17
- package/dist/cjs/src/utils/ioDeviceUtils.js +0 -5
- package/dist/esm/src/core/centralPlant.js +4 -6
- package/dist/esm/src/core/centralPlantInternals.js +1 -3
- package/dist/esm/src/managers/behaviors/IoBehaviorManager.js +14 -22
- package/dist/esm/src/managers/cache/S3CacheService.js +2 -33
- package/dist/esm/src/managers/cache/S3MetadataCacheService.js +0 -1
- package/dist/esm/src/managers/components/componentDataManager.js +2 -6
- package/dist/esm/src/managers/scene/sceneExportManager.js +10 -3
- package/dist/esm/src/managers/scene/sceneOperationsManager.js +0 -2
- package/dist/esm/src/rendering/modelPreloader.js +1 -17
- package/dist/esm/src/utils/ioDeviceUtils.js +0 -5
- package/package.json +1 -1
package/dist/bundle/index.js
CHANGED
|
@@ -11650,7 +11650,8 @@ var SceneExportManager = /*#__PURE__*/function () {
|
|
|
11650
11650
|
}, {
|
|
11651
11651
|
key: "exportSceneData",
|
|
11652
11652
|
value: function exportSceneData() {
|
|
11653
|
-
var _this = this
|
|
11653
|
+
var _this = this,
|
|
11654
|
+
_this$sceneViewer$cur2;
|
|
11654
11655
|
console.log('📤 Starting scene export...');
|
|
11655
11656
|
if (!this.sceneViewer.scene) {
|
|
11656
11657
|
console.warn('⚠️ No scene available for export');
|
|
@@ -11862,6 +11863,12 @@ var SceneExportManager = /*#__PURE__*/function () {
|
|
|
11862
11863
|
children: sceneChildren
|
|
11863
11864
|
}
|
|
11864
11865
|
};
|
|
11866
|
+
|
|
11867
|
+
// Preserve cross-component behaviors authored in the Behavior window
|
|
11868
|
+
var sceneBehaviors = (_this$sceneViewer$cur2 = this.sceneViewer.currentSceneData) === null || _this$sceneViewer$cur2 === void 0 ? void 0 : _this$sceneViewer$cur2.behaviors;
|
|
11869
|
+
if (sceneBehaviors && sceneBehaviors.length > 0) {
|
|
11870
|
+
exportData.behaviors = sceneBehaviors;
|
|
11871
|
+
}
|
|
11865
11872
|
console.log('✅ Scene export completed:', exportData);
|
|
11866
11873
|
console.log("\uD83D\uDCCA Exported ".concat(sceneChildren.length, " components and ").concat(exportData.connections.length, " connections"));
|
|
11867
11874
|
return exportData;
|
|
@@ -11927,7 +11934,7 @@ var SceneExportManager = /*#__PURE__*/function () {
|
|
|
11927
11934
|
}, {
|
|
11928
11935
|
key: "getExportMetadata",
|
|
11929
11936
|
value: function getExportMetadata() {
|
|
11930
|
-
var _this$sceneViewer$
|
|
11937
|
+
var _this$sceneViewer$cur3;
|
|
11931
11938
|
if (!this.sceneViewer.scene) {
|
|
11932
11939
|
return null;
|
|
11933
11940
|
}
|
|
@@ -11938,7 +11945,7 @@ var SceneExportManager = /*#__PURE__*/function () {
|
|
|
11938
11945
|
return {
|
|
11939
11946
|
totalObjects: objectCount,
|
|
11940
11947
|
hasCurrentSceneData: !!this.sceneViewer.currentSceneData,
|
|
11941
|
-
connectionsCount: ((_this$sceneViewer$
|
|
11948
|
+
connectionsCount: ((_this$sceneViewer$cur3 = this.sceneViewer.currentSceneData) === null || _this$sceneViewer$cur3 === void 0 || (_this$sceneViewer$cur3 = _this$sceneViewer$cur3.connections) === null || _this$sceneViewer$cur3 === void 0 ? void 0 : _this$sceneViewer$cur3.length) || 0,
|
|
11942
11949
|
exportTimestamp: new Date().toISOString()
|
|
11943
11950
|
};
|
|
11944
11951
|
}
|
|
@@ -19286,17 +19293,14 @@ var ModelPreloader = /*#__PURE__*/function () {
|
|
|
19286
19293
|
_context3.n = 1;
|
|
19287
19294
|
break;
|
|
19288
19295
|
}
|
|
19289
|
-
console.log("\uD83C\uDFAF Model ".concat(modelKey, " already cached, skipping"));
|
|
19290
19296
|
return _context3.a(2, this.modelCache.get(modelKey));
|
|
19291
19297
|
case 1:
|
|
19292
19298
|
if (!this.loadingPromises.has(modelKey)) {
|
|
19293
19299
|
_context3.n = 2;
|
|
19294
19300
|
break;
|
|
19295
19301
|
}
|
|
19296
|
-
console.log("\u23F3 Model ".concat(modelKey, " already loading, waiting for completion"));
|
|
19297
19302
|
return _context3.a(2, this.loadingPromises.get(modelKey));
|
|
19298
19303
|
case 2:
|
|
19299
|
-
console.log("\uD83D\uDD04 Starting preload of GLB model: ".concat(modelKey));
|
|
19300
19304
|
loadPromise = new Promise(/*#__PURE__*/function () {
|
|
19301
19305
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(resolve, reject) {
|
|
19302
19306
|
var modelPath, _t;
|
|
@@ -19312,7 +19316,6 @@ var ModelPreloader = /*#__PURE__*/function () {
|
|
|
19312
19316
|
return _this2.urlResolver(modelKey);
|
|
19313
19317
|
case 2:
|
|
19314
19318
|
modelPath = _context2.v;
|
|
19315
|
-
console.log("\uD83D\uDD17 Resolved URL for ".concat(modelKey, ":"), modelPath.substring(0, 100) + '...');
|
|
19316
19319
|
_context2.n = 4;
|
|
19317
19320
|
break;
|
|
19318
19321
|
case 3:
|
|
@@ -19326,11 +19329,9 @@ var ModelPreloader = /*#__PURE__*/function () {
|
|
|
19326
19329
|
break;
|
|
19327
19330
|
case 5:
|
|
19328
19331
|
modelPath = "".concat(_this2.modelsBasePath).concat(modelKey);
|
|
19329
|
-
console.log("\uD83D\uDCC2 Loading from: ".concat(modelPath));
|
|
19330
19332
|
case 6:
|
|
19331
19333
|
// Load GLB model
|
|
19332
19334
|
_this2.gltfLoader.load(modelPath, function (gltf) {
|
|
19333
|
-
console.log("\u2705 Successfully preloaded GLB model: ".concat(modelKey));
|
|
19334
19335
|
// Cache the scene for future use
|
|
19335
19336
|
_this2.modelCache.set(modelKey, gltf.scene);
|
|
19336
19337
|
|
|
@@ -19349,13 +19350,6 @@ var ModelPreloader = /*#__PURE__*/function () {
|
|
|
19349
19350
|
resolve(gltf.scene);
|
|
19350
19351
|
}, function (progress) {
|
|
19351
19352
|
// Optional: track loading progress
|
|
19352
|
-
if (progress.lengthComputable) {
|
|
19353
|
-
var percentage = progress.loaded / progress.total * 100;
|
|
19354
|
-
if (percentage % 25 === 0) {
|
|
19355
|
-
// Log every 25%
|
|
19356
|
-
console.log("\uD83D\uDCCA Loading GLB ".concat(modelKey, ": ").concat(percentage.toFixed(0), "%"));
|
|
19357
|
-
}
|
|
19358
|
-
}
|
|
19359
19353
|
}, function (error) {
|
|
19360
19354
|
console.error("\u274C Failed to preload GLB model ".concat(modelKey, ":"), error);
|
|
19361
19355
|
// Remove from loading promises
|
|
@@ -19393,13 +19387,10 @@ var ModelPreloader = /*#__PURE__*/function () {
|
|
|
19393
19387
|
value: function getCachedModel(modelKey) {
|
|
19394
19388
|
var useIndexedGeometry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
19395
19389
|
if (this.modelCache.has(modelKey)) {
|
|
19396
|
-
console.log("\uD83C\uDFAF Returning cached model: ".concat(modelKey));
|
|
19397
19390
|
var cachedData = this.modelCache.get(modelKey);
|
|
19398
19391
|
|
|
19399
19392
|
// Handle OBJ models with processed geometry
|
|
19400
19393
|
if (cachedData && cachedData.isObjModel && useIndexedGeometry && cachedData.processedGeometry) {
|
|
19401
|
-
console.log("\uD83D\uDD27 Using indexed BufferGeometry for OBJ: ".concat(modelKey));
|
|
19402
|
-
|
|
19403
19394
|
// Create a mesh from the processed indexed geometry
|
|
19404
19395
|
var mesh = new THREE__namespace.Mesh(cachedData.processedGeometry.clone(), cachedData.materials.clone());
|
|
19405
19396
|
|
|
@@ -19635,7 +19626,7 @@ var ModelPreloader = /*#__PURE__*/function () {
|
|
|
19635
19626
|
}
|
|
19636
19627
|
|
|
19637
19628
|
// Model not cached, need to load it
|
|
19638
|
-
|
|
19629
|
+
// Loading model for library ID
|
|
19639
19630
|
this.preloadSingleModel(modelKey).then(function (model) {
|
|
19640
19631
|
if (model) {
|
|
19641
19632
|
var _clonedModel = model.clone();
|
|
@@ -20302,7 +20293,7 @@ var ComponentDataManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
20302
20293
|
value: (function () {
|
|
20303
20294
|
var _extendComponentDictionary = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(additionalComponents) {
|
|
20304
20295
|
var _this3 = this;
|
|
20305
|
-
var _this$sceneViewer, newComponents,
|
|
20296
|
+
var _this$sceneViewer, newComponents, modelPreloader, _t;
|
|
20306
20297
|
return _regenerator().w(function (_context3) {
|
|
20307
20298
|
while (1) switch (_context3.n) {
|
|
20308
20299
|
case 0:
|
|
@@ -20326,7 +20317,6 @@ var ComponentDataManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
20326
20317
|
_context3.p = 3;
|
|
20327
20318
|
// Filter out components that already exist in the dictionary (deduplication)
|
|
20328
20319
|
newComponents = {};
|
|
20329
|
-
skippedCount = 0;
|
|
20330
20320
|
Object.entries(additionalComponents).forEach(function (_ref3) {
|
|
20331
20321
|
var _ref4 = _slicedToArray(_ref3, 2),
|
|
20332
20322
|
key = _ref4[0],
|
|
@@ -20334,13 +20324,12 @@ var ComponentDataManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
20334
20324
|
if (!_this3.componentDictionary[key]) {
|
|
20335
20325
|
newComponents[key] = component;
|
|
20336
20326
|
} else {
|
|
20337
|
-
skippedCount++;
|
|
20338
20327
|
console.log("\u26A0\uFE0F Skipping duplicate component: ".concat(key, " (").concat(component.name || 'unnamed', ")"));
|
|
20339
20328
|
}
|
|
20340
20329
|
});
|
|
20341
20330
|
|
|
20342
20331
|
// Merge only new components into dictionary
|
|
20343
|
-
|
|
20332
|
+
Object.keys(newComponents).length;
|
|
20344
20333
|
Object.assign(this.componentDictionary, newComponents);
|
|
20345
20334
|
|
|
20346
20335
|
// Update ModelPreloader's dictionary reference
|
|
@@ -20348,12 +20337,10 @@ var ComponentDataManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
20348
20337
|
modelPreloader = (_this$sceneViewer = this.sceneViewer) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.centralPlant) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.utilities) === null || _this$sceneViewer === void 0 ? void 0 : _this$sceneViewer.modelPreloader;
|
|
20349
20338
|
if (modelPreloader) {
|
|
20350
20339
|
modelPreloader.componentDictionary = this.componentDictionary;
|
|
20351
|
-
console.log("\uD83D\uDD04 Updated ModelPreloader's dictionary reference (".concat(Object.keys(this.componentDictionary).length, " total components)"));
|
|
20352
20340
|
}
|
|
20353
20341
|
|
|
20354
20342
|
// Clear cache to force refresh
|
|
20355
20343
|
this.clearCache();
|
|
20356
|
-
console.log("\u2705 extendComponentDictionary(): Added ".concat(addedCount, " new components (").concat(skippedCount, " duplicates skipped)"));
|
|
20357
20344
|
return _context3.a(2, true);
|
|
20358
20345
|
case 4:
|
|
20359
20346
|
_context3.p = 4;
|
|
@@ -29875,7 +29862,6 @@ function _attachIODevicesToComponent() {
|
|
|
29875
29862
|
_context.n = 10;
|
|
29876
29863
|
break;
|
|
29877
29864
|
}
|
|
29878
|
-
console.log("\uD83D\uDD04 IO device model not in cache, preloading: ".concat(deviceData.modelKey));
|
|
29879
29865
|
_context.p = 5;
|
|
29880
29866
|
if (!((_modelPreloader$loadi = modelPreloader.loadingPromises) !== null && _modelPreloader$loadi !== void 0 && _modelPreloader$loadi.has(deviceData.modelKey))) {
|
|
29881
29867
|
_context.n = 7;
|
|
@@ -29957,10 +29943,6 @@ function _attachIODevicesToComponent() {
|
|
|
29957
29943
|
|
|
29958
29944
|
// Add as child of the component
|
|
29959
29945
|
componentModel.add(deviceModel);
|
|
29960
|
-
console.log("\u2705 Attached IO device: ".concat(attachment.attachmentLabel || attachment.deviceId, " at"), {
|
|
29961
|
-
position: deviceModel.position,
|
|
29962
|
-
scale: deviceModel.scale
|
|
29963
|
-
});
|
|
29964
29946
|
_context.n = 13;
|
|
29965
29947
|
break;
|
|
29966
29948
|
case 12:
|
|
@@ -33506,7 +33488,6 @@ var SceneOperationsManager = /*#__PURE__*/function () {
|
|
|
33506
33488
|
|
|
33507
33489
|
// Check if dictionary has connector children and component doesn't already have them
|
|
33508
33490
|
if (dictEntry !== null && dictEntry !== void 0 && dictEntry.children && Array.isArray(dictEntry.children) && dictEntry.children.length > 0) {
|
|
33509
|
-
// Only inject if the component doesn't already have children
|
|
33510
33491
|
if (!child.children || child.children.length === 0) {
|
|
33511
33492
|
// Get component rotation (in degrees from JSON)
|
|
33512
33493
|
var rotation = child.rotation || {
|
|
@@ -33536,7 +33517,6 @@ var SceneOperationsManager = /*#__PURE__*/function () {
|
|
|
33536
33517
|
connectorsInjected++;
|
|
33537
33518
|
return clonedConnector;
|
|
33538
33519
|
});
|
|
33539
|
-
console.log("\uD83D\uDD0C Injected ".concat(child.children.length, " connectors for ").concat(child.uuid, " (").concat(libraryId, ") with rotation [").concat(rotation.x, "\xB0, ").concat(rotation.y, "\xB0, ").concat(rotation.z, "\xB0]"));
|
|
33540
33520
|
componentsProcessed++;
|
|
33541
33521
|
}
|
|
33542
33522
|
}
|
|
@@ -37510,9 +37490,7 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37510
37490
|
}
|
|
37511
37491
|
if (entries.length) {
|
|
37512
37492
|
this._entries.set(key, entries);
|
|
37513
|
-
|
|
37514
|
-
return e.anim.stateVariable;
|
|
37515
|
-
}).join(', ')));
|
|
37493
|
+
// Loaded ${entries.length} animation(s) for attachment "${attachmentId}"
|
|
37516
37494
|
} else {
|
|
37517
37495
|
console.warn("[IoBehaviorManager] No mesh entries resolved for attachment \"".concat(attachmentId, "\" \u2014 behaviorConfig had ").concat(anims.length, " entries but none matched a mesh"));
|
|
37518
37496
|
}
|
|
@@ -37530,13 +37508,8 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37530
37508
|
}, {
|
|
37531
37509
|
key: "triggerState",
|
|
37532
37510
|
value: function triggerState(attachmentId, dataPointId, value, parentUuid) {
|
|
37533
|
-
|
|
37534
|
-
|
|
37535
|
-
attachmentId: attachmentId,
|
|
37536
|
-
dataPointId: dataPointId,
|
|
37537
|
-
value: value,
|
|
37538
|
-
parentUuid: parentUuid
|
|
37539
|
-
});
|
|
37511
|
+
// triggerState: ${attachmentId}.${dataPointId} = ${value}
|
|
37512
|
+
|
|
37540
37513
|
if (parentUuid) {
|
|
37541
37514
|
var key = this._key(parentUuid, attachmentId);
|
|
37542
37515
|
var entries = this._entries.get(key);
|
|
@@ -37591,12 +37564,12 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37591
37564
|
// Evaluate component-level behaviors (intra-component io-device linking)
|
|
37592
37565
|
if (parentUuid && this._componentBehaviors.has(parentUuid)) {
|
|
37593
37566
|
var componentBehaviors = this._componentBehaviors.get(parentUuid);
|
|
37594
|
-
|
|
37567
|
+
// Checking component-level behaviors (count: ${componentBehaviors.length})
|
|
37595
37568
|
this.triggerCrossComponentBehaviors(componentBehaviors, parentUuid, attachmentId, dataPointId, value);
|
|
37596
37569
|
}
|
|
37597
37570
|
|
|
37598
37571
|
// Evaluate cross-component behaviors if any are registered
|
|
37599
|
-
|
|
37572
|
+
// Checking cross-component behaviors (count: ${this._crossComponentBehaviors?.length || 0})
|
|
37600
37573
|
if (this._crossComponentBehaviors && this._crossComponentBehaviors.length > 0) {
|
|
37601
37574
|
this.triggerCrossComponentBehaviors(this._crossComponentBehaviors, parentUuid, attachmentId, dataPointId, value);
|
|
37602
37575
|
}
|
|
@@ -37615,7 +37588,7 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37615
37588
|
this._crossComponentBehaviors = (behaviors || []).map(function (b) {
|
|
37616
37589
|
return _this2._normalizeBehavior(b);
|
|
37617
37590
|
});
|
|
37618
|
-
|
|
37591
|
+
// Loaded ${this._crossComponentBehaviors.length} cross-component behavior(s)
|
|
37619
37592
|
}
|
|
37620
37593
|
|
|
37621
37594
|
/**
|
|
@@ -37634,7 +37607,7 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37634
37607
|
return _this3._normalizeBehavior(b);
|
|
37635
37608
|
});
|
|
37636
37609
|
this._componentBehaviors.set(componentUuid, normalized);
|
|
37637
|
-
|
|
37610
|
+
// Registered ${normalized.length} component-level behavior(s) for component ${componentUuid}
|
|
37638
37611
|
}
|
|
37639
37612
|
|
|
37640
37613
|
/**
|
|
@@ -37745,7 +37718,7 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37745
37718
|
key: "configure",
|
|
37746
37719
|
value: function configure(stateAdapter) {
|
|
37747
37720
|
this._stateAdapter = stateAdapter || null;
|
|
37748
|
-
|
|
37721
|
+
// State adapter configured
|
|
37749
37722
|
}
|
|
37750
37723
|
|
|
37751
37724
|
/**
|
|
@@ -37761,10 +37734,10 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37761
37734
|
key: "triggerCrossComponentBehaviors",
|
|
37762
37735
|
value: function triggerCrossComponentBehaviors(behaviors, triggerParentUuid, triggerAttachmentId, triggerStateId, value) {
|
|
37763
37736
|
if (!behaviors || !Array.isArray(behaviors)) {
|
|
37764
|
-
console.log('[Behavior] No behaviors to evaluate');
|
|
37765
37737
|
return;
|
|
37766
37738
|
}
|
|
37767
|
-
|
|
37739
|
+
|
|
37740
|
+
// Evaluating ${behaviors.length} behavior(s)
|
|
37768
37741
|
var _iterator5 = _createForOfIteratorHelper(behaviors),
|
|
37769
37742
|
_step5;
|
|
37770
37743
|
try {
|
|
@@ -37799,7 +37772,7 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37799
37772
|
|
|
37800
37773
|
// Verify that the input matches the triggering source
|
|
37801
37774
|
if (inputComponent === triggerParentUuid && input.attachment === triggerAttachmentId && input.state === triggerStateId) {
|
|
37802
|
-
|
|
37775
|
+
// Behavior "${behavior.id}" matched
|
|
37803
37776
|
|
|
37804
37777
|
// Collect all outputs (single or multiple)
|
|
37805
37778
|
var outputs = _outputs || (output ? [output] : []);
|
|
@@ -37817,14 +37790,13 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37817
37790
|
|
|
37818
37791
|
// Direct state mapping without conditions
|
|
37819
37792
|
if (this._stateAdapter) {
|
|
37820
|
-
|
|
37793
|
+
// Dispatching state-to-state: ${out.attachment}.${out.state} = ${value}
|
|
37821
37794
|
this._stateAdapter.setState(out.attachment, out.state, value);
|
|
37822
|
-
console.log("[Behavior] \u2713 State-to-state triggered: ".concat(input.attachment, ".").concat(input.state, " (").concat(value, ") \u2192 ").concat(out.attachment, ".").concat(out.state));
|
|
37823
37795
|
|
|
37824
37796
|
// Trigger animations on the output component
|
|
37825
37797
|
// triggerState(attachmentId, dataPointId, value, parentUuid)
|
|
37826
37798
|
if (outputComponent) {
|
|
37827
|
-
|
|
37799
|
+
// Triggering animations on output component
|
|
37828
37800
|
this.triggerState(out.attachment, out.state, value, outputComponent);
|
|
37829
37801
|
} else {
|
|
37830
37802
|
console.warn("[Behavior] Could not find component for attachment \"".concat(out.attachment, "\""));
|
|
@@ -37835,7 +37807,7 @@ var IoBehaviorManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
37835
37807
|
}
|
|
37836
37808
|
// LEGACY: Mesh-based pattern with conditions
|
|
37837
37809
|
else if (conditions && out.child) {
|
|
37838
|
-
|
|
37810
|
+
// Using legacy mesh-based pattern with conditions
|
|
37839
37811
|
// Evaluate conditions
|
|
37840
37812
|
var _iterator7 = _createForOfIteratorHelper(conditions),
|
|
37841
37813
|
_step7;
|
|
@@ -38936,12 +38908,10 @@ var CentralPlantInternals = /*#__PURE__*/function () {
|
|
|
38936
38908
|
if (this.centralPlant.sceneViewer.$refs.container && this.centralPlant.sceneViewer.camera && this.centralPlant.sceneViewer.scene) {
|
|
38937
38909
|
this.centralPlant.managers.tooltipsManager = new SceneTooltipsManager(this.centralPlant.sceneViewer.$refs.container, this.centralPlant.sceneViewer.camera, this.centralPlant.sceneViewer.scene);
|
|
38938
38910
|
this.centralPlant.sceneViewer.tooltipsManager = this.centralPlant.managers.tooltipsManager;
|
|
38939
|
-
console.log('🔍 Tooltip manager initialized:', this.centralPlant.managers.tooltipsManager);
|
|
38940
38911
|
|
|
38941
38912
|
// Initialize the component tooltip manager (screen-space tooltip on selection)
|
|
38942
38913
|
this.centralPlant.managers.componentTooltipManager = new ComponentTooltipManager(this.centralPlant.sceneViewer);
|
|
38943
38914
|
this.centralPlant.sceneViewer.componentTooltipManager = this.centralPlant.managers.componentTooltipManager;
|
|
38944
|
-
console.log('🔍 Component tooltip manager initialized');
|
|
38945
38915
|
}
|
|
38946
38916
|
}
|
|
38947
38917
|
|
|
@@ -39877,7 +39847,7 @@ var CentralPlantInternals = /*#__PURE__*/function () {
|
|
|
39877
39847
|
|
|
39878
39848
|
// Register component-level behaviors (intra-component io-device linking)
|
|
39879
39849
|
if (componentData.behaviors && componentData.behaviors.length > 0) {
|
|
39880
|
-
|
|
39850
|
+
// Registering ${componentData.behaviors.length} component-level behavior(s)
|
|
39881
39851
|
ioBehavMgr.registerComponentBehaviors(componentId, componentData.behaviors);
|
|
39882
39852
|
}
|
|
39883
39853
|
}
|
|
@@ -40181,7 +40151,7 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
40181
40151
|
* Initialize the CentralPlant manager
|
|
40182
40152
|
*
|
|
40183
40153
|
* @constructor
|
|
40184
|
-
* @version 0.3.
|
|
40154
|
+
* @version 0.3.36
|
|
40185
40155
|
* @updated 2025-10-22
|
|
40186
40156
|
*
|
|
40187
40157
|
* @description Creates a new CentralPlant instance and initializes internal managers and utilities.
|
|
@@ -40370,12 +40340,13 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
40370
40340
|
behaviors: ((_this$importedSceneDa3 = this.importedSceneData.behaviors) === null || _this$importedSceneDa3 === void 0 ? void 0 : _this$importedSceneDa3.length) || 0,
|
|
40371
40341
|
timestamp: new Date().toISOString()
|
|
40372
40342
|
});
|
|
40373
|
-
|
|
40343
|
+
|
|
40344
|
+
// Scene behaviors loaded
|
|
40374
40345
|
|
|
40375
40346
|
// Register behaviors with IoBehaviorManager
|
|
40376
40347
|
ioBehavMgr = (_this$sceneViewer = this.sceneViewer) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.managers) === null || _this$sceneViewer === void 0 ? void 0 : _this$sceneViewer.ioBehaviorManager;
|
|
40377
40348
|
if (ioBehavMgr) {
|
|
40378
|
-
|
|
40349
|
+
// Setting cross-component behaviors
|
|
40379
40350
|
ioBehavMgr.setCrossComponentBehaviors(this.importedSceneData.behaviors || []);
|
|
40380
40351
|
} else {
|
|
40381
40352
|
console.warn('[Behavior] ioBehaviorManager not available!');
|
|
@@ -40874,7 +40845,6 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
40874
40845
|
|
|
40875
40846
|
// Enable drag functionality for the specific element
|
|
40876
40847
|
this.sceneViewer.managers.componentDragManager.enableElementDrag(element, componentId);
|
|
40877
|
-
console.log("\u2705 enableDragDrop(): Enabled drag and drop for ".concat(componentId));
|
|
40878
40848
|
return true;
|
|
40879
40849
|
} catch (error) {
|
|
40880
40850
|
console.error('❌ enableDragDrop(): Error enabling drag and drop:', error);
|
|
@@ -40910,7 +40880,6 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
40910
40880
|
}
|
|
40911
40881
|
try {
|
|
40912
40882
|
this.sceneViewer.managers.componentDragManager.disableElementDrag(element);
|
|
40913
|
-
console.log('✅ disableDragDrop(): Disabled drag and drop for element');
|
|
40914
40883
|
return true;
|
|
40915
40884
|
} catch (error) {
|
|
40916
40885
|
console.error('❌ disableDragDrop(): Error disabling drag and drop:', error);
|
|
@@ -40944,7 +40913,6 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
40944
40913
|
if (this.sceneViewer.managers.componentDragManager) {
|
|
40945
40914
|
this.sceneViewer.managers.componentDragManager.setEnabled(enabled);
|
|
40946
40915
|
}
|
|
40947
|
-
console.log("\u2705 setDragDropEnabled(): Drag and drop ".concat(enabled ? 'enabled' : 'disabled'));
|
|
40948
40916
|
return true;
|
|
40949
40917
|
} catch (error) {
|
|
40950
40918
|
console.error('❌ setDragDropEnabled(): Error setting drag and drop state:', error);
|
|
@@ -46189,7 +46157,6 @@ function _findInAllCachePartitions() {
|
|
|
46189
46157
|
_context16.n = 7;
|
|
46190
46158
|
break;
|
|
46191
46159
|
}
|
|
46192
|
-
console.log("\u2705 [findInAllCachePartitions] Found in ".concat(cacheName, " (exact match): ").concat(cacheKey.substring(0, 80), "..."));
|
|
46193
46160
|
return _context16.a(2, response);
|
|
46194
46161
|
case 7:
|
|
46195
46162
|
if (!(encodedCacheKey !== cacheKey)) {
|
|
@@ -46204,7 +46171,6 @@ function _findInAllCachePartitions() {
|
|
|
46204
46171
|
_context16.n = 9;
|
|
46205
46172
|
break;
|
|
46206
46173
|
}
|
|
46207
|
-
console.log("\u2705 [findInAllCachePartitions] Found in ".concat(cacheName, " (encoded match): ").concat(encodedCacheKey.substring(0, 80), "..."));
|
|
46208
46174
|
return _context16.a(2, response);
|
|
46209
46175
|
case 9:
|
|
46210
46176
|
_context16.n = 4;
|
|
@@ -46239,8 +46205,6 @@ function _getCachedS3Object() {
|
|
|
46239
46205
|
cachedResponse,
|
|
46240
46206
|
cachedTime,
|
|
46241
46207
|
age,
|
|
46242
|
-
_allKeys,
|
|
46243
|
-
matchingKeys,
|
|
46244
46208
|
_args19 = arguments;
|
|
46245
46209
|
return _regenerator().w(function (_context19) {
|
|
46246
46210
|
while (1) switch (_context19.n) {
|
|
@@ -46248,50 +46212,26 @@ function _getCachedS3Object() {
|
|
|
46248
46212
|
storageOptions = _args19.length > 1 && _args19[1] !== undefined ? _args19[1] : {};
|
|
46249
46213
|
expiryMs = _args19.length > 2 && _args19[2] !== undefined ? _args19[2] : null;
|
|
46250
46214
|
cacheKey = "https://s3.cache/".concat(s3Key);
|
|
46251
|
-
expiry = expiryMs || cacheManager.getExpiryForPath(s3Key);
|
|
46252
|
-
console.log("\uD83D\uDD0D [S3Cache] Checking for cached S3 object:", {
|
|
46253
|
-
s3Key: s3Key,
|
|
46254
|
-
cacheKey: cacheKey
|
|
46255
|
-
});
|
|
46256
|
-
|
|
46257
|
-
// First, check ALL app cache partitions for a hit (handles auth race condition)
|
|
46215
|
+
expiry = expiryMs || cacheManager.getExpiryForPath(s3Key); // First, check ALL app cache partitions for a hit (handles auth race condition)
|
|
46258
46216
|
_context19.n = 1;
|
|
46259
46217
|
return findInAllCachePartitions(cacheKey);
|
|
46260
46218
|
case 1:
|
|
46261
46219
|
cachedResponse = _context19.v;
|
|
46262
46220
|
if (!cachedResponse) {
|
|
46263
|
-
_context19.n =
|
|
46221
|
+
_context19.n = 3;
|
|
46264
46222
|
break;
|
|
46265
46223
|
}
|
|
46266
46224
|
cachedTime = cachedResponse.headers.get('x-cached-time');
|
|
46267
46225
|
age = Date.now() - parseInt(cachedTime || '0');
|
|
46268
|
-
console.log("\u2705 [S3Cache] Found in cache partition, age: ".concat(Math.round(age / 1000), "s, expiry: ").concat(Math.round(expiry / 1000), "s"));
|
|
46269
46226
|
if (!(age < expiry)) {
|
|
46270
46227
|
_context19.n = 3;
|
|
46271
46228
|
break;
|
|
46272
46229
|
}
|
|
46273
|
-
console.log("\u2705 [S3Cache] Returning cached blob for: ".concat(s3Key));
|
|
46274
46230
|
_context19.n = 2;
|
|
46275
46231
|
return cachedResponse.blob();
|
|
46276
46232
|
case 2:
|
|
46277
46233
|
return _context19.a(2, _context19.v);
|
|
46278
46234
|
case 3:
|
|
46279
|
-
console.log("\u23F0 [S3Cache] Cache entry expired, will re-fetch");
|
|
46280
|
-
_context19.n = 6;
|
|
46281
|
-
break;
|
|
46282
|
-
case 4:
|
|
46283
|
-
console.log("\u274C [S3Cache] Not found in any cache partition");
|
|
46284
|
-
_context19.n = 5;
|
|
46285
|
-
return getAllCacheKeys();
|
|
46286
|
-
case 5:
|
|
46287
|
-
_allKeys = _context19.v;
|
|
46288
|
-
matchingKeys = _toConsumableArray(_allKeys).filter(function (k) {
|
|
46289
|
-
return k.includes('24dd6a7a') || k.includes('.glb');
|
|
46290
|
-
});
|
|
46291
|
-
if (matchingKeys.length > 0) {
|
|
46292
|
-
console.log("\uD83D\uDD0D [S3Cache] Available GLB cache keys:", matchingKeys.slice(0, 5));
|
|
46293
|
-
}
|
|
46294
|
-
case 6:
|
|
46295
46235
|
return _context19.a(2, cacheManager.execute({
|
|
46296
46236
|
cacheKey: cacheKey,
|
|
46297
46237
|
sourceKey: s3Key,
|
|
@@ -46450,7 +46390,6 @@ function _preloadS3Objects() {
|
|
|
46450
46390
|
};
|
|
46451
46391
|
}()));
|
|
46452
46392
|
case 1:
|
|
46453
|
-
console.log("\u2705 Preload complete: ".concat(results.success, " success, ").concat(results.failed, " failed"));
|
|
46454
46393
|
return _context22.a(2, results);
|
|
46455
46394
|
}
|
|
46456
46395
|
}, _callee22);
|
|
@@ -46628,7 +46567,6 @@ function _preloadLocalFiles() {
|
|
|
46628
46567
|
return _regenerator().w(function (_context29) {
|
|
46629
46568
|
while (1) switch (_context29.n) {
|
|
46630
46569
|
case 0:
|
|
46631
|
-
console.log("preloadLocalFiles started");
|
|
46632
46570
|
results = {
|
|
46633
46571
|
success: 0,
|
|
46634
46572
|
failed: 0,
|
|
@@ -46667,7 +46605,6 @@ function _preloadLocalFiles() {
|
|
|
46667
46605
|
};
|
|
46668
46606
|
}()));
|
|
46669
46607
|
case 1:
|
|
46670
|
-
console.log("preloadLocalFiles finished");
|
|
46671
46608
|
if (results.failed > 0) {
|
|
46672
46609
|
console.warn("\u26A0\uFE0F preloadLocalFiles Cache priming finished with errors: ".concat(results.failed, " failed"), results.errors);
|
|
46673
46610
|
}
|
|
@@ -47329,7 +47266,6 @@ var S3MetadataCacheService = /*#__PURE__*/function () {
|
|
|
47329
47266
|
// Update memory cache
|
|
47330
47267
|
this._memoryCache = metadata;
|
|
47331
47268
|
this._memoryCacheTime = Date.now();
|
|
47332
|
-
console.log("\uD83D\uDCBE S3MetadataCacheService: Set ".concat(components.length, " components"));
|
|
47333
47269
|
return _context9.a(2, true);
|
|
47334
47270
|
case 4:
|
|
47335
47271
|
_context9.p = 4;
|
|
@@ -35,7 +35,7 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
35
35
|
* Initialize the CentralPlant manager
|
|
36
36
|
*
|
|
37
37
|
* @constructor
|
|
38
|
-
* @version 0.3.
|
|
38
|
+
* @version 0.3.36
|
|
39
39
|
* @updated 2025-10-22
|
|
40
40
|
*
|
|
41
41
|
* @description Creates a new CentralPlant instance and initializes internal managers and utilities.
|
|
@@ -224,12 +224,13 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
224
224
|
behaviors: ((_this$importedSceneDa3 = this.importedSceneData.behaviors) === null || _this$importedSceneDa3 === void 0 ? void 0 : _this$importedSceneDa3.length) || 0,
|
|
225
225
|
timestamp: new Date().toISOString()
|
|
226
226
|
});
|
|
227
|
-
|
|
227
|
+
|
|
228
|
+
// Scene behaviors loaded
|
|
228
229
|
|
|
229
230
|
// Register behaviors with IoBehaviorManager
|
|
230
231
|
ioBehavMgr = (_this$sceneViewer = this.sceneViewer) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.managers) === null || _this$sceneViewer === void 0 ? void 0 : _this$sceneViewer.ioBehaviorManager;
|
|
231
232
|
if (ioBehavMgr) {
|
|
232
|
-
|
|
233
|
+
// Setting cross-component behaviors
|
|
233
234
|
ioBehavMgr.setCrossComponentBehaviors(this.importedSceneData.behaviors || []);
|
|
234
235
|
} else {
|
|
235
236
|
console.warn('[Behavior] ioBehaviorManager not available!');
|
|
@@ -728,7 +729,6 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
728
729
|
|
|
729
730
|
// Enable drag functionality for the specific element
|
|
730
731
|
this.sceneViewer.managers.componentDragManager.enableElementDrag(element, componentId);
|
|
731
|
-
console.log("\u2705 enableDragDrop(): Enabled drag and drop for ".concat(componentId));
|
|
732
732
|
return true;
|
|
733
733
|
} catch (error) {
|
|
734
734
|
console.error('❌ enableDragDrop(): Error enabling drag and drop:', error);
|
|
@@ -764,7 +764,6 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
764
764
|
}
|
|
765
765
|
try {
|
|
766
766
|
this.sceneViewer.managers.componentDragManager.disableElementDrag(element);
|
|
767
|
-
console.log('✅ disableDragDrop(): Disabled drag and drop for element');
|
|
768
767
|
return true;
|
|
769
768
|
} catch (error) {
|
|
770
769
|
console.error('❌ disableDragDrop(): Error disabling drag and drop:', error);
|
|
@@ -798,7 +797,6 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
798
797
|
if (this.sceneViewer.managers.componentDragManager) {
|
|
799
798
|
this.sceneViewer.managers.componentDragManager.setEnabled(enabled);
|
|
800
799
|
}
|
|
801
|
-
console.log("\u2705 setDragDropEnabled(): Drag and drop ".concat(enabled ? 'enabled' : 'disabled'));
|
|
802
800
|
return true;
|
|
803
801
|
} catch (error) {
|
|
804
802
|
console.error('❌ setDragDropEnabled(): Error setting drag and drop state:', error);
|
|
@@ -236,12 +236,10 @@ var CentralPlantInternals = /*#__PURE__*/function () {
|
|
|
236
236
|
if (this.centralPlant.sceneViewer.$refs.container && this.centralPlant.sceneViewer.camera && this.centralPlant.sceneViewer.scene) {
|
|
237
237
|
this.centralPlant.managers.tooltipsManager = new sceneTooltipsManager.SceneTooltipsManager(this.centralPlant.sceneViewer.$refs.container, this.centralPlant.sceneViewer.camera, this.centralPlant.sceneViewer.scene);
|
|
238
238
|
this.centralPlant.sceneViewer.tooltipsManager = this.centralPlant.managers.tooltipsManager;
|
|
239
|
-
console.log('🔍 Tooltip manager initialized:', this.centralPlant.managers.tooltipsManager);
|
|
240
239
|
|
|
241
240
|
// Initialize the component tooltip manager (screen-space tooltip on selection)
|
|
242
241
|
this.centralPlant.managers.componentTooltipManager = new componentTooltipManager.ComponentTooltipManager(this.centralPlant.sceneViewer);
|
|
243
242
|
this.centralPlant.sceneViewer.componentTooltipManager = this.centralPlant.managers.componentTooltipManager;
|
|
244
|
-
console.log('🔍 Component tooltip manager initialized');
|
|
245
243
|
}
|
|
246
244
|
}
|
|
247
245
|
|
|
@@ -1177,7 +1175,7 @@ var CentralPlantInternals = /*#__PURE__*/function () {
|
|
|
1177
1175
|
|
|
1178
1176
|
// Register component-level behaviors (intra-component io-device linking)
|
|
1179
1177
|
if (componentData.behaviors && componentData.behaviors.length > 0) {
|
|
1180
|
-
|
|
1178
|
+
// Registering ${componentData.behaviors.length} component-level behavior(s)
|
|
1181
1179
|
ioBehavMgr.registerComponentBehaviors(componentId, componentData.behaviors);
|
|
1182
1180
|
}
|
|
1183
1181
|
}
|