@crystaldesign/web-planner-logic 26.13.0-beta.9 → 26.14.0-beta.1
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/build/cjs/{DivaBoxPlanner-006ec070.js → DivaBoxPlanner-7f6bd584.js} +5 -4
- package/build/cjs/{DivaStandardPlanner-a428fcb7.js → DivaStandardPlanner-77c603dc.js} +1921 -203
- package/build/cjs/{DoorPlanner-40b303c4.js → DoorPlanner-5de2bbf0.js} +4 -3
- package/build/cjs/{Host3DSignalR-55f69ca3.js → Host3DSignalR-26b95303.js} +64 -20
- package/build/cjs/{LiviqueWWSHandler-4c6f6071.js → LiviqueWWSHandler-1e419862.js} +4 -3
- package/build/cjs/{PfisterWWSHandler-55bdb575.js → PfisterWWSHandler-b2f7a5ec.js} +3 -2
- package/build/cjs/{PlannerHandler2D-314ce41d.js → PlannerHandler2D-ff734c3e.js} +10 -10
- package/build/cjs/{SeriousBasketHandler-1b365a2b.js → SeriousBasketHandler-e54bd31b.js} +4 -3
- package/build/cjs/{ShelfPlanner-8e91f830.js → ShelfPlanner-08e15d16.js} +600 -203
- package/build/cjs/{StandardWWSHandler-4a2442aa.js → StandardWWSHandler-0e7b20dc.js} +4 -3
- package/build/cjs/{index-e08a4789.js → index-5dd5fb4b.js} +9343 -3810
- package/build/cjs/index.js +11 -9
- package/build/esm/{DivaBoxPlanner-edb41fff.js → DivaBoxPlanner-6ac448b4.js} +5 -4
- package/build/esm/{DivaStandardPlanner-20fe9ebf.js → DivaStandardPlanner-abd9609d.js} +1911 -194
- package/build/esm/{DoorPlanner-0bf17f1f.js → DoorPlanner-fde32e61.js} +4 -3
- package/build/esm/{Host3DSignalR-263f6d3f.js → Host3DSignalR-0f97c7f3.js} +64 -20
- package/build/esm/{LiviqueWWSHandler-e80b574f.js → LiviqueWWSHandler-9ee5b7cb.js} +4 -3
- package/build/esm/{PfisterWWSHandler-508bb12f.js → PfisterWWSHandler-b9699549.js} +3 -2
- package/build/esm/{PlannerHandler2D-e4d80c41.js → PlannerHandler2D-8d963e77.js} +2 -2
- package/build/esm/{SeriousBasketHandler-e9ebb195.js → SeriousBasketHandler-40e7e46c.js} +4 -3
- package/build/esm/{ShelfPlanner-fbb7d7dd.js → ShelfPlanner-69cbb2c1.js} +600 -203
- package/build/esm/{StandardWWSHandler-88f4eb7d.js → StandardWWSHandler-dbf02663.js} +4 -3
- package/build/esm/{index-86463de2.js → index-88148ccc.js} +9297 -3798
- package/build/esm/index.js +4 -3
- package/build/types/web-planner-logic/src/index.d.ts +7 -8
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts +4 -2
- package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/AccessoireItemType.d.ts +6 -2
- package/build/types/web-planner-logic/src/interface/Articles/AccessoireItemType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +14 -0
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/PartListArticleToLoadType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/Articles/PartListArticleToLoadType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +7 -0
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts +16 -1
- package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +2 -3
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts +10 -0
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/IDM3DTranslation.d.ts +20 -0
- package/build/types/web-planner-logic/src/interface/Planner/IDM3DTranslation.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts +10 -0
- package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/RoomSceneTypes.d.ts +76 -0
- package/build/types/web-planner-logic/src/interface/Planner/RoomSceneTypes.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/interface/Rendering/AlternativeRendering.d.ts +4 -0
- package/build/types/web-planner-logic/src/interface/Rendering/AlternativeRendering.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts +5 -0
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +3 -0
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +1 -1
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +30 -0
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts +5 -0
- package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +8 -0
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/mandatoryAccessories.d.ts +3 -1
- package/build/types/web-planner-logic/src/logic/Article/mandatoryAccessories.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts +7 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +77 -7
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts +14 -2
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/viewerStateToggles.d.ts +19 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/viewerStateToggles.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/viewerStateToggles.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/viewerStateToggles.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +112 -24
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +74 -9
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +175 -4
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.d.ts +32 -0
- package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/carrierGuests.d.ts +75 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/carrierGuests.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/guestPlacement.d.ts +47 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/guestPlacement.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/guestPlacement.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/guestPlacement.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementDefaults.d.ts +9 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementDefaults.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementRules.d.ts +78 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementRules.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementRules.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementRules.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementSlots.d.ts +81 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementSlots.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementTypes.d.ts +13 -0
- package/build/types/web-planner-logic/src/logic/Planner/Placement/placementTypes.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts +13 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Room/elementShapes.d.ts +56 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/elementShapes.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/elementShapes.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/elementShapes.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomCollisions.d.ts +90 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomCollisions.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomCollisions.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomCollisions.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomGroups.d.ts +32 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomGroups.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomGroups.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomGroups.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomProperties.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomProperties.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomScenes.d.ts +21 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomScenes.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomScenes.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomScenes.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomValidation.d.ts +13 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomValidation.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomValidation.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/roomValidation.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/rtvFeatures.d.ts +17 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/rtvFeatures.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/rtvFeatures.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/rtvFeatures.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/wallBinding.d.ts +72 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/wallBinding.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/wallBinding.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/wallBinding.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/wallMode.d.ts +7 -0
- package/build/types/web-planner-logic/src/logic/Planner/Room/wallMode.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/plannerSwitch.d.ts +32 -0
- package/build/types/web-planner-logic/src/logic/Planner/plannerSwitch.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/plannerSwitch.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Planner/plannerSwitch.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +12 -6
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +30 -6
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +5 -0
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +28 -0
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts +3 -0
- package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts +4 -2
- package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts +10 -0
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts +6 -4
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts +1 -1
- package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +41 -0
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts +23 -11
- package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Properties/propertyValueCodec.d.ts +1 -34
- package/build/types/web-planner-logic/src/model/Properties/propertyValueCodec.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Properties/propertyValues.d.ts +42 -0
- package/build/types/web-planner-logic/src/model/Properties/propertyValues.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/alternateRenderingToggle.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/alternateRenderingToggle.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/bundleRulesOwnPartlist.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/bundleRulesOwnPartlist.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/capturedSetImages.test.d.ts +1 -0
- package/build/types/web-planner-logic/src/test/capturedSetImages.test.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/carrierGuests.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/carrierGuests.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/classificationRepairFreeText.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/classificationRepairFreeText.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/copyRestoreConnectors.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/copyRestoreConnectors.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/decisionFeatureRefOp.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/decisionFeatureRefOp.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/dragZones.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/dragZones.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/familySwapInPlace.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/familySwapInPlace.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/getConfigStepKeyOfAccessoire.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/getConfigStepKeyOfAccessoire.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/headlessRoomScenes.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/headlessRoomScenes.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/liveArUpdate.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/liveArUpdate.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/oltRectBody.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/oltRectBody.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/orderNumberTemplates.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/orderNumberTemplates.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/partlistChangeReevaluatesOptionTree.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/partlistChangeReevaluatesOptionTree.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/plannerElementHeightChange.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/plannerElementHeightChange.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/plannerRoomScenesSwitch.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/plannerRoomScenesSwitch.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/planning2DCapture.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/planning2DCapture.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/planningRoundTrip.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/planningRoundTrip.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/propertyParsers.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/propertyParsers.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/propertyValues.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/propertyValues.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/roomDragContact.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/roomDragContact.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/roomPlacement.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/roomPlacement.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/roomScenePlanning.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/roomScenePlanning.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/rotationSnap.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/rotationSnap.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/shelfEditNoting.test.d.ts +3 -0
- package/build/types/web-planner-logic/src/test/shelfEditNoting.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/shelfGridCarryOver.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/shelfGridCarryOver.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/shelfMoveLocks.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/shelfMoveLocks.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/shelfOfferedCells.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/shelfOfferedCells.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/shelfStashInheritedOptions.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/shelfStashInheritedOptions.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/sideCopySubstitute.test.d.ts +3 -0
- package/build/types/web-planner-logic/src/test/sideCopySubstitute.test.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** The article facts the placement-type chain reads. */
|
|
2
|
+
export interface PlacementTypeInput {
|
|
3
|
+
/** `PLACEMENT_TYPE` of the article. */
|
|
4
|
+
placementType?: string[];
|
|
5
|
+
/** The names of the article's palette group: every locale, and the catalog's own spelling. */
|
|
6
|
+
groupNames: (string | undefined)[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* An article's placement types (primary first): its `PLACEMENT_TYPE`, else its palette group through the catalog's
|
|
10
|
+
* `placement.paletteGroups`. Undefined: collision and wall rule only.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolvePlacementType(input: PlacementTypeInput, paletteGroups: Record<string, string[]>): string[] | undefined;
|
|
13
|
+
//# sourceMappingURL=placementTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placementTypes.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Placement/placementTypes.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,8FAA8F;IAC9F,UAAU,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAQ7H"}
|
package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DockingConfig, DockingPointHandler as CoreDockingPointHandler, DockingPointSvgLine, MinBorder, PlannerElement2D } from '@crystaldesign/planner-
|
|
1
|
+
import { DockingConfig, DockingPointHandler as CoreDockingPointHandler, DockingPointSvgLine, MinBorder, PlannerElement2D } from '@crystaldesign/planner-core';
|
|
2
2
|
/** Legacy minBorder parameter shape still used by this package's callers. */
|
|
3
3
|
interface LegacyMinBorder {
|
|
4
4
|
svgMinXVal: number;
|
package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DockingPointHandler.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/PlannerUtils/DockingPointHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DockingPointHandler.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/PlannerUtils/DockingPointHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE9J,6EAA6E;AAC7E,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kFAAkF;AAClF,cAAM,mBAAoB,SAAQ,uBAAuB;IAChD,wBAAwB,CAC7B,cAAc,EAAE,gBAAgB,EAChC,cAAc,EAAE,mBAAmB,EAAE,EACrC,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,aAAa,EAAE,aAAa,GAC3B,IAAI;CAIR;AAED,QAAA,MAAM,uBAAuB,qBAA4B,CAAC;AAC1D,eAAe,uBAAuB,CAAC"}
|
|
@@ -66,6 +66,6 @@ export default class SVGUtils {
|
|
|
66
66
|
ccCheckStretchAreas(content: string, newWidthCM: number, newHeightCM: number, useglobalSvgScale: boolean, svgMinBorderXVal: number, svgMinBorderYVal: number, callback: any, svgSourceUrl?: string, keep?: {
|
|
67
67
|
width?: boolean;
|
|
68
68
|
depth?: boolean;
|
|
69
|
-
}): import("@crystaldesign/planner-
|
|
69
|
+
}): import("@crystaldesign/planner-core").StretchSizes;
|
|
70
70
|
}
|
|
71
71
|
//# sourceMappingURL=SVGUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Host3DSignalR.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/Host3DSignalR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAK1E,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,aAAa;IAEhC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAU;
|
|
1
|
+
{"version":3,"file":"Host3DSignalR.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/Host3DSignalR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAK1E,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,aAAa;IAEhC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,wBAAwB,CAAU;IAG1C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB;IAc9E;;OAEG;IACU,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwFjE,OAAO,CAAC,KAAK;IAIA,UAAU,CAAC,MAAM,EAAE,MAAM;IAO/B,6BAA6B,IAAI,OAAO;IAIlC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS/E,kBAAkB,IAAI,OAAO;IAIvB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAatE,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAgE1D,OAAO,CAAC,yBAAyB;IA8C1B,eAAe;IAoBtB;;;OAGG;YACW,KAAK;IAgDnB;;;;;OAKG;YACW,IAAI;IAsClB;;;OAGG;IACH,OAAO,CAAC,wBAAwB,CA4C9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;OAKG;IACH,mBAAmB,SAAU,MAAM,QAAQ,MAAM,UAAU,MAAM,UAK/D;IAEF,YAAY,QAAS,MAAM,UAAQ;IAEnC;;;;;OAKG;IACH,YAAY,WAAY,MAAM,QAAQ,MAAM,aAAa,MAAM,UAI7D;IACF;;;;;OAKG;IACH,iBAAiB,WAAY,MAAM,QAAQ,MAAM,kBAAkB,MAAM,UAIvE;IAEF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
|
|
@@ -3,6 +3,11 @@ import { Nav3DMode, Nav3DParams } from '../../../interface/FunctionTypes';
|
|
|
3
3
|
import { ApiSettignsParams, ApiSettingsRetunParam, CallbackFunctionsParams, HandleReceiveRendering, Hybrid3DInfo_Camera, OnConnectionInitParams, Request3DParameter } from './types';
|
|
4
4
|
import HQRenderScript from './HQRenderScript';
|
|
5
5
|
import { Project3dType } from '../../../interface/Planner/Project3DTypes';
|
|
6
|
+
/**
|
|
7
|
+
* The renderer the AR landing page (`packages/ar-viewer`) renders a live planning with: `rtv-next` for plannings from the
|
|
8
|
+
* rtv-next planner. Absent = the legacy real-time viewer. The page keeps the same type (`usePlannerObserver`).
|
|
9
|
+
*/
|
|
10
|
+
export type LiveArRenderer = 'rtv-next';
|
|
6
11
|
export default class PlannerHandler3D {
|
|
7
12
|
private renderCache;
|
|
8
13
|
private hqRenderScriptCache;
|
|
@@ -24,8 +29,12 @@ export default class PlannerHandler3D {
|
|
|
24
29
|
private updatePlannerHqRenderScriptInView;
|
|
25
30
|
private updatePlannerCamInfoInView;
|
|
26
31
|
private liveArSocket?;
|
|
32
|
+
/** The live AR connection's landing URL, while it is open: one per planner, so phones that joined keep the planning. */
|
|
33
|
+
private liveArConnection?;
|
|
27
34
|
private liveArClientsConnected;
|
|
28
35
|
private liveArViewerUrl?;
|
|
36
|
+
/** The renderer the AR landing page renders the planning with; unset = the legacy real-time viewer. */
|
|
37
|
+
private liveArRenderer?;
|
|
29
38
|
/** Planning hash of the last render script actually emitted to the AR clients — guards against emitting the same planning twice. */
|
|
30
39
|
private lastSentArPlanningHash?;
|
|
31
40
|
private setRotationOfOrbitCube;
|
|
@@ -191,12 +200,15 @@ export default class PlannerHandler3D {
|
|
|
191
200
|
* after any that failed. The payload is diagnostics only and is not part of any saved state.
|
|
192
201
|
*/
|
|
193
202
|
getHQRenderScriptDebugData(): object | undefined;
|
|
194
|
-
|
|
203
|
+
/** Opens the live AR connection, or returns the open one; resolves with its landing page URL. */
|
|
204
|
+
openARObserverConnection(handleNoHqrs: () => void, renderer?: LiveArRenderer): Promise<string>;
|
|
205
|
+
private connectLiveAr;
|
|
195
206
|
/**
|
|
196
207
|
* Emit a render script to the connected AR live viewer. The script for a planning can reach this
|
|
197
208
|
* from more than one source (Unity via SignalR, the render script cache), so emitting is
|
|
198
209
|
* deduplicated per planning hash — the AR client already holds that exact script.
|
|
199
210
|
*/
|
|
200
211
|
sendARRenderScript(hqRenderScript: HQRenderScript, planningHash: string): void;
|
|
212
|
+
private liveArUpdate;
|
|
201
213
|
}
|
|
202
214
|
//# sourceMappingURL=PlannerHandler3D.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlannerHandler3D.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/PlannerHandler3D.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,aAAa,CAAC;AAKpC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG1E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EAGtB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AACjB,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAI1E,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAEnC,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,qBAAqB,CAA0C;IACvE,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,gBAAgB,CAA0H;IAClJ,OAAO,CAAC,4BAA4B,CAAsC;IAC1E,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,4BAA4B,CAAM;IAC1C,OAAO,CAAC,iCAAiC,CAAM;IAC/C,OAAO,CAAC,0BAA0B,CAAM;IAExC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,oIAAoI;IACpI,OAAO,CAAC,sBAAsB,CAAC,CAAS;IAExC,OAAO,CAAC,sBAAsB,CAAkF;IAChH,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,yBAAyB,CAUvB;IAEV,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAapB;IACF,OAAO,CAAC,aAAa,CAAC,CAAsB;IAE5C,OAAO,CAAC,GAAG,CAAC,CAAS;IACrB,OAAO,CAAC,gBAAgB,CAAC,CAAoB;gBAK3C,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,oBAAoB,EAAE,GAAG,EAAE,8DAA8D;IACzF,YAAY,EAAE,OAAO;IA6BhB,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM;IAI1B;;;OAGG;IACU,mBAAmB,CAAC,iBAAiB,EAAE,MAAM;IAgB1D;;;;OAIG;IACU,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5G;;;OAGG;IACI,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAQlE,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB;IAqBjE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"PlannerHandler3D.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/PlannerHandler3D.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Vector2 } from '../../../model/Planner/wcVectors';
|
|
2
|
+
import type { FloorPose } from './wallBinding';
|
|
3
|
+
/** An element on the floor: its body (OLT) and its free area (OLF, else the body), each as world polygons. */
|
|
4
|
+
export interface ElementShape {
|
|
5
|
+
body: Vector2[][];
|
|
6
|
+
free: Vector2[][];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* An element's zone, the area its function needs beyond its body (door swing, drawer, pull-out): its free area (OLF) with
|
|
10
|
+
* the body (OLT) cut out where the two overlap.
|
|
11
|
+
*/
|
|
12
|
+
export interface ElementZone {
|
|
13
|
+
outline: Vector2[];
|
|
14
|
+
hole?: Vector2[];
|
|
15
|
+
}
|
|
16
|
+
/** A floor pose: centre and planner rotation (deg); the wall binding's. */
|
|
17
|
+
export type { FloorPose };
|
|
18
|
+
/** Points moved rigidly from pose `from` to pose `to`: turned about `from`'s centre, then shifted onto `to`'s. */
|
|
19
|
+
export declare function movePoints(points: Vector2[], from: FloorPose, to: FloorPose): Vector2[];
|
|
20
|
+
/** The shape moved rigidly from pose `from` to pose `to` (see {@link movePoints}). */
|
|
21
|
+
export declare function moveShape(shape: ElementShape, from: FloorPose, to: FloorPose): ElementShape;
|
|
22
|
+
/** Whether two floor polygons overlap, one inside the other included; concave ones are cut into convex pieces. */
|
|
23
|
+
export declare function polygonsOverlap(a: Vector2[], b: Vector2[]): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The zone of an element as convex floor pieces: its free area minus its body, pieces narrower than a centimetre left
|
|
26
|
+
* out. None when the free area reaches nowhere beyond the body (no OLF, or an OLF equal to or inside the OLT).
|
|
27
|
+
*/
|
|
28
|
+
export declare function getZonePieces(shape: ElementShape): Vector2[][];
|
|
29
|
+
/** The zone of an element with body `body` (OLT) and free area `free` (OLF); undefined without one (see {@link getZonePieces}). */
|
|
30
|
+
export declare function getElementZone(body: Vector2[], free: Vector2[]): ElementZone | undefined;
|
|
31
|
+
/** Whether one of the `body` polygons stands in the zone (its convex `pieces`, see {@link getZonePieces}). */
|
|
32
|
+
export declare function standsInZone(body: Vector2[][], pieces: Vector2[][]): boolean;
|
|
33
|
+
/** The shortest distance (cm) between two floor polygons; 0 where they overlap. */
|
|
34
|
+
export declare function polygonsDistance(a: Vector2[], b: Vector2[]): number;
|
|
35
|
+
/** An axis-aligned box on the floor (cm). */
|
|
36
|
+
export interface FloorBounds {
|
|
37
|
+
minX: number;
|
|
38
|
+
maxX: number;
|
|
39
|
+
minZ: number;
|
|
40
|
+
maxZ: number;
|
|
41
|
+
}
|
|
42
|
+
/** The box around floor polygons, grown by `margin` cm on every side. */
|
|
43
|
+
export declare function boundsOf(polygons: Vector2[][], margin?: number): FloorBounds;
|
|
44
|
+
/** Whether two boxes overlap or touch. */
|
|
45
|
+
export declare const boundsMeet: (a: FloorBounds, b: FloorBounds) => boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether two elements collide: their bodies overlap, or one's body stands in the other's free area (two free areas may
|
|
48
|
+
* overlap). With `bodiesOnly` (a guest in its carrier's slot) only the bodies count.
|
|
49
|
+
*/
|
|
50
|
+
export declare function shapesCollide(a: ElementShape, b: ElementShape, bodiesOnly?: boolean): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* How deep (cm) two elements' bodies reach into each other: the way that parts their deepest overlapping convex pieces;
|
|
53
|
+
* 0 while they only touch (overlap by no more than the tolerance, see {@link shapesCollide}) or stand apart.
|
|
54
|
+
*/
|
|
55
|
+
export declare function bodiesOverlap(a: ElementShape, b: ElementShape): number;
|
|
56
|
+
//# sourceMappingURL=elementShapes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementShapes.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/elementShapes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,8GAA8G;AAC9G,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,2EAA2E;AAC3E,YAAY,EAAE,SAAS,EAAE,CAAC;AAU1B,kHAAkH;AAClH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,EAAE,CASvF;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,YAAY,CAG3F;AAuFD,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAGnE;AA2CD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,EAAE,EAAE,CAO9D;AAED,mIAAmI;AACnI,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,GAAG,SAAS,CAIxF;AAED,8GAA8G;AAC9G,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAE5E;AAUD,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAKnE;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAI,GAAG,WAAW,CAKvE;AAED,0CAA0C;AAC1C,eAAO,MAAM,UAAU,MAAO,WAAW,KAAK,WAAW,YAAiF,CAAC;AAI3I;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,UAAQ,GAAG,OAAO,CAM3F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAKtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementShapes.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/elementShapes.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { ElementShape, FloorPose } from './elementShapes';
|
|
2
|
+
import { PlacementRules } from '../Placement/placementRules';
|
|
3
|
+
import { SlotMember } from '../Placement/placementSlots';
|
|
4
|
+
/** An element (or a door swing) as collisions see it: its body and zone, its placement types and its group as slot carrier. */
|
|
5
|
+
export interface CollisionShape {
|
|
6
|
+
shape: ElementShape;
|
|
7
|
+
types: string[];
|
|
8
|
+
group: SlotMember[];
|
|
9
|
+
}
|
|
10
|
+
/** An element of a set as the planning's collision warning checks it. */
|
|
11
|
+
export interface CollisionPart extends CollisionShape {
|
|
12
|
+
elementId: number;
|
|
13
|
+
/** Its docking group, numbered within the set. */
|
|
14
|
+
groupIndex: number;
|
|
15
|
+
layer: number;
|
|
16
|
+
/** Whether the set's construction warning (`COLLISION_MSG`) already checks it against the set's other elements. */
|
|
17
|
+
constructionChecked: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** The colliding elements of one set, with the rules of its catalog. */
|
|
20
|
+
export interface CollisionSet {
|
|
21
|
+
setId: string;
|
|
22
|
+
catalogCodex: string;
|
|
23
|
+
/** The slots its elements offer as carriers. */
|
|
24
|
+
rules: PlacementRules;
|
|
25
|
+
/** The layers that collide with each other (`checkCollisionForDifferentLayers`); any other two layers never do. */
|
|
26
|
+
collidingLayers: number[];
|
|
27
|
+
parts: CollisionPart[];
|
|
28
|
+
}
|
|
29
|
+
/** One element of a colliding pair. */
|
|
30
|
+
export interface CollisionMember {
|
|
31
|
+
setId: string;
|
|
32
|
+
elementId: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Whether one of the pair stands in a slot of the other's group (by that one's rules): no collision. The bodies have to be
|
|
36
|
+
* clear, unless the slot lets its guest reach under the carrier (a negative distance: a chair's seat under the table top).
|
|
37
|
+
*/
|
|
38
|
+
export declare function slotExempt(rulesA: PlacementRules, a: CollisionShape, rulesB: PlacementRules, b: CollisionShape): boolean;
|
|
39
|
+
/** Whether two layers of one catalog collide: the same layer, or two of its `collidingLayers`. */
|
|
40
|
+
export declare const layersCollide: (collidingLayers: number[], a: number, b: number) => boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Pairs of elements of different docking groups, over all sets, whose bodies overlap or where one body stands in the
|
|
43
|
+
* other's zone; never a slot guest clear of its carrier, in one catalog layers only as allowed, in one set only pairs
|
|
44
|
+
* COLLISION_MSG skips.
|
|
45
|
+
*/
|
|
46
|
+
export declare function findRoomCollisions(sets: CollisionSet[]): [CollisionMember, CollisionMember][];
|
|
47
|
+
/** cm around the dragged bodies within which the zones of other elements show. */
|
|
48
|
+
export declare const DRAG_ZONE_REACH = 100;
|
|
49
|
+
/** A zone a viewer shows while the user drags: whose it is, and whether a body stands in it. */
|
|
50
|
+
export interface DragZone extends CollisionMember {
|
|
51
|
+
violated: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* What a room drag or turn runs into where the pointer has the group, which makes a release there invalid: the elements
|
|
55
|
+
* whose bodies the dragged ones run into, and whether a door's clearance does.
|
|
56
|
+
*/
|
|
57
|
+
export interface DragBlock {
|
|
58
|
+
elements: CollisionMember[];
|
|
59
|
+
door: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A live drag's preview: the move (cm / deg, about the grabbed element's centre) from where the pointer put the grabbed
|
|
63
|
+
* element to where it shows (its dock, or its pose by the room rules), the zones to show meanwhile and, while contact
|
|
64
|
+
* holds the move back, what blocks it.
|
|
65
|
+
*/
|
|
66
|
+
export interface DragPreview {
|
|
67
|
+
dx: number;
|
|
68
|
+
dz: number;
|
|
69
|
+
dRotDeg: number;
|
|
70
|
+
zones?: DragZone[];
|
|
71
|
+
blockedBy?: DragBlock;
|
|
72
|
+
}
|
|
73
|
+
/** What the user drags: elements of one set that move as one (a docking group), and the guests that go with them. */
|
|
74
|
+
export interface DraggedUnit {
|
|
75
|
+
setId: string;
|
|
76
|
+
elementIds: number[];
|
|
77
|
+
/** The guests that follow the dragged elements (any set, with their docking groups). */
|
|
78
|
+
followers?: CollisionMember[];
|
|
79
|
+
/** Where the viewer shows them when that is not where the planner holds them (a dock snap): the rigid move there. */
|
|
80
|
+
shownAt?: {
|
|
81
|
+
from: FloorPose;
|
|
82
|
+
to: FloorPose;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The zones to show while `dragged` moves: its own and other elements' within `reach` cm of its bodies, each violated
|
|
87
|
+
* while a body of the other side stands in it (layer and slot-guest exemptions as in {@link findRoomCollisions}).
|
|
88
|
+
*/
|
|
89
|
+
export declare function findDragZones(sets: CollisionSet[], dragged: DraggedUnit, reach?: number): DragZone[];
|
|
90
|
+
//# sourceMappingURL=roomCollisions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomCollisions.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomCollisions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,SAAS,EAMV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAiE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAExH,+HAA+H;AAC/H,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,yEAAyE;AACzE,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,mHAAmH;IACnH,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,KAAK,EAAE,cAAc,CAAC;IACtB,mHAAmH;IACnH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AASD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,GAAG,OAAO,CAGxH;AAED,kGAAkG;AAClG,eAAO,MAAM,aAAa,oBAAqB,MAAM,EAAE,KAAK,MAAM,KAAK,MAAM,YACJ,CAAC;AAW1E;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,CAc7F;AAED,kFAAkF;AAClF,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,gGAAgG;AAChG,MAAM,WAAW,QAAS,SAAQ,eAAe;IAC/C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,qHAAqH;AACrH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wFAAwF;IACxF,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,qHAAqH;IACrH,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,EAAE,EAAE,SAAS,CAAA;KAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,SAAkB,GAAG,QAAQ,EAAE,CA0C7G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomCollisions.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomCollisions.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import PlannerElementData from '../../../model/Planner/PlannerElementData';
|
|
2
|
+
import { FloorPose, WallBlock } from './wallBinding';
|
|
3
|
+
import { ElementGeoExtent } from '../../../interface/Planner/RoomSceneTypes';
|
|
4
|
+
import { ElementShape } from './elementShapes';
|
|
5
|
+
/** Whether two measured extents agree within {@link GEO_EXTENT_TOLERANCE}; a missing one only matches a missing one. */
|
|
6
|
+
export declare function sameGeoExtent(a: ElementGeoExtent | undefined, b: ElementGeoExtent | undefined): boolean;
|
|
7
|
+
/** A group's footprint in one rotation frame: bounding-box centre (world) and the block it forms. */
|
|
8
|
+
export interface GroupBlock extends FloorPose {
|
|
9
|
+
block: WallBlock;
|
|
10
|
+
}
|
|
11
|
+
/** Elements connected through docked docking points (the viewer's docking groups), singles included. */
|
|
12
|
+
export declare function getDockingGroups(elements: PlannerElementData[]): PlannerElementData[][];
|
|
13
|
+
/**
|
|
14
|
+
* The element's body and free area as world polygons: the body its OLT (polygon, else rectangle, see
|
|
15
|
+
* `getOLTOutlineWorldPos`), only without one width × depth; the free area its OLF, else the body. With `measured` each
|
|
16
|
+
* gets whatever of the 3D geometry the viewer measured reaches beyond the body (a headboard leaning back).
|
|
17
|
+
*/
|
|
18
|
+
export declare function getElementShape(element: PlannerElementData, measured?: boolean): ElementShape;
|
|
19
|
+
/** Combined footprint (bodies) of `members` as a block in the frame rotated by `rotDeg`. */
|
|
20
|
+
export declare function getGroupBlock(members: PlannerElementData[], rotDeg: number): GroupBlock;
|
|
21
|
+
/** Shortest signed turn from `fromDeg` to `toDeg`, in [-180, 180). */
|
|
22
|
+
export declare function getTurnDeg(fromDeg: number, toDeg: number): number;
|
|
23
|
+
/** Whether two floor poses are the same, up to rounding. */
|
|
24
|
+
export declare function isSamePose(a: FloorPose, b: FloorPose): boolean;
|
|
25
|
+
/** Moves `members` rigidly so the pose `from` (centre + rotation) lands on `to`. */
|
|
26
|
+
export declare function moveGroupRigidly(members: PlannerElementData[], from: FloorPose, to: FloorPose): void;
|
|
27
|
+
/**
|
|
28
|
+
* Which end of a group (in the frame rotated by `frameRotDeg`) a corner element needs flush in a room corner: its `side`
|
|
29
|
+
* ('left' = its local -x side, 'right', 'any'), only when that side is an end of the group. Undefined otherwise.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getCornerEnd(members: PlannerElementData[], frameRotDeg: number, corner: PlannerElementData, side: 'left' | 'right' | 'any'): 'min' | 'max' | 'any' | undefined;
|
|
32
|
+
//# sourceMappingURL=roomGroups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomGroups.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomGroups.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,CAAC,EAAE,gBAAgB,GAAG,SAAS,EAAE,CAAC,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAGvG;AAED,qGAAqG;AACrG,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,EAAE,CA+BvF;AA+BD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,UAAO,GAAG,YAAY,CAiB1F;AAYD,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAkBvF;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjE;AAKD,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAK9D;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,QAQ7F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAC7B,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAWnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomGroups.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomGroups.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomProperties.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomProperties.test.ts"],"names":[],"mappings":"AACA,OAAO,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SceneEntry } from '../../../interface/Planner/RoomSceneTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Whether `scene` is the implicit white room the viewer falls back to without catalog scenes. A planning does not save it:
|
|
4
|
+
* it was never chosen, so a catalog that adds scenes later opens the planning in its default scene.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isImplicitWhiteRoom(scene: SceneEntry | undefined): boolean;
|
|
7
|
+
/** Scene list injected by `?rtv-room` when the catalog has no scenes: the white room and one demo room. */
|
|
8
|
+
export declare const DEMO_ROOM_SCENES: SceneEntry[];
|
|
9
|
+
export interface RoomScenes {
|
|
10
|
+
scenes: SceneEntry[];
|
|
11
|
+
defaultSceneId: string;
|
|
12
|
+
/** The `?rtv-room` demo list is in use. */
|
|
13
|
+
isDemo: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Scene list and default scene of an RTV_PRESET bundle, without scenes whose id an earlier one has; without scenes the
|
|
17
|
+
* white room (or the demo list). The default is the preset's `defaultSceneId`, else the first scene; with `preferRoom`
|
|
18
|
+
* (the catalog's `DEFAULT_DO_SHOW_ROOM`) it is a scene with a room: that one when it has one, else the first that does.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveRoomScenes(rtvPreset: Record<string, unknown> | undefined, useDemoScenes: boolean, preferRoom?: boolean): RoomScenes;
|
|
21
|
+
//# sourceMappingURL=roomScenes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomScenes.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomScenes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAMvE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAE1E;AAED,2GAA2G;AAC3G,eAAO,MAAM,gBAAgB,EAAE,UAAU,EAiBxC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;CACjB;AAcD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,UAAQ,GAAG,UAAU,CAYxI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomScenes.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomScenes.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RoomDefinition } from '../../../interface/Planner/RoomSceneTypes';
|
|
2
|
+
/** Whether the value is a plain object (no array) whose fields can be read. */
|
|
3
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
4
|
+
/** Twice the signed area of a footprint (shoelace); its sign is the loop's winding. */
|
|
5
|
+
export declare function doubleArea(footprint: [number, number][]): number;
|
|
6
|
+
/**
|
|
7
|
+
* A clean copy of `value` when it is a usable room, else undefined: at least 3 distinct finite [x, z] corners enclosing
|
|
8
|
+
* an area (repeated corners dropped, corners on a straight wall merged), `height` > 0 and `wallThickness` ≥ 0. Invalid
|
|
9
|
+
* openings (off their wall, negative, reaching past the wall end), look fields of the wrong type and a light preset not
|
|
10
|
+
* in `LIGHT_PRESETS` (the room is then lit by day) are dropped.
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateRoomDefinition(value: unknown): RoomDefinition | undefined;
|
|
13
|
+
//# sourceMappingURL=roomValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomValidation.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmE,MAAM,2CAA2C,CAAC;AAQ5I,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAsCD,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAKhE;AA+FD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAkBjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomValidation.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/roomValidation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** The rtv-next features a catalog can switch on or off. */
|
|
2
|
+
export interface RtvFeatures {
|
|
3
|
+
/** Swapping doors in 3D in the door planner step; off, the step keeps its 2D strip. */
|
|
4
|
+
doorSwap3D: boolean;
|
|
5
|
+
/** The gesture hints (a hand demonstrating a drag, once per browser session). */
|
|
6
|
+
coachHints: boolean;
|
|
7
|
+
}
|
|
8
|
+
/** What a catalog says through its properties: a value per feature it sets, none for one it leaves to the preset. */
|
|
9
|
+
export type RtvFeatureOverrides = Partial<RtvFeatures>;
|
|
10
|
+
/** Without a word from the catalog or its RTV_PRESET, every feature is on. */
|
|
11
|
+
export declare const DEFAULT_RTV_FEATURES: RtvFeatures;
|
|
12
|
+
/**
|
|
13
|
+
* The features in effect: a catalog property decides where it is set; else the RTV_PRESET's `features` block; else
|
|
14
|
+
* {@link DEFAULT_RTV_FEATURES}. A preset value that is no boolean is ignored.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveRtvFeatures(rtvPreset: Record<string, unknown> | undefined, overrides?: RtvFeatureOverrides): RtvFeatures;
|
|
17
|
+
//# sourceMappingURL=rtvFeatures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtvFeatures.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/rtvFeatures.ts"],"names":[],"mappings":"AAEA,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,UAAU,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qHAAqH;AACrH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEvD,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,EAAE,WAAoD,CAAC;AAExF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,SAAS,GAAE,mBAAwB,GAAG,WAAW,CAUnI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtvFeatures.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/rtvFeatures.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { RoomDefinition } from '../../../interface/Planner/RoomSceneTypes';
|
|
2
|
+
export interface FloorPoint {
|
|
3
|
+
x: number;
|
|
4
|
+
z: number;
|
|
5
|
+
}
|
|
6
|
+
/** Inner face of one room wall: start point, unit direction, unit normal pointing into the room. */
|
|
7
|
+
export interface RoomWall {
|
|
8
|
+
start: FloorPoint;
|
|
9
|
+
dir: FloorPoint;
|
|
10
|
+
normal: FloorPoint;
|
|
11
|
+
length: number;
|
|
12
|
+
}
|
|
13
|
+
/** Footprint of a block that is bound to a wall: half extents along / away from the wall, height in cm. */
|
|
14
|
+
export interface WallBlock {
|
|
15
|
+
halfWidth: number;
|
|
16
|
+
halfDepth: number;
|
|
17
|
+
height: number;
|
|
18
|
+
/** End of the block (its local -x 'min' / +x 'max' side, or 'any') that has to sit flush in a room corner. */
|
|
19
|
+
cornerEnd?: 'min' | 'max' | 'any';
|
|
20
|
+
}
|
|
21
|
+
/** A rotated rectangle on the floor: centre, half extents along its local x / z, planner rotation (deg). */
|
|
22
|
+
export interface FloorRect {
|
|
23
|
+
center: FloorPoint;
|
|
24
|
+
halfWidth: number;
|
|
25
|
+
halfDepth: number;
|
|
26
|
+
rotDeg: number;
|
|
27
|
+
}
|
|
28
|
+
/** Pose of a block on the floor: centre and planner rotation (deg). */
|
|
29
|
+
export interface FloorPose {
|
|
30
|
+
center: FloorPoint;
|
|
31
|
+
rotDeg: number;
|
|
32
|
+
}
|
|
33
|
+
/** Bound pose of a block: its pose and the wall it stands against. */
|
|
34
|
+
export interface WallPose extends FloorPose {
|
|
35
|
+
wallIndex: number;
|
|
36
|
+
}
|
|
37
|
+
/** Walls of the footprint with inward normals, independent of the loop's winding. */
|
|
38
|
+
export declare function getRoomWalls(footprint: [number, number][]): RoomWall[];
|
|
39
|
+
/** The dot product of two floor vectors. */
|
|
40
|
+
export declare const dot: (a: FloorPoint, b: FloorPoint) => number;
|
|
41
|
+
/** The local x axis (along the front) of a planner rotation on the floor (same convention as Vector2.rotateOrigin). */
|
|
42
|
+
export declare const axisX: (rotDeg: number) => FloorPoint;
|
|
43
|
+
/** The local z axis (towards the front) of a planner rotation on the floor. */
|
|
44
|
+
export declare const axisZ: (rotDeg: number) => FloorPoint;
|
|
45
|
+
/**
|
|
46
|
+
* Closest valid wall pose for a block whose unconstrained centre is `rawCenter`: back against a wall, between the
|
|
47
|
+
* adjacent walls and clear of blocking openings. Past a wall end the adjacent wall becomes closer, which turns the
|
|
48
|
+
* block round the corner. A pose whose block does not lie within the room (deeper than the room in front of the wall) is
|
|
49
|
+
* none. Null when the block fits on no wall.
|
|
50
|
+
*/
|
|
51
|
+
export declare function bindToWalls(rawCenter: FloorPoint, block: WallBlock, room: RoomDefinition): WallPose | null;
|
|
52
|
+
/**
|
|
53
|
+
* Whether `rect` lies within the room's footprint: nothing behind a wall and no wall running through it, flush with a
|
|
54
|
+
* wall or a hair beyond it still inside (planner-core `isOutlineInRoom`). A block wider or deeper than the room fits
|
|
55
|
+
* nowhere in it.
|
|
56
|
+
*/
|
|
57
|
+
export declare function fitsInsideRoom(rect: FloorRect, room: RoomDefinition): boolean;
|
|
58
|
+
/** The four corners of a floor rectangle. */
|
|
59
|
+
export declare function rectCorners(rect: FloorRect): FloorPoint[];
|
|
60
|
+
/**
|
|
61
|
+
* Centre of `rect` moved the shortest way back inside the room (planner-core `fitInRoom`), an L's notch included. One
|
|
62
|
+
* that fits nowhere keeps its centre within the walls.
|
|
63
|
+
*/
|
|
64
|
+
export declare function keepInsideRoom(rect: FloorRect, room: RoomDefinition): FloorPoint;
|
|
65
|
+
/** cm in front of a passage that stay clear: the doorway one steps through. */
|
|
66
|
+
export declare const DOORWAY_DEPTH = 40;
|
|
67
|
+
/**
|
|
68
|
+
* The floor each door and passage needs kept clear inside the room, as obstacles: a door's swing (a square as deep as
|
|
69
|
+
* the door is wide); in front of a passage, the doorway ({@link DOORWAY_DEPTH} deep, as wide as the opening).
|
|
70
|
+
*/
|
|
71
|
+
export declare function getDoorClearanceRects(room: RoomDefinition): FloorRect[];
|
|
72
|
+
//# sourceMappingURL=wallBinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallBinding.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/wallBinding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,2CAA2C,CAAC;AAGxF,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,oGAAoG;AACpG,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2GAA2G;AAC3G,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,8GAA8G;IAC9G,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;CACnC;AAED,4GAA4G;AAC5G,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,WAAW,QAAS,SAAQ,SAAS;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,CAStE;AA2CD,4CAA4C;AAC5C,eAAO,MAAM,GAAG,MAAO,UAAU,KAAK,UAAU,WAA0B,CAAC;AAI3E,uHAAuH;AACvH,eAAO,MAAM,KAAK,WAAY,MAAM,KAAG,UAA0E,CAAC;AAClH,+EAA+E;AAC/E,eAAO,MAAM,KAAK,WAAY,MAAM,KAAG,UAA2E,CAAC;AA2CnH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAmB1G;AAOD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAE7E;AAED,6CAA6C;AAC7C,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,EAAE,CAYzD;AAQD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,UAAU,CAMhF;AAED,+EAA+E;AAC/E,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,CAmBvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallBinding.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/wallBinding.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WallMode } from '../../../interface/Articles/CatalogArticleDataType';
|
|
2
|
+
import type { PropertyValue } from '../../../model/Properties/propertyValues';
|
|
3
|
+
/** PLACE_ON_WALL value: 'snap' snaps to a nearby wall, `true` / '1' / 'true' forced, anything else free. */
|
|
4
|
+
export declare function parseWallMode(value: PropertyValue | undefined): WallMode;
|
|
5
|
+
/** PLACE_IN_CORNER value: 'left' / 'right' that side, `true` / '1' / 'true' either side, anything else no corner element. */
|
|
6
|
+
export declare function parseCornerSide(value: PropertyValue | undefined): 'left' | 'right' | 'any' | undefined;
|
|
7
|
+
//# sourceMappingURL=wallMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallMode.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Room/wallMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oDAAoD,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAQ9E,4GAA4G;AAC5G,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,QAAQ,CAGxE;AAED,6HAA6H;AAC7H,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAGtG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type PlannerElementData from '../../model/Planner/PlannerElementData';
|
|
2
|
+
import type { ParamsAddPlannerElement } from '../../interface/FunctionTypes';
|
|
3
|
+
import type { CatalogPlannerArticleViewDataType } from '../../interface/Articles/CatalogPlannerArticleViewDataType';
|
|
4
|
+
/** A docked docking point of the element to switch: its type and the filter of the docking point it sits on. */
|
|
5
|
+
export interface SwitchDockedPoint {
|
|
6
|
+
type: string;
|
|
7
|
+
targetFilter?: string[];
|
|
8
|
+
}
|
|
9
|
+
/** The planned element a switch replaces, as the switch check reads it. */
|
|
10
|
+
export interface SwitchElement {
|
|
11
|
+
articleCodex: string;
|
|
12
|
+
/** Its current svg has an AVL / AVR, docked or free. */
|
|
13
|
+
hasAVL: boolean;
|
|
14
|
+
hasAVR: boolean;
|
|
15
|
+
docked: SwitchDockedPoint[];
|
|
16
|
+
layer?: number;
|
|
17
|
+
filterType?: string;
|
|
18
|
+
}
|
|
19
|
+
/** A planner palette article that may replace the element; `accessoires` are the articles it takes as accessories. */
|
|
20
|
+
export type SwitchCandidate = Pick<CatalogPlannerArticleViewDataType, 'hasAVL' | 'hasAVR' | 'hasAVO' | 'hasAVU' | 'hasAVC' | 'hasAVN' | 'hasAVS' | 'avlFilter' | 'avrFilter' | 'layer' | 'filterType' | 'accessoires'>;
|
|
21
|
+
/** Whether two docking filters match: an empty filter on either side restricts nothing, else they share an entry. */
|
|
22
|
+
export declare function dockingFiltersMatch(filter1?: string[], filter2?: string[]): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the candidate may replace the element in place ("Tausch"): same AVL / AVR sides, every docked point taken with
|
|
25
|
+
* a matching filter, same layer and accessory status, and the candidate does not take the element as an accessory.
|
|
26
|
+
*/
|
|
27
|
+
export declare function canSwitchTo(element: SwitchElement, candidate: SwitchCandidate): boolean;
|
|
28
|
+
/** A planned element as the switch check reads it. */
|
|
29
|
+
export declare function switchElementOf(element: PlannerElementData): SwitchElement;
|
|
30
|
+
/** What a switch passes on so the new element takes the old one's place: its docking partners and its position number. */
|
|
31
|
+
export declare function switchInitParamsOf(element: PlannerElementData): Pick<ParamsAddPlannerElement, 'dockingPointInfos' | 'posNr'>;
|
|
32
|
+
//# sourceMappingURL=plannerSwitch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plannerSwitch.d.ts","sourceRoot":"","sources":["../../../../../../src/logic/Planner/plannerSwitch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,4DAA4D,CAAC;AAEpH,gHAAgH;AAChH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sHAAsH;AACtH,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,iCAAiC,EACjC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,CAChJ,CAAC;AAEF,qHAAqH;AACrH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAGnF;AA6BD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAMvF;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAS1E;AAED,0HAA0H;AAC1H,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAO5H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plannerSwitch.test.d.ts","sourceRoot":"","sources":["../../../../../../src/logic/Planner/plannerSwitch.test.ts"],"names":[],"mappings":"AACA,OAAO,mBAAmB,CAAC"}
|