@roomle/web-sdk 2.22.0 → 2.23.0
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-2c3d2d66.nomodule.js → banana-for-scale-42de697a.nomodule.js} +2 -2
- package/lib/{banana-for-scale-2c3d2d66.nomodule.js.map → banana-for-scale-42de697a.nomodule.js.map} +1 -1
- package/lib/{banana-for-scale-b4820033.js → banana-for-scale-b84603f2.js} +2 -2
- package/lib/{banana-for-scale-b4820033.js.map → banana-for-scale-b84603f2.js.map} +1 -1
- package/lib/{budgeteer-measure-4cffd344.js → budgeteer-measure-05dc445d.js} +2 -2
- package/lib/{budgeteer-measure-4cffd344.js.map → budgeteer-measure-05dc445d.js.map} +1 -1
- package/lib/budgeteer-measure.nomodule.js +1 -1
- package/lib/{component-dimensioning-bf032e70.js → component-dimensioning-93634fec.js} +2 -2
- package/lib/component-dimensioning-93634fec.js.map +1 -0
- package/lib/{component-dimensioning-7d6fcd93.nomodule.js → component-dimensioning-c0ac56ff.nomodule.js} +2 -2
- package/lib/component-dimensioning-c0ac56ff.nomodule.js.map +1 -0
- package/lib/configurator-7e58ca7c.js +2 -0
- package/lib/{configurator-e4ba2c2c.js.map → configurator-7e58ca7c.js.map} +1 -1
- package/lib/configurator-c125c3c8.nomodule.js +2 -0
- package/lib/{configurator-202956f4.nomodule.js.map → configurator-c125c3c8.nomodule.js.map} +1 -1
- package/lib/configurator-main-da006b54.js +2 -0
- package/lib/configurator-main-da006b54.js.map +1 -0
- package/lib/configurator-main.nomodule.js +1 -1
- package/lib/{configurator-mesh-generator-6381a017.nomodule.js → configurator-mesh-generator-2f342c08.nomodule.js} +2 -2
- package/lib/configurator-mesh-generator-2f342c08.nomodule.js.map +1 -0
- package/lib/{configurator-mesh-generator-e0559b97.js → configurator-mesh-generator-b3fb022a.js} +2 -2
- package/lib/configurator-mesh-generator-b3fb022a.js.map +1 -0
- package/lib/{default-light-setting-269087a3.nomodule.js → default-light-setting-2218084f.nomodule.js} +2 -2
- package/lib/default-light-setting-2218084f.nomodule.js.map +1 -0
- package/lib/{default-light-setting-4c54f308.js → default-light-setting-dbb59ba5.js} +2 -2
- package/lib/default-light-setting-dbb59ba5.js.map +1 -0
- package/lib/definitions/common-core/__tests__/{feature-detection.d.ts → utils/rapi-utils.d.ts} +0 -0
- package/lib/definitions/common-core/mock/kernel-instances.d.ts +1 -0
- package/lib/definitions/common-core/src/common-configurator-kernel-callback.d.ts +2 -2
- package/lib/definitions/common-core/src/services/common-kernel-access.d.ts +2 -2
- package/lib/definitions/common-core/src/utils/feature-detection.d.ts +0 -1
- package/lib/definitions/common-core/src/utils/rapi-utils.d.ts +4 -0
- package/lib/definitions/common-core/src/view-model/configurator-view-model.d.ts +2 -2
- package/lib/definitions/common-core/src/webgl/scene-manager.d.ts +12 -1
- package/lib/definitions/planner-core/src/roomle-planner.d.ts +8 -0
- package/lib/definitions/typings/kernel.d.ts +1 -0
- package/lib/{dimensioning-helper-36169ebe.js → dimensioning-helper-1047e166.js} +2 -2
- package/lib/dimensioning-helper-1047e166.js.map +1 -0
- package/lib/{dimensioning-helper-e6459147.nomodule.js → dimensioning-helper-e5a1f92b.nomodule.js} +2 -2
- package/lib/dimensioning-helper-e5a1f92b.nomodule.js.map +1 -0
- package/lib/{glb-viewer-1455d26c.js → glb-viewer-58c75d10.js} +2 -2
- package/lib/{glb-viewer-1455d26c.js.map → glb-viewer-58c75d10.js.map} +1 -1
- package/lib/{glb-viewer-c1eff647.nomodule.js → glb-viewer-b176add0.nomodule.js} +2 -2
- package/lib/{glb-viewer-c1eff647.nomodule.js.map → glb-viewer-b176add0.nomodule.js.map} +1 -1
- package/lib/glb-viewer-main-fd9ff00c.js +2 -0
- package/lib/glb-viewer-main-fd9ff00c.js.map +1 -0
- package/lib/glb-viewer-main.nomodule.js +1 -1
- package/lib/image-renderer-7e5f1199.js +2 -0
- package/lib/{image-renderer-eccb80a5.js.map → image-renderer-7e5f1199.js.map} +1 -1
- package/lib/image-renderer-cfd9ed49.nomodule.js +2 -0
- package/lib/{image-renderer-dd3a3b56.nomodule.js.map → image-renderer-cfd9ed49.nomodule.js.map} +1 -1
- package/lib/legacy/banana-for-scale-346de2e4.legacy.js +2 -0
- package/lib/legacy/{banana-for-scale-d9fdb6d4.legacy.js.map → banana-for-scale-346de2e4.legacy.js.map} +1 -1
- package/lib/legacy/budgeteer-measure.legacy.js +1 -1
- package/lib/legacy/{component-dimensioning-104a6bc1.legacy.js → component-dimensioning-629f2f3a.legacy.js} +2 -2
- package/lib/legacy/component-dimensioning-629f2f3a.legacy.js.map +1 -0
- package/lib/legacy/configurator-44d35a54.legacy.js +2 -0
- package/lib/legacy/{configurator-6b788202.legacy.js.map → configurator-44d35a54.legacy.js.map} +1 -1
- package/lib/legacy/configurator-main.legacy.js +1 -1
- package/lib/legacy/configurator-mesh-generator-aeaab699.legacy.js +2 -0
- package/lib/legacy/configurator-mesh-generator-aeaab699.legacy.js.map +1 -0
- package/lib/legacy/{default-light-setting-78b9795d.legacy.js → default-light-setting-fbdf535e.legacy.js} +2 -2
- package/lib/legacy/default-light-setting-fbdf535e.legacy.js.map +1 -0
- package/lib/legacy/{dimensioning-helper-aa9f32c4.legacy.js → dimensioning-helper-6a7e8c77.legacy.js} +2 -2
- package/lib/legacy/dimensioning-helper-6a7e8c77.legacy.js.map +1 -0
- package/lib/legacy/{glb-viewer-47215461.legacy.js → glb-viewer-d5a57e08.legacy.js} +2 -2
- package/lib/legacy/{glb-viewer-47215461.legacy.js.map → glb-viewer-d5a57e08.legacy.js.map} +1 -1
- package/lib/legacy/glb-viewer-main.legacy.js +1 -1
- package/lib/legacy/image-renderer-49deaae2.legacy.js +2 -0
- package/lib/legacy/{image-renderer-50475591.legacy.js.map → image-renderer-49deaae2.legacy.js.map} +1 -1
- package/lib/legacy/{main-thread-to-worker-66323030.legacy.js → main-thread-to-worker-880d5b78.legacy.js} +2 -2
- package/lib/legacy/main-thread-to-worker-880d5b78.legacy.js.map +1 -0
- package/lib/legacy/material-viewer-2e21a4f7.legacy.js +2 -0
- package/lib/legacy/material-viewer-2e21a4f7.legacy.js.map +1 -0
- package/lib/legacy/material-viewer-main.legacy.js +1 -1
- package/lib/legacy/mesh-generator-a9938ee3.legacy.js +2 -0
- package/lib/legacy/mesh-generator-a9938ee3.legacy.js.map +1 -0
- package/lib/legacy/{pixotron-e22efd52.legacy.js → pixotron-0b1d662e.legacy.js} +2 -2
- package/lib/legacy/{pixotron-e22efd52.legacy.js.map → pixotron-0b1d662e.legacy.js.map} +1 -1
- package/lib/legacy/planner-e6a2af12.legacy.js +2 -0
- package/lib/legacy/{planner-4e739fba.legacy.js.map → planner-e6a2af12.legacy.js.map} +1 -1
- package/lib/legacy/planner-main.legacy.js +1 -1
- package/lib/legacy/rapi-access-9e79a6ed.legacy.js +16 -0
- package/lib/legacy/{rapi-access-41e0190e.legacy.js.map → rapi-access-9e79a6ed.legacy.js.map} +1 -1
- package/lib/legacy/roomle-sdk.legacy.js +1 -1
- package/lib/legacy/scene-manager-e16780a8.legacy.js +2 -0
- package/lib/legacy/scene-manager-e16780a8.legacy.js.map +1 -0
- package/lib/legacy/static/ConfiguratorKernel-7824c66aefcb2b41.js +137 -0
- package/lib/legacy/static/ConfiguratorKernel-c4705c3beab2c75c.wasm +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-66c44fdd795cfb97.mem +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-dd4ecf875e7d0682.js +185 -0
- package/lib/legacy/static/RoomleCore-6f789e05759fd700.wasm +0 -0
- package/lib/legacy/static/RoomleCore-7bc4605b421746fa.js +150 -0
- package/lib/legacy/static/RoomleCoreJs-208bd06646f38679.mem +0 -0
- package/lib/legacy/static/RoomleCoreJs-344db042f996462a.js +199 -0
- package/lib/legacy/static/shaders-3d797579ff9c12c0.json +1 -0
- package/lib/legacy/{stats-helper-5a5aa20f.legacy.js → stats-helper-b0faba70.legacy.js} +2 -2
- package/lib/legacy/{stats-helper-5a5aa20f.legacy.js.map → stats-helper-b0faba70.legacy.js.map} +1 -1
- package/lib/{main-thread-to-worker-3b2ebd37.js → main-thread-to-worker-91bf9f5e.js} +2 -2
- package/lib/main-thread-to-worker-91bf9f5e.js.map +1 -0
- package/lib/{main-thread-to-worker-35970716.nomodule.js → main-thread-to-worker-bb844d54.nomodule.js} +2 -2
- package/lib/main-thread-to-worker-bb844d54.nomodule.js.map +1 -0
- package/lib/material-viewer-4e03269a.nomodule.js +2 -0
- package/lib/material-viewer-4e03269a.nomodule.js.map +1 -0
- package/lib/material-viewer-f16c52e4.js +2 -0
- package/lib/material-viewer-f16c52e4.js.map +1 -0
- package/lib/material-viewer-main-3b415873.js +2 -0
- package/lib/material-viewer-main-3b415873.js.map +1 -0
- package/lib/material-viewer-main.nomodule.js +1 -1
- package/lib/mesh-generator-64203565.nomodule.js +2 -0
- package/lib/mesh-generator-64203565.nomodule.js.map +1 -0
- package/lib/mesh-generator-c4f97fdc.js +2 -0
- package/lib/mesh-generator-c4f97fdc.js.map +1 -0
- package/lib/{pixotron-17562920.nomodule.js → pixotron-358442c5.nomodule.js} +2 -2
- package/lib/{pixotron-17562920.nomodule.js.map → pixotron-358442c5.nomodule.js.map} +1 -1
- package/lib/{pixotron-75c414e7.js → pixotron-5bb3aafe.js} +2 -2
- package/lib/{pixotron-75c414e7.js.map → pixotron-5bb3aafe.js.map} +1 -1
- package/lib/planner-be62add0.js +2 -0
- package/lib/{planner-981b523b.js.map → planner-be62add0.js.map} +1 -1
- package/lib/planner-eedd4bfc.nomodule.js +2 -0
- package/lib/{planner-d2b5e345.nomodule.js.map → planner-eedd4bfc.nomodule.js.map} +1 -1
- package/lib/planner-main-5b5f72b3.js +2 -0
- package/lib/planner-main-5b5f72b3.js.map +1 -0
- package/lib/planner-main.nomodule.js +1 -1
- package/lib/rapi-access-74fbaf72.nomodule.js +16 -0
- package/lib/{rapi-access-339cccf6.nomodule.js.map → rapi-access-74fbaf72.nomodule.js.map} +1 -1
- package/lib/rapi-access-f8222879.js +16 -0
- package/lib/{rapi-access-56a3e030.js.map → rapi-access-f8222879.js.map} +1 -1
- package/lib/{roomle-sdk-d699b12b.js → roomle-sdk-9ba1a888.js} +2 -2
- package/lib/roomle-sdk-9ba1a888.js.map +1 -0
- package/lib/roomle-sdk.nomodule.js +1 -1
- package/lib/scene-manager-4637ed82.js +2 -0
- package/lib/scene-manager-4637ed82.js.map +1 -0
- package/lib/scene-manager-86fe8139.nomodule.js +2 -0
- package/lib/scene-manager-86fe8139.nomodule.js.map +1 -0
- package/lib/static/ConfiguratorKernel-7824c66aefcb2b41.js +1 -0
- package/lib/static/ConfiguratorKernel-7824c66aefcb2b41.js.map +1 -0
- package/lib/static/ConfiguratorKernel-c4705c3beab2c75c.wasm +0 -0
- package/lib/static/ConfiguratorKernelJs-66c44fdd795cfb97.mem +0 -0
- package/lib/static/ConfiguratorKernelJs-dd4ecf875e7d0682.js +185 -0
- package/lib/static/RoomleCore-6f789e05759fd700.wasm +0 -0
- package/lib/static/RoomleCore-7bc4605b421746fa.js +1 -0
- package/lib/static/RoomleCore-7bc4605b421746fa.js.map +1 -0
- package/lib/static/RoomleCoreJs-208bd06646f38679.mem +0 -0
- package/lib/static/RoomleCoreJs-344db042f996462a.js +199 -0
- package/lib/static/shaders-3d797579ff9c12c0.json +1 -0
- package/lib/{stats-helper-aafa9349.js → stats-helper-1547b5d7.js} +2 -2
- package/lib/{stats-helper-aafa9349.js.map → stats-helper-1547b5d7.js.map} +1 -1
- package/lib/{stats-helper-ba55aea5.nomodule.js → stats-helper-4de133a6.nomodule.js} +2 -2
- package/lib/{stats-helper-ba55aea5.nomodule.js.map → stats-helper-4de133a6.nomodule.js.map} +1 -1
- package/package.json +2 -2
- package/lib/component-dimensioning-7d6fcd93.nomodule.js.map +0 -1
- package/lib/component-dimensioning-bf032e70.js.map +0 -1
- package/lib/configurator-202956f4.nomodule.js +0 -2
- package/lib/configurator-e4ba2c2c.js +0 -2
- package/lib/configurator-main-fda99924.js +0 -2
- package/lib/configurator-main-fda99924.js.map +0 -1
- package/lib/configurator-mesh-generator-6381a017.nomodule.js.map +0 -1
- package/lib/configurator-mesh-generator-e0559b97.js.map +0 -1
- package/lib/default-light-setting-269087a3.nomodule.js.map +0 -1
- package/lib/default-light-setting-4c54f308.js.map +0 -1
- package/lib/dimensioning-helper-36169ebe.js.map +0 -1
- package/lib/dimensioning-helper-e6459147.nomodule.js.map +0 -1
- package/lib/glb-viewer-main-51f2e92b.js +0 -2
- package/lib/glb-viewer-main-51f2e92b.js.map +0 -1
- package/lib/image-renderer-dd3a3b56.nomodule.js +0 -2
- package/lib/image-renderer-eccb80a5.js +0 -2
- package/lib/legacy/banana-for-scale-d9fdb6d4.legacy.js +0 -2
- package/lib/legacy/component-dimensioning-104a6bc1.legacy.js.map +0 -1
- package/lib/legacy/configurator-6b788202.legacy.js +0 -2
- package/lib/legacy/configurator-mesh-generator-7731c94d.legacy.js +0 -2
- package/lib/legacy/configurator-mesh-generator-7731c94d.legacy.js.map +0 -1
- package/lib/legacy/default-light-setting-78b9795d.legacy.js.map +0 -1
- package/lib/legacy/dimensioning-helper-aa9f32c4.legacy.js.map +0 -1
- package/lib/legacy/image-renderer-50475591.legacy.js +0 -2
- package/lib/legacy/main-thread-to-worker-66323030.legacy.js.map +0 -1
- package/lib/legacy/material-viewer-af50b7e7.legacy.js +0 -2
- package/lib/legacy/material-viewer-af50b7e7.legacy.js.map +0 -1
- package/lib/legacy/mesh-generator-8b81c1d2.legacy.js +0 -2
- package/lib/legacy/mesh-generator-8b81c1d2.legacy.js.map +0 -1
- package/lib/legacy/planner-4e739fba.legacy.js +0 -2
- package/lib/legacy/rapi-access-41e0190e.legacy.js +0 -16
- package/lib/legacy/scene-manager-7cc3251b.legacy.js +0 -2
- package/lib/legacy/scene-manager-7cc3251b.legacy.js.map +0 -1
- package/lib/legacy/static/ConfiguratorKernel-1b88030d6265aaff.js +0 -136
- package/lib/legacy/static/ConfiguratorKernel-c48bba1fe04aa93a.wasm +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-4dd1f28084d19b35.mem +0 -0
- package/lib/legacy/static/ConfiguratorKernelJs-af670baec2bbb83d.js +0 -185
- package/lib/legacy/static/RoomleCore-88de0e9427c61a4d.js +0 -149
- package/lib/legacy/static/RoomleCore-ea9beee28ea41195.wasm +0 -0
- package/lib/legacy/static/RoomleCoreJs-d698db3fbb66f567.mem +0 -0
- package/lib/legacy/static/RoomleCoreJs-f7aef02e52c95b45.js +0 -199
- package/lib/legacy/static/shaders-4fdbe00cbb7bfae5.json +0 -1
- package/lib/main-thread-to-worker-35970716.nomodule.js.map +0 -1
- package/lib/main-thread-to-worker-3b2ebd37.js.map +0 -1
- package/lib/material-viewer-6f991267.nomodule.js +0 -2
- package/lib/material-viewer-6f991267.nomodule.js.map +0 -1
- package/lib/material-viewer-f802d3e5.js +0 -2
- package/lib/material-viewer-f802d3e5.js.map +0 -1
- package/lib/material-viewer-main-fca4f2f8.js +0 -2
- package/lib/material-viewer-main-fca4f2f8.js.map +0 -1
- package/lib/mesh-generator-8cab5eb7.js +0 -2
- package/lib/mesh-generator-8cab5eb7.js.map +0 -1
- package/lib/mesh-generator-a0bc20a3.nomodule.js +0 -2
- package/lib/mesh-generator-a0bc20a3.nomodule.js.map +0 -1
- package/lib/planner-981b523b.js +0 -2
- package/lib/planner-d2b5e345.nomodule.js +0 -2
- package/lib/planner-main-8a934141.js +0 -2
- package/lib/planner-main-8a934141.js.map +0 -1
- package/lib/rapi-access-339cccf6.nomodule.js +0 -16
- package/lib/rapi-access-56a3e030.js +0 -16
- package/lib/roomle-sdk-d699b12b.js.map +0 -1
- package/lib/scene-manager-7cd0736c.nomodule.js +0 -2
- package/lib/scene-manager-7cd0736c.nomodule.js.map +0 -1
- package/lib/scene-manager-c953c6c0.js +0 -2
- package/lib/scene-manager-c953c6c0.js.map +0 -1
- package/lib/static/ConfiguratorKernel-1b88030d6265aaff.js +0 -1
- package/lib/static/ConfiguratorKernel-1b88030d6265aaff.js.map +0 -1
- package/lib/static/ConfiguratorKernel-c48bba1fe04aa93a.wasm +0 -0
- package/lib/static/ConfiguratorKernelJs-4dd1f28084d19b35.mem +0 -0
- package/lib/static/ConfiguratorKernelJs-af670baec2bbb83d.js +0 -185
- package/lib/static/RoomleCore-88de0e9427c61a4d.js +0 -1
- package/lib/static/RoomleCore-88de0e9427c61a4d.js.map +0 -1
- package/lib/static/RoomleCore-ea9beee28ea41195.wasm +0 -0
- package/lib/static/RoomleCoreJs-d698db3fbb66f567.mem +0 -0
- package/lib/static/RoomleCoreJs-f7aef02e52c95b45.js +0 -199
- package/lib/static/shaders-4fdbe00cbb7bfae5.json +0 -1
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import{a as getValue,g as getAssetPath,M as MainThreadToWorker,h as handleJsonResponse,s as setCursor,w as wait,R as ROOMLE_COLORS,b as deepMerge,c as setDescriptor,e as setWriteable,u as uuid}from"./main-thread-to-worker-3b2ebd37.js";class Container{constructor(){this._context=new Map,this._lookups=new Map,this._singletons=new Map}getContext(e){if(this._context.has(e)){const t=this._context.get(e);return this._context.set(e,t+1),e+t}return this._context.set(e,1),e+0}addDependencyInjectionAssignments(e){e.forEach(e=>{this._lookups.set(e.className,e)})}lookup(e,t){if(!this._lookups.has(e))return null;const n=this._lookups.get(e);if(1===n.type&&void 0===t){const t="Dependency "+e+" has definition context but no context was defined!";return console.trace(t),console.error(t),null}let s=t&&1===n.type?t:"global";if(s+="_"+e,2===n.type)return new n.classDefinition;if(this._singletons.has(s))return this._singletons.get(s);const o=new n.classDefinition(t);return this._singletons.set(s,o),o}cleanUp(e){if(e){let t=[];this._singletons.forEach((n,s)=>{s.startsWith(e)&&t.push(s)}),t.forEach(e=>{this._singletons.delete(e)})}else this._singletons.clear(),this._singletons=new Map}}class DependencyInjectionAssignment{constructor(e,t,n){this.className=e,this.classDefinition=t,this.type=void 0===n?0:n}}const IMAGE_FORMATS={JPG:".jpg",JPEG:".jpeg",PNG:".png",GIF:".gif"};class FormDataUtil{_base64toBlob(e,t){t=t||"";const n=atob(e),s=n.length,o=Math.ceil(s/1024),r=new Array(o);for(let e=0;e<o;++e){let t=1024*e,o=Math.min(t+1024,s);const i=new Array(o-t);for(let e=t,s=0;e<o;++s,++e)i[s]=n[e].charCodeAt(0);r[e]=new Uint8Array(i)}return new Blob(r,{type:t})}_createFormData(e,t,n,s){const o=new FormData;-1!==e.indexOf(",")&&(e=e.substr(e.indexOf(",")+1));const r=-1===Object.keys(IMAGE_FORMATS).map(e=>IMAGE_FORMATS[e]).indexOf(n)?"application":"image",i=this._base64toBlob(e,r+"/"+n.substr(1));return o.append(s,i,t+n),o}create(e,t,n,s){return this._createFormData(e,t,n,s)}}
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function __decorate(e,t,n,s){var o,r=arguments.length,i=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,s);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(r<3?o(i):r>3?o(t,n,i):o(t,n))||i);return r>3&&i&&Object.defineProperty(t,n,i),i}class EnvMapReader{constructor(){this._size=256,this._maxLod=0,this._encoding=THREE.LinearEncoding,this._type=THREE.UnsignedByteType,this._format=THREE.RGBAFormat,this._cubeTextures=[],this._lightDirection=new THREE.Vector3,this._path=""}setPath(e){this._path=e}load(e){return new Promise(t=>{(new THREE.FileLoader).setResponseType("arraybuffer").load(this._path+e,e=>{this.parseData_(e),t(this._cubeTexture)})})}parseHeader_(e){let t=new DataView(e,0,30);this._size=t.getUint16(0),this._maxLod=t.getUint8(2),this._encoding=t.getUint16(3),this._type=t.getUint16(5),this._format=t.getUint16(7),this._lightDirection.x=t.getFloat32(9),this._lightDirection.y=t.getFloat32(13),this._lightDirection.z=t.getFloat32(17)}parseBufferData_(e,t){let n=this._size;const s=Math.log2(this._size)+1;this._cubeTextures=[];for(let o=0;o<s;o++){let s=new THREE.CubeTexture;this._cubeTextures.push(s),s.format=THREE.RGBAFormat,s.encoding=this._encoding,s.type=this._type,s.minFilter=THREE.LinearMipMapLinearFilter,s.magFilter=THREE.LinearFilter,s.generateMipmaps=!1;for(let o=0;o<6;o++){let r=new Uint8Array(e,t,4*n*n),i=new THREE.DataTexture(r,n,n);i.format=s.format,i.encoding=s.encoding,i.type=s.type,i.generateMipmaps=!1,t+=4*n*n,s.images[o]=i,i.needsUpdate=!0}s.needsUpdate=!0,n/=2}this._cubeTexture=new THREE.CubeTexture,this._cubeTexture.format=THREE.RGBAFormat,this._cubeTexture.encoding=this._encoding,this._cubeTexture.type=this._type,this._cubeTexture.minFilter=THREE.LinearMipMapLinearFilter,this._cubeTexture.magFilter=THREE.LinearFilter,this._cubeTexture.generateMipmaps=!1;for(let e=0;e<6;e++){this._cubeTexture.image[e]=this._cubeTextures[0].images[e];for(let e=1;e<s;e++)this._cubeTexture.mipmaps[e-1]=this._cubeTextures[e],this._cubeTextures[e].needsUpdate=!0}this._cubeTexture.needsUpdate=!0,this._cubeTexture.maxLod=this._maxLod-1}convertToRGBABuffer(e){let t=new Uint8Array(e,30,e.byteLength-30),n=4;this._format===THREE.RGBFormat&&(n=3);const s=4*t.length/n;let o=new ArrayBuffer(s),r=new DataView(o),i=0,a=t.length/n;if(3===n)for(let e=0;e<a;e++)r.setUint8(i++,t[e]),r.setUint8(i++,t[e+a]),r.setUint8(i++,t[e+2*a]),r.setUint8(i++,255);else for(let e=0;e<a;e++)r.setUint8(i++,t[e]),r.setUint8(i++,t[e+a]),r.setUint8(i++,t[e+2*a]),r.setUint8(i++,t[e+3*a]);return o}parseData_(e){this.parseHeader_(e);let t=30;t=0;let n=this.convertToRGBABuffer(e);this.parseBufferData_(n,0)}}const toRadiant=function(e){return e*(Math.PI/180)},getIdealDistance=function(e,t,n,s,o,r){e=Math.sqrt(e*e+n*n);const i=o/r,a=2*Math.atan(Math.tan(s*Math.PI/180/2)*i)*180/Math.PI,l=toRadiant(s),c=t/2/Math.tan(l/2),h=e/(2*Math.atan(Math.PI*a/360));return Math.max(c,h)},round=function(e){return Math.round(1e3*e)/1e3},getDelta=function(e,t){return Math.abs(e.y-t.y)+Math.abs(e.x-t.x)},getAngle=function(e,t){return Math.atan2(t.y-e.y,t.x-e.x)},to360Degrees=function(e){let t=function(e){return e*(180/Math.PI)}(e);return t<0&&(t=180+(180+t)),t},PREVIEW_MATERIAL_COLOR="#DDDDDD",PREVIEW_MATERIAL_ROUGHNESS=1,PREVIEW_MATERIAL_METALNESS=0,PREVIEW_MATERIAL_OPACITY=1,getScreenXY=(e,t,n,s)=>{if(!e||!t||0===n||0===s)return new THREE.Vector3;let o=e.clone(),r=n/2,i=s/2;return o.project(t),o.x=Math.floor(o.x*r+r),o.y=Math.floor(-o.y*i+i),o.z=e.distanceTo(t.position),o},kernelBoxToThreeBox=(e,t)=>{t||(t=new THREE.Vector3(0,0,0));let n=new THREE.Vector3(e.size.x/1e3,e.size.z/1e3,e.size.y/1e3),s=new THREE.Vector3(e.origin.x/1e3,e.origin.z/1e3,e.origin.y/-1e3),o=new THREE.Vector3(0,0,-n.z).add(s).sub(t),r=new THREE.Vector3(n.x,n.y,0).add(s).add(t);return new THREE.Box3(o,r)},kernelDimensioningToThree=e=>(e.from=e.from/1e3,e.to=e.to/1e3,1===e.type.value?(e.type={value:2},e.from*=-1,e.to*=-1):2===e.type.value&&(e.type={value:1}),e),setShadows=(e,t,n)=>{e.castShadow=n,e.receiveShadow=t,e.children.forEach(e=>{setShadows(e,t,n)})},position3VectorsAreEqual=(e,t)=>{let n=round(e.x),s=round(e.y),o=round(e.z),r=round(t.x),i=round(t.y),a=round(t.z);return n===r&&s===i&&o===a},rotationQuaternionsAreEqual=(e,t)=>{let n=round(e.w),s=round(e.x),o=round(e.y),r=round(e.z),i=round(t.w),a=round(t.x),l=round(t.y),c=round(t.z);return n===i&&s===a&&o===l&&r===c},position2VectorsAreEqual=(e,t)=>{let n=round(e.x),s=round(e.y),o=round(t.x),r=round(t.y);return n===o&&s===r};let whiteTexture=null;const getWhiteTexture=()=>{if(whiteTexture)return whiteTexture;const e=new Uint8Array(4);for(let t=0;t<1;t++){const n=4*t;e[n]=255,e[n+1]=255,e[n+2]=255,e[n+3]=255}const t=new THREE.DataTexture(e,1,1,THREE.RGBAFormat);return t.needsUpdate=!0,t},createColorTexture=(e,t,n,s)=>{const o=new Uint8Array(4),r=Math.floor(255*e),i=Math.floor(255*t),a=Math.floor(255*n),l=Math.floor(255*s);for(let e=0;e<4;e++){const t=4*e;o[t]=r,o[t+1]=i,o[t+2]=a,o[t+3]=l}const c=new THREE.DataTexture(o,1,1,THREE.RGBAFormat);return c.needsUpdate=!0,c},createMaterial=(e,t)=>setMaterial(null,e,t),setMaterial=(e,t,n)=>{if(e||(e=createMeshPhysicalMaterial()),e.name=t.id?t.id.toString():"",void 0!==t.shading.metallic&&(e.metalness=1===t.shading.metallic?1:.5,e.reflectivity=getValue(t.shading.metallic,.5)),t.shading.transmission&&t.shading.transmission>0?(e.transmission=t.shading.transmission,e.opacity=1,e.transparent=!0,e.depthWrite=!1,e.metalness=0):void 0!==t.shading.alpha&&t.shading.alpha<1&&(e.transparent=t.shading.alpha<1,e.opacity=t.shading.alpha,e.depthWrite=t.shading.alpha>=1),e.aoMapIntensity=getValue(t.shading.occlusion,1),e.roughness=getValue(t.shading.roughness,.5),e.alphaTest=getValue(t.shading.alphaCutoff,0),void 0!==t.shading.basecolor){const n=new THREE.Color(t.shading.basecolor.r,t.shading.basecolor.g,t.shading.basecolor.b);e.color.copy(n.convertSRGBToLinear())}return null==n||n.setEnvMap(e),t.shading.doubleSided?e.side=THREE.DoubleSide:e.side=THREE.FrontSide,e.map||(whiteTexture||(whiteTexture=getWhiteTexture()),e.map=whiteTexture),e},createMeshPhysicalMaterial=()=>new THREE.MeshPhysicalMaterial({}),getMaterialShading=e=>{let t=e.color.clone().convertLinearToSRGB(),n={alpha:e.opacity,metallic:e.reflectivity,basecolor:{r:t.r,g:t.g,b:t.b},roughness:e.roughness,doubleSided:e.side===THREE.DoubleSide,alphaCutoff:e.alphaTest,transmission:e.transmission};return 1===e.metalness?n.metallic=1:n.metallic=e.reflectivity,n};let textureLoader=null;const addTexture=(e,t,n,s,o,r,i=16)=>(textureLoader||(textureLoader=new THREE.TextureLoader,textureLoader.crossOrigin=""),new Promise((a,l)=>{if(!e)return console.warn("trying to add a texture without image",t),void a();textureLoader.load(e,e=>{addExistingTexture(e,t,n,s,o,r,i),a()},l)})),addExistingTexture=(e,t,n,s,o,r,i=16)=>{e.anisotropy=s,e.wrapS=THREE.RepeatWrapping,e.wrapT=THREE.RepeatWrapping,"ORM"===t.mapping&&i<=8?console.warn("ORM maps are not supported on devices with only "+i+" texture units"):(e.repeat.set(o,r),"XYZ"===t.mapping?(n.normalMap=e,n.map===getWhiteTexture()&&(n.map=null)):"ORM"===t.mapping?(n.aoMap=e,n.roughnessMap=e,n.metalnessMap=e):(e.encoding=THREE.sRGBEncoding,n.map=e),"RGBA"===t.mapping&&(n.transparent=!0),n.needsUpdate=!0)},getGUI=(e=!0)=>window.dat&&window.dat.GUI?(window.__RML_GUI__||(window.__RML_GUI__=new dat.GUI({autoPlace:e})),window.__RML_GUI__):null,setWallTransparencyBasedOnCamera=(e,t,n=!0)=>{let s=e.getWorldDirection(new THREE.Vector3),o=Math.abs(s.y);o<.5&&!t.transparent&&setWallTransparency(t,!0,n),o>.5&&t.transparent&&setWallTransparency(t,!1,n)},setWallTransparency=(e,t,n=!0)=>{if(!e.userData.tween)if(t)if(e.transparent=!0,n){let t={opacity:1};e.userData.tween=!0,new TWEEN.Tween(t).to({opacity:.2},400).easing(TWEEN.Easing.Sinusoidal.In).onUpdate(()=>{e.opacity=t.opacity}).onComplete(()=>{e.userData.tween=!1}).start()}else e.opacity=.2;else if(n){let t={opacity:.2};e.userData.tween=!0,new TWEEN.Tween(t).to({opacity:1},400).easing(TWEEN.Easing.Sinusoidal.In).onUpdate(()=>{e.opacity=t.opacity}).onComplete(()=>{e.transparent=!1,e.userData.tween=!1}).start()}else e.opacity=1,e.transparent=!1},getColorFromInt=e=>{let t=new THREE.Color;return t.setRGB((e>>16)/255,(e>>8&255)/255,(e>>0&255)/255),t},transitionTransparencyOfMaterial=(e,t)=>{e.traverse(e=>{if(e instanceof THREE.Mesh&&TWEEN){const n=e.material;e.userData.tween&&e.userData.tween.stop();const s={opacity:n.opacity};t.transparent&&(n.transparent=t.transparent),e.userData.tween=new TWEEN.Tween(s).to(t,250).easing(TWEEN.Easing.Linear.None).onUpdate(()=>{n.opacity=s.opacity}).onStop(()=>{t.transparent||(n.transparent=t.transparent),n.opacity=t.opacity,n.needsUpdate=!0,e.userData.tween=void 0}).onComplete(()=>{t.transparent||(n.transparent=t.transparent),n.needsUpdate=!0,e.userData.tween=void 0}).start()}})},fadeIn=e=>{e.traverse(e=>{if(e instanceof THREE.Mesh&&TWEEN){let t=e.material;if(0===t.opacity)return;let n={opacity:0,transparent:!0},s={opacity:t.opacity,transparent:t.transparent};t.transparent=n.transparent,t.opacity=n.opacity,new TWEEN.Tween(n).to(s,500).easing(TWEEN.Easing.Linear.None).onUpdate(()=>{t.opacity=n.opacity}).onComplete(()=>{t.transparent=s.transparent}).start()}})},checkGLB=(e,t)=>{let n=(new THREE.Box3).setFromObject(e),s=n.getSize(new THREE.Vector3),o=Math.min(s.x,s.y,s.z),r=!0;return o>5&&(console.warn("GLB seems to be too big ("+o+")",t),r=!1),n.min.y<-.01&&(console.warn("GLB seems to be under the floor ("+n.min.y+"): ",t),r=!1),r},dispose=e=>{"Mesh"===e.type?disposeMesh(e):disposeObject(e)},disposeObject=e=>{e&&e.children&&0!==e.children.length&&e.children.forEach(e=>{disposeMesh(e)})},disposeMesh=e=>{e&&(e.material&&disposeMaterial(e.material),e.geometry&&disposeGeometry(e.geometry),e.children&&e.children.length>0&&disposeObject(e))},disposeGeometry=e=>{e&&e.dispose()},disposeMaterial=e=>{e&&(e.map&&e.map.dispose(),e.normalMap&&e.normalMap.dispose(),e.dispose())};let boundingBoxMaterial;const getBoundingBoxMaterial=()=>(boundingBoxMaterial||(boundingBoxMaterial=new THREE.MeshBasicMaterial,boundingBoxMaterial.visible=!1),boundingBoxMaterial),getSelectionGeometry=(e,t)=>{let n=t.x/2,s=t.z/2,o=new THREE.Vector3(-n,.01,s),r=[o,new THREE.Vector3(o.x,o.y,o.z+.2),new THREE.Vector3(o.x-.2,o.y,o.z+.2),new THREE.Vector3(o.x-.2,o.y,o.z)],i=[new THREE.Face3(3,2,0),new THREE.Face3(2,1,0)],a=new THREE.Geometry;return a.vertices.push(...r),a.faces.push(...i),a.computeFaceNormals(),a.computeVertexNormals(),a},vectorIsZero=e=>0===e.x&&0===e.y&&0===e.z,getMaterialId=(e,t)=>{let n="";return e.materialId&&""!==e.materialId?n=e.materialId:e.catalogItemId&&""!==e.catalogItemId?n=e.catalogItemId:e.rgbValue>0?n="rbg"+JSON.stringify(e.rgbValue):e.length>0?n=e:t&&1===t.value?n="default_wall_material_"+e.getSourceType().value:t&&7===t.value&&(n="default_ceiling_material_"+e.getSourceType().value),n},vectorIsEqual=(e,t,n=.01)=>!(!e||!t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n,dashCase=function(e){return e.startsWith("_")&&(e=e.substr(1)),e.replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(function(e,t){return(t>0?"-":"")+e.toLowerCase()}))};function inject(e,t){const n=Symbol("property-cache");Object.defineProperty(e,t,{get(){if(!this[n]){const e=window.__RML__DI__.lookup(dashCase(t),this._creator_);e?this[n]=e:console.error("Dependency "+dashCase(t)+" not found! Add dependency to /utils/injectables.ts")}return this[n]}})}let EnvironmentLoader=(()=>{class e{constructor(e){this._hdrCubeUrl="static/roomle-91862a5e7f3f46e5.envmap",this._hdrCubeUrlLowres="static/roomle64-adb0f447a54b5143.envmap",this._envMapReader=new EnvMapReader,this._creator_=e;const t=new THREE.Color("#DDDDDD");this._environmentMap=((e,t,n,s)=>{const o=new THREE.CubeTexture;o.format=THREE.RGBAFormat,o.generateMipmaps=!1;for(let s=0;s<6;++s){const r=createColorTexture(e,t,n,1);r.format=o.format,r.type=o.type,r.minFilter=o.minFilter,r.magFilter=o.magFilter,r.generateMipmaps=o.generateMipmaps,r.needsUpdate=!0,o.images[s]=r}return o.needsUpdate=!0,o})(t.r,t.g,t.b),this._envMapReader.setPath(getAssetPath()),this._loadHDREnvMap(this._hdrCubeUrlLowres)}static setEnvironmentMap(e,t){e&&t&&(e.envMap=t,e.envMapIntensity=1,e.needsUpdate=!0)}getEnvironmentMap(){return this._environmentMap}_processPMREM(e){const t=new THREE.PMREMGenerator(this._renderer);let n=t.fromCubemap(e);return e.magFilter=THREE.LinearFilter,e.needsUpdate=!0,t.dispose(),n.texture}_loadHDREnvMap(e){return this._initData.disableEnvMap?Promise.resolve():new Promise(t=>{this._envMapReader.load(e).then(n=>{n.encoding=THREE.sRGBEncoding;const s=this._renderer.extensions.get("EXT_shader_texture_lod");this._environmentMap=s?this._processPMREM(n):n,e!==this._hdrCubeUrl&&(this._environmentMap.encoding=THREE.sRGBEncoding,window.requestIdleCallback(this._loadHDREnvMap.bind(this,this._hdrCubeUrl))),this._updateEnvironmentMap(),t(),this._envChangedCallback&&this._envChangedCallback()})})}setRendererAndScene(e,t){this._renderer=e,this._scene=t}registerEnvironmentChangedCallback(e){this._envChangedCallback=e}_updateEnvironmentMap(){this._initData.disableEnvMap||this._scene.traverse(t=>{t instanceof THREE.Mesh&&(t.material instanceof THREE.MeshStandardMaterial||"MeshPhysicalMaterial"===t.material.type)&&e.setEnvironmentMap(t.material,this._environmentMap)})}setEnvMap(t){this._initData.disableEnvMap||e.setEnvironmentMap(t,this.getEnvironmentMap())}}return __decorate([inject],e.prototype,"_initData",void 0),e})();const PREDEFINED_LIGHTSETTING={SOFA:"sofa",SHELF:"shelf",SHELF_FRONT:"shelf_front",BAKED:"baked",CAMERA:"camera",EQUAL:"equal"};class DynamicLightSettingLoader{static createDynamicLightSettingSource(e,t){let n={};if(e)n.url=e;else if(t)switch(t){case PREDEFINED_LIGHTSETTING.SHELF:n.url=getAssetPath()+"static/shelf-2975dd3f2fa9c763.json";break;case PREDEFINED_LIGHTSETTING.SHELF_FRONT:n.url=getAssetPath()+"static/shelf_front-8c9566a4512f0de8.json";break;case PREDEFINED_LIGHTSETTING.SOFA:n.url=getAssetPath()+"static/sofa-997b116bc5f2e92e.json";break;case PREDEFINED_LIGHTSETTING.BAKED:n.url=getAssetPath()+"static/baked-6485a2b1daeb69e8.json";break;case PREDEFINED_LIGHTSETTING.CAMERA:n.url=getAssetPath()+"static/camera-f4cef679615485dc.json";break;case PREDEFINED_LIGHTSETTING.EQUAL:n.url=getAssetPath()+"static/equal-319f6b83c827913f.json";break;default:n.url=getAssetPath()+"static/camera-f4cef679615485dc.json"}else n=null;return n}parse(e){let t=JSON.parse(e);return t.lights?this.load(t):[]}load(e){let t=[];return e.lights?(e.lights.forEach(e=>{let n;switch(e.type){case"ambient":n=this._parseAmbientLight(e);break;case"rectarea":n=this._parseRectAreaLight(e);break;case"spot":n=this._parseSpotLight(e);break;case"directional":n=this._parseDirectionalLight(e)}n&&t.push(n)}),t):[]}_parseAmbientLight(e){let t=new THREE.AmbientLight;return this._parseCommon(t,e),t}_parseRectAreaLight(e){let t=new THREE.RectAreaLight;this._parseCommon(t,e);let{intensity:n,castShadow:s,target:o,width:r,height:i}=e;return t.width=r||.8,t.height=i||.8,t.castShadow=s||!1,t.matrixAutoUpdate=!0,t.intensity=(n||240)/((r||.8)*(i||.8)),t.lookAt(o?new THREE.Vector3(o.x,o.y,o.z):new THREE.Vector3(0,0,0)),t}_parseSpotLight(e){let t=new THREE.SpotLight;this._parseCommon(t,e);let{angle:n,penumbra:s,target:o,castShadow:r}=e;return t.angle=(n||100)*Math.PI/180,t.penumbra=s||.5,t.lookAt(o?new THREE.Vector3(o.x,o.y,o.z):new THREE.Vector3(0,0,0)),t.shadow.camera.near=.1,t.shadow.camera.far=10,t.shadow.mapSize=new THREE.Vector2(1024,1024),t.castShadow=r||!1,t}_parseDirectionalLight(e){let t=new THREE.DirectionalLight;this._parseCommon(t,e);let{target:n,castShadow:s}=e;return t.castShadow=s||!1,t.shadow.camera.near=.1,t.shadow.camera.far=100,t.shadow.mapSize=new THREE.Vector2(1024,1024),t.shadow.bias=-5e-5,t.lookAt(n?new THREE.Vector3(n.x,n.y,n.z):new THREE.Vector3(0,0,0)),t}_parseCommon(e,t){let{name:n,intensity:s,color:o,position:r,movesWithCamera:i}=t;e.name=n||"",e.intensity=s||1,e.color=new THREE.Color(o||"#ffffff"),e.position.copy(r?new THREE.Vector3(r.x,r.y,r.z):new THREE.Vector3(0,0,0)),e.visible=!0,e.layers.set(1),e.userData.movesWithCamera=i}}const isIdItemId=function(e){return!(!e||"string"!=typeof e||e.split(":").length>2)},getCatalogIdFromItemOrConfigurationId=e=>{if(!e||"string"!=typeof e)return null;const t=e.split(":");return t.length<2?null:t[0]},kernelPartToPriceId=({articleNr:e,componentId:t})=>e&&""!==e?t.split(":")[0]+":"+e:null,wasRequestSuccess=(e,t)=>null!=e?"string"==typeof e?"true"===e:!0===e:("string"==typeof t&&(t=parseInt(t,10)),t>=200&&t<300);class NetworkLayer{constructor(){this._queue=[],this._pendingRequests=0}_nextSlot(){if(this._pendingRequests-=1,!this._queue.length)return;const{request:e,resolve:t,reject:n}=this._queue.shift();this._fetch(e).then(t,n)}_fetch(e,t={}){return this._pendingRequests+=1,new Promise((n,s)=>{self.fetch(e,t).then(function(e){if(this._nextSlot(),wasRequestSuccess(e.ok,e.status))n(...arguments);else{const t=(null==e?void 0:e.url)||"URL unknown";s(new Error(e.statusText||'Http error "'+(e&&e.status?e.status:"unknown")+'", for "'+t+'"'))}}.bind(this),e=>{this._nextSlot(),s(e)})})}fetch(e,t={}){return this._pendingRequests>=40?new Promise((t,n)=>this._queue.push({request:e,resolve:t,reject:n})):this._fetch(e,t)}}class Logger{info(...e){console}log(...e){console}warn(...e){console.warn.apply(console,e)}error(...e){console.warn.apply(console,e)}}let KernelIo=(()=>{class e extends Logger{constructor(e){super(),this._creator_=e}setMeta(e){this._meta=e}get meta(){return this._meta?this._meta:{}}throw(e){const t="[Kernel Exception]: "+e;this._globalCallback.onKernelMsg("exception",e,this.meta),this.error(t)}error(e){this._globalCallback.onKernelMsg("error",e,this.meta),super.error(e)}warn(e){this._globalCallback.onKernelMsg("warning",e,this.meta),super.warn(e)}}return __decorate([inject],e.prototype,"_globalCallback",void 0),e})();const ASSET_CACHE=new Map,SYNCED_CATALOGS=new Map,SYNCED_FLOORS_TAGS=new Map,SYNCED_TYPE_CHANGE_TAGS=new Map;let DataSyncer=(()=>{class e{constructor(e){this._bootCallbacks=[],this._isStarted=!1,this._isStarting=!1,this._alwaysUseCache=!1,this._creator_=e}start(e){return this._configuratorUiCallbacks.onSyncStarted(),this._startWorker().then(()=>this._handleCatalog(e)).then(()=>{const{typeChangeTag:e,floorMaterialsTag:t}=this._initData;Promise.all([this._syncFloorTag(t),this._syncTypeChangeTag(e)]).then(()=>{SYNCED_TYPE_CHANGE_TAGS.set(e,!0),this._configuratorUiCallbacks.onSyncDone()})})}syncCatalog(e){return this._startWorker().then(()=>this._handleCatalog(e))}syncFloorTag(e){return this._startWorker().then(()=>this._syncFloorTag(e))}syncTypeChangeTag(e){return this._startWorker().then(()=>this._syncTypeChangeTag(e))}_syncFloorTag(e){const t=[];return e&&!SYNCED_FLOORS_TAGS.get(e)?(t.push(this._handleTags([e])),this._rapiAccess.getTag(e).then(e=>{t.push(this._handleMaterialsAndTextures(e))}),this._singlePromiseFactory.create(1,e,n=>{Promise.all(t).then(()=>{SYNCED_FLOORS_TAGS.set(e,!0),n()},e=>this._softReject(n,'_syncFloorTag error: "'+e+'"'))})):Promise.resolve()}_syncTypeChangeTag(e){const t=[];return e&&!SYNCED_TYPE_CHANGE_TAGS.get(e)?(t.push(this._handleTags([e])),this._rapiAccess.getTag(e).then(e=>{this._rapiAccess.getItems(e.items).then(e=>{e.forEach(e=>{this.getIsCatalogSynced(e.catalog)&&t.push(this._handleCatalog(e.catalog))})})}),this._singlePromiseFactory.create(2,e,n=>{Promise.all(t).then(()=>{SYNCED_FLOORS_TAGS.set(e,!0),n()},e=>this._softReject(n,'_syncTypeChangeTag error: "'+e+'"'))})):Promise.resolve()}getIsCatalogSynced(e){return!!SYNCED_CATALOGS.get(e)}_startWorker(){return new Promise((e,t)=>{if(this._isStarted)return e();this._bootCallbacks.push({resolve:e,reject:t}),this._isStarting||(this._worker=new Worker(getAssetPath()+"static/asset-loader.worker-796c70f59b977071.js"),this._mainThreadToWorker=new MainThreadToWorker(this,this._worker),this._isStarting=!0,this._mainThreadToWorker.sendToWorker(1))})}onCommand(e,t,n){switch(e){case 4:this._isStarted=!0,this._bootCallbacks.forEach(({resolve:e})=>e());break;case 3:this._mainThreadToWorker.resolvePromises(t,n)}}_handleCatalog(e){return this._singlePromiseFactory.create(0,e,t=>this.getIsCatalogSynced(e)?t():this._rapiAccess.getCatalog(e).then(e=>Promise.all([this._handleContentWithAssets(this._rapiAccess.getComponentsOf(e),["perspectiveImage"]),this._handleItemsAndAdditionalContents(e),this._handleMaterialsAndTextures(e),this._handleExternalMeshes(e),this._handleTags(e.tags)])).then(()=>{SYNCED_CATALOGS.set(e,!0),t()},e=>this._softReject(t,'Catalog sync error: "'+e+'"')))}_handleTags(e){return this._handleContentWithAssets(this._rapiAccess.getTags(e),["pngIcon","svgIcon"])}_handleExternalMeshes(e){return new Promise(t=>{this._rapiAccess.getMeshesOfCatalog(e.id).then(e=>{const n=[];e.forEach(e=>{n.push(this._handleContentWithAssets(Promise.all([this._rapiAccess.getMesh(e.id)]),["url"]))}),Promise.all(n).then(t,e=>this._softReject(t,'Sync crt files error: "'+e+'"'))},e=>this._softReject(t,'getMeshesOfCatalog error: "'+e+'"'))})}_handleItemsAndAdditionalContents(e){return new Promise(t=>{this._rapiAccess.getItemsOf(e).then(e=>{const n=[];n.push(this._handleContentWithAssets(Promise.resolve(e),["perspectiveImage"])),this._rapiAccess.getAdditionalContentsOfItems(e).then(e=>{const t=e.filter(e=>-1!==[5,6,4].indexOf(e.type));n.push(this._handleContentWithAssets(Promise.resolve(t),["content"]))},e=>this._softReject(t,'getAdditionalContentsOfItems error: "'+e+'"')),Promise.all(n).then(t,e=>this._softReject(t,'AdditionalContent image sync error:"'+e+'"'))})})}_handleMaterialsAndTextures(e){return new Promise(t=>{this._rapiAccess.getMaterialsOf(e).then(e=>{const n=[];n.push(this._handleContentWithAssets(Promise.resolve(e),["thumbnail"])),e.forEach(e=>{n.push(this._handleContentWithAssets(this._rapiAccess.getTexturesOf(e),["image"]))}),Promise.all(n).then(t,e=>this._softReject(t,'getTexturesOf error: "'+e+'"'))},e=>this._softReject(t,'getMaterialsOf error: "'+e+'"'))})}_handleContentWithAssets(e,t){return new Promise(n=>e.then(e=>this._fetchAssets(e,t).then(n,e=>this._softReject(n,'_handleContentWithAssets error: "'+e+'"')),e=>this._softReject(n,'_handleContentWithAssets promise error: "'+e+'"')))}_fetchAssets(e,t){const n=[];e||(e=[]);for(let s=0,o=e.length;s<o;s++){const o=e[s];t.forEach(e=>{const t=o[e];t&&n.push(this._preCacheAsset(t))})}return Promise.all(n)}_preCacheAsset(e){return new Promise(t=>{if(ASSET_CACHE.get(e))return t();this._assetUrlToBase64(e).then(n=>{ASSET_CACHE.set(e,n),t()},e=>this._softReject(t,'_preCacheAsset error: "'+e+'"'))})}_assetUrlToBase64(e){return new Promise(t=>{this._mainThreadToWorker.sendToWorker(5,e,t,e=>this._softReject(t,'_assetUrlToBase64 error: "'+e+'"'))})}_softReject(e,t){this._errorHandler.softReject(e,t,2)}requestAsset(e,t=!1){return navigator.onLine&&!this._alwaysUseCache?e:ASSET_CACHE.get(e)||(t?e:null)}setAlwaysUseCache(e){this._alwaysUseCache=e}preFillAssetCache(e,t){ASSET_CACHE.set(e,t)}}return __decorate([inject],e.prototype,"_rapiAccess",void 0),__decorate([inject],e.prototype,"_singlePromiseFactory",void 0),__decorate([inject],e.prototype,"_errorHandler",void 0),__decorate([inject],e.prototype,"_configuratorUiCallbacks",void 0),__decorate([inject],e.prototype,"_initData",void 0),e})();class AsyncGuard{constructor(e){this.info=e,this._init()}_init(){this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}resolve(e){e&&this._resolve(e),this._resolve()}reject(e){this._reject(e)}wait(){return this._promise}reset(){this._init()}}var GLTF_LOADER_FILE_NAME="static/GLTFLoader-5b296b5fb14cfe1a.js",DRACO_LOADER_FILE_NAME="static/DRACOLoader-5edeeab4a8dbc0bd.js";const DRACO_LIB_FILES={"draco_wasm_wrapper.js":"static/draco_wasm_wrapper-d775f9f135cb30ff.js","draco_decoder.wasm":"static/draco_decoder-979e668167e37c95.wasm","draco_decoder.js":"static/draco_decoder-3866672a1fa2f980.js"};let StaticItemLoader=(()=>{class e{constructor(e){if(this._gltfLoaderGuard=new AsyncGuard,this._creator_=e,THREE.GLTFLoader&&THREE.DRACOLoader)this._initLoaders();else{let e=this._scriptLoader.fetch("static/GLTFLoader-5b296b5fb14cfe1a.js",{id:"gltf-loader"}),t=this._scriptLoader.fetch("static/DRACOLoader-5edeeab4a8dbc0bd.js",{id:"draco-loader"});Promise.all([e,t]).then(()=>this._initLoaders())}}_initLoaders(){this._gltfLoader=new THREE.GLTFLoader;const e=new THREE.DRACOLoader;if("function"!=typeof e._loadLibrary)throw new Error("Can not patch draco loader! Did three.js update the DracoLoader example?");const t=e._loadLibrary.bind(e._loadLibrary);e._loadLibrary=(e,n)=>{const s=DRACO_LIB_FILES[e];if(!s)throw new Error('Can not load draco dependency "'+e+'" did three.js update DracoLoader lib? Available files'+JSON.stringify(DRACO_LIB_FILES));return t(getAssetPath()+s,n)},this._gltfLoader.setDRACOLoader(e),this._gltfLoaderGuard.resolve(this._gltfLoader)}async loadGLB(e,t,n,s,o,r,i,a){return await this._gltfLoaderGuard.wait(),new Promise((l,c)=>{this._gltfLoader.load(e,e=>{l(this._handleGLTFScene("GLB",e,t,n,s,o,r,i))},e=>{a&&a(e.loaded/e.total)},e=>{c(e)})})}async loadGLTF(e,t,n,s,o,r,i,a){return await this._gltfLoaderGuard.wait(),new Promise((l,c)=>{this._gltfLoader.parse(e,null,e=>{l(this._handleGLTFScene("GLTF",e,t,n,s,o,r,i))},e=>{a&&a(e.loaded/e.total)},e=>{c(e)})})}_handleGLTFScene(e,t,n,s,o,r,i,a){if(!t||!t.scene||!t.scene.children||0===t.scene.children.length)return null;if(n&&t.scene.position.copy(n),s&&(t.scene.rotation.y=s),o){const e=new THREE.Box3;e.setFromObject(t.scene);const{x:n,y:s,z:r}=e.getSize(new THREE.Vector3);let i=new THREE.Vector3(o.x/n,o.y/s,o.z/r);t.scene.scale.copy(i)}return r&&t.scene.scale.multiply(r),t.scene.type=e,t.scene.traverse(e=>{if(e instanceof THREE.Mesh){if(e.layers.set(3),e.material instanceof THREE.MeshStandardMaterial){const t=e.material;if(this._environmentLoader.setEnvMap(t),a&&i&&i>0){let e=new THREE.Color(i);t.color=e.copyGammaToLinear(e),t.roughness=.5,t.metalness=.1}t.needsUpdate=!0}e.castShadow=!0,e.receiveShadow=!0}}),t.scene}}return __decorate([inject],e.prototype,"_environmentLoader",void 0),__decorate([inject],e.prototype,"_scriptLoader",void 0),e})(),ThreeLoader=(()=>{class e{constructor(e){this._jsonLoaded=!1,this._creator_=e}_loadShaders(){return new Promise((e,t)=>{if(this._jsonLoaded)return e();this._networkLayer.fetch(getAssetPath()+"static/shaders-4fdbe00cbb7bfae5.json",{credentials:"same-origin"}).then(handleJsonResponse,t).then(t=>{window._rsl=t,this._jsonLoaded=!0,e()},t)})}fetch(){return window._rsl||(window._rsl={}),new Promise((e,t)=>this._loadShaders().then(()=>{this._scriptLoader.fetch("static/rthree-508a6ceb9a1516ce.js",{id:"three-lib"}).then(e,t)},t))}}return __decorate([inject],e.prototype,"_scriptLoader",void 0),__decorate([inject],e.prototype,"_networkLayer",void 0),e})(),LocalStorageHelper=(()=>{class e{constructor(e){this._context_=e}getStore(e="rml_default"){return this._localStorage.getItem(e)||{entries:[]}}saveStore(e,t){this._localStorage.setItem(e,t)}addItem(e,t,n="rml_default",s=5){const o=this.getStore(n),r=o.entries.find(t=>t.id===e);if(r?(r.payload=t,r.date=Date.now()):o.entries.push({id:e,date:Date.now(),payload:t}),o.entries.length>s)for(o.entries.sort((e,t)=>t.date-e.date);o.entries.length>s;)o.entries.pop();this.saveStore(n,o)}getItem(e,t="rml_default"){const n=this.getStore(t).entries.find(t=>t.id===e);return n?n.payload:null}}return __decorate([inject],e.prototype,"_localStorage",void 0),e})();class DynamicQualitySettingLoader{set(e,t){t&&(void 0!==t.enableAA&&(e.enableAA=t.enableAA),this._setSAOPass(e,t),this._setShadowPass(e,t),this._setGroundShadow(e,t))}_setSAOPass(e,t){if(t.SAOPass){const n=t.SAOPass;void 0!==n.enabled&&(e.getSAOPass().enabled=n.enabled),void 0!==n.smoothTransition&&(e.getSAOPass().smoothTransition=n.smoothTransition),n.occlusionWorldRadius&&(e.getSAOPass().occlusionWorldRadius=n.occlusionWorldRadius),n.intensity&&(e.getSAOPass().intensity=n.intensity),n.bias&&(e.getSAOPass().bias=n.bias),n.numSamples&&(e.getSAOPass().numSamples=n.numSamples)}}_setShadowPass(e,t){if(t.shadowPass){const n=t.shadowPass;void 0!==n.enabled&&(e.getShadowPass().enabled=n.enabled),void 0!==n.smoothTransition&&(e.getShadowPass().smoothTransition=n.smoothTransition),void 0!==n.enableAccumulation&&(e.getShadowPass().enableAccumulation=n.enableAccumulation),n.shadowRadius&&(e.getShadowPass().shadowRadius=n.shadowRadius),n.shadowBiasMultiplier&&(e.getShadowPass().shadowBiasMultiplier=n.shadowBiasMultiplier),n.numSamples&&(e.getShadowPass().numSamples=n.numSamples)}}_setGroundShadow(e,t){if(t.groundShadow){const n=t.groundShadow;void 0!==n.enable&&(e.getShadowPlanePass().enable=n.enable),void 0!==n.smoothTransition&&(e.getShadowPlanePass().smoothTransition=n.smoothTransition),n.numSamples&&(e.getShadowPlanePass().numSamples=n.numSamples),n.numSamplesPerFrame&&(e.getShadowPlanePass().numSamplesPerFrame=n.numSamplesPerFrame)}}}const convertToTHREE=e=>new THREE.Vector3(e.x/1e3,e.z/1e3,e.y/-1e3),convertToThreeDimensions=e=>new THREE.Vector3(e.x/1e3,e.z/1e3,e.y/1e3),convertToKernel=e=>({x:1e3*e.x,y:-1e3*e.z,z:1e3*e.y}),utilityStringToUTF16=e=>decodeURIComponent(encodeURIComponent(e)),convertCObject=e=>{if(!e){const t=typeof e;return"number"===t||"boolean"===t?e:null}if(!e.hasOwnProperty("size")&&e.size&&"function"==typeof e.size){let t=utilityToArray(e);for(let e=0;e<t.length;e++)t[e]=convertCObject(t[e]);return"string"==typeof t?utilityStringToUTF16(t):t}if("object"==typeof e)for(let t in e)e.hasOwnProperty(t)&&(e[t]=convertCObject(e[t]));return"string"==typeof e?utilityStringToUTF16(e):e},utilityToArray=e=>{let t=[];if(e){let n=e.size();for(let s=0;s<n;s++)t.push(e.get(s))}return t},convertToThreeMatrix=e=>{let t=new THREE.Matrix4,n=convertCObject(e);return t.fromArray(n),t.transpose(),(e=>{let t=new THREE.Matrix4;t.set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1),t.scale(new THREE.Vector3(.001,.001,.001));let n=new THREE.Matrix4;return n.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),n.scale(new THREE.Vector3(1e3,1e3,1e3)),t.multiply(e).multiply(n)})(t)};function RoomleComponentFactoryInitializer(){class e extends THREE.Object3D{constructor(e,t,n,s){super(),this._selected=!1,this.geometryChanged=!0,this.meshes=[],this.castShadow=!1,this.receiveShadow=!0,this._setValues(e,t,n,s)}static _generateOutline(e,t){let n=new THREE.LineSegments(new THREE.EdgesGeometry(e),new THREE.LineDashedMaterial({color:"#000000",dashSize:.03,gapSize:.01,linewidth:1}));return n.translateOnAxis(t,1),n.userData.ignoreComponentRaycast=!0,n}static cloneDockLine(e,t){let n=new THREE.LineSegments(e.geometry,e.material);return n.translateOnAxis(t.getCenter(new THREE.Vector3),1),n.name="dockline",n.layers.set(5),n.userData.ignoreComponentRaycast=!0,n}_setValues(e,t,n,s){e&&(this.roomleId=e,this.name=e.toString()),t&&(this.roomlePosition=Object.assign({},t)),n&&(this.roomleRotation=Object.assign({},n)),s&&(this.parentObjectId=s)}get loadingMesh(){return this._loadingMesh}get boundingBoxMesh(){return this._boundingBoxMesh}get boundingBox(){return this._boundingBox}set roomlePosition(e){this._roomlePosition=e,e&&this.position.set(e.x/1e3,e.z/1e3,e.y/-1e3)}get roomlePosition(){return this._roomlePosition}set roomleRotation(e){this._roomleRotation=e,e&&this.rotation.set(e.x,e.z,-e.y)}get roomleRotation(){return this._roomleRotation}replaceMeshes(e){this.removeAllMeshes(),e.forEach(e=>{this.addMesh(new THREE.Mesh(e.geometry,e.material))})}addMesh(e,t){e.renderOrder=2,e.userData.meshType=0,t&&e.applyMatrix4(convertToThreeMatrix(t)),this.add(e),this.meshes.push(e)}getMeshById(e){return this.meshes.find(t=>t.userData.meshId===e)}removeMeshById(e){const t=this.getMeshById(e);t?this.removeMesh(t):console.warn("Could not remove mesh with id "+e,this.roomleId,this.meshes)}removeMesh(e){const t=this.meshes.indexOf(e);this.remove(e),disposeMesh(e),t<0||this.meshes.splice(t,1)}removeAllMeshes(e=!0){this.meshes.forEach(t=>{this.remove(t),e&&disposeMesh(t)}),this.meshes=[],this._removeLoadingMesh(),this.remove(this._boundingBoxMesh),disposeMesh(this._boundingBoxMesh),this._boundingBoxMesh=null}_hideAllMeshes(){this.meshes.forEach(e=>e.visible=!1)}_showAllMeshes(){this.meshes.forEach(e=>e.visible=!0)}select(){this._selected=!0}loading(){if(!this._kernelBoundingBox)return void console.warn("Bounding box (box for measurements) for component "+this.roomleId+" not set, can not show external mesh loading box!");this._removeLoadingMesh(),this._hideAllMeshes();const{x:e,y:t,z:n}=this._kernelBoundingBox.getSize(new THREE.Vector3);let s=new THREE.BoxGeometry(e,t,n);this._loadingMesh=new THREE.Mesh(s,new THREE.MeshStandardMaterial({transparent:!0,opacity:1,color:new THREE.Color("#DDDDDD")})),this._loadingMesh.name="loading mesh",this._loadingMesh.receiveShadow=!1,this._loadingMesh.castShadow=!1,this._loadingMesh.layers.set(5),this._loadingMesh.translateOnAxis(this._kernelBoundingBox.getCenter(new THREE.Vector3),1),this._loadingMesh.renderOrder=3,this.add(this._loadingMesh)}_removeLoadingMesh(){this._loadingMesh&&(this.remove(this._loadingMesh),disposeMesh(this._loadingMesh),this._loadingMesh=null)}loadingFinished(){this._removeLoadingMesh(),this._showAllMeshes()}deselect(){this._selected=!1}hoverOn(){setCursor("pointer")}hoverOff(){setCursor("default")}removeFromParent(){this.parent&&(this.parent.remove(this),this.removeAllMeshes())}computeBoundingBox(t,n=!1){if(this._boundingBoxMesh&&this.remove(this._boundingBoxMesh),!n&&t&&0===t.size.x&&0===t.size.y&&0===t.size.z)return;let s;if(!t||n){this._boundingBox=new THREE.Box3;let e=new THREE.Vector3;this.meshes.forEach(t=>{if(t.geometry instanceof THREE.Geometry){let n=t.geometry.vertices;for(let s=0,o=n.length;s<o;s++)e.copy(n[s]),e.applyMatrix4(t.matrix),this._boundingBox.expandByPoint(e)}else if(t.geometry instanceof THREE.BufferGeometry){let n=t.geometry.attributes.position;if(void 0!==n)for(let s=0,o=n.count;s<o;s++)e.fromBufferAttribute(n,s).applyMatrix4(t.matrixWorld),this._boundingBox.expandByPoint(e)}}),this._kernelBoundingBox=this._boundingBox.clone();let t=this._boundingBox.max.x-this._boundingBox.min.x,n=this._boundingBox.max.y-this._boundingBox.min.y,o=this._boundingBox.max.z-this._boundingBox.min.z;s=new THREE.BoxGeometry(t,n,o)}else{this._kernelBoundingBox=kernelBoxToThreeBox(t),this._boundingBox=this._kernelBoundingBox.clone();let{x:e,y:n,z:o}=this._boundingBox.getSize(new THREE.Vector3);s=new THREE.BoxGeometry(e,n,o)}this._boundingBoxMesh=new THREE.Mesh(s,new THREE.MeshStandardMaterial({color:"#FFFFFF",transparent:!0,opacity:0,polygonOffset:!0,polygonOffsetFactor:-1,visible:!1})),this._boundingBoxMesh.name="bounding box mesh";let o=this._boundingBox.getCenter(new THREE.Vector3);this._boundingBoxMesh.position.add(o),this._boundingBoxMesh.layers.set(5),this._boundingBoxMesh.renderOrder=3,this._boundingBoxMesh.castShadow=!1,this._boundingBoxMesh.receiveShadow=!1,this.add(this._boundingBoxMesh),this._dockline=e._generateOutline(s,o),this._dockline.name="bounding box outline",this._dockline.layers.set(5),this._selected&&this.add(this._dockline)}recursiveMeshes(){let t=this.meshes.slice();return this.children.forEach(n=>{n instanceof e&&t.push(...n.recursiveMeshes())}),t}isChild(t){let n=!1;return this.children.forEach(s=>{s instanceof e&&!n&&(n=s.roomleId===t||s.isChild(t))}),n}getKernelPosition(e){let t=this.parent.localToWorld(this.position);return convertToKernel(e.worldToLocal(t))}}class t extends e{constructor(e,t){super(e,null,null,null),this.glbUrl=t}}class n extends e{constructor(e,t,n,s){super(e,t,n,s),this._stringId=null,this.receivedPointAssociation=!1,this.castShadow=!1,this.receiveShadow=!1}get stringId(){return this._stringId?this._stringId:this.roomleId.toString()}addMesh(e,t){super.addMesh(e,t),e.material instanceof THREE.MeshStandardMaterial&&(e.material.opacity=.6,e.material.roughness=1,e.material.metalness=0,e.material.color=new THREE.Color("#DDDDDD")),e.renderOrder=1,e.castShadow=!1,e.receiveShadow=!1}hoverOn(){this.remove(this._dockline),this.meshes.forEach(({material:e})=>{e.opacity=.9,e.roughness=1,e.metalness=0,e.color=new THREE.Color("#DDDDDD")}),setCursor("pointer")}hoverOff(){this.add(this._dockline),this.meshes.forEach(({material:e})=>{e.opacity=.6,e.roughness=1,e.metalness=0,e.color=new THREE.Color("#DDDDDD")}),setCursor("default")}clonePreview(t){const s=new n(this.roomleId,this.roomlePosition,this.roomleRotation,this.parentObjectId);return s._stringId=this.roomleId+"_"+t,this.children.forEach(e=>{e instanceof THREE.Mesh&&0===e.userData.meshType&&s.meshes.push(e.clone(!0))}),s.meshes.forEach(e=>{e.material=e.material.clone(),e.geometry=e.geometry.clone(),s.add(e)}),this._dockline&&(s._dockline=e.cloneDockLine(this._dockline,this._boundingBox)),this._boundingBoxMesh&&(s._boundingBoxMesh=this._boundingBoxMesh.clone(!0)),this._boundingBox&&(s._boundingBox=this._boundingBox.clone()),s}preparePreview(){this.add(this._dockline),this.add(this._boundingBoxMesh)}}class s extends n{constructor(e,t,n,s,o){super(e,t,n,s),o&&(this._stringId=this.roomleId+"_has_additional_dock_point_copy")}set roomleLineFrom(e){this._roomleLineFrom=e,this.lineFrom=convertToTHREE(e)}get roomleLineFrom(){return this._roomleLineFrom}set roomleLineTo(e){this._roomleLineTo=e;let t=convertToTHREE(e);t.equals(this.lineFrom)&&(console.warn("lineFrom and lineTo are equal!"),t.add(new THREE.Vector3(0,.01,0))),this.lineTo=t}get roomleLineTo(){return this._roomleLineTo}set roomlePositionFrom(e){this._roomlePositionFrom=e,this.positionFrom=convertToTHREE(e)}get roomlePositionFrom(){return this._roomlePositionFrom}set roomlePositionTo(e){this._roomlePositionTo=e;let t=convertToTHREE(e);t.equals(this.positionFrom)&&(console.warn("positionFrom and positionTo are equal!"),t.add(new THREE.Vector3(0,.01,0))),this.positionTo=t}get roomlePositionTo(){return this._roomlePositionTo}addMesh(e,t){super.addMesh(e,t),e.visible=!1,e.renderOrder=3}hoverOn(){this._dockline.visible=!0,setCursor("pointer")}hoverOff(){this._dockline.visible=!1,setCursor("default")}preparePreview(){super.preparePreview(),this._dockline.visible=!1;let e=this.lineTo.clone(),t=this.lineFrom.clone();const n=(new THREE.Vector3).subVectors(e,t);let s=n.length(),o=n.normalize(),r=new THREE.ArrowHelper(o,t),i=new THREE.CylinderGeometry(.01,.01,s,16,1);this.lineMesh=new THREE.Mesh(i,new THREE.MeshStandardMaterial({color:"#DDDDDD",transparent:!0,opacity:.4})),this.lineMesh.name="line mesh";const a=(new THREE.Quaternion).setFromEuler(r.rotation);this.lineMesh.quaternion.multiply(a),this.lineMesh.renderOrder=1;let l=(new THREE.Vector3).addVectors(e,t).multiplyScalar(.5);this.lineMesh.position.copy((new THREE.Vector3).subVectors(l,this.position.clone())),this.add(this.lineMesh);let c=this._boundingBox.getCenter(new THREE.Vector3),h=null,d=0,_=Math.abs(o.x),u=Math.abs(o.y),p=Math.abs(o.z);_>=u&&_>=p?(h=new THREE.Vector3(c.x,0,0),d=Math.sqrt(c.y*c.y+c.z*c.z)):u>=_&&u>=p?(h=new THREE.Vector3(0,c.y,0),d=Math.sqrt(c.x*c.x+c.z*c.z)):p>=u&&p>=_&&(h=new THREE.Vector3(0,0,c.z),d=Math.sqrt(c.y*c.y+c.x*c.x)),d=d>0?d:.01;let g=(new THREE.Vector3).subVectors(this.positionTo.clone(),this.positionFrom.clone()).length()+h.length(),m=new THREE.CylinderGeometry(1.1*d,1.1*d,g,32,1);this.boundingLineMesh=new THREE.Mesh(m,new THREE.MeshStandardMaterial({color:"#ffffff",transparent:!0,opacity:0})),this.boundingLineMesh.name="bounding line mesh",this.boundingLineMesh.userData.ignoreComponentRaycast=!0;let E=this.positionTo.clone(),f=this.positionFrom.clone(),C=(new THREE.Vector3).subVectors(E,f).normalize(),y=new THREE.ArrowHelper(C,f);const w=(new THREE.Quaternion).setFromEuler(y.rotation);this.boundingLineMesh.quaternion.multiply(w),this.boundingLineMesh.renderOrder=3;let T=(new THREE.Vector3).addVectors(this.positionTo.clone(),this.positionFrom.clone()).multiplyScalar(.5).add(c);this.boundingLineMesh.position.copy((new THREE.Vector3).subVectors(T,this.position.clone())),this.add(this.boundingLineMesh)}clonePreviewLine(t){let n=new s(this.roomleId,this.roomlePosition,this.roomleRotation,this.parentObjectId,this.receivedPointAssociation);return n._stringId=this.roomleId+"_"+t,this.children.forEach(e=>{e instanceof THREE.Mesh&&0===e.userData.meshType&&n.meshes.push(e.clone(!0))}),n.meshes.forEach(e=>{e.material=e.material.clone(),e.geometry=e.geometry.clone(),n.add(e)}),this._dockline&&(n._dockline=e.cloneDockLine(this._dockline,this._boundingBox)),this._boundingBoxMesh&&(n._boundingBoxMesh=this._boundingBoxMesh.clone(!0)),this._boundingBox&&(n._boundingBox=this._boundingBox.clone()),n}getPositionForIntersectionPoint(e){let t=this.positionTo.clone().add(this._boundingBox.getCenter(new THREE.Vector3)),n=this.positionFrom.clone().add(this._boundingBox.getCenter(new THREE.Vector3)),s=new THREE.Line3(n,t).closestPointToPoint(e,!0,new THREE.Vector3);return(isNaN(s.x)||isNaN(s.y)||isNaN(s.z))&&s.copy(e),s.sub(this._boundingBox.getCenter(new THREE.Vector3))}updatePreviewPosition(e){let t=this.getPositionForIntersectionPoint(e),n=this.parent.localToWorld(t);this._newPosition=this.worldToLocal(n),this._dockline.position.copy((new THREE.Vector3).addVectors(this._newPosition,this._boundingBox.getCenter(new THREE.Vector3))),this._dockline.rotation.copy(this.docklineRotation)}hideSelectionLine(){this._dockline.visible=!1}getKernelPosition(e){if(this._newPosition){let t=this.localToWorld(this._newPosition);return convertToKernel(e.worldToLocal(t))}return super.getKernelPosition(e)}}class o extends THREE.PerspectiveCamera{constructor(e,t,n,s,o){super(e,t,n,s),o||(o={left:0,top:1,right:1,bottom:0}),this.offset=o}set offset(e){this._offset=e,this.updateProjectionMatrix()}get offset(){return this._offset}_calculateProjectionMatrix(){let e,t,n,s,o=this.fov*(2*Math.PI/360)/2;n=Math.tan(o),s=-n;let r=Math.atan(this.aspect*Math.tan(o));t=Math.tan(r),e=-t;let i=this._offset.left,a=this._offset.right,l=this._offset.top,c=this._offset.bottom,h=new THREE.Vector2(a-i,l-c),d=new THREE.Vector2(i+h.x/2,c+h.y/2);if(h.x<h.y){let o=(1-d.x)/(h.x/2),r=d.x/(h.x/2);t*=o,e*=r;let i=(o+r)/2;n*=i,s*=i}else{let o=(1-d.y)/(h.y/2),r=d.y/(h.y/2);n*=o,s*=r;let i=(r+o)/2;e*=i,t*=i}e*=this.near,t*=this.near,n*=this.near,s*=this.near;let _=this.near*Math.tan(Math.PI/180*.5*this.fov)/this.zoom*2,u=this.aspect*_;return this.view&&this.view.enabled&&(e+=this.view.offsetX*u/this.view.fullWidth,n-=this.view.offsetY*_/this.view.fullHeight,t+=this.view.offsetX*u/this.view.fullWidth,s-=this.view.offsetY*_/this.view.fullHeight),(new THREE.Matrix4).makePerspective(e,t,n,s,this.near,this.far)}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){this._offset?(this.projectionMatrix=this._calculateProjectionMatrix(),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()):super.updateProjectionMatrix()}}return{create:function(t,n,s,o){return new e(t,n,s,o)},createPreview:function(e,t){return new n(e,{x:0,y:0,z:0},{x:0,y:0,z:0},t)},createStatic:function(e,n){return new t(e,n)},createPreviewLine:function(e){let t=new s(e.id,e.roomlePosition,e.roomleRotation,e.parentObjectId,e.receivedPointAssociation);return e.meshes.forEach(e=>{let n=e.clone();n.material=e.material.clone(),n.geometry=e.geometry.clone(),t.addMesh(n)}),t.computeBoundingBox(),t},isPreview:function(e){return e instanceof n},isPreviewLine:function(e){return e instanceof s},createCamera:function(e,t,n,s,r){return new o(e,t,n,s,r)}}}const WAITERS=new Map,_endOperation=function(e,t,n){let s=WAITERS.get(e);if(s){const o=n?[n]:void 0;s.forEach(({resolve:e,reject:n})=>t?e.apply(e,o):n.apply(n,o)),WAITERS.delete(e)}};class AsyncHelper{static finishOperation(e,t){_endOperation(e,!0,t)}static failOperation(e,t){_endOperation(e,!1,t)}static waitFor(e,t){return new Promise((n,s)=>{let o=WAITERS.get(e);o||(WAITERS.set(e,[]),o=WAITERS.get(e)),o.push({resolve:n,reject:s}),"function"==typeof t&&t.apply(t)})}}const META_INFO=new Map;class Benchmark{static start(e){if(!window.performance||!window.performance.getEntriesByName)return"";let t=window.performance.getEntriesByName(e).length++,n="";t<100&&(n="0"),t<10&&(n="0"+n);const s=t>0?e+"_"+n+t:e,o=s+"_start";return window.performance.mark(o),s}static addMeta(e,t){const n=Benchmark.getMeta(e);META_INFO.set(e,Object.assign(n,t))}static getMeta(e){return META_INFO.get(e)||{}}static end(e){}static getMeasure(e){return[]}static showBenchmarks(e){const t=window.performance.getEntriesByType("measure");t.sort((function(e,t){return e.startTime-t.startTime}));const n=[];for(let s=0,o=t.length;s<o;s++){const o=t[s];e&&-1===o.name.indexOf(e)||n.push({Start:parseFloat(o.startTime.toFixed(2)),Name:o.name,Duration:parseFloat(o.duration.toFixed(2))})}console.table(n)}}var defaultSettings={isProduction:!0,isUnitTesting:!1,environment:"production",detailEnvironment:"development",features:{},APP:{RAPI:{server:"/api/v2",localReverseProxy:"https://www.roomle.com/api/v2",liveServer:"https://www.roomle.com/api/v2",testServer:"https://www.test.roomle.com/api/v2",headers:{apiKey:"roomle_portal_v2",currentTenant:9,locale:"en",language:"en",device:1,token:"anonymous",platform:"web"},itemHeaders:{assetRevision:"glb",assetFileFormat:"glb"}},SHORTENER_URL:"http://rml.co/"},environments:{PRODUCTION:"production",DEVELOPMENT:"development",TEST:"test",TEST_SERVER:"test_server",ALPHA:"alpha"}};"undefined"!=typeof module&&module.exports||(window.IS_DEBUG=!0),function(e=!1){if(e){let e=JSON.parse(JSON.stringify(defaultSettings));e.APP,e.features}}();var Env=JSON.parse(JSON.stringify(defaultSettings));let MEM_URL,WASM_URL,WASM_LOADER,ASM_LOADER,CACHE_COMPILATION;const KERNEL_PATHS={WASM:{CONFIGURATOR:{URL:"static/ConfiguratorKernel-c48bba1fe04aa93a.wasm",LOADER:"static/ConfiguratorKernel-1b88030d6265aaff.js"},PLANNER:{URL:"static/RoomleCore-ea9beee28ea41195.wasm",LOADER:"static/RoomleCore-88de0e9427c61a4d.js"}},ASM:{CONFIGURATOR:{MEM_URL:"static/ConfiguratorKernelJs-4dd1f28084d19b35.mem",LOADER:"static/ConfiguratorKernelJs-af670baec2bbb83d.js"},PLANNER:{MEM_URL:"static/RoomleCoreJs-d698db3fbb66f567.mem",LOADER:"static/RoomleCoreJs-f7aef02e52c95b45.js"}}},USE_WASM=!!window.WebAssembly;let CommonKernelAccess=(()=>{class e{constructor(e,t){this._requestedMaterialIds=[],this._configuratorKernelCallbackListener=new Set,this._cachedGroupIds=[],this._waitingForGroups=!1,this._subComponentsWaiters=new Map,this._shouldWait=!0,this._creator_=e,this._setupKernelPaths(t),this._setupEmsModule(t),this._useWASM=USE_WASM,this._kernelPath=USE_WASM?WASM_LOADER:ASM_LOADER,window.KernelCallback={isReady:this.isReady.bind(this)},this._lifeCycleManager.addEventListener(this)}_utilityToLongArray(e){const t=new this._kernelContainer.LongArray;return e.forEach(e=>t.push_back(e)),t}get kernelContainer(){return this._kernelContainer}get kernelInstance(){return this._kernelInstance}_setupKernelPaths(e){const t=0===e?"PLANNER":"CONFIGURATOR";MEM_URL=KERNEL_PATHS.ASM[t].MEM_URL,WASM_URL=KERNEL_PATHS.WASM[t].URL,WASM_LOADER=KERNEL_PATHS.WASM[t].LOADER,ASM_LOADER=KERNEL_PATHS.ASM[t].LOADER,CACHE_COMPILATION=!0}_setupEmsModule(e){const t=this;this._kernelContainer={locateFile(t){const n=0===e?/RoomleCoreJs[\-a-z0-9]*\.js\.mem/:/ConfiguratorKernelJs[\-a-z0-9]*\.js\.mem/;return t.match(n)?getAssetPath()+MEM_URL:t},wasmBinaryFile:getAssetPath()+WASM_URL,preRun:[],postRun:[],setStatus:null,print(e){t._kernelIo.log(e)},printErr(e){t._kernelIo.error(e)},quit(e){t._kernelIo.throw(e)}},CACHE_COMPILATION&&USE_WASM&&(this._kernelContainer.instantiateWasm=function(e,t){return((e,t,n)=>{const s="function"==typeof WebAssembly.instantiateStreaming;Benchmark.addMeta("kernel_is_ready",{cachedInIndexedDB:!1});let o=null;s?(Benchmark.start("kernel_stream_compile"),o=WebAssembly.instantiateStreaming(fetch(getAssetPath()+e),t),Benchmark.end("kernel_stream_compile")):(Benchmark.start("kernel_legacy_compile"),o=fetch(getAssetPath()+e).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,t))),Benchmark.addMeta("kernel_is_ready",{instantiateStreaming:s}),o.then(e=>{Benchmark.end(s?"kernel_stream_compile":"kernel_legacy_compile"),n(e.instance)},e=>console.error(e))})(WASM_URL,e,t),{}})}_passSubComponentsToKernel(e,t){const n=e.id,s=t.get(n);if(s)for(let t=0,o=s.length;t<o;t++){const{parentId:o,partId:r}=s[t];this._kernelIo.setMeta({componentId:n}),this._kernelInstance.loadedSubComponent(o,r,n,e.configuration)}}_fetchSubComponents(e){let t=[...e.keys()];t.length&&this._rapiAccess.getComponents(t).then(t=>{for(let n=0,s=t.length;n<s;n++)this._passSubComponentsToKernel(t[n],e);this._flushSubComponentsWaiters()})}_flushSubComponentsWaiters(){this._fetchSubComponents(this._subComponentsWaiters),this._subComponentsWaiters=new Map,this._shouldWait=!1}isReady(){this._kernelContainer.setExternalHelpers(this._kernelIo,{convertCObject}),Env.isProduction||Env.isUnitTesting||this.addDebugInfo(),window.KernelCallback&&(window.KernelCallback=null,delete window.KernelCallback)}addDebugInfo(){const e=function(t,n=[]){const s=Object.getPrototypeOf(t),o=s?Object.getOwnPropertyNames(s):[],r=t?Object.getOwnPropertyNames(t):[];return s?e(s,[...n,...r,...o]):[...r,...o,...n]},t=e(this),n=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf"];[...new Set(t)].forEach(e=>{if(!e.startsWith("_")&&"function"==typeof this[e]&&-1===n.indexOf(e))try{const t=this[e].bind(this);this[e]=function(...n){return this._kernelIo.log("[ KernelCommunication ]: "+e),t(...n)}}catch(e){}})}getConfigurationData(e){return new Promise(t=>{var n;const s=this.kernelInstance.getPlanObject(e),o=(new Date).toISOString(),r=this.kernelInstance.getComponentId(e),i=getCatalogIdFromItemOrConfigurationId(r),a=(null===(n=s.boxForMeasurement)||void 0===n?void 0:n.size)||s.bounds;t({created:o,lastAccess:o,configuration:this.kernelInstance.getSerializedConfiguration(e),configurationHash:this.kernelInstance.getHashOfConfiguration(e),parts:JSON.stringify(this.kernelInstance.getPartList(e)),rootComponentId:r,width:a.x,height:a.z,depth:a.y,catalog:i,orderable:!1,requestable:!1})})}loadComponent(e,t,n){this._rapiAccess.getComponent(t.componentId).then(s=>{let o=s.configuration;o||(o="error",this._configuratorUiCallbacks.onContentProblem({rapiPath:"components",ids:[t.componentId],message:t.componentId+" has no configuration"})),this._kernelIo.setMeta({componentId:t.componentId}),this._kernelInstance.loadComponent(e,o,t,n),this._flushSubComponentsWaiters()},s=>{this._kernelInstance.loadComponent(e,"error",t,n),this.onLoadComponentError(s,t.componentId),this._configuratorUiCallbacks.onError(new Error(`Component with id "${t.componentId}" can not be loaded. "${s}"`)),this._flushSubComponentsWaiters()})}loadSubComponent(e,t,n){if(this._shouldWait){let s=this._subComponentsWaiters.get(n);s||this._subComponentsWaiters.set(n,[]),s=this._subComponentsWaiters.get(n),s.push({parentId:e,partId:t}),this._subComponentsWaiters.set(n,s)}else this._rapiAccess.getComponent(n).then(s=>{let o=s.configuration;o||(o="error",this._configuratorUiCallbacks.onContentProblem({rapiPath:"components",ids:[n],message:"SubComponent "+n+" has no configuration"})),this._kernelIo.setMeta({componentId:n,parentId:e}),this._kernelInstance.loadedSubComponent(e,t,n,o)})}requestDeleteComponent(e){e&&this._kernelInstance.deleteComponent(e)}dockComponentWithPosition(e,t,n,s,o){this._kernelInstance.dockComponentWithPosition(n,s,e,t,o);const r=this._kernelInstance.getComponentId(n),i=this._kernelInstance.getComponentId(e);this._configuratorUiCallbacks.onUserInitiatedDockDone(r,s,i,t,o)}Editor3dAddBakedMesh(e,t,n,s,o,r){this._configuratorKernelCallbackListener.forEach(i=>i.Editor3dAddBakedMesh(e,t,n,s,o,r))}Editor3dAddNamedMesh(e,t,n,s,o,r,i,a,l){this._configuratorKernelCallbackListener.forEach(c=>c.Editor3dAddNamedMesh(e,t,n,s,o,r,i,a,l))}Editor3ChangedNamedMesh(e,t,n,s,o){this._configuratorKernelCallbackListener.forEach(r=>r.Editor3ChangedNamedMesh(e,t,n,s,o))}Editor3dRemoveNamedMesh(e,t){this._configuratorKernelCallbackListener.forEach(n=>n.Editor3dRemoveNamedMesh(e,t))}Editor3dBeginConstruction(e,t){this._configuratorKernelCallbackListener.forEach(n=>n.Editor3dBeginConstruction(e,t))}Editor3dEndConstruction(e){this._configuratorKernelCallbackListener.forEach(t=>t.Editor3dEndConstruction(e))}Editor3dComponentCreated(e,t,n,s){this._configuratorKernelCallbackListener.forEach(o=>o.Editor3dComponentCreated(e,t,n,s,!1))}Editor3dComponentDocked(e,t,n,s){this._configuratorKernelCallbackListener.forEach(o=>o.Editor3dComponentDocked(e,t,n,s))}Editor3dGeometryReady(e){this._configuratorKernelCallbackListener.forEach(t=>t.Editor3dGeometryReady(e)),this.requestPlanComponentConstruction(e)}Editor3dGeometryNotReady(e){this._configuratorKernelCallbackListener.forEach(t=>t.Editor3dGeometryNotReady(e))}componentDeleted(e){this._configuratorKernelCallbackListener.forEach(t=>t.componentDeleted(e))}componentMetaUpdated(e){let t=this._kernelInstance.getComponent(e);this._configuratorKernelCallbackListener.forEach(e=>e.componentMetaUpdated(t))}sceneCleared(){this._configuratorKernelCallbackListener.forEach(e=>e.sceneCleared())}requestMaterialsInGroup(e){-1===this._cachedGroupIds.indexOf(e)&&this._cachedGroupIds.push(e),this._waitingForGroups||(this._waitingForGroups=!0,AsyncHelper.waitFor(4).then(()=>{this._rapiAccess.getMaterialsByGroup(this._cachedGroupIds).then(e=>{e.forEach(e=>{const t=new this._kernelContainer.StringArray;e.materials.forEach(e=>t.push_back(e.id));const n=e.legacyId||e.id;e.legacyId||console.warn("Material group has no legacy id, please check content why this is the case"),this._kernelInstance.setMaterialsInGroup(n,t)}),this._cachedGroupIds=[]},e=>{console.error(e),this._configuratorUiCallbacks.onError(new Error(`Material group with ids "${this._cachedGroupIds.join(",")}" can not be loaded. "${e}"`)),this._cachedGroupIds=[]})}))}requestPlanComponentConstruction(e){this._kernelInstance.requestDeltaPlanComponentConstruction(e)}addConfiguratorListener(e){this._configuratorKernelCallbackListener.add(e)}removeConfiguratorListener(e){this._configuratorKernelCallbackListener.delete(e)}cleanUpCallbacks(){"function"==typeof this._kernelContainer.unregisterConfiguratorCallback&&this._kernelContainer.unregisterConfiguratorCallback(this)}async requestMaterialProperties(e){if(this._requestedMaterialIds.push(e),await wait(0),!this._requestedMaterialIds.length)return;const t=[...this._requestedMaterialIds];this._requestedMaterialIds=[],(await this._rapiAccess.getMaterials(t)).forEach(e=>{const t=new this._kernelContainer.StringStringMap,n=e.properties||{};for(let e in n)n.hasOwnProperty(e)&&t.set(e,n[e]);t.size()&&this._kernelInstance.setMaterialProperties(e.id,t)})}registerCallbacks(){this._kernelContainer.registerConfiguratorCallback(this)}pause(){this.cleanUpCallbacks()}resume(){this.cleanUpCallbacks(),this.registerCallbacks()}destroy(){}async _handleCortoMesh(e,t,n){await this._scriptLoader.fetch("static/corto.em.roomle-05666d318bd656c3.js",{id:"corto-lib"}),await window.CortoDecoder.ready;try{this._kernelInstance.addMeshCorto(t,n,new Uint8Array(e))}catch(e){console.error(e),this._configuratorUiCallbacks.onMemoryCorruption()}}}return __decorate([inject],e.prototype,"_rapiAccess",void 0),__decorate([inject],e.prototype,"_scriptLoader",void 0),__decorate([inject],e.prototype,"_kernelIo",void 0),__decorate([inject],e.prototype,"_dataSyncer",void 0),__decorate([inject],e.prototype,"_lifeCycleManager",void 0),__decorate([inject],e.prototype,"_configuratorUiCallbacks",void 0),__decorate([inject],e.prototype,"_globalCallback",void 0),e})();const DOCKING_CONVERSATION_ID=10,DEFAULT_CONVERSATION_ID=9;let ConfiguratorViewModel=(()=>{class e{constructor(e){this._mergeThreshold=3,this._componentsToMerge=new OccurrenceMap,this._mergeInProgress=!1,this._components=new Map,this._previews=new Map,this._creator_=e,this._getKernelAccess().addConfiguratorListener(this),this._componentFactory=RoomleComponentFactoryInitializer()}get materialQueue(){return this.getMeshGenerator().materialQueue}_getKernelAccess(){return RoomleDependencyInjection.lookup("kernel-access",this._creator_)}clearReference(){this._getKernelAccess().removeConfiguratorListener(this)}_addMeshToSubPart(e,t,n,s,o,r,i,a){let l=this._generateMesh(e,t,n,o,r,i,a);s&&l.applyMatrix4(convertToThreeMatrix(s)),this._subPartObject.add(l)}_addMeshToComponent(e,t,n,s,o,r,i,a,l){if(this._subPartGuard&&this._subPartGuard.info===e)return void this._addMeshToSubPart(e,null,s,null,r,i,a,l);const c=this.getComponent(e);if(!c)return;const h=this._componentFactory.isPreview(c),d=this._generateMesh(e,n,h?null:s,r,i,a,l);d.userData.meshId=t,d.userData.geometryId=n,d.userData.materialId=s,o&&(d.userData.transform=convertToThreeMatrix(o),d.applyMatrix4(d.userData.transform)),h&&d.layers.set(4),c&&c.addMesh(d),c.meshes.length>this._mergeThreshold&&this._componentsToMerge.set(e,c.meshes.length)}_changeMeshOfComponent(e,t,n,s,o){const r=this.getComponent(e);if(!r)return;const i=r.getMeshById(t);i&&(i.userData.geometryId!==n&&console.warn("Geometry of mesh has changed!"),i.userData.materialId=s,this._configuratorMeshGenerator.setMaterial(i,s),o&&(i.userData.transform=convertToThreeMatrix(o),i.position.set(0,0,0),i.scale.set(1,1,1),i.rotation.set(0,0,0),i.applyMatrix4(i.userData.transform)))}_removeMeshFromComponent(e,t){const n=this.getComponent(e);n&&n.removeMeshById(t)}getComponent(e){let t=this._components.get(e);return t||(t=this._previews.get(e.toString()),t)?t:(console.warn("component not found!",e),null)}tryToMergeComponents(){this._initData.moc||this._mergeInProgress||(this._mergeInProgress=!0,this._componentsToMerge.size,this._requestMergeComponents())}_requestMergeComponents(){window.requestIdleCallback(this._mergeNextComponent.bind(this))}_mergeNextComponent(){if(this._componentsToMerge.size>0){const e=this._componentsToMerge.largestValue();this._componentsToMerge.delete(e),this._mergeComponent(e),this._requestMergeComponents()}else this._mergeInProgress=!1,this._geometriesMerged&&this._geometriesMerged(),this._components.forEach(e=>{e.loadingMesh&&console.warn("component still has loading mesh: ",e.hash)})}_mergeComponent(e){const t=this._components.get(e);if(t&&!(t.meshes.length<=this._mergeThreshold))if(this._cacheHolder.componentCache.has(t.hash)){const e=this._cacheHolder.componentCache.get(t.hash).meshes;t.replaceMeshes(e)}else{const e=new Map,n=[],s=[];t.meshes.forEach(t=>{const o=t.userData.material;if(!o)return void console.warn("mesh has no material id set");if(!e.has(o)){const s=new THREE.Mesh(new THREE.Geometry,t.material);s.userData.material=o,s.receiveShadow=!0,s.castShadow=!0,s.layers.set(3),this._setMaterial(s,o),n.push(s),e.set(o,s)}const r=e.get(o).geometry;t.userData.transform?r.merge(t.geometry,t.userData.transform):r.merge(t.geometry),s.push(t)}),n.forEach(e=>t.addMesh(e)),s.forEach(e=>t.removeMesh(e)),this._cacheHolder.componentCache.set(t.hash,t)}}_addRootComponent(e){this._listener&&this._listener.display(e)}removeDockingComponent(){this._getKernelAccess().requestDeleteComponent(this._configuratorContext.dockingRootComponentId),this._configuratorContext.dockingRootComponentId=null}dockComponent(e,t,n,s){let o=this._components.get(t),r=this._components.get(e);r&&(r.roomlePosition=n,r.roomleRotation=s,o&&o.add(r))}dockComponentWithPosition(e,t){let n,s=this._components.get(e.parentId);n=t?t.getKernelPosition(s):e.getKernelPosition(s);const o=Benchmark.start("dock_component_with_position_"+e.childId);this._getKernelAccess().dockComponentWithPosition(e.parentId,e.parentDockId,e.childId,e.childDockId,n),this._configuratorContext.dockingRootComponentId=null,Benchmark.end(o)}removePreviews(){this._previews.size>0&&(this._previews.forEach(e=>{e.removeFromParent(),e.removeAllMeshes()}),this._previews.clear())}_updatePlanObject(e){const t=this._components.get(e.rootPlanComponentId);let n=!0;t&&(n=t.geometryChanged),this._listener&&this._listener.planObjectUpdated(e,n)}Editor3dAddBakedMesh(e,t,n,s,o,r){this._addMeshToComponent(e,null,null,t,null,n,s,o,r)}Editor3dAddDockPreview(e,t){let n=this._componentFactory.createPreview(t,e);this._previews.set(t.toString(),n)}Editor3dAddNamedMesh(e,t,n,s,o,r,i,a,l){this._addMeshToComponent(e,t,n,s,o,r,i,a,l)}Editor3ChangedNamedMesh(e,t,n,s,o){this._changeMeshOfComponent(e,t,n,s,o)}Editor3dRemoveNamedMesh(e,t){this._removeMeshFromComponent(e,t)}Editor3dBeginConstruction(e,t){if(!t){const t=this._components.get(e);t&&t.removeAllMeshes()}this._subPartGuard&&e===this._subPartGuard.info&&(this._subPartObject=new THREE.Object3D)}Editor3dComponentCreated(e,t,n,s,o){o&&(this._configuratorContext.rootComponentId=e);let r=null;this._components.has(e)?(r=this._components.get(e),r.removeAllMeshes()):(r=this._componentFactory.create(e,t,n,s),r.layers.set(3)),this._components.set(e,r),o&&this._addRootComponent(r)}Editor3dComponentDocked(e,t,n,s){this.dockComponent(e,t,n,s)}Editor3dEndConstruction(e){if(this._subPartGuard&&this._subPartGuard.info===e)return void this._subPartGuard.resolve(this._subPartObject);const t=this._getKernelAccess().kernelInstance.getComponent(e),n=this._components.get(e);n&&(n.computeBoundingBox(t.boxForMeasurement),n.boundingBoxMesh&&this._listener&&this._listener.addComponentHandlers(n));let s=this._previews.get(e.toString());s&&s.computeBoundingBox(t.boxForMeasurement,!0)}Editor3dGeometryReady(e){const t=this._components.get(e);t&&t.loadingFinished()}Editor3dGeometryNotReady(e){const t=this._components.get(e);t&&t.loading()}Editor3dPlanObjectConstructionDone(e){const t=this._getKernelAccess().kernelInstance.getPlanObject(e),n=[t,this._getKernelAccess().kernelInstance.getFullPartList(),this._getKernelAccess().kernelInstance.getHashOfConfiguration(e),this._getKernelAccess().kernelInstance.getComponentId(t.rootPlanComponentId)];AsyncHelper.finishOperation(2,n),this._updatePlanObject(t),this._listener&&this._listener.planObjectConstructionDone(t)}Editor3dPreviewConstructionDone(e,t){let n=!1;this._previews.forEach(e=>{null!==e.parent&&(this._listener&&(this._componentFactory.isPreviewLine(e)?this._listener.addPreviewLineHandlers(e):this._listener.addPreviewHandlers(e)),n=!0)}),this._listener&&this._listener.previewConstructionDone(this._components.get(e),n)}Editor3dSetPreviewLineAssociations(e,t){let n=this._previews.get(t.toString());if(n.clear(),!n)return;let s=this._componentFactory.createPreviewLine(n),o=this._components.get(this._configuratorContext.rootComponentId);for(let t=0;t<e.length;t++){let n;n=0===t?s:s.clonePreviewLine(t),n.name="Preview Line",n.parentDockId=e[t].parentDockId,n.parentId=e[t].parentId,n.childDockId=e[t].childDockId,n.childId=e[t].childId,n.docklineRotation=(r=e[t].rotation,new THREE.Euler(r.x,r.z,-r.y)),n.roomlePosition=e[t].position,e[t].lineFrom.x>e[t].lineTo.x||e[t].lineFrom.y>e[t].lineTo.y||e[t].lineFrom.z>e[t].lineTo.z?(n.roomleLineFrom=e[t].lineTo,n.roomleLineTo=e[t].lineFrom):(n.roomleLineFrom=e[t].lineFrom,n.roomleLineTo=e[t].lineTo),e[t].positionFrom.x>e[t].positionTo.x||e[t].positionFrom.y>e[t].positionTo.y||e[t].positionFrom.z>e[t].positionTo.z?(n.roomlePositionFrom=e[t].positionTo,n.roomlePositionTo=e[t].positionFrom):(n.roomlePositionFrom=e[t].positionFrom,n.roomlePositionTo=e[t].positionTo),o.add(n),n.preparePreview(),this._previews.set(n.stringId,n)}var r}Editor3dSetPreviewPointAssociations(e,t){let n=this._previews.get(t.toString());if(!n)return;let s=this._components.get(this._configuratorContext.rootComponentId);for(let t=0;t<e.length;t++){let o;0===t?o=n:(o=n.clonePreview(t),this._previews.set(o.stringId,o)),o.name="Preview Point",o.parentDockId=e[t].parentDockId,o.parentId=e[t].parentId,o.childDockId=e[t].childDockId,o.childId=e[t].childId,o.preparePreview(),o.receivedPointAssociation=!0,o.userData.ignoreComponentRaycast=!0,s.add(o),o.roomlePosition=e[t].position,o.roomleRotation=e[t].rotation}}componentDeleted(e){const t=this._components.get(e);t&&(this._listener&&this._listener.componentDeleted(t),t.removeFromParent(),t.removeAllMeshes(),this._components.delete(e))}componentMetaUpdated(e){const t=this._getRuntimeComponent(e.id);t&&(t.hash=e.hash,t.roomlePosition=e.position,t.roomleRotation=e.rotation,e.boxForMeasurement&&t.computeBoundingBox(e.boxForMeasurement),this._listener&&this._listener.componentUpdated(t,e))}componentConfigurationUpdated(e,t){const n=this._getRuntimeComponent(e);n&&(n.geometryChanged=t)}_getRuntimeComponent(e){let t=this._components.get(e);return t||(t=this._previews.get(e.toString()),t)?t:null}configurationLoaded(e,t,n,s,o){10===e&&(this._configuratorContext.dockingRootComponentId=n);let r=0===t;r?this._getKernelAccess().kernelInstance.requestPlanComponentConstructionRecursive(n):this._getKernelAccess().kernelInstance.requestPlanObjectConstruction(t);let i=this._getKernelAccess().kernelInstance.getComponent(n),a=this._components.get(n);a&&(a.computeBoundingBox(i.boxForMeasurement),a.hash=i.hash),this._listener&&this._listener.configurationLoaded(a,r&&void 0!==a.boundingBoxMesh)}finishParameterChange(e,t){this.materialQueue.registerCallback(e)}planObjectConfigurationUpdated(e,t,n){let s=this._getKernelAccess().kernelInstance.getPlanObject(e);this._updatePlanObject(s)}planObjectCreated(e,t){this._configuratorContext.planObjectId=t,this._listener&&this._listener.clearScene()}planObjectUpdated(e){this._updatePlanObject(e)}sceneCleared(){this._components.forEach((function(e){e.removeFromParent(),e.removeAllMeshes()})),this._components.clear(),this._previews.forEach(e=>{e.removeFromParent(),e.removeAllMeshes()}),this._previews.clear()}setListener(e){this._listener=e}getBoundingBox(){if(this._configuratorContext.planObjectId){const e=this._getKernelAccess().kernelInstance.getPlanObject(this._configuratorContext.planObjectId);if(e&&e.boxForMeasurement)return kernelBoxToThreeBox(e.boxForMeasurement)}else if(this._configuratorContext.rootComponentId){const e=this._components.get(this._configuratorContext.rootComponentId);return(new THREE.Box3).setFromObject(e)}return null}getBoundingBoxWithPreviews(){const e=this._components.get(this._configuratorContext.rootComponentId);return e?(new THREE.Box3).setFromObject(e):null}hasPreviews(){return this._previews.size>0}clearRootComponent(){var e;null===(e=this._components.get(this._configuratorContext.rootComponentId))||void 0===e||e.hoverOff()}debugSceneGraph(e){e?this._components.has(e)?this._components.get(e):this._previews.has(e.toString())&&this._previews.get(e.toString()):this._configuratorContext}getComponentsForIds(e){let t=[];return e.forEach(e=>{const n=this._components.get(e);n&&t.push(n)}),t}getComponents(){return Array.from(this._components.values())}getPreviews(){return Array.from(this._previews.values())}isPreviewLine(e){return this._componentFactory.isPreviewLine(e)}isPreview(e){return this._componentFactory.isPreview(e)}setGeometriesMergedListener(e){this._geometriesMerged=e}removeGeometriesMergedListener(){this._geometriesMerged=void 0}setMergeThreshold(e){this._mergeThreshold=e}_generateMesh(e=0,t=null,n,s,o,r,i,a,l){return this._configuratorMeshGenerator.generateMesh(e,t,n,s,o,r,i)}_setMaterial(e,t,n){this._configuratorMeshGenerator.setMaterial(e,t)}constructComponents(e){this._getKernelAccess().kernelInstance.requestPlanObjectConstruction(e)}requestSubPartConstruction(e){return this._subPartGuard=new AsyncGuard(e),this._getKernelAccess().requestPlanComponentConstruction(e),this._subPartGuard.wait()}getMeshGenerator(){return this._configuratorMeshGenerator}}return __decorate([inject],e.prototype,"_configuratorMeshGenerator",void 0),__decorate([inject],e.prototype,"_configuratorContext",void 0),__decorate([inject],e.prototype,"_cacheHolder",void 0),__decorate([inject],e.prototype,"_initData",void 0),e})();class OccurrenceMap extends Map{largestValue(){let e=this.entries().next().value[0],t=0;return this.forEach((n,s)=>{n>t&&(e=s,t=n)}),e}}class InitData{constructor(e){this.autoQuality=!0,this.colors=ROOMLE_COLORS,this.unit=null,this.unitStringType=null,this.meshSelection=!0,this.stats=!1,this._measureTraffic=!1,this.gammaOutput=!0,this.disableDebugGUI=!1,this.disableEnvMap=!1,this.dls=null,this.ls=null,this.cameraSpacing=0,this.transparentHighlighting=!0,this.mode="3D",this.edit=!1,this.moc=!1,this._creator_=e}setOverrides(e){deepMerge(this,e)}}const BROWSER_LANGUAGE_PROPERTY_KEYS_KNOWN=["language","browserLanguage","userLanguage","systemLanguage"];class GlobalInitData{constructor(e){this.locale=((e=null)=>{const t=window.navigator;if(e)return e.substr(0,2);if(Array.isArray(t.languages)&&t.languages.length>0)return t.languages[0].substr(0,2);for(let e=0,n=BROWSER_LANGUAGE_PROPERTY_KEYS_KNOWN.length;e<n;e++){const n=t[BROWSER_LANGUAGE_PROPERTY_KEYS_KNOWN[e]];if(n)return n.substr(0,2)}return"en"})()||"en",this.overrideCountry=null,this._creator_=e}setOverrides(e){deepMerge(this,e)}}class UiCallback{constructor(e){return this._isMute=!1,this._creator_=e,setDescriptor(this,"_isMute",{enumerable:!1,writable:!1}),setDescriptor(UiCallback.prototype,"_setMute",{enumerable:!1,writable:!1}),setDescriptor(UiCallback.prototype,"mute",{enumerable:!1,writable:!1}),setDescriptor(UiCallback.prototype,"unmute",{enumerable:!1,writable:!1}),new Proxy(this,this)}_setMute(e){setWriteable(this,"_isMute",!0),this._isMute=e,setWriteable(this,"_isMute",!1)}mute(){this._setMute(!0)}unmute(){this._setMute(!1)}get(e,t){return this._isMute&&"function"==typeof this[t]&&"on"===t.substr(0,2)?()=>{}:this[t]}}class GlobalCallback extends UiCallback{constructor(){super(...arguments),this.onNetworkRequest=(e,t,n)=>{},this.onKernelMsg=(e,t,n={})=>{}}}const CANVAS_ID={HSC:"rml-hsc",HSP:"rml-hsp",GLB:"rml-glb",RMV:"rml-mv"};let DomHelper=(()=>{class e{constructor(e){this._creator_=e,this._lifeCycleManager.addEventListener(this)}get element(){return this._container}setDomElement(e){if(!this._container){this._container=document.createElement("div"),this._container.classList.add("rml-threejs-canvas-container"),this._container.setAttribute("ondragover","return false"),this._container.style.position="relative",this._container.style.width="100%",this._container.style.height="100%";const t=document.createElement("style");t.innerText=".rml-threejs-canvas-container canvas{position:absolute;top:0;left:0;right:0;bottom:0;}.rml-threejs-canvas-container .foreground{z-index:100; opacity:1;}.rml-threejs-canvas-container .background{z-index:-1; opacity:0;}",this._container.appendChild(t),e.appendChild(this._container)}this._element=e}getClientDimensions(){return new THREE.Vector2(this._element.clientWidth,this._element.clientHeight)}_removeDomElement(e){if(!e)return;const t=e.parentElement;t&&t.removeChild(e)}reset(){this._element=null,this._removeDomElement(this._container),this._container=null}pause(){this.reset()}resume(){}destroy(){}}return __decorate([inject],e.prototype,"_lifeCycleManager",void 0),e})();const INJECTABLES=[new DependencyInjectionAssignment("error-handler",class{constructor(){this._listeners={}}_subscribe(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)}subscribe(e,t){this._subscribe(e,t)}dispatch(e,t){if(!this._listeners[e])return;const n=this._listeners[e];let s=n.length;for(let e=0;e<s;e++){const s=n[e];s.apply(s,t)}}unsubscribe(e,t){if(!this._listeners[e])return;const n=this._listeners[e];let s=n.length;for(let e=0;e<s;e++)if(n[e]===t)return n.splice(e,1),s--,void e--}softReject(e,t,n){return this.dispatch(n,[t]),e()}}),new DependencyInjectionAssignment("form-data-util",FormDataUtil),new DependencyInjectionAssignment("environment-loader",EnvironmentLoader),new DependencyInjectionAssignment("static-item-loader",StaticItemLoader,0),new DependencyInjectionAssignment("form-data-util",FormDataUtil),new DependencyInjectionAssignment("single-promise-factory",class{constructor(e){this._promises=new Map,this._creator_=e}create(e,t,n){return new Promise((s,o)=>{let r=this._promises.get(e),i=!0;if(!r){const t=new Map;this._promises.set(e,t),r=this._promises.get(e),i=!1}r.get(t)||(r.set(t,[]),i=!1);const a=r.get(t);a.push({resolve:s,reject:o}),r.set(t,a);const l=()=>{r.delete(t),0===r.size&&this._promises.delete(e)};i||new Promise(n).then(e=>{r.get(t).forEach(({resolve:t})=>t(e)),l()},e=>{r.get(t).forEach(({reject:t})=>t(e)),l()})})}},1),new DependencyInjectionAssignment("dynamic-light-setting-loader",DynamicLightSettingLoader),new DependencyInjectionAssignment("dynamic-quality-setting-loader",DynamicQualitySettingLoader),new DependencyInjectionAssignment("network-layer",NetworkLayer),new DependencyInjectionAssignment("local-storage",class{constructor(e){this._context_=e}get _localStorage(){let e=null;try{e=window.localStorage}catch(e){console.error(e)}return e}getItem(e){if(!this._localStorage)return null;const t=this._localStorage.getItem(e);try{return JSON.parse(t)}catch(e){return t}}setItem(e,t){if(this._localStorage)try{const n=JSON.stringify(t);this._localStorage.setItem(e,n)}catch(e){console.error(e)}}}),new DependencyInjectionAssignment("network-layer",NetworkLayer),new DependencyInjectionAssignment("kernel-io",KernelIo,0),new DependencyInjectionAssignment("data-syncer",DataSyncer),new DependencyInjectionAssignment("memory-manager",class{constructor(){this._configurationStringSet=new Set,this._singleLoadCounter=0}loadingConfigurationString(){this._singleLoadCounter+=1}loadingConfiguration(e){this._configurationStringSet.add(e),this._singleLoadCounter+=1}shouldHardReset(){return this._configurationStringSet.size>=15||this._singleLoadCounter>=30}executedHardReset(){this._configurationStringSet.clear(),this._singleLoadCounter=0}}),new DependencyInjectionAssignment("life-cycle-manager",class{constructor(){this._listeners=[]}addEventListener(e){this._listeners.push(e)}removeEventListener(e){const t=this._listeners;let n=t.length;if(n)for(let s=0;s<n;s++)t[s]===e&&(t.splice(s,1),s--,n--)}pause(){this._listeners.forEach(e=>e.pause())}resume(){this._listeners.forEach(e=>e.resume())}destroy(){this._listeners.forEach(e=>e.destroy())}},1),new DependencyInjectionAssignment("three-loader",ThreeLoader),new DependencyInjectionAssignment("local-storage-helper",LocalStorageHelper),new DependencyInjectionAssignment("cache-holder",class{constructor(){this._componentCache=new Map,this._geometryCache=new Map,this._materialCache=new Map}get componentCache(){return this._componentCache}get geometryCache(){return this._geometryCache}get materialCache(){return this._materialCache}clear(){for(const e of this._componentCache.values())disposeObject(e);for(const e of this._materialCache.values())disposeMaterial(e);for(const e of this._geometryCache.values())disposeGeometry(e);this._componentCache.clear(),this._geometryCache.clear(),this._materialCache.clear()}},0),new DependencyInjectionAssignment("kernel-access-callback",class{constructor(e){this._callbackListener=new Set,this._creator_=e}addListener(e){this._callbackListener.add(e)}removeListener(e){this._callbackListener.delete(e)}isReady(){this._callbackListener.forEach(e=>e.isReady())}loadError(e){this._callbackListener.forEach(t=>t.loadError(e))}},1),new DependencyInjectionAssignment("configurator-kernel-access-callback",class{constructor(e){this._callbackListener=new Set,this._creator_=e}addListener(e){this._callbackListener.add(e)}removeListener(e){this._callbackListener.delete(e)}isReady(){this._callbackListener.forEach(e=>e.isReady())}updatePossibleChildren(e,t,n){this._callbackListener.forEach(s=>s.updatePossibleChildren(e,t,n))}updateParameters(e,t,n,s){this._callbackListener.forEach(o=>o.updateParameters(e,t,n,s))}loadError(e){this._callbackListener.forEach(t=>t.loadError(e))}},1),new DependencyInjectionAssignment("configurator-view-model",ConfiguratorViewModel,1),new DependencyInjectionAssignment("configurator-context",class{constructor(){this.rootComponentParametersAsGlobal=!1,this.lastLoadedRapiId=null,this.selectedRuntimeComponentIds=[],this.selectionMode="standard"}get selectedRuntimeComponentId(){return this.selectedRuntimeComponentIds.length>0?this.selectedRuntimeComponentIds[0]:null}},1),new DependencyInjectionAssignment("init-data",InitData,1),new DependencyInjectionAssignment("global-init-data",GlobalInitData,0),new DependencyInjectionAssignment("global-callback",GlobalCallback,0),new DependencyInjectionAssignment("dom-helper",DomHelper,1)];class RoomleDependencyInjection{static _ensureContainer(){window.__RML__DI__||(window.__RML__DI__=new Container,window.__RML__DI__.addDependencyInjectionAssignments(INJECTABLES))}static setup(e){RoomleDependencyInjection.addToContainer(e)}static lookup(e,t){return window.__RML__DI__?window.__RML__DI__.lookup(e,t):null}static getContext(e){return RoomleDependencyInjection._ensureContainer(),window.__RML__DI__.getContext(e)}static cleanUp(e){return window.__RML__DI__?window.__RML__DI__.cleanUp(e):null}static addToContainer(e){RoomleDependencyInjection._ensureContainer(),window.__RML__DI__.addDependencyInjectionAssignments(e)}}let AppContext=(()=>{class e{static init(t={}){const{kernelInstance:n,kernelContainer:s,planObjectId:o}=t;e.kernelInstance=n,e.kernelContainer=s,e.planObjectId=o}static cleanUp(){e.useHDGeometry=!1,e.kernelInstance=null,e.kernelContainer=null,e.planObjectId=null}}return e.useHDGeometry=!1,e.kernelInstance=null,e.kernelContainer=null,e.planObjectId=null,e})();const{APP:APP$1}=Env,{RAPI}=APP$1,headers=RAPI.headers,itemHeaders=RAPI.itemHeaders,TOKEN_IDENTIFIER=headers.token,MESH_DEFAULT_FORMAT="crt",LEGACY_GROUP_INDICATOR=uuid();let RAPI_MATERIAL_GROUP_CACHE=new Map,ITEM_ADDITIONAL_CONTENT_CACHE=new Map,RAPI_RELATIONS_CACHE=new Map,RAPI_CACHE=new Map,MESHES_TO_CATALOG_CACHE=new Map,RAPI_PACKAGE_CACHE=new Map,RAPI_PRELOAD_CACHE=new Map,WAITERS_FOR_URL=new Map,RAPI_ERROR_CACHE=new Map;const getCachedMaterialGroup=e=>RAPI_MATERIAL_GROUP_CACHE.get(e)||RAPI_MATERIAL_GROUP_CACHE.get(LEGACY_GROUP_INDICATOR+e),hasMaterialTags=e=>e&&e.tags&&e.tags.length,materialHasNoTagsButGroup=e=>!hasMaterialTags(e)&&e.group;let RapiAccess=(()=>{class e{constructor(e){this._itemLoaded=!1,this._currentToken=null,this._creator_=e,window.addEventListener("online",this._flushOfflineQueue.bind(this))}getPreloadForItem(e){return this._getPreload(e,!0)}getPreloadForConfiguration(e){return this._getPreload(e,!1)}_getPreload(e,t){return new Promise((n,s)=>{if(!navigator.onLine)return n();if(this._dataSyncer.getIsCatalogSynced(getCatalogIdFromItemOrConfigurationId(e)))return n();if(RAPI_PRELOAD_CACHE.get(e))return n();const o=t?"?itemId=":"?configurationId=";this._get("/preloads/components/"+o+e,"preloads/components").then(t=>{if(RAPI_PRELOAD_CACHE.get(e))return n();t.forEach(e=>{this._prepareData(e,"components")}),RAPI_PRELOAD_CACHE.set(e,!0),n()},s)})}changeUseOfHDGeometry(){const e=RAPI_CACHE.get("components");RAPI_PRELOAD_CACHE.clear(),RAPI_PACKAGE_CACHE.clear(),e&&RAPI_CACHE.delete("components")}getHSCPackage(e){return new Promise((t,n)=>{if(RAPI_PACKAGE_CACHE.get(e))return t();this._get("/catalogs/"+e+"/package","package").then(n=>{if(RAPI_PACKAGE_CACHE.get(e))return t(n);n.components.forEach(e=>{this._prepareData(e,"components")}),n.materials.forEach(e=>{this._prepareData(e,"materials"),this._prepareGroups(e)}),n.textures.forEach(e=>{this._prepareData(e,"textures")}),RAPI_PACKAGE_CACHE.set(e,!0),t(n)},n)})}getComponent(e){return this._getById(e,"components")}getConfiguration(e){return this._getById(e,"configurations")}getConfigurations(e){return this._getByIds(e,"configurations")}getItem(e){return this._getById(e,"items",{additionalHeaders:itemHeaders})}getComponents(e){return this._getByIds(e,"components")}getItems(e){return this._getByIds(e,"items",{additionalHeaders:itemHeaders})}getTag(e){return this._getById(e,"tags")}getTags(e){return this._getByIds(e,"tags")}getTexture(e){return this._getById(e,"textures")}getCatalog(e){return this._getById(e,"catalogs")}getMesh(e,t="crt",n=50){return this._getById(e,"meshes",{pathSuffix:"/data?format="+t+"&targetQuality="+n.toString()})}getMeshesOfCatalog(e){return new Promise((t,n)=>{const s=MESHES_TO_CATALOG_CACHE.get(e);s?t(s):this._get("/meshes?catalog="+e,"catalogMeshes").then(n=>{MESHES_TO_CATALOG_CACHE.set(e,n),t(n)},n)})}getTexturesOf(e){return this._getRelationData(e,{rapiPath:"textures"})}getItemsOf(e){return this._getRelationData(e,{rapiPath:"items"})}async getMaterialsOf(e){return(await this._getRelationData(e,{rapiPath:"materials"},{embed:["textures"]})).filter(e=>e.active)}getComponentsOf(e){return this._getRelationData(e,{rapiPath:"components"})}getAdditionalContentsOfItems(e){const t=[],n=[];return e.forEach(e=>{const s=ITEM_ADDITIONAL_CONTENT_CACHE.get(e.id.toString());s?n.push(...s):t.push(e.id.toString())}),new Promise((e,s)=>{0!==t.length?this._getByIdsPackets(t,"itemAdditionalContents",{filterKey:"itemIds"}).then(t=>{t.forEach(e=>{let t=ITEM_ADDITIONAL_CONTENT_CACHE.get(e.itemId);t||(t=[]);for(let n=0,s=t.length;n<s;n++)if(t[n].id===e.id)return;t.push(e),ITEM_ADDITIONAL_CONTENT_CACHE.set(e.itemId,t)}),e([...t,...n])},s):e(n)})}getMaterial(e){return this._getById(e,"materials",{embed:["textures"]})}peekMaterial(e){return this._peekData(e,"materials")}peekComponent(e){return this._peekData(e,"components")}async getMaterials(e){return(await this._getByIds(e,"materials",{embed:["textures"]})).filter(e=>e.active)}getPlan(e){return this._getById(e,"plans")}static clearCaches(){RAPI_MATERIAL_GROUP_CACHE=new Map,RAPI_RELATIONS_CACHE=new Map,RAPI_CACHE=new Map,RAPI_PACKAGE_CACHE=new Map,RAPI_PRELOAD_CACHE=new Map,WAITERS_FOR_URL=new Map,ITEM_ADDITIONAL_CONTENT_CACHE=new Map}cleanUp(){e.clearCaches()}getMaterialsByGroup(e){const t=e.slice(),n=[];let s=t.length;for(let e=0;e<s;e++){const o=getCachedMaterialGroup(t[e]);if(o){const r=o.length;for(let e=0;e<r;e++){const t=this._getCache("materials").get(o[e]);n.push(t)}t.splice(e,1),s--,e--}}return new Promise((e,s)=>{0!==t.length&&navigator.onLine?this._getByIdsPackets(t,"materials",{filterKey:"groups",embed:["textures"]}).then(t=>{e(this.combineMaterialsToGroups([...t,...n]))},s):e(this.combineMaterialsToGroups(n))})}_flushOfflineQueue(){return new Promise((e,t)=>{const n=this._localStorage.getItem("hsc_configurations_offline_queue_v1"),s=[];for(let e in n)if(n.hasOwnProperty(e)){const t=n[e];s.push(new Promise((e,n)=>{this.saveConfiguration(t.data).then(s=>{const o=[];t.perspectiveImage&&!s.perspectiveImage&&o.push(this.savePerspectiveImage(s,t.perspectiveImage)),t.topImage&&!s.topImage&&o.push(this.savePerspectiveImage(s,t.topImage)),Promise.all(o).then(e,n)},n)}))}Promise.all(s).then(()=>{this._localStorage.setItem("hsc_configurations_offline_queue_v1",{}),e()},t)})}_setQueuedConfiguration(e,t={}){const n=e.configurationHash,{perspectiveImage:s,topImage:o}=t;let r=this._localStorage.getItem("hsc_configurations_offline_queue_v1")||{},i=r[n]||{};i.data=e,i.perspectiveImage=s,i.topImage=o,r[n]=i,this._localStorage.setItem("hsc_configurations_offline_queue_v1",r)}async saveConfiguration(e){return navigator.onLine?await this._save("/configurations",{configuration:e},"configurations",{accept:"application/json",contentType:"application/json; charset=UTF-8"}):(e.perspectiveImage=null,e.topImage=null,this._setQueuedConfiguration(e),this._markConfigurationAsLocally(e),Promise.resolve(e))}saveTopImage(e,t){return this._saveConfigurationImage(e,t,"topImage")}savePerspectiveImage(e,t){return this._saveConfigurationImage(e,t,"perspectiveImage")}getShortUrl(e,t){return new Promise((n,s)=>this._fetchJson("/shortIds","shortIds",{method:"POST",resolve:n,reject:s,data:JSON.stringify({shortId:{type:t,referencedId:e}}),accept:"application/json",contentType:"application/json; charset=UTF-8"}))}_peekData(e,t){const n=RAPI_CACHE.get(t);return n&&n.get(e)||null}_saveConfigurationImage(e,t,n){if(!navigator.onLine){const s={};return s[n]=t,this._setQueuedConfiguration(e,s),this._markConfigurationAsLocally(e),e[n]=t.image,Promise.resolve(e)}const s=this._formDataUtil.create(t.image,e.configurationHash,IMAGE_FORMATS.PNG,n);return this._save("/configurations/"+e.id+"/"+n,s,"configurations",{accept:"application/json"})}_markConfigurationAsLocally(e){e.isLocally=!0,e.id=e.configurationHash}_save(e,t,n,s={}){const o=t instanceof FormData?t:JSON.stringify(t);return new Promise((t,r)=>{const i={method:s.method||"POST",data:o,resolve:t,reject:r};s.contentType&&(i.contentType=s.contentType),s.accept&&(i.accept=s.accept),this._fetchJson(e,n,i)})}combineMaterialsToGroups(e){return new Promise((t,n)=>{const s=new Map,o={id:null,label:null,materials:[]},r=[];for(let t=0,n=e.length;t<n;t++){const n=e[t],i=n.tags&&n.tags.length?n.tags.map(e=>({isTag:!0,id:e})):[];n.group&&i.push({isTag:!1,id:LEGACY_GROUP_INDICATOR+n.group,legacyId:n.group}),i.length||i.push({isTag:!1,id:null}),n.tags&&n.tags.length&&n.tags.forEach(e=>-1===r.indexOf(e)?r.push(e):null),i.forEach(({isTag:e,id:t,legacyId:r})=>{const i=n.id;let a=t?getCachedMaterialGroup(t):[];a||(RAPI_MATERIAL_GROUP_CACHE.set(t,[]),a=getCachedMaterialGroup(t)),-1===a.indexOf(i.toString())&&a.push(i.toString());const l=hasMaterialTags(n),c=l&&e,h=materialHasNoTagsButGroup(n);if(c||h&&!e||!l&&!h&&!t){let e=t?s.get(t):o;e||(s.set(t,{id:t,label:n.groupLabel,legacyId:r,materials:[]}),e=s.get(t)),e.materials.push(n)}})}const i=o.materials.length?[o]:[];this.getTags(r).then(e=>{const n=e.reduce((e,t)=>(e[t.id]=t,e),{});return s.forEach((e,t)=>{i.push({id:t,label:n[t]?n[t].label:e.label,materials:e.materials,legacyId:e.legacyId,sort:n[t]?n[t].sort:void 0})}),t(i)},n)})}_getByIds(e,t,n={}){const s=this._getCache(t),o=this._getErrorCache(t),r=[],i=[...new Set(e)];let a=i.length;if(s&&s.size){const e=(new Date).getTime();for(let t=0;t<a;t++){const n=i[t],l=s.get(n),c=o.get(n);let h=!1;null!=l?(r.push(l),h=!0):h=void 0!==c&&(e-c.timestamp<6e4||!1===navigator.onLine),h&&(i.splice(t,1),a--,t--)}}return new Promise((e,s)=>{0!==i.length&&navigator.onLine?this._getByIdsPackets(i,t,n).then(t=>{e([...t,...r])},s):e(r)})}_getByIdsPackets(e,t,n={}){const s=n.filterKey||"ids";let o,r="/"+t+"/",i="?",a=[];const l=e.length;if(!l)return new Promise(e=>e([]));let c=!0,h=[];for(o=0;o<l;o++){c=!1;const n=e[o],l=i+s+"[]="+n,d=l.length+r.length;h.push(n),i="&",d<=1500?r+=l:(d>1500&&(h.pop(),o--),a.push({url:r,ids:h}),c=!0,r="/"+t+"/",i="?",h=[])}c||a.push({url:r,ids:h});const d=[];return a.forEach(e=>d.push(this._getByIdsSingle(e.ids,e.url,t,n))),new Promise((e,t)=>{Promise.all(d).then(t=>{const n=[];t.length&&t.forEach(e=>n.push(...e)),e(n)},t)})}_getByIdsSingle(e,t,n,s={}){return new Promise((o,r)=>{this._get(t,n,s).then(t=>{for(let n=0,o=t.length;n<o;n++){const o=s&&s.cacheKey?t[n][s.cacheKey]:t[n].id,r=e.indexOf(o.toString());-1!==r&&e.splice(r,1)}const r=e.length;if(r){const t=this._getCache(n),s=this._getErrorCache(n),o=(new Date).getTime();for(let n=0;n<r;n++)s.set(e[n],{code:0,timestamp:o}),t.delete(e[n]);this._errorHandler.dispatch(2,[n,e.map(e=>'"'+e+'"').join(",")])}o(t)},r)})}_getById(e,t,n={}){if(!e||""===e||"string"!=typeof e)return console.error("no id passed to _getById"),Promise.reject(new Error("no id passed to _getById"));const s=this._getCache(t).get(e);if(s)return new Promise(e=>e(s));if(!navigator.onLine)return Promise.reject("Nothing cached but tried to fetch in offline mode");const o={...n,id:e},r=n.pathSuffix||"";return this._get("/"+t+"/"+e+r,t,o)}_get(e,t,n={}){const s=AppContext.useHDGeometry?"includeGeometryHD=true":"";let o=-1===e.indexOf("?")?"?":"&";return""!==s&&(e+=o+s),n.embed&&Array.isArray(n.embed)&&n.embed.forEach(t=>{e+=o+"embed"+(t[0].toUpperCase()+t.substr(1))+"=true",o="&"}),new Promise((s,o)=>{const r=WAITERS_FOR_URL.get(e);Array.isArray(r)&&r.length>0?r.push({resolve:s,reject:o}):(WAITERS_FOR_URL.set(e,[{resolve:s,reject:o}]),this._fetchJson(e,t,n))})}_fetchJson(e,t,n={}){this._fetch(e,n).then(handleJsonResponse.bind(this)).then(this._handleJson(e,t,n).bind(this)).catch(this._handleError(e,n).bind(this))}_fetch(e,t){const n={method:t.method?t.method:"GET",headers:this._createHeaders(t),mode:"cors",cache:"default"};t.data&&(n.body=t.data);let s=RAPI.server;const o=this._globalInitData.overrideRapi;o&&(s="live"===o?RAPI.liveServer:RAPI.testServer),(this._globalInitData.customApiUrl||""===this._globalInitData.customApiUrl)&&(s=this._globalInitData.customApiUrl);const r=new Request(s+e,n);return this._globalCallback.onNetworkRequest(e,n,t),this._networkLayer.fetch(r)}_createHeaders(e={}){const t={...headers};this._globalInitData.overrideTenant&&(t.currentTenant=this._globalInitData.overrideTenant),this._globalInitData.overrideCountry&&(t.country=this._globalInitData.overrideCountry);const n=this._globalInitData.locale||"en";t.language=n,t.locale=n;const{contentType:s,accept:o,additionalHeaders:r,data:i}=e;if(s&&(t["content-type"]=e.contentType),o&&(t.accept=e.accept),r)for(let e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);this._globalInitData.configuratorId&&(t.configurator=this._globalInitData.configuratorId);const a=this._currentToken||TOKEN_IDENTIFIER;t.token="03-"+window.btoa((new Date).toISOString()+";"+a+";"+headers.apiKey);const l=new Headers(t);return i instanceof FormData&&l.delete("content-type"),l}_handleJson(e,t,n={}){return s=>{let o=null,r=null;"number"==typeof s&&(o=s);for(let e in s)"meta"!==e&&s.hasOwnProperty(e)&&(o=s[e],r=e);if("error"===r)return this._handleError(e,n)(new Error(JSON.stringify(o)));if(!o)throw new TypeError("RAPI returned empty JSON");if(Array.isArray(o))for(let e=0,s=o.length;e<s;e++)this._prepareData(o[e],t,n),this._prepareEmbeddedData(o[e],t,n);else this._prepareData(o,t,n),this._prepareEmbeddedData(o,t,n);n.resolve?n.resolve(o):this._notifyWaiters(e,null,o)}}_prepareEmbeddedData(e,t,n={}){n.embed&&Array.isArray(n.embed)&&n.embed.forEach(s=>{const o=e[s.slice(0,-1)+"Objects"];if(Array.isArray(o)){for(let e=0,t=o.length;e<t;e++)this._prepareData(o[e],s,n);this._prepareRelationalData(t,s,e.id,o)}else o&&(this._prepareData(o,s,n),this._prepareRelationalData(t,s,e.id,[o]))})}_getCache(e){return this._getCacheFrom(e,RAPI_CACHE)}_getErrorCache(e){return this._getCacheFrom(e,RAPI_ERROR_CACHE)}_getCacheFrom(e,t){let n=t.get(e);return n||(t.set(e,new Map),n=t.get(e)),n}_setCache(e,t,n){n.set(e.toString(),t)}_prepareData(e,t,n=null){let s=this._getCache(t);const o=n&&n.cacheKey?e[n.cacheKey]:e.id;if(o||n&&n.id||"tenants/me"===t)if("tenants/me"!==t){{const t=o||n.id;this._setCache(t,e,s)}e.__rapi_path__=t}else this._setCache("0",e,s);else"shortIds"!==t&&console.error("Can not cache because there is no ID!")}_getRelationsCacheFor(e,t,n){let s=RAPI_RELATIONS_CACHE.get(t);if(!s){const o=new Map,r=new Map;r.set(n,void 0),o.set(e,r),RAPI_RELATIONS_CACHE.set(t,o),s=RAPI_RELATIONS_CACHE.get(t)}let o=s.get(e);if(!o){const t=new Map;t.set(n,void 0),s.set(e,t),o=s.get(e)}return o.get(n)}_prepareGroups(e){const t=e.group,n=e.id;let s=getCachedMaterialGroup(t);s||(RAPI_MATERIAL_GROUP_CACHE.set(t,[]),s=getCachedMaterialGroup(t)),-1===s.indexOf(n.toString())&&s.push(n.toString())}_handleError(e,t={}){return n=>{navigator.onLine?(n.rmlErrorCode=1,n.message='Failed to load "'+e+'" because of "'+n.message+'"',this._errorHandler.dispatch(1,[n])):(n.rmlErrorCode=0,n.message='Failed to load "'+e+'" because of "'+n.message+'"',this._errorHandler.dispatch(0,[n])),t.reject?t.reject(n):this._notifyWaiters(e,n,null)}}_getRelationData(e,t,n={}){const s=e.id;if(!s)return Promise.resolve([]);const o=e.__rapi_path__,r=t.rapiPath;let i=this._getCache(r),a=this._getRelationsCacheFor(s.toString(),o,r),l=[];return a?(a.forEach(e=>l.push(i.get(e))),new Promise(e=>e(l))):navigator.onLine?new Promise((e,t)=>{this._get("/"+o+"/"+s+"/"+r,r,n).then(t=>{this._prepareRelationalData(o,r,s,t),e(t)},t)}):Promise.resolve([])}_prepareRelationalData(e,t,n,s){RAPI_RELATIONS_CACHE.has(e)||RAPI_RELATIONS_CACHE.set(e,new Map);let o=RAPI_RELATIONS_CACHE.get(e);const r=n.toString();o.has(r)||o.set(r,new Map);let i=o.get(r),a=this._getCache(t),l=[];for(let e=0,t=s.length;e<t;e++){const t=s[e],n=t.id.toString();l.push(n),a.set(n,t)}i.set(t,l)}_notifyWaiters(e,t,n){const s=WAITERS_FOR_URL.get(e);if(s&&s.length){for(let e=0,o=s.length;e<o;e++)t?s[e].reject(t):s[e].resolve(n);WAITERS_FOR_URL.delete(e)}}_tenantMe(){return new Promise((e,t)=>{const n=this._getCache("tenants/me"),s=this._globalInitData.overrideTenant?this._globalInitData.overrideTenant:n.get("0");if(s)return e(s);this._fetchJson("/tenants/me","tenants/me",{resolve:t=>e(t),reject:t})})}async getTenant(e){return e||(e=await this._tenantMe()),this._getById(e.toString(),"tenants")}getCurrentSkin(){return this._tenantMe().then(e=>this._getById(e.toString(),"tenants").then(e=>this._getById(e.skin.toString(),"skins")))}getPrices(e){return this._getByIds(e,"prices",{filterKey:"priceIds",cacheKey:"priceId"})}async getConfiguratorSettings(e){const t=await this._getById(e,"configurators");return t.allowedHosts||(t.allowedHosts=[]),t.allowedHosts&&!Array.isArray(t.allowedHosts)&&(t.allowedHosts=t.allowedHosts.split(" ")),t}sendUserAction(e){return this._save("/userActions",{userAction:e},"userActions",{accept:"application/json",contentType:"application/json; charset=UTF-8"})}shareConfiguration(e,t,n){const s="/configurations/"+e+"/shares",o=new FormData;return o.append("email",t),o.append("type",n.toString()),new Promise((e,t)=>{const n={method:"POST",data:o,resolve:e,reject:t,accept:"application/json",contentType:"application/json; charset=UTF-8"};this._fetch(s,n).then(n.resolve,n.reject)})}export3D(e,t,n,s={}){const o="/configurations/"+e+"/3d-exports",r={formats:[{file_format:n,pack_external_data:!0,...s}]},i=JSON.stringify(r),a=new FormData;return a.append("email",t),a.append("settings",i),new Promise((e,t)=>{const n={method:"POST",data:a,resolve:e,reject:t};this._fetch(o,n).then(n.resolve,n.reject)})}async trackView(e){if(this._itemLoaded)return;const{configuratorId:t}=this._globalInitData,n={module:3,action:1,actionId:e,actionLabel:t};await this.sendUserAction(n),this._itemLoaded=!0}signinUser(e,t){return new Promise((n,s)=>{const o={method:"POST",accept:"application/json",contentType:"application/json; charset=UTF-8",data:JSON.stringify({identification:e,passwordMD5:t}),cacheKey:"token",resolve:n,reject:s};this._fetchJson("/auth/signin","auth",o)})}async signoutUser(e){const t=this._currentToken;t!==e&&this.setCurrentToken(e),await this._fetch("/auth/signout",{}),t&&t!==e?this.setCurrentToken(t):this.removeCurrentToken()}async savePlan(e){const t=e.id?"/plans/"+e.id:"/plans";return this._save(t,{plan:e},"plans",{method:e.id?"PUT":"POST",accept:"application/json",contentType:"application/json; charset=UTF-8"})}setCurrentToken(e){this._currentToken=e}removeCurrentToken(){this._currentToken=null}createNewPlan(){return{name:"",description:"",changeDate:(new Date).toISOString(),created:(new Date).toISOString(),draftId:null,thumbnail:"data:image/png;base64,missing",planObjects:null,active:!0,open:0,planDirectory:0,changed:0,version:2,floorLevel:0,visibility:9,user:null,tenant:null,assets:[],parent:null,setting:null}}}return __decorate([inject],e.prototype,"_formDataUtil",void 0),__decorate([inject],e.prototype,"_errorHandler",void 0),__decorate([inject],e.prototype,"_dataSyncer",void 0),__decorate([inject],e.prototype,"_networkLayer",void 0),__decorate([inject],e.prototype,"_localStorage",void 0),__decorate([inject],e.prototype,"_globalInitData",void 0),__decorate([inject],e.prototype,"_globalCallback",void 0),e})();export{convertToThreeDimensions as $,AppContext as A,Benchmark as B,CommonKernelAccess as C,DOCKING_CONVERSATION_ID as D,Env as E,AsyncGuard as F,GLTF_LOADER_FILE_NAME as G,vectorIsEqual as H,INJECTABLES as I,fadeIn as J,createMaterial as K,Logger as L,MESH_DEFAULT_FORMAT as M,addTexture as N,PREVIEW_MATERIAL_COLOR as O,PREDEFINED_LIGHTSETTING as P,PREVIEW_MATERIAL_OPACITY as Q,RoomleComponentFactoryInitializer as R,PREVIEW_MATERIAL_ROUGHNESS as S,PREVIEW_MATERIAL_METALNESS as T,UiCallback as U,convertToTHREE as V,getMaterialId as W,getBoundingBoxMaterial as X,getColorFromInt as Y,getSelectionGeometry as Z,__decorate as _,AsyncHelper as a,checkGLB as a0,ConfiguratorViewModel as a1,vectorIsZero as a2,disposeMesh as a3,convertToKernel as a4,setWallTransparencyBasedOnCamera as a5,setWallTransparency as a6,DRACO_LOADER_FILE_NAME as a7,rotationQuaternionsAreEqual as a8,getDelta as a9,DynamicQualitySettingLoader as aa,setMaterial as ab,getMaterialShading as ac,addExistingTexture as ad,EnvironmentLoader as ae,GlobalCallback as af,GlobalInitData as ag,InitData as ah,DEFAULT_CONVERSATION_ID as b,convertCObject as c,CANVAS_ID as d,dispose as e,DynamicLightSettingLoader as f,getScreenXY as g,getGUI as h,inject as i,kernelBoxToThreeBox as j,kernelPartToPriceId as k,kernelDimensioningToThree as l,transitionTransparencyOfMaterial as m,DependencyInjectionAssignment as n,RapiAccess as o,DataSyncer as p,getCatalogIdFromItemOrConfigurationId as q,isIdItemId as r,RoomleDependencyInjection as s,toRadiant as t,position3VectorsAreEqual as u,position2VectorsAreEqual as v,getIdealDistance as w,to360Degrees as x,getAngle as y,setShadows as z};
|
|
16
|
-
//# sourceMappingURL=rapi-access-56a3e030.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"roomle-sdk-d699b12b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
System.register(["./rapi-access-339cccf6.nomodule.js","./main-thread-to-worker-35970716.nomodule.js","./pixotron-17562920.nomodule.js"],(function(t,e){var i,s,n,r,o,a,h,_,d,c,m,p,l,u,g,E,w,C,y,v,R;return{setters:[function(t){i=t.t,s=t.u,n=t.a8,r=t.a9,o=t.v,a=t._,h=t.i,_=t.e,d=t.h,c=t.f,m=t.R,p=t.aa},function(t){l=t.i},function(t){u=t.d,g=t.i,E=t.D,w=t.C,C=t.b,y=t.B,v=t.f,R=t.c}],execute:function(){class f extends u{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let r=this._size,o=this._size;n>1?r=this._size*n:o=this._size*(s/i),this._center.copy(e),this._camera.left=r/-2,this._camera.right=r/2,this._camera.top=o/2,this._camera.bottom=o/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}t("C",f);const L=Math.PI/4;class x extends u{constructor(t,e,s,n){super(t,e,s),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=i(-60),this.maxPolarAngle=i(60),this._camera=n||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),s?this._camera.position.set(s.x,1.5,s.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let r=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(r),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*L*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*L*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,r=this.getCamera(),o=s(e,r.position),a=n(i,r.quaternion);if(!e||o&&a)return!1;let h=this.getCamera().position.clone(),_=Math.min(10*t,1);h.lerp(e,_),this.getCamera().position.copy(h);let d=this.getCamera().quaternion.clone(),c=Math.min(5*t,1);d.slerp(i,c),this.getCamera().setRotationFromQuaternion(d);let m=!1;return this._keyMap.forEach(t=>{t&&(m=!0)}),m&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){r(this._downPosition,this._position)<g&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-L*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(L*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),o(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}t("a",x),t("S",(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender(!0)},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof x&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof x&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_requestRender(t){if(!this._renderer)return;this._pixotron&&(this._pixotron.needsUpdate=!0,t&&(this._forceRender=!0));const e=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._forceRender&&(this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(e))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(e))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof E&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof w&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},r=THREE.sRGBEncoding,o=Math.floor(i*window.devicePixelRatio),a=Math.floor(s*window.devicePixelRatio);l()?this._renderTarget=new THREE.WebGLMultisampleRenderTarget(o,a,n):this._renderTarget=new THREE.WebGLRenderTarget(o,a,n),this._renderTarget.texture.encoding=r,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender(!0)),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._requestRender(!0)}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender(!0)}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender(!0)}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{_(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new C(this._pixotron),this._environment instanceof y&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,r,o){return new Promise((a,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,r,null,o).then(t=>{this._setCamera("GLTF",t),a(t)},h)})}_loadGLB(t,e,i,s,n,r,o,a){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,r,o,a).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof w&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof w&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof f&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(v,{id:"dat-gui-js"}).then(()=>{let t=d(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=d();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){e.import("./stats-helper-ba55aea5.nomodule.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._requestRender(!0)}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new R).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new E(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(!0),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof y&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500)))}loadQualitySetting(t){this._pixotron&&(new p).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new E(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=c.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender(!0)}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._requestRender(!0)}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender(!0)}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender(!0)):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return m().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return a([h],t.prototype,"_domHelper",void 0),a([h],t.prototype,"_scriptLoader",void 0),a([h],t.prototype,"_lifeCycleManager",void 0),a([h],t.prototype,"_staticItemLoader",void 0),a([h],t.prototype,"_environmentLoader",void 0),a([h],t.prototype,"_initData",void 0),t})())}}}));
|
|
2
|
-
//# sourceMappingURL=scene-manager-7cd0736c.nomodule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scene-manager-7cd0736c.nomodule.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as toRadiant,u as position3VectorsAreEqual,a8 as rotationQuaternionsAreEqual,a9 as getDelta,v as position2VectorsAreEqual,_ as __decorate,i as inject,e as dispose,h as getGUI,f as DynamicLightSettingLoader,R as RoomleComponentFactoryInitializer,aa as DynamicQualitySettingLoader}from"./rapi-access-56a3e030.js";import{i as isWebGl2}from"./main-thread-to-worker-3b2ebd37.js";import{d as CameraControl,i as MIN_MOVE_DISTANCE,D as DynamicLightSetting,C as CameraControl3D,b as PixotronUtil,B as BakedShadowEnvironment,f as DAT_GUI_FILE_NAME,c as DynamicEnvironmentSettingLoader}from"./pixotron-75c414e7.js";class CameraControl2D extends CameraControl{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let a=this._size,r=this._size;n>1?a=this._size*n:r=this._size*(s/i),this._center.copy(e),this._camera.left=a/-2,this._camera.right=a/2,this._camera.top=r/2,this._camera.bottom=r/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}const KEYBOARD_ROTATION_ANGLE=Math.PI/4;class CameraControlFirstPerson extends CameraControl{constructor(t,e,i,s){super(t,e,i),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=toRadiant(-60),this.maxPolarAngle=toRadiant(60),this._camera=s||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),i?this._camera.position.set(i.x,1.5,i.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let n=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(n),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*KEYBOARD_ROTATION_ANGLE*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*KEYBOARD_ROTATION_ANGLE*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,s=this.getCamera(),n=position3VectorsAreEqual(e,s.position),a=rotationQuaternionsAreEqual(i,s.quaternion);if(!e||n&&a)return!1;let r=this.getCamera().position.clone(),o=Math.min(10*t,1);r.lerp(e,o),this.getCamera().position.copy(r);let h=this.getCamera().quaternion.clone(),_=Math.min(5*t,1);h.slerp(i,_),this.getCamera().setRotationFromQuaternion(h);let d=!1;return this._keyMap.forEach(t=>{t&&(d=!0)}),d&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){getDelta(this._downPosition,this._position)<MIN_MOVE_DISTANCE&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),position2VectorsAreEqual(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}let SceneManager=(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender(!0)},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof CameraControlFirstPerson&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof CameraControlFirstPerson&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_requestRender(t){if(!this._renderer)return;this._pixotron&&(this._pixotron.needsUpdate=!0,t&&(this._forceRender=!0));const e=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._forceRender&&(this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(e))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(e))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof DynamicLightSetting&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof CameraControl3D&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},a=THREE.sRGBEncoding,r=Math.floor(i*window.devicePixelRatio),o=Math.floor(s*window.devicePixelRatio);isWebGl2()?this._renderTarget=new THREE.WebGLMultisampleRenderTarget(r,o,n):this._renderTarget=new THREE.WebGLRenderTarget(r,o,n),this._renderTarget.texture.encoding=a,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender(!0)),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._requestRender(!0)}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender(!0)}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender(!0)}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{dispose(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new PixotronUtil(this._pixotron),this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,a,r){return new Promise((o,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,a,null,r).then(t=>{this._setCamera("GLTF",t),o(t)},h)})}_loadGLB(t,e,i,s,n,a,r,o){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,a,r,o).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof CameraControl2D&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(DAT_GUI_FILE_NAME,{id:"dat-gui-js"}).then(()=>{let t=getGUI(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=getGUI();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){import("./stats-helper-aafa9349.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._requestRender(!0)}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new DynamicEnvironmentSettingLoader).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(!0),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(!0),500)))}loadQualitySetting(t){this._pixotron&&(new DynamicQualitySettingLoader).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=DynamicLightSettingLoader.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender(!0)}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._requestRender(!0)}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender(!0)}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender(!0)):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return RoomleComponentFactoryInitializer().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return __decorate([inject],t.prototype,"_domHelper",void 0),__decorate([inject],t.prototype,"_scriptLoader",void 0),__decorate([inject],t.prototype,"_lifeCycleManager",void 0),__decorate([inject],t.prototype,"_staticItemLoader",void 0),__decorate([inject],t.prototype,"_environmentLoader",void 0),__decorate([inject],t.prototype,"_initData",void 0),t})();export{CameraControl2D as C,SceneManager as S,CameraControlFirstPerson as a};
|
|
2
|
-
//# sourceMappingURL=scene-manager-c953c6c0.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scene-manager-c953c6c0.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var _scriptDir,ConfiguratorKernel=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(n){var t;n=n||{},t||(t=void 0!==n?n:{});var r,i={};for(r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);var e="./this.program";function a(n,t){throw t}var o="";document.currentScript&&(o=document.currentScript.src),_scriptDir&&(o=_scriptDir),o=0!==o.indexOf("blob:")?o.substr(0,o.lastIndexOf("/")+1):"";var u=t.print||console.log.bind(console),l=t.printErr||console.warn.bind(console);for(r in i)i.hasOwnProperty(r)&&(t[r]=i[r]);i=null,t.thisProgram&&(e=t.thisProgram),t.quit&&(a=t.quit);var c,f,d=0;t.wasmBinary&&(c=t.wasmBinary),t.noExitRuntime&&(f=t.noExitRuntime),"object"!=typeof WebAssembly&&l("no native wasm support detected");var s,p=new WebAssembly.Table({initial:7767,maximum:7767,element:"anyfunc"}),y=!1,h="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function v(n,t,r){var i=t+r;for(r=t;n[r]&&!(r>=i);)++r;if(16<r-t&&n.subarray&&h)return h.decode(n.subarray(t,r));for(i="";t<r;){var e=n[t++];if(128&e){var a=63&n[t++];if(192==(224&e))i+=String.fromCharCode((31&e)<<6|a);else{var o=63&n[t++];65536>(e=224==(240&e)?(15&e)<<12|a<<6|o:(7&e)<<18|a<<12|o<<6|63&n[t++])?i+=String.fromCharCode(e):(e-=65536,i+=String.fromCharCode(55296|e>>10,56320|1023&e))}}else i+=String.fromCharCode(e)}return i}function m(n){return n?v(b,n,void 0):""}function g(n,t,r,i){if(0<i){i=r+i-1;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),127>=a){if(r>=i)break;t[r++]=a}else{if(2047>=a){if(r+1>=i)break;t[r++]=192|a>>6}else{if(65535>=a){if(r+2>=i)break;t[r++]=224|a>>12}else{if(r+3>=i)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63}t[r++]=128|a>>6&63}t[r++]=128|63&a}}t[r]=0}}function _(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++r)),127>=i?++t:t=2047>=i?t+2:65535>=i?t+3:t+4}return t}var C,w,b,j,T,A,P,k,E,W="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function F(n){var t;for(t=n>>1;j[t];)++t;if(32<(t<<=1)-n&&W)return W.decode(b.subarray(n,t));t=0;for(var r="";;){var i=j[n+2*t>>1];if(0==i)return r;++t,r+=String.fromCharCode(i)}}function $(n,t,r){if(void 0===r&&(r=2147483647),2>r)return 0;var i=t;r=(r-=2)<2*n.length?r/2:n.length;for(var e=0;e<r;++e)j[t>>1]=n.charCodeAt(e),t+=2;return j[t>>1]=0,t-i}function D(n){return 2*n.length}function O(n){for(var t=0,r="";;){var i=A[n+4*t>>2];if(0==i)return r;++t,65536<=i?(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i)):r+=String.fromCharCode(i)}}function S(n,t,r){if(void 0===r&&(r=2147483647),4>r)return 0;var i=t;r=i+r-4;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),A[t>>2]=a,(t+=4)+4>r)break}return A[t>>2]=0,t-i}function x(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&++r,t+=4}return t}function M(n){C=n,t.HEAP8=w=new Int8Array(n),t.HEAP16=j=new Int16Array(n),t.HEAP32=A=new Int32Array(n),t.HEAPU8=b=new Uint8Array(n),t.HEAPU16=T=new Uint16Array(n),t.HEAPU32=P=new Uint32Array(n),t.HEAPF32=k=new Float32Array(n),t.HEAPF64=E=new Float64Array(n)}var I=t.INITIAL_MEMORY||167772160;function R(n){for(;0<n.length;){var r=n.shift();if("function"==typeof r)r();else{var i=r.Id;"number"==typeof i?void 0===r.wd?t.dynCall_v(i):t.dynCall_vi(i,r.wd):i(void 0===r.wd?null:r.wd)}}}(s=t.wasmMemory?t.wasmMemory:new WebAssembly.Memory({initial:I/65536}))&&(C=s.buffer),I=C.byteLength,M(C),A[37960]=5394896;var U=[],Y=[],H=[],V=[],B=[];function z(){var n=t.preRun.shift();U.unshift(n)}var q=Math.ceil,N=Math.floor,L=0,G=null,K=null;function J(n){throw t.onAbort&&t.onAbort(n),u(n),l(n),y=!0,new WebAssembly.RuntimeError("abort("+n+"). Build with -s ASSERTIONS=1 for more info.")}function Z(){var n=X;return String.prototype.startsWith?n.startsWith("data:application/octet-stream;base64,"):0===n.indexOf("data:application/octet-stream;base64,")}t.preloadedImages={},t.preloadedAudios={};var X="ConfiguratorKernel.wasm";if(!Z()){var Q=X;X=t.locateFile?t.locateFile(Q,o):o+Q}function nn(){try{if(c)return new Uint8Array(c);throw"both async and sync fetching of the wasm failed"}catch(n){J(n)}}Y.push({Id:function(){Ot()}});var tn={},rn=[];function en(n){if(!n||tn[n])return n;for(var t in tn)for(var r=+t,i=tn[r].qd,e=i.length,a=0;a<e;a++)if(i[a]===n)return r;return n}function an(n){try{return xt(n)}catch(n){}}function on(n){if(n){var r=tn[n];r.ld--,0!==r.ld||r.td||(r.rd&&t.dynCall_ii(r.rd,n),delete tn[n],an(n))}}var un=0;function ln(){var n=rn.pop();throw n=en(n),tn[n].td||(rn.push(n),tn[n].td=!0),un=n,n}var cn={},fn=[null,[],[]],dn={},sn={};function pn(n){for(;n.length;){var t=n.pop();n.pop()(t)}}function yn(n){return this.fromWireType(P[n>>2])}var hn={},vn={},mn={};function gn(n){if(void 0===n)return"_unknown";var t=(n=n.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+n:n}function _n(n,t){return n=gn(n),new Function("body","return function "+n+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Cn(n){var t=Error,r=_n(n,(function(t){this.name=n,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var wn=void 0;function bn(n){throw new wn(n)}function jn(n,t,r){function i(t){(t=r(t)).length!==n.length&&bn("Mismatched type converter count");for(var i=0;i<n.length;++i)Wn(n[i],t[i])}n.forEach((function(n){mn[n]=t}));var e=Array(t.length),a=[],o=0;t.forEach((function(n,t){vn.hasOwnProperty(n)?e[t]=vn[n]:(a.push(n),hn.hasOwnProperty(n)||(hn[n]=[]),hn[n].push((function(){e[t]=vn[n],++o===a.length&&i(e)})))})),0===a.length&&i(e)}function Tn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+n)}}var An=void 0;function Pn(n){for(var t="";b[n];)t+=An[b[n++]];return t}var kn=void 0;function En(n){throw new kn(n)}function Wn(n,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var i=t.name;if(n||En('type "'+i+'" must have a positive integer typeid pointer'),vn.hasOwnProperty(n)){if(r.Sd)return;En("Cannot register type '"+i+"' twice")}vn[n]=t,delete mn[n],hn.hasOwnProperty(n)&&(t=hn[n],delete hn[n],t.forEach((function(n){n()})))}function Fn(n){return{count:n.count,nd:n.nd,sd:n.sd,bd:n.bd,cd:n.cd,fd:n.fd,hd:n.hd}}function $n(n){En(n.$c.cd.ad.name+" instance already deleted")}var Dn=!1;function On(){}function Sn(n){--n.count.value,0===n.count.value&&(n.fd?n.hd.kd(n.fd):n.cd.ad.kd(n.bd))}function xn(n){return"undefined"==typeof FinalizationGroup?(xn=function(n){return n},n):(Dn=new FinalizationGroup((function(n){for(var t=n.next();!t.done;t=n.next())(t=t.value).bd?Sn(t):console.warn("object already deleted: "+t.bd)})),On=function(n){Dn.unregister(n.$c)},(xn=function(n){return Dn.register(n,n.$c,n.$c),n})(n))}var Mn=void 0,In=[];function Rn(){for(;In.length;){var n=In.pop();n.$c.nd=!1,n.delete()}}function Un(){}var Yn={};function Hn(n,t,r){if(void 0===n[t].dd){var i=n[t];n[t]=function(){return n[t].dd.hasOwnProperty(arguments.length)||En("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[t].dd+")!"),n[t].dd[arguments.length].apply(this,arguments)},n[t].dd=[],n[t].dd[i.xd]=i}}function Vn(n,r,i){t.hasOwnProperty(n)?((void 0===i||void 0!==t[n].dd&&void 0!==t[n].dd[i])&&En("Cannot register public name '"+n+"' twice"),Hn(t,n,n),t.hasOwnProperty(i)&&En("Cannot register multiple overloads of a function with the same number of arguments ("+i+")!"),t[n].dd[i]=r):(t[n]=r,void 0!==i&&(t[n].je=i))}function Bn(n,t,r,i,e,a,o,u){this.name=n,this.constructor=t,this.od=r,this.kd=i,this.jd=e,this.Nd=a,this.vd=o,this.Ld=u,this.Vd=[]}function zn(n,t,r){for(;t!==r;)t.vd||En("Expected null or instance of "+r.name+", got an instance of "+t.name),n=t.vd(n),t=t.jd;return n}function qn(n,t){return null===t?(this.Dd&&En("null is not a valid "+this.name),0):(t.$c||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.$c.bd||En("Cannot pass deleted object as a pointer of type "+this.name),zn(t.$c.bd,t.$c.cd.ad,this.ad))}function Nn(n,t){if(null===t){if(this.Dd&&En("null is not a valid "+this.name),this.zd){var r=this.Ed();return null!==n&&n.push(this.kd,r),r}return 0}if(t.$c||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.$c.bd||En("Cannot pass deleted object as a pointer of type "+this.name),!this.yd&&t.$c.cd.yd&&En("Cannot convert argument of type "+(t.$c.hd?t.$c.hd.name:t.$c.cd.name)+" to parameter type "+this.name),r=zn(t.$c.bd,t.$c.cd.ad,this.ad),this.zd)switch(void 0===t.$c.fd&&En("Passing raw pointer to smart pointer is illegal"),this.$d){case 0:t.$c.hd===this?r=t.$c.fd:En("Cannot convert argument of type "+(t.$c.hd?t.$c.hd.name:t.$c.cd.name)+" to parameter type "+this.name);break;case 1:r=t.$c.fd;break;case 2:if(t.$c.hd===this)r=t.$c.fd;else{var i=t.clone();r=this.Wd(r,lt((function(){i.delete()}))),null!==n&&n.push(this.kd,r)}break;default:En("Unsupporting sharing policy")}return r}function Ln(n,t){return null===t?(this.Dd&&En("null is not a valid "+this.name),0):(t.$c||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.$c.bd||En("Cannot pass deleted object as a pointer of type "+this.name),t.$c.cd.yd&&En("Cannot convert argument of type "+t.$c.cd.name+" to parameter type "+this.name),zn(t.$c.bd,t.$c.cd.ad,this.ad))}var Gn={};function Kn(n,t){return t.cd&&t.bd||bn("makeClassHandle requires ptr and ptrType"),!!t.hd!=!!t.fd&&bn("Both smartPtrType and smartPtr must be specified"),t.count={value:1},xn(Object.create(n,{$c:{value:t}}))}function Jn(n,t,r,i,e,a,o,u,l,c,f){this.name=n,this.ad=t,this.Dd=r,this.yd=i,this.zd=e,this.Ud=a,this.$d=o,this.Jd=u,this.Ed=l,this.Wd=c,this.kd=f,e||void 0!==t.jd?this.toWireType=Nn:(this.toWireType=i?qn:Ln,this.gd=null)}function Zn(n,r,i){t.hasOwnProperty(n)||bn("Replacing nonexistant public symbol"),void 0!==t[n].dd&&void 0!==i?t[n].dd[i]=r:(t[n]=r,t[n].xd=i)}function Xn(n,r){n=Pn(n);for(var i=t["dynCall_"+n],e=[],a=1;a<n.length;++a)e.push("a"+a);return a="return function dynCall_"+n+"_"+r+"("+e.join(", ")+") {\n",a+=" return dynCall(rawFunction"+(e.length?", ":"")+e.join(", ")+");\n","function"!=typeof(i=new Function("dynCall","rawFunction",a+"};\n")(i,r))&&En("unknown function pointer with signature "+n+": "+r),i}var Qn=void 0;function nt(n){var t=Pn(n=Yt(n));return xt(n),t}function tt(n,t){var r=[],i={};throw t.forEach((function n(t){i[t]||vn[t]||(mn[t]?mn[t].forEach(n):(r.push(t),i[t]=!0))})),new Qn(n+": "+r.map(nt).join([", "]))}function rt(n,t){for(var r=[],i=0;i<n;i++)r.push(A[(t>>2)+i]);return r}function it(n){var t=Function;if(!(t instanceof Function))throw new TypeError("new_ called with constructor type "+typeof t+" which is not a function");var r=_n(t.name||"unknownFunctionName",(function(){}));return r.prototype=t.prototype,r=new r,(n=t.apply(r,n))instanceof Object?n:r}function et(n,t,r,i,e){var a=t.length;2>a&&En("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==t[1]&&null!==r,u=!1;for(r=1;r<t.length;++r)if(null!==t[r]&&void 0===t[r].gd){u=!0;break}var l="void"!==t[0].name,c="",f="";for(r=0;r<a-2;++r)c+=(0!==r?", ":"")+"arg"+r,f+=(0!==r?", ":"")+"arg"+r+"Wired";n="return function "+gn(n)+"("+c+") {\nif (arguments.length !== "+(a-2)+") {\nthrowBindingError('function "+n+" called with ' + arguments.length + ' arguments, expected "+(a-2)+" args!');\n}\n",u&&(n+="var destructors = [];\n");var d=u?"destructors":"null";for(c="throwBindingError invoker fn runDestructors retType classParam".split(" "),i=[En,i,e,pn,t[0],t[1]],o&&(n+="var thisWired = classParam.toWireType("+d+", this);\n"),r=0;r<a-2;++r)n+="var arg"+r+"Wired = argType"+r+".toWireType("+d+", arg"+r+"); // "+t[r+2].name+"\n",c.push("argType"+r),i.push(t[r+2]);if(o&&(f="thisWired"+(0<f.length?", ":"")+f),n+=(l?"var rv = ":"")+"invoker(fn"+(0<f.length?", ":"")+f+");\n",u)n+="runDestructors(destructors);\n";else for(r=o?1:2;r<t.length;++r)a=1===r?"thisWired":"arg"+(r-2)+"Wired",null!==t[r].gd&&(n+=a+"_dtor("+a+"); // "+t[r].name+"\n",c.push(a+"_dtor"),i.push(t[r].gd));return l&&(n+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),c.push(n+"}\n"),it(c).apply(null,i)}var at=[],ot=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ut(n){4<n&&0==--ot[n].ld&&(ot[n]=void 0,at.push(n))}function lt(n){switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=at.length?at.pop():ot.length;return ot[t]={ld:1,value:n},t}}function ct(n,t,r){switch(t){case 0:return function(n){return this.fromWireType((r?w:b)[n])};case 1:return function(n){return this.fromWireType((r?j:T)[n>>1])};case 2:return function(n){return this.fromWireType((r?A:P)[n>>2])};default:throw new TypeError("Unknown integer type: "+n)}}function ft(n,t){var r=vn[n];return void 0===r&&En(t+" has unknown type "+nt(n)),r}function dt(n){if(null===n)return"null";var t=typeof n;return"object"===t||"array"===t||"function"===t?n.toString():""+n}function st(n,t){switch(t){case 2:return function(n){return this.fromWireType(k[n>>2])};case 3:return function(n){return this.fromWireType(E[n>>3])};default:throw new TypeError("Unknown float type: "+n)}}function pt(n,t,r){switch(t){case 0:return r?function(n){return w[n]}:function(n){return b[n]};case 1:return r?function(n){return j[n>>1]}:function(n){return T[n>>1]};case 2:return r?function(n){return A[n>>2]}:function(n){return P[n>>2]};default:throw new TypeError("Unknown integer type: "+n)}}function yt(n){return n||En("Cannot use deleted val. handle = "+n),ot[n].value}function ht(n,t){for(var r=Array(n),i=0;i<n;++i)r[i]=ft(A[(t>>2)+i],"parameter "+i);return r}var vt={};function mt(n){var t=vt[n];return void 0===t?Pn(n):t}var gt=[];function _t(){return"object"==typeof globalThis?globalThis:Function("return this")()}var Ct,wt={},bt={};function jt(){if(!Ct){var n,t={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",_:e||"./this.program"};for(n in bt)t[n]=bt[n];var r=[];for(n in t)r.push(n+"="+t[n]);Ct=r}return Ct}function Tt(n){return 0==n%4&&(0!=n%100||0==n%400)}function At(n,t){for(var r=0,i=0;i<=t;r+=n[i++]);return r}var Pt=[31,29,31,30,31,30,31,31,30,31,30,31],kt=[31,28,31,30,31,30,31,31,30,31,30,31];function Et(n,t){for(n=new Date(n.getTime());0<t;){var r=n.getMonth(),i=(Tt(n.getFullYear())?Pt:kt)[r];if(!(t>i-n.getDate())){n.setDate(n.getDate()+t);break}t-=i-n.getDate()+1,n.setDate(1),11>r?n.setMonth(r+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return n}wn=t.InternalError=Cn("InternalError");for(var Wt=Array(256),Ft=0;256>Ft;++Ft)Wt[Ft]=String.fromCharCode(Ft);An=Wt,kn=t.BindingError=Cn("BindingError"),Un.prototype.isAliasOf=function(n){if(!(this instanceof Un&&n instanceof Un))return!1;var t=this.$c.cd.ad,r=this.$c.bd,i=n.$c.cd.ad;for(n=n.$c.bd;t.jd;)r=t.vd(r),t=t.jd;for(;i.jd;)n=i.vd(n),i=i.jd;return t===i&&r===n},Un.prototype.clone=function(){if(this.$c.bd||$n(this),this.$c.sd)return this.$c.count.value+=1,this;var n=xn(Object.create(Object.getPrototypeOf(this),{$c:{value:Fn(this.$c)}}));return n.$c.count.value+=1,n.$c.nd=!1,n},Un.prototype.delete=function(){this.$c.bd||$n(this),this.$c.nd&&!this.$c.sd&&En("Object already scheduled for deletion"),On(this),Sn(this.$c),this.$c.sd||(this.$c.fd=void 0,this.$c.bd=void 0)},Un.prototype.isDeleted=function(){return!this.$c.bd},Un.prototype.deleteLater=function(){return this.$c.bd||$n(this),this.$c.nd&&!this.$c.sd&&En("Object already scheduled for deletion"),In.push(this),1===In.length&&Mn&&Mn(Rn),this.$c.nd=!0,this},Jn.prototype.Od=function(n){return this.Jd&&(n=this.Jd(n)),n},Jn.prototype.rd=function(n){this.kd&&this.kd(n)},Jn.prototype.argPackAdvance=8,Jn.prototype.readValueFromPointer=yn,Jn.prototype.deleteObject=function(n){null!==n&&n.delete()},Jn.prototype.fromWireType=function(n){function t(){return this.zd?Kn(this.ad.od,{cd:this.Ud,bd:r,hd:this,fd:n}):Kn(this.ad.od,{cd:this,bd:n})}var r=this.Od(n);if(!r)return this.rd(n),null;var i=function(n,t){for(void 0===t&&En("ptr should not be undefined");n.jd;)t=n.vd(t),n=n.jd;return Gn[t]}(this.ad,r);if(void 0!==i)return 0===i.$c.count.value?(i.$c.bd=r,i.$c.fd=n,i.clone()):(i=i.clone(),this.rd(n),i);if(i=this.ad.Nd(r),!(i=Yn[i]))return t.call(this);i=this.yd?i.Kd:i.pointerType;var e=function n(t,r,i){return r===i?t:void 0===i.jd||null===(t=n(t,r,i.jd))?null:i.Ld(t)}(r,this.ad,i.ad);return null===e?t.call(this):this.zd?Kn(i.ad.od,{cd:i,bd:e,hd:this,fd:n}):Kn(i.ad.od,{cd:i,bd:e})},t.getInheritedInstanceCount=function(){return Object.keys(Gn).length},t.getLiveInheritedInstances=function(){var n,t=[];for(n in Gn)Gn.hasOwnProperty(n)&&t.push(Gn[n]);return t},t.flushPendingDeletes=Rn,t.setDelayFunction=function(n){Mn=n,In.length&&Mn&&Mn(Rn)},Qn=t.UnboundTypeError=Cn("UnboundTypeError"),t.count_emval_handles=function(){for(var n=0,t=5;t<ot.length;++t)void 0!==ot[t]&&++n;return n},t.get_first_emval=function(){for(var n=5;n<ot.length;++n)if(void 0!==ot[n])return ot[n];return null};var $t={n:function(n){return St(n)},p:function(n){var t=tn[n];return t&&!t.Gd&&(t.Gd=!0,It.Fd--),t&&(t.td=!1),rn.push(n),(t=en(n))&&tn[t].ld++,n},Ua:function(){var n=rn[rn.length-1]||0;if(n){var t=en(n);t&&tn[t].ld++}return n},xa:function(n){on(en(n))},t:function(){Mt(0);var n=rn.pop();n&&(on(en(n)),un=0)},b:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Ut(r),A[38e3]=n,n=152e3;for(var e=0;e<i.length;e++)if(i[e]&&Rt(i[e],r,n))return n=A[n>>2],t.qd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},h:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Ut(r),A[38e3]=n,n=152e3;for(var e=0;e<i.length;e++)if(i[e]&&Rt(i[e],r,n))return n=A[n>>2],t.qd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},G:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Ut(r),A[38e3]=n,n=152e3;for(var e=0;e<i.length;e++)if(i[e]&&Rt(i[e],r,n))return n=A[n>>2],t.qd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},Ba:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Ut(r),A[38e3]=n,n=152e3;for(var e=0;e<i.length;e++)if(i[e]&&Rt(i[e],r,n))return n=A[n>>2],t.qd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},q:an,wa:function(n){(n=en(n))&&tn[n].ld++},sa:ln,Ta:function(n){n&&(n=en(n),rn.push(n),tn[n].td=!0,ln())},ya:function(n,t){V.unshift({Id:n,wd:t})},B:function(n,t,r){throw tn[n]={bd:n,qd:[n],type:t,rd:r,ld:0,Gd:!1,td:!1},un=n,"uncaught_exception"in It?It.Fd++:It.Fd=1,n},Va:function(){return It.Fd},Qa:function(){return t.___errno_location&&(A[t.___errno_location()>>2]=63),-1},d:function(n){throw un||(un=n),n},Pa:function(n,t){if(-1===n||0===t)n=-28;else{var r=cn[n];r&&t===r.he&&(cn[n]=null,r.ee&&xt(r.ie)),n=0}return n},Za:function(n){var t=sn[n];delete sn[n];var r=t.Ed,i=t.kd,e=t.Hd;jn([n],e.map((function(n){return n.Rd})).concat(e.map((function(n){return n.Yd}))),(function(n){var a={};return e.forEach((function(t,r){var i=n[r],o=t.Pd,u=t.Qd,l=n[r+e.length],c=t.Xd,f=t.Zd;a[t.Md]={read:function(n){return i.fromWireType(o(u,n))},write:function(n,t){var r=[];c(f,n,l.toWireType(r,t)),pn(r)}}})),[{name:t.name,fromWireType:function(n){var t,r={};for(t in a)r[t]=a[t].read(n);return i(n),r},toWireType:function(n,t){for(var e in a)if(!(e in t))throw new TypeError("Missing field");var o=r();for(e in a)a[e].write(o,t[e]);return null!==n&&n.push(i,o),o},argPackAdvance:8,readValueFromPointer:yn,gd:i}]}))},Ma:function(n,t,r,i,e){var a=Tn(r);Wn(n,{name:t=Pn(t),fromWireType:function(n){return!!n},toWireType:function(n,t){return t?i:e},argPackAdvance:8,readValueFromPointer:function(n){if(1===r)var i=w;else if(2===r)i=j;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);i=A}return this.fromWireType(i[n>>a])},gd:null})},D:function(n,t,r,i,e,a,o,u,l,c,f,d,s){f=Pn(f),a=Xn(e,a),u&&(u=Xn(o,u)),c&&(c=Xn(l,c)),s=Xn(d,s);var p=gn(f);Vn(p,(function(){tt("Cannot construct "+f+" due to unbound types",[i])})),jn([n,t,r],i?[i]:[],(function(t){if(t=t[0],i)var r=t.ad,e=r.od;else e=Un.prototype;t=_n(p,(function(){if(Object.getPrototypeOf(this)!==o)throw new kn("Use 'new' to construct "+f);if(void 0===l.md)throw new kn(f+" has no accessible constructor");var n=l.md[arguments.length];if(void 0===n)throw new kn("Tried to invoke ctor of "+f+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.md).toString()+") parameters instead!");return n.apply(this,arguments)}));var o=Object.create(e,{constructor:{value:t}});t.prototype=o;var l=new Bn(f,t,o,s,r,a,u,c);r=new Jn(f,l,!0,!1,!1),e=new Jn(f+"*",l,!1,!1,!1);var d=new Jn(f+" const*",l,!1,!0,!1);return Yn[n]={pointerType:e,Kd:d},Zn(p,t),[r,e,d]}))},C:function(n,t,r,i,e,a){0<t||J("Assertion failed: undefined");var o=rt(t,r);e=Xn(i,e);var u=[a],l=[];jn([],[n],(function(n){var r="constructor "+(n=n[0]).name;if(void 0===n.ad.md&&(n.ad.md=[]),void 0!==n.ad.md[t-1])throw new kn("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+n.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return n.ad.md[t-1]=function(){tt("Cannot construct "+n.name+" due to unbound types",o)},jn([],o,(function(i){return n.ad.md[t-1]=function(){arguments.length!==t-1&&En(r+" called with "+arguments.length+" arguments, expected "+(t-1)),l.length=0,u.length=t;for(var n=1;n<t;++n)u[n]=i[n].toWireType(l,arguments[n-1]);return n=e.apply(null,u),pn(l),i[0].fromWireType(n)},[]})),[]}))},m:function(n,t,r,i,e,a,o,u){var l=rt(r,i);t=Pn(t),a=Xn(e,a),jn([],[n],(function(n){function i(){tt("Cannot call "+e+" due to unbound types",l)}var e=(n=n[0]).name+"."+t;u&&n.ad.Vd.push(t);var c=n.ad.od,f=c[t];return void 0===f||void 0===f.dd&&f.className!==n.name&&f.xd===r-2?(i.xd=r-2,i.className=n.name,c[t]=i):(Hn(c,t,e),c[t].dd[r-2]=i),jn([],l,(function(i){return i=et(e,i,n,a,o),void 0===c[t].dd?(i.xd=r-2,c[t]=i):c[t].dd[r-2]=i,[]})),[]}))},La:function(n,t){Wn(n,{name:t=Pn(t),fromWireType:function(n){var t=ot[n].value;return ut(n),t},toWireType:function(n,t){return lt(t)},argPackAdvance:8,readValueFromPointer:yn,gd:null})},Y:function(n,t,r,i){function e(){}r=Tn(r),t=Pn(t),e.values={},Wn(n,{name:t,constructor:e,fromWireType:function(n){return this.constructor.values[n]},toWireType:function(n,t){return t.value},argPackAdvance:8,readValueFromPointer:ct(t,r,i),gd:null}),Vn(t,e)},X:function(n,t,r){var i=ft(n,"enum");t=Pn(t),n=i.constructor,i=Object.create(i.constructor.prototype,{value:{value:r},constructor:{value:_n(i.name+"_"+t,(function(){}))}}),n.values[r]=i,n[t]=i},ra:function(n,t,r){r=Tn(r),Wn(n,{name:t=Pn(t),fromWireType:function(n){return n},toWireType:function(n,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+dt(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:st(t,r),gd:null})},W:function(n,t,r,i,e,a){var o=rt(t,r);n=Pn(n),e=Xn(i,e),Vn(n,(function(){tt("Cannot call "+n+" due to unbound types",o)}),t-1),jn([],o,(function(r){return Zn(n,et(n,[r[0],null].concat(r.slice(1)),null,e,a),t-1),[]}))},P:function(n,t,r,i,e){function a(n){return n}t=Pn(t),-1===e&&(e=4294967295);var o=Tn(r);if(0===i){var u=32-8*r;a=function(n){return n<<u>>>u}}var l=-1!=t.indexOf("unsigned");Wn(n,{name:t,fromWireType:a,toWireType:function(n,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+dt(r)+'" to '+this.name);if(r<i||r>e)throw new TypeError('Passing a number "'+dt(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+i+", "+e+"]!");return l?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:pt(t,o,0!==i),gd:null})},K:function(n,t,r){function i(n){var t=P;return new e(C,t[1+(n>>=2)],t[n])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];Wn(n,{name:r=Pn(r),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{Sd:!0})},za:function(n,t,r,i,e,a,o,u,l,c,f,d){r=Pn(r),a=Xn(e,a),u=Xn(o,u),c=Xn(l,c),d=Xn(f,d),jn([n],[t],(function(n){return n=n[0],[new Jn(r,n.ad,!1,!1,!0,n,i,a,u,c,d)]}))},ta:function(n,t){var r="std::string"===(t=Pn(t));Wn(n,{name:t,fromWireType:function(n){var t=P[n>>2];if(r){var i=b[n+4+t],e=0;0!=i&&(e=i,b[n+4+t]=0);var a=n+4;for(i=0;i<=t;++i){var o=n+4+i;if(0==b[o]){if(a=m(a),void 0===u)var u=a;else u+=String.fromCharCode(0),u+=a;a=o+1}}0!=e&&(b[n+4+t]=e)}else{for(u=Array(t),i=0;i<t;++i)u[i]=String.fromCharCode(b[n+4+i]);u=u.join("")}return xt(n),u},toWireType:function(n,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var i="string"==typeof t;i||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||En("Cannot pass non-string to std::string");var e=(r&&i?function(){return _(t)}:function(){return t.length})(),a=St(4+e+1);if(P[a>>2]=e,r&&i)g(t,b,a+4,e+1);else if(i)for(i=0;i<e;++i){var o=t.charCodeAt(i);255<o&&(xt(a),En("String has UTF-16 code units that do not fit in 8 bits")),b[a+4+i]=o}else for(i=0;i<e;++i)b[a+4+i]=t[i];return null!==n&&n.push(xt,a),a},argPackAdvance:8,readValueFromPointer:yn,gd:function(n){xt(n)}})},ga:function(n,t,r){if(r=Pn(r),2===t)var i=F,e=$,a=D,o=function(){return T},u=1;else 4===t&&(i=O,e=S,a=x,o=function(){return P},u=2);Wn(n,{name:r,fromWireType:function(n){var r=P[n>>2],e=o(),a=e[n+4+r*t>>u],l=0;0!=a&&(l=a,e[n+4+r*t>>u]=0);var c=n+4;for(a=0;a<=r;++a){var f=n+4+a*t;if(0==e[f>>u]){if(c=i(c),void 0===d)var d=c;else d+=String.fromCharCode(0),d+=c;c=f+t}}return 0!=l&&(e[n+4+r*t>>u]=l),xt(n),d},toWireType:function(n,i){"string"!=typeof i&&En("Cannot pass non-string to C++ string type "+r);var o=a(i),l=St(4+o+t);return P[l>>2]=o>>u,e(i,l+4,o+t),null!==n&&n.push(xt,l),l},argPackAdvance:8,readValueFromPointer:yn,gd:function(n){xt(n)}})},_a:function(n,t,r,i,e,a){sn[n]={name:Pn(t),Ed:Xn(r,i),kd:Xn(e,a),Hd:[]}},u:function(n,t,r,i,e,a,o,u,l,c){sn[n].Hd.push({Md:Pn(t),Rd:r,Pd:Xn(i,e),Qd:a,Yd:o,Xd:Xn(u,l),Zd:c})},Na:function(n,t){Wn(n,{Td:!0,name:t=Pn(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},db:function(n,t,r){n=yt(n),t=ft(t,"emval::as");var i=[],e=lt(i);return A[r>>2]=e,t.toWireType(i,n)},Ya:function(n,t,r,i){n=yt(n),r=ht(t,r);for(var e=Array(t),a=0;a<t;++a){var o=r[a];e[a]=o.readValueFromPointer(i),i+=o.argPackAdvance}return lt(n=n.apply(void 0,e))},L:function(n,t,r,i,e){n=gt[n],t=yt(t),r=mt(r);var a=[];return A[i>>2]=lt(a),n(t,r,a,e)},E:function(n,t,r,i){(n=gt[n])(t=yt(t),r=mt(r),null,i)},fa:ut,Ga:function(n){return 0===n?lt(_t()):(n=mt(n),lt(_t()[n]))},y:function(n,t){for(var r=(t=ht(n,t))[0],i=r.name+"_$"+t.slice(1).map((function(n){return n.name})).join("_")+"$",e=["retType"],a=[r],o="",u=0;u<n-1;++u)o+=(0!==u?", ":"")+"arg"+u,e.push("argType"+u),a.push(t[1+u]);i="return function "+gn("methodCaller_"+i)+"(handle, name, destructors, args) {\n";var l=0;for(u=0;u<n-1;++u)i+=" var arg"+u+" = argType"+u+".readValueFromPointer(args"+(l?"+"+l:"")+");\n",l+=t[u+1].argPackAdvance;for(i+=" var rv = handle[name]("+o+");\n",u=0;u<n-1;++u)t[u+1].deleteObject&&(i+=" argType"+u+".deleteObject(arg"+u+");\n");return r.Td||(i+=" return retType.toWireType(destructors, rv);\n"),e.push(i+"};\n"),function(n){var t=gt.length;return gt.push(n),t}(n=it(e).apply(null,a))},bb:function(n){return n=mt(n),lt(t[n])},kb:function(n,t){return lt((n=yt(n))[t=yt(t)])},ha:function(n){4<n&&(ot[n].ld+=1)},ab:function(n,r,i,e){n=yt(n);var a=wt[r];if(!a){a="";for(var o=0;o<r;++o)a+=(0!==o?", ":"")+"arg"+o;var u="return function emval_allocator_"+r+"(constructor, argTypes, args) {\n";for(o=0;o<r;++o)u+="var argType"+o+" = requireRegisteredType(Module['HEAP32'][(argTypes >> 2) + "+o+'], "parameter '+o+'");\nvar arg'+o+" = argType"+o+".readValueFromPointer(args);\nargs += argType"+o+"['argPackAdvance'];\n";a=new Function("requireRegisteredType","Module","__emval_register",u+"var obj = new constructor("+a+");\nreturn __emval_register(obj);\n}\n")(ft,t,lt),wt[r]=a}return a(n,i,e)},Ia:function(){return lt([])},ib:function(n){return lt(mt(n))},cb:function(n){pn(ot[n].value),ut(n)},$a:function(n,t){return(n=yt(n))===yt(t)},A:function(n,t){return lt(n=(n=ft(n,"_emval_take_value")).readValueFromPointer(t))},ua:function(){J()},Ja:function(n,t,r){b.copyWithin(n,t,t+r)},Ka:function(n){var t=b.length;if(2147418112<n)return!1;for(var r=1;4>=r;r*=2){var i=t*(1+.2/r);i=Math.min(i,n+100663296),0<(i=Math.max(16777216,n,i))%65536&&(i+=65536-i%65536);n:{try{s.grow(Math.min(2147418112,i)-C.byteLength+65535>>16),M(s.buffer);var e=1;break n}catch(n){}e=void 0}if(e)return!0}return!1},Wa:function(n,t){var r=0;return jt().forEach((function(i,e){var a=t+r;for(e=A[n+4*e>>2]=a,a=0;a<i.length;++a)w[e++>>0]=i.charCodeAt(a);w[e>>0]=0,r+=i.length+1})),0},Xa:function(n,t){var r=jt();A[n>>2]=r.length;var i=0;return r.forEach((function(n){i+=n.length+1})),A[t>>2]=i,0},Sa:function(){return 0},Ra:function(n,t,r,i){return n=dn.ge(n),t=dn.fe(n,t,r),A[i>>2]=t,0},hb:function(){},va:function(n,t,r,i){for(var e=0,a=0;a<r;a++){for(var o=A[t+8*a>>2],c=A[t+(8*a+4)>>2],f=0;f<c;f++){var d=b[o+f],s=fn[n];0===d||10===d?((1===n?u:l)(v(s,0)),s.length=0):s.push(d)}e+=c}return A[i>>2]=e,0},a:function(){return 0|d},Ha:function(n,t){var r=zr();try{return Hr(n,t)}catch(n){if(qr(r),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},ca:function(n,t,r,i){var e=zr();try{return Vr(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},H:function(n,t){var r=zr();try{return xr(n,t)}catch(n){if(qr(r),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},na:function(n,t,r){var i=zr();try{return Ur(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},nb:function(n,t,r,i){var e=zr();try{return Yr(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},I:function(n,t,r){var i=zr();try{return Mr(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},_:function(n,t,r,i,e){var a=zr();try{return Rr(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},S:function(n,t,r,i){var e=zr();try{return Ir(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},v:function(n){var t=zr();try{return hr(n)}catch(n){if(qr(t),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},V:function(n,t){var r=zr();try{return Dr(n,t)}catch(n){if(qr(r),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},g:function(n,t){var r=zr();try{return vr(n,t)}catch(n){if(qr(r),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},$:function(n,t,r){var i=zr();try{return $r(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},Q:function(n,t,r){var i=zr();try{return Wr(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},mb:function(n,t,r,i){var e=zr();try{return Fr(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},c:function(n,t,r){var i=zr();try{return mr(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},lb:function(n,t,r,i){var e=zr();try{return Pr(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},ka:function(n,t,r,i,e){var a=zr();try{return kr(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},i:function(n,t,r,i){var e=zr();try{return gr(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},o:function(n,t,r,i,e){var a=zr();try{return _r(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},Aa:function(n,t,r,i,e,a){var o=zr();try{return Ar(n,t,r,i,e,a)}catch(n){if(qr(o),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},x:function(n,t,r,i,e,a){var o=zr();try{return Cr(n,t,r,i,e,a)}catch(n){if(qr(o),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},z:function(n,t,r,i,e,a,o){var u=zr();try{return wr(n,t,r,i,e,a,o)}catch(n){if(qr(u),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},O:function(n,t,r,i,e,a,o,u){var l=zr();try{return br(n,t,r,i,e,a,o,u)}catch(n){if(qr(l),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},Z:function(n,t,r,i,e,a,o,u,l){var c=zr();try{return jr(n,t,r,i,e,a,o,u,l)}catch(n){if(qr(c),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},ba:function(n,t,r,i,e,a,o,u,l,c,f,d){var s=zr();try{return Tr(n,t,r,i,e,a,o,u,l,c,f,d)}catch(n){if(qr(s),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},fb:function(n,t,r,i){var e=zr();try{return Er(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},gb:function(n,t,r){var i=zr();try{return Or(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},eb:function(n,t,r,i,e){var a=zr();try{return Sr(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},l:function(n){var t=zr();try{Ht(n)}catch(n){if(qr(t),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},k:function(n,t){var r=zr();try{Vt(n,t)}catch(n){if(qr(r),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},pa:function(n,t,r,i){var e=zr();try{yr(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},da:function(n,t,r){var i=zr();try{fr(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},pb:function(n,t,r,i){var e=zr();try{dr(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},ob:function(n,t,r,i,e,a,o,u){var l=zr();try{pr(n,t,r,i,e,a,o,u)}catch(n){if(qr(l),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},oa:function(n,t,r,i,e,a,o,u){var l=zr();try{sr(n,t,r,i,e,a,o,u)}catch(n){if(qr(l),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},e:function(n,t,r){var i=zr();try{Bt(n,t,r)}catch(n){if(qr(i),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},ma:function(n,t,r,i){var e=zr();try{ur(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},U:function(n,t,r,i,e){var a=zr();try{lr(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},T:function(n,t,r,i,e,a){var o=zr();try{cr(n,t,r,i,e,a)}catch(n){if(qr(o),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},la:function(n,t,r,i){var e=zr();try{er(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},jb:function(n,t,r,i,e){var a=zr();try{ar(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},Ea:function(n,t,r,i,e,a,o){var u=zr();try{or(n,t,r,i,e,a,o)}catch(n){if(qr(u),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},f:function(n,t,r,i){var e=zr();try{zt(n,t,r,i)}catch(n){if(qr(e),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},Fa:function(n,t,r,i,e){var a=zr();try{rr(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},ja:function(n,t,r,i,e,a){var o=zr();try{ir(n,t,r,i,e,a)}catch(n){if(qr(o),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},j:function(n,t,r,i,e){var a=zr();try{qt(n,t,r,i,e)}catch(n){if(qr(a),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},ea:function(n,t,r,i,e,a){var o=zr();try{tr(n,t,r,i,e,a)}catch(n){if(qr(o),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},Da:function(n,t,r,i,e,a,o){var u=zr();try{nr(n,t,r,i,e,a,o)}catch(n){if(qr(u),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},s:function(n,t,r,i,e,a){var o=zr();try{Nt(n,t,r,i,e,a)}catch(n){if(qr(o),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},w:function(n,t,r,i,e,a,o){var u=zr();try{Lt(n,t,r,i,e,a,o)}catch(n){if(qr(u),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},F:function(n,t,r,i,e,a,o,u){var l=zr();try{Gt(n,t,r,i,e,a,o,u)}catch(n){if(qr(l),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},M:function(n,t,r,i,e,a,o,u,l){var c=zr();try{Kt(n,t,r,i,e,a,o,u,l)}catch(n){if(qr(c),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},N:function(n,t,r,i,e,a,o,u,l,c){var f=zr();try{Jt(n,t,r,i,e,a,o,u,l,c)}catch(n){if(qr(f),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},J:function(n,t,r,i,e,a,o,u,l,c,f){var d=zr();try{Zt(n,t,r,i,e,a,o,u,l,c,f)}catch(n){if(qr(d),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},Ca:function(n,t,r,i,e,a,o,u,l,c,f,d){var s=zr();try{Xt(n,t,r,i,e,a,o,u,l,c,f,d)}catch(n){if(qr(s),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},aa:function(n,t,r,i,e,a,o,u,l,c,f,d,s,p,y,h){var v=zr();try{Qt(n,t,r,i,e,a,o,u,l,c,f,d,s,p,y,h)}catch(n){if(qr(v),n!==n+0&&"longjmp"!==n)throw n;Mt(1,0)}},r:function(n){return n},memory:s,R:function(n){return 0<=(n=+n)?+N(n+.5):+q(n-.5)},qa:function(n){return 0<=(n=+n)?+N(n+.5):+q(n-.5)},ia:function(n){d=0|n},Oa:function(n,t,r,i){return function(n,t,r,i){function e(n,t,r){for(n="number"==typeof n?n.toString():n||"";n.length<t;)n=r[0]+n;return n}function a(n,t){return e(n,t,"0")}function o(n,t){function r(n){return 0>n?-1:0<n?1:0}var i;return 0===(i=r(n.getFullYear()-t.getFullYear()))&&0===(i=r(n.getMonth()-t.getMonth()))&&(i=r(n.getDate()-t.getDate())),i}function u(n){switch(n.getDay()){case 0:return new Date(n.getFullYear()-1,11,29);case 1:return n;case 2:return new Date(n.getFullYear(),0,3);case 3:return new Date(n.getFullYear(),0,2);case 4:return new Date(n.getFullYear(),0,1);case 5:return new Date(n.getFullYear()-1,11,31);case 6:return new Date(n.getFullYear()-1,11,30)}}function l(n){n=Et(new Date(n.ed+1900,0,1),n.Cd);var t=new Date(n.getFullYear()+1,0,4),r=u(new Date(n.getFullYear(),0,4));return t=u(t),0>=o(r,n)?0>=o(t,n)?n.getFullYear()+1:n.getFullYear():n.getFullYear()-1}var c=A[i+40>>2];for(var f in i={ce:A[i>>2],be:A[i+4>>2],Ad:A[i+8>>2],ud:A[i+12>>2],pd:A[i+16>>2],ed:A[i+20>>2],Bd:A[i+24>>2],Cd:A[i+28>>2],ke:A[i+32>>2],ae:A[i+36>>2],de:c?m(c):""},r=m(r),c={"%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"})r=r.replace(new RegExp(f,"g"),c[f]);var d="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),s="January February March April May June July August September October November December".split(" ");for(f in c={"%a":function(n){return d[n.Bd].substring(0,3)},"%A":function(n){return d[n.Bd]},"%b":function(n){return s[n.pd].substring(0,3)},"%B":function(n){return s[n.pd]},"%C":function(n){return a((n.ed+1900)/100|0,2)},"%d":function(n){return a(n.ud,2)},"%e":function(n){return e(n.ud,2," ")},"%g":function(n){return l(n).toString().substring(2)},"%G":function(n){return l(n)},"%H":function(n){return a(n.Ad,2)},"%I":function(n){return 0==(n=n.Ad)?n=12:12<n&&(n-=12),a(n,2)},"%j":function(n){return a(n.ud+At(Tt(n.ed+1900)?Pt:kt,n.pd-1),3)},"%m":function(n){return a(n.pd+1,2)},"%M":function(n){return a(n.be,2)},"%n":function(){return"\n"},"%p":function(n){return 0<=n.Ad&&12>n.Ad?"AM":"PM"},"%S":function(n){return a(n.ce,2)},"%t":function(){return"\t"},"%u":function(n){return n.Bd||7},"%U":function(n){var t=new Date(n.ed+1900,0,1),r=0===t.getDay()?t:Et(t,7-t.getDay());return 0>o(r,n=new Date(n.ed+1900,n.pd,n.ud))?a(Math.ceil((31-r.getDate()+(At(Tt(n.getFullYear())?Pt:kt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%V":function(n){var t=new Date(n.ed+1901,0,4),r=u(new Date(n.ed+1900,0,4));t=u(t);var i=Et(new Date(n.ed+1900,0,1),n.Cd);return 0>o(i,r)?"53":0>=o(t,i)?"01":a(Math.ceil((r.getFullYear()<n.ed+1900?n.Cd+32-r.getDate():n.Cd+1-r.getDate())/7),2)},"%w":function(n){return n.Bd},"%W":function(n){var t=new Date(n.ed,0,1),r=1===t.getDay()?t:Et(t,0===t.getDay()?1:7-t.getDay()+1);return 0>o(r,n=new Date(n.ed+1900,n.pd,n.ud))?a(Math.ceil((31-r.getDate()+(At(Tt(n.getFullYear())?Pt:kt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%y":function(n){return(n.ed+1900).toString().substring(2)},"%Y":function(n){return n.ed+1900},"%z":function(n){var t=0<=(n=n.ae);return n=Math.abs(n)/60,(t?"+":"-")+String("0000"+(n/60*100+n%60)).slice(-4)},"%Z":function(n){return n.de},"%%":function(){return"%"}})0<=r.indexOf(f)&&(r=r.replace(new RegExp(f,"g"),c[f](i)));return(f=function(n){var t=Array(_(n)+1);return g(n,t,0,t.length),t}(r)).length>t?0:(w.set(f,n),f.length-1)}(n,t,r,i)},table:p},Dt=function(){function n(n){t.asm=n.exports,L--,t.monitorRunDependencies&&t.monitorRunDependencies(L),0==L&&(null!==G&&(clearInterval(G),G=null),K&&(n=K,K=null,n()))}function r(t){n(t.instance)}function i(n){return(c||"function"!=typeof fetch?new Promise((function(n){n(nn())})):fetch(X,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+X+"'";return n.arrayBuffer()})).catch((function(){return nn()}))).then((function(n){return WebAssembly.instantiate(n,e)})).then(n,(function(n){l("failed to asynchronously prepare wasm: "+n),J(n)}))}var e={a:$t};if(L++,t.monitorRunDependencies&&t.monitorRunDependencies(L),t.instantiateWasm)try{return t.instantiateWasm(e,n)}catch(n){return l("Module.instantiateWasm callback failed with error: "+n),!1}return function(){if(c||"function"!=typeof WebAssembly.instantiateStreaming||Z()||"function"!=typeof fetch)return i(r);fetch(X,{credentials:"same-origin"}).then((function(n){return WebAssembly.instantiateStreaming(n,e).then(r,(function(n){l("wasm streaming compile failed: "+n),l("falling back to ArrayBuffer instantiation"),i(r)}))}))}(),{}}();t.asm=Dt;var Ot=t.___wasm_call_ctors=function(){return(Ot=t.___wasm_call_ctors=t.asm.qb).apply(null,arguments)},St=t._malloc=function(){return(St=t._malloc=t.asm.rb).apply(null,arguments)},xt=t._free=function(){return(xt=t._free=t.asm.sb).apply(null,arguments)};t._main=function(){return(t._main=t.asm.tb).apply(null,arguments)};var Mt=t._setThrew=function(){return(Mt=t._setThrew=t.asm.ub).apply(null,arguments)},It=t.__ZSt18uncaught_exceptionv=function(){return(It=t.__ZSt18uncaught_exceptionv=t.asm.vb).apply(null,arguments)},Rt=t.___cxa_can_catch=function(){return(Rt=t.___cxa_can_catch=t.asm.wb).apply(null,arguments)},Ut=t.___cxa_is_pointer_type=function(){return(Ut=t.___cxa_is_pointer_type=t.asm.xb).apply(null,arguments)},Yt=t.___getTypeName=function(){return(Yt=t.___getTypeName=t.asm.yb).apply(null,arguments)};t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.zb).apply(null,arguments)};var Ht=t.dynCall_v=function(){return(Ht=t.dynCall_v=t.asm.Ab).apply(null,arguments)},Vt=t.dynCall_vi=function(){return(Vt=t.dynCall_vi=t.asm.Bb).apply(null,arguments)},Bt=t.dynCall_vii=function(){return(Bt=t.dynCall_vii=t.asm.Cb).apply(null,arguments)},zt=t.dynCall_viii=function(){return(zt=t.dynCall_viii=t.asm.Db).apply(null,arguments)},qt=t.dynCall_viiii=function(){return(qt=t.dynCall_viiii=t.asm.Eb).apply(null,arguments)},Nt=t.dynCall_viiiii=function(){return(Nt=t.dynCall_viiiii=t.asm.Fb).apply(null,arguments)},Lt=t.dynCall_viiiiii=function(){return(Lt=t.dynCall_viiiiii=t.asm.Gb).apply(null,arguments)},Gt=t.dynCall_viiiiiii=function(){return(Gt=t.dynCall_viiiiiii=t.asm.Hb).apply(null,arguments)},Kt=t.dynCall_viiiiiiii=function(){return(Kt=t.dynCall_viiiiiiii=t.asm.Ib).apply(null,arguments)},Jt=t.dynCall_viiiiiiiii=function(){return(Jt=t.dynCall_viiiiiiiii=t.asm.Jb).apply(null,arguments)},Zt=t.dynCall_viiiiiiiiii=function(){return(Zt=t.dynCall_viiiiiiiiii=t.asm.Kb).apply(null,arguments)},Xt=t.dynCall_viiiiiiiiiii=function(){return(Xt=t.dynCall_viiiiiiiiiii=t.asm.Lb).apply(null,arguments)},Qt=t.dynCall_viiiiiiiiiiiiiii=function(){return(Qt=t.dynCall_viiiiiiiiiiiiiii=t.asm.Mb).apply(null,arguments)},nr=t.dynCall_viiiifi=function(){return(nr=t.dynCall_viiiifi=t.asm.Nb).apply(null,arguments)},tr=t.dynCall_viiiid=function(){return(tr=t.dynCall_viiiid=t.asm.Ob).apply(null,arguments)},rr=t.dynCall_viiif=function(){return(rr=t.dynCall_viiif=t.asm.Pb).apply(null,arguments)},ir=t.dynCall_viiifi=function(){return(ir=t.dynCall_viiifi=t.asm.Qb).apply(null,arguments)},er=t.dynCall_viif=function(){return(er=t.dynCall_viif=t.asm.Rb).apply(null,arguments)},ar=t.dynCall_viifi=function(){return(ar=t.dynCall_viifi=t.asm.Sb).apply(null,arguments)},or=t.dynCall_viifiii=function(){return(or=t.dynCall_viifiii=t.asm.Tb).apply(null,arguments)},ur=t.dynCall_viid=function(){return(ur=t.dynCall_viid=t.asm.Ub).apply(null,arguments)},lr=t.dynCall_viidi=function(){return(lr=t.dynCall_viidi=t.asm.Vb).apply(null,arguments)},cr=t.dynCall_viidii=function(){return(cr=t.dynCall_viidii=t.asm.Wb).apply(null,arguments)},fr=t.dynCall_vif=function(){return(fr=t.dynCall_vif=t.asm.Xb).apply(null,arguments)},dr=t.dynCall_vifi=function(){return(dr=t.dynCall_vifi=t.asm.Yb).apply(null,arguments)},sr=t.dynCall_vifiiiff=function(){return(sr=t.dynCall_vifiiiff=t.asm.Zb).apply(null,arguments)},pr=t.dynCall_vifiifif=function(){return(pr=t.dynCall_vifiifif=t.asm._b).apply(null,arguments)};t.dynCall_vid=function(){return(t.dynCall_vid=t.asm.$b).apply(null,arguments)};var yr=t.dynCall_vidi=function(){return(yr=t.dynCall_vidi=t.asm.ac).apply(null,arguments)},hr=t.dynCall_i=function(){return(hr=t.dynCall_i=t.asm.bc).apply(null,arguments)},vr=t.dynCall_ii=function(){return(vr=t.dynCall_ii=t.asm.cc).apply(null,arguments)},mr=t.dynCall_iii=function(){return(mr=t.dynCall_iii=t.asm.dc).apply(null,arguments)},gr=t.dynCall_iiii=function(){return(gr=t.dynCall_iiii=t.asm.ec).apply(null,arguments)},_r=t.dynCall_iiiii=function(){return(_r=t.dynCall_iiiii=t.asm.fc).apply(null,arguments)},Cr=t.dynCall_iiiiii=function(){return(Cr=t.dynCall_iiiiii=t.asm.gc).apply(null,arguments)},wr=t.dynCall_iiiiiii=function(){return(wr=t.dynCall_iiiiiii=t.asm.hc).apply(null,arguments)},br=t.dynCall_iiiiiiii=function(){return(br=t.dynCall_iiiiiiii=t.asm.ic).apply(null,arguments)},jr=t.dynCall_iiiiiiiii=function(){return(jr=t.dynCall_iiiiiiiii=t.asm.jc).apply(null,arguments)};t.dynCall_iiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiii=t.asm.kc).apply(null,arguments)};var Tr=t.dynCall_iiiiiiiiiiii=function(){return(Tr=t.dynCall_iiiiiiiiiiii=t.asm.lc).apply(null,arguments)};t.dynCall_iiiiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiiiii=t.asm.mc).apply(null,arguments)};var Ar=t.dynCall_iiiiid=function(){return(Ar=t.dynCall_iiiiid=t.asm.nc).apply(null,arguments)},Pr=t.dynCall_iiif=function(){return(Pr=t.dynCall_iiif=t.asm.oc).apply(null,arguments)},kr=t.dynCall_iiifi=function(){return(kr=t.dynCall_iiifi=t.asm.pc).apply(null,arguments)},Er=t.dynCall_iij=function(){return(Er=t.dynCall_iij=t.asm.qc).apply(null,arguments)},Wr=t.dynCall_iif=function(){return(Wr=t.dynCall_iif=t.asm.rc).apply(null,arguments)},Fr=t.dynCall_iiff=function(){return(Fr=t.dynCall_iiff=t.asm.sc).apply(null,arguments)};t.dynCall_iiffff=function(){return(t.dynCall_iiffff=t.asm.tc).apply(null,arguments)};var $r=t.dynCall_iid=function(){return($r=t.dynCall_iid=t.asm.uc).apply(null,arguments)},Dr=t.dynCall_if=function(){return(Dr=t.dynCall_if=t.asm.vc).apply(null,arguments)};t.dynCall_id=function(){return(t.dynCall_id=t.asm.wc).apply(null,arguments)};var Or=t.dynCall_jii=function(){return(Or=t.dynCall_jii=t.asm.xc).apply(null,arguments)},Sr=t.dynCall_jiiii=function(){return(Sr=t.dynCall_jiiii=t.asm.yc).apply(null,arguments)},xr=t.dynCall_fi=function(){return(xr=t.dynCall_fi=t.asm.zc).apply(null,arguments)},Mr=t.dynCall_fii=function(){return(Mr=t.dynCall_fii=t.asm.Ac).apply(null,arguments)},Ir=t.dynCall_fiii=function(){return(Ir=t.dynCall_fiii=t.asm.Bc).apply(null,arguments)},Rr=t.dynCall_fiifi=function(){return(Rr=t.dynCall_fiifi=t.asm.Cc).apply(null,arguments)},Ur=t.dynCall_fif=function(){return(Ur=t.dynCall_fif=t.asm.Dc).apply(null,arguments)},Yr=t.dynCall_fiff=function(){return(Yr=t.dynCall_fiff=t.asm.Ec).apply(null,arguments)},Hr=t.dynCall_di=function(){return(Hr=t.dynCall_di=t.asm.Fc).apply(null,arguments)},Vr=t.dynCall_diii=function(){return(Vr=t.dynCall_diii=t.asm.Gc).apply(null,arguments)};t.dynCall_ddi=function(){return(t.dynCall_ddi=t.asm.Hc).apply(null,arguments)};var Br,zr=t.stackSave=function(){return(zr=t.stackSave=t.asm.Ic).apply(null,arguments)},qr=t.stackRestore=function(){return(qr=t.stackRestore=t.asm.Jc).apply(null,arguments)};function Nr(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Lr(){function n(){if(!Br&&(Br=!0,t.calledRun=!0,!y)){if(R(Y),R(H),t.onRuntimeInitialized&&t.onRuntimeInitialized(),Gr){var n=t._main;try{var r=n(0,0);f&&0===r||(!f&&(y=!0,t.onExit)&&t.onExit(r),a(r,new Nr(r)))}catch(t){t instanceof Nr||("unwind"==t?f=!0:((n=t)&&"object"==typeof t&&t.stack&&(n=[t,t.stack]),l("exception thrown: "+n),a(1,t)))}}if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)n=t.postRun.shift(),B.unshift(n);R(B)}}if(!(0<L)){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)z();R(U),0<L||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),n()}),1)):n())}}if(t.dynCall_dii=function(){return(t.dynCall_dii=t.asm.Kc).apply(null,arguments)},t.dynCall_viiiiiiiiiiii=function(){return(t.dynCall_viiiiiiiiiiii=t.asm.Lc).apply(null,arguments)},t.dynCall_iiidii=function(){return(t.dynCall_iiidii=t.asm.Mc).apply(null,arguments)},t.dynCall_fiiii=function(){return(t.dynCall_fiiii=t.asm.Nc).apply(null,arguments)},t.dynCall_iiidi=function(){return(t.dynCall_iiidi=t.asm.Oc).apply(null,arguments)},t.dynCall_diiii=function(){return(t.dynCall_diiii=t.asm.Pc).apply(null,arguments)},t.dynCall_iiiif=function(){return(t.dynCall_iiiif=t.asm.Qc).apply(null,arguments)},t.dynCall_iidiiii=function(){return(t.dynCall_iidiiii=t.asm.Rc).apply(null,arguments)},t.dynCall_viijii=function(){return(t.dynCall_viijii=t.asm.Sc).apply(null,arguments)},t.dynCall_viiifif=function(){return(t.dynCall_viiifif=t.asm.Tc).apply(null,arguments)},t.dynCall_vifffiii=function(){return(t.dynCall_vifffiii=t.asm.Uc).apply(null,arguments)},t.dynCall_vifffiifif=function(){return(t.dynCall_vifffiifif=t.asm.Vc).apply(null,arguments)},t.dynCall_fifi=function(){return(t.dynCall_fifi=t.asm.Wc).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.Xc).apply(null,arguments)},t.dynCall_iiiiiijj=function(){return(t.dynCall_iiiiiijj=t.asm.Yc).apply(null,arguments)},t.dynCall_iiiiij=function(){return(t.dynCall_iiiiij=t.asm.Zc).apply(null,arguments)},t.dynCall_iiiiijj=function(){return(t.dynCall_iiiiijj=t.asm._c).apply(null,arguments)},t.asm=Dt,t.then=function(n){if(Br)n(t);else{var r=t.onRuntimeInitialized;t.onRuntimeInitialized=function(){r&&r(),n(t)}}return t},K=function n(){Br||Lr(),Br||(K=n)},t.run=Lr,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();var Gr=!0;return t.noInitialRun&&(Gr=!1),f=!0,Lr(),n});"object"==typeof exports&&"object"==typeof module?module.exports=ConfiguratorKernel:"function"==typeof define&&define.amd?define([],(function(){return ConfiguratorKernel})):"object"==typeof exports&&(exports.ConfiguratorKernel=ConfiguratorKernel);
|