@roomle/web-sdk 3.10.0-alpha.1 → 3.10.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/lib/ConfiguratorKernel.wasm +0 -0
  2. package/lib/RoomleCore.wasm +0 -0
  3. package/lib/RoomleToolsCore.wasm +0 -0
  4. package/lib/{api-DVBX8_mw.mjs → api-BXU3pZnX.mjs} +2 -2
  5. package/lib/{api-DVBX8_mw.mjs.map → api-BXU3pZnX.mjs.map} +1 -1
  6. package/lib/asset-loader.worker-C911tbNL.mjs.map +1 -1
  7. package/lib/banana-for-scale-B_LIHI9q.mjs.map +1 -1
  8. package/lib/budgeteer.sw-D3VxiASa.mjs.map +1 -1
  9. package/lib/{component-dimensioning-DC1Lxdp-.mjs → component-dimensioning-5iIw1f_3.mjs} +2 -2
  10. package/lib/{component-dimensioning-DC1Lxdp-.mjs.map → component-dimensioning-5iIw1f_3.mjs.map} +1 -1
  11. package/lib/{component-raycast-helper-Wpay-VAg.mjs → component-raycast-helper-O27_buEg.mjs} +2 -2
  12. package/lib/{component-raycast-helper-Wpay-VAg.mjs.map → component-raycast-helper-O27_buEg.mjs.map} +1 -1
  13. package/lib/configurator-BIyxKNI0.mjs +2 -0
  14. package/lib/{configurator-DU1NHt_a.mjs → configurator-BwxEIDv7.mjs} +4 -4
  15. package/lib/{configurator-DU1NHt_a.mjs.map → configurator-BwxEIDv7.mjs.map} +1 -1
  16. package/lib/{glb-viewer-BPfa4Fz5.mjs → glb-viewer-C0Et5SO6.mjs} +4 -4
  17. package/lib/{glb-viewer-BPfa4Fz5.mjs.map → glb-viewer-C0Et5SO6.mjs.map} +1 -1
  18. package/lib/glb-viewer-DfMzLkqg.mjs +2 -0
  19. package/lib/{highlight-coordinator-BcJdy2_o.mjs → highlight-coordinator-DdQ8yNjO.mjs} +2 -2
  20. package/lib/{highlight-coordinator-BcJdy2_o.mjs.map → highlight-coordinator-DdQ8yNjO.mjs.map} +1 -1
  21. package/lib/{homag-intelligence-D8Lm2GMZ.mjs → homag-intelligence-DrKayEjK.mjs} +3 -3
  22. package/lib/{homag-intelligence-D8Lm2GMZ.mjs.map → homag-intelligence-DrKayEjK.mjs.map} +1 -1
  23. package/lib/kernel-C7YDLxq8.mjs.map +1 -1
  24. package/lib/{main-DXPoPkIG.mjs → main-D2BulNeN.mjs} +3759 -3544
  25. package/lib/main-D2BulNeN.mjs.map +1 -0
  26. package/lib/{material-viewer-CNTiw7G9.mjs → material-viewer-CZQwo8Nc.mjs} +8 -8
  27. package/lib/material-viewer-CZQwo8Nc.mjs.map +1 -0
  28. package/lib/packages-BtLLQZLz.mjs +4 -0
  29. package/lib/planner-BF94NrwH.mjs +2 -0
  30. package/lib/{planner-CWQ8F70q.mjs → planner-OgIPgZ1m.mjs} +3 -3
  31. package/lib/{planner-CWQ8F70q.mjs.map → planner-OgIPgZ1m.mjs.map} +1 -1
  32. package/lib/roomle-headless.d.ts +12 -3
  33. package/lib/roomle-headless.js +8 -8
  34. package/lib/roomle-sdk.d.ts +12 -3
  35. package/lib/roomle-sdk.js +7 -7
  36. package/lib/{roomle-webgpu-renderer-CmqMWt2K.mjs → roomle-webgpu-renderer-5-aG3CMs.mjs} +2 -2
  37. package/lib/{roomle-webgpu-renderer-CmqMWt2K.mjs.map → roomle-webgpu-renderer-5-aG3CMs.mjs.map} +1 -1
  38. package/lib/{scene-renderer-6t0p4vb4.mjs → scene-renderer-DvXjoKHZ.mjs} +2 -2
  39. package/lib/{scene-renderer-6t0p4vb4.mjs.map → scene-renderer-DvXjoKHZ.mjs.map} +1 -1
  40. package/lib/{script-loader-DovMlDVR.mjs → script-loader-CScqyQhc.mjs} +2 -2
  41. package/lib/{script-loader-DovMlDVR.mjs.map → script-loader-CScqyQhc.mjs.map} +1 -1
  42. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  43. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  44. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  45. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  46. package/lib/{stats-helper-B9MDLRpR.mjs → stats-helper-BYi5TI_H.mjs} +2 -2
  47. package/lib/{stats-helper-B9MDLRpR.mjs.map → stats-helper-BYi5TI_H.mjs.map} +1 -1
  48. package/lib/{threejs-utils-ZKvz9Qno.mjs → threejs-utils-C4J_TZ0o.mjs} +14 -14
  49. package/lib/{threejs-utils-ZKvz9Qno.mjs.map → threejs-utils-C4J_TZ0o.mjs.map} +1 -1
  50. package/lib/{tools-core-Ks33p1cu.mjs → tools-core-BCkbEbim.mjs} +3 -3
  51. package/lib/{tools-core-Ks33p1cu.mjs.map → tools-core-BCkbEbim.mjs.map} +1 -1
  52. package/package.json +1 -1
  53. package/lib/configurator-BRZ1-AQZ.mjs +0 -2
  54. package/lib/glb-viewer-Bllsu2_m.mjs +0 -2
  55. package/lib/main-DXPoPkIG.mjs.map +0 -1
  56. package/lib/material-viewer-CNTiw7G9.mjs.map +0 -1
  57. package/lib/packages-D61uTgIK.mjs +0 -4
  58. package/lib/planner-BO7I35KU.mjs +0 -2
@@ -1,9 +1,9 @@
1
- import { A as e, D as t, M as n, U as r, c as i, et as a, l as o } from "./threejs-utils-ZKvz9Qno.mjs";
1
+ import { A as e, D as t, M as n, U as r, c as i, l as a, tt as o } from "./threejs-utils-C4J_TZ0o.mjs";
2
2
  import { $r as s, An as c, cn as l, f as u, oi as d, p as f, w as p } from "./three.core-tV_4n8Wg.mjs";
3
3
  import { n as m, r as h, t as g } from "./decorate-C9r0zXzz.mjs";
4
4
  import { V as _ } from "./common-utils-B9PC_rvS.mjs";
5
- import { $ as v, L as y, Q as b, R as x, T as S, Y as C, _ as w, at as T, et as E, f as D, g as O, h as k, it as A, n as j, ot as M, q as N, r as P, rt as F, t as I } from "./main-DXPoPkIG.mjs";
6
- import { t as L } from "./script-loader-DovMlDVR.mjs";
5
+ import { $ as v, L as y, Q as b, R as x, T as S, Y as C, _ as w, at as T, et as E, f as D, g as O, h as k, it as A, n as j, ot as M, q as N, r as P, rt as F, t as I } from "./main-D2BulNeN.mjs";
6
+ import { t as L } from "./script-loader-CScqyQhc.mjs";
7
7
  //#region packages/common-core/src/cameracontrol/material-viewer-camera-behaviour.ts
