@ifc-lite/viewer 1.17.3 → 1.17.6
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/.turbo/turbo-build.log +39 -30
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +132 -0
- package/DESKTOP_CONTRACT_VERSION +1 -0
- package/dist/assets/arrow-CZ5kQ26f.js +20 -0
- package/dist/assets/basketViewActivator-86rgogji.js +1 -0
- package/dist/assets/{bcf-D5-QWGO9.js → bcf-DOG9_WPX.js} +1 -1
- package/dist/assets/{browser-CKs-FY1P.js → browser-C5TFR7sH.js} +1 -1
- package/dist/assets/cesium-ADbP7waU.css +1 -0
- package/dist/assets/cesium-DUOzBlqv.js +17817 -0
- package/dist/assets/drawing-2d-DoxKMqbO.js +257 -0
- package/dist/assets/{exporters-C_6J153K.js → exporters-CcPS9MK5.js} +2898 -2380
- package/dist/assets/geometry.worker-BFUYA08u.js +1 -0
- package/dist/assets/ids-DQ5jY0E8.js +1 -0
- package/dist/assets/ifc-lite_bg-BINvzoCP.wasm +0 -0
- package/dist/assets/{index-jhBr1wbn.js → index-Bfms9I4A.js} +41036 -34613
- package/dist/assets/index-_bfZsDCC.css +1 -0
- package/dist/assets/{maplibre-gl-BpvwNKKy.js → maplibre-gl-CGLcoNXc.js} +1 -1
- package/dist/assets/native-bridge-DUyLCMZS.js +429 -0
- package/dist/assets/{sandbox-B79eavQ3.js → sandbox-C8575tul.js} +4342 -4324
- package/dist/assets/{server-client-D3bUPJJc.js → server-client-BuZK7OST.js} +4 -4
- package/dist/assets/tauri-core-stub-D8Fa-u43.js +1 -0
- package/dist/assets/tauri-dialog-stub-r7Wksg7o.js +1 -0
- package/dist/assets/tauri-fs-stub-BdeRC7aK.js +1 -0
- package/dist/assets/wasm-bridge-JsqEGDV8.js +1 -0
- package/dist/assets/{zip-B-jFFAGa.js → zip-DBEtpeu6.js} +3 -3
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
- package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
- package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
- package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
- package/dist/cesium/Assets/Images/ion-credit.png +0 -0
- package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
- package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
- package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
- package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
- package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
- package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
- package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
- package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
- package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/building.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
- package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
- package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
- package/dist/cesium/Assets/Textures/maki/car.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
- package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
- package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/city.png +0 -0
- package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
- package/dist/cesium/Assets/Textures/maki/college.png +0 -0
- package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
- package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
- package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
- package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
- package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
- package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
- package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
- package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
- package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
- package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
- package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
- package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
- package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
- package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
- package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
- package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
- package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
- package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
- package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
- package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
- package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
- package/dist/cesium/Assets/Textures/maki/library.png +0 -0
- package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
- package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
- package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
- package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
- package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
- package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
- package/dist/cesium/Assets/Textures/maki/music.png +0 -0
- package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
- package/dist/cesium/Assets/Textures/maki/park.png +0 -0
- package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
- package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
- package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
- package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
- package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
- package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
- package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/police.png +0 -0
- package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
- package/dist/cesium/Assets/Textures/maki/post.png +0 -0
- package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
- package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
- package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/school.png +0 -0
- package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
- package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
- package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
- package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
- package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/square.png +0 -0
- package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/star.png +0 -0
- package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
- package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
- package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
- package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
- package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
- package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
- package/dist/cesium/Assets/Textures/maki/town.png +0 -0
- package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/village.png +0 -0
- package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/water.png +0 -0
- package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
- package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
- package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
- package/dist/cesium/Assets/Textures/pin.svg +1 -0
- package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
- package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
- package/dist/cesium/Assets/approximateTerrainHeights.json +1 -0
- package/dist/cesium/ThirdParty/Workers/package.json +1 -0
- package/dist/cesium/ThirdParty/Workers/zip-web-worker.js +1 -0
- package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
- package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
- package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +1 -0
- package/dist/cesium/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/dist/cesium/ThirdParty/zip-module.wasm +0 -0
- package/dist/cesium/Widgets/Animation/Animation.css +127 -0
- package/dist/cesium/Widgets/Animation/lighter.css +70 -0
- package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +108 -0
- package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +22 -0
- package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +102 -0
- package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +113 -0
- package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +119 -0
- package/dist/cesium/Widgets/CesiumWidget/lighter.css +14 -0
- package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +8 -0
- package/dist/cesium/Widgets/Geocoder/Geocoder.css +70 -0
- package/dist/cesium/Widgets/Geocoder/lighter.css +17 -0
- package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +27 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/azureAerial.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/azureRoads.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/googleContour.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/googleRoadmap.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/googleSatellite.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/googleSatelliteLabels.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +84 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +76 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +76 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +76 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +120 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +129 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +76 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +135 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +74 -0
- package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
- package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
- package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
- package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
- package/dist/cesium/Widgets/InfoBox/InfoBox.css +92 -0
- package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +178 -0
- package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +93 -0
- package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +38 -0
- package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +15 -0
- package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +38 -0
- package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +56 -0
- package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +20 -0
- package/dist/cesium/Widgets/Timeline/Timeline.css +103 -0
- package/dist/cesium/Widgets/Timeline/lighter.css +23 -0
- package/dist/cesium/Widgets/VRButton/VRButton.css +8 -0
- package/dist/cesium/Widgets/Viewer/Viewer.css +107 -0
- package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +16 -0
- package/dist/cesium/Widgets/lighter.css +237 -0
- package/dist/cesium/Widgets/lighterShared.css +46 -0
- package/dist/cesium/Widgets/shared.css +103 -0
- package/dist/cesium/Widgets/widgets.css +1342 -0
- package/dist/cesium/Workers/chunk-23ZQ2IVV.js +29 -0
- package/dist/cesium/Workers/chunk-2EQO3Q56.js +26 -0
- package/dist/cesium/Workers/chunk-2MJIIVP4.js +26 -0
- package/dist/cesium/Workers/chunk-2TE5NTVD.js +26 -0
- package/dist/cesium/Workers/chunk-2ZBHLJST.js +26 -0
- package/dist/cesium/Workers/chunk-5TJMAQVL.js +26 -0
- package/dist/cesium/Workers/chunk-6BD4U3VO.js +26 -0
- package/dist/cesium/Workers/chunk-7TVGLKQF.js +26 -0
- package/dist/cesium/Workers/chunk-BTSYJ5XU.js +26 -0
- package/dist/cesium/Workers/chunk-BXMEEOCS.js +63 -0
- package/dist/cesium/Workers/chunk-BYLCY7GP.js +29 -0
- package/dist/cesium/Workers/chunk-CTHM3W6I.js +26 -0
- package/dist/cesium/Workers/chunk-CUUSNIVQ.js +26 -0
- package/dist/cesium/Workers/chunk-E3JOOS3S.js +26 -0
- package/dist/cesium/Workers/chunk-E7KYDCM5.js +26 -0
- package/dist/cesium/Workers/chunk-EDVBB7SS.js +27 -0
- package/dist/cesium/Workers/chunk-EFBN7QNX.js +26 -0
- package/dist/cesium/Workers/chunk-EQ4YRVWL.js +26 -0
- package/dist/cesium/Workers/chunk-F6PRE7D6.js +26 -0
- package/dist/cesium/Workers/chunk-FC4ZZ65J.js +26 -0
- package/dist/cesium/Workers/chunk-FFBVWF2L.js +26 -0
- package/dist/cesium/Workers/chunk-GBAA6GVX.js +26 -0
- package/dist/cesium/Workers/chunk-ICALLYLG.js +26 -0
- package/dist/cesium/Workers/chunk-ILRYTWTP.js +26 -0
- package/dist/cesium/Workers/chunk-IRNLBSEJ.js +26 -0
- package/dist/cesium/Workers/chunk-IX4VMHEV.js +26 -0
- package/dist/cesium/Workers/chunk-L6QHHACZ.js +26 -0
- package/dist/cesium/Workers/chunk-LI2ZSORM.js +26 -0
- package/dist/cesium/Workers/chunk-LSLE2RL4.js +26 -0
- package/dist/cesium/Workers/chunk-M4HLDBCG.js +26 -0
- package/dist/cesium/Workers/chunk-MJHHSGEH.js +26 -0
- package/dist/cesium/Workers/chunk-NMVKML6W.js +26 -0
- package/dist/cesium/Workers/chunk-OCWJRAXS.js +26 -0
- package/dist/cesium/Workers/chunk-OIRKANTH.js +26 -0
- package/dist/cesium/Workers/chunk-OIT7J4IC.js +26 -0
- package/dist/cesium/Workers/chunk-OLZ3FYUM.js +26 -0
- package/dist/cesium/Workers/chunk-Q5BPHJQF.js +26 -0
- package/dist/cesium/Workers/chunk-QFM5DCMQ.js +26 -0
- package/dist/cesium/Workers/chunk-QKUIYMGC.js +28 -0
- package/dist/cesium/Workers/chunk-S44JILQT.js +26 -0
- package/dist/cesium/Workers/chunk-SLT4J352.js +26 -0
- package/dist/cesium/Workers/chunk-SQMIIXB7.js +26 -0
- package/dist/cesium/Workers/chunk-TJ4XLGBQ.js +26 -0
- package/dist/cesium/Workers/chunk-TNSUQXWK.js +27 -0
- package/dist/cesium/Workers/chunk-UBOGZS7F.js +26 -0
- package/dist/cesium/Workers/chunk-V3OSTMM6.js +26 -0
- package/dist/cesium/Workers/chunk-V7QEYVP3.js +26 -0
- package/dist/cesium/Workers/chunk-VUKYSU4H.js +26 -0
- package/dist/cesium/Workers/chunk-W37FE5GR.js +26 -0
- package/dist/cesium/Workers/chunk-WBOV35NL.js +26 -0
- package/dist/cesium/Workers/chunk-WPMZLB3Y.js +26 -0
- package/dist/cesium/Workers/chunk-WWWZVEEH.js +26 -0
- package/dist/cesium/Workers/chunk-XFIQ5DEQ.js +28 -0
- package/dist/cesium/Workers/chunk-XQHLGIO7.js +26 -0
- package/dist/cesium/Workers/chunk-XUSCFAVF.js +26 -0
- package/dist/cesium/Workers/chunk-YP7I5QBZ.js +26 -0
- package/dist/cesium/Workers/chunk-Z3QF2EHT.js +26 -0
- package/dist/cesium/Workers/combineGeometry.js +26 -0
- package/dist/cesium/Workers/createBoxGeometry.js +26 -0
- package/dist/cesium/Workers/createBoxOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createCircleGeometry.js +26 -0
- package/dist/cesium/Workers/createCircleOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +26 -0
- package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createCorridorGeometry.js +26 -0
- package/dist/cesium/Workers/createCorridorOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createCylinderGeometry.js +26 -0
- package/dist/cesium/Workers/createCylinderOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createEllipseGeometry.js +26 -0
- package/dist/cesium/Workers/createEllipseOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createEllipsoidGeometry.js +26 -0
- package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createFrustumGeometry.js +26 -0
- package/dist/cesium/Workers/createFrustumOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createGeometry.js +26 -0
- package/dist/cesium/Workers/createGroundPolylineGeometry.js +26 -0
- package/dist/cesium/Workers/createPlaneGeometry.js +26 -0
- package/dist/cesium/Workers/createPlaneOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createPolygonGeometry.js +26 -0
- package/dist/cesium/Workers/createPolygonOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createPolylineGeometry.js +26 -0
- package/dist/cesium/Workers/createPolylineVolumeGeometry.js +26 -0
- package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createRectangleGeometry.js +26 -0
- package/dist/cesium/Workers/createRectangleOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createSimplePolylineGeometry.js +26 -0
- package/dist/cesium/Workers/createSphereGeometry.js +26 -0
- package/dist/cesium/Workers/createSphereOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/createTaskProcessorWorker.js +26 -0
- package/dist/cesium/Workers/createVectorTileClampedPolylines.js +26 -0
- package/dist/cesium/Workers/createVectorTileGeometries.js +26 -0
- package/dist/cesium/Workers/createVectorTilePoints.js +26 -0
- package/dist/cesium/Workers/createVectorTilePolygons.js +26 -0
- package/dist/cesium/Workers/createVectorTilePolylines.js +26 -0
- package/dist/cesium/Workers/createVerticesFromCesium3DTilesTerrain.js +26 -0
- package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +26 -0
- package/dist/cesium/Workers/createVerticesFromHeightmap.js +26 -0
- package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +26 -0
- package/dist/cesium/Workers/createWallGeometry.js +26 -0
- package/dist/cesium/Workers/createWallOutlineGeometry.js +26 -0
- package/dist/cesium/Workers/decodeDraco.js +26 -0
- package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +26 -0
- package/dist/cesium/Workers/decodeI3S.js +26 -0
- package/dist/cesium/Workers/gaussianSplatSorter.js +26 -0
- package/dist/cesium/Workers/gaussianSplatTextureGenerator.js +26 -0
- package/dist/cesium/Workers/incrementallyBuildTerrainPicker.js +26 -0
- package/dist/cesium/Workers/transcodeKTX2.js +56 -0
- package/dist/cesium/Workers/transferTypedArrayTest.js +26 -0
- package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +26 -0
- package/dist/cesium/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -0
- package/dist/index.html +13 -10
- package/index.html +1 -0
- package/package.json +18 -15
- package/src/App.tsx +7 -9
- package/src/components/viewer/BCFPanel.tsx +46 -4
- package/src/components/viewer/CesiumOverlay.tsx +715 -0
- package/src/components/viewer/CesiumSettingsDialog.tsx +100 -0
- package/src/components/viewer/ChatPanel.tsx +232 -90
- package/src/components/viewer/CommandPalette.tsx +6 -1
- package/src/components/viewer/DesktopEntitlementBanner.tsx +74 -0
- package/src/components/viewer/ExportChangesButton.tsx +6 -1
- package/src/components/viewer/ExportDialog.tsx +22 -6
- package/src/components/viewer/HierarchyPanel.tsx +196 -0
- package/src/components/viewer/IDSPanel.tsx +52 -3
- package/src/components/viewer/KeyboardShortcutsDialog.tsx +1 -1
- package/src/components/viewer/MainToolbar.tsx +355 -28
- package/src/components/viewer/PropertiesPanel.tsx +234 -81
- package/src/components/viewer/ScriptPanel.tsx +34 -8
- package/src/components/viewer/SettingsPage.tsx +581 -0
- package/src/components/viewer/StatusBar.tsx +17 -1
- package/src/components/viewer/ThemeSwitch.tsx +63 -7
- package/src/components/viewer/ViewerLayout.tsx +48 -6
- package/src/components/viewer/Viewport.tsx +61 -8
- package/src/components/viewer/ViewportContainer.tsx +265 -28
- package/src/components/viewer/ViewportOverlays.tsx +132 -27
- package/src/components/viewer/bcf/BCFTopicDetail.tsx +4 -4
- package/src/components/viewer/chat/ModelSelector.tsx +90 -54
- package/src/components/viewer/properties/GeoreferencingPanel.tsx +229 -55
- package/src/components/viewer/properties/LocationMap.tsx +462 -19
- package/src/components/viewer/properties/ModelMetadataPanel.tsx +1 -1
- package/src/components/viewer/selectionHandlers.ts +4 -3
- package/src/components/viewer/tools/SectionCapControls.tsx +237 -0
- package/src/components/viewer/tools/SectionPanel.tsx +39 -18
- package/src/components/viewer/useAnimationLoop.ts +13 -1
- package/src/components/viewer/useGeometryStreaming.ts +127 -40
- package/src/components/viewer/useMouseControls.ts +4 -1
- package/src/components/viewer/useRenderUpdates.ts +1 -1
- package/src/hooks/ids/idsDataAccessor.ts +60 -24
- package/src/hooks/ingest/viewerModelIngest.ts +280 -0
- package/src/hooks/useIDS.ts +1 -1
- package/src/hooks/useIfc.ts +7 -1
- package/src/hooks/useIfcCache.ts +28 -15
- package/src/hooks/useIfcFederation.ts +378 -291
- package/src/hooks/useIfcLoader.ts +1657 -130
- package/src/hooks/useIfcServer.ts +0 -69
- package/src/hooks/useViewControls.ts +13 -5
- package/src/index.css +484 -10
- package/src/lib/desktop/desktopEntitlementEvents.ts +39 -0
- package/src/lib/desktop-entitlement.ts +43 -0
- package/src/lib/desktop-product.ts +124 -0
- package/src/lib/geo/cesium-bridge.ts +318 -0
- package/src/lib/geo/effective-georef.test.ts +73 -0
- package/src/lib/geo/effective-georef.ts +111 -0
- package/src/lib/geo/reproject.ts +249 -37
- package/src/lib/llm/byok-guard.test.ts +77 -0
- package/src/lib/llm/byok-guard.ts +39 -0
- package/src/lib/llm/free-models.test.ts +0 -6
- package/src/lib/llm/models.ts +104 -42
- package/src/lib/llm/stream-client.ts +74 -110
- package/src/lib/llm/stream-direct.test.ts +130 -0
- package/src/lib/llm/stream-direct.ts +316 -0
- package/src/lib/llm/types.ts +14 -2
- package/src/lib/recent-files.ts +2 -1
- package/src/main.tsx +1 -10
- package/src/services/analysis-extensions.ts +125 -0
- package/src/services/api-keys.ts +73 -0
- package/src/services/app-navigation.ts +13 -0
- package/src/services/bsdd.ts +53 -4
- package/src/services/cacheService.ts +1 -1
- package/src/services/desktop-cache.ts +43 -0
- package/src/services/desktop-export.ts +77 -0
- package/src/services/desktop-harness.ts +196 -0
- package/src/services/desktop-logger.ts +20 -0
- package/src/services/desktop-native-metadata.ts +207 -0
- package/src/services/desktop-panel-actions.ts +43 -0
- package/src/services/desktop-preferences.ts +44 -0
- package/src/services/file-dialog.ts +147 -0
- package/src/services/tauri-core-stub.ts +7 -0
- package/src/services/tauri-dialog-stub.ts +7 -0
- package/src/services/tauri-fs-stub.ts +7 -0
- package/src/store/constants.ts +20 -2
- package/src/store/index.ts +52 -7
- package/src/store/slices/cesiumSlice.ts +127 -0
- package/src/store/slices/chatSlice.test.ts +6 -76
- package/src/store/slices/chatSlice.ts +21 -58
- package/src/store/slices/dataSlice.ts +139 -28
- package/src/store/slices/desktopEntitlementSlice.ts +86 -0
- package/src/store/slices/loadingSlice.ts +14 -2
- package/src/store/slices/modelSlice.ts +58 -3
- package/src/store/slices/sectionSlice.test.ts +87 -7
- package/src/store/slices/sectionSlice.ts +151 -5
- package/src/store/slices/uiSlice.ts +28 -5
- package/src/store/types.ts +122 -2
- package/src/store.ts +1 -1
- package/src/utils/desktopModelSnapshot.ts +358 -0
- package/src/utils/ifcConfig.ts +6 -1
- package/src/utils/nativeSpatialDataStore.ts +253 -0
- package/src/utils/serverDataModel.ts +4 -0
- package/src/utils/spatialHierarchy.ts +10 -11
- package/src/utils/viewportUtils.ts +7 -2
- package/src/vite-env.d.ts +0 -4
- package/vite.config.ts +24 -0
- package/dist/assets/arrow-DJf2ErbF.js +0 -20
- package/dist/assets/basketViewActivator-aojwdomq.js +0 -1
- package/dist/assets/desktop-cache-oPzaWXYE.js +0 -1
- package/dist/assets/drawing-2d-gWfpdfYe.js +0 -257
- package/dist/assets/geometry.worker-Nz9_YIqh.js +0 -1
- package/dist/assets/ids-B4jTqB1O.js +0 -1
- package/dist/assets/ifc-lite_bg-eSkBTizQ.wasm +0 -0
- package/dist/assets/index-pbE7itQS.css +0 -1
- package/dist/assets/native-bridge-DSIyEYXG.js +0 -113
- package/dist/assets/wasm-bridge-B0J07fZZ.js +0 -1
- package/src/components/viewer/UpgradePage.tsx +0 -69
- package/src/lib/llm/ClerkChatSync.tsx +0 -74
- package/src/lib/llm/clerk-auth.ts +0 -62
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e;function p(n){K===x.length&&x.push(x.length+1);const t=K;return K=x[t],x[t]=n,t}const xt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>n.dtor(n.a,n.b));function Zt(n){n<132||(x[n]=K,K=n)}function M(n,t){return n=n>>>0,Xt().subarray(n/4,n/4+t)}function $(n,t){return n=n>>>0,qt().subarray(n/8,n/8+t)}function Bt(n,t){return n=n>>>0,Et().subarray(n/4,n/4+t)}let O=null;function o(){return(O===null||O.buffer.detached===!0||O.buffer.detached===void 0&&O.buffer!==e.memory.buffer)&&(O=new DataView(e.memory.buffer)),O}let Y=null;function Xt(){return(Y===null||Y.byteLength===0)&&(Y=new Float32Array(e.memory.buffer)),Y}let Z=null;function qt(){return(Z===null||Z.byteLength===0)&&(Z=new Float64Array(e.memory.buffer)),Z}function f(n,t){return n=n>>>0,Ht(n,t)}let X=null;function Et(){return(X===null||X.byteLength===0)&&(X=new Uint32Array(e.memory.buffer)),X}let q=null;function H(){return(q===null||q.byteLength===0)&&(q=new Uint8Array(e.memory.buffer)),q}function b(n){return x[n]}function V(n,t){try{return n.apply(this,t)}catch(r){e.__wbindgen_export(p(r))}}let x=new Array(128).fill(void 0);x.push(void 0,null,!0,!1);let K=x.length;function A(n){return n==null}function Jt(n,t,r,_){const s={a:n,b:t,cnt:1,dtor:r},i=(...g)=>{s.cnt++;const c=s.a;s.a=0;try{return _(c,s.b,...g)}finally{s.a=c,i._wbg_cb_unref()}};return i._wbg_cb_unref=()=>{--s.cnt===0&&(s.dtor(s.a,s.b),s.a=0,xt.unregister(s))},xt.register(i,s,s),i}function S(n,t){const r=t(n.length*4,4)>>>0;return Et().set(n,r/4),a=n.length,r}function I(n,t){const r=t(n.length*1,1)>>>0;return H().set(n,r/1),a=n.length,r}function u(n,t,r){if(r===void 0){const c=Q.encode(n),d=t(c.length,1)>>>0;return H().subarray(d,d+c.length).set(c),a=c.length,d}let _=n.length,s=t(_,1)>>>0;const i=H();let g=0;for(;g<_;g++){const c=n.charCodeAt(g);if(c>127)break;i[s+g]=c}if(g!==_){g!==0&&(n=n.slice(g)),s=r(s,_,_=g+n.length*3,1)>>>0;const c=H().subarray(s+g,s+_),d=Q.encodeInto(n,c);g+=d.written,s=r(s,_,g,1)>>>0}return a=g,s}function w(n){const t=b(n);return Zt(n),t}let dt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});dt.decode();const $t=2146435072;let lt=0;function Ht(n,t){return lt+=t,lt>=$t&&(dt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),dt.decode(),lt=t),dt.decode(H().subarray(n,n+t))}const Q=new TextEncoder;"encodeInto"in Q||(Q.encodeInto=function(n,t){const r=Q.encode(n);return t.set(r),{read:n.length,written:r.length}});let a=0;function Kt(n,t,r){e.__wasm_bindgen_func_elem_1141(n,t,p(r))}function Qt(n,t,r,_){e.__wasm_bindgen_func_elem_1181(n,t,p(r),p(_))}const It=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_georeferencejs_free(n>>>0,1)),ft=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_gpugeometry_free(n>>>0,1)),yt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_gpuinstancedgeometry_free(n>>>0,1)),ht=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_gpuinstancedgeometrycollection_free(n>>>0,1)),vt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_gpuinstancedgeometryref_free(n>>>0,1)),Ft=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_gpumeshmetadata_free(n>>>0,1)),jt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_ifcapi_free(n>>>0,1)),Rt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_instancedata_free(n>>>0,1)),zt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_instancedgeometry_free(n>>>0,1)),St=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_instancedmeshcollection_free(n>>>0,1)),Ot=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_meshcollection_free(n>>>0,1)),Mt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_meshcollectionwithrtc_free(n>>>0,1)),Pt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_meshdatajs_free(n>>>0,1)),Ct=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_profilecollection_free(n>>>0,1)),kt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_profileentryjs_free(n>>>0,1)),At=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_rtcoffsetjs_free(n>>>0,1)),Lt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_symboliccircle_free(n>>>0,1)),Dt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_symbolicpolyline_free(n>>>0,1)),Tt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_symbolicrepresentationcollection_free(n>>>0,1)),mt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>e.__wbg_zerocopymesh_free(n>>>0,1));class tt{static __wrap(t){t=t>>>0;const r=Object.create(tt.prototype);return r.__wbg_ptr=t,It.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,It.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_georeferencejs_free(t,0)}localToMap(t,r,_){try{const c=e.__wbindgen_add_to_stack_pointer(-16);e.georeferencejs_localToMap(c,this.__wbg_ptr,t,r,_);var s=o().getInt32(c+4*0,!0),i=o().getInt32(c+4*1,!0),g=$(s,i).slice();return e.__wbindgen_export2(s,i*8,8),g}finally{e.__wbindgen_add_to_stack_pointer(16)}}mapToLocal(t,r,_){try{const c=e.__wbindgen_add_to_stack_pointer(-16);e.georeferencejs_mapToLocal(c,this.__wbg_ptr,t,r,_);var s=o().getInt32(c+4*0,!0),i=o().getInt32(c+4*1,!0),g=$(s,i).slice();return e.__wbindgen_export2(s,i*8,8),g}finally{e.__wbindgen_add_to_stack_pointer(16)}}get crsName(){try{const _=e.__wbindgen_add_to_stack_pointer(-16);e.georeferencejs_crsName(_,this.__wbg_ptr);var t=o().getInt32(_+4*0,!0),r=o().getInt32(_+4*1,!0);let s;return t!==0&&(s=f(t,r).slice(),e.__wbindgen_export2(t,r*1,1)),s}finally{e.__wbindgen_add_to_stack_pointer(16)}}get rotation(){return e.georeferencejs_rotation(this.__wbg_ptr)}toMatrix(){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.georeferencejs_toMatrix(s,this.__wbg_ptr);var t=o().getInt32(s+4*0,!0),r=o().getInt32(s+4*1,!0),_=$(t,r).slice();return e.__wbindgen_export2(t,r*8,8),_}finally{e.__wbindgen_add_to_stack_pointer(16)}}get eastings(){return e.__wbg_get_georeferencejs_eastings(this.__wbg_ptr)}set eastings(t){e.__wbg_set_georeferencejs_eastings(this.__wbg_ptr,t)}get northings(){return e.__wbg_get_georeferencejs_northings(this.__wbg_ptr)}set northings(t){e.__wbg_set_georeferencejs_northings(this.__wbg_ptr,t)}get orthogonal_height(){return e.__wbg_get_georeferencejs_orthogonal_height(this.__wbg_ptr)}set orthogonal_height(t){e.__wbg_set_georeferencejs_orthogonal_height(this.__wbg_ptr,t)}get x_axis_abscissa(){return e.__wbg_get_georeferencejs_x_axis_abscissa(this.__wbg_ptr)}set x_axis_abscissa(t){e.__wbg_set_georeferencejs_x_axis_abscissa(this.__wbg_ptr,t)}get x_axis_ordinate(){return e.__wbg_get_georeferencejs_x_axis_ordinate(this.__wbg_ptr)}set x_axis_ordinate(t){e.__wbg_set_georeferencejs_x_axis_ordinate(this.__wbg_ptr,t)}get scale(){return e.__wbg_get_georeferencejs_scale(this.__wbg_ptr)}set scale(t){e.__wbg_set_georeferencejs_scale(this.__wbg_ptr,t)}}Symbol.dispose&&(tt.prototype[Symbol.dispose]=tt.prototype.free);class D{static __wrap(t){t=t>>>0;const r=Object.create(D.prototype);return r.__wbg_ptr=t,ft.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,ft.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_gpugeometry_free(t,0)}get meshCount(){return e.gpugeometry_meshCount(this.__wbg_ptr)>>>0}get indicesLen(){return e.gpugeometry_indicesLen(this.__wbg_ptr)>>>0}get indicesPtr(){return e.gpugeometry_indicesPtr(this.__wbg_ptr)>>>0}get rtcOffsetX(){return e.gpugeometry_rtcOffsetX(this.__wbg_ptr)}get rtcOffsetY(){return e.gpugeometry_rtcOffsetY(this.__wbg_ptr)}get rtcOffsetZ(){return e.gpugeometry_rtcOffsetZ(this.__wbg_ptr)}get hasRtcOffset(){return e.gpugeometry_hasRtcOffset(this.__wbg_ptr)!==0}set_rtc_offset(t,r,_){e.gpugeometry_set_rtc_offset(this.__wbg_ptr,t,r,_)}get vertexDataLen(){return e.gpugeometry_vertexDataLen(this.__wbg_ptr)>>>0}get vertexDataPtr(){return e.gpugeometry_vertexDataPtr(this.__wbg_ptr)>>>0}getIfcTypeName(t){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.gpugeometry_getIfcTypeName(s,this.__wbg_ptr,t);var r=o().getInt32(s+4*0,!0),_=o().getInt32(s+4*1,!0);let i;return r!==0&&(i=f(r,_).slice(),e.__wbindgen_export2(r,_*1,1)),i}finally{e.__wbindgen_add_to_stack_pointer(16)}}getMeshMetadata(t){const r=e.gpugeometry_getMeshMetadata(this.__wbg_ptr,t);return r===0?void 0:_t.__wrap(r)}get totalVertexCount(){return e.gpugeometry_totalVertexCount(this.__wbg_ptr)>>>0}get indicesByteLength(){return e.gpugeometry_indicesByteLength(this.__wbg_ptr)>>>0}get totalTriangleCount(){return e.gpugeometry_totalTriangleCount(this.__wbg_ptr)>>>0}get vertexDataByteLength(){return e.gpugeometry_vertexDataByteLength(this.__wbg_ptr)>>>0}constructor(){const t=e.gpugeometry_new();return this.__wbg_ptr=t>>>0,ft.register(this,this.__wbg_ptr,this),this}get isEmpty(){return e.gpugeometry_isEmpty(this.__wbg_ptr)!==0}}Symbol.dispose&&(D.prototype[Symbol.dispose]=D.prototype.free);class et{static __wrap(t){t=t>>>0;const r=Object.create(et.prototype);return r.__wbg_ptr=t,yt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,yt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_gpuinstancedgeometry_free(t,0)}get geometryId(){const t=e.gpuinstancedgeometry_geometryId(this.__wbg_ptr);return BigInt.asUintN(64,t)}get indicesLen(){return e.gpuinstancedgeometry_indicesLen(this.__wbg_ptr)>>>0}get indicesPtr(){return e.gpuinstancedgeometry_indicesPtr(this.__wbg_ptr)>>>0}get vertexCount(){return e.gpuinstancedgeometry_vertexCount(this.__wbg_ptr)>>>0}get instanceCount(){return e.gpuinstancedgeometry_instanceCount(this.__wbg_ptr)>>>0}get triangleCount(){return e.gpuinstancedgeometry_triangleCount(this.__wbg_ptr)>>>0}get vertexDataLen(){return e.gpuinstancedgeometry_vertexDataLen(this.__wbg_ptr)>>>0}get vertexDataPtr(){return e.gpuinstancedgeometry_vertexDataPtr(this.__wbg_ptr)>>>0}get instanceDataLen(){return e.gpuinstancedgeometry_instanceDataLen(this.__wbg_ptr)>>>0}get instanceDataPtr(){return e.gpuinstancedgeometry_instanceDataPtr(this.__wbg_ptr)>>>0}get indicesByteLength(){return e.gpuinstancedgeometry_indicesByteLength(this.__wbg_ptr)>>>0}get vertexDataByteLength(){return e.gpuinstancedgeometry_vertexDataByteLength(this.__wbg_ptr)>>>0}get instanceExpressIdsPtr(){return e.gpuinstancedgeometry_instanceExpressIdsPtr(this.__wbg_ptr)>>>0}get instanceDataByteLength(){return e.gpuinstancedgeometry_instanceDataByteLength(this.__wbg_ptr)>>>0}constructor(t){const r=e.gpuinstancedgeometry_new(t);return this.__wbg_ptr=r>>>0,yt.register(this,this.__wbg_ptr,this),this}}Symbol.dispose&&(et.prototype[Symbol.dispose]=et.prototype.free);class rt{static __wrap(t){t=t>>>0;const r=Object.create(rt.prototype);return r.__wbg_ptr=t,ht.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,ht.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_gpuinstancedgeometrycollection_free(t,0)}get(t){const r=e.gpuinstancedgeometrycollection_get(this.__wbg_ptr,t);return r===0?void 0:et.__wrap(r)}constructor(){const t=e.gpuinstancedgeometrycollection_new();return this.__wbg_ptr=t>>>0,ht.register(this,this.__wbg_ptr,this),this}get length(){return e.gpuinstancedgeometrycollection_length(this.__wbg_ptr)>>>0}getRef(t){const r=e.gpuinstancedgeometrycollection_get(this.__wbg_ptr,t);return r===0?void 0:nt.__wrap(r)}}Symbol.dispose&&(rt.prototype[Symbol.dispose]=rt.prototype.free);class nt{static __wrap(t){t=t>>>0;const r=Object.create(nt.prototype);return r.__wbg_ptr=t,vt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,vt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_gpuinstancedgeometryref_free(t,0)}get geometryId(){const t=e.gpuinstancedgeometry_geometryId(this.__wbg_ptr);return BigInt.asUintN(64,t)}get indicesLen(){return e.gpuinstancedgeometry_indicesLen(this.__wbg_ptr)>>>0}get indicesPtr(){return e.gpuinstancedgeometry_indicesPtr(this.__wbg_ptr)>>>0}get instanceCount(){return e.gpuinstancedgeometry_instanceCount(this.__wbg_ptr)>>>0}get vertexDataLen(){return e.gpuinstancedgeometry_vertexDataLen(this.__wbg_ptr)>>>0}get vertexDataPtr(){return e.gpuinstancedgeometry_vertexDataPtr(this.__wbg_ptr)>>>0}get instanceDataLen(){return e.gpuinstancedgeometry_instanceDataLen(this.__wbg_ptr)>>>0}get instanceDataPtr(){return e.gpuinstancedgeometry_instanceDataPtr(this.__wbg_ptr)>>>0}get indicesByteLength(){return e.gpuinstancedgeometry_indicesByteLength(this.__wbg_ptr)>>>0}get vertexDataByteLength(){return e.gpuinstancedgeometry_vertexDataByteLength(this.__wbg_ptr)>>>0}get instanceExpressIdsPtr(){return e.gpuinstancedgeometry_instanceExpressIdsPtr(this.__wbg_ptr)>>>0}get instanceDataByteLength(){return e.gpuinstancedgeometry_instanceDataByteLength(this.__wbg_ptr)>>>0}}Symbol.dispose&&(nt.prototype[Symbol.dispose]=nt.prototype.free);class _t{static __wrap(t){t=t>>>0;const r=Object.create(_t.prototype);return r.__wbg_ptr=t,Ft.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Ft.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_gpumeshmetadata_free(t,0)}get expressId(){return e.gpumeshmetadata_expressId(this.__wbg_ptr)>>>0}get indexCount(){return e.gpumeshmetadata_indexCount(this.__wbg_ptr)>>>0}get ifcTypeIdx(){return e.gpumeshmetadata_ifcTypeIdx(this.__wbg_ptr)}get indexOffset(){return e.gpumeshmetadata_indexOffset(this.__wbg_ptr)>>>0}get vertexCount(){return e.gpumeshmetadata_vertexCount(this.__wbg_ptr)>>>0}get vertexOffset(){return e.gpumeshmetadata_vertexOffset(this.__wbg_ptr)>>>0}get color(){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.gpumeshmetadata_color(s,this.__wbg_ptr);var t=o().getInt32(s+4*0,!0),r=o().getInt32(s+4*1,!0),_=M(t,r).slice();return e.__wbindgen_export2(t,r*4,4),_}finally{e.__wbindgen_add_to_stack_pointer(16)}}}Symbol.dispose&&(_t.prototype[Symbol.dispose]=_t.prototype.free);class L{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,jt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_ifcapi_free(t,0)}parseMeshes(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parseMeshes(this.__wbg_ptr,r,_);return v.__wrap(s)}parseMeshesAsync(t,r){const _=u(t,e.__wbindgen_export3,e.__wbindgen_export4),s=a,i=e.ifcapi_parseMeshesAsync(this.__wbg_ptr,_,s,p(r));return w(i)}buildPrePassFast(t){const r=I(t,e.__wbindgen_export3),_=a,s=e.ifcapi_buildPrePassFast(this.__wbg_ptr,r,_);return w(s)}buildPrePassOnce(t){const r=I(t,e.__wbindgen_export3),_=a,s=e.ifcapi_buildPrePassOnce(this.__wbg_ptr,r,_);return w(s)}parseMeshesSubset(t,r,_,s){const i=u(t,e.__wbindgen_export3,e.__wbindgen_export4),g=a,c=e.ifcapi_parseMeshesSubset(this.__wbg_ptr,i,g,r,_,s);return v.__wrap(c)}parseToGpuGeometry(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parseToGpuGeometry(this.__wbg_ptr,r,_);return D.__wrap(s)}parseMeshesInstanced(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parseMeshesInstanced(this.__wbg_ptr,r,_);return B.__wrap(s)}processGeometryBatch(t,r,_,s,i,g,c,d,E,G,W,U){const C=I(t,e.__wbindgen_export3),F=a,k=S(r,e.__wbindgen_export3),N=a,j=S(d,e.__wbindgen_export3),y=a,m=S(E,e.__wbindgen_export3),l=a,R=S(G,e.__wbindgen_export3),z=a,ut=S(W,e.__wbindgen_export3),Ut=a,Nt=I(U,e.__wbindgen_export3),Vt=a,Yt=e.ifcapi_processGeometryBatch(this.__wbg_ptr,C,F,k,N,_,s,i,g,c,j,y,m,l,R,z,ut,Ut,Nt,Vt);return v.__wrap(Yt)}parseToGpuGeometryAsync(t,r){const _=u(t,e.__wbindgen_export3,e.__wbindgen_export4),s=a,i=e.ifcapi_parseToGpuGeometryAsync(this.__wbg_ptr,_,s,p(r));return w(i)}parseMeshesInstancedAsync(t,r){const _=u(t,e.__wbindgen_export3,e.__wbindgen_export4),s=a,i=e.ifcapi_parseMeshesInstancedAsync(this.__wbg_ptr,_,s,p(r));return w(i)}parseToGpuInstancedGeometry(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parseToGpuInstancedGeometry(this.__wbg_ptr,r,_);return rt.__wrap(s)}processInstancedGeometryBatch(t,r,_,s,i,g,c,d,E){const G=I(t,e.__wbindgen_export3),W=a,U=S(r,e.__wbindgen_export3),C=a,F=S(d,e.__wbindgen_export3),k=a,N=I(E,e.__wbindgen_export3),j=a,y=e.ifcapi_processInstancedGeometryBatch(this.__wbg_ptr,G,W,U,C,_,s,i,g,c,F,k,N,j);return B.__wrap(y)}parseZeroCopy(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parseZeroCopy(this.__wbg_ptr,r,_);return wt.__wrap(s)}extractProfiles(t,r){const _=u(t,e.__wbindgen_export3,e.__wbindgen_export4),s=a,i=e.ifcapi_extractProfiles(this.__wbg_ptr,_,s,r);return ot.__wrap(i)}debugProcessEntity953(t){let r,_;try{const g=e.__wbindgen_add_to_stack_pointer(-16),c=u(t,e.__wbindgen_export3,e.__wbindgen_export4),d=a;e.ifcapi_debugProcessEntity953(g,this.__wbg_ptr,c,d);var s=o().getInt32(g+4*0,!0),i=o().getInt32(g+4*1,!0);return r=s,_=i,f(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(r,_,1)}}debugProcessFirstWall(t){let r,_;try{const g=e.__wbindgen_add_to_stack_pointer(-16),c=u(t,e.__wbindgen_export3,e.__wbindgen_export4),d=a;e.ifcapi_debugProcessFirstWall(g,this.__wbg_ptr,c,d);var s=o().getInt32(g+4*0,!0),i=o().getInt32(g+4*1,!0);return r=s,_=i,f(s,i)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(r,_,1)}}getMemory(){const t=e.ifcapi_getMemory(this.__wbg_ptr);return w(t)}clearPrePassCache(){e.ifcapi_clearPrePassCache(this.__wbg_ptr)}constructor(){const t=e.ifcapi_new();return this.__wbg_ptr=t>>>0,jt.register(this,this.__wbg_ptr,this),this}get version(){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.ifcapi_version(i,this.__wbg_ptr);var _=o().getInt32(i+4*0,!0),s=o().getInt32(i+4*1,!0);return t=_,r=s,f(_,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(t,r,1)}}get is_ready(){return e.ifcapi_is_ready(this.__wbg_ptr)!==0}getGeoReference(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_getGeoReference(this.__wbg_ptr,r,_);return s===0?void 0:tt.__wrap(s)}parseMeshesWithRtc(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parseMeshesWithRtc(this.__wbg_ptr,r,_);return it.__wrap(s)}parseStreaming(t,r){const _=u(t,e.__wbindgen_export3,e.__wbindgen_export4),s=a,i=e.ifcapi_parseStreaming(this.__wbg_ptr,_,s,p(r));return w(i)}scanEntitiesFast(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_scanEntitiesFast(this.__wbg_ptr,r,_);return w(s)}scanEntitiesFastBytes(t){const r=I(t,e.__wbindgen_export3),_=a,s=e.ifcapi_scanEntitiesFastBytes(this.__wbg_ptr,r,_);return w(s)}scanGeometryEntitiesFast(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_scanGeometryEntitiesFast(this.__wbg_ptr,r,_);return w(s)}scanRelevantEntitiesFastBytes(t){const r=I(t,e.__wbindgen_export3),_=a,s=e.ifcapi_scanRelevantEntitiesFastBytes(this.__wbg_ptr,r,_);return w(s)}parse(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parse(this.__wbg_ptr,r,_);return w(s)}parseSymbolicRepresentations(t){const r=u(t,e.__wbindgen_export3,e.__wbindgen_export4),_=a,s=e.ifcapi_parseSymbolicRepresentations(this.__wbg_ptr,r,_);return bt.__wrap(s)}}Symbol.dispose&&(L.prototype[Symbol.dispose]=L.prototype.free);class st{static __wrap(t){t=t>>>0;const r=Object.create(st.prototype);return r.__wbg_ptr=t,Rt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Rt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_instancedata_free(t,0)}get expressId(){return e.instancedata_expressId(this.__wbg_ptr)>>>0}get color(){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.instancedata_color(s,this.__wbg_ptr);var t=o().getInt32(s+4*0,!0),r=o().getInt32(s+4*1,!0),_=M(t,r).slice();return e.__wbindgen_export2(t,r*4,4),_}finally{e.__wbindgen_add_to_stack_pointer(16)}}get transform(){const t=e.instancedata_transform(this.__wbg_ptr);return w(t)}}Symbol.dispose&&(st.prototype[Symbol.dispose]=st.prototype.free);class T{static __wrap(t){t=t>>>0;const r=Object.create(T.prototype);return r.__wbg_ptr=t,zt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,zt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_instancedgeometry_free(t,0)}get geometryId(){const t=e.gpuinstancedgeometry_geometryId(this.__wbg_ptr);return BigInt.asUintN(64,t)}get_instance(t){const r=e.instancedgeometry_get_instance(this.__wbg_ptr,t);return r===0?void 0:st.__wrap(r)}get instance_count(){return e.instancedgeometry_instance_count(this.__wbg_ptr)>>>0}get indices(){const t=e.instancedgeometry_indices(this.__wbg_ptr);return w(t)}get normals(){const t=e.instancedgeometry_normals(this.__wbg_ptr);return w(t)}get positions(){const t=e.instancedgeometry_positions(this.__wbg_ptr);return w(t)}}Symbol.dispose&&(T.prototype[Symbol.dispose]=T.prototype.free);class B{static __wrap(t){t=t>>>0;const r=Object.create(B.prototype);return r.__wbg_ptr=t,St.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,St.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_instancedmeshcollection_free(t,0)}get totalInstances(){return e.instancedmeshcollection_totalInstances(this.__wbg_ptr)>>>0}get totalGeometries(){return e.gpuinstancedgeometrycollection_length(this.__wbg_ptr)>>>0}get(t){const r=e.instancedmeshcollection_get(this.__wbg_ptr,t);return r===0?void 0:T.__wrap(r)}get length(){return e.gpuinstancedgeometrycollection_length(this.__wbg_ptr)>>>0}}Symbol.dispose&&(B.prototype[Symbol.dispose]=B.prototype.free);class v{static __wrap(t){t=t>>>0;const r=Object.create(v.prototype);return r.__wbg_ptr=t,Ot.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Ot.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_meshcollection_free(t,0)}get rtcOffsetX(){return e.gpugeometry_rtcOffsetZ(this.__wbg_ptr)}get rtcOffsetY(){return e.meshcollection_rtcOffsetY(this.__wbg_ptr)}get rtcOffsetZ(){return e.meshcollection_rtcOffsetZ(this.__wbg_ptr)}hasRtcOffset(){return e.meshcollection_hasRtcOffset(this.__wbg_ptr)!==0}localToWorld(t,r,_){try{const c=e.__wbindgen_add_to_stack_pointer(-16);e.meshcollection_localToWorld(c,this.__wbg_ptr,t,r,_);var s=o().getInt32(c+4*0,!0),i=o().getInt32(c+4*1,!0),g=$(s,i).slice();return e.__wbindgen_export2(s,i*8,8),g}finally{e.__wbindgen_add_to_stack_pointer(16)}}get totalVertices(){return e.meshcollection_totalVertices(this.__wbg_ptr)>>>0}get totalTriangles(){return e.meshcollection_totalTriangles(this.__wbg_ptr)>>>0}get buildingRotation(){try{const _=e.__wbindgen_add_to_stack_pointer(-16);e.meshcollection_buildingRotation(_,this.__wbg_ptr);var t=o().getInt32(_+4*0,!0),r=o().getFloat64(_+8*1,!0);return t===0?void 0:r}finally{e.__wbindgen_add_to_stack_pointer(16)}}get(t){const r=e.meshcollection_get(this.__wbg_ptr,t);return r===0?void 0:P.__wrap(r)}get length(){return e.meshcollection_length(this.__wbg_ptr)>>>0}}Symbol.dispose&&(v.prototype[Symbol.dispose]=v.prototype.free);class it{static __wrap(t){t=t>>>0;const r=Object.create(it.prototype);return r.__wbg_ptr=t,Mt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Mt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_meshcollectionwithrtc_free(t,0)}get rtcOffset(){const t=e.meshcollectionwithrtc_rtcOffset(this.__wbg_ptr);return gt.__wrap(t)}get(t){const r=e.meshcollectionwithrtc_get(this.__wbg_ptr,t);return r===0?void 0:P.__wrap(r)}get length(){return e.meshcollection_length(this.__wbg_ptr)>>>0}get meshes(){const t=e.meshcollectionwithrtc_meshes(this.__wbg_ptr);return v.__wrap(t)}}Symbol.dispose&&(it.prototype[Symbol.dispose]=it.prototype.free);class P{static __wrap(t){t=t>>>0;const r=Object.create(P.prototype);return r.__wbg_ptr=t,Pt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Pt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_meshdatajs_free(t,0)}get expressId(){return e.meshdatajs_expressId(this.__wbg_ptr)>>>0}get vertexCount(){return e.meshdatajs_vertexCount(this.__wbg_ptr)>>>0}get triangleCount(){return e.meshdatajs_triangleCount(this.__wbg_ptr)>>>0}get color(){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.meshdatajs_color(s,this.__wbg_ptr);var t=o().getInt32(s+4*0,!0),r=o().getInt32(s+4*1,!0),_=M(t,r).slice();return e.__wbindgen_export2(t,r*4,4),_}finally{e.__wbindgen_add_to_stack_pointer(16)}}get indices(){const t=e.meshdatajs_indices(this.__wbg_ptr);return w(t)}get normals(){const t=e.meshdatajs_normals(this.__wbg_ptr);return w(t)}get ifcType(){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.meshdatajs_ifcType(i,this.__wbg_ptr);var _=o().getInt32(i+4*0,!0),s=o().getInt32(i+4*1,!0);return t=_,r=s,f(_,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(t,r,1)}}get positions(){const t=e.meshdatajs_positions(this.__wbg_ptr);return w(t)}}Symbol.dispose&&(P.prototype[Symbol.dispose]=P.prototype.free);class ot{static __wrap(t){t=t>>>0;const r=Object.create(ot.prototype);return r.__wbg_ptr=t,Ct.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Ct.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_profilecollection_free(t,0)}get(t){const r=e.profilecollection_get(this.__wbg_ptr,t);return r===0?void 0:ct.__wrap(r)}get length(){return e.profilecollection_length(this.__wbg_ptr)>>>0}}Symbol.dispose&&(ot.prototype[Symbol.dispose]=ot.prototype.free);class ct{static __wrap(t){t=t>>>0;const r=Object.create(ct.prototype);return r.__wbg_ptr=t,kt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,kt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_profileentryjs_free(t,0)}get expressId(){return e.meshdatajs_expressId(this.__wbg_ptr)>>>0}get holeCounts(){const t=e.profileentryjs_holeCounts(this.__wbg_ptr);return w(t)}get holePoints(){const t=e.profileentryjs_holePoints(this.__wbg_ptr);return w(t)}get modelIndex(){return e.profileentryjs_modelIndex(this.__wbg_ptr)>>>0}get outerPoints(){const t=e.profileentryjs_outerPoints(this.__wbg_ptr);return w(t)}get extrusionDir(){const t=e.profileentryjs_extrusionDir(this.__wbg_ptr);return w(t)}get extrusionDepth(){return e.profileentryjs_extrusionDepth(this.__wbg_ptr)}get ifcType(){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.profileentryjs_ifcType(i,this.__wbg_ptr);var _=o().getInt32(i+4*0,!0),s=o().getInt32(i+4*1,!0);return t=_,r=s,f(_,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(t,r,1)}}get transform(){const t=e.profileentryjs_transform(this.__wbg_ptr);return w(t)}}Symbol.dispose&&(ct.prototype[Symbol.dispose]=ct.prototype.free);class gt{static __wrap(t){t=t>>>0;const r=Object.create(gt.prototype);return r.__wbg_ptr=t,At.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,At.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_rtcoffsetjs_free(t,0)}isSignificant(){return e.rtcoffsetjs_isSignificant(this.__wbg_ptr)!==0}toWorld(t,r,_){try{const c=e.__wbindgen_add_to_stack_pointer(-16);e.rtcoffsetjs_toWorld(c,this.__wbg_ptr,t,r,_);var s=o().getInt32(c+4*0,!0),i=o().getInt32(c+4*1,!0),g=$(s,i).slice();return e.__wbindgen_export2(s,i*8,8),g}finally{e.__wbindgen_add_to_stack_pointer(16)}}get x(){return e.__wbg_get_georeferencejs_eastings(this.__wbg_ptr)}set x(t){e.__wbg_set_georeferencejs_eastings(this.__wbg_ptr,t)}get y(){return e.__wbg_get_georeferencejs_northings(this.__wbg_ptr)}set y(t){e.__wbg_set_georeferencejs_northings(this.__wbg_ptr,t)}get z(){return e.__wbg_get_georeferencejs_orthogonal_height(this.__wbg_ptr)}set z(t){e.__wbg_set_georeferencejs_orthogonal_height(this.__wbg_ptr,t)}}Symbol.dispose&&(gt.prototype[Symbol.dispose]=gt.prototype.free);class at{static __wrap(t){t=t>>>0;const r=Object.create(at.prototype);return r.__wbg_ptr=t,Lt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Lt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_symboliccircle_free(t,0)}get expressId(){return e.gpumeshmetadata_vertexCount(this.__wbg_ptr)>>>0}get startAngle(){return e.symboliccircle_startAngle(this.__wbg_ptr)}get isFullCircle(){return e.symboliccircle_isFullCircle(this.__wbg_ptr)!==0}get repIdentifier(){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.symboliccircle_repIdentifier(i,this.__wbg_ptr);var _=o().getInt32(i+4*0,!0),s=o().getInt32(i+4*1,!0);return t=_,r=s,f(_,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(t,r,1)}}get radius(){return e.symboliccircle_radius(this.__wbg_ptr)}get centerX(){return e.symboliccircle_centerX(this.__wbg_ptr)}get centerY(){return e.symboliccircle_centerY(this.__wbg_ptr)}get ifcType(){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.symboliccircle_ifcType(i,this.__wbg_ptr);var _=o().getInt32(i+4*0,!0),s=o().getInt32(i+4*1,!0);return t=_,r=s,f(_,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(t,r,1)}}get endAngle(){return e.symboliccircle_endAngle(this.__wbg_ptr)}}Symbol.dispose&&(at.prototype[Symbol.dispose]=at.prototype.free);class pt{static __wrap(t){t=t>>>0;const r=Object.create(pt.prototype);return r.__wbg_ptr=t,Dt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Dt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_symbolicpolyline_free(t,0)}get expressId(){return e.symbolicpolyline_expressId(this.__wbg_ptr)>>>0}get pointCount(){return e.symbolicpolyline_pointCount(this.__wbg_ptr)>>>0}get repIdentifier(){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.symbolicpolyline_repIdentifier(i,this.__wbg_ptr);var _=o().getInt32(i+4*0,!0),s=o().getInt32(i+4*1,!0);return t=_,r=s,f(_,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(t,r,1)}}get points(){const t=e.symbolicpolyline_points(this.__wbg_ptr);return w(t)}get ifcType(){let t,r;try{const i=e.__wbindgen_add_to_stack_pointer(-16);e.symbolicpolyline_ifcType(i,this.__wbg_ptr);var _=o().getInt32(i+4*0,!0),s=o().getInt32(i+4*1,!0);return t=_,r=s,f(_,s)}finally{e.__wbindgen_add_to_stack_pointer(16),e.__wbindgen_export2(t,r,1)}}get isClosed(){return e.symbolicpolyline_isClosed(this.__wbg_ptr)!==0}}Symbol.dispose&&(pt.prototype[Symbol.dispose]=pt.prototype.free);class bt{static __wrap(t){t=t>>>0;const r=Object.create(bt.prototype);return r.__wbg_ptr=t,Tt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,Tt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_symbolicrepresentationcollection_free(t,0)}getCircle(t){const r=e.symbolicrepresentationcollection_getCircle(this.__wbg_ptr,t);return r===0?void 0:at.__wrap(r)}get totalCount(){return e.symbolicrepresentationcollection_totalCount(this.__wbg_ptr)>>>0}get circleCount(){return e.symbolicrepresentationcollection_circleCount(this.__wbg_ptr)>>>0}getPolyline(t){const r=e.symbolicrepresentationcollection_getPolyline(this.__wbg_ptr,t);return r===0?void 0:pt.__wrap(r)}get polylineCount(){return e.symbolicrepresentationcollection_polylineCount(this.__wbg_ptr)>>>0}getExpressIds(){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.symbolicrepresentationcollection_getExpressIds(s,this.__wbg_ptr);var t=o().getInt32(s+4*0,!0),r=o().getInt32(s+4*1,!0),_=Bt(t,r).slice();return e.__wbindgen_export2(t,r*4,4),_}finally{e.__wbindgen_add_to_stack_pointer(16)}}get isEmpty(){return e.symbolicrepresentationcollection_isEmpty(this.__wbg_ptr)!==0}}Symbol.dispose&&(bt.prototype[Symbol.dispose]=bt.prototype.free);class wt{static __wrap(t){t=t>>>0;const r=Object.create(wt.prototype);return r.__wbg_ptr=t,mt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,mt.unregister(this),t}free(){const t=this.__destroy_into_raw();e.__wbg_zerocopymesh_free(t,0)}bounds_max(){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.zerocopymesh_bounds_max(s,this.__wbg_ptr);var t=o().getInt32(s+4*0,!0),r=o().getInt32(s+4*1,!0),_=M(t,r).slice();return e.__wbindgen_export2(t,r*4,4),_}finally{e.__wbindgen_add_to_stack_pointer(16)}}bounds_min(){try{const s=e.__wbindgen_add_to_stack_pointer(-16);e.zerocopymesh_bounds_min(s,this.__wbg_ptr);var t=o().getInt32(s+4*0,!0),r=o().getInt32(s+4*1,!0),_=M(t,r).slice();return e.__wbindgen_export2(t,r*4,4),_}finally{e.__wbindgen_add_to_stack_pointer(16)}}get indices_len(){return e.gpuinstancedgeometry_indicesLen(this.__wbg_ptr)>>>0}get indices_ptr(){return e.gpuinstancedgeometry_indicesPtr(this.__wbg_ptr)>>>0}get normals_len(){return e.zerocopymesh_normals_len(this.__wbg_ptr)>>>0}get normals_ptr(){return e.gpuinstancedgeometry_vertexDataPtr(this.__wbg_ptr)>>>0}get vertex_count(){return e.zerocopymesh_vertex_count(this.__wbg_ptr)>>>0}get positions_len(){return e.zerocopymesh_positions_len(this.__wbg_ptr)>>>0}get positions_ptr(){return e.zerocopymesh_positions_ptr(this.__wbg_ptr)>>>0}get triangle_count(){return e.gpuinstancedgeometry_triangleCount(this.__wbg_ptr)>>>0}constructor(){const t=e.zerocopymesh_new();return this.__wbg_ptr=t>>>0,mt.register(this,this.__wbg_ptr,this),this}get is_empty(){return e.zerocopymesh_is_empty(this.__wbg_ptr)!==0}}Symbol.dispose&&(wt.prototype[Symbol.dispose]=wt.prototype.free);const te=new Set(["basic","cors","default"]);async function ee(n,t){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,t)}catch(_){if(n.ok&&te.has(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",_);else throw _}const r=await n.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{const r=await WebAssembly.instantiate(n,t);return r instanceof WebAssembly.Instance?{instance:r,module:n}:r}}function Gt(){const n={};return n.wbg={},n.wbg.__wbg_Error_52673b7de5a0ca89=function(t,r){const _=Error(f(t,r));return p(_)},n.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(t){return typeof b(t)=="function"},n.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(t){return b(t)===void 0},n.wbg.__wbg___wbindgen_memory_a342e963fbcabd68=function(){const t=e.memory;return p(t)},n.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(t,r){const _=b(r),s=typeof _=="number"?_:void 0;o().setFloat64(t+8*1,A(s)?0:s,!0),o().setInt32(t+4*0,!A(s),!0)},n.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(t,r){throw new Error(f(t,r))},n.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7=function(t){b(t)._wbg_cb_unref()},n.wbg.__wbg_call_3020136f7a2d6e44=function(){return V(function(t,r,_){const s=b(t).call(b(r),b(_));return p(s)},arguments)},n.wbg.__wbg_call_abb4ff46ce38be40=function(){return V(function(t,r){const _=b(t).call(b(r));return p(_)},arguments)},n.wbg.__wbg_call_c8baa5c5e72d274e=function(){return V(function(t,r,_,s){const i=b(t).call(b(r),b(_),b(s));return p(i)},arguments)},n.wbg.__wbg_debug_9d0c87ddda3dc485=function(t){console.debug(b(t))},n.wbg.__wbg_error_7534b8e9a36f1ab4=function(t,r){let _,s;try{_=t,s=r,console.error(f(t,r))}finally{e.__wbindgen_export2(_,s,1)}},n.wbg.__wbg_get_af9dab7e9603ea93=function(){return V(function(t,r){const _=Reflect.get(b(t),b(r));return p(_)},arguments)},n.wbg.__wbg_gpugeometry_new=function(t){const r=D.__wrap(t);return p(r)},n.wbg.__wbg_instancedgeometry_new=function(t){const r=T.__wrap(t);return p(r)},n.wbg.__wbg_length_86ce4877baf913bb=function(t){return b(t).length},n.wbg.__wbg_length_d45040a40c570362=function(t){return b(t).length},n.wbg.__wbg_meshdatajs_new=function(t){const r=P.__wrap(t);return p(r)},n.wbg.__wbg_new_1ba21ce319a06297=function(){const t=new Object;return p(t)},n.wbg.__wbg_new_25f239778d6112b9=function(){const t=new Array;return p(t)},n.wbg.__wbg_new_8a6f238a6ece86ea=function(){const t=new Error;return p(t)},n.wbg.__wbg_new_ff12d2b041fb48f1=function(t,r){try{var _={a:t,b:r},s=(g,c)=>{const d=_.a;_.a=0;try{return Qt(d,_.b,g,c)}finally{_.a=d}};const i=new Promise(s);return p(i)}finally{_.a=_.b=0}},n.wbg.__wbg_new_from_slice_41e2764a343e3cb1=function(t,r){const _=new Float32Array(M(t,r));return p(_)},n.wbg.__wbg_new_from_slice_db0691b69e9d3891=function(t,r){const _=new Uint32Array(Bt(t,r));return p(_)},n.wbg.__wbg_new_no_args_cb138f77cf6151ee=function(t,r){const _=new Function(f(t,r));return p(_)},n.wbg.__wbg_new_with_length_202b3db94ba5fc86=function(t){const r=new Uint32Array(t>>>0);return p(r)},n.wbg.__wbg_new_with_length_806b9e5b8290af7c=function(t){const r=new Float64Array(t>>>0);return p(r)},n.wbg.__wbg_new_with_length_aa5eaf41d35235e5=function(t){const r=new Uint8Array(t>>>0);return p(r)},n.wbg.__wbg_prototypesetcall_96cc7097487b926d=function(t,r,_){Float32Array.prototype.set.call(M(t,r),b(_))},n.wbg.__wbg_push_7d9be8f38fc13975=function(t,r){return b(t).push(b(r))},n.wbg.__wbg_queueMicrotask_9b549dfce8865860=function(t){const r=b(t).queueMicrotask;return p(r)},n.wbg.__wbg_queueMicrotask_fca69f5bfad613a5=function(t){queueMicrotask(b(t))},n.wbg.__wbg_resolve_fd5bfbaa4ce36e1e=function(t){const r=Promise.resolve(b(t));return p(r)},n.wbg.__wbg_set_3f1d0b984ed272ed=function(t,r,_){b(t)[w(r)]=w(_)},n.wbg.__wbg_set_781438a03c0c3c81=function(){return V(function(t,r,_){return Reflect.set(b(t),b(r),b(_))},arguments)},n.wbg.__wbg_set_7df433eea03a5c14=function(t,r,_){b(t)[r>>>0]=w(_)},n.wbg.__wbg_set_index_021489b2916af13e=function(t,r,_){b(t)[r>>>0]=_},n.wbg.__wbg_set_index_04c4b93e64d08a52=function(t,r,_){b(t)[r>>>0]=_},n.wbg.__wbg_set_index_42abe35f117e614e=function(t,r,_){b(t)[r>>>0]=_>>>0},n.wbg.__wbg_stack_0ed75d68575b0f3c=function(t,r){const _=b(r).stack,s=u(_,e.__wbindgen_export3,e.__wbindgen_export4),i=a;o().setInt32(t+4*1,i,!0),o().setInt32(t+4*0,s,!0)},n.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335=function(){const t=typeof global>"u"?null:global;return A(t)?0:p(t)},n.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1=function(){const t=typeof globalThis>"u"?null:globalThis;return A(t)?0:p(t)},n.wbg.__wbg_static_accessor_SELF_08f5a74c69739274=function(){const t=typeof self>"u"?null:self;return A(t)?0:p(t)},n.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024=function(){const t=typeof window>"u"?null:window;return A(t)?0:p(t)},n.wbg.__wbg_then_4f95312d68691235=function(t,r){const _=b(t).then(b(r));return p(_)},n.wbg.__wbg_warn_6e567d0d926ff881=function(t){console.warn(b(t))},n.wbg.__wbindgen_cast_2241b6af4c4b2941=function(t,r){const _=f(t,r);return p(_)},n.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(t){const r=BigInt.asUintN(64,t);return p(r)},n.wbg.__wbindgen_cast_782a03ac5d769879=function(t,r){const _=Jt(t,r,e.__wasm_bindgen_func_elem_1140,Kt);return p(_)},n.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(t){return p(t)},n.wbg.__wbindgen_object_clone_ref=function(t){const r=b(t);return p(r)},n.wbg.__wbindgen_object_drop_ref=function(t){w(t)},n}function Wt(n,t){return e=n.exports,J.__wbindgen_wasm_module=t,O=null,Y=null,Z=null,X=null,q=null,e.__wbindgen_start(),e}function re(n){if(e!==void 0)return e;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const t=Gt();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));const r=new WebAssembly.Instance(n,t);return Wt(r,n)}async function J(n){if(e!==void 0)return e;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof n>"u"&&(n=new URL("/assets/ifc-lite_bg-BINvzoCP.wasm",import.meta.url));const t=Gt();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));const{instance:r,module:_}=await ee(await n,t);return Wt(r,_)}let h=null;self.onmessage=async n=>{try{if(n.data.type==="prepass"||n.data.type==="prepass-fast"){h||(await J(),h=new L);const t=new Uint8Array(n.data.sharedBuffer.byteLength);t.set(new Uint8Array(n.data.sharedBuffer));const r=n.data.type==="prepass-fast"?h.buildPrePassFast(t):h.buildPrePassOnce(t);self.postMessage({type:"prepass-result",result:r});return}if(n.data.type==="init"){n.data.wasmModule?re({module_or_path:n.data.wasmModule}):await J(),h=new L,self.postMessage({type:"ready"});return}if(n.data.type==="process"){h||(await J(),h=new L);const{sharedBuffer:t,jobsFlat:r,unitScale:_,rtcX:s,rtcY:i,rtcZ:g,needsShift:c,voidKeys:d,voidCounts:E,voidValues:G,styleIds:W,styleColors:U}=n.data,C=new Uint8Array(t.byteLength);C.set(new Uint8Array(t));const F=[],k=[],N=y=>{for(let m=0;m<y.length;m++){const l=y.get(m);if(!l)continue;const R=new Float32Array(l.positions),z=new Float32Array(l.normals),ut=new Uint32Array(l.indices);F.push({expressId:l.expressId,ifcType:l.ifcType,positions:R,normals:z,indices:ut,color:[l.color[0],l.color[1],l.color[2],l.color[3]]}),k.push(R.buffer,z.buffer,ut.buffer),l.free()}y.free()},j=async y=>{const m=Math.floor(y.length/3);if(m!==0)try{h||(await J(),h=new L);const l=h.processGeometryBatch(C,y,_,s,i,g,c,d,E,G,W,U);N(l)}catch(l){const R=l.message;if(m===1){console.warn(`[Worker] Skipping entity #${y[0]}: ${R}`),h=null;return}console.warn(`[Worker] Batch of ${m} entities failed (${R}), splitting…`),h=null;const z=Math.floor(m/2)*3;await j(y.slice(0,z)),await j(y.slice(z))}};await j(r),self.postMessage({type:"batch",meshes:F},k),self.postMessage({type:"complete",totalMeshes:F.length})}}catch(t){self.postMessage({type:"error",message:t instanceof Error?t.message:String(t)})}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const T="http://www.w3.org/2001/XMLSchema";class I extends Error{constructor(e,a){super(e),this.details=a,this.name="IDSParseError"}}function Ve(t){const e=typeof t=="string"?t:new TextDecoder().decode(t),i=new DOMParser().parseFromString(e,"text/xml"),n=i.querySelector("parsererror");if(n)throw new I("Invalid XML format",n.textContent||void 0);const s=i.documentElement;if(s.localName!=="ids")throw new I(`Invalid root element: expected "ids", got "${s.localName}"`);return{info:L(s),specifications:D(s)}}function L(t){const e=c(t,"info");return e?{title:b(e,"title")||"Untitled IDS",copyright:b(e,"copyright"),version:b(e,"version"),author:b(e,"author"),date:b(e,"date"),purpose:b(e,"purpose"),milestone:b(e,"milestone"),description:b(e,"description")}:{title:"Untitled IDS"}}function D(t){const e=c(t,"specifications");return e?_(e,"specification").map((i,n)=>B(i,n)):[]}function B(t,e){const a=t.getAttribute("name")||`Specification ${e+1}`,n=(t.getAttribute("ifcVersion")||"IFC4").split(/\s+/).map(d=>q(d)).filter(d=>d!==null),s=c(t,"applicability"),r={facets:s?H(s):[]},u=(s?s.getAttribute("minOccurs"):null)??t.getAttribute("minOccurs"),p=(s?s.getAttribute("maxOccurs"):null)??t.getAttribute("maxOccurs");let o;if(u!==null){const d=parseInt(u,10);Number.isFinite(d)&&(o=d)}let m;if(p!==null){const d=parseInt(p,10);p==="unbounded"?m="unbounded":Number.isFinite(d)&&(m=d)}const h=c(t,"requirements"),v=h?W(h):[];return{id:t.getAttribute("identifier")||`spec-${e}`,name:a,description:t.getAttribute("description")||void 0,instructions:t.getAttribute("instructions")||void 0,identifier:t.getAttribute("identifier")||void 0,ifcVersions:n.length>0?n:["IFC4"],applicability:r,requirements:v,minOccurs:o,maxOccurs:m}}function q(t){const e=t.toUpperCase().replace(/[^A-Z0-9]/g,"");switch(e){case"IFC2X3":return"IFC2X3";case"IFC4":return"IFC4";case"IFC4X3":case"IFC4X3ADD2":return"IFC4X3";default:return e.startsWith("IFC4X3")?"IFC4X3":e.startsWith("IFC4")?"IFC4":e.startsWith("IFC2X3")?"IFC2X3":null}}function H(t){const e=[];for(const a of Array.from(t.children)){const i=R(a);i&&e.push(i)}return e}function R(t){switch(t.localName.toLowerCase()){case"entity":return O(t);case"attribute":return k(t);case"property":return Y(t);case"classification":return U(t);case"material":return G(t);case"partof":return z(t);default:return null}}function O(t){const e=c(t,"name"),a=c(t,"predefinedType");if(!e)throw new I("Entity facet must have a name element");return{type:"entity",name:f(e),predefinedType:a?f(a):void 0}}function k(t){const e=c(t,"name"),a=c(t,"value");if(!e)throw new I("Attribute facet must have a name element");return{type:"attribute",name:f(e),value:a?f(a):void 0}}function Y(t){const e=c(t,"propertySet"),a=c(t,"baseName"),i=c(t,"dataType"),n=c(t,"value");if(!e)throw new I("Property facet must have a propertySet element");if(!a)throw new I("Property facet must have a baseName element");return{type:"property",propertySet:f(e),baseName:f(a),dataType:i?f(i):void 0,value:n?f(n):void 0}}function U(t){const e=c(t,"system"),a=c(t,"value");return{type:"classification",system:e?f(e):void 0,value:a?f(a):void 0}}function G(t){const e=c(t,"value");return{type:"material",value:e?f(e):void 0}}function z(t){const e=t.getAttribute("relation")||"IfcRelContainedInSpatialStructure",a=c(t,"entity");return{type:"partOf",relation:j(e),entity:a?O(a):void 0}}function j(t){const e=t.toUpperCase();return e.includes("AGGREGATE")?"IfcRelAggregates":e.includes("CONTAINED")||e.includes("SPATIAL")?"IfcRelContainedInSpatialStructure":e.includes("NEST")?"IfcRelNests":e.includes("VOID")?"IfcRelVoidsElement":e.includes("FILL")?"IfcRelFillsElement":"IfcRelContainedInSpatialStructure"}function W(t){const e=[];let a=0;for(const i of Array.from(t.children)){const n=R(i);if(n){const s=i.getAttribute("minOccurs"),r=i.getAttribute("maxOccurs");let u="required";s==="0"&&r==="0"?u="prohibited":s==="0"&&(u="optional"),e.push({id:`req-${a++}`,facet:n,optionality:u,description:i.getAttribute("description")||void 0,instructions:i.getAttribute("instructions")||void 0})}}return e}function f(t){const e=c(t,"simpleValue");if(e)return{type:"simpleValue",value:e.textContent?.trim()||""};const a=x(t,"restriction",T)||c(t,"restriction");if(a)return X(a);const i=t.textContent?.trim();return i?{type:"simpleValue",value:i}:{type:"simpleValue",value:""}}function X(t){const e=x(t,"pattern",T)||c(t,"pattern");if(e)return{type:"pattern",pattern:e.getAttribute("value")||e.textContent||""};const a=K(t,"enumeration",T);if(a.length===0){const p=_(t,"enumeration");if(p.length>0)return{type:"enumeration",values:p.map(o=>o.getAttribute("value")||o.textContent||"")}}else return{type:"enumeration",values:a.map(p=>p.getAttribute("value")||p.textContent||"")};const i=x(t,"minInclusive",T)||c(t,"minInclusive"),n=x(t,"maxInclusive",T)||c(t,"maxInclusive"),s=x(t,"minExclusive",T)||c(t,"minExclusive"),r=x(t,"maxExclusive",T)||c(t,"maxExclusive");if(i||n||s||r){const p={type:"bounds"};if(i){const o=parseFloat(i.getAttribute("value")||i.textContent||"");isNaN(o)||(p.minInclusive=o)}if(n){const o=parseFloat(n.getAttribute("value")||n.textContent||"");isNaN(o)||(p.maxInclusive=o)}if(s){const o=parseFloat(s.getAttribute("value")||s.textContent||"");isNaN(o)||(p.minExclusive=o)}if(r){const o=parseFloat(r.getAttribute("value")||r.textContent||"");isNaN(o)||(p.maxExclusive=o)}return p}const u=t.getAttribute("base");return u?{type:"simpleValue",value:u}:{type:"simpleValue",value:t.textContent?.trim()||""}}function c(t,e){for(const a of Array.from(t.children))if(a.localName.toLowerCase()===e.toLowerCase())return a;return null}function _(t,e){const a=[];for(const i of Array.from(t.children))i.localName.toLowerCase()===e.toLowerCase()&&a.push(i);return a}function x(t,e,a){for(const i of Array.from(t.children))if(i.localName.toLowerCase()===e.toLowerCase()&&i.namespaceURI===a)return i;return null}function K(t,e,a){const i=[];for(const n of Array.from(t.children))n.localName.toLowerCase()===e.toLowerCase()&&n.namespaceURI===a&&i.push(n);return i}function b(t,e){return c(t,e)?.textContent?.trim()||void 0}const A=1e-6;function y(t,e,a){if(e==null)return!1;const i=a?.caseInsensitive??!1;switch(t.type){case"simpleValue":return J(t,e,i);case"pattern":return Z(t,e);case"enumeration":return ee(t,e,i);case"bounds":return te(t,e);default:return!1}}function J(t,e,a){const i=t.value,n=String(e);if(n===i||a&&n.toUpperCase()===i.toUpperCase())return!0;const s=parseFloat(i),r=typeof e=="number"?e:parseFloat(n);if(!isNaN(s)&&!isNaN(r))return Math.abs(s-r)<=A;if(typeof e=="boolean"){const o=i.toLowerCase();if(o==="true"||o==="1")return e===!0;if(o==="false"||o==="0")return e===!1}const u=n.toLowerCase(),p=i.toLowerCase();return(u==="true"||u==="false")&&(p==="true"||p==="false")?u===p:!1}function Z(t,e){const a=String(e);try{const i=Q(t.pattern);return new RegExp(`^${i}$`).test(a)}catch{return!1}}function Q(t){return t.replace(/\\i/g,"[A-Za-z_:]").replace(/\\c/g,"[A-Za-z0-9._:-]").replace(/\\p\{[^}]+\}/g,".").replace(/\[([^\]]+)-\[[^\]]+\]\]/g,"[$1]")}function ee(t,e,a){const i=String(e),n=i.toUpperCase();return t.values.some(s=>{if(s===i||a&&s.toUpperCase()===n)return!0;const r=parseFloat(s),u=typeof e=="number"?e:parseFloat(i);return!isNaN(r)&&!isNaN(u)?Math.abs(r-u)<=A:!1})}function te(t,e){const a=typeof e=="number"?e:parseFloat(String(e));return!(isNaN(a)||t.minInclusive!==void 0&&a<t.minInclusive-A||t.maxInclusive!==void 0&&a>t.maxInclusive+A||t.minExclusive!==void 0&&a<=t.minExclusive||t.maxExclusive!==void 0&&a>=t.maxExclusive)}function l(t){switch(t.type){case"simpleValue":return`"${t.value}"`;case"pattern":return`pattern "${t.pattern}"`;case"enumeration":return t.values.length===1?`"${t.values[0]}"`:`one of [${t.values.map(e=>`"${e}"`).join(", ")}]`;case"bounds":return ie(t);default:return"unknown"}}function ie(t){const e=[];return t.minInclusive!==void 0&&t.maxInclusive!==void 0?`between ${t.minInclusive} and ${t.maxInclusive}`:(t.minInclusive!==void 0&&e.push(`>= ${t.minInclusive}`),t.maxInclusive!==void 0&&e.push(`<= ${t.maxInclusive}`),t.minExclusive!==void 0&&e.push(`> ${t.minExclusive}`),t.maxExclusive!==void 0&&e.push(`< ${t.maxExclusive}`),e.join(" and ")||"any value")}const N={caseInsensitive:!0};function ae(t,e,a){const i=a.getEntityType(e);if(!i)return{passed:!1,actualValue:void 0,expectedValue:l(t.name),failure:{type:"ENTITY_TYPE_MISMATCH",field:"entityType",actual:"unknown",expected:l(t.name)}};if(!y(t.name,i,N))return{passed:!1,actualValue:i,expectedValue:l(t.name),failure:{type:"ENTITY_TYPE_MISMATCH",field:"entityType",actual:i,expected:l(t.name)}};if(t.predefinedType){const n=a.getObjectType(e);if(!n)return{passed:!1,actualValue:i,expectedValue:`${l(t.name)} with predefinedType ${l(t.predefinedType)}`,failure:{type:"PREDEFINED_TYPE_MISSING",field:"predefinedType",expected:l(t.predefinedType)}};if(!y(t.predefinedType,n,N))return{passed:!1,actualValue:`${i}[${n}]`,expectedValue:`${l(t.name)} with predefinedType ${l(t.predefinedType)}`,failure:{type:"PREDEFINED_TYPE_MISMATCH",field:"predefinedType",actual:n,expected:l(t.predefinedType)}}}return{passed:!0,actualValue:t.predefinedType?`${i}[${a.getObjectType(e)||""}]`:i,expectedValue:l(t.name)}}function ne(t,e){const a=t.name;if(a.type==="simpleValue")return e.getEntitiesByType(a.value);if(a.type==="enumeration"){const i=[];for(const n of a.values)i.push(...e.getEntitiesByType(n));return i}}const se={caseInsensitive:!0},re=["Name","Description","ObjectType","Tag","GlobalId","LongName"];function le(t,e,a){const i=t.name;let n;if(i.type==="simpleValue")n=[i.value];else if(n=re.filter(r=>y(i,r,se)),n.length===0)return{passed:!1,expectedValue:t.value?l(t.value):`attribute matching ${l(i)} to exist`,failure:{type:"ATTRIBUTE_MISSING",field:l(i),expected:l(i)}};let s;for(const r of n){const u=ue(t,r,e,a);if(u.passed)return u;(!s||u.failure?.type!=="ATTRIBUTE_MISSING"&&s.failure?.type==="ATTRIBUTE_MISSING")&&(s=u)}return s}function ue(t,e,a,i){const n=pe(e,a,i);return n==null||n===""?{passed:!1,actualValue:void 0,expectedValue:t.value?l(t.value):`attribute "${e}" to exist`,failure:{type:"ATTRIBUTE_MISSING",field:e,expected:t.value?l(t.value):"any value"}}:t.value?y(t.value,n)?{passed:!0,actualValue:String(n),expectedValue:l(t.value)}:{passed:!1,actualValue:String(n),expectedValue:l(t.value),failure:{type:t.value.type==="pattern"?"ATTRIBUTE_PATTERN_MISMATCH":"ATTRIBUTE_VALUE_MISMATCH",field:e,actual:String(n),expected:l(t.value)}}:{passed:!0,actualValue:String(n),expectedValue:`attribute "${e}" to exist`}}function pe(t,e,a){switch(t.toLowerCase()){case"name":return a.getEntityName(e);case"description":return a.getDescription(e);case"objecttype":return a.getObjectType(e);case"globalid":return a.getGlobalId(e);default:return a.getAttribute(e,t)}}const oe={caseInsensitive:!0};function ce(t,e,a){const i=a.getPropertySets(e);if(i.length===0)return{passed:!1,expectedValue:`property "${l(t.baseName)}" in "${l(t.propertySet)}"`,failure:{type:"PSET_MISSING",field:l(t.propertySet),expected:l(t.propertySet)}};const n=i.filter(p=>y(t.propertySet,p.name));if(n.length===0){const p=i.map(o=>o.name).join(", ");return{passed:!1,actualValue:p||"(none)",expectedValue:l(t.propertySet),failure:{type:"PSET_MISSING",field:"propertySet",actual:p,expected:l(t.propertySet),context:{availablePsets:p}}}}let s;for(const p of n){const o=de(t,p);if(o.passed)return o;(!s||o.failure?.type!=="PROPERTY_MISSING"&&s.failure?.type==="PROPERTY_MISSING")&&(s=o)}if(s&&s.failure?.type!=="PROPERTY_MISSING")return s;const r=n.map(p=>p.name).join(", "),u=n.flatMap(p=>p.properties.map(o=>`${p.name}.${o.name}`)).join(", ");return{passed:!1,actualValue:u||"(none)",expectedValue:`${l(t.propertySet)}.${l(t.baseName)}`,failure:{type:"PROPERTY_MISSING",field:l(t.baseName),expected:l(t.baseName),context:{propertySet:r,availableProperties:u}}}}function de(t,e){const a=e.properties.filter(n=>y(t.baseName,n.name));if(a.length===0)return{passed:!1,failure:{type:"PROPERTY_MISSING",field:l(t.baseName),expected:l(t.baseName),context:{propertySet:e.name,availableProperties:e.properties.map(n=>n.name).join(", ")}}};let i;for(const n of a){const s=me(t,e,n);if(s.passed)return s;(!i||s.failure?.type!=="PROPERTY_MISSING"&&i.failure?.type==="PROPERTY_MISSING")&&(i=s)}return i}function me(t,e,a){if(t.dataType&&!y(t.dataType,a.dataType,oe))return{passed:!1,actualValue:`${e.name}.${a.name} (${a.dataType})`,expectedValue:`dataType ${l(t.dataType)}`,failure:{type:"PROPERTY_DATATYPE_MISMATCH",field:`${e.name}.${a.name}`,actual:a.dataType,expected:l(t.dataType)}};if(t.value){const i=a.value;if(i==null)return{passed:!1,actualValue:"(empty)",expectedValue:l(t.value),failure:{type:"PROPERTY_VALUE_MISMATCH",field:`${e.name}.${a.name}`,actual:"(empty)",expected:l(t.value)}};if(!y(t.value,i)){const n=t.value.type==="bounds"?"PROPERTY_OUT_OF_BOUNDS":"PROPERTY_VALUE_MISMATCH";return{passed:!1,actualValue:String(i),expectedValue:l(t.value),failure:{type:n,field:`${e.name}.${a.name}`,actual:String(i),expected:l(t.value)}}}}return{passed:!0,actualValue:`${e.name}.${a.name} = ${a.value}`,expectedValue:t.value?l(t.value):"property exists"}}function ye(t,e,a){const i=a.getClassifications(e),n=i.length>0;if(!t.system&&!t.value)return n?{passed:!0,actualValue:i.map(r=>`${r.system}:${r.value}`).join(", "),expectedValue:"any classification"}:{passed:!1,actualValue:"(none)",expectedValue:"any classification",failure:{type:"CLASSIFICATION_MISSING",expected:"any classification"}};if(!n){const r=t.system&&t.value?`${l(t.system)}:${l(t.value)}`:t.system?l(t.system):l(t.value);return{passed:!1,actualValue:"(none)",expectedValue:r,failure:{type:"CLASSIFICATION_MISSING",expected:r}}}let s=i;if(t.system&&(s=i.filter(r=>y(t.system,r.system)),s.length===0)){const r=[...new Set(i.map(u=>u.system))].join(", ");return{passed:!1,actualValue:r,expectedValue:l(t.system),failure:{type:"CLASSIFICATION_SYSTEM_MISMATCH",field:"system",actual:r,expected:l(t.system),context:{availableSystems:r}}}}if(t.value){const r=s.filter(u=>y(t.value,u.value));if(r.length===0){const u=s.map(p=>p.value).join(", ");return{passed:!1,actualValue:u||"(none)",expectedValue:l(t.value),failure:{type:"CLASSIFICATION_VALUE_MISMATCH",field:"value",actual:u,expected:l(t.value),context:{system:t.system?l(t.system):"any",availableValues:u}}}}return{passed:!0,actualValue:r.map(u=>`${u.system}:${u.value}`).join(", "),expectedValue:t.system?`${l(t.system)}:${l(t.value)}`:l(t.value)}}return{passed:!0,actualValue:s.map(r=>`${r.system}:${r.value}`).join(", "),expectedValue:l(t.system)}}function fe(t,e,a){const i=a.getMaterials(e);if(!t.value)return i.length===0?{passed:!1,actualValue:"(none)",expectedValue:"any material",failure:{type:"MATERIAL_MISSING",expected:"any material"}}:{passed:!0,actualValue:i.map(s=>s.name).join(", "),expectedValue:"any material"};const n=i.filter(s=>y(t.value,s.name)||s.category&&y(t.value,s.category));if(n.length===0){if(i.length===0)return{passed:!1,actualValue:"(none)",expectedValue:l(t.value),failure:{type:"MATERIAL_MISSING",expected:l(t.value)}};const s=i.map(r=>r.name).join(", ");return{passed:!1,actualValue:s,expectedValue:l(t.value),failure:{type:"MATERIAL_VALUE_MISMATCH",field:"material",actual:s,expected:l(t.value),context:{availableMaterials:s}}}}return{passed:!0,actualValue:n.map(s=>s.name).join(", "),expectedValue:l(t.value)}}const C={caseInsensitive:!0},S={IfcRelAggregates:"aggregated in",IfcRelContainedInSpatialStructure:"contained in",IfcRelNests:"nested in",IfcRelVoidsElement:"voiding",IfcRelFillsElement:"filling"};function he(t,e,a){const i=a.getParent(e,t.relation);if(!i){const r=S[t.relation]||t.relation,u=t.entity?l(t.entity.name):"any entity";return{passed:!1,actualValue:"(no parent)",expectedValue:`${r} ${u}`,failure:{type:"PARTOF_RELATION_MISSING",field:t.relation,expected:`${r} ${u}`,context:{relation:t.relation}}}}if(!t.entity){const r=S[t.relation]||t.relation;return{passed:!0,actualValue:`${r} ${i.entityType}`,expectedValue:`${r} any entity`}}if(!y(t.entity.name,i.entityType,C)){const r=S[t.relation]||t.relation;return{passed:!1,actualValue:`${r} ${i.entityType}`,expectedValue:`${r} ${l(t.entity.name)}`,failure:{type:"PARTOF_ENTITY_MISMATCH",field:"entity",actual:i.entityType,expected:l(t.entity.name),context:{relation:t.relation,parentId:String(i.expressId)}}}}if(t.entity.predefinedType){if(!i.predefinedType)return{passed:!1,actualValue:`${i.entityType} (no predefinedType)`,expectedValue:`${l(t.entity.name)} with predefinedType ${l(t.entity.predefinedType)}`,failure:{type:"PARTOF_PREDEFINED_TYPE_MISSING",field:"predefinedType",expected:l(t.entity.predefinedType),context:{relation:t.relation,parentType:i.entityType}}};if(!y(t.entity.predefinedType,i.predefinedType,C))return{passed:!1,actualValue:`${i.entityType}[${i.predefinedType}]`,expectedValue:`${l(t.entity.name)}[${l(t.entity.predefinedType)}]`,failure:{type:"PARTOF_PREDEFINED_TYPE_MISMATCH",field:"predefinedType",actual:i.predefinedType,expected:l(t.entity.predefinedType),context:{relation:t.relation,parentType:i.entityType}}}}const n=S[t.relation]||t.relation,s=i.predefinedType?`${i.entityType}[${i.predefinedType}]`:i.entityType;return{passed:!0,actualValue:`${n} ${s}`,expectedValue:`${n} ${l(t.entity.name)}`}}function $(t,e,a){switch(t.type){case"entity":return ae(t,e,a);case"attribute":return le(t,e,a);case"property":return ce(t,e,a);case"classification":return ye(t,e,a);case"material":return fe(t,e,a);case"partOf":return he(t,e,a);default:return{passed:!1,failure:{type:"ENTITY_TYPE_MISMATCH",expected:"known facet type",actual:t.type}}}}function ve(t,e){switch(t.type){case"entity":return ne(t,e);default:return}}async function Re(t,e,a,i={}){const{translator:n,onProgress:s,includePassingEntities:r=!0}=i,u=[],p=t.specifications.length;for(let m=0;m<p;m++){const h=t.specifications[m];s&&s({phase:"filtering",specificationIndex:m,totalSpecifications:p,entitiesProcessed:0,totalEntities:0,percentage:Math.floor(m/p*100)});const v=await be(h,e,a.modelId,i,d=>{s&&s({...d,specificationIndex:m,totalSpecifications:p,percentage:Math.floor((m+d.entitiesProcessed/Math.max(d.totalEntities,1))/p*100)})});u.push(v)}s&&s({phase:"complete",specificationIndex:p,totalSpecifications:p,entitiesProcessed:0,totalEntities:0,percentage:100});const o=Me(u);return{document:t,modelInfo:a,timestamp:new Date,summary:o,specificationResults:u}}async function be(t,e,a,i,n){const{translator:s,maxEntities:r,includePassingEntities:u=!0}=i,p=Ee(t,e),o=r?p.slice(0,r):p,m=[],h=o.length;for(let E=0;E<h;E++){const F=o[E];n&&E%100===0&&n({phase:"validating",entitiesProcessed:E,totalEntities:h});const P=Te(t,F,a,e,s);(u||!P.passed)&&m.push(P)}let v=0,d=0;for(const E of m)E.passed?v++:d++;u||(v=h-d);const g=Ie(t,p.length);let M="pass";p.length===0?g?.passed===!1?M="fail":g?.passed===!0?M="pass":M="not_applicable":(d>0||g?.passed===!1)&&(M="fail");const w=h>0?Math.floor(v/h*100):100;return{specification:t,status:M,applicableCount:p.length,passedCount:v,failedCount:d,passRate:w,entityResults:m,cardinalityResult:g}}function Ee(t,e){const a=t.applicability.facets;if(a.length===0)return e.getAllEntityIds();let i;for(const s of a){const r=ve(s,e);if(r!==void 0){i=r;break}}i===void 0&&(i=e.getAllEntityIds());const n=[];for(const s of i){let r=!0;for(const u of a)if(!$(u,s,e).passed){r=!1;break}r&&n.push(s)}return n}function Te(t,e,a,i,n){const s=[];let r=!0;for(const u of t.requirements){const p=xe(u,e,i,n);s.push(p),p.status==="fail"&&(r=!1)}return{expressId:e,modelId:a,entityType:i.getEntityType(e)||"Unknown",entityName:i.getEntityName(e),globalId:i.getGlobalId(e),passed:r,requirementResults:s}}function xe(t,e,a,i){const n=$(t.facet,e,a);let s,r;switch(t.optionality){case"required":s=n.passed?"pass":"fail",n.passed||(r=i?i.describeFailure({requirement:t,status:"fail",facetType:t.facet.type,checkedDescription:"",actualValue:n.actualValue,expectedValue:n.expectedValue,failure:n.failure}):ge(n));break;case"optional":s="pass";break;case"prohibited":s=n.passed?"fail":"pass",s==="fail"&&(r=i?i.t("failures.prohibited",{field:n.actualValue||"value"}):`Prohibited: found ${n.actualValue}`);break;default:s=n.passed?"pass":"fail"}const u=i?i.describeRequirement(t):Se(t);return{requirement:t,status:s,facetType:t.facet.type,checkedDescription:u,failureReason:r,actualValue:n.actualValue,expectedValue:n.expectedValue,failure:n.failure}}function Ie(t,e){if(t.minOccurs===void 0&&t.maxOccurs===void 0)return;const a=t.minOccurs??0,i=t.maxOccurs;let n=!0;const s=[];return e<a&&(n=!1,s.push(`Expected at least ${a}, found ${e}`)),i!=="unbounded"&&i!==void 0&&e>i&&(n=!1,s.push(`Expected at most ${i}, found ${e}`)),{passed:n,actualCount:e,minExpected:t.minOccurs,maxExpected:t.maxOccurs,message:s.length>0?s.join("; "):"Cardinality satisfied"}}function Me(t){let e=t.length,a=0,i=0,n=0,s=0,r=0;for(const p of t)p.status==="pass"?a++:p.status==="fail"&&i++,n+=p.applicableCount,s+=p.passedCount,r+=p.failedCount;const u=n>0?Math.floor(s/n*100):100;return{totalSpecifications:e,passedSpecifications:a,failedSpecifications:i,totalEntitiesChecked:n,totalEntitiesPassed:s,totalEntitiesFailed:r,overallPassRate:u}}function ge(t){if(!t.failure)return`Expected ${t.expectedValue}, got ${t.actualValue}`;const{type:e,field:a,actual:i,expected:n}=t.failure;switch(e){case"ENTITY_TYPE_MISMATCH":return`Entity type "${i}" does not match expected ${n}`;case"PREDEFINED_TYPE_MISMATCH":return`Predefined type "${i}" does not match expected ${n}`;case"PREDEFINED_TYPE_MISSING":return`Predefined type is missing, expected ${n}`;case"ATTRIBUTE_MISSING":return`Attribute "${a}" is missing`;case"ATTRIBUTE_VALUE_MISMATCH":return`Attribute "${a}" value "${i}" does not match expected ${n}`;case"ATTRIBUTE_PATTERN_MISMATCH":return`Attribute "${a}" value "${i}" does not match pattern ${n}`;case"PSET_MISSING":return`Property set "${a||n}" not found`;case"PROPERTY_MISSING":return`Property "${a}" not found`;case"PROPERTY_VALUE_MISMATCH":return`Property "${a}" value "${i}" does not match expected ${n}`;case"PROPERTY_DATATYPE_MISMATCH":return`Property "${a}" type "${i}" does not match expected ${n}`;case"PROPERTY_OUT_OF_BOUNDS":return`Property "${a}" value ${i} is out of bounds ${n}`;case"CLASSIFICATION_MISSING":return"No classification found";case"CLASSIFICATION_SYSTEM_MISMATCH":return`Classification system "${i}" does not match expected ${n}`;case"CLASSIFICATION_VALUE_MISMATCH":return`Classification value "${i}" does not match expected ${n}`;case"MATERIAL_MISSING":return"No material assigned";case"MATERIAL_VALUE_MISMATCH":return`Material "${i}" does not match expected ${n}`;case"PARTOF_RELATION_MISSING":return`Not ${a} any entity`;case"PARTOF_ENTITY_MISMATCH":return`Parent entity "${i}" does not match expected ${n}`;case"PARTOF_PREDEFINED_TYPE_MISSING":return`Parent entity predefined type is missing, expected ${n}`;case"PARTOF_PREDEFINED_TYPE_MISMATCH":return`Parent entity predefined type "${i}" does not match expected ${n}`;default:return`Validation failed: ${e}`}}function Se(t){const e=t.facet,a=t.optionality;let i;switch(e.type){case"entity":i=`Must be ${l(e.name)}`,e.predefinedType&&(i+=` with predefinedType ${l(e.predefinedType)}`);break;case"attribute":e.value?i=`Attribute "${l(e.name)}" must equal ${l(e.value)}`:i=`Attribute "${l(e.name)}" must exist`;break;case"property":e.value?i=`Property "${l(e.propertySet)}.${l(e.baseName)}" must equal ${l(e.value)}`:i=`Property "${l(e.propertySet)}.${l(e.baseName)}" must exist`;break;case"classification":e.system&&e.value?i=`Must have classification ${l(e.value)} in ${l(e.system)}`:e.system?i=`Must be classified in ${l(e.system)}`:e.value?i=`Must have classification ${l(e.value)}`:i="Must have a classification";break;case"material":e.value?i=`Must have material ${l(e.value)}`:i="Must have a material assigned";break;case"partOf":{const n=e.relation.replace("IfcRel","").toLowerCase();e.entity?i=`Must be ${n} ${l(e.entity.name)}`:i=`Must be ${n} some entity`;break}default:i="Unknown requirement"}return a==="prohibited"?i=i.replace("Must","Must NOT").replace("must","must NOT"):a==="optional"&&(i=i.replace("Must","Should").replace("must","should")),i}const Ae={status:{pass:"PASS",fail:"FAIL",not_applicable:"NOT APPLICABLE"},optionality:{required:"Required",optional:"Optional",prohibited:"Prohibited"},cardinality:{satisfied:"Cardinality satisfied",atLeast:"Expected at least {min}, found {count}",atMost:"Expected at most {max}, found {count}",between:"Expected between {min} and {max}, found {count}",exactly:"Expected exactly {count}"},relations:{IfcRelAggregates:"part of",IfcRelContainedInSpatialStructure:"contained in",IfcRelNests:"nested in",IfcRelVoidsElement:"voiding",IfcRelFillsElement:"filling"},constraints:{simpleValue:'"{value}"',pattern:'matching pattern "{pattern}"',enumeration:{single:'"{value}"',multiple:"one of [{values}]"},bounds:{between:"between {min} and {max}",atLeast:"at least {min}",atMost:"at most {max}",greaterThan:"greater than {min}",lessThan:"less than {max}"}},applicability:{entity:{simple:"Elements of type {entityType}",withPredefined:"{entityType} elements with predefined type {predefinedType}",pattern:"Elements with type matching {pattern}"},attribute:{exists:'Elements where attribute "{name}" exists',equals:'Elements where "{name}" equals {value}',pattern:'Elements where "{name}" matches {pattern}'},property:{exists:'Elements with property "{property}" in "{pset}"',equals:'Elements where "{pset}.{property}" equals {value}',pattern:'Elements where "{pset}.{property}" matches {pattern}',bounded:'Elements where "{pset}.{property}" is {bounds}'},classification:{any:"Elements with any classification",system:'Elements classified in "{system}"',value:'Elements with classification "{value}"',systemAndValue:'Elements classified as "{value}" in "{system}"'},material:{any:"Elements with any material assigned",value:'Elements with material "{value}"',pattern:"Elements with material matching {pattern}"},partOf:{simple:"Elements that are {relation} another element",withEntity:"Elements that are {relation} a {entity}",withEntityAndType:"Elements that are {relation} a {entity} with type {predefinedType}"}},requirements:{entity:{mustBe:"Must be of type {entityType}",mustHavePredefined:"Must have predefined type {predefinedType}",mustBeWithPredefined:"Must be {entityType} with predefined type {predefinedType}"},attribute:{mustExist:'Attribute "{name}" must exist',mustEqual:'Attribute "{name}" must equal {value}',mustMatch:'Attribute "{name}" must match {pattern}',mustNotExist:'Attribute "{name}" must not exist',mustNotEqual:'Attribute "{name}" must not equal {value}'},property:{mustExist:'Property "{pset}.{property}" must exist',mustEqual:'Property "{pset}.{property}" must equal {value}',mustMatch:'Property "{pset}.{property}" must match {pattern}',mustBeBounded:'Property "{pset}.{property}" must be {bounds}',mustHaveType:'Property "{pset}.{property}" must be of type {dataType}',mustNotExist:'Property "{pset}.{property}" must not exist'},classification:{mustHave:"Must have a classification",mustBeInSystem:'Must be classified in "{system}"',mustHaveValue:'Must have classification "{value}"',mustBeInSystemWithValue:'Must be classified as "{value}" in "{system}"',mustNotHave:"Must not have any classification",mustNotBeInSystem:'Must not be classified in "{system}"'},material:{mustHave:"Must have a material assigned",mustBe:'Must have material "{value}"',mustMatch:"Must have material matching {pattern}",mustNotHave:"Must not have any material assigned"},partOf:{mustBe:"Must be {relation} a {entity}",mustBeSimple:"Must be {relation} another element",mustNotBe:"Must not be {relation} any element"}},failures:{entityTypeMismatch:'Entity type is "{actual}", expected {expected}',predefinedTypeMismatch:'Predefined type is "{actual}", expected {expected}',predefinedTypeMissing:"Predefined type is not set, expected {expected}",attributeMissing:'Attribute "{name}" does not exist',attributeEmpty:'Attribute "{name}" is empty',attributeValueMismatch:'Attribute "{name}" is "{actual}", expected {expected}',attributePatternMismatch:'Attribute "{name}" value "{actual}" does not match pattern {expected}',attributeProhibited:'Prohibited attribute "{name}" exists with value "{actual}"',psetMissing:'Property set "{pset}" not found',psetMissingAvailable:'Property set "{pset}" not found. Available: {available}',propertyMissing:'Property "{property}" not found in "{pset}"',propertyMissingAvailable:'Property "{property}" not found in "{pset}". Available: {available}',propertyEmpty:'Property "{pset}.{property}" has no value',propertyValueMismatch:'Property "{pset}.{property}" is "{actual}", expected {expected}',propertyPatternMismatch:'Property "{pset}.{property}" value "{actual}" does not match {expected}',propertyDatatypeMismatch:'Property "{pset}.{property}" data type is "{actual}", expected {expected}',propertyOutOfBounds:'Property "{pset}.{property}" value {actual} is out of range {expected}',propertyProhibited:'Prohibited property "{pset}.{property}" exists with value "{actual}"',classificationMissing:"No classification assigned",classificationSystemMismatch:'Classification system "{actual}" does not match expected "{expected}"',classificationSystemMissingAvailable:'Classification system "{expected}" not found. Available: {available}',classificationValueMismatch:'Classification code "{actual}" does not match expected {expected}',classificationValueMissingAvailable:"Classification code {expected} not found. Available: {available}",classificationProhibited:'Prohibited classification "{actual}" exists in system "{system}"',materialMissing:"No material assigned",materialValueMismatch:'Material "{actual}" does not match expected {expected}',materialValueMissingAvailable:"Material {expected} not found. Available: {available}",materialProhibited:'Prohibited material "{actual}" is assigned',partOfMissing:"Element is not {relation} any {entity}",partOfMissingSimple:"Element is not {relation} any element",partOfEntityMismatch:"Parent element is {actual}, expected {expected}",partOfPredefinedMismatch:'Parent predefined type is "{actual}", expected {expected}',partOfProhibited:"Element is {relation} {actual}, which is prohibited",prohibited:'Prohibited {field} found: "{actual}"',unknown:"Validation failed: {reason}"},summary:{title:"IDS Validation Report",specifications:"{passed}/{total} specifications passed",entities:"{passed}/{total} entities compliant ({percent}%)",overallPass:"Model meets all requirements",overallFail:"Model has {count} failing specifications",noApplicable:"No applicable entities found"},ui:{specification:"Specification",specifications:"Specifications",requirement:"Requirement",requirements:"Requirements",applicability:"Applies to",entity:"Entity",entities:"Entities",passed:"Passed",failed:"Failed",passRate:"Pass rate",actualValue:"Actual",expectedValue:"Expected",failureReason:"Reason",showAll:"Show all",showFailed:"Show failed only",isolateFailed:"Isolate failed",isolatePassed:"Isolate passed",exportJson:"Export JSON",exportBcf:"Export BCF",loadIds:"Load IDS file",runValidation:"Run validation",clearResults:"Clear results"}},Pe={status:{pass:"BESTANDEN",fail:"FEHLGESCHLAGEN",not_applicable:"NICHT ANWENDBAR"},optionality:{required:"Erforderlich",optional:"Optional",prohibited:"Verboten"},cardinality:{satisfied:"Kardinalität erfüllt",atLeast:"Mindestens {min} erwartet, {count} gefunden",atMost:"Maximal {max} erwartet, {count} gefunden",between:"Zwischen {min} und {max} erwartet, {count} gefunden",exactly:"Genau {count} erwartet"},relations:{IfcRelAggregates:"Teil von",IfcRelContainedInSpatialStructure:"enthalten in",IfcRelNests:"verschachtelt in",IfcRelVoidsElement:"durchbrechend",IfcRelFillsElement:"ausfüllend"},constraints:{simpleValue:'"{value}"',pattern:'entsprechend Muster "{pattern}"',enumeration:{single:'"{value}"',multiple:"eines von [{values}]"},bounds:{between:"zwischen {min} und {max}",atLeast:"mindestens {min}",atMost:"höchstens {max}",greaterThan:"größer als {min}",lessThan:"kleiner als {max}"}},applicability:{entity:{simple:"Elemente vom Typ {entityType}",withPredefined:"{entityType}-Elemente mit vordefiniertem Typ {predefinedType}",pattern:"Elemente mit Typ entsprechend {pattern}"},attribute:{exists:'Elemente bei denen Attribut "{name}" existiert',equals:'Elemente bei denen "{name}" gleich {value} ist',pattern:'Elemente bei denen "{name}" dem Muster {pattern} entspricht'},property:{exists:'Elemente mit Eigenschaft "{property}" in "{pset}"',equals:'Elemente bei denen "{pset}.{property}" gleich {value} ist',pattern:'Elemente bei denen "{pset}.{property}" dem Muster {pattern} entspricht',bounded:'Elemente bei denen "{pset}.{property}" {bounds} ist'},classification:{any:"Elemente mit beliebiger Klassifizierung",system:'Elemente klassifiziert in "{system}"',value:'Elemente mit Klassifizierung "{value}"',systemAndValue:'Elemente klassifiziert als "{value}" in "{system}"'},material:{any:"Elemente mit zugewiesenem Material",value:'Elemente mit Material "{value}"',pattern:"Elemente mit Material entsprechend {pattern}"},partOf:{simple:"Elemente die {relation} einem anderen Element sind",withEntity:"Elemente die {relation} einem/einer {entity} sind",withEntityAndType:"Elemente die {relation} einem/einer {entity} mit Typ {predefinedType} sind"}},requirements:{entity:{mustBe:"Muss vom Typ {entityType} sein",mustHavePredefined:"Muss vordefinierten Typ {predefinedType} haben",mustBeWithPredefined:"Muss {entityType} mit vordefiniertem Typ {predefinedType} sein"},attribute:{mustExist:'Attribut "{name}" muss existieren',mustEqual:'Attribut "{name}" muss {value} entsprechen',mustMatch:'Attribut "{name}" muss dem Muster {pattern} entsprechen',mustNotExist:'Attribut "{name}" darf nicht existieren',mustNotEqual:'Attribut "{name}" darf nicht {value} sein'},property:{mustExist:'Eigenschaft "{pset}.{property}" muss existieren',mustEqual:'Eigenschaft "{pset}.{property}" muss {value} sein',mustMatch:'Eigenschaft "{pset}.{property}" muss dem Muster {pattern} entsprechen',mustBeBounded:'Eigenschaft "{pset}.{property}" muss {bounds} sein',mustHaveType:'Eigenschaft "{pset}.{property}" muss vom Datentyp {dataType} sein',mustNotExist:'Eigenschaft "{pset}.{property}" darf nicht existieren'},classification:{mustHave:"Muss eine Klassifizierung haben",mustBeInSystem:'Muss in "{system}" klassifiziert sein',mustHaveValue:'Muss Klassifizierung "{value}" haben',mustBeInSystemWithValue:'Muss als "{value}" in "{system}" klassifiziert sein',mustNotHave:"Darf keine Klassifizierung haben",mustNotBeInSystem:'Darf nicht in "{system}" klassifiziert sein'},material:{mustHave:"Muss ein Material zugewiesen haben",mustBe:'Muss Material "{value}" haben',mustMatch:"Muss Material entsprechend {pattern} haben",mustNotHave:"Darf kein Material zugewiesen haben"},partOf:{mustBe:"Muss {relation} einem/einer {entity} sein",mustBeSimple:"Muss {relation} einem anderen Element sein",mustNotBe:"Darf nicht {relation} einem Element sein"}},failures:{entityTypeMismatch:'Elementtyp ist "{actual}", erwartet {expected}',predefinedTypeMismatch:'Vordefinierter Typ ist "{actual}", erwartet {expected}',predefinedTypeMissing:"Vordefinierter Typ ist nicht gesetzt, erwartet {expected}",attributeMissing:'Attribut "{name}" existiert nicht',attributeEmpty:'Attribut "{name}" ist leer',attributeValueMismatch:'Attribut "{name}" ist "{actual}", erwartet {expected}',attributePatternMismatch:'Attribut "{name}" Wert "{actual}" entspricht nicht dem Muster {expected}',attributeProhibited:'Verbotenes Attribut "{name}" existiert mit Wert "{actual}"',psetMissing:'PropertySet "{pset}" nicht gefunden',psetMissingAvailable:'PropertySet "{pset}" nicht gefunden. Verfügbar: {available}',propertyMissing:'Eigenschaft "{property}" nicht in "{pset}" gefunden',propertyMissingAvailable:'Eigenschaft "{property}" nicht in "{pset}" gefunden. Verfügbar: {available}',propertyEmpty:'Eigenschaft "{pset}.{property}" hat keinen Wert',propertyValueMismatch:'Eigenschaft "{pset}.{property}" ist "{actual}", erwartet {expected}',propertyPatternMismatch:'Eigenschaft "{pset}.{property}" Wert "{actual}" entspricht nicht {expected}',propertyDatatypeMismatch:'Eigenschaft "{pset}.{property}" Datentyp ist "{actual}", erwartet {expected}',propertyOutOfBounds:'Eigenschaft "{pset}.{property}" Wert {actual} liegt außerhalb des Bereichs {expected}',propertyProhibited:'Verbotene Eigenschaft "{pset}.{property}" existiert mit Wert "{actual}"',classificationMissing:"Keine Klassifizierung zugewiesen",classificationSystemMismatch:'Klassifizierungssystem "{actual}" entspricht nicht dem erwarteten "{expected}"',classificationSystemMissingAvailable:'Klassifizierungssystem "{expected}" nicht gefunden. Verfügbar: {available}',classificationValueMismatch:'Klassifizierungscode "{actual}" entspricht nicht dem erwarteten {expected}',classificationValueMissingAvailable:"Klassifizierungscode {expected} nicht gefunden. Verfügbar: {available}",classificationProhibited:'Verbotene Klassifizierung "{actual}" existiert im System "{system}"',materialMissing:"Kein Material zugewiesen",materialValueMismatch:'Material "{actual}" entspricht nicht dem erwarteten {expected}',materialValueMissingAvailable:"Material {expected} nicht gefunden. Verfügbar: {available}",materialProhibited:'Verbotenes Material "{actual}" ist zugewiesen',partOfMissing:"Element ist nicht {relation} einem/einer {entity}",partOfMissingSimple:"Element ist nicht {relation} einem anderen Element",partOfEntityMismatch:"Übergeordnetes Element ist {actual}, erwartet {expected}",partOfPredefinedMismatch:'Vordefinierter Typ des übergeordneten Elements ist "{actual}", erwartet {expected}',partOfProhibited:"Element ist {relation} {actual}, was verboten ist",prohibited:'Verbotenes {field} gefunden: "{actual}"',unknown:"Validierung fehlgeschlagen: {reason}"},summary:{title:"IDS-Validierungsbericht",specifications:"{passed}/{total} Spezifikationen bestanden",entities:"{passed}/{total} Elemente konform ({percent}%)",overallPass:"Modell erfüllt alle Anforderungen",overallFail:"Modell hat {count} fehlgeschlagene Spezifikationen",noApplicable:"Keine anwendbaren Elemente gefunden"},ui:{specification:"Spezifikation",specifications:"Spezifikationen",requirement:"Anforderung",requirements:"Anforderungen",applicability:"Gilt für",entity:"Element",entities:"Elemente",passed:"Bestanden",failed:"Fehlgeschlagen",passRate:"Erfolgsquote",actualValue:"Tatsächlich",expectedValue:"Erwartet",failureReason:"Grund",showAll:"Alle anzeigen",showFailed:"Nur fehlgeschlagene",isolateFailed:"Fehlgeschlagene isolieren",isolatePassed:"Bestandene isolieren",exportJson:"JSON exportieren",exportBcf:"BCF exportieren",loadIds:"IDS-Datei laden",runValidation:"Validierung starten",clearResults:"Ergebnisse löschen"}},Ne={status:{pass:"CONFORME",fail:"NON CONFORME",not_applicable:"NON APPLICABLE"},optionality:{required:"Obligatoire",optional:"Optionnel",prohibited:"Interdit"},cardinality:{satisfied:"Cardinalité respectée",atLeast:"Au moins {min} attendu(s), {count} trouvé(s)",atMost:"Au maximum {max} attendu(s), {count} trouvé(s)",between:"Entre {min} et {max} attendu(s), {count} trouvé(s)",exactly:"Exactement {count} attendu(s)"},relations:{IfcRelAggregates:"agrégé dans",IfcRelContainedInSpatialStructure:"contenu dans",IfcRelNests:"imbriqué dans",IfcRelVoidsElement:"perçant",IfcRelFillsElement:"remplissant"},constraints:{simpleValue:'"{value}"',pattern:'correspondant au motif "{pattern}"',enumeration:{single:'"{value}"',multiple:"l'un de [{values}]"},bounds:{between:"entre {min} et {max}",atLeast:"au moins {min}",atMost:"au plus {max}",greaterThan:"supérieur à {min}",lessThan:"inférieur à {max}"}},applicability:{entity:{simple:"Éléments de type {entityType}",withPredefined:"Éléments {entityType} avec type prédéfini {predefinedType}",pattern:"Éléments avec type correspondant à {pattern}"},attribute:{exists:`Éléments où l'attribut "{name}" existe`,equals:'Éléments où "{name}" est égal à {value}',pattern:'Éléments où "{name}" correspond au motif {pattern}'},property:{exists:'Éléments avec propriété "{property}" dans "{pset}"',equals:'Éléments où "{pset}.{property}" est égal à {value}',pattern:'Éléments où "{pset}.{property}" correspond au motif {pattern}',bounded:'Éléments où "{pset}.{property}" est {bounds}'},classification:{any:"Éléments avec une classification quelconque",system:'Éléments classifiés dans "{system}"',value:'Éléments avec classification "{value}"',systemAndValue:'Éléments classifiés comme "{value}" dans "{system}"'},material:{any:"Éléments avec un matériau attribué",value:'Éléments avec matériau "{value}"',pattern:"Éléments avec matériau correspondant à {pattern}"},partOf:{simple:"Éléments qui sont {relation} un autre élément",withEntity:"Éléments qui sont {relation} un(e) {entity}",withEntityAndType:"Éléments qui sont {relation} un(e) {entity} de type {predefinedType}"}},requirements:{entity:{mustBe:"Doit être de type {entityType}",mustHavePredefined:"Doit avoir le type prédéfini {predefinedType}",mustBeWithPredefined:"Doit être {entityType} avec type prédéfini {predefinedType}"},attribute:{mustExist:`L'attribut "{name}" doit exister`,mustEqual:`L'attribut "{name}" doit être égal à {value}`,mustMatch:`L'attribut "{name}" doit correspondre au motif {pattern}`,mustNotExist:`L'attribut "{name}" ne doit pas exister`,mustNotEqual:`L'attribut "{name}" ne doit pas être {value}`},property:{mustExist:'La propriété "{pset}.{property}" doit exister',mustEqual:'La propriété "{pset}.{property}" doit être égale à {value}',mustMatch:'La propriété "{pset}.{property}" doit correspondre au motif {pattern}',mustBeBounded:'La propriété "{pset}.{property}" doit être {bounds}',mustHaveType:'La propriété "{pset}.{property}" doit être de type {dataType}',mustNotExist:'La propriété "{pset}.{property}" ne doit pas exister'},classification:{mustHave:"Doit avoir une classification",mustBeInSystem:'Doit être classifié dans "{system}"',mustHaveValue:'Doit avoir la classification "{value}"',mustBeInSystemWithValue:'Doit être classifié comme "{value}" dans "{system}"',mustNotHave:"Ne doit pas avoir de classification",mustNotBeInSystem:'Ne doit pas être classifié dans "{system}"'},material:{mustHave:"Doit avoir un matériau attribué",mustBe:'Doit avoir le matériau "{value}"',mustMatch:"Doit avoir un matériau correspondant à {pattern}",mustNotHave:"Ne doit pas avoir de matériau attribué"},partOf:{mustBe:"Doit être {relation} un(e) {entity}",mustBeSimple:"Doit être {relation} un autre élément",mustNotBe:"Ne doit pas être {relation} un élément"}},failures:{entityTypeMismatch:`Le type d'élément est "{actual}", attendu {expected}`,predefinedTypeMismatch:'Le type prédéfini est "{actual}", attendu {expected}',predefinedTypeMissing:"Le type prédéfini n'est pas défini, attendu {expected}",attributeMissing:`L'attribut "{name}" n'existe pas`,attributeEmpty:`L'attribut "{name}" est vide`,attributeValueMismatch:`L'attribut "{name}" est "{actual}", attendu {expected}`,attributePatternMismatch:`La valeur de l'attribut "{name}" "{actual}" ne correspond pas au motif {expected}`,attributeProhibited:`L'attribut interdit "{name}" existe avec la valeur "{actual}"`,psetMissing:`L'ensemble de propriétés "{pset}" n'a pas été trouvé`,psetMissingAvailable:`L'ensemble de propriétés "{pset}" n'a pas été trouvé. Disponibles : {available}`,propertyMissing:`La propriété "{property}" n'a pas été trouvée dans "{pset}"`,propertyMissingAvailable:`La propriété "{property}" n'a pas été trouvée dans "{pset}". Disponibles : {available}`,propertyEmpty:`La propriété "{pset}.{property}" n'a pas de valeur`,propertyValueMismatch:'La propriété "{pset}.{property}" est "{actual}", attendu {expected}',propertyPatternMismatch:'La valeur de la propriété "{pset}.{property}" "{actual}" ne correspond pas à {expected}',propertyDatatypeMismatch:'Le type de données de la propriété "{pset}.{property}" est "{actual}", attendu {expected}',propertyOutOfBounds:'La valeur de la propriété "{pset}.{property}" {actual} est hors de la plage {expected}',propertyProhibited:'La propriété interdite "{pset}.{property}" existe avec la valeur "{actual}"',classificationMissing:"Aucune classification attribuée",classificationSystemMismatch:'Le système de classification "{actual}" ne correspond pas à "{expected}" attendu',classificationSystemMissingAvailable:`Le système de classification "{expected}" n'a pas été trouvé. Disponibles : {available}`,classificationValueMismatch:'Le code de classification "{actual}" ne correspond pas à {expected} attendu',classificationValueMissingAvailable:"Le code de classification {expected} n'a pas été trouvé. Disponibles : {available}",classificationProhibited:'La classification interdite "{actual}" existe dans le système "{system}"',materialMissing:"Aucun matériau attribué",materialValueMismatch:'Le matériau "{actual}" ne correspond pas à {expected} attendu',materialValueMissingAvailable:"Le matériau {expected} n'a pas été trouvé. Disponibles : {available}",materialProhibited:'Le matériau interdit "{actual}" est attribué',partOfMissing:"L'élément n'est pas {relation} un(e) {entity}",partOfMissingSimple:"L'élément n'est pas {relation} un autre élément",partOfEntityMismatch:"L'élément parent est {actual}, attendu {expected}",partOfPredefinedMismatch:`Le type prédéfini de l'élément parent est "{actual}", attendu {expected}`,partOfProhibited:"L'élément est {relation} {actual}, ce qui est interdit",prohibited:'{field} interdit trouvé : "{actual}"',unknown:"Validation échouée : {reason}"},summary:{title:"Rapport de validation IDS",specifications:"{passed}/{total} spécifications conformes",entities:"{passed}/{total} éléments conformes ({percent}%)",overallPass:"Le modèle respecte toutes les exigences",overallFail:"Le modèle a {count} spécifications non conformes",noApplicable:"Aucun élément applicable trouvé"},ui:{specification:"Spécification",specifications:"Spécifications",requirement:"Exigence",requirements:"Exigences",applicability:"S'applique à",entity:"Élément",entities:"Éléments",passed:"Conforme",failed:"Non conforme",passRate:"Taux de conformité",actualValue:"Réel",expectedValue:"Attendu",failureReason:"Raison",showAll:"Afficher tout",showFailed:"Afficher non conformes",isolateFailed:"Isoler non conformes",isolatePassed:"Isoler conformes",exportJson:"Exporter JSON",exportBcf:"Exporter BCF",loadIds:"Charger fichier IDS",runValidation:"Lancer la validation",clearResults:"Effacer les résultats"}},V={en:Ae,de:Pe,fr:Ne};function Oe(t="en"){return new Ce(t)}class Ce{locale;translations;constructor(e){this.locale=e,this.translations=V[e]||V.en}t(e,a){const i=e.split(".");let n=this.translations;for(const s of i)if(n&&typeof n=="object"&&s in n)n=n[s];else return e;return typeof n!="string"?e:a?this.interpolate(n,a):n}interpolate(e,a){return e.replace(/\{(\w+)\}/g,(i,n)=>n in a?String(a[n]):i)}describeFacet(e,a){switch(this.translations,e.type){case"entity":return this.describeEntityFacet(e,a);case"attribute":return this.describeAttributeFacet(e,a);case"property":return this.describePropertyFacet(e,a);case"classification":return this.describeClassificationFacet(e,a);case"material":return this.describeMaterialFacet(e,a);case"partOf":return this.describePartOfFacet(e,a);default:return"Unknown facet"}}describeEntityFacet(e,a){const i=this.translations,n=this.describeConstraint(e.name);return a==="applicability"?e.predefinedType?this.interpolate(i.applicability.entity.withPredefined,{entityType:n,predefinedType:this.describeConstraint(e.predefinedType)}):this.interpolate(i.applicability.entity.simple,{entityType:n}):e.predefinedType?this.interpolate(i.requirements.entity.mustBeWithPredefined,{entityType:n,predefinedType:this.describeConstraint(e.predefinedType)}):this.interpolate(i.requirements.entity.mustBe,{entityType:n})}describeAttributeFacet(e,a){const i=this.translations,n=this.describeConstraint(e.name);return a==="applicability"?e.value?e.value.type==="pattern"?this.interpolate(i.applicability.attribute.pattern,{name:n,pattern:this.describeConstraint(e.value)}):this.interpolate(i.applicability.attribute.equals,{name:n,value:this.describeConstraint(e.value)}):this.interpolate(i.applicability.attribute.exists,{name:n}):e.value?e.value.type==="pattern"?this.interpolate(i.requirements.attribute.mustMatch,{name:n,pattern:this.describeConstraint(e.value)}):this.interpolate(i.requirements.attribute.mustEqual,{name:n,value:this.describeConstraint(e.value)}):this.interpolate(i.requirements.attribute.mustExist,{name:n})}describePropertyFacet(e,a){const i=this.translations,n=this.describeConstraint(e.propertySet),s=this.describeConstraint(e.baseName);return a==="applicability"?e.value?e.value.type==="pattern"?this.interpolate(i.applicability.property.pattern,{pset:n,property:s,pattern:this.describeConstraint(e.value)}):e.value.type==="bounds"?this.interpolate(i.applicability.property.bounded,{pset:n,property:s,bounds:this.describeConstraint(e.value)}):this.interpolate(i.applicability.property.equals,{pset:n,property:s,value:this.describeConstraint(e.value)}):this.interpolate(i.applicability.property.exists,{pset:n,property:s}):e.value?e.value.type==="pattern"?this.interpolate(i.requirements.property.mustMatch,{pset:n,property:s,pattern:this.describeConstraint(e.value)}):e.value.type==="bounds"?this.interpolate(i.requirements.property.mustBeBounded,{pset:n,property:s,bounds:this.describeConstraint(e.value)}):this.interpolate(i.requirements.property.mustEqual,{pset:n,property:s,value:this.describeConstraint(e.value)}):this.interpolate(i.requirements.property.mustExist,{pset:n,property:s})}describeClassificationFacet(e,a){const i=this.translations;return a==="applicability"?e.system&&e.value?this.interpolate(i.applicability.classification.systemAndValue,{system:this.describeConstraint(e.system),value:this.describeConstraint(e.value)}):e.system?this.interpolate(i.applicability.classification.system,{system:this.describeConstraint(e.system)}):e.value?this.interpolate(i.applicability.classification.value,{value:this.describeConstraint(e.value)}):i.applicability.classification.any:e.system&&e.value?this.interpolate(i.requirements.classification.mustBeInSystemWithValue,{system:this.describeConstraint(e.system),value:this.describeConstraint(e.value)}):e.system?this.interpolate(i.requirements.classification.mustBeInSystem,{system:this.describeConstraint(e.system)}):e.value?this.interpolate(i.requirements.classification.mustHaveValue,{value:this.describeConstraint(e.value)}):i.requirements.classification.mustHave}describeMaterialFacet(e,a){const i=this.translations;return a==="applicability"?e.value?e.value.type==="pattern"?this.interpolate(i.applicability.material.pattern,{pattern:this.describeConstraint(e.value)}):this.interpolate(i.applicability.material.value,{value:this.describeConstraint(e.value)}):i.applicability.material.any:e.value?e.value.type==="pattern"?this.interpolate(i.requirements.material.mustMatch,{pattern:this.describeConstraint(e.value)}):this.interpolate(i.requirements.material.mustBe,{value:this.describeConstraint(e.value)}):i.requirements.material.mustHave}describePartOfFacet(e,a){const i=this.translations,n=this.getRelationDescription(e.relation);return a==="applicability"?e.entity?e.entity.predefinedType?this.interpolate(i.applicability.partOf.withEntityAndType,{relation:n,entity:this.describeConstraint(e.entity.name),predefinedType:this.describeConstraint(e.entity.predefinedType)}):this.interpolate(i.applicability.partOf.withEntity,{relation:n,entity:this.describeConstraint(e.entity.name)}):this.interpolate(i.applicability.partOf.simple,{relation:n}):e.entity?this.interpolate(i.requirements.partOf.mustBe,{relation:n,entity:this.describeConstraint(e.entity.name)}):this.interpolate(i.requirements.partOf.mustBeSimple,{relation:n})}describeConstraint(e){const a=this.translations;switch(e.type){case"simpleValue":return this.interpolate(a.constraints.simpleValue,{value:e.value});case"pattern":return this.interpolate(a.constraints.pattern,{pattern:e.pattern});case"enumeration":return e.values.length===1?this.interpolate(a.constraints.enumeration.single,{value:e.values[0]}):this.interpolate(a.constraints.enumeration.multiple,{values:e.values.map(i=>`"${i}"`).join(", ")});case"bounds":return this.describeBounds(e);default:return"unknown constraint"}}describeBounds(e){const a=this.translations.constraints.bounds;return e.minInclusive!==void 0&&e.maxInclusive!==void 0?this.interpolate(a.between,{min:e.minInclusive,max:e.maxInclusive}):e.minInclusive!==void 0?this.interpolate(a.atLeast,{min:e.minInclusive}):e.maxInclusive!==void 0?this.interpolate(a.atMost,{max:e.maxInclusive}):e.minExclusive!==void 0?this.interpolate(a.greaterThan,{min:e.minExclusive}):e.maxExclusive!==void 0?this.interpolate(a.lessThan,{max:e.maxExclusive}):"any value"}describeFailure(e){const a=this.translations.failures;if(!e.failure)return e.actualValue&&e.expectedValue?`${e.actualValue} ≠ ${e.expectedValue}`:a.unknown.replace("{reason}","no details");const{type:i,field:n,actual:s,expected:r,context:u}=e.failure;switch(i){case"ENTITY_TYPE_MISMATCH":return this.interpolate(a.entityTypeMismatch,{actual:s||"?",expected:r||"?"});case"PREDEFINED_TYPE_MISMATCH":return this.interpolate(a.predefinedTypeMismatch,{actual:s||"?",expected:r||"?"});case"PREDEFINED_TYPE_MISSING":return this.interpolate(a.predefinedTypeMissing,{expected:r||"?"});case"ATTRIBUTE_MISSING":return this.interpolate(a.attributeMissing,{name:n||"?"});case"ATTRIBUTE_VALUE_MISMATCH":return this.interpolate(a.attributeValueMismatch,{name:n||"?",actual:s||"?",expected:r||"?"});case"ATTRIBUTE_PATTERN_MISMATCH":return this.interpolate(a.attributePatternMismatch,{name:n||"?",actual:s||"?",expected:r||"?"});case"PSET_MISSING":return u?.availablePsets?this.interpolate(a.psetMissingAvailable,{pset:n||r||"?",available:u.availablePsets}):this.interpolate(a.psetMissing,{pset:n||r||"?"});case"PROPERTY_MISSING":return u?.availableProperties?this.interpolate(a.propertyMissingAvailable,{property:n||"?",pset:u.propertySet||"?",available:u.availableProperties}):this.interpolate(a.propertyMissing,{property:n||"?",pset:u?.propertySet||"?"});case"PROPERTY_VALUE_MISMATCH":return this.interpolate(a.propertyValueMismatch,{pset:this.extractPsetFromField(n),property:this.extractPropertyFromField(n),actual:s||"?",expected:r||"?"});case"PROPERTY_DATATYPE_MISMATCH":return this.interpolate(a.propertyDatatypeMismatch,{pset:this.extractPsetFromField(n),property:this.extractPropertyFromField(n),actual:s||"?",expected:r||"?"});case"PROPERTY_OUT_OF_BOUNDS":return this.interpolate(a.propertyOutOfBounds,{pset:this.extractPsetFromField(n),property:this.extractPropertyFromField(n),actual:s||"?",expected:r||"?"});case"CLASSIFICATION_MISSING":return a.classificationMissing;case"CLASSIFICATION_SYSTEM_MISMATCH":return u?.availableSystems?this.interpolate(a.classificationSystemMissingAvailable,{expected:r||"?",available:u.availableSystems}):this.interpolate(a.classificationSystemMismatch,{actual:s||"?",expected:r||"?"});case"CLASSIFICATION_VALUE_MISMATCH":return u?.availableValues?this.interpolate(a.classificationValueMissingAvailable,{expected:r||"?",available:u.availableValues}):this.interpolate(a.classificationValueMismatch,{actual:s||"?",expected:r||"?"});case"MATERIAL_MISSING":return a.materialMissing;case"MATERIAL_VALUE_MISMATCH":return u?.availableMaterials?this.interpolate(a.materialValueMissingAvailable,{expected:r||"?",available:u.availableMaterials}):this.interpolate(a.materialValueMismatch,{actual:s||"?",expected:r||"?"});case"PARTOF_RELATION_MISSING":return u?.entity?this.interpolate(a.partOfMissing,{relation:this.getRelationDescription(n||"IfcRelContainedInSpatialStructure"),entity:u.entity}):this.interpolate(a.partOfMissingSimple,{relation:this.getRelationDescription(n||"IfcRelContainedInSpatialStructure")});case"PARTOF_ENTITY_MISMATCH":return this.interpolate(a.partOfEntityMismatch,{actual:s||"?",expected:r||"?"});case"PROHIBITED_ATTRIBUTE_EXISTS":case"PROHIBITED_PROPERTY_EXISTS":case"PROHIBITED_CLASSIFICATION_EXISTS":case"PROHIBITED_MATERIAL_EXISTS":return this.interpolate(a.prohibited,{field:n||"value",actual:s||"?"});default:return this.interpolate(a.unknown,{reason:i})}}extractPsetFromField(e){if(!e)return"?";const a=e.split(".");return a.length>1?a[0]:"?"}extractPropertyFromField(e){if(!e)return"?";const a=e.split(".");return a.length>1?a.slice(1).join("."):e}describeRequirement(e){let a=this.describeFacet(e.facet,"requirement");return e.optionality==="prohibited"?a=this.applyProhibited(a):e.optionality==="optional"&&(a=this.applyOptional(a)),a}applyProhibited(e){return e.replace(/^Must be/i,"Must NOT be").replace(/^Must have/i,"Must NOT have").replace(/^Muss/i,"Darf nicht").replace(/^Doit être/i,"Ne doit pas être").replace(/^Doit avoir/i,"Ne doit pas avoir")}applyOptional(e){return e.replace(/^Must/i,"Should").replace(/^Muss/i,"Sollte").replace(/^Doit/i,"Devrait")}getStatusText(e){return this.translations.status[e]}getOptionalityText(e){return this.translations.optionality[e]}getRelationDescription(e){return this.translations.relations[e]||e.replace("IfcRel","").toLowerCase()}}export{Oe as c,Ve as p,Re as v};
|
|
Binary file
|