@roomle/web-sdk 2.56.0 → 2.57.0-alpha.2
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/lib/{banana-for-scale-fb0db2c4.js → banana-for-scale-82492a1a.js} +2 -2
- package/lib/{banana-for-scale-fb0db2c4.js.map → banana-for-scale-82492a1a.js.map} +1 -1
- package/lib/{banana-for-scale-656cdf77.nomodule.js → banana-for-scale-d9411bac.nomodule.js} +2 -2
- package/lib/{banana-for-scale-656cdf77.nomodule.js.map → banana-for-scale-d9411bac.nomodule.js.map} +1 -1
- package/lib/{component-dimensioning-3d830885.js → component-dimensioning-573c49db.js} +2 -2
- package/lib/component-dimensioning-573c49db.js.map +1 -0
- package/lib/{component-dimensioning-7e255072.nomodule.js → component-dimensioning-ec304816.nomodule.js} +2 -2
- package/lib/component-dimensioning-ec304816.nomodule.js.map +1 -0
- package/lib/{component-raycast-helper-05d00c29.nomodule.js → component-raycast-helper-27229c25.nomodule.js} +2 -2
- package/lib/component-raycast-helper-27229c25.nomodule.js.map +1 -0
- package/lib/{component-raycast-helper-f325e5a5.js → component-raycast-helper-fd92f658.js} +2 -2
- package/lib/component-raycast-helper-fd92f658.js.map +1 -0
- package/lib/{configurator-2017a176.nomodule.js → configurator-46c36e94.nomodule.js} +2 -2
- package/lib/configurator-46c36e94.nomodule.js.map +1 -0
- package/lib/{configurator-cc79f2b3.js → configurator-54ecbe28.js} +2 -2
- package/lib/configurator-54ecbe28.js.map +1 -0
- package/lib/configurator-main-c628763f.js +2 -0
- package/lib/configurator-main-c628763f.js.map +1 -0
- package/lib/configurator-main.nomodule.js +1 -1
- package/lib/{continuous-drawing-helper-1eb82082.nomodule.js → continuous-drawing-helper-29ec14b3.nomodule.js} +2 -2
- package/lib/continuous-drawing-helper-29ec14b3.nomodule.js.map +1 -0
- package/lib/{continuous-drawing-helper-148a0bca.js → continuous-drawing-helper-36ebd837.js} +2 -2
- package/lib/continuous-drawing-helper-36ebd837.js.map +1 -0
- package/lib/{default-light-setting-c01cdfad.js → default-light-setting-097797fe.js} +2 -2
- package/lib/default-light-setting-097797fe.js.map +1 -0
- package/lib/{default-light-setting-8bee2fd7.nomodule.js → default-light-setting-d3fe2117.nomodule.js} +2 -2
- package/lib/default-light-setting-d3fe2117.nomodule.js.map +1 -0
- package/lib/definitions/common-core/src/common-configurator-kernel-callback.d.ts +3 -3
- package/lib/definitions/common-core/src/services/common-kernel-access.d.ts +3 -3
- package/lib/definitions/common-core/src/view-model/configurator-view-model.d.ts +4 -4
- package/lib/definitions/common-core/src/webgl/mesh-generator.d.ts +3 -2
- package/lib/definitions/configurator-core/src/webgl/configurator-mesh-generator.d.ts +2 -2
- package/lib/definitions/planner-core/src/services/planner-kernel-access.d.ts +2 -2
- package/lib/definitions/planner-core/src/utils/map-to-ui-plan-objects.d.ts +0 -1
- package/lib/definitions/planner-core/src/view-model/plan-view-model.d.ts +2 -2
- package/lib/definitions/planner-core/src/webgl/planner-mesh-generator.d.ts +2 -2
- package/lib/definitions/planner-core/src/webgl/planner-scene-manager.d.ts +2 -1
- package/lib/definitions/typings/planner.d.ts +5 -1
- package/lib/{dimensioning-helper-51850fcf.js → dimensioning-helper-00d628c7.js} +2 -2
- package/lib/{dimensioning-helper-51850fcf.js.map → dimensioning-helper-00d628c7.js.map} +1 -1
- package/lib/{dimensioning-helper-8661d7fb.nomodule.js → dimensioning-helper-eecd2cd5.nomodule.js} +2 -2
- package/lib/{dimensioning-helper-8661d7fb.nomodule.js.map → dimensioning-helper-eecd2cd5.nomodule.js.map} +1 -1
- package/lib/{glb-viewer-2614955b.nomodule.js → glb-viewer-549234d7.nomodule.js} +2 -2
- package/lib/{glb-viewer-2614955b.nomodule.js.map → glb-viewer-549234d7.nomodule.js.map} +1 -1
- package/lib/{glb-viewer-4609c942.js → glb-viewer-842d239e.js} +2 -2
- package/lib/{glb-viewer-4609c942.js.map → glb-viewer-842d239e.js.map} +1 -1
- package/lib/glb-viewer-main-3b8801a0.js +2 -0
- package/lib/glb-viewer-main-3b8801a0.js.map +1 -0
- package/lib/glb-viewer-main.nomodule.js +1 -1
- package/lib/legacy/{banana-for-scale-79053e5a.legacy.js → banana-for-scale-514d4ac4.legacy.js} +2 -2
- package/lib/legacy/{banana-for-scale-79053e5a.legacy.js.map → banana-for-scale-514d4ac4.legacy.js.map} +1 -1
- package/lib/legacy/{component-dimensioning-b862aa31.legacy.js → component-dimensioning-f5b3800a.legacy.js} +2 -2
- package/lib/legacy/component-dimensioning-f5b3800a.legacy.js.map +1 -0
- package/lib/legacy/{component-raycast-helper-5aa617b2.legacy.js → component-raycast-helper-488a5214.legacy.js} +2 -2
- package/lib/legacy/component-raycast-helper-488a5214.legacy.js.map +1 -0
- package/lib/legacy/{configurator-30038314.legacy.js → configurator-192112f4.legacy.js} +2 -2
- package/lib/legacy/configurator-192112f4.legacy.js.map +1 -0
- package/lib/legacy/configurator-main.legacy.js +1 -1
- package/lib/legacy/{continuous-drawing-helper-c8ca7e76.legacy.js → continuous-drawing-helper-7ebf827f.legacy.js} +2 -2
- package/lib/legacy/continuous-drawing-helper-7ebf827f.legacy.js.map +1 -0
- package/lib/legacy/{default-light-setting-ebbb309d.legacy.js → default-light-setting-e091fc6f.legacy.js} +2 -2
- package/lib/legacy/default-light-setting-e091fc6f.legacy.js.map +1 -0
- package/lib/legacy/{dimensioning-helper-d68f73a4.legacy.js → dimensioning-helper-eac8a47e.legacy.js} +2 -2
- package/lib/legacy/{dimensioning-helper-d68f73a4.legacy.js.map → dimensioning-helper-eac8a47e.legacy.js.map} +1 -1
- package/lib/legacy/{glb-viewer-47d7507a.legacy.js → glb-viewer-a74824ad.legacy.js} +2 -2
- package/lib/legacy/{glb-viewer-47d7507a.legacy.js.map → glb-viewer-a74824ad.legacy.js.map} +1 -1
- package/lib/legacy/glb-viewer-main.legacy.js +1 -1
- package/lib/legacy/{material-viewer-81ce5b8c.legacy.js → material-viewer-b376af1d.legacy.js} +2 -2
- package/lib/legacy/material-viewer-b376af1d.legacy.js.map +1 -0
- package/lib/legacy/material-viewer-main.legacy.js +1 -1
- package/lib/legacy/{pixotron-ac9d4f20.legacy.js → pixotron-68e251b1.legacy.js} +2 -2
- package/lib/legacy/{pixotron-ac9d4f20.legacy.js.map → pixotron-68e251b1.legacy.js.map} +1 -1
- package/lib/legacy/planner-e50c930d.legacy.js +2 -0
- package/lib/legacy/{planner-c811d61e.legacy.js.map → planner-e50c930d.legacy.js.map} +1 -1
- package/lib/legacy/planner-main.legacy.js +1 -1
- package/lib/legacy/roomle-configurator-8e2e3737.legacy.js +2 -0
- package/lib/legacy/{roomle-configurator-ddf0947a.legacy.js.map → roomle-configurator-8e2e3737.legacy.js.map} +1 -1
- package/lib/legacy/roomle-dependency-injection-a34d8733.legacy.js +16 -0
- package/lib/legacy/{roomle-dependency-injection-cfccae82.legacy.js.map → roomle-dependency-injection-a34d8733.legacy.js.map} +1 -1
- package/lib/legacy/roomle-sdk.legacy.js +1 -1
- package/lib/legacy/{script-loader-b1b1806e.legacy.js → script-loader-0feec16e.legacy.js} +2 -2
- package/lib/legacy/script-loader-0feec16e.legacy.js.map +1 -0
- package/lib/legacy/static/ConfiguratorKernel-b3db99d56b9f5196.wasm +0 -0
- package/lib/legacy/static/ConfiguratorKernel-d74ac1d836436ed8.js +125 -0
- package/lib/legacy/static/ConfiguratorKernelJs-131a27ea2e48bc8e.mem +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-66e23858ee842c75.js +146 -0
- package/lib/legacy/static/RoomleCore-435f2f2c0751f8ed.js +133 -0
- package/lib/legacy/static/RoomleCore-5020f57fd0b2edd5.wasm +0 -0
- package/lib/legacy/static/RoomleCoreJs-4ee873a38a54dee2.js +155 -0
- package/lib/legacy/static/RoomleCoreJs-e9e828afe3e9d239.mem +0 -0
- package/lib/legacy/static/RoomleToolsCore-305c91454f11d873.wasm +0 -0
- package/lib/legacy/static/RoomleToolsCore-f6a3d0c5b5ecc883.js +124 -0
- package/lib/{static/shaders-3946b7d16c8811e8.json → legacy/static/shaders-6d8e1af7075b0140.json} +1 -1
- package/lib/legacy/{stats-helper-3ee86b75.legacy.js → stats-helper-eec21c6a.legacy.js} +2 -2
- package/lib/legacy/{stats-helper-3ee86b75.legacy.js.map → stats-helper-eec21c6a.legacy.js.map} +1 -1
- package/lib/legacy/{tools-core-2f52ecac.legacy.js → tools-core-a39c1190.legacy.js} +2 -2
- package/lib/legacy/tools-core-a39c1190.legacy.js.map +1 -0
- package/lib/{material-viewer-7ce8f9ce.js → material-viewer-ac4f3d68.js} +2 -2
- package/lib/material-viewer-ac4f3d68.js.map +1 -0
- package/lib/{material-viewer-ea4491d4.nomodule.js → material-viewer-b9ebe7f8.nomodule.js} +2 -2
- package/lib/material-viewer-b9ebe7f8.nomodule.js.map +1 -0
- package/lib/material-viewer-main-d8defd4a.js +2 -0
- package/lib/material-viewer-main-d8defd4a.js.map +1 -0
- package/lib/material-viewer-main.nomodule.js +1 -1
- package/lib/{pixotron-34491bb2.js → pixotron-094b7db0.js} +2 -2
- package/lib/{pixotron-34491bb2.js.map → pixotron-094b7db0.js.map} +1 -1
- package/lib/{pixotron-80b8ac67.nomodule.js → pixotron-9bceadc1.nomodule.js} +2 -2
- package/lib/{pixotron-80b8ac67.nomodule.js.map → pixotron-9bceadc1.nomodule.js.map} +1 -1
- package/lib/planner-0bcb8179.nomodule.js +2 -0
- package/lib/{planner-adf58473.nomodule.js.map → planner-0bcb8179.nomodule.js.map} +1 -1
- package/lib/planner-3796f973.js +2 -0
- package/lib/{planner-3bc56225.js.map → planner-3796f973.js.map} +1 -1
- package/lib/planner-main-1669019f.js +2 -0
- package/lib/planner-main-1669019f.js.map +1 -0
- package/lib/planner-main.nomodule.js +1 -1
- package/lib/roomle-configurator-2f9cfd2e.nomodule.js +2 -0
- package/lib/{roomle-configurator-21d739fd.nomodule.js.map → roomle-configurator-2f9cfd2e.nomodule.js.map} +1 -1
- package/lib/roomle-configurator-5f35b9cb.js +2 -0
- package/lib/{roomle-configurator-4bcfd804.js.map → roomle-configurator-5f35b9cb.js.map} +1 -1
- package/lib/roomle-dependency-injection-359a49a3.js +16 -0
- package/lib/{roomle-dependency-injection-d1ff95c3.js.map → roomle-dependency-injection-359a49a3.js.map} +1 -1
- package/lib/roomle-dependency-injection-7ebbd1ee.nomodule.js +16 -0
- package/lib/{roomle-dependency-injection-b7344f4d.nomodule.js.map → roomle-dependency-injection-7ebbd1ee.nomodule.js.map} +1 -1
- package/lib/{roomle-sdk-5ad0992a.js → roomle-sdk-420f403b.js} +2 -2
- package/lib/roomle-sdk-420f403b.js.map +1 -0
- package/lib/roomle-sdk.nomodule.js +1 -1
- package/lib/{script-loader-4f4e6a69.nomodule.js → script-loader-61ffac4f.nomodule.js} +2 -2
- package/lib/script-loader-61ffac4f.nomodule.js.map +1 -0
- package/lib/{script-loader-fec0a799.js → script-loader-7f7bafcf.js} +2 -2
- package/lib/script-loader-7f7bafcf.js.map +1 -0
- package/lib/static/ConfiguratorKernel-b3db99d56b9f5196.wasm +0 -0
- package/lib/static/ConfiguratorKernel-d74ac1d836436ed8.js +1 -0
- package/lib/static/ConfiguratorKernel-d74ac1d836436ed8.js.map +1 -0
- package/lib/static/ConfiguratorKernelJs-131a27ea2e48bc8e.mem +0 -0
- package/lib/static/ConfiguratorKernelJs-66e23858ee842c75.js +146 -0
- package/lib/static/RoomleCore-435f2f2c0751f8ed.js +1 -0
- package/lib/static/RoomleCore-435f2f2c0751f8ed.js.map +1 -0
- package/lib/static/RoomleCore-5020f57fd0b2edd5.wasm +0 -0
- package/lib/static/RoomleCoreJs-4ee873a38a54dee2.js +155 -0
- package/lib/static/RoomleCoreJs-e9e828afe3e9d239.mem +0 -0
- package/lib/static/RoomleToolsCore-305c91454f11d873.wasm +0 -0
- package/lib/static/RoomleToolsCore-f6a3d0c5b5ecc883.js +1 -0
- package/lib/static/RoomleToolsCore-f6a3d0c5b5ecc883.js.map +1 -0
- package/lib/{legacy/static/shaders-3946b7d16c8811e8.json → static/shaders-6d8e1af7075b0140.json} +1 -1
- package/lib/{stats-helper-04c491cc.js → stats-helper-4cb4ada8.js} +2 -2
- package/lib/{stats-helper-04c491cc.js.map → stats-helper-4cb4ada8.js.map} +1 -1
- package/lib/{stats-helper-1b214f00.nomodule.js → stats-helper-ea6e1735.nomodule.js} +2 -2
- package/lib/{stats-helper-1b214f00.nomodule.js.map → stats-helper-ea6e1735.nomodule.js.map} +1 -1
- package/lib/{tools-core-49182364.nomodule.js → tools-core-76a00080.nomodule.js} +2 -2
- package/lib/tools-core-76a00080.nomodule.js.map +1 -0
- package/lib/{tools-core-aec4b918.js → tools-core-de523e03.js} +2 -2
- package/lib/tools-core-de523e03.js.map +1 -0
- package/package.json +2 -2
- package/lib/component-dimensioning-3d830885.js.map +0 -1
- package/lib/component-dimensioning-7e255072.nomodule.js.map +0 -1
- package/lib/component-raycast-helper-05d00c29.nomodule.js.map +0 -1
- package/lib/component-raycast-helper-f325e5a5.js.map +0 -1
- package/lib/configurator-2017a176.nomodule.js.map +0 -1
- package/lib/configurator-cc79f2b3.js.map +0 -1
- package/lib/configurator-main-78726f68.js +0 -2
- package/lib/configurator-main-78726f68.js.map +0 -1
- package/lib/continuous-drawing-helper-148a0bca.js.map +0 -1
- package/lib/continuous-drawing-helper-1eb82082.nomodule.js.map +0 -1
- package/lib/default-light-setting-8bee2fd7.nomodule.js.map +0 -1
- package/lib/default-light-setting-c01cdfad.js.map +0 -1
- package/lib/glb-viewer-main-edcffb8b.js +0 -2
- package/lib/glb-viewer-main-edcffb8b.js.map +0 -1
- package/lib/legacy/component-dimensioning-b862aa31.legacy.js.map +0 -1
- package/lib/legacy/component-raycast-helper-5aa617b2.legacy.js.map +0 -1
- package/lib/legacy/configurator-30038314.legacy.js.map +0 -1
- package/lib/legacy/continuous-drawing-helper-c8ca7e76.legacy.js.map +0 -1
- package/lib/legacy/default-light-setting-ebbb309d.legacy.js.map +0 -1
- package/lib/legacy/material-viewer-81ce5b8c.legacy.js.map +0 -1
- package/lib/legacy/planner-c811d61e.legacy.js +0 -2
- package/lib/legacy/roomle-configurator-ddf0947a.legacy.js +0 -2
- package/lib/legacy/roomle-dependency-injection-cfccae82.legacy.js +0 -16
- package/lib/legacy/script-loader-b1b1806e.legacy.js.map +0 -1
- package/lib/legacy/static/ConfiguratorKernel-4052cd94154151ce.js +0 -121
- package/lib/legacy/static/ConfiguratorKernel-de7a752baf6b6e3c.wasm +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-0135a90b5543293c.mem +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-c97ca0c57cd86e89.js +0 -143
- package/lib/legacy/static/RoomleCore-0407bbae1ea46633.js +0 -131
- package/lib/legacy/static/RoomleCore-d5f4d5d1b270e20c.wasm +0 -0
- package/lib/legacy/static/RoomleCoreJs-01106a3ae409b5a5.js +0 -153
- package/lib/legacy/static/RoomleCoreJs-4bc1a831d31e5cc2.mem +0 -0
- package/lib/legacy/static/RoomleToolsCore-2aa41b7a9ffdcb27.wasm +0 -0
- package/lib/legacy/static/RoomleToolsCore-e3f8164586ea09eb.js +0 -122
- package/lib/legacy/tools-core-2f52ecac.legacy.js.map +0 -1
- package/lib/material-viewer-7ce8f9ce.js.map +0 -1
- package/lib/material-viewer-ea4491d4.nomodule.js.map +0 -1
- package/lib/material-viewer-main-d3cfe386.js +0 -2
- package/lib/material-viewer-main-d3cfe386.js.map +0 -1
- package/lib/planner-3bc56225.js +0 -2
- package/lib/planner-adf58473.nomodule.js +0 -2
- package/lib/planner-main-477cdce0.js +0 -2
- package/lib/planner-main-477cdce0.js.map +0 -1
- package/lib/roomle-configurator-21d739fd.nomodule.js +0 -2
- package/lib/roomle-configurator-4bcfd804.js +0 -2
- package/lib/roomle-dependency-injection-b7344f4d.nomodule.js +0 -16
- package/lib/roomle-dependency-injection-d1ff95c3.js +0 -16
- package/lib/roomle-sdk-5ad0992a.js.map +0 -1
- package/lib/script-loader-4f4e6a69.nomodule.js.map +0 -1
- package/lib/script-loader-fec0a799.js.map +0 -1
- package/lib/static/ConfiguratorKernel-4052cd94154151ce.js +0 -1
- package/lib/static/ConfiguratorKernel-4052cd94154151ce.js.map +0 -1
- package/lib/static/ConfiguratorKernel-de7a752baf6b6e3c.wasm +0 -0
- package/lib/static/ConfiguratorKernelJs-0135a90b5543293c.mem +0 -0
- package/lib/static/ConfiguratorKernelJs-c97ca0c57cd86e89.js +0 -143
- package/lib/static/RoomleCore-0407bbae1ea46633.js +0 -1
- package/lib/static/RoomleCore-0407bbae1ea46633.js.map +0 -1
- package/lib/static/RoomleCore-d5f4d5d1b270e20c.wasm +0 -0
- package/lib/static/RoomleCoreJs-01106a3ae409b5a5.js +0 -153
- package/lib/static/RoomleCoreJs-4bc1a831d31e5cc2.mem +0 -0
- package/lib/static/RoomleToolsCore-2aa41b7a9ffdcb27.wasm +0 -0
- package/lib/static/RoomleToolsCore-e3f8164586ea09eb.js +0 -1
- package/lib/static/RoomleToolsCore-e3f8164586ea09eb.js.map +0 -1
- package/lib/tools-core-49182364.nomodule.js.map +0 -1
- package/lib/tools-core-aec4b918.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
var RoomleToolsCore = (() => {
|
|
3
|
-
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
|
|
4
|
-
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
|
|
5
|
-
return (
|
|
6
|
-
function(RoomleToolsCore) {
|
|
7
|
-
RoomleToolsCore = RoomleToolsCore || {};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var k;k||(k=typeof RoomleToolsCore !== 'undefined' ? RoomleToolsCore : {});var aa,ba;k.ready=new Promise(function(a,b){aa=a;ba=b});var ca=Object.assign({},k),da="./this.program",ea=(a,b)=>{throw b;},fa="object"==typeof window,ha="function"==typeof importScripts,q="",ia,ja,ka,fs,la,ma;
|
|
11
|
-
if("object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node)q=ha?require("path").dirname(q)+"/":__dirname+"/",ma=()=>{la||(fs=require("fs"),la=require("path"))},ia=function(a,b){ma();a=la.normalize(a);return fs.readFileSync(a,b?void 0:"utf8")},ka=a=>{a=ia(a,!0);a.buffer||(a=new Uint8Array(a));return a},ja=(a,b,c)=>{ma();a=la.normalize(a);fs.readFile(a,function(d,e){d?c(d):b(e.buffer)})},1<process.argv.length&&(da=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),
|
|
12
|
-
process.on("uncaughtException",function(a){if(!(a instanceof na))throw a;}),process.on("unhandledRejection",function(a){throw a;}),ea=(a,b)=>{if(noExitRuntime||0<oa)throw process.exitCode=a,b;b instanceof na||r("exiting due to exception: "+b);process.exit(a)},k.inspect=function(){return"[Emscripten Module object]"};else if(fa||ha)ha?q=self.location.href:"undefined"!=typeof document&&document.currentScript&&(q=document.currentScript.src),_scriptDir&&(q=_scriptDir),0!==q.indexOf("blob:")?q=q.substr(0,
|
|
13
|
-
q.replace(/[?#].*/,"").lastIndexOf("/")+1):q="",ia=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},ha&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ja=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};
|
|
14
|
-
var pa=k.print||console.log.bind(console),r=k.printErr||console.warn.bind(console);Object.assign(k,ca);ca=null;k.thisProgram&&(da=k.thisProgram);k.quit&&(ea=k.quit);var t=0,qa;k.wasmBinary&&(qa=k.wasmBinary);var noExitRuntime=k.noExitRuntime||!0;"object"!=typeof WebAssembly&&ra("no native wasm support detected");var sa,ta=!1,ua="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;
|
|
15
|
-
function va(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.subarray&&ua)return ua.decode(a.subarray(b,c));for(d="";b<c;){var e=a[b++];if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var h=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|h:(e&7)<<18|f<<12|h<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}
|
|
16
|
-
function wa(a,b,c,d){if(0<d){d=c+d-1;for(var e=0;e<a.length;++e){var f=a.charCodeAt(e);if(55296<=f&&57343>=f){var h=a.charCodeAt(++e);f=65536+((f&1023)<<10)|h&1023}if(127>=f){if(c>=d)break;b[c++]=f}else{if(2047>=f){if(c+1>=d)break;b[c++]=192|f>>6}else{if(65535>=f){if(c+2>=d)break;b[c++]=224|f>>12}else{if(c+3>=d)break;b[c++]=240|f>>18;b[c++]=128|f>>12&63}b[c++]=128|f>>6&63}b[c++]=128|f&63}}b[c]=0}}
|
|
17
|
-
function xa(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}var ya="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function za(a,b){var c=a>>1;for(var d=c+b/2;!(c>=d)&&Aa[c];)++c;c<<=1;if(32<c-a&&ya)return ya.decode(u.subarray(a,c));c="";for(d=0;!(d>=b/2);++d){var e=y[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}
|
|
18
|
-
function Ba(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)y[b>>1]=a.charCodeAt(e),b+=2;y[b>>1]=0;return b-d}function Ca(a){return 2*a.length}function Da(a,b){for(var c=0,d="";!(c>=b/4);){var e=A[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}
|
|
19
|
-
function Ea(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.charCodeAt(e);if(55296<=f&&57343>=f){var h=a.charCodeAt(++e);f=65536+((f&1023)<<10)|h&1023}A[b>>2]=f;b+=4;if(b+4>c)break}A[b>>2]=0;return b-d}function Fa(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}var Ga,B,u,y,Aa,A,D,Ha,Ia;
|
|
20
|
-
function Ja(){var a=sa.buffer;Ga=a;k.HEAP8=B=new Int8Array(a);k.HEAP16=y=new Int16Array(a);k.HEAP32=A=new Int32Array(a);k.HEAPU8=u=new Uint8Array(a);k.HEAPU16=Aa=new Uint16Array(a);k.HEAPU32=D=new Uint32Array(a);k.HEAPF32=Ha=new Float32Array(a);k.HEAPF64=Ia=new Float64Array(a)}var Ka,La=[],Ma=[],Na=[],Oa=[],oa=0;function Pa(){var a=k.preRun.shift();La.unshift(a)}var E=0,Qa=null,Ra=null;k.preloadedImages={};k.preloadedAudios={};
|
|
21
|
-
function ra(a){if(k.onAbort)k.onAbort(a);a="Aborted("+a+")";r(a);ta=!0;a=new WebAssembly.RuntimeError(a+". Build with -s ASSERTIONS=1 for more info.");ba(a);throw a;}function Sa(){return F.startsWith("data:application/octet-stream;base64,")}var F;F="RoomleToolsCore.wasm";if(!Sa()){var Ta=F;F=k.locateFile?k.locateFile(Ta,q):q+Ta}function Ua(){var a=F;try{if(a==F&&qa)return new Uint8Array(qa);if(ka)return ka(a);throw"both async and sync fetching of the wasm failed";}catch(b){ra(b)}}
|
|
22
|
-
function Va(){if(!qa&&(fa||ha)){if("function"==typeof fetch&&!F.startsWith("file://"))return fetch(F,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+F+"'";return a.arrayBuffer()}).catch(function(){return Ua()});if(ja)return new Promise(function(a,b){ja(F,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return Ua()})}
|
|
23
|
-
function Wa(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(k);else{var c=b.ad;"number"==typeof c?void 0===b.qc?G(c)():G(c)(b.qc):c(void 0===b.qc?null:b.qc)}}}function G(a){return Ka.get(a)}
|
|
24
|
-
function H(a){this.xc=a;this.Kb=a-16;this.oc=function(b){A[this.Kb+4>>2]=b};this.dc=function(){return A[this.Kb+4>>2]};this.Vb=function(b){A[this.Kb+8>>2]=b};this.Ic=function(){return A[this.Kb+8>>2]};this.Xb=function(){A[this.Kb>>2]=0};this.vc=function(b){B[this.Kb+12>>0]=b?1:0};this.Hc=function(){return 0!=B[this.Kb+12>>0]};this.kc=function(b){B[this.Kb+13>>0]=b?1:0};this.zc=function(){return 0!=B[this.Kb+13>>0]};this.Ub=function(b,c){this.oc(b);this.Vb(c);this.Xb();this.vc(!1);this.kc(!1)};this.pc=
|
|
25
|
-
function(){A[this.Kb>>2]+=1};this.Rc=function(){var b=A[this.Kb>>2];A[this.Kb>>2]=b-1;return 1===b}}
|
|
26
|
-
function Xa(a){this.rc=function(){I(this.Kb);this.Kb=0};this.Vb=function(b){A[this.Kb>>2]=b};this.$b=function(){return A[this.Kb>>2]};this.Ub=function(b){A[this.Kb+4>>2]=b};this.Xb=function(){return this.Kb+4};this.oc=function(){return A[this.Kb+4>>2]};this.Bc=function(){if(Ya(this.ac().dc()))return A[this.$b()>>2];var b=this.oc();return 0!==b?b:this.$b()};this.ac=function(){return new H(this.$b())};void 0===a?(this.Kb=Za(8),this.Ub(0)):this.Kb=a}var K=[],$a=0;
|
|
27
|
-
function ab(a){return I((new H(a)).Kb)}function bb(a){if(a.Rc()&&!a.zc()){var b=a.Ic();b&&G(b)(a.xc);ab(a.xc)}}var L=0;function cb(){var a=K.pop();a||ra("no exception to throw");var b=a.ac(),c=a.$b();b.zc()?a.rc():(K.push(a),b.kc(!0),b.vc(!1),$a++);L=c;throw c;}var db={};function eb(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function fb(a){return this.fromWireType(D[a>>2])}var gb={},hb={},ib={};
|
|
28
|
-
function jb(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function kb(a,b){a=jb(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}
|
|
29
|
-
function lb(a){var b=Error,c=kb(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var mb=void 0;function nb(a){throw new mb(a);}
|
|
30
|
-
function M(a,b,c){function d(g){g=c(g);g.length!==a.length&&nb("Mismatched type converter count");for(var m=0;m<a.length;++m)N(a[m],g[m])}a.forEach(function(g){ib[g]=b});var e=Array(b.length),f=[],h=0;b.forEach(function(g,m){hb.hasOwnProperty(g)?e[m]=hb[g]:(f.push(g),gb.hasOwnProperty(g)||(gb[g]=[]),gb[g].push(function(){e[m]=hb[g];++h;h===f.length&&d(e)}))});0===f.length&&d(e)}
|
|
31
|
-
function ob(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var pb=void 0;function O(a){for(var b="";u[a];)b+=pb[u[a++]];return b}var qb=void 0;function P(a){throw new qb(a);}
|
|
32
|
-
function N(a,b,c={}){if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||P('type "'+d+'" must have a positive integer typeid pointer');if(hb.hasOwnProperty(a)){if(c.Mc)return;P("Cannot register type '"+d+"' twice")}hb[a]=b;delete ib[a];gb.hasOwnProperty(a)&&(b=gb[a],delete gb[a],b.forEach(function(e){e()}))}function rb(a){P(a.Jb.Mb.Lb.name+" instance already deleted")}var sb=!1;function tb(){}
|
|
33
|
-
function ub(a){--a.count.value;0===a.count.value&&(a.Ob?a.Rb.Tb(a.Ob):a.Mb.Lb.Tb(a.Kb))}function vb(a,b,c){if(b===c)return a;if(void 0===c.Sb)return null;a=vb(a,b,c.Sb);return null===a?null:c.Dc(a)}var wb={},xb=[];function yb(){for(;xb.length;){var a=xb.pop();a.Jb.Zb=!1;a["delete"]()}}var zb=void 0,Ab={};function Bb(a,b){for(void 0===b&&P("ptr should not be undefined");a.Sb;)b=a.hc(b),a=a.Sb;return Ab[b]}
|
|
34
|
-
function Cb(a,b){b.Mb&&b.Kb||nb("makeClassHandle requires ptr and ptrType");!!b.Rb!==!!b.Ob&&nb("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Db(Object.create(a,{Jb:{value:b}}))}function Db(a){if("undefined"===typeof FinalizationRegistry)return Db=b=>b,a;sb=new FinalizationRegistry(b=>{ub(b.Jb)});Db=b=>{var c=b.Jb;c.Ob&&sb.register(b,{Jb:c},b);return b};tb=b=>{sb.unregister(b)};return Db(a)}function Q(){}
|
|
35
|
-
function Eb(a,b,c){if(void 0===a[b].Nb){var d=a[b];a[b]=function(){a[b].Nb.hasOwnProperty(arguments.length)||P("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].Nb+")!");return a[b].Nb[arguments.length].apply(this,arguments)};a[b].Nb=[];a[b].Nb[d.Yb]=d}}
|
|
36
|
-
function Fb(a,b,c){k.hasOwnProperty(a)?((void 0===c||void 0!==k[a].Nb&&void 0!==k[a].Nb[c])&&P("Cannot register public name '"+a+"' twice"),Eb(k,a,a),k.hasOwnProperty(c)&&P("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),k[a].Nb[c]=b):(k[a]=b,void 0!==c&&(k[a].cd=c))}function Gb(a,b,c,d,e,f,h,g){this.name=a;this.constructor=b;this.bc=c;this.Tb=d;this.Sb=e;this.Fc=f;this.hc=h;this.Dc=g;this.Pc=[]}
|
|
37
|
-
function Hb(a,b,c){for(;b!==c;)b.hc||P("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.hc(a),b=b.Sb;return a}function Ib(a,b){if(null===b)return this.sc&&P("null is not a valid "+this.name),0;b.Jb||P('Cannot pass "'+Jb(b)+'" as a '+this.name);b.Jb.Kb||P("Cannot pass deleted object as a pointer of type "+this.name);return Hb(b.Jb.Kb,b.Jb.Mb.Lb,this.Lb)}
|
|
38
|
-
function Kb(a,b){if(null===b){this.sc&&P("null is not a valid "+this.name);if(this.jc){var c=this.tc();null!==a&&a.push(this.Tb,c);return c}return 0}b.Jb||P('Cannot pass "'+Jb(b)+'" as a '+this.name);b.Jb.Kb||P("Cannot pass deleted object as a pointer of type "+this.name);!this.ic&&b.Jb.Mb.ic&&P("Cannot convert argument of type "+(b.Jb.Rb?b.Jb.Rb.name:b.Jb.Mb.name)+" to parameter type "+this.name);c=Hb(b.Jb.Kb,b.Jb.Mb.Lb,this.Lb);if(this.jc)switch(void 0===b.Jb.Ob&&P("Passing raw pointer to smart pointer is illegal"),
|
|
39
|
-
this.Vc){case 0:b.Jb.Rb===this?c=b.Jb.Ob:P("Cannot convert argument of type "+(b.Jb.Rb?b.Jb.Rb.name:b.Jb.Mb.name)+" to parameter type "+this.name);break;case 1:c=b.Jb.Ob;break;case 2:if(b.Jb.Rb===this)c=b.Jb.Ob;else{var d=b.clone();c=this.Qc(c,R(function(){d["delete"]()}));null!==a&&a.push(this.Tb,c)}break;default:P("Unsupporting sharing policy")}return c}
|
|
40
|
-
function Lb(a,b){if(null===b)return this.sc&&P("null is not a valid "+this.name),0;b.Jb||P('Cannot pass "'+Jb(b)+'" as a '+this.name);b.Jb.Kb||P("Cannot pass deleted object as a pointer of type "+this.name);b.Jb.Mb.ic&&P("Cannot convert argument of type "+b.Jb.Mb.name+" to parameter type "+this.name);return Hb(b.Jb.Kb,b.Jb.Mb.Lb,this.Lb)}
|
|
41
|
-
function S(a,b,c,d,e,f,h,g,m,n,p){this.name=a;this.Lb=b;this.sc=c;this.ic=d;this.jc=e;this.Oc=f;this.Vc=h;this.Ac=g;this.tc=m;this.Qc=n;this.Tb=p;e||void 0!==b.Sb?this.toWireType=Kb:(this.toWireType=d?Ib:Lb,this.Qb=null)}function Mb(a,b,c){k.hasOwnProperty(a)||nb("Replacing nonexistant public symbol");void 0!==k[a].Nb&&void 0!==c?k[a].Nb[c]=b:(k[a]=b,k[a].Yb=c)}
|
|
42
|
-
function Nb(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes("j")){var d=k["dynCall_"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=G(b).apply(null,c);return d}}function U(a,b){a=O(a);var c=a.includes("j")?Nb(a,b):G(b);"function"!=typeof c&&P("unknown function pointer with signature "+a+": "+b);return c}var Ob=void 0;function Pb(a){a=Qb(a);var b=O(a);I(a);return b}
|
|
43
|
-
function Rb(a,b){function c(f){e[f]||hb[f]||(ib[f]?ib[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Ob(a+": "+d.map(Pb).join([", "]));}function Sb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=kb(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
|
|
44
|
-
function Tb(a,b,c,d,e){var f=b.length;2>f&&P("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,g=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].Qb){g=!0;break}var m="void"!==b[0].name,n="",p="";for(c=0;c<f-2;++c)n+=(0!==c?", ":"")+"arg"+c,p+=(0!==c?", ":"")+"arg"+c+"Wired";a="return function "+jb(a)+"("+n+") {\nif (arguments.length !== "+(f-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+
|
|
45
|
-
(f-2)+" args!');\n}\n";g&&(a+="var destructors = [];\n");var v=g?"destructors":"null";n="throwBindingError invoker fn runDestructors retType classParam".split(" ");d=[P,d,e,eb,b[0],b[1]];h&&(a+="var thisWired = classParam.toWireType("+v+", this);\n");for(c=0;c<f-2;++c)a+="var arg"+c+"Wired = argType"+c+".toWireType("+v+", arg"+c+"); // "+b[c+2].name+"\n",n.push("argType"+c),d.push(b[c+2]);h&&(p="thisWired"+(0<p.length?", ":"")+p);a+=(m?"var rv = ":"")+"invoker(fn"+(0<p.length?", ":"")+p+");\n";if(g)a+=
|
|
46
|
-
"runDestructors(destructors);\n";else for(c=h?1:2;c<b.length;++c)f=1===c?"thisWired":"arg"+(c-2)+"Wired",null!==b[c].Qb&&(a+=f+"_dtor("+f+"); // "+b[c].name+"\n",n.push(f+"_dtor"),d.push(b[c].Qb));m&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n");n.push(a+"}\n");return Sb(n).apply(null,d)}function Ub(a,b){for(var c=[],d=0;d<a;d++)c.push(A[(b>>2)+d]);return c}var Vb=[],V=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Wb(a){4<a&&0===--V[a].uc&&(V[a]=void 0,Vb.push(a))}
|
|
47
|
-
function W(a){a||P("Cannot use deleted val. handle = "+a);return V[a].value}function R(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Vb.length?Vb.pop():V.length;V[b]={uc:1,value:a};return b}}
|
|
48
|
-
function Xb(a,b,c){switch(b){case 0:return function(d){return this.fromWireType((c?B:u)[d])};case 1:return function(d){return this.fromWireType((c?y:Aa)[d>>1])};case 2:return function(d){return this.fromWireType((c?A:D)[d>>2])};default:throw new TypeError("Unknown integer type: "+a);}}function Yb(a,b){var c=hb[a];void 0===c&&P(b+" has unknown type "+Pb(a));return c}function Jb(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}
|
|
49
|
-
function Zb(a,b){switch(b){case 2:return function(c){return this.fromWireType(Ha[c>>2])};case 3:return function(c){return this.fromWireType(Ia[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}
|
|
50
|
-
function $b(a,b,c){switch(b){case 0:return c?function(d){return B[d]}:function(d){return u[d]};case 1:return c?function(d){return y[d>>1]}:function(d){return Aa[d>>1]};case 2:return c?function(d){return A[d>>2]}:function(d){return D[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}function cc(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=Yb(A[(b>>2)+d],"parameter "+d);return c}var dc={};function ec(a){var b=dc[a];return void 0===b?O(a):b}var fc=[];
|
|
51
|
-
function gc(){return"object"==typeof globalThis?globalThis:Function("return this")()}function hc(a){var b=fc.length;fc.push(a);return b}var ic=[],jc={};function kc(){if(!lc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},b;for(b in jc)void 0===jc[b]?delete a[b]:a[b]=jc[b];var c=[];for(b in a)c.push(b+"="+a[b]);lc=c}return lc}
|
|
52
|
-
var lc,mc=[null,[],[]],nc={};function oc(a){return 0===a%4&&(0!==a%100||0===a%400)}function pc(a,b){for(var c=0,d=0;d<=b;c+=a[d++]);return c}var qc=[31,29,31,30,31,30,31,31,30,31,30,31],rc=[31,28,31,30,31,30,31,31,30,31,30,31];function sc(a,b){for(a=new Date(a.getTime());0<b;){var c=a.getMonth(),d=(oc(a.getFullYear())?qc:rc)[c];if(b>d-a.getDate())b-=d-a.getDate()+1,a.setDate(1),11>c?a.setMonth(c+1):(a.setMonth(0),a.setFullYear(a.getFullYear()+1));else{a.setDate(a.getDate()+b);break}}return a}
|
|
53
|
-
function tc(a,b,c,d){function e(l,w,z){for(l="number"==typeof l?l.toString():l||"";l.length<w;)l=z[0]+l;return l}function f(l,w){return e(l,w,"0")}function h(l,w){function z(J){return 0>J?-1:0<J?1:0}var C;0===(C=z(l.getFullYear()-w.getFullYear()))&&0===(C=z(l.getMonth()-w.getMonth()))&&(C=z(l.getDate()-w.getDate()));return C}function g(l){switch(l.getDay()){case 0:return new Date(l.getFullYear()-1,11,29);case 1:return l;case 2:return new Date(l.getFullYear(),0,3);case 3:return new Date(l.getFullYear(),
|
|
54
|
-
0,2);case 4:return new Date(l.getFullYear(),0,1);case 5:return new Date(l.getFullYear()-1,11,31);case 6:return new Date(l.getFullYear()-1,11,30)}}function m(l){l=sc(new Date(l.Pb+1900,0,1),l.nc);var w=new Date(l.getFullYear()+1,0,4),z=g(new Date(l.getFullYear(),0,4));w=g(w);return 0>=h(z,l)?0>=h(w,l)?l.getFullYear()+1:l.getFullYear():l.getFullYear()-1}var n=A[d+40>>2];d={Yc:A[d>>2],Xc:A[d+4>>2],lc:A[d+8>>2],fc:A[d+12>>2],cc:A[d+16>>2],Pb:A[d+20>>2],mc:A[d+24>>2],nc:A[d+28>>2],dd:A[d+32>>2],Wc:A[d+
|
|
55
|
-
36>>2],Zc:n?n?va(u,n,void 0):"":""};c=c?va(u,c,void 0):"";n={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var p in n)c=c.replace(new RegExp(p,"g"),n[p]);var v="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
|
|
56
|
-
x="January February March April May June July August September October November December".split(" ");n={"%a":function(l){return v[l.mc].substring(0,3)},"%A":function(l){return v[l.mc]},"%b":function(l){return x[l.cc].substring(0,3)},"%B":function(l){return x[l.cc]},"%C":function(l){return f((l.Pb+1900)/100|0,2)},"%d":function(l){return f(l.fc,2)},"%e":function(l){return e(l.fc,2," ")},"%g":function(l){return m(l).toString().substring(2)},"%G":function(l){return m(l)},"%H":function(l){return f(l.lc,
|
|
57
|
-
2)},"%I":function(l){l=l.lc;0==l?l=12:12<l&&(l-=12);return f(l,2)},"%j":function(l){return f(l.fc+pc(oc(l.Pb+1900)?qc:rc,l.cc-1),3)},"%m":function(l){return f(l.cc+1,2)},"%M":function(l){return f(l.Xc,2)},"%n":function(){return"\n"},"%p":function(l){return 0<=l.lc&&12>l.lc?"AM":"PM"},"%S":function(l){return f(l.Yc,2)},"%t":function(){return"\t"},"%u":function(l){return l.mc||7},"%U":function(l){var w=new Date(l.Pb+1900,0,1),z=0===w.getDay()?w:sc(w,7-w.getDay());l=new Date(l.Pb+1900,l.cc,l.fc);return 0>
|
|
58
|
-
h(z,l)?f(Math.ceil((31-z.getDate()+(pc(oc(l.getFullYear())?qc:rc,l.getMonth()-1)-31)+l.getDate())/7),2):0===h(z,w)?"01":"00"},"%V":function(l){var w=new Date(l.Pb+1901,0,4),z=g(new Date(l.Pb+1900,0,4));w=g(w);var C=sc(new Date(l.Pb+1900,0,1),l.nc);return 0>h(C,z)?"53":0>=h(w,C)?"01":f(Math.ceil((z.getFullYear()<l.Pb+1900?l.nc+32-z.getDate():l.nc+1-z.getDate())/7),2)},"%w":function(l){return l.mc},"%W":function(l){var w=new Date(l.Pb,0,1),z=1===w.getDay()?w:sc(w,0===w.getDay()?1:7-w.getDay()+1);l=
|
|
59
|
-
new Date(l.Pb+1900,l.cc,l.fc);return 0>h(z,l)?f(Math.ceil((31-z.getDate()+(pc(oc(l.getFullYear())?qc:rc,l.getMonth()-1)-31)+l.getDate())/7),2):0===h(z,w)?"01":"00"},"%y":function(l){return(l.Pb+1900).toString().substring(2)},"%Y":function(l){return l.Pb+1900},"%z":function(l){l=l.Wc;var w=0<=l;l=Math.abs(l)/60;return(w?"+":"-")+String("0000"+(l/60*100+l%60)).slice(-4)},"%Z":function(l){return l.Zc},"%%":function(){return"%"}};c=c.replace(/%%/g,"\x00\x00");for(p in n)c.includes(p)&&(c=c.replace(new RegExp(p,
|
|
60
|
-
"g"),n[p](d)));c=c.replace(/\0\0/g,"%");p=uc(c);if(p.length>b)return 0;B.set(p,a);return p.length-1}mb=k.InternalError=lb("InternalError");for(var vc=Array(256),wc=0;256>wc;++wc)vc[wc]=String.fromCharCode(wc);pb=vc;qb=k.BindingError=lb("BindingError");Q.prototype.isAliasOf=function(a){if(!(this instanceof Q&&a instanceof Q))return!1;var b=this.Jb.Mb.Lb,c=this.Jb.Kb,d=a.Jb.Mb.Lb;for(a=a.Jb.Kb;b.Sb;)c=b.hc(c),b=b.Sb;for(;d.Sb;)a=d.hc(a),d=d.Sb;return b===d&&c===a};
|
|
61
|
-
Q.prototype.clone=function(){this.Jb.Kb||rb(this);if(this.Jb.ec)return this.Jb.count.value+=1,this;var a=Db,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.Jb;a=a(c.call(b,d,{Jb:{value:{count:e.count,Zb:e.Zb,ec:e.ec,Kb:e.Kb,Mb:e.Mb,Ob:e.Ob,Rb:e.Rb}}}));a.Jb.count.value+=1;a.Jb.Zb=!1;return a};Q.prototype["delete"]=function(){this.Jb.Kb||rb(this);this.Jb.Zb&&!this.Jb.ec&&P("Object already scheduled for deletion");tb(this);ub(this.Jb);this.Jb.ec||(this.Jb.Ob=void 0,this.Jb.Kb=void 0)};
|
|
62
|
-
Q.prototype.isDeleted=function(){return!this.Jb.Kb};Q.prototype.deleteLater=function(){this.Jb.Kb||rb(this);this.Jb.Zb&&!this.Jb.ec&&P("Object already scheduled for deletion");xb.push(this);1===xb.length&&zb&&zb(yb);this.Jb.Zb=!0;return this};k.getInheritedInstanceCount=function(){return Object.keys(Ab).length};k.getLiveInheritedInstances=function(){var a=[],b;for(b in Ab)Ab.hasOwnProperty(b)&&a.push(Ab[b]);return a};k.flushPendingDeletes=yb;k.setDelayFunction=function(a){zb=a;xb.length&&zb&&zb(yb)};
|
|
63
|
-
S.prototype.Gc=function(a){this.Ac&&(a=this.Ac(a));return a};S.prototype.wc=function(a){this.Tb&&this.Tb(a)};S.prototype.argPackAdvance=8;S.prototype.readValueFromPointer=fb;S.prototype.deleteObject=function(a){if(null!==a)a["delete"]()};
|
|
64
|
-
S.prototype.fromWireType=function(a){function b(){return this.jc?Cb(this.Lb.bc,{Mb:this.Oc,Kb:c,Rb:this,Ob:a}):Cb(this.Lb.bc,{Mb:this,Kb:a})}var c=this.Gc(a);if(!c)return this.wc(a),null;var d=Bb(this.Lb,c);if(void 0!==d){if(0===d.Jb.count.value)return d.Jb.Kb=c,d.Jb.Ob=a,d.clone();d=d.clone();this.wc(a);return d}d=this.Lb.Fc(c);d=wb[d];if(!d)return b.call(this);d=this.ic?d.Cc:d.pointerType;var e=vb(c,this.Lb,d.Lb);return null===e?b.call(this):this.jc?Cb(d.Lb.bc,{Mb:d,Kb:e,Rb:this,Ob:a}):Cb(d.Lb.bc,
|
|
65
|
-
{Mb:d,Kb:e})};Ob=k.UnboundTypeError=lb("UnboundTypeError");k.count_emval_handles=function(){for(var a=0,b=5;b<V.length;++b)void 0!==V[b]&&++a;return a};k.get_first_emval=function(){for(var a=5;a<V.length;++a)if(void 0!==V[a])return V[a];return null};function uc(a){var b=Array(xa(a)+1);wa(a,b,0,b.length);return b}
|
|
66
|
-
var Gd={n:function(a){return Za(a+16)+16},p:function(a){a=new Xa(a);var b=a.ac();b.Hc()||(b.vc(!0),$a--);b.kc(!1);K.push(a);b.pc();return a.Bc()},Da:function(a){r("Unexpected exception thrown, this is not properly supported - aborting");ta=!0;throw a;},Ja:function(){if(!K.length)return 0;var a=K[K.length-1];a.ac().pc();return a.$b()},ma:function(a){a&&bb(new H(a))},u:function(){X(0);var a=K.pop();bb(a.ac());a.rc();L=0},b:function(){var a=L;if(!a)return t=0;var b=(new H(a)).dc(),c=new Xa;c.Vb(a);c.Ub(a);
|
|
67
|
-
if(!b)return t=0,c.Kb|0;a=Array.prototype.slice.call(arguments);for(var d=0;d<a.length;d++){var e=a[d];if(0===e||e===b)break;if(xc(e,b,c.Xb()))return t=e,c.Kb|0}t=b;return c.Kb|0},i:function(){var a=L;if(!a)return t=0;var b=(new H(a)).dc(),c=new Xa;c.Vb(a);c.Ub(a);if(!b)return t=0,c.Kb|0;a=Array.prototype.slice.call(arguments);for(var d=0;d<a.length;d++){var e=a[d];if(0===e||e===b)break;if(xc(e,b,c.Xb()))return t=e,c.Kb|0}t=b;return c.Kb|0},y:function(){var a=L;if(!a)return t=0;var b=(new H(a)).dc(),
|
|
68
|
-
c=new Xa;c.Vb(a);c.Ub(a);if(!b)return t=0,c.Kb|0;a=Array.prototype.slice.call(arguments);for(var d=0;d<a.length;d++){var e=a[d];if(0===e||e===b)break;if(xc(e,b,c.Xb()))return t=e,c.Kb|0}t=b;return c.Kb|0},V:function(){var a=L;if(!a)return t=0;var b=(new H(a)).dc(),c=new Xa;c.Vb(a);c.Ub(a);if(!b)return t=0,c.Kb|0;a=Array.prototype.slice.call(arguments);for(var d=0;d<a.length;d++){var e=a[d];if(0===e||e===b)break;if(xc(e,b,c.Xb()))return t=e,c.Kb|0}t=b;return c.Kb|0},o:ab,la:function(a){a&&(new H(a)).pc()},
|
|
69
|
-
ka:cb,Ia:function(a){if(a){var b=new Xa;b.Vb(a);a=b.ac();K.push(b);a.kc(!0);cb()}},v:function(a,b,c){(new H(a)).Ub(b,c);L=a;$a++;throw a;},Ka:function(){return $a},d:function(a){a=new Xa(a);var b=a.$b();L||(L=b);a.rc();throw b;},ab:function(a){var b=db[a];delete db[a];var c=b.tc,d=b.Tb,e=b.yc,f=e.map(function(h){return h.Lc}).concat(e.map(function(h){return h.Tc}));M([a],f,function(h){var g={};e.forEach(function(m,n){var p=h[n],v=m.Jc,x=m.Kc,l=h[n+e.length],w=m.Sc,z=m.Uc;g[m.Ec]={read:function(C){return p.fromWireType(v(x,
|
|
70
|
-
C))},write:function(C,J){var T=[];w(z,C,l.toWireType(T,J));eb(T)}}});return[{name:b.name,fromWireType:function(m){var n={},p;for(p in g)n[p]=g[p].read(m);d(m);return n},toWireType:function(m,n){for(var p in g)if(!(p in n))throw new TypeError('Missing field: "'+p+'"');var v=c();for(p in g)g[p].write(v,n[p]);null!==m&&m.push(d,v);return v},argPackAdvance:8,readValueFromPointer:fb,Qb:d}]})},fb:function(){},Oa:function(a,b,c,d,e){var f=ob(c);b=O(b);N(a,{name:b,fromWireType:function(h){return!!h},toWireType:function(h,
|
|
71
|
-
g){return g?d:e},argPackAdvance:8,readValueFromPointer:function(h){if(1===c)var g=B;else if(2===c)g=y;else if(4===c)g=A;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(g[h>>f])},Qb:null})},Ya:function(a,b,c,d,e,f,h,g,m,n,p,v,x){p=O(p);f=U(e,f);g&&(g=U(h,g));n&&(n=U(m,n));x=U(v,x);var l=jb(p);Fb(l,function(){Rb("Cannot construct "+p+" due to unbound types",[d])});M([a,b,c],d?[d]:[],function(w){w=w[0];if(d){var z=w.Lb;var C=z.bc}else C=Q.prototype;w=kb(l,function(){if(Object.getPrototypeOf(this)!==
|
|
72
|
-
J)throw new qb("Use 'new' to construct "+p);if(void 0===T.Wb)throw new qb(p+" has no accessible constructor");var ac=T.Wb[arguments.length];if(void 0===ac)throw new qb("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(T.Wb).toString()+") parameters instead!");return ac.apply(this,arguments)});var J=Object.create(C,{constructor:{value:w}});w.prototype=J;var T=new Gb(p,w,J,x,z,f,g,n);z=new S(p,T,!0,!1,!1);C=new S(p+"*",T,!1,!1,!1);var bc=
|
|
73
|
-
new S(p+" const*",T,!1,!0,!1);wb[a]={pointerType:C,Cc:bc};Mb(l,w);return[z,C,bc]})},Ua:function(a,b,c,d,e,f,h){var g=Ub(c,d);b=O(b);f=U(e,f);M([],[a],function(m){function n(){Rb("Cannot call "+p+" due to unbound types",g)}m=m[0];var p=m.name+"."+b;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var v=m.Lb.constructor;void 0===v[b]?(n.Yb=c-1,v[b]=n):(Eb(v,b,p),v[b].Nb[c-1]=n);M([],g,function(x){x=[x[0],null].concat(x.slice(1));x=Tb(p,x,null,f,h);void 0===v[b].Nb?(x.Yb=c-1,v[b]=x):v[b].Nb[c-1]=x;return[]});
|
|
74
|
-
return[]})},Xa:function(a,b,c,d,e,f){0<b||ra(void 0);var h=Ub(b,c);e=U(d,e);M([],[a],function(g){g=g[0];var m="constructor "+g.name;void 0===g.Lb.Wb&&(g.Lb.Wb=[]);if(void 0!==g.Lb.Wb[b-1])throw new qb("Cannot register multiple constructors with identical number of parameters ("+(b-1)+") for class '"+g.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");g.Lb.Wb[b-1]=()=>{Rb("Cannot construct "+g.name+" due to unbound types",h)};M([],h,function(n){n.splice(1,
|
|
75
|
-
0,null);g.Lb.Wb[b-1]=Tb(m,n,null,e,f);return[]});return[]})},L:function(a,b,c,d,e,f,h,g){var m=Ub(c,d);b=O(b);f=U(e,f);M([],[a],function(n){function p(){Rb("Cannot call "+v+" due to unbound types",m)}n=n[0];var v=n.name+"."+b;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);g&&n.Lb.Pc.push(b);var x=n.Lb.bc,l=x[b];void 0===l||void 0===l.Nb&&l.className!==n.name&&l.Yb===c-2?(p.Yb=c-2,p.className=n.name,x[b]=p):(Eb(x,b,v),x[b].Nb[c-2]=p);M([],m,function(w){w=Tb(v,w,n,f,h);void 0===x[b].Nb?(w.Yb=c-2,x[b]=
|
|
76
|
-
w):x[b].Nb[c-2]=w;return[]});return[]})},Na:function(a,b){b=O(b);N(a,{name:b,fromWireType:function(c){var d=W(c);Wb(c);return d},toWireType:function(c,d){return R(d)},argPackAdvance:8,readValueFromPointer:fb,Qb:null})},za:function(a,b,c,d){function e(){}c=ob(c);b=O(b);e.values={};N(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:function(f,h){return h.value},argPackAdvance:8,readValueFromPointer:Xb(b,c,d),Qb:null});Fb(b,e)},mb:function(a,b,c){var d=Yb(a,
|
|
77
|
-
"enum");b=O(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:kb(d.name+"_"+b,function(){})}});a.values[c]=d;a[b]=d},na:function(a,b,c){c=ob(c);b=O(b);N(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:Zb(b,c),Qb:null})},Ca:function(a,b,c,d,e,f){var h=Ub(b,c);a=O(a);e=U(d,e);Fb(a,function(){Rb("Cannot call "+a+" due to unbound types",h)},b-1);M([],h,function(g){g=[g[0],null].concat(g.slice(1));
|
|
78
|
-
Mb(a,Tb(a,g,null,e,f),b-1);return[]})},I:function(a,b,c,d,e){b=O(b);-1===e&&(e=4294967295);e=ob(c);var f=g=>g;if(0===d){var h=32-8*c;f=g=>g<<h>>>h}c=b.includes("unsigned")?function(g,m){return m>>>0}:function(g,m){return m};N(a,{name:b,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:$b(b,e,0!==d),Qb:null})},A:function(a,b,c){function d(f){f>>=2;var h=D;return new e(Ga,h[f+1],h[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];
|
|
79
|
-
c=O(c);N(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{Mc:!0})},Wa:function(a,b,c,d,e,f,h,g,m,n,p,v){c=O(c);f=U(e,f);g=U(h,g);n=U(m,n);v=U(p,v);M([a],[b],function(x){x=x[0];return[new S(c,x.Lb,!1,!1,!0,x,d,f,g,n,v)]})},oa:function(a,b){b=O(b);var c="std::string"===b;N(a,{name:b,fromWireType:function(d){var e=D[d>>2];if(c)for(var f=d+4,h=0;h<=e;++h){var g=d+4+h;if(h==e||0==u[g]){f=f?va(u,f,g-f):"";if(void 0===m)var m=f;else m+=String.fromCharCode(0),m+=f;f=g+1}}else{m=Array(e);
|
|
80
|
-
for(h=0;h<e;++h)m[h]=String.fromCharCode(u[d+4+h]);m=m.join("")}I(d);return m},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f="string"==typeof e;f||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||P("Cannot pass non-string to std::string");var h=(c&&f?()=>xa(e):()=>e.length)(),g=Za(4+h+1);D[g>>2]=h;if(c&&f)wa(e,u,g+4,h+1);else if(f)for(f=0;f<h;++f){var m=e.charCodeAt(f);255<m&&(I(g),P("String has UTF-16 code units that do not fit in 8 bits"));
|
|
81
|
-
u[g+4+f]=m}else for(f=0;f<h;++f)u[g+4+f]=e[f];null!==d&&d.push(I,g);return g},argPackAdvance:8,readValueFromPointer:fb,Qb:function(d){I(d)}})},ca:function(a,b,c){c=O(c);if(2===b){var d=za;var e=Ba;var f=Ca;var h=()=>Aa;var g=1}else 4===b&&(d=Da,e=Ea,f=Fa,h=()=>D,g=2);N(a,{name:c,fromWireType:function(m){for(var n=D[m>>2],p=h(),v,x=m+4,l=0;l<=n;++l){var w=m+4+l*b;if(l==n||0==p[w>>g])x=d(x,w-x),void 0===v?v=x:(v+=String.fromCharCode(0),v+=x),x=w+b}I(m);return v},toWireType:function(m,n){"string"!=typeof n&&
|
|
82
|
-
P("Cannot pass non-string to C++ string type "+c);var p=f(n),v=Za(4+p+b);D[v>>2]=p>>g;e(n,v+4,p+b);null!==m&&m.push(I,v);return v},argPackAdvance:8,readValueFromPointer:fb,Qb:function(m){I(m)}})},hb:function(a,b,c,d,e,f){db[a]={name:O(b),tc:U(c,d),Tb:U(e,f),yc:[]}},da:function(a,b,c,d,e,f,h,g,m,n){db[a].yc.push({Ec:O(b),Lc:c,Jc:U(d,e),Kc:f,Tc:h,Sc:U(g,m),Uc:n})},Pa:function(a,b){b=O(b);N(a,{Nc:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},_a:function(a,b,c){a=W(a);
|
|
83
|
-
b=Yb(b,"emval::as");var d=[],e=R(d);A[c>>2]=e;return b.toWireType(d,a)},Va:function(a,b,c,d){a=W(a);c=cc(b,c);for(var e=Array(b),f=0;f<b;++f){var h=c[f];e[f]=h.readValueFromPointer(d);d+=h.argPackAdvance}a=a.apply(void 0,e);return R(a)},Ra:function(a,b,c,d,e){a=fc[a];b=W(b);c=ec(c);var f=[];A[d>>2]=R(f);return a(b,c,f,e)},S:function(a,b,c,d){a=fc[a];b=W(b);c=ec(c);a(b,c,null,d)},Z:Wb,Ta:function(a){if(0===a)return R(gc());a=ec(a);return R(gc()[a])},O:function(a,b){var c=cc(a,b),d=c[0];b=d.name+"_$"+
|
|
84
|
-
c.slice(1).map(function(p){return p.name}).join("_")+"$";var e=ic[b];if(void 0!==e)return e;e=["retType"];for(var f=[d],h="",g=0;g<a-1;++g)h+=(0!==g?", ":"")+"arg"+g,e.push("argType"+g),f.push(c[1+g]);var m="return function "+jb("methodCaller_"+b)+"(handle, name, destructors, args) {\n",n=0;for(g=0;g<a-1;++g)m+=" var arg"+g+" = argType"+g+".readValueFromPointer(args"+(n?"+"+n:"")+");\n",n+=c[g+1].argPackAdvance;m+=" var rv = handle[name]("+h+");\n";for(g=0;g<a-1;++g)c[g+1].deleteObject&&(m+=
|
|
85
|
-
" argType"+g+".deleteObject(arg"+g+");\n");d.Nc||(m+=" return retType.toWireType(destructors, rv);\n");e.push(m+"};\n");a=Sb(e).apply(null,f);e=hc(a);return ic[b]=e},Sa:function(a,b){a=W(a);b=W(b);return R(a[b])},$:function(a){4<a&&(V[a].uc+=1)},Qa:function(a){return R(ec(a))},Za:function(a){var b=W(a);eb(b);Wb(a)},pa:function(a,b){a=Yb(a,"_emval_take_value");a=a.readValueFromPointer(b);return R(a)},aa:function(){ra("")},ba:function(a){var b=u.length;a>>>=0;if(2147483648<a)return!1;for(var c=
|
|
86
|
-
1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{sa.grow(e-Ga.byteLength+65535>>>16);Ja();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},La:function(a,b){var c=0;kc().forEach(function(d,e){var f=b+c;e=A[a+4*e>>2]=f;for(f=0;f<d.length;++f)B[e++>>0]=d.charCodeAt(f);B[e>>0]=0;c+=d.length+1});return 0},Ma:function(a,b){var c=kc();A[a>>2]=c.length;var d=0;c.forEach(function(e){d+=e.length+1});A[b>>2]=
|
|
87
|
-
d;return 0},Fa:function(){return 0},Ha:function(a,b,c,d){a=nc.bd(a);b=nc.$c(a,b,c);A[d>>2]=b;return 0},eb:function(){},Ga:function(a,b,c,d){for(var e=0,f=0;f<c;f++){var h=A[b>>2],g=A[b+4>>2];b+=8;for(var m=0;m<g;m++){var n=u[h+m],p=mc[a];0===n||10===n?((1===a?pa:r)(va(p,0)),p.length=0):p.push(n)}e+=g}A[d>>2]=e;return 0},a:function(){return t},fa:yc,gb:zc,z:Ac,jb:Bc,F:Cc,lb:Dc,R:Ec,B:Fc,D:Gc,N:Hc,Ba:Ic,h:Jc,_:Kc,ja:Lc,c:Mc,kb:Nc,g:Oc,ya:Pc,ha:Qc,m:Rc,ra:Sc,t:Tc,s:Uc,E:Vc,C:Wc,Q:Xc,U:Yc,$a:Zc,db:$c,
|
|
88
|
-
l:ad,k:bd,Y:cd,H:dd,xa:ed,ia:fd,ua:gd,ta:hd,ea:jd,e:kd,ga:ld,wa:md,K:nd,sa:od,ib:pd,Aa:qd,f:rd,G:sd,va:td,j:ud,X:vd,W:wd,r:xd,w:yd,x:zd,J:Ad,P:Bd,M:Cd,T:Dd,bb:Ed,cb:Fd,q:function(a){return a},qa:function(a){t=a},Ea:function(a,b,c,d){return tc(a,b,c,d)}};
|
|
89
|
-
(function(){function a(e){k.asm=e.exports;sa=k.asm.nb;Ja();Ka=k.asm.ub;Ma.unshift(k.asm.ob);E--;k.monitorRunDependencies&&k.monitorRunDependencies(E);0==E&&(null!==Qa&&(clearInterval(Qa),Qa=null),Ra&&(e=Ra,Ra=null,e()))}function b(e){a(e.instance)}function c(e){return Va().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){r("failed to asynchronously prepare wasm: "+f);ra(f)})}var d={a:Gd};E++;k.monitorRunDependencies&&k.monitorRunDependencies(E);
|
|
90
|
-
if(k.instantiateWasm)try{return k.instantiateWasm(d,a)}catch(e){return r("Module.instantiateWasm callback failed with error: "+e),!1}(function(){return qa||"function"!=typeof WebAssembly.instantiateStreaming||Sa()||F.startsWith("file://")||"function"!=typeof fetch?c(b):fetch(F,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(f){r("wasm streaming compile failed: "+f);r("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);
|
|
91
|
-
return{}})();k.___wasm_call_ctors=function(){return(k.___wasm_call_ctors=k.asm.ob).apply(null,arguments)};var I=k._free=function(){return(I=k._free=k.asm.pb).apply(null,arguments)},Za=k._malloc=function(){return(Za=k._malloc=k.asm.qb).apply(null,arguments)};k._main=function(){return(k._main=k.asm.rb).apply(null,arguments)};var Qb=k.___getTypeName=function(){return(Qb=k.___getTypeName=k.asm.sb).apply(null,arguments)};
|
|
92
|
-
k.___embind_register_native_and_builtin_types=function(){return(k.___embind_register_native_and_builtin_types=k.asm.tb).apply(null,arguments)};
|
|
93
|
-
var X=k._setThrew=function(){return(X=k._setThrew=k.asm.vb).apply(null,arguments)},Y=k.stackSave=function(){return(Y=k.stackSave=k.asm.wb).apply(null,arguments)},Z=k.stackRestore=function(){return(Z=k.stackRestore=k.asm.xb).apply(null,arguments)},xc=k.___cxa_can_catch=function(){return(xc=k.___cxa_can_catch=k.asm.yb).apply(null,arguments)},Ya=k.___cxa_is_pointer_type=function(){return(Ya=k.___cxa_is_pointer_type=k.asm.zb).apply(null,arguments)},Hd=k.dynCall_viiiji=function(){return(Hd=k.dynCall_viiiji=
|
|
94
|
-
k.asm.Ab).apply(null,arguments)},Id=k.dynCall_jii=function(){return(Id=k.dynCall_jii=k.asm.Bb).apply(null,arguments)},Jd=k.dynCall_vij=function(){return(Jd=k.dynCall_vij=k.asm.Cb).apply(null,arguments)},Kd=k.dynCall_iij=function(){return(Kd=k.dynCall_iij=k.asm.Db).apply(null,arguments)};k.dynCall_viijii=function(){return(k.dynCall_viijii=k.asm.Eb).apply(null,arguments)};k.dynCall_jiji=function(){return(k.dynCall_jiji=k.asm.Fb).apply(null,arguments)};
|
|
95
|
-
k.dynCall_iiiiij=function(){return(k.dynCall_iiiiij=k.asm.Gb).apply(null,arguments)};k.dynCall_iiiiijj=function(){return(k.dynCall_iiiiijj=k.asm.Hb).apply(null,arguments)};k.dynCall_iiiiiijj=function(){return(k.dynCall_iiiiiijj=k.asm.Ib).apply(null,arguments)};function Mc(a,b,c){var d=Y();try{return G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function rd(a,b,c,d){var e=Y();try{G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}
|
|
96
|
-
function ud(a,b,c,d,e){var f=Y();try{G(a)(b,c,d,e)}catch(h){Z(f);if(h!==h+0)throw h;X(1,0)}}function Oc(a,b,c,d){var e=Y();try{return G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}function kd(a,b,c){var d=Y();try{G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function bd(a,b){var c=Y();try{G(a)(b)}catch(d){Z(c);if(d!==d+0)throw d;X(1,0)}}function xd(a,b,c,d,e,f){var h=Y();try{G(a)(b,c,d,e,f)}catch(g){Z(h);if(g!==g+0)throw g;X(1,0)}}
|
|
97
|
-
function Kc(a,b,c){var d=Y();try{return G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function Jc(a,b){var c=Y();try{return G(a)(b)}catch(d){Z(c);if(d!==d+0)throw d;X(1,0)}}function Uc(a,b,c,d,e,f,h){var g=Y();try{return G(a)(b,c,d,e,f,h)}catch(m){Z(g);if(m!==m+0)throw m;X(1,0)}}function ad(a){var b=Y();try{G(a)()}catch(c){Z(b);if(c!==c+0)throw c;X(1,0)}}function Lc(a,b,c){var d=Y();try{return G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}
|
|
98
|
-
function Gc(a){var b=Y();try{return G(a)()}catch(c){Z(b);if(c!==c+0)throw c;X(1,0)}}function zd(a,b,c,d,e,f,h,g){var m=Y();try{G(a)(b,c,d,e,f,h,g)}catch(n){Z(m);if(n!==n+0)throw n;X(1,0)}}function yd(a,b,c,d,e,f,h){var g=Y();try{G(a)(b,c,d,e,f,h)}catch(m){Z(g);if(m!==m+0)throw m;X(1,0)}}function fd(a,b,c,d,e,f,h,g,m,n,p){var v=Y();try{G(a)(b,c,d,e,f,h,g,m,n,p)}catch(x){Z(v);if(x!==x+0)throw x;X(1,0)}}
|
|
99
|
-
function Rc(a,b,c,d,e){var f=Y();try{return G(a)(b,c,d,e)}catch(h){Z(f);if(h!==h+0)throw h;X(1,0)}}function Wc(a,b,c,d,e,f,h,g,m){var n=Y();try{return G(a)(b,c,d,e,f,h,g,m)}catch(p){Z(n);if(p!==p+0)throw p;X(1,0)}}function Tc(a,b,c,d,e,f){var h=Y();try{return G(a)(b,c,d,e,f)}catch(g){Z(h);if(g!==g+0)throw g;X(1,0)}}function dd(a,b,c,d){var e=Y();try{G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}function cd(a,b,c){var d=Y();try{G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}
|
|
100
|
-
function nd(a,b,c,d,e,f){var h=Y();try{G(a)(b,c,d,e,f)}catch(g){Z(h);if(g!==g+0)throw g;X(1,0)}}function Ac(a,b){var c=Y();try{return G(a)(b)}catch(d){Z(c);if(d!==d+0)throw d;X(1,0)}}function Cc(a,b,c){var d=Y();try{return G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function Ec(a,b,c,d,e){var f=Y();try{return G(a)(b,c,d,e)}catch(h){Z(f);if(h!==h+0)throw h;X(1,0)}}function Qc(a,b,c,d,e,f,h,g){var m=Y();try{return G(a)(b,c,d,e,f,h,g)}catch(n){Z(m);if(n!==n+0)throw n;X(1,0)}}
|
|
101
|
-
function sd(a,b,c,d,e,f,h){var g=Y();try{G(a)(b,c,d,e,f,h)}catch(m){Z(g);if(m!==m+0)throw m;X(1,0)}}function Ic(a,b,c,d){var e=Y();try{return G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}function Ad(a,b,c,d,e,f,h,g,m){var n=Y();try{G(a)(b,c,d,e,f,h,g,m)}catch(p){Z(n);if(p!==p+0)throw p;X(1,0)}}function qd(a,b,c,d,e,f,h){var g=Y();try{G(a)(b,c,d,e,f,h)}catch(m){Z(g);if(m!==m+0)throw m;X(1,0)}}function ld(a,b,c,d){var e=Y();try{G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}
|
|
102
|
-
function vd(a,b,c,d,e,f){var h=Y();try{G(a)(b,c,d,e,f)}catch(g){Z(h);if(g!==g+0)throw g;X(1,0)}}function yc(a,b,c){var d=Y();try{return G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function Pc(a,b,c,d,e,f,h,g,m,n,p,v,x,l){var w=Y();try{return G(a)(b,c,d,e,f,h,g,m,n,p,v,x,l)}catch(z){Z(w);if(z!==z+0)throw z;X(1,0)}}function Vc(a,b,c,d,e,f,h,g){var m=Y();try{return G(a)(b,c,d,e,f,h,g)}catch(n){Z(m);if(n!==n+0)throw n;X(1,0)}}
|
|
103
|
-
function jd(a,b,c,d,e,f,h){var g=Y();try{G(a)(b,c,d,e,f,h)}catch(m){Z(g);if(m!==m+0)throw m;X(1,0)}}function ed(a,b,c){var d=Y();try{G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function md(a,b,c,d,e){var f=Y();try{G(a)(b,c,d,e)}catch(h){Z(f);if(h!==h+0)throw h;X(1,0)}}function Fc(a,b,c,d){var e=Y();try{return G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}function wd(a,b,c,d,e,f,h){var g=Y();try{G(a)(b,c,d,e,f,h)}catch(m){Z(g);if(m!==m+0)throw m;X(1,0)}}
|
|
104
|
-
function td(a,b,c,d,e,f){var h=Y();try{G(a)(b,c,d,e,f)}catch(g){Z(h);if(g!==g+0)throw g;X(1,0)}}function gd(a,b,c,d){var e=Y();try{G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}function hd(a,b,c,d,e,f,h,g){var m=Y();try{G(a)(b,c,d,e,f,h,g)}catch(n){Z(m);if(n!==n+0)throw n;X(1,0)}}function Dc(a,b,c,d,e){var f=Y();try{return G(a)(b,c,d,e)}catch(h){Z(f);if(h!==h+0)throw h;X(1,0)}}function Nc(a,b,c,d,e){var f=Y();try{return G(a)(b,c,d,e)}catch(h){Z(f);if(h!==h+0)throw h;X(1,0)}}
|
|
105
|
-
function Hc(a,b){var c=Y();try{return G(a)(b)}catch(d){Z(c);if(d!==d+0)throw d;X(1,0)}}function Bc(a,b,c){var d=Y();try{return G(a)(b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function od(a,b,c,d){var e=Y();try{G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}function pd(a,b,c,d,e){var f=Y();try{G(a)(b,c,d,e)}catch(h){Z(f);if(h!==h+0)throw h;X(1,0)}}function Xc(a,b,c,d,e,f,h,g,m,n){var p=Y();try{return G(a)(b,c,d,e,f,h,g,m,n)}catch(v){Z(p);if(v!==v+0)throw v;X(1,0)}}
|
|
106
|
-
function Bd(a,b,c,d,e,f,h,g,m,n){var p=Y();try{G(a)(b,c,d,e,f,h,g,m,n)}catch(v){Z(p);if(v!==v+0)throw v;X(1,0)}}function Sc(a,b,c,d,e,f){var h=Y();try{return G(a)(b,c,d,e,f)}catch(g){Z(h);if(g!==g+0)throw g;X(1,0)}}function Yc(a,b,c,d,e,f,h,g,m,n,p,v){var x=Y();try{return G(a)(b,c,d,e,f,h,g,m,n,p,v)}catch(l){Z(x);if(l!==l+0)throw l;X(1,0)}}function Cd(a,b,c,d,e,f,h,g,m,n,p){var v=Y();try{G(a)(b,c,d,e,f,h,g,m,n,p)}catch(x){Z(v);if(x!==x+0)throw x;X(1,0)}}
|
|
107
|
-
function Dd(a,b,c,d,e,f,h,g,m,n,p,v,x,l,w,z){var C=Y();try{G(a)(b,c,d,e,f,h,g,m,n,p,v,x,l,w,z)}catch(J){Z(C);if(J!==J+0)throw J;X(1,0)}}function zc(a,b,c,d){var e=Y();try{return G(a)(b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}function $c(a,b,c){var d=Y();try{return Id(a,b,c)}catch(e){Z(d);if(e!==e+0)throw e;X(1,0)}}function Fd(a,b,c,d){var e=Y();try{Jd(a,b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}
|
|
108
|
-
function Ed(a,b,c,d,e,f,h){var g=Y();try{Hd(a,b,c,d,e,f,h)}catch(m){Z(g);if(m!==m+0)throw m;X(1,0)}}function Zc(a,b,c,d){var e=Y();try{return Kd(a,b,c,d)}catch(f){Z(e);if(f!==f+0)throw f;X(1,0)}}var Ld;function na(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}Ra=function Md(){Ld||Nd();Ld||(Ra=Md)};
|
|
109
|
-
function Nd(){function a(){if(!Ld&&(Ld=!0,k.calledRun=!0,!ta)){Wa(Ma);Wa(Na);aa(k);if(k.onRuntimeInitialized)k.onRuntimeInitialized();if(Od){var b=k._main;try{var c=b(0,0);if(!(noExitRuntime||0<oa)){if(k.onExit)k.onExit(c);ta=!0}ea(c,new na(c))}catch(d){d instanceof na||"unwind"==d||ea(1,d)}finally{}}if(k.postRun)for("function"==typeof k.postRun&&(k.postRun=[k.postRun]);k.postRun.length;)b=k.postRun.shift(),Oa.unshift(b);Wa(Oa)}}if(!(0<E)){if(k.preRun)for("function"==typeof k.preRun&&(k.preRun=[k.preRun]);k.preRun.length;)Pa();
|
|
110
|
-
Wa(La);0<E||(k.setStatus?(k.setStatus("Running..."),setTimeout(function(){setTimeout(function(){k.setStatus("")},1);a()},1)):a())}}k.run=Nd;if(k.preInit)for("function"==typeof k.preInit&&(k.preInit=[k.preInit]);0<k.preInit.length;)k.preInit.pop()();var Od=!0;k.noInitialRun&&(Od=!1);Nd();
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
return RoomleToolsCore.ready
|
|
114
|
-
}
|
|
115
|
-
);
|
|
116
|
-
})();
|
|
117
|
-
if (typeof exports === 'object' && typeof module === 'object')
|
|
118
|
-
module.exports = RoomleToolsCore;
|
|
119
|
-
else if (typeof define === 'function' && define['amd'])
|
|
120
|
-
define([], function() { return RoomleToolsCore; });
|
|
121
|
-
else if (typeof exports === 'object')
|
|
122
|
-
exports["RoomleToolsCore"] = RoomleToolsCore;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools-core-2f52ecac.legacy.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-viewer-7ce8f9ce.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-viewer-ea4491d4.nomodule.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./query-params-helper-a271f9dc.js";import"./roomle-dependency-injection-d1ff95c3.js";import"./main-thread-to-worker-ba53e0fd.js";import"./pixotron-34491bb2.js";import"./script-loader-fec0a799.js";import{MaterialViewer}from"./material-viewer-7ce8f9ce.js";(new MaterialViewer).boot();
|
|
2
|
-
//# sourceMappingURL=material-viewer-main-d3cfe386.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-viewer-main-d3cfe386.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/lib/planner-3bc56225.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./query-params-helper-a271f9dc.js";import{l as getGUI,_ as __decorate,i as inject,h as convertToKernel,N as NodePlanElementViewModel,W as WallPlanElementViewModel,a6 as isSafari,a7 as convertToTHREE,c as ConfiguratorPlanObjectViewModel,S as StaticPlanObjectViewModel,a8 as threeVectorToTransferableXY,j as getScreenXY,F as FloorPlanElementViewModel,M as convertCObject,V as AsyncGuard,a9 as PLAN_ELEMENT_CHANGE_TYPES,aa as hideWallsBasedOnCamera,k as kernelBoxToThreeBox,B as Benchmark,Y as fadeIn,e as CAMERA_TYPE,ab as setWallTransparency,d as ConstructionPlanObjectViewModel,ac as getDrawingMinBounds,ad as wallDimensionToTransferable,G as isIdItemId,ae as isPlanSnapshotId,af as GLTF_LOADER_FILE_NAME,ag as DRACO_LOADER_FILE_NAME,r as DynamicLightSettingLoader,ah as InputManager,E as EventDispatcher,D as DependencyInjectionAssignment,L as Logger,ai as PlannerMeshGenerator,R as RapiAccess,b as RoomleDependencyInjection}from"./roomle-dependency-injection-d1ff95c3.js";import{d as deepMerge,j as setCursor,p as copy,q as applyMaterialToKernelMaterial,n as download}from"./main-thread-to-worker-ba53e0fd.js";import{S as SceneEventHandler,C as ConfiguratorSceneManager,P as PlanViewModel,G as GLTF_EXPORTER_FILE_NAME,p as prepareTopImage,a as preparePerspectiveImage,g as getCameraTargetForBBox,R as RoomleConfigurator}from"./roomle-configurator-4bcfd804.js";import{L as LightSetting,B as BakedShadowEnvironment,b as BackgroundEnvironment,C as CameraControl3D,d as CameraControl2D,e as CameraControlFirstPerson,T as TWEEN_FILE_NAME,P as PIXOTRON_EFFETCS,c as PIXOTRON_FILE_NAME}from"./pixotron-34491bb2.js";import{S as ScriptLoader,M as Main}from"./script-loader-fec0a799.js";import"./default-light-setting-c01cdfad.js";class PlannerLightSetting extends LightSetting{constructor(e,t){super(e,t),this._center=new THREE.Vector3(0,0,0),this._params={ambientLight:{color:"#ffffff"},hemiLight:{color:"#ffffff"},mainDirLight:{direction:{x:2,y:1,z:2},color:"#ffffff"}},this._ambientLight=new THREE.AmbientLight(new THREE.Color(this._params.ambientLight.color),.4),this._ambientLight.layers.set(1),this._mainDirLight=new THREE.DirectionalLight(new THREE.Color(this._params.mainDirLight.color),.5),this._mainDirLight.castShadow=!0,this._mainDirLight.shadow.camera.near=.5,this._mainDirLight.shadow.camera.far=100,this._mainDirLight.shadow.mapSize=new THREE.Vector2(1024,1024),this._mainDirLight.visible=!0,this.addToScene()}updateSunPosition(e,t){}addToScene(){this._scene.add(this._mainDirLight),this._scene.add(this._ambientLight),this._scene.add(this._mainDirLight.target)}removeFromScene(){this._scene.remove(this._mainDirLight),this._scene.remove(this._ambientLight),this._scene.remove(this._mainDirLight.target)}reload(){this.removeFromScene(),this.addToScene()}needsBounds(){return!0}updateBounds(e){this._center.copy(e.getCenter(new THREE.Vector3));const t=new THREE.Sphere;e.getBoundingSphere(t);const n=t.radius,a=new THREE.Vector3(this._params.mainDirLight.direction.x,this._params.mainDirLight.direction.y,this._params.mainDirLight.direction.z);a.normalize(),a.multiplyScalar(n),this._mainDirLight.position.copy(this._center),this._mainDirLight.position.add(a),this._mainDirLight.target.position.copy(this._center),this._mainDirLight.target.updateMatrixWorld(!0),this._mainDirLight.shadow.camera.top=n,this._mainDirLight.shadow.camera.bottom=-n,this._mainDirLight.shadow.camera.left=-n,this._mainDirLight.shadow.camera.right=n,this._mainDirLight.shadow.camera.near=.01,this._mainDirLight.shadow.camera.far=2*n,this._mainDirLight.shadow.camera.updateProjectionMatrix()}showGUI(){let e=getGUI();if(e){if(this._ambientLight){let t=e.addFolder("Ambient Light");t.add(this._ambientLight,"visible"),t.add(this._ambientLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.ambientLight,"color").onChange(e=>this._ambientLight.color=new THREE.Color(e))}if(this._hemiLight){let t=e.addFolder("Hemi Light");t.add(this._hemiLight,"visible"),t.add(this._hemiLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.hemiLight,"color").onChange(e=>this._hemiLight.color=new THREE.Color(e))}if(this._mainDirLight){let t=e.addFolder("Main Directional Light");t.add(this._mainDirLight,"visible"),t.add(this._mainDirLight,"intensity").min(0).max(10).step(.1),t.add(this._mainDirLight,"castShadow"),t.addColor(this._params.mainDirLight,"color").onChange(e=>this._mainDirLight.color=new THREE.Color(e)),t.add(this._mainDirLight.position,"x").min(-10).max(10).step(.1).onChange(()=>this._mainDirLight.lookAt(this._center)),t.add(this._mainDirLight.position,"y").min(-10).max(50).step(.1).onChange(()=>this._mainDirLight.lookAt(this._center)),t.add(this._mainDirLight.position,"z").min(-10).max(10).step(.1).onChange(()=>this._mainDirLight.lookAt(this._center))}}}}class SceneEventInfo{constructor(e){const{planElementViewModel:t,resetCamera:n,state:a,oldState:i,reason:s}=e;this.planElementViewModel=t,this.resetCamera=void 0===n||n,this.state=void 0===a?0:a,this.oldState=void 0===i?0:i,this.reason=s}}class PlannerSceneEventHandler extends SceneEventHandler{constructor(e,t,n,a){super(e,t,n,a),this._isDrawingEnabled=!1,this._isCurrentlyDrawing=!1,this._state=0,this._inputManager.addEventListener(4,()=>this._position=null,this),this._raycastHelper.setMode(0),this._raycastHelper.addEventListener(0,()=>{2!==this._state?this._plannerSelectionHandler.cancelSelection("click_outside"):this.resetState()},this),this._plannerSelectionHandler.addEventListener(0,({planElementViewModel:e})=>{this.dispatchEvent(0,new SceneEventInfo({planElementViewModel:e}))},this),this._plannerSelectionHandler.addEventListener(1,({planElementViewModel:e,reason:t})=>{1!==this._state&&this.setState(0),this.dispatchEvent(1,new SceneEventInfo({planElementViewModel:e,reason:t}))},this),this._inputManager.addEventListener(6,e=>this._move(e),this)}disable(){const e=new THREE.Layers;e.disableAll(),this._raycastHelper.setLayers(e),this._raycastHelper.disableEvents()}get planInteractionHandler(){var e;return null===(e=this._plannerKernelAccess)||void 0===e?void 0:e.planInteractionHandler}enable(){const e=new THREE.Layers;e.disableAll(),e.enable(3),e.enable(7),e.enable(6),e.enable(9),e.enable(2),this._raycastHelper.setLayers(e),this._raycastHelper.enableEvents()}enableConstructionEvents(e){e?this._raycastHelper.getLayers().enable(9):this._raycastHelper.getLayers().disable(9)}enableObjectEvents(e){e?this._raycastHelper.getLayers().enable(6):this._raycastHelper.getLayers().disable(6)}getSelectionMode(){return this._plannerSelectionHandler.getSelectionMode()}addPlanObjectHandlers(e,t){t||(t=e.getBoundingBox());const n={hasListener:!0,priority:1,roomleId:e.getId()};this._addPlanObjectHandlers(e,t,n)}addWallHandlers(e){this._addPlanElementHandlers(e,e.getObject(),{hasListener:!0,priority:1,roomleId:e.getId()})}addNodeHandlers(e){this._addPlanElementHandlers(e,e.getBoundingBox(),{hasListener:!0,priority:1,roomleId:e.getId()})}_addPlanObjectHandlers(e,t,n){t.userData.hasListener||(t.userData=deepMerge(t.userData,n),t.addEventListener("select",()=>this._clickElement(e)),t.addEventListener("drag_start",()=>this._dragStart(e)),t.addEventListener("drag",t=>this._drag(e,t.attachment.position)),t.addEventListener("drag_end",t=>this._dragEnd(e,t.attachment.position)),t.addEventListener("hover_on",()=>this._hoverOn(e)),t.addEventListener("hover_off",()=>this._hoverOff(e)),t.addEventListener("rotate",t=>this._rotate(e,t.attachment.rotation)))}_addPlanElementHandlers(e,t,n){t.userData.hasListener||(t.userData=deepMerge(t.userData,n),t.addEventListener("select",()=>this._clickElement(e)),t.addEventListener("double_click",t=>{var n;this._doubleClickElement(e,t.attachment.type,null===(n=t.attachment.intersection)||void 0===n?void 0:n.point)}),t.addEventListener("drag_start",()=>this._dragStart(e)),t.addEventListener("drag",t=>this._drag(e,t.attachment.position)),t.addEventListener("drag_end",t=>this._dragEnd(e,t.attachment.position)),t.addEventListener("hover_on",()=>this._hoverOn(e)),t.addEventListener("hover_off",()=>this._hoverOff(e)))}_createFloorMeshWithHandler(){const e=new THREE.PlaneBufferGeometry(1e3,1e3,8,8),t=new THREE.MeshBasicMaterial;t.visible=!1;const n=new THREE.Mesh(e,t);return n.name="2D raycaster floor mesh",n.rotation.set(-Math.PI/2,0,0),n.layers.enable(2),n.userData=deepMerge(n.userData,{hasListener:!0,priority:.9,roomleId:void 0}),n.addEventListener("double_click",e=>{this._doubleClickOnPlane(convertToKernel(e.attachment.intersection.point),e.attachment.type)}),n.addEventListener("select",e=>{this._isCurrentlyDrawing?this._clickOnPlane(convertToKernel(e.attachment.intersection.point)):this._plannerSelectionHandler.cancelSelection("select_other")}),n}_clickOnPlane(e){this._createNode(null,e)}_doubleClickOnPlane(e,t=0){this._closeToPoint(e)?this.stopDrawing():this._toggleDrawing(null,e,t)}_closeToPoint(e){let t=!1;for(const n of this._planViewModel.getNodePlanObjectViewModels())this._close(n.getPlanElement().getCenter(),e)&&(t=!0);return t}_close(e,t){return Math.abs(e.x-t.x)<500&&Math.abs(e.y-t.y)<500&&Math.abs(e.z-t.z)<500}_clickElement(e){this._isCurrentlyDrawing||(this._debug&&e.getId(),2!==this._state?(this._plannerSelectionHandler.check(e),this._setCursor()):this.resetState())}_doubleClickElement(e,t=0,n){if(!this._isDrawingEnabled||!(e instanceof NodePlanElementViewModel||e instanceof WallPlanElementViewModel))return;let a;this._debug&&e.getId(),e instanceof WallPlanElementViewModel&&this._plannerSelectionHandler.cancelSelection("double_click_wall"),e instanceof NodePlanElementViewModel?a=e.getPlanElement().getCenter():n&&(a=convertToKernel(new THREE.Vector3(n.x,0,n.z))),this._isCurrentlyDrawing?this._endWallDrawing(null,a):this._startWallDrawing(null,a,t)}_hoverOn(e){this._isCurrentlyDrawing||(e.hoverOn(),this._hoveredObject=e,this.dispatchEvent(3,new SceneEventInfo({planElementViewModel:e})),this._interaction(),this._setCursor())}_hoverOff(e){e.hoverOff(),this.dispatchEvent(4,new SceneEventInfo({planElementViewModel:e})),this._interaction(),this._hoveredObject=null,this._setCursor()}_setCursor(){2===this._state&&this._hasSelection()?setCursor("ew-resize"):1===this._state?setCursor("grabbing"):this._hoveredObject&&this._plannerSelectionHandler.isSelected(this._hoveredObject.getId())?setCursor("move"):this._hoveredObject?setCursor("pointer"):3===this._state?setCursor(isSafari?"url('https://res.cloudinary.com/roomle/image/upload/v1664957371/pencil_j5vkhm.svg') 0 15, auto":"url('https://res.cloudinary.com/roomle/image/upload/v1664957371/pencil_j5vkhm.svg') 3 20, auto"):setCursor("default")}setCamera(e){this._raycastHelper.setCamera(e)}setScene(e){this._raycastHelper.setScene(e)}getSelectedIds(){return this._plannerSelectionHandler.getSelectedIds()}setSelectionMode(e){this._plannerSelectionHandler.setSelectionMode(e)}setPlanViewModel(e){this._planViewModel=e}cancelSelection(e){this._plannerSelectionHandler.cancelSelection(e)}_dragStart(e){((this._plannerSelectionHandler.isSelected(e.getId())||this._dragIn)&&0===this._state||this._isDrawingEnabled)&&(this._draggedObject=e,this.setState(1),this.dispatchEvent(8,new SceneEventInfo({planElementViewModel:e})),this._setCursor())}_drag(e,t){if(!this._draggedObject||1!==this._state)return;const n=this.planInteractionHandler;if(this._plannerSelectionHandler.getSelectedIds().length>1){const e=new this._plannerKernelAccess.kernelContainer.PlanObjectPtrList;let a=t.sub(this._draggedObject.getPosition());this._plannerSelectionHandler.getSelectedIds().forEach(t=>e.push_back(this._planViewModel.getPlanObjectForId(t).getPlanElement())),n.moveObjectsBy(e,convertToKernel(a))}else(e instanceof NodePlanElementViewModel||e instanceof WallPlanElementViewModel)&&(t.y=convertToTHREE(e.getPlanElement().getCenter()).y),n.moveElementTo(e.getPlanElement(),convertToKernel(t));this.dispatchEvent(9,new SceneEventInfo({planElementViewModel:e}))}_dragEnd(e,t){this._draggedObject&&(this._draggedObject=null,this.setState(0),this.dispatchEvent(10,new SceneEventInfo({planElementViewModel:e})),this._dragIn&&this.setDragIn(!1),this._setCursor())}_rotate(e,t){if(this._plannerSelectionHandler.isSelected(e.getId())){const n=this.planInteractionHandler,a=e.getPlanObject();n.setObjectRotation(e.getPlanElement(),a.rotation-t)}}setState(e){var t,n;const a=this._state;this._state=e,this._setCursor(),this.dispatchEvent(2,new SceneEventInfo({state:this._state,oldState:a})),this._position=null,2===this._state?null===(t=this.planInteractionHandler)||void 0===t||t.deactivateAllSnappingActivity():2===a&&(null===(n=this.planInteractionHandler)||void 0===n||n.reactivateAllSnappingActivity())}resetState(){this.setState(0)}_move(e){if(3!==this._state&&2===this._state&&this._hasSelection()){this._setCursor();let t=Math.PI/180;const{x:n,y:a}=e.positionRelative;this._position?t=1.4*e.positionRelative.x*Math.PI-1.4*this._position.x*Math.PI:this._position=new THREE.Vector3(e.positionRelative.x,e.positionRelative.y,0);const i=new this._plannerKernelAccess.kernelContainer.PlanObjectPtrList,s=new THREE.Box3;this.getSelectedIds().forEach(e=>{var t;const n=null===(t=this._planViewModel)||void 0===t?void 0:t.getPlanObjectForId(e);n&&n.getObject()&&(i.push_back(n.getPlanElement()),s.expandByObject(n.getContainer()))});const r=s.getCenter(new THREE.Vector3);this.planInteractionHandler.rotateObjectsBy(i,t,convertToKernel(r)),this._position.copy(new THREE.Vector3(n,a,0))}}_hasSelection(){return this._plannerSelectionHandler.getSelectedIds().length>0}async selectPlanElement(e){(e instanceof ConfiguratorPlanObjectViewModel||e instanceof StaticPlanObjectViewModel)&&await e.isInitDone(),this._plannerSelectionHandler.check(e)}_interaction(e){this.dispatchEvent(11,new SceneEventInfo({}))}addComponentDragInHandler(e){if(!this._dragIn)return;const t=e.getBoundingBox();this._addPlanElementHandlers(e,t,{hasListener:!0,priority:1,roomleId:e.getId()}),this._raycastHelper.enableDragIn(t),this._dragStart(e)}enableSnapping(){this.planInteractionHandler.snapObjectsToWalls=!0}disableSnapping(){this.planInteractionHandler.snapObjectsToWalls=!1}enableWallDrawing(){return this._isDrawingEnabled=!0,this._drawingGroup=new THREE.Group,this._drawingGroup.name="Drawing",this._drawingGroup.add(this._createFloorMeshWithHandler()),this._inputManager.addEventListener(6,this._drawWallOnMouseMove,this),this._inputManager.addEventListener(13,this._endWallDrawing,this),this._drawingGroup}cancelWallDrawing(){return this._isDrawingEnabled=!1,this._setStateAndCursor(0),this._inputManager.removeEventListener(6,this._drawWallOnMouseMove),this._inputManager.removeEventListener(13,this._endWallDrawing),this._raycastHelper.clear(),this._drawingGroup}stopDrawing(e=!0){var t;e&&this.planInteractionHandler.cancelDrawing(),this._raycastHelper.getLayers().enable(9),this._isCurrentlyDrawing=!1,this._setStateAndCursor(0),this.dispatchEvent(7),null===(t=this._continousDrawingHelper)||void 0===t||t.endDrawing()}startDrawing(){var e;this._isCurrentlyDrawing||(this._isCurrentlyDrawing=!0,this._raycastHelper.getLayers().disable(9),this.dispatchEvent(6),this._setStateAndCursor(3),null===(e=this._continousDrawingHelper)||void 0===e||e.update())}_toggleDrawing(e,t,n){this._isCurrentlyDrawing?this._endWallDrawing(e,t):this._startWallDrawing(e,t,n)}_endWallDrawing(e,t){if(this._isCurrentlyDrawing){if(this.planInteractionHandler.getContinuousDrawingManager().shouldShowCircle()&&this.planInteractionHandler.getContinuousDrawingManager().shouldShowCircle())this.planInteractionHandler.cancelDrawing();else{const{x:n,y:a}=t||this._getIntersectionPointWithScene(e);this.planInteractionHandler.endDrawing({x:n,y:a,z:0})}this.stopDrawing(!1)}}async _startWallDrawing(e,t,n){(e&&2===e.type||2===n)&&(await this._initMobileDrawing(),this._continousDrawingHelper.update());const{x:a,y:i}=t||this._getIntersectionPointWithScene(e);this.planInteractionHandler.beginDrawing({x:a,y:i,z:0}),this.startDrawing()}async _initMobileDrawing(){if(this.planInteractionHandler.setDrawingType(0),this.planInteractionHandler.setSnapFeedbackWhileDrawing(!0),!this._continousDrawingHelper){const{default:e}=await import("./continuous-drawing-helper-148a0bca.js");this._continousDrawingHelper=new e,this._continousDrawingHelper.init(this._drawingGroup,this.planInteractionHandler.getContinuousDrawingManager(),this._kernelZoomFactor)}}_drawWallOnMouseMove(e){var t;if(!this._isCurrentlyDrawing)return;const{x:n,y:a}=this._getIntersectionPointWithScene(e);this.planInteractionHandler.currentDrawingPosition({x:n,y:a,z:0}),null===(t=this._continousDrawingHelper)||void 0===t||t.update(),this.dispatchEvent(5)}_createNode(e,t){if(!this._isCurrentlyDrawing)return;const{x:n,y:a}=t||this._getIntersectionPointWithScene(e);this.planInteractionHandler.forceNode({x:n,y:a,z:0}),this._raycastHelper.clear()}_getIntersectionPointWithScene(e){return this._raycastHelper.intersectMouseOnScene(e)}_setStateAndCursor(e){this.setState(e),this._setCursor()}setKernelZoomFactor(e){var t;this._kernelZoomFactor=e,null===(t=this._continousDrawingHelper)||void 0===t||t.setKernelZoomFactor(e)}}__decorate([inject],PlannerSceneEventHandler.prototype,"_plannerSelectionHandler",void 0),__decorate([inject],PlannerSceneEventHandler.prototype,"_plannerKernelAccess",void 0);const createTransferableObjectPosition=(e,t,n,a)=>{const i=(new THREE.Box3).setFromObject(e.getContainer()).getCenter(new THREE.Vector3);return{runtimeId:e.getId(),position2d:threeVectorToTransferableXY(getScreenXY(i,t,n,a))}},getPlanObjectFromPlanOverview=(e,t)=>{const n=e.planInteractionHandler.getPlan(),a=e.planModelViewHelper.getPlanOverview(n);return convertCObject(a.objects).find(e=>e.runtimeId===t)},mapToUiPlanObjects=async(e,t,n)=>{let a=[];const i=[],s=[];await Promise.all(e.map(async e=>{const n=convertCObject(e);if(n.catalogItemId?i.push(n.catalogItemId):n.configurationHash&&s.push(n.configurationHash),n.parts){const e=n.configurationHash||n.catalogItemId,a=await t.addUiDataAndPriceToPartList(n.parts,e);n.parts=a}n.data=null,a.push(n)}));const[r,o]=await Promise.all([n.getItems(i),n.getConfigurations(s)]),l=[],c=new Map;for(const e of r)c.set(e.id,e);for(const e of o)c.set(e.id,e),l.push(e.rootComponentId);const h=await n.getComponents(l),d=new Map;for(const e of h)d.set(e.id,e);for(const e of a){const t=e.catalogItemId||e.configurationHash,n=c.get(t)||null;if(n&&!n.label&&d.has(n.rootComponentId)){const e=d.get(n.rootComponentId);n.label=e.label}n&&!n.label&&(n.label=t),e.data=n}return a};class PlannerSceneManager extends ConfiguratorSceneManager{constructor(e,t,n,a){super(e,t,a),this._staticItemGuard=new AsyncGuard,this._configurableItemGuard=new AsyncGuard,this.currentSelection=null,this._stopRendering=!0,this._configuratorContext.baseContext="planner",this._roomlePlannerCallback=n,this._plannerMeshGenerator.maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._plannerMeshGenerator.maxTextures=this._renderer.capabilities.maxTextures,this._plannerSceneEventHandler=new PlannerSceneEventHandler(e,this._scene,this._cameraControl.getCamera(),this._getInputManager()),this._plannerSceneEventHandler.addEventListener(2,({state:e,oldState:t})=>{2===t&&e!==t&&this._roomlePlannerUiCallback.onRotationCancel(),2===e||1===e||3===e?(this._cameraControl.lock(),this._onCameraMove()):(this._cameraControl.unlock(),this._onCameraIdle())},this),this._plannerSceneEventHandler.addEventListener(11,()=>this._renderWithoutShadowsAndAO(),this),this._plannerSceneEventHandler.addEventListener(3,({planElementViewModel:e})=>this._onPlanElementHoverOn(e),this),this._plannerSceneEventHandler.addEventListener(4,({planElementViewModel:e})=>this._onPlanElementHoverOff(e),this),this._plannerSceneEventHandler.addEventListener(0,({planElementViewModel:e})=>{e instanceof StaticPlanObjectViewModel&&this._initData.debug&&e.getGLBUrl(),this._highlightPlanElement(e),this._onSelectionChange(e),this._renderWithoutShadowsAndAO()},this),this._plannerSceneEventHandler.addEventListener(1,({planElementViewModel:e,reason:t})=>{this._highlightPlanElement(null),this._onSelectionCancel(e),this._roomlePlannerUiCallback.onSelectionCancel(t),this._renderWithoutShadowsAndAO()},this),this._plannerSceneEventHandler.addEventListener(8,({planElementViewModel:e})=>{this._getKernelAccess().planInteractionHandler.startInteraction(),this._cameraControl.lock(),e instanceof WallPlanElementViewModel&&this._sendWallDimensions(),this._environment instanceof BakedShadowEnvironment&&this._environment.removeFromScene(),this._requestRender(),this._dragStartBounds=this.getBounds()},this),this._plannerSceneEventHandler.addEventListener(9,({planElementViewModel:e})=>{this._cameraControl.checkNearFarDistance(e.getPosition()),this._requestRender()},this),this._plannerSceneEventHandler.addEventListener(10,async({planElementViewModel:e})=>{const t=this._getKernelAccess().planInteractionHandler;t.endInteraction(),this._cameraControl.unlock(),this._environment instanceof BakedShadowEnvironment&&this._environment.addToScene();const n=this._getDragPosition(e.getPosition());n&&t.moveElementTo(e.getPlanElement(),convertToKernel(n)),this.updateEnvironment(this.getBounds(),!0),this._zoomToBounds(!1),this._renderEverything();const a=getPlanObjectFromPlanOverview(this._plannerKernelAccess,e.getId());let i;a&&(i=await mapToUiPlanObjects([a],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(PLAN_ELEMENT_CHANGE_TYPES.CHANGED,i?i[0]:null)},this),this._plannerSceneEventHandler.addEventListener(6,()=>{this._setKernelZoomFactor(),this._renderWithoutShadowsAndAO()},this),this._plannerSceneEventHandler.addEventListener(5,()=>this._renderWithoutShadowsAndAO(),this),this._plannerSceneEventHandler.addEventListener(7,()=>this._renderWithoutShadowsAndAO(),this),this._getKernelAccess().addPlannerListener(this),this._plannerMeshGenerator.setMaterialLoadedListener(()=>{this._configurableItemGuard.resolve(),this._requestRender()}),window.onbeforeunload=this.clearScene.bind(this),this._renderListener=()=>{this._requestRender()},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this.disableConfiguratorEvents(),this.enablePlannerEvents()}planCleared(){}planHistoryStateChanged(){this._sendWallDimensions()}_getViewModel(){return this._viewModel||(this._viewModel=new PlanViewModel(this._creator_)),this._viewModel}_onPlanElementHoverOn(e){this._highlightPlanElement(e)}_onPlanElementHoverOff(e){this._highlightPlanElement(null)}_getDragPosition(e){if(!this._plannerSceneEventHandler.isDragIn())return null;const t=this._dragStartBounds?this._dragStartBounds:this.getBounds(),n=t.getCenter(new THREE.Vector3),a=e.distanceTo(n),i=t.getSize(new THREE.Vector3),s=Math.max(i.x,i.z)+3;if(a>s){const t=(new THREE.Vector3).subVectors(e,n).normalize();return n.clone().add(t.multiplyScalar(s))}return null}_onSelectionChange(e){const t={};e instanceof StaticPlanObjectViewModel&&(t.item=e.getRapiItem(),t.staticItemRuntimeId=e.getPlanElement().getId()),e instanceof ConfiguratorPlanObjectViewModel&&(t.configurationRuntimeId=e.getConfigurationRuntimeId()),e instanceof WallPlanElementViewModel&&(t.wall=e.getWallDimension()),e instanceof FloorPlanElementViewModel&&(t.staticItemRuntimeId=e.getPlanElement().getId());let n=(e=>{if(e instanceof StaticPlanObjectViewModel){const t=e.getPlanObject().getObjectType();return"door"!==t&&"window"!==t?"static":t}return e instanceof ConfiguratorPlanObjectViewModel?"configuration":e instanceof WallPlanElementViewModel?"wall":e instanceof FloorPlanElementViewModel?"floor":"unknown"})(e);const a=(async()=>{const t={};if(e instanceof StaticPlanObjectViewModel&&(t.item=e.getRapiItem(),t.staticItemRuntimeId=e.getPlanElement().getId()),e instanceof ConfiguratorPlanObjectViewModel){await e.isInitDone();const a=e.getConfigurationRuntimeId(),i=e.getPlanObject().getCatalogItemId();let s,r=i;if(r||(r=this._getKernelAccess().kernelInstance.getHashOfConfiguration(a)),this._configuratorContext.planObjectId=a,this._configuratorContext.planElementId=e.getId(),this._configuratorContext.rootComponentId=e.getRootComponentRuntimeId(),i&&isIdItemId(i)){const e=await this._rapiAccess.getItem(i);t.item=e,s=e.rootComponentId?e.rootComponentId:null}else try{const e=await this._rapiAccess.getConfiguration(r);t.configuration=e,s=e.rootComponentId?e.rootComponentId:null}catch(e){console.warn("Could not get RAPI configuration for kernel hash "+r+", saving configuration...");const n=await this._getKernelAccess().getConfigurationData(a),i=await this._rapiAccess.saveConfiguration(n);t.configuration=i,s=i.rootComponentId?i.rootComponentId:null}if(s){const e=await this._rapiAccess.getComponent(s);t.component=e}t.configurationRuntimeId=a,n="configuration"}return t.planElementId=e.getId(),copy(t)})();this.currentSelection=copy(t),this._roomlePlannerUiCallback.onSelectionChange(copy(this._plannerSceneEventHandler.getSelectionMode()),copy(n),copy(t),a,e),(e instanceof WallPlanElementViewModel||e instanceof NodePlanElementViewModel)&&(this._getViewModel().getNodePlanObjectViewModels().forEach(e=>e.show()),this._updateNodeSize()),this._renderWithoutShadowsAndAO()}_onSelectionCancel(e){this._getViewModel().getNodePlanObjectViewModels().forEach(e=>e.hide()),this._renderWithoutShadowsAndAO(),this.resetConfiguratorContext(),this.currentSelection=null}resetConfiguratorContext(){this._configuratorContext.planObjectId=0,this._configuratorContext.planElementId=0,this._configuratorContext.rootComponentId=0,this._configuratorContext.dockingRootComponentId=0}_setupScene(e,t){super._setupScene(e,t,!0),this._lightSetting=new PlannerLightSetting(this._scene,this._lightSetting),this._initData.moc?this._setEnvironment(new BackgroundEnvironment(this._scene,this._environment,new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND))):(this._addSky(),this._setEnvironment(new BakedShadowEnvironment(this._scene,this._environment)))}onBeforeRender(){this._cameraControl instanceof CameraControl3D&&(hideWallsBasedOnCamera(this._cameraControl.getCamera(),this._getViewModel().getWallPlanObjectViewModels()),this._renderEverything())}_getInputManager(){return this._plannerInputManager}createCameraControl(e,t){this.setMode(e)}startViewing(){this._configuratorContext.baseContext="glb-viewer";const e=this._plannerSceneEventHandler.getSelectedIds();if(1===e.length){const t=this._getViewModel().getPlanObjectForId(e[0]);this._cameraControl instanceof CameraControl3D&&this._cameraControl.setObjectRotation(t.getPlanElement().rotation),this._getViewModel().hideAllExcept(t.getId())}this.resetCamera(),this.disablePlannerEvents(),this.updateEnvironment(this.getBounds(),!0)}startConfiguring(){var e;this._configuratorContext.baseContext="configurator";const{planElementId:t}=this._configuratorContext,n=this._getViewModel().getPlanObjectForId(t);n&&(this.setRootComponentId(n.getRootComponentRuntimeId()),this._cameraControl instanceof CameraControl3D&&this._cameraControl.setObjectRotation(n.getPlanElement().rotation));const a=null==n?void 0:n.getConfigurationRuntimeId();this._configuratorContext.planObjectId!==a&&(this._configuratorContext.planObjectId=a),this._getViewModel().hideAllExcept(t),this.resetCamera(),this.disablePlannerEvents(),this.enableConfiguratorEvents(),this.updateScene(),this._getKernelAccess().updatePlanObjectDependencies(a),this._getKernelAccess().requestPartListAndUpdatePricesOfParts(),this._getKernelAccess().planObjectUpdated(a),this.updateEnvironment(this.getBounds(),!0);const i=null===(e=this._plannerKernelAccess)||void 0===e?void 0:e.planInteractionHandler;null==i||i.startInteraction()}async selectPlanObject(e){if(this._plannerSceneEventHandler.getSelectedIds().includes(e))return;const t=this._getViewModel().getPlanObjectForId(e);await this._plannerSceneEventHandler.selectPlanElement(t),this._onSelectionChange(t)}backToPlanner(){var e;if(this._getViewModel().showAll(),"configurator"===this._configuratorContext.baseContext){const t=null===(e=this._plannerKernelAccess)||void 0===e?void 0:e.planInteractionHandler;null==t||t.endInteraction()}this._configuratorContext.baseContext="planner",this._cameraControl instanceof CameraControl3D&&this._cameraControl.setObjectRotation(0),this.resetCamera(),this.enablePlannerEvents(),this.disableConfiguratorEvents(),this.updateScene()}resetCamera(){this._cameraControl.hasSavedState()?this.resetCameraToState():this.resetCameraPositionToStart()}resetCameraToState(){this._cameraControl.resetToState()}_getYRotationOfObject(e){let t=e.getWorldDirection(new THREE.Vector3).clone();t.y=0,t.lengthSq()<.01&&(t=new THREE.Vector3(0,1,0),t.applyQuaternion(e.quaternion),t.y=0),t.normalize();let n=Math.asin(t.x);return t.z<0&&(n=Math.PI-n),n<0&&(n+=2*Math.PI),n}loadStaticPlanObjects(){let e=new Map;this._getViewModel().getStaticPlanObjectViewModels().forEach(t=>{let n=t.getPlanObject();e.has(n.getCatalogItemId())?e.get(n.getCatalogItemId()).push(t):e.set(n.getCatalogItemId(),[t])}),this._rapiAccess.getItems(Array.from(e.keys())).then(t=>{let n=[];t.forEach(t=>{this._getKernelAccess().catalogItemLoaded(t),e.get(t.id).forEach(e=>{n.push(new Promise((n,a)=>{e.setRapiItem(t).then(()=>{this._requestRender(),n()},a)}))})}),Promise.all(n).then(()=>this._staticItemsLoaded())})}_staticItemsLoaded(){this._requestRender(),this._staticItemGuard.resolve(),this._roomlePlannerUiCallback.onItemsLoaded()}preload(e){this._planId=e;let t=this._localStorageHelper.getItem(this._planId,"rml_plans");t&&this._loadGLTF(t).then(e=>{this._preloadScene=e,this._preloadScene&&this._scene.add(this._preloadScene),this._requestRender()})}planXMLLoaded(e){this.endPlanConstruction(e);const t=e.getBounds(),n=kernelBoxToThreeBox(t);this._updateBounds(n),this.loadStaticPlanObjects()}planCompletelyLoaded(e){this._stopRendering=!1,this._renderEverything(),this.resetCamera()}handlerSwitchedPlans(e,t){if(this._getViewModel().setReference(t),this._getKernelAccess().coupleReferences(this._getViewModel(),t),this._getViewModel().setPlannerSceneEventHandler(this._plannerSceneEventHandler),this._getViewModel().setGeometriesMergedListener(()=>{this._renderEverything()}),this._plannerSceneEventHandler.setPlanViewModel(this._getViewModel()),e&&this.clearScene(),!this._initData.moc){this._addSky();let e=new THREE.PlaneGeometry(1e3,1e3);e.rotateX(-Math.PI/2);let t=new THREE.MeshStandardMaterial({color:"#f0f0f0",roughness:1,metalness:0}),n=new THREE.Mesh(e,t);n.name="Ground",n.position.y=-.01,n.receiveShadow=!0,this._scene.add(n)}this.resetCamera(),this._setCeiling(),this._staticItemGuard.reset(),this._configurableItemGuard.reset(),Promise.all([this._staticItemGuard.wait(),this._configurableItemGuard.wait()]).then(this._itemsLoaded.bind(this))}_itemsLoaded(){const e=this._getViewModel().getCorePlan();if(this._pixotron){const t=kernelBoxToThreeBox(e.getBounds());this._pixotron.getShadowPass().setShadowRecieverBBox(t)}this._roomlePlannerUiCallback.onCompletelyLoaded(),this._pixotronUtil&&this._getViewModel().materialQueue.finished(!0).then(()=>{this._pixotronUtil.unLockAdapter()}),this.updateEnvironment(this.getBounds(),!0),this._renderEverything(),Benchmark.end("loadingTime")}beginPlanConstruction(e){}addPlanMesh(e,t,n,a,i,s,r){}endPlanConstruction(e){this._renderLoopFunction=()=>{this._scene.add(this._getViewModel().getConstructionGroup()),this._scene.add(this._getViewModel().getCeilingGroup()),this._scene.add(this._getViewModel().getFloorGroup()),this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(this._getViewModel().getBoundingBox()),this._scene.remove(this._preloadScene)}}async addPlanObjectToScene(e){if(e){const t=e.getContainer();fadeIn(t),this._scene.add(t),this._plannerSceneEventHandler.isDragIn()&&(this._plannerSceneEventHandler.addComponentDragInHandler(e),this._requestRender()),this._roomlePlannerUiCallback.onPlanChanged(),await e.isInitDone(),this._zoomToBounds(!1,!1),this.updateEnvironment(this.getBounds()),this._renderEverything();const n=getPlanObjectFromPlanOverview(this._plannerKernelAccess,e.getId());let a;n&&(a=await mapToUiPlanObjects([n],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(PLAN_ELEMENT_CHANGE_TYPES.ADDED,a?a[0]:null)}}removePlanObjectFromScene(e){(e instanceof WallPlanElementViewModel||e instanceof NodePlanElementViewModel)&&this._sendWallDimensions(),this._scene.remove(e.getContainer()),e.clear(),this.updateEnvironment(this.getBounds(),!0),this._zoomToBounds(!0),this._renderEverything()}async planElementChanged(e,t){if(this._drawingEnabled&&this._sendWallDimensions(!1),this.updateEnvironment(this.getBounds(),!0),this._renderEverything(),this._onPlanChanged(),!this._plannerSceneEventHandler.isDragIn()){const e=getPlanObjectFromPlanOverview(this._plannerKernelAccess,t.getId());let n;e&&(n=await mapToUiPlanObjects([e],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(PLAN_ELEMENT_CHANGE_TYPES.CHANGED,n?n[0]:null)}}exportGLB(e,t){this._scriptLoader.fetch(GLTF_EXPORTER_FILE_NAME,{id:"gltf-exporter"}).then(()=>{let n=new THREE.GLTFExporter;e||(e=[],this._scene.children.forEach(t=>{this._isPartOfScene(t)&&e.push(t)})),n.parse(e,e=>{let n=t||"test";this._localStorageHelper.addItem(n,JSON.stringify(e),"rml_plans")},{binary:!1,embedImages:!0,forceIndices:!0})})}importGLB(e){this._loadGLB(e).then(e=>this._scene.add(e))}clearScene(){this._plannerMeshGenerator.clear(),this._getViewModel().sceneCleared(),super.clearScene()}_addSky(){this._sky=new THREE.Sky,this._sky.name="Sky",this._sky.scale.setScalar(45e4),this._scene.add(this._sky),this._sky.material.uniforms.turbidity.value=10,this._sky.material.uniforms.rayleigh.value=2,this._sky.material.uniforms.luminance.value=1,this._sky.material.uniforms.mieCoefficient.value=.005,this._sky.material.uniforms.mieDirectionalG.value=.8;let e=new THREE.Mesh(new THREE.SphereBufferGeometry(2e4,16,8),new THREE.MeshBasicMaterial({color:16777215}));e.name="Sunsphere",e.position.y=-7e5,e.visible=!1,this._scene.add(e);let t=-.2*Math.PI,n=2*Math.PI*-.25;e.position.x=4e5*Math.cos(n),e.position.y=4e5*Math.sin(n)*Math.sin(t),e.position.z=4e5*Math.sin(n)*Math.cos(t),e.visible=!0,this._sky.material.uniforms.sunPosition.value.copy(e.position),this._lightSetting instanceof PlannerLightSetting&&this._lightSetting.updateSunPosition(.3,.25)}switchTo2D(){if(this._onCameraMove(),!(this._cameraControl instanceof CameraControl2D)){for(const e of this._getViewModel().getWallPlanObjectViewModels())e.show();this._getViewModel().setCameraType(CAMERA_TYPE.CAMERA_2D),this._renderEverything(),this._changeCameraControl(new CameraControl2D(this._creator_,this._getInputManager(),null,this.getOrthographicOffsetCamera())),this._updateCamera(),this._addCameraControlListener(),this._setCeiling(),this._roomlePlannerUiCallback.onCameraChanged(CAMERA_TYPE.CAMERA_2D),this._setCameraControlListeners(),this._setKernelZoomFactor(),this._onCameraMove()}}switchTo3D(){this._onCameraMove(),this._cameraControl instanceof CameraControl3D||(this._getViewModel().setCameraType(CAMERA_TYPE.CAMERA_3D),this._renderEverything(),this._changeCameraControl(new CameraControl3D(this._creator_,this._getInputManager(),new THREE.Vector3(0,10,0),this.getPerspectiveOffsetCamera())),this._updateCamera(),this._addCameraControlListener(),this._setCeiling(),this._roomlePlannerUiCallback.onCameraChanged(CAMERA_TYPE.CAMERA_3D),this._setCameraControlListeners())}_setCameraControlListeners(){this._cameraControl.addEventListener(8,()=>{this._onCameraIdle()},this),this._cameraControl.addEventListener(1,()=>{this._onCameraMove()},this),this._cameraControl.addEventListener(3,()=>{this._onCameraMove()},this),this._cameraControl.addEventListener(4,()=>{this._onCameraMove()},this),this._cameraControl.addEventListener(5,()=>{this._onCameraZoomChange()},this)}_onCameraZoomChange(){this._setKernelZoomFactor()}_setKernelZoomFactor(){var e;const t=this._cameraControl.getKernelZoomFactor();this._getKernelAccess().planInteractionHandler.setZoomFactor(t),null===(e=this._plannerSceneEventHandler)||void 0===e||e.setKernelZoomFactor(t)}_setCeiling(){this._getViewModel()&&(this._cameraControl instanceof CameraControlFirstPerson?this._getViewModel().getCeilingGroup().visible=!0:this._getViewModel().getCeilingGroup().visible=!1)}cameraControlChanged(){super.cameraControlChanged(),this._plannerSceneEventHandler&&this._plannerSceneEventHandler.setCamera(this._cameraControl.getCamera())}sceneChanged(){this._plannerSceneEventHandler&&this._plannerSceneEventHandler.setScene(this._scene)}closeHSC(){this._requestRender(),this._cameraControl instanceof CameraControl3D&&this._cameraControl.resetToState()}switchToFirstPerson(){if(this._cameraControl instanceof CameraControlFirstPerson)return;this._plannerMeshGenerator.wallMeshes.forEach(e=>setWallTransparency(e.material,!1,!1)),this._getViewModel().setCameraType(CAMERA_TYPE.CAMERA_FP),this._renderEverything();let e=new THREE.Vector3(0,0,0);this._getViewModel()&&(e=this._getViewModel().getBoundingBox().getCenter(new THREE.Vector3)),this._cameraControl&&this._cameraControl.cleanUp(),this._changeCameraControl(new CameraControlFirstPerson(this._creator_,this._getInputManager(),e,this.getPerspectiveOffsetCamera())),this._addCameraControlListener(),this._setCeiling(),this._roomlePlannerUiCallback.onCameraChanged(CAMERA_TYPE.CAMERA_FP),this._setCameraControlListeners()}_onKeyDown(e){super._onKeyDown(e),this._initData.debug&&this._checkNumKey(e),e.key&&e.key.includes("Shift")&&this._cameraControl instanceof CameraControl3D&&(this._cameraControl.enablePanning(),e.preventDefault())}_checkNumKey(e){e.key&&"1"===e.key&&(this.switchTo2D(),e.preventDefault()),e.key&&"2"===e.key&&(this.switchTo3D(),e.preventDefault()),e.key&&"3"===e.key&&(this.switchToFirstPerson(),e.preventDefault())}_onKeyUp(e){super._onKeyDown(e),!e.key||"Meta"!==e.key&&"Control"!==e.key||(this._plannerSceneEventHandler.setSelectionMode("standard"),e.preventDefault()),e.key&&e.key.includes("Shift")&&this._cameraControl instanceof CameraControl3D&&(this._cameraControl.disablePanning(),e.preventDefault()),!e.key||"Escape"!==e.key&&"Esc"!==e.key||this._drawingEnabled&&(this.escapeDrawing(),this._roomlePlannerUiCallback.onDrawCancel())}setMode(e){switch(e){case CAMERA_TYPE.CAMERA_2D:this.switchTo2D();break;case CAMERA_TYPE.CAMERA_3D:this.switchTo3D();break;case CAMERA_TYPE.CAMERA_FP:this.switchToFirstPerson()}}_highlightPlanElement(e){let t=new Set;e instanceof ConstructionPlanObjectViewModel&&this._cameraControl instanceof CameraControl2D&&e&&e.getTopViewContainer()?t.add(e.getTopViewContainer()):e&&e.getObject()&&e.getObject().children&&e.getObject().children.forEach(e=>t.add(e)),this._plannerSceneEventHandler.getSelectedIds().forEach(e=>{const n=this._getViewModel().getPlanObjectForId(e);n instanceof ConstructionPlanObjectViewModel&&this._cameraControl instanceof CameraControl2D&&n&&n.getTopViewContainer()?t.add(n.getTopViewContainer()):n&&n.getObject()&&n.getObject().children&&n.getObject().children.forEach(e=>t.add(e))}),this._pixotron&&this._pixotron.highlightObjects(Array.from(t))}destroy(){super.destroy(),this._plannerMeshGenerator.removeMaterialLoadedListener(),this._getViewModel().removeGeometriesMergedListener()}getPixotronParams(){return{saoparams:{intensity:.5,occlusionWorldRadius:.6,smoothTransition:!0,samplesPerFrame:4,bias:.02,numSamples:100,accumulative:!1,falloff:2},shadowparams:{shadowMapResolution:1024,shadowRadius:3,shadowQuality:1,smoothTransition:!0,enableAccumulation:!0,shadowBiasMultiplier:.6,nearPlane:.01,farPlane:50,fov:110,side:THREE.FrontSide,numSamples:100},outlineparams:{highlightColor:new THREE.Color(this._initData.colors.SELECTION),edgeStrength:1,transparency:.9,edgeThickness:2}}}getBakedShadowParams(){return{enable:!0,shadowMapResolution:1024,smoothTransition:!0,numSamples:500,numSamplesPerFrame:4,bShadowMaterial:!0,falloff:1.8,darkness:.3,size:1.2,lightDirection:new THREE.Vector3(0,1,0),lightSolidAngle:40,yPosition:.006}}planObjectConfigurationLoaded(e,t,n){if(e&&e.extRef&&t&&t.extRef){let e=t.extRef.jsObject.getPlanObject().getConfigurationRuntimeId();e>0&&this._getViewModel().constructComponents(e)}}addMesh(e,t,n,a,i,s){}_updateBounds(e){e&&("planner"===this._configuratorContext.baseContext&&this._updateCamera(e),super._updateBounds(e))}_updateCamera(e){e||(e=this.getBounds()),e&&(this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateToBounds(e,!1),this._cameraControl instanceof CameraControl2D&&this._cameraControl.zoomToFitBounds(getDrawingMinBounds(e,this._domHelper.element.clientWidth,this._domHelper.element.clientHeight,1.1),!0),this._renderEverything())}_zoomToBounds(e,t=!0){const n=this.getBounds();this._cameraControl instanceof CameraControl3D&&(this._getViewModel().getPlanObjectCount()<=1?this._cameraControl.zoomToFitBounds(n,t):this._cameraControl.checkBoundsAndPlaceCamera(n,t)),this._cameraControl instanceof CameraControl2D&&!this._drawingEnabled&&this._cameraControl.zoomToFitBounds(n,e,t)}updateCameraOnDrawWalls(){const e=this.getBounds();this._cameraControl instanceof CameraControl2D&&this._cameraControl.zoomToFitBounds(e,!1,!0),this._cameraControl instanceof CameraControl3D&&this._cameraControl.zoomToFitBounds(e,!0)}getBounds(){return this._getViewModel()?this._getViewModel().getBoundingBox():null}cancelPlanElementSelection(e){this._plannerSceneEventHandler.cancelSelection(e),this._highlightPlanElement(null),this._requestRender()}async deletePlanElementSelection(){const e=this._plannerSceneEventHandler.getSelectedIds();this.cancelPlanElementSelection("delete_object"),await this.deletePlanElementByIds(e)}async deletePlanElementByIds(e){for(const t of e){const e=this._getViewModel().getPlanObjectForId(t);if(e&&e.getObject()){const t=getPlanObjectFromPlanOverview(this._plannerKernelAccess,e.getId());let n;t&&(n=await mapToUiPlanObjects([t],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(PLAN_ELEMENT_CHANGE_TYPES.REMOVED,n?n[0]:null),this._getKernelAccess().planInteractionHandler.removeElement(e.getKernelObject())}}}rotatePlanElementSelection(e){const t=new(this._getKernelAccess().kernelContainer.PlanObjectPtrList),n=new THREE.Box3;let a={x:0,y:0,z:0};if(this._plannerSceneEventHandler.getSelectedIds().forEach(e=>{const i=this._getViewModel().getPlanObjectForId(e);i&&i.getObject()&&(a=i.getPlanElement().getCenter(),t.push_back(i.getPlanElement()),n.expandByObject(i.getContainer()))}),t.size()>1){const e=n.getCenter(new THREE.Vector3);a=convertToKernel(e)}const i=this._getKernelAccess().planInteractionHandler.groupObjects(t);this._getKernelAccess().planInteractionHandler.rotateGroupBy(i,e,a)}planBoundsChanged(){this.updateEnvironment(this.getBounds()),this._requestRender()}planElementRemoved(e){this._onPlanChanged(),this._renderEverything()}_onPlanChanged(){this._roomlePlannerUiCallback.onPlanChanged()}prepareTopImage(e={}){return new Promise(t=>{this._getViewModel().materialQueue.finished(!0).then(async()=>{let n=this._calculateBoundingBoxOfAllMeshes(.1);this._lightSetting.removeFromScene();let a=await prepareTopImage(this._scene,null,n,e);this._lightSetting.addToScene(),this._requestRender(),t(a)})})}preparePerspectiveImage(e={}){return"configurator"===this._configuratorContext.baseContext?super.preparePerspectiveImage(e):new Promise((t,n)=>{this._getViewModel().materialQueue.finished(!0).then(async()=>{let n;this._cameraControl instanceof CameraControl3D?n=this._cameraControl.getCamera().clone():(n=this.getPerspectiveOffsetCamera(),this._getViewModel().setCameraType(CAMERA_TYPE.CAMERA_3D));let a=this._calculateBoundingBoxOfAllMeshes();this._lightSetting.removeFromScene();const i=await preparePerspectiveImage(this._scene,null,n,a,e);this._cameraControl instanceof CameraControl2D&&this._getViewModel().setCameraType(CAMERA_TYPE.CAMERA_2D),this._lightSetting.addToScene(),this._requestRender(),t(i)},n)})}_calculateBoundingBoxOfAllMeshes(e=0){const t=this.getBounds();return getCameraTargetForBBox(t,e)}enableRotation(){this._plannerSceneEventHandler.setState(2)}disableRotation(){this._plannerSceneEventHandler.resetState()}enableSnapping(){this._plannerSceneEventHandler.enableSnapping()}disableSnapping(){this._plannerSceneEventHandler.disableSnapping()}dragIn(e){this._plannerSceneEventHandler.setDragIn(!0,e)}getPlannerSceneEventHandler(){return this._plannerSceneEventHandler}disablePlannerEvents(){this._plannerSceneEventHandler.disable()}enablePlannerEvents(){this._plannerSceneEventHandler.enable()}_onCameraIdle(){return super._onCameraIdle()&&(this._sendWallDimensions(),this._sendPlanObjectPositions(),this._roomlePlannerUiCallback.onCameraIdle()),!0}_onCameraMove(){return super._onCameraMove()&&(this._roomlePlannerUiCallback.disableWallDimensions(),this._roomlePlannerUiCallback.cameraStartsMoving()),this._updateNodeSize(),!0}_updateNodeSize(){if(this._cameraControl instanceof CameraControl2D){const e=1/this._cameraControl.getCamera().zoom;this._getViewModel().setNodeZoom(e)}}_sendPlanObjectPositions(){if(this._cameraControl.isLocked())return;const{clientWidth:e,clientHeight:t}=this._domHelper.element,n=this._cameraControl.getCamera(),a=[],i=this._getViewModel().getStaticPlanObjectViewModels();for(const s of i)a.push(createTransferableObjectPosition(s,n,e,t));const s=this._getViewModel().getConfigurablePlanObjectViewModels();for(const i of s)a.push(createTransferableObjectPosition(i,n,e,t));this._roomlePlannerUiCallback.onUpdatePlanObjectPositions(a)}_sendWallDimensions(e=!0){if(this._cameraControl.isLocked()&&e)return;const t=[],{clientWidth:n,clientHeight:a}=this._domHelper.element,i=this._getViewModel().getWallPlanObjectViewModels();for(const e of i){const i=e.getWallDimension();if(i.length>0&&(i.fromPosition2d=getScreenXY(i.fromPosition3d,this._cameraControl.getCamera(),n,a),i.toPosition2d=getScreenXY(i.toPosition3d,this._cameraControl.getCamera(),n,a),i.textPosition2d=getScreenXY(i.textPosition3d,this._cameraControl.getCamera(),n,a),i.lengthFormatted=this._unitFormatter.formatMMValueToUnitString(i.length),t.push(wallDimensionToTransferable(i))),this._initData.debug){const e=new THREE.SphereGeometry(.1,32,16),t=new THREE.MeshBasicMaterial({color:16711680}),n=new THREE.Mesh(e,t);n.position.copy(i.fromPosition3d);const a=new THREE.Mesh(e,t);a.position.copy(i.toPosition3d);const s=new THREE.Mesh(e,new THREE.MeshBasicMaterial({color:65280}));s.position.copy(i.textPosition3d),this._scene.add(n),this._scene.add(a),this._scene.add(s)}}this._roomlePlannerUiCallback.onUpdateWallDimensions(t)}enableWallDrawing(){if(this._cameraControl instanceof CameraControl2D){const e=getDrawingMinBounds(this.getBounds(),this._domHelper.element.clientWidth,this._domHelper.element.clientHeight);this._cameraControl.zoomToFitBounds(e,!0)}this._drawingEnabled||(this._drawingEnabled=!0,this._scene.add(this._plannerSceneEventHandler.enableWallDrawing()))}disableWallDrawing(){this._drawingEnabled=!1,this._cameraControl.unlock(),this._scene.remove(this._plannerSceneEventHandler.cancelWallDrawing())}escapeDrawing(){this._plannerSceneEventHandler.stopDrawing()}_changeCameraControl(e){super._changeCameraControl(e)}setSceneEvents(e){var t,n;void 0!==e.construction&&(null===(t=this._plannerSceneEventHandler)||void 0===t||t.enableConstructionEvents(e.construction)),void 0!==e.objects&&(null===(n=this._plannerSceneEventHandler)||void 0===n||n.enableObjectEvents(e.objects))}startedDrawing(){this._plannerSceneEventHandler.startDrawing()}stoppedDrawing(){this._plannerSceneEventHandler.stopDrawing()}disableEvents(){super.disableEvents(),this.disablePlannerEvents()}enableEvents(){super.enableEvents(),"planner"===this._configuratorContext.baseContext&&this.enablePlannerEvents()}resetCameraPositionToStart(e=!0){this._cameraControl instanceof CameraControl3D&&super.resetCameraPositionToStart(e),this._cameraControl instanceof CameraControl2D&&this._updateCamera()}async moveCamera(e){return this._cameraControl instanceof CameraControl3D?super.moveCamera(e):Promise.reject("Camera can only be moved in 3D")}_setInteriorOrExteriorWallMaterial(e,t){const n=this._getViewModel().getWallPlanObjectViewModels();if(!n.length)return;const a=this._getKernelAccess().planInteractionHandler,i=e=>{a.setWallLeftMaterial(e,applyMaterialToKernelMaterial(e.leftMaterial,t))},s=e=>{a.setWallRightMaterial(e,applyMaterialToKernelMaterial(e.rightMaterial,t))},r=n.map(e=>e.getKernelObject()),o=this._plannerKernelAccess.kernelContainer.WallType.InnerWall,l=this._plannerKernelAccess.kernelContainer.WallType.OuterWallLeft,c=this._plannerKernelAccess.kernelContainer.WallType.OuterWallRight;for(const t of r)t.wallType===o&&"interior"===e&&(i(t),s(t)),t.wallType===l&&("interior"===e?s(t):i(t)),t.wallType===c&&("exterior"===e?s(t):i(t))}changeInteriorWallsMaterial(e){this._setInteriorOrExteriorWallMaterial("interior",e)}changeExteriorWallsMaterial(e){this._setInteriorOrExteriorWallMaterial("exterior",e)}changeFloorsMaterial(e){const t=this._getViewModel().getFloorPlanObjectViewModels();if(!t.length)return;const n=this._getKernelAccess().planInteractionHandler,a=t.map(e=>e.getKernelObject());for(const t of a)n.setFloorMaterial(t,applyMaterialToKernelMaterial(t.material,e))}getWallAngleDegrees(e){if(!(e instanceof WallPlanElementViewModel))return 0;const t=this._cameraControl.getCamera(),n=new THREE.Vector2(t.position.x,t.position.z),a=new THREE.Vector2(e.getPosition().x,e.getPosition().z).clone().sub(n).normalize(),i=e.getKernelObject(),s=new THREE.Vector2(Math.sin(i.getAngle()),Math.cos(i.getAngle())),r=a.angle()-s.angle();return THREE.MathUtils.radToDeg(r)}}__decorate([inject],PlannerSceneManager.prototype,"_rapiAccess",void 0),__decorate([inject],PlannerSceneManager.prototype,"_plannerMeshGenerator",void 0),__decorate([inject],PlannerSceneManager.prototype,"_plannerInputManager",void 0),__decorate([inject],PlannerSceneManager.prototype,"_roomlePlannerUiCallback",void 0),__decorate([inject],PlannerSceneManager.prototype,"_localStorageHelper",void 0),__decorate([inject],PlannerSceneManager.prototype,"_unitFormatter",void 0);const OFFSET={left:0,top:1,right:1,bottom:0};class RoomlePlanner{constructor(e){this._hscInstance=null,this._glbInstance=null,this._configurator=null,this._currentMode=1,this._creator_=e,this._kernelAccessCallback.addListener(this)}deleteSelection(){this._sceneManager.deletePlanElementSelection()}rotateSelection(e){this._sceneManager.rotatePlanElementSelection(e)}cancelSelection(e="unknown"){this._sceneManager.cancelPlanElementSelection(e)}init(e,t,n){return Benchmark.start("loadingTime"),this._domHelper.setDomElement(e),this._sceneManager?(this._lifeCycleManager.resume(),Promise.resolve()):(this._preloadPlanId=t,this.setOverrides(n),new Promise(this._initPromiseCallback.bind(this)))}loadPlanXml(e,t){return this.setOverrides(t),new Promise(n=>{this._plan=this._planInteractionHandler.loadPlanXML(e),this._sceneManager.planXMLLoaded(this._plan),this._roomlePlannerUiCallback.onTotalFloorAreaChanged(this._planInteractionHandler.getPlan().getTotalFloorArea()),this._currentMode=1,this._initData.moc&&(t.id?this._rapiAccess.trackView(t.id):this._rapiAccess.trackView("planXML")),n()})}loadPlan(e,t){return this.setOverrides(t),new Promise((t,n)=>{const a=isPlanSnapshotId(e);(a?this._rapiAccess.getPlanSnapshot(e):this._rapiAccess.getPlan(e)).then(n=>{const i=a?n.plan:n.planObjects;this._plan=this._planInteractionHandler.loadPlanXML(i),this._sceneManager.planXMLLoaded(this._plan),this._roomlePlannerUiCallback.onTotalFloorAreaChanged(this._planInteractionHandler.getPlan().getTotalFloorArea()),this._currentMode=1,this._initData.moc&&this._rapiAccess.trackView(e),t(n)},n)})}setOverrides(e){e&&(this._initData.setOverrides(e),this._globalInitData.setOverrides(e))}switch2D(){this._sceneManager.switchTo2D()}switch3D(){this._sceneManager.switchTo3D()}switchToFirstPerson(){this._sceneManager.switchToFirstPerson()}resetCameraPosition(){this._sceneManager.resetCameraPositionToStart()}exportGLB(){this._sceneManager.exportGLB()}importGLB(e){this._sceneManager.importGLB(e)}_initPromiseCallback(e,t){this._threeLoader.fetch().then(()=>{let t=this._scriptLoader.fetch(GLTF_LOADER_FILE_NAME,{id:"gltf-loader"}),n=this._scriptLoader.fetch(DRACO_LOADER_FILE_NAME,{id:"draco-loader"}),a=this._scriptLoader.fetch(TWEEN_FILE_NAME,{id:"tween-js"}),i=this._scriptLoader.fetch("static/Sky-6621935ea8a523af.js",{id:"sky-js"});Promise.all([t,n,a,i]).then(()=>{this._kernelReadyCallback=e;const{dls:t,ls:n,mode:a,stats:i}=this._initData;this._sceneManager||(this._sceneManager=new PlannerSceneManager(this._creator_,OFFSET,this,a)),this._preloadPlanId&&this._sceneManager.preload(this._preloadPlanId);const s=DynamicLightSettingLoader.createDynamicLightSettingSource(t,n);i&&this.showStats(),this.enableHD(s),this._planInteractionHandler&&this._kernelReadyCallback()})})}enableHD(e){return new Promise((t,n)=>{const a=()=>{this._sceneManager.enableHD(e),t()};this._threeLoader.fetch().then(()=>Promise.all(PIXOTRON_EFFETCS.map(e=>this._scriptLoader.fetch(e,{id:e})))).then(()=>{this._scriptLoader.fetch(PIXOTRON_FILE_NAME,{id:"pi-js"}).then(a,n)},n)})}isReady(){this._planInteractionHandler=this._plannerKernelAccess.planInteractionHandler,this._kernelReadyCallback&&this._kernelReadyCallback()}showBenchmarks(){Benchmark.showBenchmarks()}getConfiguratorApi(){return this._configurator||(this._configurator=new RoomleConfigurator(this._creator_),this._configurator.setOverrides(this._initData),this._configurator.initSceneManager(this._sceneManager)),this._configurator}startViewing(){this._sceneManager.startViewing()}startConfiguring(){var e,t;this._sceneManager.startConfiguring();const n=this._sceneManager.currentSelection,a=(null===(e=n.item)||void 0===e?void 0:e.id)||(null===(t=n.configuration)||void 0===t?void 0:t.id);a&&this._configurator.notifyUiAboutNewLabel(a)}async selectPlanObjectById(e){return this._sceneManager.selectPlanObject(e)}backToPlanner(){this._sceneManager.backToPlanner()}async switchToConfigurator(){const e=await this._singlePromiseFactory.create(3,"startHSC",e=>{if(this._hscInstance)return e(this._hscInstance);import("./configurator-cc79f2b3.js").then(({Configurator:t})=>{const n=new t(this._creator_);n.boot({kernelInstance:this._planInteractionHandler.getConfiguratorKernel(),kernelContainer:this._plannerKernelAccess.kernelContainer}),n.getApi().setOverrides(this._initData),n.getApi().initSceneManager(this._sceneManager),n.getApi().init(this._domHelper.element).then(()=>{this._hscInstance=n,e(this._hscInstance)})})});return this._currentMode=0,this.cancelSelection(),e}async switchToViewer(){const e=await this._singlePromiseFactory.create(4,"startGLB",e=>{if(this._glbInstance)return e(this._glbInstance);import("./glb-viewer-4609c942.js").then(t=>{const n=new t.GlbViewer(this._creator_);n.boot(),n.getApi().setOverrides(this._initData),n.getApi().init(this._domHelper.element).then(()=>{this._glbInstance=n,e(this._glbInstance)})})});return this._currentMode=2,this.cancelSelection(),e}switchToPlanner(e){e&&this.loadPlan(e),this._currentMode=1}updateSize(){this._sceneManager.updateCamera()}getMain(){}update(){this.updateSize(),this._glbInstance&&this._glbInstance.getApi().updateSize(),this._hscInstance&&this._hscInstance.getApi().updateSize()}get callbacks(){return this._roomlePlannerUiCallback}set callbacks(e){this._roomlePlannerUiCallback=e}showStats(){this._sceneManager.showStats()}onCloseHSC(){this._sceneManager.closeHSC(),this._hscInstance&&this._hscInstance.getApi().pauseKernelCallbacks()}back(){if(2===this._currentMode&&this._glbInstance&&this._glbInstance.getApi().clearScene(),0===this._currentMode&&this._hscInstance){const e=this._hscInstance.getApi();e.cancelSelection(),e.cancelDockings(),e.hideDimensions(),e.disableMultiselect(),this._sceneManager.updateScene()}this._currentMode=1}backTo(e){console.error("backTo in planner Needs to be implemented later")}getConfigurator(){return this._hscInstance}getCurrentSkin(){return this._rapiAccess.getCurrentSkin()}getRuntimeComponentIdOfRootComponent(e){return e?this._plannerKernelAccess.planInteractionHandler?this._plannerKernelAccess.planInteractionHandler.getConfiguratorKernel().getRootPlanComponentIdFromObjectId(e):(console.warn("Can not retrieve runtime id without planInteractionHandler"),0):(console.warn("Can not retrieve runtime id without planObjectId"),0)}resumeTest(e){this._domHelper.setDomElement(e),this._lifeCycleManager.resume()}pauseTest(){this._lifeCycleManager.pause()}syncCatalog(e){return this._dataSyncer.syncCatalog(e)}loadError(e){}getPlanInteractionHandler(){return Promise.resolve(this._planInteractionHandler)}getPlanModelViewHelper(){return Promise.resolve(this._plannerKernelAccess.planModelViewHelper)}async insertObject(e,t,n){if(!this._planInteractionHandler)throw new Error("no plan interaction handler");t&&(t=convertToKernel(new THREE.Vector3(t.x,t.y,t.z)));const a=await(isIdItemId(e)?this._rapiAccess.getItem(e):this._rapiAccess.getConfiguration(e)),i=await this._plannerKernelAccess.addPlanObjectFromItem(a,t,n);return this._sceneManager.updateScene(),i}async insertItemList(e){const t=e.map(e=>isIdItemId(e)?this._rapiAccess.getItem(e):this._rapiAccess.getConfiguration(e)),n=await Promise.all(t);return await this._plannerKernelAccess.insertItems(n)}async insertItems(e){return await this._plannerKernelAccess.insertItems(e)}getScene(){return this._sceneManager.getScene()}updateScene(){this._sceneManager.updateScene()}getCameraOffset(){return this._sceneManager.getCameraOffset()}setCameraOffset(e){this._sceneManager.setCameraOffset(e)}async getObjects(){const e=(await this.getPlanModelViewHelper()).getPlanOverview(this._plan),t=convertCObject(e.objects);return mapToUiPlanObjects(t,this._plannerKernelAccess,this._rapiAccess)}async getPlanOverview(){const e=(await this.getPlanModelViewHelper()).getPlanOverview(this._plan);return convertCObject(e)}prepareTopImage(e={}){return this._sceneManager.prepareTopImage(e)}preparePerspectiveImage(e={}){return this._sceneManager.preparePerspectiveImage(e)}enableRotation(){this._sceneManager.enableRotation()}disableRotation(){this._sceneManager.disableRotation()}async dragInObject(e,t){this._sceneManager.dragIn(t);const n=await this._rapiAccess.getItem(e),a=await this.insertItems([n]);if(1!==a.length)throw new Error("More than one object added, abort");return a[0]}enableSnapping(){this._sceneManager.enableSnapping()}disableSnapping(){this._sceneManager.disableSnapping()}async getPartlistOf(e){const t=this._plannerKernelAccess.kernelInstance.getHashOfConfiguration(e);if(!t){const e="Object has no partlist because it is not a configuration: "+t;return console.warn(e),Promise.reject(e)}const n=this._plannerKernelAccess.kernelInstance.getPartList(e);return await this._plannerKernelAccess.addUiDataAndPriceToPartList(n,t)}formatValueToUnitString(e,t){return this._unitFormatter.formatValueToUnitString(e,t)}drawWalls(e,t={}){var n,a;const i=this._planInteractionHandler;i.startInteraction();const s=[];for(const t of e){const e=i.addNode(t.from),r=i.addNode(t.to),o=i.addWall(e,r);void 0!==(null===(n=t.props)||void 0===n?void 0:n.height)&&i.setWallHeight(o,t.props.height),void 0!==(null===(a=t.props)||void 0===a?void 0:a.thickness)&&i.setWallThickness(o,t.props.thickness),s.push(o)}return t.keepInteractionOpen||i.endInteraction(),this._sceneManager.updateCameraOnDrawWalls(),this._sceneManager.updateScene(),s}async removeElements(e,t={}){this._sceneManager.lockCamera();const n=this._planInteractionHandler;n.startInteraction();for(const t of e){const e=getPlanObjectFromPlanOverview(this._plannerKernelAccess,convertCObject(t).getId());let n;e&&(n=await mapToUiPlanObjects([e],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(PLAN_ELEMENT_CHANGE_TYPES.REMOVED,n?n[0]:null),this._planInteractionHandler.removeElement(t)}t.keepInteractionOpen||n.endInteraction(),this._sceneManager.unlockCamera()}hasWalls(){const e=this._planInteractionHandler,t=null==e?void 0:e.getPlan();return!(!t||t.getWallCount()<1)}enableWallDrawing(){this._sceneManager.enableWallDrawing()}disableWallDrawing(){this._sceneManager.disableWallDrawing()}getUnitFormatter(){return this._unitFormatter}get PlannerCoreTypes(){return this._plannerKernelAccess.kernelContainer}setSceneEvents(e){this._sceneManager.setSceneEvents(e)}async saveCurrentPlanSnapshot(e){const t=await this.getPlanModelViewHelper(),n=this._planInteractionHandler.getPlan(),a=t.getPlanOverview(n),i={parentId:e||null,planObjects:[],combinedIds:[],plan:n.getPlanXML(!1,2)},s=a.objects,r=s.size();for(let e=0;e<r;e++){const t=s.get(e),n=t.configurationHash||t.catalogItemId,{center:a,dimensions:r,rotation:o}=t,l=JSON.stringify({center:a,dimensions:r,rotation:o});i.planObjects.push({combinedId:n,location:l})}const o=await this._rapiAccess.savePlanSnapshot(i),l=new Promise((e,t)=>{let n=null,a=null;this.preparePerspectiveImage().then(i=>this._rapiAccess.savePlanSnapshotPerspectiveImage(o,i).then(t=>{n=t,a&&(t.topImage=a.topImage,e(t))},t),t),this.prepareTopImage().then(i=>this._rapiAccess.savePlanSnapshotTopImage(o,i).then(t=>{a=t,n&&(t.perspectiveImage=a.perspectiveImage,e(t))},t),t)});try{return await l}catch(e){return console.error(e),o}}getPlanXmlFrom(e){return e?isPlanSnapshotId(e.id)?e.plan:e.planObjects:null}async moveCamera(e){return this._sceneManager.moveCamera(e)}async createNewSerializedConfiguration(e){return Promise.resolve(this._plannerKernelAccess.createNewSerializedConfiguration(e))}changeInteriorWallsMaterial(e){this._sceneManager.changeInteriorWallsMaterial(e)}changeExteriorWallsMaterial(e){this._sceneManager.changeExteriorWallsMaterial(e)}changeFloorsMaterial(e){this._sceneManager.changeFloorsMaterial(e)}getWallAngleDegrees(e){return this._sceneManager.getWallAngleDegrees(e)}calcPartsPriceSum(e){return this._plannerKernelAccess.calcPartsPriceSum(e)}async swapObject(e,t){const n=e.getPosition(),a=e.getRotation();return await this._sceneManager.deletePlanElementByIds([e.getPlanElement().getId()]),this.cancelSelection("swap_object"),await this.insertObject(t,n,a)}async exportImageFromCamera(e="image"){download(e,await this._sceneManager.exportImageFromCamera())}}__decorate([inject],RoomlePlanner.prototype,"_domHelper",void 0),__decorate([inject],RoomlePlanner.prototype,"_scriptLoader",void 0),__decorate([inject],RoomlePlanner.prototype,"_kernelAccessCallback",void 0),__decorate([inject],RoomlePlanner.prototype,"_plannerKernelAccess",void 0),__decorate([inject],RoomlePlanner.prototype,"_rapiAccess",void 0),__decorate([inject],RoomlePlanner.prototype,"_singlePromiseFactory",void 0),__decorate([inject],RoomlePlanner.prototype,"_roomlePlannerUiCallback",void 0),__decorate([inject],RoomlePlanner.prototype,"_lifeCycleManager",void 0),__decorate([inject],RoomlePlanner.prototype,"_threeLoader",void 0),__decorate([inject],RoomlePlanner.prototype,"_dataSyncer",void 0),__decorate([inject],RoomlePlanner.prototype,"_initData",void 0),__decorate([inject],RoomlePlanner.prototype,"_globalInitData",void 0),__decorate([inject],RoomlePlanner.prototype,"_unitFormatter",void 0);class PlannerSelectionHandlerEvent{constructor(e){const{planElementViewModel:t,reason:n}=e;this.planElementViewModel=t,this.reason=n}}const INJECTABLES=[new DependencyInjectionAssignment("script-loader",ScriptLoader),new DependencyInjectionAssignment("planner-input-manager",class extends InputManager{_canDrag(e){return!0}},1),new DependencyInjectionAssignment("logger",Logger),new DependencyInjectionAssignment("planner-mesh-generator",PlannerMeshGenerator),new DependencyInjectionAssignment("rapi-access",RapiAccess),new DependencyInjectionAssignment("planner-selection-handler",class extends EventDispatcher{constructor(){super(...arguments),this._selectionMode="standard",this._selectedPlanElementViewModels=new Map}check(e){"standard"===this._selectionMode&&this._checkStandard(e),"multiselect"===this._selectionMode&&this._checkMulti(e)}cancelSelection(e){0!==this._selectedPlanElementViewModels.size&&this._selectedPlanElementViewModels.forEach((t,n)=>{this._selectedPlanElementViewModels.delete(n),t.deselect(),this.dispatchEvent(1,new PlannerSelectionHandlerEvent({planElementViewModel:t,reason:e}))})}_checkStandard(e){if(this._selectedPlanElementViewModels.has(e.getId()))return this._selectedPlanElementViewModels.delete(e.getId()),e.deselect(),void this.dispatchEvent(1,new PlannerSelectionHandlerEvent({planElementViewModel:e}));this._selectedPlanElementViewModels.size>0&&this._selectedPlanElementViewModels.forEach((e,t)=>{this._selectedPlanElementViewModels.delete(t),e.deselect(),this.dispatchEvent(1,new PlannerSelectionHandlerEvent({planElementViewModel:e}))}),this._selectedPlanElementViewModels.set(e.getId(),e),e.select(),this.dispatchEvent(0,new PlannerSelectionHandlerEvent({planElementViewModel:e}))}_checkMulti(e){if(this._selectedPlanElementViewModels.has(e.getId()))return this._selectedPlanElementViewModels.delete(e.getId()),e.deselect(),void this.dispatchEvent(1,new PlannerSelectionHandlerEvent({planElementViewModel:e}));this._selectedPlanElementViewModels.set(e.getId(),e),e.select(),this.dispatchEvent(0,new PlannerSelectionHandlerEvent({planElementViewModel:e}))}setSelectionMode(e){this._selectionMode=e}getSelectionMode(){return this._selectionMode}hasSelection(){return this._selectedPlanElementViewModels.size>0}getSelectedIds(){let e=[];return this._selectedPlanElementViewModels.forEach(t=>e.push(t.getId())),e}isSelected(e){return!!this._selectedPlanElementViewModels.get(e)}})];class Planner extends Main{setupGlobals(){}setupDependencies(){RoomleDependencyInjection.setup(INJECTABLES),this.lookup("logger",this._context),this.lookup("planner-kernel-access",this._context).init(0)}cleanUpGlobals(){throw new Error("Method not implemented.")}cleanUpDependencies(){throw new Error("Method not implemented.")}bootFinished(){this._planner=new RoomlePlanner(this._context),this._planner.getMain=()=>this,window.RoomlePlanner||(window.RoomlePlanner=this._planner)}getApi(){return this._planner}getContextName(){return"planner"}}export{Planner};
|
|
2
|
-
//# sourceMappingURL=planner-3bc56225.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
System.register(["./query-params-helper-c231e1b8.nomodule.js","./roomle-dependency-injection-b7344f4d.nomodule.js","./main-thread-to-worker-185bcf70.nomodule.js","./roomle-configurator-21d739fd.nomodule.js","./pixotron-80b8ac67.nomodule.js","./script-loader-4f4e6a69.nomodule.js","./default-light-setting-8bee2fd7.nomodule.js"],(function(e,t){var n,i,a,s,r,o,l,c,h,d,_,g,p,m,u,w,C,E,v,f,b,M,S,P,I,y,H,D,L,A,O,k,T,V,R,j,x,B,W,F,K,G,z,U,N,q,Z,X,Q,J,Y,$,ee,te,ne,ie,ae,se,re,oe,le;return{setters:[function(){},function(e){n=e.l,i=e._,a=e.i,s=e.h,r=e.N,o=e.W,l=e.a6,c=e.a7,h=e.c,d=e.S,_=e.a8,g=e.j,p=e.F,m=e.M,u=e.V,w=e.a9,C=e.aa,E=e.k,v=e.B,f=e.Y,b=e.e,M=e.ab,S=e.d,P=e.ac,I=e.ad,y=e.G,H=e.ae,D=e.af,L=e.ag,A=e.r,O=e.ah,k=e.E,T=e.D,V=e.L,R=e.ai,j=e.R,x=e.b},function(e){B=e.d,W=e.j,F=e.p,K=e.q,G=e.n},function(e){z=e.S,U=e.C,N=e.P,q=e.G,Z=e.p,X=e.a,Q=e.g,J=e.R},function(e){Y=e.L,$=e.B,ee=e.b,te=e.C,ne=e.d,ie=e.e,ae=e.T,se=e.P,re=e.c},function(e){oe=e.S,le=e.M},function(){}],execute:function(){class ce extends Y{constructor(e,t){super(e,t),this._center=new THREE.Vector3(0,0,0),this._params={ambientLight:{color:"#ffffff"},hemiLight:{color:"#ffffff"},mainDirLight:{direction:{x:2,y:1,z:2},color:"#ffffff"}},this._ambientLight=new THREE.AmbientLight(new THREE.Color(this._params.ambientLight.color),.4),this._ambientLight.layers.set(1),this._mainDirLight=new THREE.DirectionalLight(new THREE.Color(this._params.mainDirLight.color),.5),this._mainDirLight.castShadow=!0,this._mainDirLight.shadow.camera.near=.5,this._mainDirLight.shadow.camera.far=100,this._mainDirLight.shadow.mapSize=new THREE.Vector2(1024,1024),this._mainDirLight.visible=!0,this.addToScene()}updateSunPosition(e,t){}addToScene(){this._scene.add(this._mainDirLight),this._scene.add(this._ambientLight),this._scene.add(this._mainDirLight.target)}removeFromScene(){this._scene.remove(this._mainDirLight),this._scene.remove(this._ambientLight),this._scene.remove(this._mainDirLight.target)}reload(){this.removeFromScene(),this.addToScene()}needsBounds(){return!0}updateBounds(e){this._center.copy(e.getCenter(new THREE.Vector3));const t=new THREE.Sphere;e.getBoundingSphere(t);const n=t.radius,i=new THREE.Vector3(this._params.mainDirLight.direction.x,this._params.mainDirLight.direction.y,this._params.mainDirLight.direction.z);i.normalize(),i.multiplyScalar(n),this._mainDirLight.position.copy(this._center),this._mainDirLight.position.add(i),this._mainDirLight.target.position.copy(this._center),this._mainDirLight.target.updateMatrixWorld(!0),this._mainDirLight.shadow.camera.top=n,this._mainDirLight.shadow.camera.bottom=-n,this._mainDirLight.shadow.camera.left=-n,this._mainDirLight.shadow.camera.right=n,this._mainDirLight.shadow.camera.near=.01,this._mainDirLight.shadow.camera.far=2*n,this._mainDirLight.shadow.camera.updateProjectionMatrix()}showGUI(){let e=n();if(e){if(this._ambientLight){let t=e.addFolder("Ambient Light");t.add(this._ambientLight,"visible"),t.add(this._ambientLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.ambientLight,"color").onChange(e=>this._ambientLight.color=new THREE.Color(e))}if(this._hemiLight){let t=e.addFolder("Hemi Light");t.add(this._hemiLight,"visible"),t.add(this._hemiLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.hemiLight,"color").onChange(e=>this._hemiLight.color=new THREE.Color(e))}if(this._mainDirLight){let t=e.addFolder("Main Directional Light");t.add(this._mainDirLight,"visible"),t.add(this._mainDirLight,"intensity").min(0).max(10).step(.1),t.add(this._mainDirLight,"castShadow"),t.addColor(this._params.mainDirLight,"color").onChange(e=>this._mainDirLight.color=new THREE.Color(e)),t.add(this._mainDirLight.position,"x").min(-10).max(10).step(.1).onChange(()=>this._mainDirLight.lookAt(this._center)),t.add(this._mainDirLight.position,"y").min(-10).max(50).step(.1).onChange(()=>this._mainDirLight.lookAt(this._center)),t.add(this._mainDirLight.position,"z").min(-10).max(10).step(.1).onChange(()=>this._mainDirLight.lookAt(this._center))}}}}class he{constructor(e){const{planElementViewModel:t,resetCamera:n,state:i,oldState:a,reason:s}=e;this.planElementViewModel=t,this.resetCamera=void 0===n||n,this.state=void 0===i?0:i,this.oldState=void 0===a?0:a,this.reason=s}}class de extends z{constructor(e,t,n,i){super(e,t,n,i),this._isDrawingEnabled=!1,this._isCurrentlyDrawing=!1,this._state=0,this._inputManager.addEventListener(4,()=>this._position=null,this),this._raycastHelper.setMode(0),this._raycastHelper.addEventListener(0,()=>{2!==this._state?this._plannerSelectionHandler.cancelSelection("click_outside"):this.resetState()},this),this._plannerSelectionHandler.addEventListener(0,({planElementViewModel:e})=>{this.dispatchEvent(0,new he({planElementViewModel:e}))},this),this._plannerSelectionHandler.addEventListener(1,({planElementViewModel:e,reason:t})=>{1!==this._state&&this.setState(0),this.dispatchEvent(1,new he({planElementViewModel:e,reason:t}))},this),this._inputManager.addEventListener(6,e=>this._move(e),this)}disable(){const e=new THREE.Layers;e.disableAll(),this._raycastHelper.setLayers(e),this._raycastHelper.disableEvents()}get planInteractionHandler(){var e;return null===(e=this._plannerKernelAccess)||void 0===e?void 0:e.planInteractionHandler}enable(){const e=new THREE.Layers;e.disableAll(),e.enable(3),e.enable(7),e.enable(6),e.enable(9),e.enable(2),this._raycastHelper.setLayers(e),this._raycastHelper.enableEvents()}enableConstructionEvents(e){e?this._raycastHelper.getLayers().enable(9):this._raycastHelper.getLayers().disable(9)}enableObjectEvents(e){e?this._raycastHelper.getLayers().enable(6):this._raycastHelper.getLayers().disable(6)}getSelectionMode(){return this._plannerSelectionHandler.getSelectionMode()}addPlanObjectHandlers(e,t){t||(t=e.getBoundingBox());const n={hasListener:!0,priority:1,roomleId:e.getId()};this._addPlanObjectHandlers(e,t,n)}addWallHandlers(e){this._addPlanElementHandlers(e,e.getObject(),{hasListener:!0,priority:1,roomleId:e.getId()})}addNodeHandlers(e){this._addPlanElementHandlers(e,e.getBoundingBox(),{hasListener:!0,priority:1,roomleId:e.getId()})}_addPlanObjectHandlers(e,t,n){t.userData.hasListener||(t.userData=B(t.userData,n),t.addEventListener("select",()=>this._clickElement(e)),t.addEventListener("drag_start",()=>this._dragStart(e)),t.addEventListener("drag",t=>this._drag(e,t.attachment.position)),t.addEventListener("drag_end",t=>this._dragEnd(e,t.attachment.position)),t.addEventListener("hover_on",()=>this._hoverOn(e)),t.addEventListener("hover_off",()=>this._hoverOff(e)),t.addEventListener("rotate",t=>this._rotate(e,t.attachment.rotation)))}_addPlanElementHandlers(e,t,n){t.userData.hasListener||(t.userData=B(t.userData,n),t.addEventListener("select",()=>this._clickElement(e)),t.addEventListener("double_click",t=>{var n;this._doubleClickElement(e,t.attachment.type,null===(n=t.attachment.intersection)||void 0===n?void 0:n.point)}),t.addEventListener("drag_start",()=>this._dragStart(e)),t.addEventListener("drag",t=>this._drag(e,t.attachment.position)),t.addEventListener("drag_end",t=>this._dragEnd(e,t.attachment.position)),t.addEventListener("hover_on",()=>this._hoverOn(e)),t.addEventListener("hover_off",()=>this._hoverOff(e)))}_createFloorMeshWithHandler(){const e=new THREE.PlaneBufferGeometry(1e3,1e3,8,8),t=new THREE.MeshBasicMaterial;t.visible=!1;const n=new THREE.Mesh(e,t);return n.name="2D raycaster floor mesh",n.rotation.set(-Math.PI/2,0,0),n.layers.enable(2),n.userData=B(n.userData,{hasListener:!0,priority:.9,roomleId:void 0}),n.addEventListener("double_click",e=>{this._doubleClickOnPlane(s(e.attachment.intersection.point),e.attachment.type)}),n.addEventListener("select",e=>{this._isCurrentlyDrawing?this._clickOnPlane(s(e.attachment.intersection.point)):this._plannerSelectionHandler.cancelSelection("select_other")}),n}_clickOnPlane(e){this._createNode(null,e)}_doubleClickOnPlane(e,t=0){this._closeToPoint(e)?this.stopDrawing():this._toggleDrawing(null,e,t)}_closeToPoint(e){let t=!1;for(const n of this._planViewModel.getNodePlanObjectViewModels())this._close(n.getPlanElement().getCenter(),e)&&(t=!0);return t}_close(e,t){return Math.abs(e.x-t.x)<500&&Math.abs(e.y-t.y)<500&&Math.abs(e.z-t.z)<500}_clickElement(e){this._isCurrentlyDrawing||(this._debug&&e.getId(),2!==this._state?(this._plannerSelectionHandler.check(e),this._setCursor()):this.resetState())}_doubleClickElement(e,t=0,n){if(!this._isDrawingEnabled||!(e instanceof r||e instanceof o))return;let i;this._debug&&e.getId(),e instanceof o&&this._plannerSelectionHandler.cancelSelection("double_click_wall"),e instanceof r?i=e.getPlanElement().getCenter():n&&(i=s(new THREE.Vector3(n.x,0,n.z))),this._isCurrentlyDrawing?this._endWallDrawing(null,i):this._startWallDrawing(null,i,t)}_hoverOn(e){this._isCurrentlyDrawing||(e.hoverOn(),this._hoveredObject=e,this.dispatchEvent(3,new he({planElementViewModel:e})),this._interaction(),this._setCursor())}_hoverOff(e){e.hoverOff(),this.dispatchEvent(4,new he({planElementViewModel:e})),this._interaction(),this._hoveredObject=null,this._setCursor()}_setCursor(){2===this._state&&this._hasSelection()?W("ew-resize"):1===this._state?W("grabbing"):this._hoveredObject&&this._plannerSelectionHandler.isSelected(this._hoveredObject.getId())?W("move"):this._hoveredObject?W("pointer"):3===this._state?W(l?"url('https://res.cloudinary.com/roomle/image/upload/v1664957371/pencil_j5vkhm.svg') 0 15, auto":"url('https://res.cloudinary.com/roomle/image/upload/v1664957371/pencil_j5vkhm.svg') 3 20, auto"):W("default")}setCamera(e){this._raycastHelper.setCamera(e)}setScene(e){this._raycastHelper.setScene(e)}getSelectedIds(){return this._plannerSelectionHandler.getSelectedIds()}setSelectionMode(e){this._plannerSelectionHandler.setSelectionMode(e)}setPlanViewModel(e){this._planViewModel=e}cancelSelection(e){this._plannerSelectionHandler.cancelSelection(e)}_dragStart(e){((this._plannerSelectionHandler.isSelected(e.getId())||this._dragIn)&&0===this._state||this._isDrawingEnabled)&&(this._draggedObject=e,this.setState(1),this.dispatchEvent(8,new he({planElementViewModel:e})),this._setCursor())}_drag(e,t){if(!this._draggedObject||1!==this._state)return;const n=this.planInteractionHandler;if(this._plannerSelectionHandler.getSelectedIds().length>1){const e=new this._plannerKernelAccess.kernelContainer.PlanObjectPtrList;let i=t.sub(this._draggedObject.getPosition());this._plannerSelectionHandler.getSelectedIds().forEach(t=>e.push_back(this._planViewModel.getPlanObjectForId(t).getPlanElement())),n.moveObjectsBy(e,s(i))}else(e instanceof r||e instanceof o)&&(t.y=c(e.getPlanElement().getCenter()).y),n.moveElementTo(e.getPlanElement(),s(t));this.dispatchEvent(9,new he({planElementViewModel:e}))}_dragEnd(e,t){this._draggedObject&&(this._draggedObject=null,this.setState(0),this.dispatchEvent(10,new he({planElementViewModel:e})),this._dragIn&&this.setDragIn(!1),this._setCursor())}_rotate(e,t){if(this._plannerSelectionHandler.isSelected(e.getId())){const n=this.planInteractionHandler,i=e.getPlanObject();n.setObjectRotation(e.getPlanElement(),i.rotation-t)}}setState(e){var t,n;const i=this._state;this._state=e,this._setCursor(),this.dispatchEvent(2,new he({state:this._state,oldState:i})),this._position=null,2===this._state?null===(t=this.planInteractionHandler)||void 0===t||t.deactivateAllSnappingActivity():2===i&&(null===(n=this.planInteractionHandler)||void 0===n||n.reactivateAllSnappingActivity())}resetState(){this.setState(0)}_move(e){if(3!==this._state&&2===this._state&&this._hasSelection()){this._setCursor();let t=Math.PI/180;const{x:n,y:i}=e.positionRelative;this._position?t=1.4*e.positionRelative.x*Math.PI-1.4*this._position.x*Math.PI:this._position=new THREE.Vector3(e.positionRelative.x,e.positionRelative.y,0);const a=new this._plannerKernelAccess.kernelContainer.PlanObjectPtrList,r=new THREE.Box3;this.getSelectedIds().forEach(e=>{var t;const n=null===(t=this._planViewModel)||void 0===t?void 0:t.getPlanObjectForId(e);n&&n.getObject()&&(a.push_back(n.getPlanElement()),r.expandByObject(n.getContainer()))});const o=r.getCenter(new THREE.Vector3);this.planInteractionHandler.rotateObjectsBy(a,t,s(o)),this._position.copy(new THREE.Vector3(n,i,0))}}_hasSelection(){return this._plannerSelectionHandler.getSelectedIds().length>0}async selectPlanElement(e){(e instanceof h||e instanceof d)&&await e.isInitDone(),this._plannerSelectionHandler.check(e)}_interaction(e){this.dispatchEvent(11,new he({}))}addComponentDragInHandler(e){if(!this._dragIn)return;const t=e.getBoundingBox();this._addPlanElementHandlers(e,t,{hasListener:!0,priority:1,roomleId:e.getId()}),this._raycastHelper.enableDragIn(t),this._dragStart(e)}enableSnapping(){this.planInteractionHandler.snapObjectsToWalls=!0}disableSnapping(){this.planInteractionHandler.snapObjectsToWalls=!1}enableWallDrawing(){return this._isDrawingEnabled=!0,this._drawingGroup=new THREE.Group,this._drawingGroup.name="Drawing",this._drawingGroup.add(this._createFloorMeshWithHandler()),this._inputManager.addEventListener(6,this._drawWallOnMouseMove,this),this._inputManager.addEventListener(13,this._endWallDrawing,this),this._drawingGroup}cancelWallDrawing(){return this._isDrawingEnabled=!1,this._setStateAndCursor(0),this._inputManager.removeEventListener(6,this._drawWallOnMouseMove),this._inputManager.removeEventListener(13,this._endWallDrawing),this._raycastHelper.clear(),this._drawingGroup}stopDrawing(e=!0){var t;e&&this.planInteractionHandler.cancelDrawing(),this._raycastHelper.getLayers().enable(9),this._isCurrentlyDrawing=!1,this._setStateAndCursor(0),this.dispatchEvent(7),null===(t=this._continousDrawingHelper)||void 0===t||t.endDrawing()}startDrawing(){var e;this._isCurrentlyDrawing||(this._isCurrentlyDrawing=!0,this._raycastHelper.getLayers().disable(9),this.dispatchEvent(6),this._setStateAndCursor(3),null===(e=this._continousDrawingHelper)||void 0===e||e.update())}_toggleDrawing(e,t,n){this._isCurrentlyDrawing?this._endWallDrawing(e,t):this._startWallDrawing(e,t,n)}_endWallDrawing(e,t){if(this._isCurrentlyDrawing){if(this.planInteractionHandler.getContinuousDrawingManager().shouldShowCircle()&&this.planInteractionHandler.getContinuousDrawingManager().shouldShowCircle())this.planInteractionHandler.cancelDrawing();else{const{x:n,y:i}=t||this._getIntersectionPointWithScene(e);this.planInteractionHandler.endDrawing({x:n,y:i,z:0})}this.stopDrawing(!1)}}async _startWallDrawing(e,t,n){(e&&2===e.type||2===n)&&(await this._initMobileDrawing(),this._continousDrawingHelper.update());const{x:i,y:a}=t||this._getIntersectionPointWithScene(e);this.planInteractionHandler.beginDrawing({x:i,y:a,z:0}),this.startDrawing()}async _initMobileDrawing(){if(this.planInteractionHandler.setDrawingType(0),this.planInteractionHandler.setSnapFeedbackWhileDrawing(!0),!this._continousDrawingHelper){const{default:e}=await t.import("./continuous-drawing-helper-1eb82082.nomodule.js");this._continousDrawingHelper=new e,this._continousDrawingHelper.init(this._drawingGroup,this.planInteractionHandler.getContinuousDrawingManager(),this._kernelZoomFactor)}}_drawWallOnMouseMove(e){var t;if(!this._isCurrentlyDrawing)return;const{x:n,y:i}=this._getIntersectionPointWithScene(e);this.planInteractionHandler.currentDrawingPosition({x:n,y:i,z:0}),null===(t=this._continousDrawingHelper)||void 0===t||t.update(),this.dispatchEvent(5)}_createNode(e,t){if(!this._isCurrentlyDrawing)return;const{x:n,y:i}=t||this._getIntersectionPointWithScene(e);this.planInteractionHandler.forceNode({x:n,y:i,z:0}),this._raycastHelper.clear()}_getIntersectionPointWithScene(e){return this._raycastHelper.intersectMouseOnScene(e)}_setStateAndCursor(e){this.setState(e),this._setCursor()}setKernelZoomFactor(e){var t;this._kernelZoomFactor=e,null===(t=this._continousDrawingHelper)||void 0===t||t.setKernelZoomFactor(e)}}i([a],de.prototype,"_plannerSelectionHandler",void 0),i([a],de.prototype,"_plannerKernelAccess",void 0);const _e=(e,t,n,i)=>{const a=(new THREE.Box3).setFromObject(e.getContainer()).getCenter(new THREE.Vector3);return{runtimeId:e.getId(),position2d:_(g(a,t,n,i))}},ge=(e,t)=>{const n=e.planInteractionHandler.getPlan(),i=e.planModelViewHelper.getPlanOverview(n);return m(i.objects).find(e=>e.runtimeId===t)},pe=async(e,t,n)=>{let i=[];const a=[],s=[];await Promise.all(e.map(async e=>{const n=m(e);if(n.catalogItemId?a.push(n.catalogItemId):n.configurationHash&&s.push(n.configurationHash),n.parts){const e=n.configurationHash||n.catalogItemId,i=await t.addUiDataAndPriceToPartList(n.parts,e);n.parts=i}n.data=null,i.push(n)}));const[r,o]=await Promise.all([n.getItems(a),n.getConfigurations(s)]),l=[],c=new Map;for(const e of r)c.set(e.id,e);for(const e of o)c.set(e.id,e),l.push(e.rootComponentId);const h=await n.getComponents(l),d=new Map;for(const e of h)d.set(e.id,e);for(const e of i){const t=e.catalogItemId||e.configurationHash,n=c.get(t)||null;if(n&&!n.label&&d.has(n.rootComponentId)){const e=d.get(n.rootComponentId);n.label=e.label}n&&!n.label&&(n.label=t),e.data=n}return i};class me extends U{constructor(e,t,n,i){super(e,t,i),this._staticItemGuard=new u,this._configurableItemGuard=new u,this.currentSelection=null,this._stopRendering=!0,this._configuratorContext.baseContext="planner",this._roomlePlannerCallback=n,this._plannerMeshGenerator.maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._plannerMeshGenerator.maxTextures=this._renderer.capabilities.maxTextures,this._plannerSceneEventHandler=new de(e,this._scene,this._cameraControl.getCamera(),this._getInputManager()),this._plannerSceneEventHandler.addEventListener(2,({state:e,oldState:t})=>{2===t&&e!==t&&this._roomlePlannerUiCallback.onRotationCancel(),2===e||1===e||3===e?(this._cameraControl.lock(),this._onCameraMove()):(this._cameraControl.unlock(),this._onCameraIdle())},this),this._plannerSceneEventHandler.addEventListener(11,()=>this._renderWithoutShadowsAndAO(),this),this._plannerSceneEventHandler.addEventListener(3,({planElementViewModel:e})=>this._onPlanElementHoverOn(e),this),this._plannerSceneEventHandler.addEventListener(4,({planElementViewModel:e})=>this._onPlanElementHoverOff(e),this),this._plannerSceneEventHandler.addEventListener(0,({planElementViewModel:e})=>{e instanceof d&&this._initData.debug&&e.getGLBUrl(),this._highlightPlanElement(e),this._onSelectionChange(e),this._renderWithoutShadowsAndAO()},this),this._plannerSceneEventHandler.addEventListener(1,({planElementViewModel:e,reason:t})=>{this._highlightPlanElement(null),this._onSelectionCancel(e),this._roomlePlannerUiCallback.onSelectionCancel(t),this._renderWithoutShadowsAndAO()},this),this._plannerSceneEventHandler.addEventListener(8,({planElementViewModel:e})=>{this._getKernelAccess().planInteractionHandler.startInteraction(),this._cameraControl.lock(),e instanceof o&&this._sendWallDimensions(),this._environment instanceof $&&this._environment.removeFromScene(),this._requestRender(),this._dragStartBounds=this.getBounds()},this),this._plannerSceneEventHandler.addEventListener(9,({planElementViewModel:e})=>{this._cameraControl.checkNearFarDistance(e.getPosition()),this._requestRender()},this),this._plannerSceneEventHandler.addEventListener(10,async({planElementViewModel:e})=>{const t=this._getKernelAccess().planInteractionHandler;t.endInteraction(),this._cameraControl.unlock(),this._environment instanceof $&&this._environment.addToScene();const n=this._getDragPosition(e.getPosition());n&&t.moveElementTo(e.getPlanElement(),s(n)),this.updateEnvironment(this.getBounds(),!0),this._zoomToBounds(!1),this._renderEverything();const i=ge(this._plannerKernelAccess,e.getId());let a;i&&(a=await pe([i],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(w.CHANGED,a?a[0]:null)},this),this._plannerSceneEventHandler.addEventListener(6,()=>{this._setKernelZoomFactor(),this._renderWithoutShadowsAndAO()},this),this._plannerSceneEventHandler.addEventListener(5,()=>this._renderWithoutShadowsAndAO(),this),this._plannerSceneEventHandler.addEventListener(7,()=>this._renderWithoutShadowsAndAO(),this),this._getKernelAccess().addPlannerListener(this),this._plannerMeshGenerator.setMaterialLoadedListener(()=>{this._configurableItemGuard.resolve(),this._requestRender()}),window.onbeforeunload=this.clearScene.bind(this),this._renderListener=()=>{this._requestRender()},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this.disableConfiguratorEvents(),this.enablePlannerEvents()}planCleared(){}planHistoryStateChanged(){this._sendWallDimensions()}_getViewModel(){return this._viewModel||(this._viewModel=new N(this._creator_)),this._viewModel}_onPlanElementHoverOn(e){this._highlightPlanElement(e)}_onPlanElementHoverOff(e){this._highlightPlanElement(null)}_getDragPosition(e){if(!this._plannerSceneEventHandler.isDragIn())return null;const t=this._dragStartBounds?this._dragStartBounds:this.getBounds(),n=t.getCenter(new THREE.Vector3),i=e.distanceTo(n),a=t.getSize(new THREE.Vector3),s=Math.max(a.x,a.z)+3;if(i>s){const t=(new THREE.Vector3).subVectors(e,n).normalize();return n.clone().add(t.multiplyScalar(s))}return null}_onSelectionChange(e){const t={};e instanceof d&&(t.item=e.getRapiItem(),t.staticItemRuntimeId=e.getPlanElement().getId()),e instanceof h&&(t.configurationRuntimeId=e.getConfigurationRuntimeId()),e instanceof o&&(t.wall=e.getWallDimension()),e instanceof p&&(t.staticItemRuntimeId=e.getPlanElement().getId());let n=(e=>{if(e instanceof d){const t=e.getPlanObject().getObjectType();return"door"!==t&&"window"!==t?"static":t}return e instanceof h?"configuration":e instanceof o?"wall":e instanceof p?"floor":"unknown"})(e);const i=(async()=>{const t={};if(e instanceof d&&(t.item=e.getRapiItem(),t.staticItemRuntimeId=e.getPlanElement().getId()),e instanceof h){await e.isInitDone();const i=e.getConfigurationRuntimeId(),a=e.getPlanObject().getCatalogItemId();let s,r=a;if(r||(r=this._getKernelAccess().kernelInstance.getHashOfConfiguration(i)),this._configuratorContext.planObjectId=i,this._configuratorContext.planElementId=e.getId(),this._configuratorContext.rootComponentId=e.getRootComponentRuntimeId(),a&&y(a)){const e=await this._rapiAccess.getItem(a);t.item=e,s=e.rootComponentId?e.rootComponentId:null}else try{const e=await this._rapiAccess.getConfiguration(r);t.configuration=e,s=e.rootComponentId?e.rootComponentId:null}catch(e){console.warn("Could not get RAPI configuration for kernel hash "+r+", saving configuration...");const n=await this._getKernelAccess().getConfigurationData(i),a=await this._rapiAccess.saveConfiguration(n);t.configuration=a,s=a.rootComponentId?a.rootComponentId:null}if(s){const e=await this._rapiAccess.getComponent(s);t.component=e}t.configurationRuntimeId=i,n="configuration"}return t.planElementId=e.getId(),F(t)})();this.currentSelection=F(t),this._roomlePlannerUiCallback.onSelectionChange(F(this._plannerSceneEventHandler.getSelectionMode()),F(n),F(t),i,e),(e instanceof o||e instanceof r)&&(this._getViewModel().getNodePlanObjectViewModels().forEach(e=>e.show()),this._updateNodeSize()),this._renderWithoutShadowsAndAO()}_onSelectionCancel(e){this._getViewModel().getNodePlanObjectViewModels().forEach(e=>e.hide()),this._renderWithoutShadowsAndAO(),this.resetConfiguratorContext(),this.currentSelection=null}resetConfiguratorContext(){this._configuratorContext.planObjectId=0,this._configuratorContext.planElementId=0,this._configuratorContext.rootComponentId=0,this._configuratorContext.dockingRootComponentId=0}_setupScene(e,t){super._setupScene(e,t,!0),this._lightSetting=new ce(this._scene,this._lightSetting),this._initData.moc?this._setEnvironment(new ee(this._scene,this._environment,new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND))):(this._addSky(),this._setEnvironment(new $(this._scene,this._environment)))}onBeforeRender(){this._cameraControl instanceof te&&(C(this._cameraControl.getCamera(),this._getViewModel().getWallPlanObjectViewModels()),this._renderEverything())}_getInputManager(){return this._plannerInputManager}createCameraControl(e,t){this.setMode(e)}startViewing(){this._configuratorContext.baseContext="glb-viewer";const e=this._plannerSceneEventHandler.getSelectedIds();if(1===e.length){const t=this._getViewModel().getPlanObjectForId(e[0]);this._cameraControl instanceof te&&this._cameraControl.setObjectRotation(t.getPlanElement().rotation),this._getViewModel().hideAllExcept(t.getId())}this.resetCamera(),this.disablePlannerEvents(),this.updateEnvironment(this.getBounds(),!0)}startConfiguring(){var e;this._configuratorContext.baseContext="configurator";const{planElementId:t}=this._configuratorContext,n=this._getViewModel().getPlanObjectForId(t);n&&(this.setRootComponentId(n.getRootComponentRuntimeId()),this._cameraControl instanceof te&&this._cameraControl.setObjectRotation(n.getPlanElement().rotation));const i=null==n?void 0:n.getConfigurationRuntimeId();this._configuratorContext.planObjectId!==i&&(this._configuratorContext.planObjectId=i),this._getViewModel().hideAllExcept(t),this.resetCamera(),this.disablePlannerEvents(),this.enableConfiguratorEvents(),this.updateScene(),this._getKernelAccess().updatePlanObjectDependencies(i),this._getKernelAccess().requestPartListAndUpdatePricesOfParts(),this._getKernelAccess().planObjectUpdated(i),this.updateEnvironment(this.getBounds(),!0);const a=null===(e=this._plannerKernelAccess)||void 0===e?void 0:e.planInteractionHandler;null==a||a.startInteraction()}async selectPlanObject(e){if(this._plannerSceneEventHandler.getSelectedIds().includes(e))return;const t=this._getViewModel().getPlanObjectForId(e);await this._plannerSceneEventHandler.selectPlanElement(t),this._onSelectionChange(t)}backToPlanner(){var e;if(this._getViewModel().showAll(),"configurator"===this._configuratorContext.baseContext){const t=null===(e=this._plannerKernelAccess)||void 0===e?void 0:e.planInteractionHandler;null==t||t.endInteraction()}this._configuratorContext.baseContext="planner",this._cameraControl instanceof te&&this._cameraControl.setObjectRotation(0),this.resetCamera(),this.enablePlannerEvents(),this.disableConfiguratorEvents(),this.updateScene()}resetCamera(){this._cameraControl.hasSavedState()?this.resetCameraToState():this.resetCameraPositionToStart()}resetCameraToState(){this._cameraControl.resetToState()}_getYRotationOfObject(e){let t=e.getWorldDirection(new THREE.Vector3).clone();t.y=0,t.lengthSq()<.01&&(t=new THREE.Vector3(0,1,0),t.applyQuaternion(e.quaternion),t.y=0),t.normalize();let n=Math.asin(t.x);return t.z<0&&(n=Math.PI-n),n<0&&(n+=2*Math.PI),n}loadStaticPlanObjects(){let e=new Map;this._getViewModel().getStaticPlanObjectViewModels().forEach(t=>{let n=t.getPlanObject();e.has(n.getCatalogItemId())?e.get(n.getCatalogItemId()).push(t):e.set(n.getCatalogItemId(),[t])}),this._rapiAccess.getItems(Array.from(e.keys())).then(t=>{let n=[];t.forEach(t=>{this._getKernelAccess().catalogItemLoaded(t),e.get(t.id).forEach(e=>{n.push(new Promise((n,i)=>{e.setRapiItem(t).then(()=>{this._requestRender(),n()},i)}))})}),Promise.all(n).then(()=>this._staticItemsLoaded())})}_staticItemsLoaded(){this._requestRender(),this._staticItemGuard.resolve(),this._roomlePlannerUiCallback.onItemsLoaded()}preload(e){this._planId=e;let t=this._localStorageHelper.getItem(this._planId,"rml_plans");t&&this._loadGLTF(t).then(e=>{this._preloadScene=e,this._preloadScene&&this._scene.add(this._preloadScene),this._requestRender()})}planXMLLoaded(e){this.endPlanConstruction(e);const t=e.getBounds(),n=E(t);this._updateBounds(n),this.loadStaticPlanObjects()}planCompletelyLoaded(e){this._stopRendering=!1,this._renderEverything(),this.resetCamera()}handlerSwitchedPlans(e,t){if(this._getViewModel().setReference(t),this._getKernelAccess().coupleReferences(this._getViewModel(),t),this._getViewModel().setPlannerSceneEventHandler(this._plannerSceneEventHandler),this._getViewModel().setGeometriesMergedListener(()=>{this._renderEverything()}),this._plannerSceneEventHandler.setPlanViewModel(this._getViewModel()),e&&this.clearScene(),!this._initData.moc){this._addSky();let e=new THREE.PlaneGeometry(1e3,1e3);e.rotateX(-Math.PI/2);let t=new THREE.MeshStandardMaterial({color:"#f0f0f0",roughness:1,metalness:0}),n=new THREE.Mesh(e,t);n.name="Ground",n.position.y=-.01,n.receiveShadow=!0,this._scene.add(n)}this.resetCamera(),this._setCeiling(),this._staticItemGuard.reset(),this._configurableItemGuard.reset(),Promise.all([this._staticItemGuard.wait(),this._configurableItemGuard.wait()]).then(this._itemsLoaded.bind(this))}_itemsLoaded(){const e=this._getViewModel().getCorePlan();if(this._pixotron){const t=E(e.getBounds());this._pixotron.getShadowPass().setShadowRecieverBBox(t)}this._roomlePlannerUiCallback.onCompletelyLoaded(),this._pixotronUtil&&this._getViewModel().materialQueue.finished(!0).then(()=>{this._pixotronUtil.unLockAdapter()}),this.updateEnvironment(this.getBounds(),!0),this._renderEverything(),v.end("loadingTime")}beginPlanConstruction(e){}addPlanMesh(e,t,n,i,a,s,r){}endPlanConstruction(e){this._renderLoopFunction=()=>{this._scene.add(this._getViewModel().getConstructionGroup()),this._scene.add(this._getViewModel().getCeilingGroup()),this._scene.add(this._getViewModel().getFloorGroup()),this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(this._getViewModel().getBoundingBox()),this._scene.remove(this._preloadScene)}}async addPlanObjectToScene(e){if(e){const t=e.getContainer();f(t),this._scene.add(t),this._plannerSceneEventHandler.isDragIn()&&(this._plannerSceneEventHandler.addComponentDragInHandler(e),this._requestRender()),this._roomlePlannerUiCallback.onPlanChanged(),await e.isInitDone(),this._zoomToBounds(!1,!1),this.updateEnvironment(this.getBounds()),this._renderEverything();const n=ge(this._plannerKernelAccess,e.getId());let i;n&&(i=await pe([n],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(w.ADDED,i?i[0]:null)}}removePlanObjectFromScene(e){(e instanceof o||e instanceof r)&&this._sendWallDimensions(),this._scene.remove(e.getContainer()),e.clear(),this.updateEnvironment(this.getBounds(),!0),this._zoomToBounds(!0),this._renderEverything()}async planElementChanged(e,t){if(this._drawingEnabled&&this._sendWallDimensions(!1),this.updateEnvironment(this.getBounds(),!0),this._renderEverything(),this._onPlanChanged(),!this._plannerSceneEventHandler.isDragIn()){const e=ge(this._plannerKernelAccess,t.getId());let n;e&&(n=await pe([e],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(w.CHANGED,n?n[0]:null)}}exportGLB(e,t){this._scriptLoader.fetch(q,{id:"gltf-exporter"}).then(()=>{let n=new THREE.GLTFExporter;e||(e=[],this._scene.children.forEach(t=>{this._isPartOfScene(t)&&e.push(t)})),n.parse(e,e=>{let n=t||"test";this._localStorageHelper.addItem(n,JSON.stringify(e),"rml_plans")},{binary:!1,embedImages:!0,forceIndices:!0})})}importGLB(e){this._loadGLB(e).then(e=>this._scene.add(e))}clearScene(){this._plannerMeshGenerator.clear(),this._getViewModel().sceneCleared(),super.clearScene()}_addSky(){this._sky=new THREE.Sky,this._sky.name="Sky",this._sky.scale.setScalar(45e4),this._scene.add(this._sky),this._sky.material.uniforms.turbidity.value=10,this._sky.material.uniforms.rayleigh.value=2,this._sky.material.uniforms.luminance.value=1,this._sky.material.uniforms.mieCoefficient.value=.005,this._sky.material.uniforms.mieDirectionalG.value=.8;let e=new THREE.Mesh(new THREE.SphereBufferGeometry(2e4,16,8),new THREE.MeshBasicMaterial({color:16777215}));e.name="Sunsphere",e.position.y=-7e5,e.visible=!1,this._scene.add(e);let t=-.2*Math.PI,n=2*Math.PI*-.25;e.position.x=4e5*Math.cos(n),e.position.y=4e5*Math.sin(n)*Math.sin(t),e.position.z=4e5*Math.sin(n)*Math.cos(t),e.visible=!0,this._sky.material.uniforms.sunPosition.value.copy(e.position),this._lightSetting instanceof ce&&this._lightSetting.updateSunPosition(.3,.25)}switchTo2D(){if(this._onCameraMove(),!(this._cameraControl instanceof ne)){for(const e of this._getViewModel().getWallPlanObjectViewModels())e.show();this._getViewModel().setCameraType(b.CAMERA_2D),this._renderEverything(),this._changeCameraControl(new ne(this._creator_,this._getInputManager(),null,this.getOrthographicOffsetCamera())),this._updateCamera(),this._addCameraControlListener(),this._setCeiling(),this._roomlePlannerUiCallback.onCameraChanged(b.CAMERA_2D),this._setCameraControlListeners(),this._setKernelZoomFactor(),this._onCameraMove()}}switchTo3D(){this._onCameraMove(),this._cameraControl instanceof te||(this._getViewModel().setCameraType(b.CAMERA_3D),this._renderEverything(),this._changeCameraControl(new te(this._creator_,this._getInputManager(),new THREE.Vector3(0,10,0),this.getPerspectiveOffsetCamera())),this._updateCamera(),this._addCameraControlListener(),this._setCeiling(),this._roomlePlannerUiCallback.onCameraChanged(b.CAMERA_3D),this._setCameraControlListeners())}_setCameraControlListeners(){this._cameraControl.addEventListener(8,()=>{this._onCameraIdle()},this),this._cameraControl.addEventListener(1,()=>{this._onCameraMove()},this),this._cameraControl.addEventListener(3,()=>{this._onCameraMove()},this),this._cameraControl.addEventListener(4,()=>{this._onCameraMove()},this),this._cameraControl.addEventListener(5,()=>{this._onCameraZoomChange()},this)}_onCameraZoomChange(){this._setKernelZoomFactor()}_setKernelZoomFactor(){var e;const t=this._cameraControl.getKernelZoomFactor();this._getKernelAccess().planInteractionHandler.setZoomFactor(t),null===(e=this._plannerSceneEventHandler)||void 0===e||e.setKernelZoomFactor(t)}_setCeiling(){this._getViewModel()&&(this._cameraControl instanceof ie?this._getViewModel().getCeilingGroup().visible=!0:this._getViewModel().getCeilingGroup().visible=!1)}cameraControlChanged(){super.cameraControlChanged(),this._plannerSceneEventHandler&&this._plannerSceneEventHandler.setCamera(this._cameraControl.getCamera())}sceneChanged(){this._plannerSceneEventHandler&&this._plannerSceneEventHandler.setScene(this._scene)}closeHSC(){this._requestRender(),this._cameraControl instanceof te&&this._cameraControl.resetToState()}switchToFirstPerson(){if(this._cameraControl instanceof ie)return;this._plannerMeshGenerator.wallMeshes.forEach(e=>M(e.material,!1,!1)),this._getViewModel().setCameraType(b.CAMERA_FP),this._renderEverything();let e=new THREE.Vector3(0,0,0);this._getViewModel()&&(e=this._getViewModel().getBoundingBox().getCenter(new THREE.Vector3)),this._cameraControl&&this._cameraControl.cleanUp(),this._changeCameraControl(new ie(this._creator_,this._getInputManager(),e,this.getPerspectiveOffsetCamera())),this._addCameraControlListener(),this._setCeiling(),this._roomlePlannerUiCallback.onCameraChanged(b.CAMERA_FP),this._setCameraControlListeners()}_onKeyDown(e){super._onKeyDown(e),this._initData.debug&&this._checkNumKey(e),e.key&&e.key.includes("Shift")&&this._cameraControl instanceof te&&(this._cameraControl.enablePanning(),e.preventDefault())}_checkNumKey(e){e.key&&"1"===e.key&&(this.switchTo2D(),e.preventDefault()),e.key&&"2"===e.key&&(this.switchTo3D(),e.preventDefault()),e.key&&"3"===e.key&&(this.switchToFirstPerson(),e.preventDefault())}_onKeyUp(e){super._onKeyDown(e),!e.key||"Meta"!==e.key&&"Control"!==e.key||(this._plannerSceneEventHandler.setSelectionMode("standard"),e.preventDefault()),e.key&&e.key.includes("Shift")&&this._cameraControl instanceof te&&(this._cameraControl.disablePanning(),e.preventDefault()),!e.key||"Escape"!==e.key&&"Esc"!==e.key||this._drawingEnabled&&(this.escapeDrawing(),this._roomlePlannerUiCallback.onDrawCancel())}setMode(e){switch(e){case b.CAMERA_2D:this.switchTo2D();break;case b.CAMERA_3D:this.switchTo3D();break;case b.CAMERA_FP:this.switchToFirstPerson()}}_highlightPlanElement(e){let t=new Set;e instanceof S&&this._cameraControl instanceof ne&&e&&e.getTopViewContainer()?t.add(e.getTopViewContainer()):e&&e.getObject()&&e.getObject().children&&e.getObject().children.forEach(e=>t.add(e)),this._plannerSceneEventHandler.getSelectedIds().forEach(e=>{const n=this._getViewModel().getPlanObjectForId(e);n instanceof S&&this._cameraControl instanceof ne&&n&&n.getTopViewContainer()?t.add(n.getTopViewContainer()):n&&n.getObject()&&n.getObject().children&&n.getObject().children.forEach(e=>t.add(e))}),this._pixotron&&this._pixotron.highlightObjects(Array.from(t))}destroy(){super.destroy(),this._plannerMeshGenerator.removeMaterialLoadedListener(),this._getViewModel().removeGeometriesMergedListener()}getPixotronParams(){return{saoparams:{intensity:.5,occlusionWorldRadius:.6,smoothTransition:!0,samplesPerFrame:4,bias:.02,numSamples:100,accumulative:!1,falloff:2},shadowparams:{shadowMapResolution:1024,shadowRadius:3,shadowQuality:1,smoothTransition:!0,enableAccumulation:!0,shadowBiasMultiplier:.6,nearPlane:.01,farPlane:50,fov:110,side:THREE.FrontSide,numSamples:100},outlineparams:{highlightColor:new THREE.Color(this._initData.colors.SELECTION),edgeStrength:1,transparency:.9,edgeThickness:2}}}getBakedShadowParams(){return{enable:!0,shadowMapResolution:1024,smoothTransition:!0,numSamples:500,numSamplesPerFrame:4,bShadowMaterial:!0,falloff:1.8,darkness:.3,size:1.2,lightDirection:new THREE.Vector3(0,1,0),lightSolidAngle:40,yPosition:.006}}planObjectConfigurationLoaded(e,t,n){if(e&&e.extRef&&t&&t.extRef){let e=t.extRef.jsObject.getPlanObject().getConfigurationRuntimeId();e>0&&this._getViewModel().constructComponents(e)}}addMesh(e,t,n,i,a,s){}_updateBounds(e){e&&("planner"===this._configuratorContext.baseContext&&this._updateCamera(e),super._updateBounds(e))}_updateCamera(e){e||(e=this.getBounds()),e&&(this._cameraControl instanceof te&&this._cameraControl.updateToBounds(e,!1),this._cameraControl instanceof ne&&this._cameraControl.zoomToFitBounds(P(e,this._domHelper.element.clientWidth,this._domHelper.element.clientHeight,1.1),!0),this._renderEverything())}_zoomToBounds(e,t=!0){const n=this.getBounds();this._cameraControl instanceof te&&(this._getViewModel().getPlanObjectCount()<=1?this._cameraControl.zoomToFitBounds(n,t):this._cameraControl.checkBoundsAndPlaceCamera(n,t)),this._cameraControl instanceof ne&&!this._drawingEnabled&&this._cameraControl.zoomToFitBounds(n,e,t)}updateCameraOnDrawWalls(){const e=this.getBounds();this._cameraControl instanceof ne&&this._cameraControl.zoomToFitBounds(e,!1,!0),this._cameraControl instanceof te&&this._cameraControl.zoomToFitBounds(e,!0)}getBounds(){return this._getViewModel()?this._getViewModel().getBoundingBox():null}cancelPlanElementSelection(e){this._plannerSceneEventHandler.cancelSelection(e),this._highlightPlanElement(null),this._requestRender()}async deletePlanElementSelection(){const e=this._plannerSceneEventHandler.getSelectedIds();this.cancelPlanElementSelection("delete_object"),await this.deletePlanElementByIds(e)}async deletePlanElementByIds(e){for(const t of e){const e=this._getViewModel().getPlanObjectForId(t);if(e&&e.getObject()){const t=ge(this._plannerKernelAccess,e.getId());let n;t&&(n=await pe([t],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(w.REMOVED,n?n[0]:null),this._getKernelAccess().planInteractionHandler.removeElement(e.getKernelObject())}}}rotatePlanElementSelection(e){const t=new(this._getKernelAccess().kernelContainer.PlanObjectPtrList),n=new THREE.Box3;let i={x:0,y:0,z:0};if(this._plannerSceneEventHandler.getSelectedIds().forEach(e=>{const a=this._getViewModel().getPlanObjectForId(e);a&&a.getObject()&&(i=a.getPlanElement().getCenter(),t.push_back(a.getPlanElement()),n.expandByObject(a.getContainer()))}),t.size()>1){const e=n.getCenter(new THREE.Vector3);i=s(e)}const a=this._getKernelAccess().planInteractionHandler.groupObjects(t);this._getKernelAccess().planInteractionHandler.rotateGroupBy(a,e,i)}planBoundsChanged(){this.updateEnvironment(this.getBounds()),this._requestRender()}planElementRemoved(e){this._onPlanChanged(),this._renderEverything()}_onPlanChanged(){this._roomlePlannerUiCallback.onPlanChanged()}prepareTopImage(e={}){return new Promise(t=>{this._getViewModel().materialQueue.finished(!0).then(async()=>{let n=this._calculateBoundingBoxOfAllMeshes(.1);this._lightSetting.removeFromScene();let i=await Z(this._scene,null,n,e);this._lightSetting.addToScene(),this._requestRender(),t(i)})})}preparePerspectiveImage(e={}){return"configurator"===this._configuratorContext.baseContext?super.preparePerspectiveImage(e):new Promise((t,n)=>{this._getViewModel().materialQueue.finished(!0).then(async()=>{let n;this._cameraControl instanceof te?n=this._cameraControl.getCamera().clone():(n=this.getPerspectiveOffsetCamera(),this._getViewModel().setCameraType(b.CAMERA_3D));let i=this._calculateBoundingBoxOfAllMeshes();this._lightSetting.removeFromScene();const a=await X(this._scene,null,n,i,e);this._cameraControl instanceof ne&&this._getViewModel().setCameraType(b.CAMERA_2D),this._lightSetting.addToScene(),this._requestRender(),t(a)},n)})}_calculateBoundingBoxOfAllMeshes(e=0){const t=this.getBounds();return Q(t,e)}enableRotation(){this._plannerSceneEventHandler.setState(2)}disableRotation(){this._plannerSceneEventHandler.resetState()}enableSnapping(){this._plannerSceneEventHandler.enableSnapping()}disableSnapping(){this._plannerSceneEventHandler.disableSnapping()}dragIn(e){this._plannerSceneEventHandler.setDragIn(!0,e)}getPlannerSceneEventHandler(){return this._plannerSceneEventHandler}disablePlannerEvents(){this._plannerSceneEventHandler.disable()}enablePlannerEvents(){this._plannerSceneEventHandler.enable()}_onCameraIdle(){return super._onCameraIdle()&&(this._sendWallDimensions(),this._sendPlanObjectPositions(),this._roomlePlannerUiCallback.onCameraIdle()),!0}_onCameraMove(){return super._onCameraMove()&&(this._roomlePlannerUiCallback.disableWallDimensions(),this._roomlePlannerUiCallback.cameraStartsMoving()),this._updateNodeSize(),!0}_updateNodeSize(){if(this._cameraControl instanceof ne){const e=1/this._cameraControl.getCamera().zoom;this._getViewModel().setNodeZoom(e)}}_sendPlanObjectPositions(){if(this._cameraControl.isLocked())return;const{clientWidth:e,clientHeight:t}=this._domHelper.element,n=this._cameraControl.getCamera(),i=[],a=this._getViewModel().getStaticPlanObjectViewModels();for(const s of a)i.push(_e(s,n,e,t));const s=this._getViewModel().getConfigurablePlanObjectViewModels();for(const a of s)i.push(_e(a,n,e,t));this._roomlePlannerUiCallback.onUpdatePlanObjectPositions(i)}_sendWallDimensions(e=!0){if(this._cameraControl.isLocked()&&e)return;const t=[],{clientWidth:n,clientHeight:i}=this._domHelper.element,a=this._getViewModel().getWallPlanObjectViewModels();for(const e of a){const a=e.getWallDimension();if(a.length>0&&(a.fromPosition2d=g(a.fromPosition3d,this._cameraControl.getCamera(),n,i),a.toPosition2d=g(a.toPosition3d,this._cameraControl.getCamera(),n,i),a.textPosition2d=g(a.textPosition3d,this._cameraControl.getCamera(),n,i),a.lengthFormatted=this._unitFormatter.formatMMValueToUnitString(a.length),t.push(I(a))),this._initData.debug){const e=new THREE.SphereGeometry(.1,32,16),t=new THREE.MeshBasicMaterial({color:16711680}),n=new THREE.Mesh(e,t);n.position.copy(a.fromPosition3d);const i=new THREE.Mesh(e,t);i.position.copy(a.toPosition3d);const s=new THREE.Mesh(e,new THREE.MeshBasicMaterial({color:65280}));s.position.copy(a.textPosition3d),this._scene.add(n),this._scene.add(i),this._scene.add(s)}}this._roomlePlannerUiCallback.onUpdateWallDimensions(t)}enableWallDrawing(){if(this._cameraControl instanceof ne){const e=P(this.getBounds(),this._domHelper.element.clientWidth,this._domHelper.element.clientHeight);this._cameraControl.zoomToFitBounds(e,!0)}this._drawingEnabled||(this._drawingEnabled=!0,this._scene.add(this._plannerSceneEventHandler.enableWallDrawing()))}disableWallDrawing(){this._drawingEnabled=!1,this._cameraControl.unlock(),this._scene.remove(this._plannerSceneEventHandler.cancelWallDrawing())}escapeDrawing(){this._plannerSceneEventHandler.stopDrawing()}_changeCameraControl(e){super._changeCameraControl(e)}setSceneEvents(e){var t,n;void 0!==e.construction&&(null===(t=this._plannerSceneEventHandler)||void 0===t||t.enableConstructionEvents(e.construction)),void 0!==e.objects&&(null===(n=this._plannerSceneEventHandler)||void 0===n||n.enableObjectEvents(e.objects))}startedDrawing(){this._plannerSceneEventHandler.startDrawing()}stoppedDrawing(){this._plannerSceneEventHandler.stopDrawing()}disableEvents(){super.disableEvents(),this.disablePlannerEvents()}enableEvents(){super.enableEvents(),"planner"===this._configuratorContext.baseContext&&this.enablePlannerEvents()}resetCameraPositionToStart(e=!0){this._cameraControl instanceof te&&super.resetCameraPositionToStart(e),this._cameraControl instanceof ne&&this._updateCamera()}async moveCamera(e){return this._cameraControl instanceof te?super.moveCamera(e):Promise.reject("Camera can only be moved in 3D")}_setInteriorOrExteriorWallMaterial(e,t){const n=this._getViewModel().getWallPlanObjectViewModels();if(!n.length)return;const i=this._getKernelAccess().planInteractionHandler,a=e=>{i.setWallLeftMaterial(e,K(e.leftMaterial,t))},s=e=>{i.setWallRightMaterial(e,K(e.rightMaterial,t))},r=n.map(e=>e.getKernelObject()),o=this._plannerKernelAccess.kernelContainer.WallType.InnerWall,l=this._plannerKernelAccess.kernelContainer.WallType.OuterWallLeft,c=this._plannerKernelAccess.kernelContainer.WallType.OuterWallRight;for(const t of r)t.wallType===o&&"interior"===e&&(a(t),s(t)),t.wallType===l&&("interior"===e?s(t):a(t)),t.wallType===c&&("exterior"===e?s(t):a(t))}changeInteriorWallsMaterial(e){this._setInteriorOrExteriorWallMaterial("interior",e)}changeExteriorWallsMaterial(e){this._setInteriorOrExteriorWallMaterial("exterior",e)}changeFloorsMaterial(e){const t=this._getViewModel().getFloorPlanObjectViewModels();if(!t.length)return;const n=this._getKernelAccess().planInteractionHandler,i=t.map(e=>e.getKernelObject());for(const t of i)n.setFloorMaterial(t,K(t.material,e))}getWallAngleDegrees(e){if(!(e instanceof o))return 0;const t=this._cameraControl.getCamera(),n=new THREE.Vector2(t.position.x,t.position.z),i=new THREE.Vector2(e.getPosition().x,e.getPosition().z).clone().sub(n).normalize(),a=e.getKernelObject(),s=new THREE.Vector2(Math.sin(a.getAngle()),Math.cos(a.getAngle())),r=i.angle()-s.angle();return THREE.MathUtils.radToDeg(r)}}i([a],me.prototype,"_rapiAccess",void 0),i([a],me.prototype,"_plannerMeshGenerator",void 0),i([a],me.prototype,"_plannerInputManager",void 0),i([a],me.prototype,"_roomlePlannerUiCallback",void 0),i([a],me.prototype,"_localStorageHelper",void 0),i([a],me.prototype,"_unitFormatter",void 0);const ue={left:0,top:1,right:1,bottom:0};class we{constructor(e){this._hscInstance=null,this._glbInstance=null,this._configurator=null,this._currentMode=1,this._creator_=e,this._kernelAccessCallback.addListener(this)}deleteSelection(){this._sceneManager.deletePlanElementSelection()}rotateSelection(e){this._sceneManager.rotatePlanElementSelection(e)}cancelSelection(e="unknown"){this._sceneManager.cancelPlanElementSelection(e)}init(e,t,n){return v.start("loadingTime"),this._domHelper.setDomElement(e),this._sceneManager?(this._lifeCycleManager.resume(),Promise.resolve()):(this._preloadPlanId=t,this.setOverrides(n),new Promise(this._initPromiseCallback.bind(this)))}loadPlanXml(e,t){return this.setOverrides(t),new Promise(n=>{this._plan=this._planInteractionHandler.loadPlanXML(e),this._sceneManager.planXMLLoaded(this._plan),this._roomlePlannerUiCallback.onTotalFloorAreaChanged(this._planInteractionHandler.getPlan().getTotalFloorArea()),this._currentMode=1,this._initData.moc&&(t.id?this._rapiAccess.trackView(t.id):this._rapiAccess.trackView("planXML")),n()})}loadPlan(e,t){return this.setOverrides(t),new Promise((t,n)=>{const i=H(e);(i?this._rapiAccess.getPlanSnapshot(e):this._rapiAccess.getPlan(e)).then(n=>{const a=i?n.plan:n.planObjects;this._plan=this._planInteractionHandler.loadPlanXML(a),this._sceneManager.planXMLLoaded(this._plan),this._roomlePlannerUiCallback.onTotalFloorAreaChanged(this._planInteractionHandler.getPlan().getTotalFloorArea()),this._currentMode=1,this._initData.moc&&this._rapiAccess.trackView(e),t(n)},n)})}setOverrides(e){e&&(this._initData.setOverrides(e),this._globalInitData.setOverrides(e))}switch2D(){this._sceneManager.switchTo2D()}switch3D(){this._sceneManager.switchTo3D()}switchToFirstPerson(){this._sceneManager.switchToFirstPerson()}resetCameraPosition(){this._sceneManager.resetCameraPositionToStart()}exportGLB(){this._sceneManager.exportGLB()}importGLB(e){this._sceneManager.importGLB(e)}_initPromiseCallback(e,t){this._threeLoader.fetch().then(()=>{let t=this._scriptLoader.fetch(D,{id:"gltf-loader"}),n=this._scriptLoader.fetch(L,{id:"draco-loader"}),i=this._scriptLoader.fetch(ae,{id:"tween-js"}),a=this._scriptLoader.fetch("static/Sky-6621935ea8a523af.js",{id:"sky-js"});Promise.all([t,n,i,a]).then(()=>{this._kernelReadyCallback=e;const{dls:t,ls:n,mode:i,stats:a}=this._initData;this._sceneManager||(this._sceneManager=new me(this._creator_,ue,this,i)),this._preloadPlanId&&this._sceneManager.preload(this._preloadPlanId);const s=A.createDynamicLightSettingSource(t,n);a&&this.showStats(),this.enableHD(s),this._planInteractionHandler&&this._kernelReadyCallback()})})}enableHD(e){return new Promise((t,n)=>{const i=()=>{this._sceneManager.enableHD(e),t()};this._threeLoader.fetch().then(()=>Promise.all(se.map(e=>this._scriptLoader.fetch(e,{id:e})))).then(()=>{this._scriptLoader.fetch(re,{id:"pi-js"}).then(i,n)},n)})}isReady(){this._planInteractionHandler=this._plannerKernelAccess.planInteractionHandler,this._kernelReadyCallback&&this._kernelReadyCallback()}showBenchmarks(){v.showBenchmarks()}getConfiguratorApi(){return this._configurator||(this._configurator=new J(this._creator_),this._configurator.setOverrides(this._initData),this._configurator.initSceneManager(this._sceneManager)),this._configurator}startViewing(){this._sceneManager.startViewing()}startConfiguring(){var e,t;this._sceneManager.startConfiguring();const n=this._sceneManager.currentSelection,i=(null===(e=n.item)||void 0===e?void 0:e.id)||(null===(t=n.configuration)||void 0===t?void 0:t.id);i&&this._configurator.notifyUiAboutNewLabel(i)}async selectPlanObjectById(e){return this._sceneManager.selectPlanObject(e)}backToPlanner(){this._sceneManager.backToPlanner()}async switchToConfigurator(){const e=await this._singlePromiseFactory.create(3,"startHSC",e=>{if(this._hscInstance)return e(this._hscInstance);t.import("./configurator-2017a176.nomodule.js").then(({Configurator:t})=>{const n=new t(this._creator_);n.boot({kernelInstance:this._planInteractionHandler.getConfiguratorKernel(),kernelContainer:this._plannerKernelAccess.kernelContainer}),n.getApi().setOverrides(this._initData),n.getApi().initSceneManager(this._sceneManager),n.getApi().init(this._domHelper.element).then(()=>{this._hscInstance=n,e(this._hscInstance)})})});return this._currentMode=0,this.cancelSelection(),e}async switchToViewer(){const e=await this._singlePromiseFactory.create(4,"startGLB",e=>{if(this._glbInstance)return e(this._glbInstance);t.import("./glb-viewer-2614955b.nomodule.js").then(t=>{const n=new t.GlbViewer(this._creator_);n.boot(),n.getApi().setOverrides(this._initData),n.getApi().init(this._domHelper.element).then(()=>{this._glbInstance=n,e(this._glbInstance)})})});return this._currentMode=2,this.cancelSelection(),e}switchToPlanner(e){e&&this.loadPlan(e),this._currentMode=1}updateSize(){this._sceneManager.updateCamera()}getMain(){}update(){this.updateSize(),this._glbInstance&&this._glbInstance.getApi().updateSize(),this._hscInstance&&this._hscInstance.getApi().updateSize()}get callbacks(){return this._roomlePlannerUiCallback}set callbacks(e){this._roomlePlannerUiCallback=e}showStats(){this._sceneManager.showStats()}onCloseHSC(){this._sceneManager.closeHSC(),this._hscInstance&&this._hscInstance.getApi().pauseKernelCallbacks()}back(){if(2===this._currentMode&&this._glbInstance&&this._glbInstance.getApi().clearScene(),0===this._currentMode&&this._hscInstance){const e=this._hscInstance.getApi();e.cancelSelection(),e.cancelDockings(),e.hideDimensions(),e.disableMultiselect(),this._sceneManager.updateScene()}this._currentMode=1}backTo(e){console.error("backTo in planner Needs to be implemented later")}getConfigurator(){return this._hscInstance}getCurrentSkin(){return this._rapiAccess.getCurrentSkin()}getRuntimeComponentIdOfRootComponent(e){return e?this._plannerKernelAccess.planInteractionHandler?this._plannerKernelAccess.planInteractionHandler.getConfiguratorKernel().getRootPlanComponentIdFromObjectId(e):(console.warn("Can not retrieve runtime id without planInteractionHandler"),0):(console.warn("Can not retrieve runtime id without planObjectId"),0)}resumeTest(e){this._domHelper.setDomElement(e),this._lifeCycleManager.resume()}pauseTest(){this._lifeCycleManager.pause()}syncCatalog(e){return this._dataSyncer.syncCatalog(e)}loadError(e){}getPlanInteractionHandler(){return Promise.resolve(this._planInteractionHandler)}getPlanModelViewHelper(){return Promise.resolve(this._plannerKernelAccess.planModelViewHelper)}async insertObject(e,t,n){if(!this._planInteractionHandler)throw new Error("no plan interaction handler");t&&(t=s(new THREE.Vector3(t.x,t.y,t.z)));const i=await(y(e)?this._rapiAccess.getItem(e):this._rapiAccess.getConfiguration(e)),a=await this._plannerKernelAccess.addPlanObjectFromItem(i,t,n);return this._sceneManager.updateScene(),a}async insertItemList(e){const t=e.map(e=>y(e)?this._rapiAccess.getItem(e):this._rapiAccess.getConfiguration(e)),n=await Promise.all(t);return await this._plannerKernelAccess.insertItems(n)}async insertItems(e){return await this._plannerKernelAccess.insertItems(e)}getScene(){return this._sceneManager.getScene()}updateScene(){this._sceneManager.updateScene()}getCameraOffset(){return this._sceneManager.getCameraOffset()}setCameraOffset(e){this._sceneManager.setCameraOffset(e)}async getObjects(){const e=(await this.getPlanModelViewHelper()).getPlanOverview(this._plan),t=m(e.objects);return pe(t,this._plannerKernelAccess,this._rapiAccess)}async getPlanOverview(){const e=(await this.getPlanModelViewHelper()).getPlanOverview(this._plan);return m(e)}prepareTopImage(e={}){return this._sceneManager.prepareTopImage(e)}preparePerspectiveImage(e={}){return this._sceneManager.preparePerspectiveImage(e)}enableRotation(){this._sceneManager.enableRotation()}disableRotation(){this._sceneManager.disableRotation()}async dragInObject(e,t){this._sceneManager.dragIn(t);const n=await this._rapiAccess.getItem(e),i=await this.insertItems([n]);if(1!==i.length)throw new Error("More than one object added, abort");return i[0]}enableSnapping(){this._sceneManager.enableSnapping()}disableSnapping(){this._sceneManager.disableSnapping()}async getPartlistOf(e){const t=this._plannerKernelAccess.kernelInstance.getHashOfConfiguration(e);if(!t){const e="Object has no partlist because it is not a configuration: "+t;return console.warn(e),Promise.reject(e)}const n=this._plannerKernelAccess.kernelInstance.getPartList(e);return await this._plannerKernelAccess.addUiDataAndPriceToPartList(n,t)}formatValueToUnitString(e,t){return this._unitFormatter.formatValueToUnitString(e,t)}drawWalls(e,t={}){var n,i;const a=this._planInteractionHandler;a.startInteraction();const s=[];for(const t of e){const e=a.addNode(t.from),r=a.addNode(t.to),o=a.addWall(e,r);void 0!==(null===(n=t.props)||void 0===n?void 0:n.height)&&a.setWallHeight(o,t.props.height),void 0!==(null===(i=t.props)||void 0===i?void 0:i.thickness)&&a.setWallThickness(o,t.props.thickness),s.push(o)}return t.keepInteractionOpen||a.endInteraction(),this._sceneManager.updateCameraOnDrawWalls(),this._sceneManager.updateScene(),s}async removeElements(e,t={}){this._sceneManager.lockCamera();const n=this._planInteractionHandler;n.startInteraction();for(const t of e){const e=ge(this._plannerKernelAccess,m(t).getId());let n;e&&(n=await pe([e],this._plannerKernelAccess,this._rapiAccess)),this._roomlePlannerUiCallback.onPlanElementChanged(w.REMOVED,n?n[0]:null),this._planInteractionHandler.removeElement(t)}t.keepInteractionOpen||n.endInteraction(),this._sceneManager.unlockCamera()}hasWalls(){const e=this._planInteractionHandler,t=null==e?void 0:e.getPlan();return!(!t||t.getWallCount()<1)}enableWallDrawing(){this._sceneManager.enableWallDrawing()}disableWallDrawing(){this._sceneManager.disableWallDrawing()}getUnitFormatter(){return this._unitFormatter}get PlannerCoreTypes(){return this._plannerKernelAccess.kernelContainer}setSceneEvents(e){this._sceneManager.setSceneEvents(e)}async saveCurrentPlanSnapshot(e){const t=await this.getPlanModelViewHelper(),n=this._planInteractionHandler.getPlan(),i=t.getPlanOverview(n),a={parentId:e||null,planObjects:[],combinedIds:[],plan:n.getPlanXML(!1,2)},s=i.objects,r=s.size();for(let e=0;e<r;e++){const t=s.get(e),n=t.configurationHash||t.catalogItemId,{center:i,dimensions:r,rotation:o}=t,l=JSON.stringify({center:i,dimensions:r,rotation:o});a.planObjects.push({combinedId:n,location:l})}const o=await this._rapiAccess.savePlanSnapshot(a),l=new Promise((e,t)=>{let n=null,i=null;this.preparePerspectiveImage().then(a=>this._rapiAccess.savePlanSnapshotPerspectiveImage(o,a).then(t=>{n=t,i&&(t.topImage=i.topImage,e(t))},t),t),this.prepareTopImage().then(a=>this._rapiAccess.savePlanSnapshotTopImage(o,a).then(t=>{i=t,n&&(t.perspectiveImage=i.perspectiveImage,e(t))},t),t)});try{return await l}catch(e){return console.error(e),o}}getPlanXmlFrom(e){return e?H(e.id)?e.plan:e.planObjects:null}async moveCamera(e){return this._sceneManager.moveCamera(e)}async createNewSerializedConfiguration(e){return Promise.resolve(this._plannerKernelAccess.createNewSerializedConfiguration(e))}changeInteriorWallsMaterial(e){this._sceneManager.changeInteriorWallsMaterial(e)}changeExteriorWallsMaterial(e){this._sceneManager.changeExteriorWallsMaterial(e)}changeFloorsMaterial(e){this._sceneManager.changeFloorsMaterial(e)}getWallAngleDegrees(e){return this._sceneManager.getWallAngleDegrees(e)}calcPartsPriceSum(e){return this._plannerKernelAccess.calcPartsPriceSum(e)}async swapObject(e,t){const n=e.getPosition(),i=e.getRotation();return await this._sceneManager.deletePlanElementByIds([e.getPlanElement().getId()]),this.cancelSelection("swap_object"),await this.insertObject(t,n,i)}async exportImageFromCamera(e="image"){G(e,await this._sceneManager.exportImageFromCamera())}}i([a],we.prototype,"_domHelper",void 0),i([a],we.prototype,"_scriptLoader",void 0),i([a],we.prototype,"_kernelAccessCallback",void 0),i([a],we.prototype,"_plannerKernelAccess",void 0),i([a],we.prototype,"_rapiAccess",void 0),i([a],we.prototype,"_singlePromiseFactory",void 0),i([a],we.prototype,"_roomlePlannerUiCallback",void 0),i([a],we.prototype,"_lifeCycleManager",void 0),i([a],we.prototype,"_threeLoader",void 0),i([a],we.prototype,"_dataSyncer",void 0),i([a],we.prototype,"_initData",void 0),i([a],we.prototype,"_globalInitData",void 0),i([a],we.prototype,"_unitFormatter",void 0);class Ce{constructor(e){const{planElementViewModel:t,reason:n}=e;this.planElementViewModel=t,this.reason=n}}const Ee=[new T("script-loader",oe),new T("planner-input-manager",class extends O{_canDrag(e){return!0}},1),new T("logger",V),new T("planner-mesh-generator",R),new T("rapi-access",j),new T("planner-selection-handler",class extends k{constructor(){super(...arguments),this._selectionMode="standard",this._selectedPlanElementViewModels=new Map}check(e){"standard"===this._selectionMode&&this._checkStandard(e),"multiselect"===this._selectionMode&&this._checkMulti(e)}cancelSelection(e){0!==this._selectedPlanElementViewModels.size&&this._selectedPlanElementViewModels.forEach((t,n)=>{this._selectedPlanElementViewModels.delete(n),t.deselect(),this.dispatchEvent(1,new Ce({planElementViewModel:t,reason:e}))})}_checkStandard(e){if(this._selectedPlanElementViewModels.has(e.getId()))return this._selectedPlanElementViewModels.delete(e.getId()),e.deselect(),void this.dispatchEvent(1,new Ce({planElementViewModel:e}));this._selectedPlanElementViewModels.size>0&&this._selectedPlanElementViewModels.forEach((e,t)=>{this._selectedPlanElementViewModels.delete(t),e.deselect(),this.dispatchEvent(1,new Ce({planElementViewModel:e}))}),this._selectedPlanElementViewModels.set(e.getId(),e),e.select(),this.dispatchEvent(0,new Ce({planElementViewModel:e}))}_checkMulti(e){if(this._selectedPlanElementViewModels.has(e.getId()))return this._selectedPlanElementViewModels.delete(e.getId()),e.deselect(),void this.dispatchEvent(1,new Ce({planElementViewModel:e}));this._selectedPlanElementViewModels.set(e.getId(),e),e.select(),this.dispatchEvent(0,new Ce({planElementViewModel:e}))}setSelectionMode(e){this._selectionMode=e}getSelectionMode(){return this._selectionMode}hasSelection(){return this._selectedPlanElementViewModels.size>0}getSelectedIds(){let e=[];return this._selectedPlanElementViewModels.forEach(t=>e.push(t.getId())),e}isSelected(e){return!!this._selectedPlanElementViewModels.get(e)}})];e("Planner",class extends le{setupGlobals(){}setupDependencies(){x.setup(Ee),this.lookup("logger",this._context),this.lookup("planner-kernel-access",this._context).init(0)}cleanUpGlobals(){throw new Error("Method not implemented.")}cleanUpDependencies(){throw new Error("Method not implemented.")}bootFinished(){this._planner=new we(this._context),this._planner.getMain=()=>this,window.RoomlePlanner||(window.RoomlePlanner=this._planner)}getApi(){return this._planner}getContextName(){return"planner"}})}}}));
|
|
2
|
-
//# sourceMappingURL=planner-adf58473.nomodule.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./query-params-helper-a271f9dc.js";import"./roomle-dependency-injection-d1ff95c3.js";import"./main-thread-to-worker-ba53e0fd.js";import"./roomle-configurator-4bcfd804.js";import{Planner}from"./planner-3bc56225.js";import"./pixotron-34491bb2.js";import"./script-loader-fec0a799.js";import"./default-light-setting-c01cdfad.js";(new Planner).boot(),window.requestIdleCallback||(window.requestIdleCallback=e=>setTimeout(()=>{let o=Date.now();e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-o))})},1)),window.cancelIdleCallback||(window.cancelIdleCallback=window.cancelIdleCallback||function(e){clearTimeout(e)});
|
|
2
|
-
//# sourceMappingURL=planner-main-477cdce0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"planner-main-477cdce0.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|