8
8
  var R = class extends D {
9
9
  get cameraControl() {
@@ -36,7 +36,7 @@ var R = class extends D {
36
36
  }
37
37
  }
38
38
  _initScene() {
39
- let e = new f(B.x, B.y, B.z, 100, 100, 100), t = a.createMeshPhysicalMaterial({ color: this._initData.colors.PRIMARY });
39
+ let e = new f(B.x, B.y, B.z, 100, 100, 100), t = o.createMeshPhysicalMaterial({ color: this._initData.colors.PRIMARY });
40
40
  this._setMaterial(t), this._mesh = new l(e, this._material), this._mesh.castShadow = !0, this._mesh.position.setY(B.y / 2), this._scene.add(this._mesh);
41
41
  let { initialFloorMaterial: n } = this._initData;
42
42
  if (n ? this.changeFloorMaterialById(n) : this._environment = new w(this._scene, void 0, new p(16777215)), this.cameraBehaviour.cameraControl instanceof S) {
@@ -135,14 +135,14 @@ var R = class extends D {
135
135
  }
136
136
  async changeFloorMaterialById(e) {
137
137
  let t = await this._rapiAccess.getMaterial(e);
138
- return (!this._environment || !(this._environment instanceof O)) && (this._environment = new O(this._scene, this._environment, !0)), new Promise((e, n) => {
138
+ return (!this._environment || !(this._environment instanceof O)) && (this._environment = new O(this._scene, this._environment, !this._initData.featureFlags.webGpu)), new Promise((e, n) => {
139
139
  this._environment.changeFloorMaterial(t, this._maxAnisotropy).then(() => {
140
140
  this._requestRender(), e();
141
141
  }, n);
142
142
  });
143
143
  }
144
144
  async addTexture(t, n) {
145
- let r = B.x * 100, a = B.y * 100, s = r / (t.mmWidth === 0 ? 1 : t.mmWidth), c = a / (t.mmHeight === 0 ? 1 : t.mmHeight), l = e(this._renderer);
145
+ let r = B.x * 100, o = B.y * 100, s = r / (t.mmWidth === 0 ? 1 : t.mmWidth), c = o / (t.mmHeight === 0 ? 1 : t.mmHeight), l = e(this._renderer);
146
146
  if (n) {
147
147
  let e = new Image();
148
148
  e.src = n;
@@ -150,7 +150,7 @@ var R = class extends D {
150
150
  r.image = e, e.onload = function() {
151
151
  r.needsUpdate = !0;
152
152
  }, i(r, t, this._material, this._maxAnisotropy, s, c, l);
153
- } else await o(t.image, t, this._material, this._maxAnisotropy, s, c, l);
153
+ } else await a(t.image, t, this._material, this._maxAnisotropy, s, c, l);
154
154
  this._requestRender();
155
155
  }
156
156
  removeTexture(e) {
@@ -294,4 +294,4 @@ var U = class extends C {
294
294
  //#endregion
295
295
  export { G as MaterialViewer };
296
296
 
297
- //# sourceMappingURL=material-viewer-CNTiw7G9.mjs.map
297
+ //# sourceMappingURL=material-viewer-CZQwo8Nc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-viewer-CZQwo8Nc.mjs","names":[],"sources":["../../packages/common-core/src/cameracontrol/material-viewer-camera-behaviour.ts","../../packages/material-viewer/src/webgl/material-viewer-scene-manager.ts","../../packages/material-viewer/src/roomle-material-viewer.ts","../../packages/material-viewer/src/roomle-material-viewer-ui-callback.ts","../../packages/material-viewer/src/utils/injectables.ts","../../packages/material-viewer/src/material-viewer.ts"],"sourcesContent":["import CameraBehaviour from './camera-behaviour';\nimport type AdjustableCameraControl3D from '../../../glb-viewer-core/src/camera-control/adjustable-camera-control-3d';\n\nexport default class MaterialViewerCameraBehaviour extends CameraBehaviour {\n public get cameraControl(): AdjustableCameraControl3D {\n return this._cameraControl as AdjustableCameraControl3D;\n }\n}\n","import SceneManager from '../../../common-core/src/webgl/scene-manager';\nimport type { GenericGUIParamFolder } from '../../../common-core/src/webgl/gui-types';\nimport type { RoomleWebGPURenderer } from '../../../common-core/src/webgpu/roomle-webgpu-renderer';\nimport type { CanvasOffset } from '../../../common-core/src/common-interfaces';\nimport type InputManager from '../../../common-core/src/input/input-manager';\nimport inject from '../../../common-core/src/di/inject';\nimport CameraControl3D from '../../../common-core/src/cameracontrol/camera-control-3d';\nimport type {\n RapiId,\n RapiMaterial,\n RapiMaterialShading,\n RapiTexture,\n} from '../../../typings/rapi-types';\nimport { RAPI_TEXTURE_TYPE } from '../../../typings/rapi-types';\nimport {\n addExistingTexture,\n addTexture,\n getWebGLGUI,\n getMaterialShading,\n setMaterial,\n getMaxTextures,\n} from '../../../common-core/src/utils/threejs-utils';\nimport { CAMERA_TYPE } from '../../../common-core/src/cameracontrol/camera-type';\nimport type ConfiguratorMeshGenerator from '../../../configurator-core/src/webgl/configurator-mesh-generator';\nimport type RoomleMaterialViewerUiCallback from '../roomle-material-viewer-ui-callback';\nimport BackgroundEnvironment from '../../../common-core/src/environment/background-environment';\nimport FloorEnvironment from '../../../configurator-core/src/webgl/environment/floor-environment';\nimport { type RapiAccess } from '../../../common-core/src/rapi-access';\nimport DynamicLightSettingLoader, {\n PREDEFINED_LIGHTSETTING,\n} from '../../../common-core/src/lightsetting/dynamic-light-setting-loader';\nimport { CANVAS_ID } from '../../../common-core/src/utils/dom-helper';\nimport type { Enumify } from '#/common/src/utils/types';\nimport type { MeshPhysicalMaterial } from 'three';\nimport {\n Box3,\n BoxGeometry,\n Color,\n DoubleSide,\n FrontSide,\n Mesh,\n PlaneGeometry,\n SphereGeometry,\n Texture,\n} from 'three';\nimport MaterialCreator from '../../../common-core/src/utils/material-creator';\nimport MaterialViewerCameraBehaviour from '../../../common-core/src/cameracontrol/material-viewer-camera-behaviour';\n\nexport const enum GEOMETRY {\n CUBE = 'cube',\n SPHERE = 'sphere',\n PLANE_VERTICAL = 'plane_vertical',\n PLANE_HORIZONTAL = 'plane_horizontal',\n}\n\nconst SIZE = { x: 1, y: 1, z: 1 };\nexport default class MaterialViewerSceneManager extends SceneManager {\n @inject\n private _inputManager: InputManager;\n\n @inject\n private _configuratorMeshGenerator: ConfiguratorMeshGenerator;\n\n @inject\n private _roomleMaterialViewerUiCallback: RoomleMaterialViewerUiCallback;\n\n @inject\n private _rapiAccess: RapiAccess;\n\n private _gui: GenericGUIParamFolder | null;\n private _guiGeometryFolder: GenericGUIParamFolder | undefined;\n private _guiMaterialFolder: GenericGUIParamFolder | undefined;\n private _mesh: Mesh;\n private _material: MeshPhysicalMaterial;\n private _sceneParams = {\n type: GEOMETRY.CUBE,\n };\n private _materialParams = {\n color: '#ffffff',\n metallic: 0.5,\n alpha: 0,\n alphaCutoff: 0,\n doubleSided: false,\n };\n\n constructor(creator: string, offset: CanvasOffset) {\n super(creator, offset, CANVAS_ID.RMV, CAMERA_TYPE.CAMERA_3D);\n\n // Use lazy initialization for renderer-dependent settings\n this._initializeRendererSettings();\n\n this._initScene();\n }\n\n // If renderer is not ready yet, will retry on next tick.\n // This is necessary for dynamic WebGPU renderer imports.\n private _initializeRendererSettings(): void {\n if (!this._renderer) {\n // Retry on next tick if renderer not ready\n setTimeout(() => this._initializeRendererSettings(), 0);\n return;\n }\n\n const maxTextures = getMaxTextures(this._renderer);\n if (maxTextures > 8) {\n const lightSource =\n DynamicLightSettingLoader.createDynamicLightSettingSource(\n null,\n PREDEFINED_LIGHTSETTING.CAMERA,\n );\n if (lightSource) {\n this.loadDynamicLightSetting(lightSource);\n }\n }\n }\n\n private _initScene() {\n const geometry = new BoxGeometry(SIZE.x, SIZE.y, SIZE.z, 100, 100, 100);\n const meshPhysicalMaterial = MaterialCreator.createMeshPhysicalMaterial({\n color: this._initData.colors.PRIMARY,\n });\n this._setMaterial(meshPhysicalMaterial);\n this._mesh = new Mesh(geometry, this._material);\n this._mesh.castShadow = true;\n this._mesh.position.setY(SIZE.y / 2);\n this._scene.add(this._mesh);\n\n const { initialFloorMaterial } = this._initData;\n\n if (initialFloorMaterial) {\n this.changeFloorMaterialById(initialFloorMaterial);\n } else {\n this._environment = new BackgroundEnvironment(\n this._scene,\n undefined,\n new Color(0xffffff),\n );\n }\n\n if (this.cameraBehaviour.cameraControl instanceof CameraControl3D) {\n const boundingBox = new Box3();\n boundingBox.setFromObject(this._mesh);\n console.trace('reset camera');\n this.cameraBehaviour.cameraControl.updateAndReset(boundingBox);\n }\n\n void this.showGUI();\n }\n\n public loadMaterialId(materialId: RapiId): Promise<void> {\n return new Promise<void>((resolve) => {\n this._configuratorMeshGenerator\n .loadMaterial(materialId, SIZE.x * 1000, SIZE.y * 1000)\n .then((material) => {\n this._setMaterial(material as MeshPhysicalMaterial);\n this._mesh.material = this._material;\n this._updateGUI();\n this._requestRender();\n resolve();\n });\n });\n }\n\n public loadMaterial(material: RapiMaterial): Promise<void> {\n return new Promise<void>((resolve) => {\n // eslint-disable-next-line\n if (!material.__rapi_path__) {\n // eslint-disable-next-line\n material.__rapi_path__ = 'materials';\n }\n this._mesh.material = this._material;\n this._configuratorMeshGenerator\n .loadTextures(material, this._material, SIZE.x * 100, SIZE.y * 100)\n .then(() => {\n this._updateGUI();\n this._requestRender();\n });\n resolve();\n });\n }\n\n public loadMaterialShading(\n materialShading: RapiMaterialShading,\n ): Promise<void> {\n return new Promise<void>((resolve) => {\n let material = { shading: materialShading };\n this._setMaterial(setMaterial(this._material, material as RapiMaterial));\n this._mesh.material = this._material;\n this._updateGUI();\n this._requestRender();\n resolve();\n });\n }\n\n private _setMaterial(material: MeshPhysicalMaterial) {\n this._material = material;\n this._materialParams.alpha = material.opacity;\n this._materialParams.alphaCutoff = material.alphaTest;\n this._materialParams.color = '#' + material.color.getHexString();\n this._materialParams.doubleSided = material.side === DoubleSide;\n this._materialParams.metallic =\n material.metalness === 1 ? 1 : material.reflectivity;\n }\n\n public getMaterialShading(version: number = 1): RapiMaterialShading {\n return getMaterialShading(this._material, version);\n }\n\n protected createCameraControl(\n _mode: Enumify<typeof CAMERA_TYPE>,\n _offset: CanvasOffset,\n ) {\n this._changeCameraBehaviour(\n new MaterialViewerCameraBehaviour(\n new CameraControl3D(this._creator_, this._getInputManager(), undefined),\n this._cameraBehaviourState,\n ),\n );\n }\n\n protected _getInputManager(): InputManager {\n return this._inputManager;\n }\n\n public sceneChanged(): void {\n //override when needed\n }\n\n public getBounds(): Box3 | null {\n if (!this._mesh) {\n return null;\n }\n return new Box3().setFromObject(this._mesh);\n }\n\n getGeometryBounds(): Box3 | null {\n return null;\n }\n\n protected initializeWebGLGUI() {\n this._gui = getWebGLGUI();\n this._updateGUI();\n }\n\n protected override initializeWebGPUGUI(\n roomleWebGPURenderer: RoomleWebGPURenderer,\n ): void {\n super.initializeWebGPUGUI(roomleWebGPURenderer);\n this._gui =\n roomleWebGPURenderer.getOrCreateGUIParameters('Material Viewer');\n this._updateGUI();\n }\n\n private _updateGUI() {\n const gui = this._gui;\n if (!gui) {\n return;\n }\n if (!this._guiGeometryFolder) {\n this._guiGeometryFolder = gui.addFolder('Geometry');\n this._guiGeometryFolder\n .add(this._sceneParams, 'type', {\n Cube: GEOMETRY.CUBE,\n Sphere: GEOMETRY.SPHERE,\n PlaneVertical: GEOMETRY.PLANE_VERTICAL,\n PlaneHorizontal: GEOMETRY.PLANE_HORIZONTAL,\n })\n .onChange((type: number) => {\n console.log(type);\n this._setGeometry();\n });\n }\n if (this._material) {\n if (!this._guiMaterialFolder) {\n this._guiMaterialFolder = gui.addFolder('Material');\n this._guiMaterialFolder\n .addColor(this._materialParams, 'color')\n .onChange((color: string) => {\n this._material.color = new Color(color);\n this._shadingChanged();\n });\n this._guiMaterialFolder\n .add(this._materialParams, 'metallic', 0, 1, 0.01)\n .onChange((metallic: number) => {\n this._material.metalness = metallic === 1 ? 1 : 0.5;\n this._material.reflectivity = metallic || 0.5;\n this._shadingChanged();\n });\n this._guiMaterialFolder\n .add(this._material, 'roughness', 0, 1, 0.01)\n .onChange((_roughness: number) => {\n this._shadingChanged();\n });\n this._guiMaterialFolder\n .add(this._material, 'transmission', 0, 1, 0.01)\n .onChange((transmission: number) => {\n this._material.transmission = transmission;\n if (transmission > 0) {\n this._material.opacity = 1;\n this._material.alphaTest = 0.5;\n this._material.depthWrite = true;\n this._material.metalness = 0;\n }\n this._mesh.castShadow = !this._material.transparent;\n this._shadingChanged();\n });\n this._guiMaterialFolder\n .add(this._materialParams, 'alpha', 0, 1, 0.01)\n .onChange((alpha: number) => {\n this._material.transparent = alpha < 1;\n this._material.opacity = alpha;\n this._material.depthWrite = alpha >= 1;\n this._mesh.castShadow = !this._material.transparent;\n this._shadingChanged();\n });\n this._guiMaterialFolder\n .add(this._materialParams, 'alphaCutoff', 0, 1, 0.01)\n .onChange((alphaCutoff: number) => {\n if (alphaCutoff) {\n this._material.alphaTest = alphaCutoff;\n } else {\n this._material.alphaTest = 0;\n }\n this._shadingChanged();\n });\n this._guiMaterialFolder\n .add(this._materialParams, 'doubleSided')\n .onChange((doubleSided: boolean) => {\n if (doubleSided) {\n this._material.side = DoubleSide;\n } else {\n this._material.side = FrontSide;\n }\n this._shadingChanged();\n });\n }\n }\n }\n\n private _shadingChanged() {\n this._roomleMaterialViewerUiCallback.onMaterialShadingChanged(\n getMaterialShading(this._material),\n );\n this._requestRender();\n }\n\n public setGeometry(type: GEOMETRY) {\n this._sceneParams.type = type;\n this._setGeometry();\n }\n\n private _setGeometry() {\n let geometry;\n if (this._sceneParams.type === GEOMETRY.CUBE) {\n geometry = new BoxGeometry(SIZE.x, SIZE.y, SIZE.z, 100, 100, 100);\n } else if (this._sceneParams.type === GEOMETRY.SPHERE) {\n geometry = new SphereGeometry(0.5, 100, 100);\n } else if (this._sceneParams.type === GEOMETRY.PLANE_HORIZONTAL) {\n geometry = new PlaneGeometry(SIZE.x, SIZE.z);\n geometry.rotateX(-Math.PI / 2);\n } else if (this._sceneParams.type === GEOMETRY.PLANE_VERTICAL) {\n geometry = new PlaneGeometry(SIZE.x, SIZE.z);\n } else {\n console.error(\n `MaterialViewerSceneManager: unexpected geometry type \"${this._sceneParams.type}\"`,\n );\n return;\n }\n this._mesh.geometry = geometry;\n this._renderEverything();\n }\n\n public async changeFloorMaterialById(materialId: string): Promise<void> {\n const material = await this._rapiAccess.getMaterial(materialId);\n if (\n !this._environment ||\n !(this._environment instanceof FloorEnvironment)\n ) {\n this._environment = new FloorEnvironment(\n this._scene,\n this._environment,\n !this._initData.featureFlags.webGpu,\n );\n }\n return new Promise((resolve, reject) => {\n (this._environment as FloorEnvironment)\n .changeFloorMaterial(material, this._maxAnisotropy)\n .then(() => {\n this._requestRender();\n resolve();\n }, reject);\n });\n }\n\n public async addTexture(rapiTexture: RapiTexture, base64Image?: string) {\n const width = SIZE.x * 100;\n const height = SIZE.y * 100;\n const repeatWidth =\n width / (rapiTexture.mmWidth === 0 ? 1 : rapiTexture.mmWidth);\n const repeatHeight =\n height / (rapiTexture.mmHeight === 0 ? 1 : rapiTexture.mmHeight);\n const maxTextures = getMaxTextures(this._renderer);\n if (base64Image) {\n const image = new Image();\n image.src = base64Image;\n const texture = new Texture();\n texture.image = image;\n image.onload = function () {\n texture.needsUpdate = true;\n };\n addExistingTexture(\n texture,\n rapiTexture,\n this._material,\n this._maxAnisotropy,\n repeatWidth,\n repeatHeight,\n maxTextures,\n );\n } else {\n await addTexture(\n rapiTexture.image,\n rapiTexture,\n this._material,\n this._maxAnisotropy,\n repeatWidth,\n repeatHeight,\n maxTextures,\n );\n }\n this._requestRender();\n }\n\n public removeTexture(rapiTexture: RapiTexture) {\n if (rapiTexture.mapping === RAPI_TEXTURE_TYPE.ORM) {\n this._material.aoMap = null;\n this._material.roughnessMap = null;\n this._material.metalnessMap = null;\n }\n if (\n rapiTexture.mapping === RAPI_TEXTURE_TYPE.RGB ||\n rapiTexture.mapping === RAPI_TEXTURE_TYPE.RGBA\n ) {\n this._material.map = null;\n }\n if (rapiTexture.mapping === RAPI_TEXTURE_TYPE.XYZ) {\n this._material.normalMap = null;\n }\n this._material.needsUpdate = true;\n this._requestRender();\n }\n\n public clearCache() {\n this._configuratorMeshGenerator.clear();\n }\n}\n","import type ScriptLoader from '../../common-core/src/script-loader';\nimport type DomHelper from '../../common-core/src/utils/dom-helper';\nimport inject from '../../common-core/src/di/inject';\nimport type { ExternalEmbeddable, GlobalAPI } from '../../common-core/src/main';\nimport type { Main } from '../../common-core/src/main';\nimport type { Context } from '../../common-core/src/di/context';\nimport type { LifeCycleManager } from '../../common-core/src/life-cycle-manager';\nimport type { SceneSettings } from '../../common-core/src/scene-settings-loader';\nimport type { GEOMETRY } from './webgl/material-viewer-scene-manager';\nimport MaterialViewerSceneManager from './webgl/material-viewer-scene-manager';\nimport type {\n RapiId,\n RapiMaterial,\n RapiMaterialShading,\n RapiTexture,\n} from '../../typings/rapi-types';\nimport type RoomleMaterialViewerUiCallback from './roomle-material-viewer-ui-callback';\nimport type { InitDataDefinition } from '../../common-core/src/utils/shims';\nimport type InitData from '../../common-core/src/utils/init-data';\nimport { type RapiAccess } from '../../common-core/src/rapi-access';\nimport type { CanvasOffset } from '../../common-core/src/common-interfaces';\nimport type UnitFormatter from '../../configurator-core/src/services/unit-formatter';\nimport type { Scene } from 'three';\nimport { type IdbManager } from '../../common-core/src/services/idb-manager';\nimport type { GlobalCallback } from '../../common-core/src/services/global-callback';\n\nexport default class RoomleMaterialViewer\n implements\n GlobalAPI,\n Context,\n ExternalEmbeddable<RoomleMaterialViewerUiCallback>\n{\n public _creator_: string;\n\n @inject\n private _domHelper: DomHelper;\n\n @inject\n private _scriptLoader: ScriptLoader;\n\n @inject\n private _lifeCycleManager: LifeCycleManager;\n\n @inject\n private _roomleMaterialViewerUiCallback: RoomleMaterialViewerUiCallback;\n\n @inject\n private _initData: InitData;\n\n @inject\n private _globalCallback: GlobalCallback;\n\n @inject\n private _rapiAccess: RapiAccess;\n\n @inject\n private _unitFormatter: UnitFormatter;\n\n @inject\n protected _idbManager: IdbManager;\n\n private _sceneManager: MaterialViewerSceneManager;\n\n constructor(creator: string) {\n this._creator_ = creator;\n }\n\n public setCameraOffset(offset: CanvasOffset): void {\n this._sceneManager.setCameraOffset(offset);\n }\n\n public getCameraOffset(): CanvasOffset {\n return this._sceneManager.getCameraOffset();\n }\n\n public init(element: HTMLElement): Promise<void> {\n this._domHelper.setDomElement(element);\n\n if (this._sceneManager) {\n this._lifeCycleManager.resume();\n return Promise.resolve();\n }\n\n return new Promise<void>(this._initPromiseCallback.bind(this));\n }\n\n private _initPromiseCallback(resolve: () => void, _reject: () => void) {\n this._sceneManager = new MaterialViewerSceneManager(this._creator_, {\n left: 0,\n top: 1,\n right: 1,\n bottom: 0,\n });\n this._sceneManager.enableHD();\n resolve();\n }\n\n get callbacks(): RoomleMaterialViewerUiCallback {\n return this._roomleMaterialViewerUiCallback;\n }\n\n set callbacks(callback: RoomleMaterialViewerUiCallback) {\n this._roomleMaterialViewerUiCallback = callback;\n }\n\n public loadMaterialShading(\n materialShading: RapiMaterialShading,\n ): Promise<void> {\n return this._sceneManager.loadMaterialShading(materialShading);\n }\n\n public loadMaterial(\n material: RapiMaterial,\n options: { flushCache?: boolean } = {},\n ): Promise<void> {\n if (options.flushCache) {\n this._clearCaches();\n }\n return this._sceneManager.loadMaterial(material);\n }\n\n public loadMaterialId(\n materialId: RapiId,\n options: { flushCache?: boolean } = {},\n ): Promise<void> {\n if (options.flushCache) {\n this._clearCaches();\n }\n return this._sceneManager.loadMaterialId(materialId);\n }\n\n public getMaterialShading(version: number = 1): RapiMaterialShading {\n return this._sceneManager.getMaterialShading(version);\n }\n\n /**\n * Loads a SceneSettings object, currently it can can contain a light setting definition\n * (see {@link @roomle/web-sdk/configurator-core/src/roomle-configurator#RoomleConfigurator.loadDynamicLightSetting}) and an environment definition (see {@link @roomle/web-sdk/configurator-core/src/environment/dynamic-environment-setting-loader#EnvironmentSetting}).\n * @param sceneSettings\n */\n public loadSceneSetting(sceneSettings: SceneSettings): Promise<void> {\n return this._sceneManager.loadSceneSettings(sceneSettings);\n }\n\n public setOverrides(initData: InitDataDefinition): void {\n if (!initData) {\n return;\n }\n this._initData.setOverrides(initData);\n }\n\n public updateSize(): void {\n this._sceneManager.updateCamera();\n }\n\n /**\n * Return the main class which has access to lifecycle events and RapiAccess.\n * Hidden because it's only useful for embedding API.\n * Has to be overridden by main class.\n * @hidden\n */\n public getMain(): Main | undefined {\n return undefined;\n }\n\n public resumeTest(element: HTMLElement) {\n this._domHelper.setDomElement(element);\n this._lifeCycleManager.resume();\n }\n\n public pauseTest() {\n this._lifeCycleManager.pause();\n }\n\n public showGUI() {\n this._sceneManager.showGUI();\n }\n\n /**\n * Sets the material of the floor to the given material id.\n * If the current environment is not floor environment it will be changed\n *\n * Example material ids are:\n * roomle_floor:DresdenEiche\n * roomle_floor:Ibiza\n * roomle_floor:Palma\n * roomle_floor:Elba\n * roomle_floor:Manacor\n * roomle_floor:KernEiche\n * roomle_floor:KieferScandic\n * roomle_floor:EicheHabsburg\n * roomle_floor:FuldaKiefer\n * roomle_floor:Ashton\n * roomle_floor:EicheLondon\n *\n * @param materialId\n * @returns promise that resolves when material has been changed\n */\n public async changeFloorMaterialById(materialId: string): Promise<void> {\n return this._sceneManager.changeFloorMaterialById(materialId);\n }\n\n /**\n * Set the geometry of the demo material mesh\n *\n * Possible parameter:\n * 'cube',\n * 'sphere',\n * 'plane_vertical',\n * 'plane_horizontal'\n *\n * @param type\n */\n public setGeometry(type: GEOMETRY) {\n this._sceneManager.setGeometry(type);\n }\n\n /**\n * Set a texture on the demo material, if no base64Image is set, the image field of rapiTexture is used\n * @param rapiTexture\n * @param base64Image for example \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPj/HwADBwIAMCbHYQAAAABJRU5ErkJggg==\"\n */\n public async addTexture(rapiTexture: RapiTexture, base64Image?: string) {\n return this._sceneManager.addTexture(rapiTexture, base64Image);\n }\n\n /**\n * Remove texture from the demo material\n * @param rapiTexture\n */\n public removeTexture(rapiTexture: RapiTexture) {\n return this._sceneManager.removeTexture(rapiTexture);\n }\n\n private _clearCaches() {\n this._rapiAccess.cleanUp();\n this._sceneManager.clearCache();\n }\n\n public getScene(): Scene {\n return this._sceneManager.getScene();\n }\n\n public updateScene(): void {\n this._sceneManager.updateScene();\n }\n\n /**\n * returns unit formatter for formatting input und output values in scene\n */\n public getUnitFormatter(): UnitFormatter {\n return this._unitFormatter;\n }\n\n /**\n * returns manager class to interface with indexedDB storage\n */\n public getStorage(): IdbManager {\n return this._idbManager;\n }\n\n public setEnvironmentMap(params: {\n url?: string;\n intensity?: number;\n rotation?: number;\n maxLightSources?: number;\n }): void {\n const { url, intensity, rotation, maxLightSources } = params;\n this._sceneManager.setEnvironmentMap(\n url,\n intensity,\n rotation,\n maxLightSources,\n );\n }\n\n /**\n * @internal\n * Use this callbacks to hook in your functionality\n */\n public get globalCallbacks(): GlobalCallback {\n return this._globalCallback;\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { UiCallback } from '../../common-core/src/utils/ui-callback';\nimport type { RapiMaterialShading } from '../../typings/rapi-types';\n\nexport default class RoomleMaterialViewerUiCallback extends UiCallback {\n constructor(creator: string) {\n super(creator);\n }\n\n /**\n * Gets called when a material parameter has been changed using the graphical user interface\n * @param materialShading\n */\n public onMaterialShadingChanged = (\n materialShading: RapiMaterialShading,\n ): void => undefined;\n}\n","import Logger from '../../../common-core/src/logger';\nimport ScriptLoader from '../../../common-core/src/script-loader';\nimport {\n DependencyInjectionAssignment,\n DI_TYPE,\n} from '../../../common-core/src/di/container';\nimport InputManager from '../../../common-core/src/input/input-manager';\nimport ConfiguratorMeshGenerator from '../../../configurator-core/src/webgl/configurator-mesh-generator';\nimport { RapiAccess } from '../../../common-core/src/rapi-access';\nimport RoomleMaterialViewerUiCallback from '../roomle-material-viewer-ui-callback';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n new DependencyInjectionAssignment('logger', Logger),\n new DependencyInjectionAssignment(\n 'input-manager',\n InputManager,\n DI_TYPE.CONTEXT,\n ),\n new DependencyInjectionAssignment(\n 'configurator-mesh-generator',\n ConfiguratorMeshGenerator,\n ),\n new DependencyInjectionAssignment('rapi-access', RapiAccess),\n new DependencyInjectionAssignment(\n 'roomle-material-viewer-ui-callback',\n RoomleMaterialViewerUiCallback,\n DI_TYPE.CONTEXT,\n ),\n];\n","import './utils/global-definitions';\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport type Logger from '../../common-core/src/logger';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport RoomleMaterialViewer from './roomle-material-viewer';\nimport { INJECTABLES } from './utils/injectables';\n\nexport class MaterialViewer extends Main {\n private _viewer: RoomleMaterialViewer;\n\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n }\n\n protected cleanUpGlobals(): void {\n throw new Error('Method not implemented.');\n }\n\n protected cleanUpDependencies(): void {\n throw new Error('Method not implemented.');\n }\n\n protected async bootFinished(): Promise<void> {\n this._viewer = new RoomleMaterialViewer(this._context);\n\n if (!window.RoomleMaterialViewer) {\n window.RoomleMaterialViewer = this._viewer;\n }\n }\n\n public getApi(): RoomleMaterialViewer {\n return this._viewer;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.MATERIAL_VIEWER;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import "./main-D2BulNeN.mjs";
2
+ import "./configurator-BwxEIDv7.mjs";
3
+ import "./planner-OgIPgZ1m.mjs";
4
+ import "./glb-viewer-C0Et5SO6.mjs";
@@ -0,0 +1,2 @@
1
+ import { t as e } from "./planner-OgIPgZ1m.mjs";
2
+ export { e as Planner };
@@ -1,5 +1,5 @@
1
- import { A as e, C as t, L as n, Q as r, X as i, c as a, ft as o, it as s, n as c, o as l, ot as u, r as d, rt as f, t as p, w as m } from "./main-DXPoPkIG.mjs";
2
- import { t as h } from "./script-loader-DovMlDVR.mjs";
1
+ import { A as e, C as t, L as n, Q as r, X as i, c as a, ft as o, it as s, n as c, o as l, ot as u, r as d, rt as f, t as p, w as m } from "./main-D2BulNeN.mjs";
2
+ import { t as h } from "./script-loader-CScqyQhc.mjs";
3
3
  //#region packages/planner-core/src/input/planner-input-manager.ts
4
4
  var g = class extends n {
5
5
  _canDrag(e) {
@@ -41,4 +41,4 @@ var g = class extends n {
41
41
  //#endregion
42
42
  export { v as t };
43
43
 
44
- //# sourceMappingURL=planner-CWQ8F70q.mjs.map
44
+ //# sourceMappingURL=planner-OgIPgZ1m.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"planner-CWQ8F70q.mjs","names":[],"sources":["../../packages/planner-core/src/input/planner-input-manager.ts","../../packages/planner-core/src/utils/injectables.ts","../../packages/planner-core/src/planner.ts"],"sourcesContent":["import type { INPUT_EVENT_TYPE } from '../../../common-core/src/input/input-manager';\nimport InputManager from '../../../common-core/src/input/input-manager';\n\nexport default class PlannerInputManager extends InputManager {\n protected _canDrag(_type: INPUT_EVENT_TYPE): boolean {\n return true;\n }\n}\n","import ScriptLoader from '../../../common-core/src/script-loader';\nimport {\n DependencyInjectionAssignment,\n DI_TYPE,\n} from '../../../common-core/src/di/container';\nimport Logger from '../../../common-core/src/logger';\nimport { default as PlannerMeshGenerator } from '../webgl/planner-mesh-generator';\nimport { RapiAccess } from '../../../common-core/src/rapi-access';\nimport PlannerInputManager from '../input/planner-input-manager';\nimport PlannerSelectionHandler from './planner-selection-handler';\nimport GlobalInitData from '../../../common-core/src/utils/global-init-data';\nimport ConfiguratorViewModel from '../../../common-core/src/view-model/configurator-view-model';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n new DependencyInjectionAssignment(\n 'planner-input-manager',\n PlannerInputManager,\n DI_TYPE.CONTEXT,\n ),\n new DependencyInjectionAssignment('logger', Logger),\n new DependencyInjectionAssignment(\n 'planner-mesh-generator',\n PlannerMeshGenerator,\n ),\n new DependencyInjectionAssignment(\n 'configurator-view-model',\n ConfiguratorViewModel,\n DI_TYPE.CONTEXT,\n ),\n new DependencyInjectionAssignment('rapi-access', RapiAccess),\n new DependencyInjectionAssignment('global-init-data', GlobalInitData),\n new DependencyInjectionAssignment(\n 'planner-selection-handler',\n PlannerSelectionHandler,\n ),\n];\n","import './utils/global-definitions';\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport { RoomlePlanner } from './roomle-planner';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport { INJECTABLES } from './utils/injectables';\nimport type PlannerKernelAccess from './services/planner-kernel-access';\nimport type Logger from '../../common-core/src/logger';\nimport { KERNEL_TYPE } from '../../common-core/src/services/common-kernel-access';\nimport type { PluginName } from '../../configurator-core/src/utils/plugin-types';\nimport type InitData from '../../common-core/src/utils/init-data';\nimport { isInIframe } from '../../common-core/src/utils/rapi-utils';\n\nexport class Planner<\n P extends readonly PluginName[] = readonly [],\n> extends Main {\n private _planner: RoomlePlanner<P>;\n private _activePlugins: P;\n\n constructor(creator?: string, activePlugins?: P) {\n super(creator);\n this._activePlugins = (activePlugins || []) as P;\n }\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n // instantiate kernel acccess\n // instantiate pka\n // set pka on kernel access\n const plannerKernelAccess = this.lookup<PlannerKernelAccess>(\n 'planner-kernel-access',\n this._context,\n );\n plannerKernelAccess.init(KERNEL_TYPE.PLANNER);\n }\n\n protected cleanUpGlobals(): void {\n throw new Error('Method not implemented.');\n }\n\n protected cleanUpDependencies(): void {\n throw new Error('Method not implemented.');\n }\n\n protected async bootFinished(): Promise<void> {\n this._planner = new RoomlePlanner<P>(this._context, this._activePlugins);\n\n this._planner.getMain = () => {\n return this;\n };\n\n if (!window.RoomlePlanner) {\n if (this._activePlugins.length === 0) {\n // cast to unknown because we know that the planner is a RoomlePlanner\n window.RoomlePlanner = this._planner as unknown as RoomlePlanner;\n } else {\n window.RoomlePlanner = this._planner as RoomlePlanner<\n readonly PluginName[]\n >;\n }\n }\n\n const initData = this.lookup<InitData>('init-data', this._context);\n\n if (initData?.hi && isInIframe()) {\n await this._planner.setupHomagIntelligence();\n }\n }\n\n public getApi(): RoomlePlanner<P> {\n return this._planner;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.PLANNER;\n }\n}\n"],"mappings":";;;AAGA,IAAqB,IAArB,cAAiD,EAAa;CAC5D,SAAmB,GAAkC;AACnD,SAAO;;GCQE,IAA+C;CAC1D,IAAI,EAA8B,iBAAiB,EAAa;CAChE,IAAI,EACF,yBACA,GACA,EAAQ,QACT;CACD,IAAI,EAA8B,UAAU,EAAO;CACnD,IAAI,EACF,0BACA,EACD;CACD,IAAI,EACF,2BACA,GACA,EAAQ,QACT;CACD,IAAI,EAA8B,eAAe,EAAW;CAC5D,IAAI,EAA8B,oBAAoB,EAAe;CACrE,IAAI,EACF,6BACA,EACD;CACF,ECxBY,IAAb,cAEU,EAAK;CAIb,YAAY,GAAkB,GAAmB;AAE/C,EADA,MAAM,EAAQ,EACd,KAAK,iBAAkB,KAAiB,EAAE;;CAE5C,eAA+B;CAI/B,oBAAoC;AAMN,EAL5B,EAA0B,MAAM,EAAY,EAC5C,KAAK,OAAe,UAAU,KAAK,SAAS,EAIhB,KAAK,OAC/B,yBACA,KAAK,SACN,CACmB,KAAK,EAAY,QAAQ;;CAG/C,iBAAiC;AAC/B,QAAU,MAAM,0BAA0B;;CAG5C,sBAAsC;AACpC,QAAU,MAAM,0BAA0B;;CAG5C,MAAgB,eAA8B;AAoB5C,EAnBA,KAAK,WAAW,IAAI,EAAiB,KAAK,UAAU,KAAK,eAAe,EAExE,KAAK,SAAS,gBACL,MAGJ,OAAO,kBACN,KAAK,eAAe,QAEtB,OAAO,gBAAgB,KAAK,WAQf,KAAK,OAAiB,aAAa,KAAK,SAAS,EAEpD,MAAM,GAAY,IAC9B,MAAM,KAAK,SAAS,wBAAwB;;CAIhD,SAAkC;AAChC,SAAO,KAAK;;CAGd,iBAAmC;AACjC,SAAO,EAAa"}
1
+ {"version":3,"file":"planner-OgIPgZ1m.mjs","names":[],"sources":["../../packages/planner-core/src/input/planner-input-manager.ts","../../packages/planner-core/src/utils/injectables.ts","../../packages/planner-core/src/planner.ts"],"sourcesContent":["import type { INPUT_EVENT_TYPE } from '../../../common-core/src/input/input-manager';\nimport InputManager from '../../../common-core/src/input/input-manager';\n\nexport default class PlannerInputManager extends InputManager {\n protected _canDrag(_type: INPUT_EVENT_TYPE): boolean {\n return true;\n }\n}\n","import ScriptLoader from '../../../common-core/src/script-loader';\nimport {\n DependencyInjectionAssignment,\n DI_TYPE,\n} from '../../../common-core/src/di/container';\nimport Logger from '../../../common-core/src/logger';\nimport { default as PlannerMeshGenerator } from '../webgl/planner-mesh-generator';\nimport { RapiAccess } from '../../../common-core/src/rapi-access';\nimport PlannerInputManager from '../input/planner-input-manager';\nimport PlannerSelectionHandler from './planner-selection-handler';\nimport GlobalInitData from '../../../common-core/src/utils/global-init-data';\nimport ConfiguratorViewModel from '../../../common-core/src/view-model/configurator-view-model';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n new DependencyInjectionAssignment(\n 'planner-input-manager',\n PlannerInputManager,\n DI_TYPE.CONTEXT,\n ),\n new DependencyInjectionAssignment('logger', Logger),\n new DependencyInjectionAssignment(\n 'planner-mesh-generator',\n PlannerMeshGenerator,\n ),\n new DependencyInjectionAssignment(\n 'configurator-view-model',\n ConfiguratorViewModel,\n DI_TYPE.CONTEXT,\n ),\n new DependencyInjectionAssignment('rapi-access', RapiAccess),\n new DependencyInjectionAssignment('global-init-data', GlobalInitData),\n new DependencyInjectionAssignment(\n 'planner-selection-handler',\n PlannerSelectionHandler,\n ),\n];\n","import './utils/global-definitions';\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport { RoomlePlanner } from './roomle-planner';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport { INJECTABLES } from './utils/injectables';\nimport type PlannerKernelAccess from './services/planner-kernel-access';\nimport type Logger from '../../common-core/src/logger';\nimport { KERNEL_TYPE } from '../../common-core/src/services/common-kernel-access';\nimport type { PluginName } from '../../configurator-core/src/utils/plugin-types';\nimport type InitData from '../../common-core/src/utils/init-data';\nimport { isInIframe } from '../../common-core/src/utils/rapi-utils';\n\nexport class Planner<\n P extends readonly PluginName[] = readonly [],\n> extends Main {\n private _planner: RoomlePlanner<P>;\n private _activePlugins: P;\n\n constructor(creator?: string, activePlugins?: P) {\n super(creator);\n this._activePlugins = (activePlugins || []) as P;\n }\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n // instantiate kernel acccess\n // instantiate pka\n // set pka on kernel access\n const plannerKernelAccess = this.lookup<PlannerKernelAccess>(\n 'planner-kernel-access',\n this._context,\n );\n plannerKernelAccess.init(KERNEL_TYPE.PLANNER);\n }\n\n protected cleanUpGlobals(): void {\n throw new Error('Method not implemented.');\n }\n\n protected cleanUpDependencies(): void {\n throw new Error('Method not implemented.');\n }\n\n protected async bootFinished(): Promise<void> {\n this._planner = new RoomlePlanner<P>(this._context, this._activePlugins);\n\n this._planner.getMain = () => {\n return this;\n };\n\n if (!window.RoomlePlanner) {\n if (this._activePlugins.length === 0) {\n // cast to unknown because we know that the planner is a RoomlePlanner\n window.RoomlePlanner = this._planner as unknown as RoomlePlanner;\n } else {\n window.RoomlePlanner = this._planner as RoomlePlanner<\n readonly PluginName[]\n >;\n }\n }\n\n const initData = this.lookup<InitData>('init-data', this._context);\n\n if (initData?.hi && isInIframe()) {\n await this._planner.setupHomagIntelligence();\n }\n }\n\n public getApi(): RoomlePlanner<P> {\n return this._planner;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.PLANNER;\n }\n}\n"],"mappings":";;;AAGA,IAAqB,IAArB,cAAiD,EAAa;CAC5D,SAAmB,GAAkC;AACnD,SAAO;;GCQE,IAA+C;CAC1D,IAAI,EAA8B,iBAAiB,EAAa;CAChE,IAAI,EACF,yBACA,GACA,EAAQ,QACT;CACD,IAAI,EAA8B,UAAU,EAAO;CACnD,IAAI,EACF,0BACA,EACD;CACD,IAAI,EACF,2BACA,GACA,EAAQ,QACT;CACD,IAAI,EAA8B,eAAe,EAAW;CAC5D,IAAI,EAA8B,oBAAoB,EAAe;CACrE,IAAI,EACF,6BACA,EACD;CACF,ECxBY,IAAb,cAEU,EAAK;CAIb,YAAY,GAAkB,GAAmB;AAE/C,EADA,MAAM,EAAQ,EACd,KAAK,iBAAkB,KAAiB,EAAE;;CAE5C,eAA+B;CAI/B,oBAAoC;AAMN,EAL5B,EAA0B,MAAM,EAAY,EAC5C,KAAK,OAAe,UAAU,KAAK,SAAS,EAIhB,KAAK,OAC/B,yBACA,KAAK,SACN,CACmB,KAAK,EAAY,QAAQ;;CAG/C,iBAAiC;AAC/B,QAAU,MAAM,0BAA0B;;CAG5C,sBAAsC;AACpC,QAAU,MAAM,0BAA0B;;CAG5C,MAAgB,eAA8B;AAoB5C,EAnBA,KAAK,WAAW,IAAI,EAAiB,KAAK,UAAU,KAAK,eAAe,EAExE,KAAK,SAAS,gBACL,MAGJ,OAAO,kBACN,KAAK,eAAe,QAEtB,OAAO,gBAAgB,KAAK,WAQf,KAAK,OAAiB,aAAa,KAAK,SAAS,EAEpD,MAAM,GAAY,IAC9B,MAAM,KAAK,SAAS,wBAAwB;;CAIhD,SAAkC;AAChC,SAAO,KAAK;;CAGd,iBAAmC;AACjC,SAAO,EAAa"}
@@ -1604,6 +1604,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1604
1604
  private _sceneEventHandler;
1605
1605
  private _isComponentDimensionsVisible;
1606
1606
  private _dimensionUpdateDebounced;
1607
+ private _sceneSetupReady;
1607
1608
  constructor(creator: string, offset: CanvasOffset, mode: Enumify_2<typeof CAMERA_TYPE>);
1608
1609
  /**
1609
1610
  * Single point for deciding whether to push HTML label positions to the UI.
@@ -2582,6 +2583,8 @@ export declare class DraggableNode extends Object3D {
2582
2583
  getSize(): Vector3;
2583
2584
  hoverOn(): void;
2584
2585
  hoverOff(): void;
2586
+ setSphereColor(color: number): void;
2587
+ setInnerRingColor(color: number): void;
2585
2588
  select(color: number): void;
2586
2589
  deselect(color: number): void;
2587
2590
  }
@@ -4797,7 +4800,7 @@ export declare interface KernelParameter {
4797
4800
  viewType: KernelViewType;
4798
4801
  source: 'external' | 'internal';
4799
4802
  level?: number;
4800
- objectIds: number[];
4803
+ objectIds?: number[];
4801
4804
  }
4802
4805
 
4803
4806
  export declare interface KernelParameterGroup {
@@ -5441,19 +5444,23 @@ export declare interface NodeDimensionTransferable {
5441
5444
  }
5442
5445
 
5443
5446
  export declare class NodePlanElementViewModel extends PlanElementViewModel {
5444
- private _nodeUiMesh;
5447
+ protected _nodeUiMesh: DraggableNode;
5448
+ protected _defaultRingColor: number;
5445
5449
  constructor(planObject: PlanObject);
5446
5450
  update(): void;
5447
5451
  setTopView(enabled: boolean): void;
5448
5452
  getSize(): Vector3;
5449
5453
  show(): void;
5450
5454
  hide(): void;
5455
+ protected getSelectionRingColor(): number;
5451
5456
  select(): void;
5452
5457
  deselect(): void;
5453
5458
  hoverOn(): void;
5454
5459
  hoverOff(): void;
5455
5460
  protected _generateBoundingBox(): RoomleEventedMesh;
5456
5461
  setZoom(zoom: number): void;
5462
+ setFillColor(color: number): void;
5463
+ setDefaultRingColor(color: number): void;
5457
5464
  }
5458
5465
 
5459
5466
  export declare interface NodePlanObject extends PlanObject {
@@ -6482,6 +6489,8 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6482
6489
  private _hideAllNodeIfThereAreNoSelections;
6483
6490
  protected _onCameraMove(): boolean;
6484
6491
  private _showWallNodes;
6492
+ private _applyFenceNodeStyle;
6493
+ private _shouldKeepFenceNodesVisible;
6485
6494
  private _updateNodeSize;
6486
6495
  private _sendPlanObjectPositions;
6487
6496
  private _sendMultiSelectionPosition;
@@ -10925,7 +10934,7 @@ export declare class WallPlanElementViewModel extends PlanElementViewModel {
10925
10934
  constructor(planObject: PlanObject);
10926
10935
  get isSelected(): boolean;
10927
10936
  private _checkHasAttachedAttic;
10928
- getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number): WallDimension;
10937
+ getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number, preferredSideOverride?: LeftOrRightWallSide): WallDimension;
10929
10938
  private calculateNormalVector;
10930
10939
  private calculateShiftingFactor;
10931
10940
  private calculateAtticInfo;
@@ -1,13 +1,13 @@
1
1
  import { i as e, t } from "./kernel-C7YDLxq8.mjs";
2
- import { gt as n, pt as r } from "./threejs-utils-ZKvz9Qno.mjs";
2
+ import { _t as n, mt as r } from "./threejs-utils-C4J_TZ0o.mjs";
3
3
  import { xi as i } from "./three.core-tV_4n8Wg.mjs";
4
- import { A as a, B as o, F as s, G as c, H as l, I as u, J as d, K as f, M as p, N as m, P as h, S as g, U as _, W as v, a as y, b, c as x, ct as S, dt as C, i as w, it as T, k as E, l as D, n as O, nt as k, ot as A, pt as j, rt as M, s as N, st as P, ut as ee, v as F, x as I, y as L } from "./main-DXPoPkIG.mjs";
5
- import { n as R } from "./script-loader-DovMlDVR.mjs";
6
- import { t as z } from "./configurator-DU1NHt_a.mjs";
7
- import { t as B } from "./planner-CWQ8F70q.mjs";
8
- import { n as V, t as H } from "./glb-viewer-BPfa4Fz5.mjs";
9
- import { t as U } from "./api-DVBX8_mw.mjs";
10
- import "./packages-D61uTgIK.mjs";
4
+ import { A as a, B as o, F as s, G as c, H as l, I as u, J as d, K as f, M as p, N as m, P as h, S as g, U as _, W as v, a as y, b, c as x, ct as S, dt as C, i as w, it as T, k as E, l as D, n as O, nt as k, ot as A, pt as j, rt as M, s as N, st as P, ut as ee, v as F, x as I, y as L } from "./main-D2BulNeN.mjs";
5
+ import { n as R } from "./script-loader-CScqyQhc.mjs";
6
+ import { t as z } from "./configurator-BwxEIDv7.mjs";
7
+ import { t as B } from "./planner-OgIPgZ1m.mjs";
8
+ import { n as V, t as H } from "./glb-viewer-C0Et5SO6.mjs";
9
+ import { t as U } from "./api-BXU3pZnX.mjs";
10
+ import "./packages-BtLLQZLz.mjs";
11
11
  import "./roomle-headless-setup-CMK-quZI.mjs";
12
12
  import { createRequire as W } from "module";
13
13
  //#region packages/headless-core/src/headless-script-loader.ts
@@ -1604,6 +1604,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1604
1604
  private _sceneEventHandler;
1605
1605
  private _isComponentDimensionsVisible;
1606
1606
  private _dimensionUpdateDebounced;
1607
+ private _sceneSetupReady;
1607
1608
  constructor(creator: string, offset: CanvasOffset, mode: Enumify_3<typeof CAMERA_TYPE>);
1608
1609
  /**
1609
1610
  * Single point for deciding whether to push HTML label positions to the UI.
@@ -2582,6 +2583,8 @@ export declare class DraggableNode extends Object3D {
2582
2583
  getSize(): Vector3;
2583
2584
  hoverOn(): void;
2584
2585
  hoverOff(): void;
2586
+ setSphereColor(color: number): void;
2587
+ setInnerRingColor(color: number): void;
2585
2588
  select(color: number): void;
2586
2589
  deselect(color: number): void;
2587
2590
  }
@@ -4586,7 +4589,7 @@ export declare interface KernelParameter {
4586
4589
  viewType: KernelViewType;
4587
4590
  source: 'external' | 'internal';
4588
4591
  level?: number;
4589
- objectIds: number[];
4592
+ objectIds?: number[];
4590
4593
  }
4591
4594
 
4592
4595
  export declare interface KernelParameterGroup {
@@ -5230,19 +5233,23 @@ export declare interface NodeDimensionTransferable {
5230
5233
  }
5231
5234
 
5232
5235
  export declare class NodePlanElementViewModel extends PlanElementViewModel {
5233
- private _nodeUiMesh;
5236
+ protected _nodeUiMesh: DraggableNode;
5237
+ protected _defaultRingColor: number;
5234
5238
  constructor(planObject: PlanObject);
5235
5239
  update(): void;
5236
5240
  setTopView(enabled: boolean): void;
5237
5241
  getSize(): Vector3;
5238
5242
  show(): void;
5239
5243
  hide(): void;
5244
+ protected getSelectionRingColor(): number;
5240
5245
  select(): void;
5241
5246
  deselect(): void;
5242
5247
  hoverOn(): void;
5243
5248
  hoverOff(): void;
5244
5249
  protected _generateBoundingBox(): RoomleEventedMesh;
5245
5250
  setZoom(zoom: number): void;
5251
+ setFillColor(color: number): void;
5252
+ setDefaultRingColor(color: number): void;
5246
5253
  }
5247
5254
 
5248
5255
  export declare interface NodePlanObject extends PlanObject {
@@ -6267,6 +6274,8 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6267
6274
  private _hideAllNodeIfThereAreNoSelections;
6268
6275
  protected _onCameraMove(): boolean;
6269
6276
  private _showWallNodes;
6277
+ private _applyFenceNodeStyle;
6278
+ private _shouldKeepFenceNodesVisible;
6270
6279
  private _updateNodeSize;
6271
6280
  private _sendPlanObjectPositions;
6272
6281
  private _sendMultiSelectionPosition;
@@ -10695,7 +10704,7 @@ export declare class WallPlanElementViewModel extends PlanElementViewModel {
10695
10704
  constructor(planObject: PlanObject);
10696
10705
  get isSelected(): boolean;
10697
10706
  private _checkHasAttachedAttic;
10698
- getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number): WallDimension;
10707
+ getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number, preferredSideOverride?: LeftOrRightWallSide): WallDimension;
10699
10708
  private calculateNormalVector;
10700
10709
  private calculateShiftingFactor;
10701
10710
  private calculateAtticInfo;
package/lib/roomle-sdk.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { i as e, t } from "./kernel-C7YDLxq8.mjs";
2
- import { gt as n, pt as r } from "./threejs-utils-ZKvz9Qno.mjs";
3
- import { B as i, F as a, G as o, H as s, I as c, J as l, K as u, M as d, N as f, P as p, S as m, U as h, W as g, a as _, b as v, c as y, ct as b, dt as x, k as S, l as C, n as w, ot as T, pt as E, st as D, ut as O, v as k, x as A, y as j } from "./main-DXPoPkIG.mjs";
4
- import { t as M } from "./configurator-DU1NHt_a.mjs";
5
- import { t as N } from "./planner-CWQ8F70q.mjs";
6
- import { n as P, t as F } from "./glb-viewer-BPfa4Fz5.mjs";
7
- import { t as I } from "./api-DVBX8_mw.mjs";
8
- import "./packages-D61uTgIK.mjs";
2
+ import { _t as n, mt as r } from "./threejs-utils-C4J_TZ0o.mjs";
3
+ import { B as i, F as a, G as o, H as s, I as c, J as l, K as u, M as d, N as f, P as p, S as m, U as h, W as g, a as _, b as v, c as y, ct as b, dt as x, k as S, l as C, n as w, ot as T, pt as E, st as D, ut as O, v as k, x as A, y as j } from "./main-D2BulNeN.mjs";
4
+ import { t as M } from "./configurator-BwxEIDv7.mjs";
5
+ import { t as N } from "./planner-OgIPgZ1m.mjs";
6
+ import { n as P, t as F } from "./glb-viewer-C0Et5SO6.mjs";
7
+ import { t as I } from "./api-BXU3pZnX.mjs";
8
+ import "./packages-BtLLQZLz.mjs";
9
9
  export { t as CONFIGURATION_TYPE, r as CORE_EDGE_TYPE, n as CORE_OBJECT_CATEGORY, e as CORE_PERMISSION_TO_DELETE, M as Configurator, _ as ConfiguratorUiCallbacks, d as FloorPlanElementViewModel, F as GlbViewer, l as GlobalCallback, i as HI_CONTEXT_ACTION, O as IdbManager, w as Main, m as MeasurementLinePlanElementViewModel, k as PLAN_ELEMENT_CHANGE_TYPES, c as PlanElementViewModel, a as PlanObjectViewModel, N as Planner, T as RapiAccess, D as RapiInvalidIdError, b as RapiOfflineError, I as RoomDesignerApi, S as RoomleConfigurator, P as RoomleGLBViewer, E as RoomleLightSource, y as RoomlePlanner, j as RoomlePlannerUiCallback, C as RoomleSdk, p as StaticPlanObjectViewModel, f as WallPlanElementViewModel, s as createExtObj, u as createExtObjId, x as getCatalogIdFromConfigurationHash, h as isExtObjId, g as isExternalObject, v as isFirefox, A as isSafari, o as removeExtObjIdPrefix };
@@ -1,5 +1,5 @@
1
1
  import { Ar as e, Br as t, Cr as n, En as r, Gn as i, Hi as a, J as o, Jr as s, Kn as c, On as l, Qt as u, Tt as d, Wi as f, Y as p, _i as m, bi as h, ci as g, ct as _, g as v, gi as y, hi as b, hr as x, ht as S, in as C, jr as w, kr as T, mi as ee, mr as te, pi as ne, q as re, rt as E, sn as D, t as ie, vi as ae, w as O, wr as oe, xi as k, yi as se } from "./three.core-tV_4n8Wg.mjs";
2
- import { o as ce, t as le } from "./scene-renderer-6t0p4vb4.mjs";
2
+ import { o as ce, t as le } from "./scene-renderer-DvXjoKHZ.mjs";
3
3
  import { n as ue, r as de, t as fe } from "./decorate-C9r0zXzz.mjs";
4
4
  import { n as pe } from "./roomle-renderer-DYQvV88j.mjs";
5
5
  import { Rt as A, Ut as me, Wn as he, Z as ge, bn as j, fr as _e, jn as ve, kt as ye, lr as be, un as xe, vn as Se, x as Ce } from "./three.webgpu-CkP2nkXM.mjs";
@@ -2527,4 +2527,4 @@ fe([de, ue("design:type", Object)], In.prototype, "_domHelper", void 0), fe([de,
2527
2527
  //#endregion
2528
2528
  export { In as RoomleWebGPURenderer };
2529
2529
 
2530
- //# sourceMappingURL=roomle-webgpu-renderer-CmqMWt2K.mjs.map
2530
+ //# sourceMappingURL=roomle-webgpu-renderer-5-aG3CMs.mjs.map