@roomle/embedding-lib 5.27.0 → 5.28.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 (36) hide show
  1. package/docs/md/web/embedding/CHANGELOG.md +6 -25
  2. package/package.json +1 -1
  3. package/packages/embedding-lib/src/embedding-lib.d.ts +7 -0
  4. package/packages/web-sdk/packages/common-core/src/light/light-source.d.ts +2 -0
  5. package/packages/web-sdk/packages/common-core/src/utils/threejs-utils.d.ts +2 -1
  6. package/packages/web-sdk/packages/common-core/src/webgl/roomle-component-factory.d.ts +1 -0
  7. package/packages/web-sdk/packages/common-core/src/webgl/scene-manager.d.ts +1 -1
  8. package/packages/web-sdk/packages/homag-intelligence/src/callbacks.d.ts +1 -1
  9. package/packages/web-sdk/packages/homag-intelligence/src/emulator.d.ts +3 -3
  10. package/packages/web-sdk/packages/homag-intelligence/src/homag-intelligence.d.ts +4 -2
  11. package/packages/web-sdk/packages/homag-intelligence/src/loader.d.ts +2 -4
  12. package/packages/web-sdk/packages/planner-core/src/external-object-api-callbacks.d.ts +10 -9
  13. package/packages/web-sdk/packages/planner-core/src/lights/ceiling-light.d.ts +1 -1
  14. package/packages/web-sdk/packages/planner-core/src/lights/light-group.d.ts +1 -2
  15. package/packages/web-sdk/packages/planner-core/src/roomle-planner-ui-callback.d.ts +2 -2
  16. package/packages/web-sdk/packages/planner-core/src/roomle-planner.d.ts +12 -6
  17. package/packages/web-sdk/packages/planner-core/src/services/planner-kernel-access.d.ts +3 -3
  18. package/packages/web-sdk/packages/planner-core/src/view-model/plan-view-model.d.ts +1 -4
  19. package/packages/web-sdk/packages/planner-core/src/webgl/planner-scene-manager.d.ts +5 -1
  20. package/roomle-embedding-lib.es.js +508 -253
  21. package/roomle-embedding-lib.es.min.js +1 -1
  22. package/roomle-embedding-lib.umd.js +21 -17
  23. package/roomle-embedding-lib.umd.min.js +1 -1
  24. package/src/common/components/SwitchButton.vue.d.ts +21 -15
  25. package/src/common/components/inputs/BaseInput.vue.d.ts +0 -2
  26. package/src/common/components/inputs/NumericInput.vue.d.ts +2 -2
  27. package/src/common/components/side-bar/utils/configurator-sidebar-components.d.ts +79 -111
  28. package/src/common/composables/use-planner-actions-visibility.d.ts +1 -0
  29. package/src/common/composables/use-selected-plan-element.d.ts +1 -0
  30. package/src/common/store/common-ui-store.d.ts +4 -1
  31. package/src/common/utils/parameters.d.ts +3 -0
  32. package/src/planner/components/overlays/product-settings/ProductRangeControl.vue.d.ts +6 -6
  33. package/src/planner/components/overlays/rooms/ElementLengthScaling.vue.d.ts +34 -15
  34. package/src/planner/components/overlays/rooms/IconSwitch.vue.d.ts +34 -15
  35. package/src/planner/components/overlays/rooms/ParameterSwitch.vue.d.ts +17 -41
  36. package/src/planner/components/overlays/rooms/RoomUnitSwitch.vue.d.ts +11 -83
@@ -1,33 +1,14 @@
1
- ## [5.27.0](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.26.0...embedding-lib-v5.27.0) (2025-09-10)
1
+ ## [5.28.0-alpha.2](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.28.0-alpha.1...embedding-lib-v5.28.0-alpha.2) (2025-09-15)
2
2
 
3
3
 
4
4
  ### Features
5
5
 
6
- * add open/close icon in the flying menu for construction elements ([a42ba31](https://github.com/roomle-dev/roomle-ui/commit/a42ba319980c42850b3f3d41e65b7d91f29d9712))
7
- * add recasting for measurement labels to check if the associated line is occluded ([094c80d](https://github.com/roomle-dev/roomle-ui/commit/094c80df3ec9267398f5987943e0cb132d946ff4))
8
- * core api - room information ([d82ff87](https://github.com/roomle-dev/roomle-ui/commit/d82ff87b322a1c89953df360ceb70abcfc0aa406))
9
- * extend swap object to also take planElement id ([8959345](https://github.com/roomle-dev/roomle-ui/commit/89593451ce7225fdeadf319cc64e797f2c620ee8))
10
- * hi room information for order data ([3034df5](https://github.com/roomle-dev/roomle-ui/commit/3034df54a39680b5d58a66df06a60ca9a535f752))
11
- * move the dimensions label from SDK to UI ([fed29f6](https://github.com/roomle-dev/roomle-ui/commit/fed29f6c3b9e5eec3faab3996bfeace271c5c05a))
12
- * smart positions of measurements label and add collision detection between labels ([ebf82c6](https://github.com/roomle-dev/roomle-ui/commit/ebf82c63c6b9a52e939c799d6b9b8f1becff3d6b))
13
- * **core:** upgrade to version 2.58.1-alpha.1 ([1f144ee](https://github.com/roomle-dev/roomle-ui/commit/1f144ee761c1604a89abcd7f28b01df28656d288))
14
- * **core:** upgrade to version 2.59.0-alpha.1 ([3021efa](https://github.com/roomle-dev/roomle-ui/commit/3021efabfa5aad20fef86c719b72f37faff5dd25))
15
- * **core:** upgrade to version 2.59.0-alpha.2 ([327b2f2](https://github.com/roomle-dev/roomle-ui/commit/327b2f2f8430f7280b93345709e9e84b68350d61))
16
- * **core:** upgrade to version 2.59.0-alpha.3 ([87d5a75](https://github.com/roomle-dev/roomle-ui/commit/87d5a75d9930face28c442598ed1ed506f52bc47))
17
- * **core:** upgrade to version 2.59.0-alpha.4 ([d370635](https://github.com/roomle-dev/roomle-ui/commit/d3706359b12d6d258d51d8a8466ef143e7951644))
18
- * **core:** upgrade to version 2.59.0-alpha.5 ([92227a9](https://github.com/roomle-dev/roomle-ui/commit/92227a93bead21f191cd33711ed936426e5ed4b3))
19
- * **core:** upgrade to version 2.59.0-alpha.6 ([222e9b0](https://github.com/roomle-dev/roomle-ui/commit/222e9b008715e1de03bed9c3306e4eb32ffe0949))
20
- * **core:** upgrade to version 2.59.0-alpha.7 ([9b51309](https://github.com/roomle-dev/roomle-ui/commit/9b51309fe283b0f6f9adcdf25f3a30a9357bab14))
21
- * **core:** upgrade to version 2.59.0-alpha.8 ([e8646e4](https://github.com/roomle-dev/roomle-ui/commit/e8646e43d24db4b5553de5d82d99e1d10663cd48))
22
- * **core:** upgrade to version 2.59.0-alpha.9 ([a93b26a](https://github.com/roomle-dev/roomle-ui/commit/a93b26a6d0b545cafd00ca25cff3e7a4fc73b80d))
6
+ * clean-up hi example feature flags ([8410d22](https://github.com/roomle-dev/roomle-ui/commit/8410d22437062ee016db66a1e567723459a033d4))
7
+ * keep position when external object is replaced ([dda4c61](https://github.com/roomle-dev/roomle-ui/commit/dda4c61cb8366204d5524435016d47da18f3cc4b))
8
+ * recalculate external object group when group is loaded from a plan ([fc67591](https://github.com/roomle-dev/roomle-ui/commit/fc67591dfe2f83f612a17dc023e228e0a813c743))
9
+ * select root modules to be duplicated ([cfafc35](https://github.com/roomle-dev/roomle-ui/commit/cfafc35d106b1ee314e06b8eb650e81cf2ee7fc8))
23
10
 
24
11
 
25
12
  ### Bug Fixes
26
13
 
27
- * check if camera target is zero before using saved camera position ([8c8f535](https://github.com/roomle-dev/roomle-ui/commit/8c8f5358de4fa7af201e7eb6aa48bf2f0e9f5818))
28
- * dimensioning artifact after zoom in ([7a36d6a](https://github.com/roomle-dev/roomle-ui/commit/7a36d6a18c30ed6cae3a10df9c09485d368e838e))
29
- * drag construction objects in 2D ([ea23601](https://github.com/roomle-dev/roomle-ui/commit/ea23601b979a4547b9ce394b65b2b2352fb4b394))
30
- * position of dragged in element when in 2d ([e96a5f9](https://github.com/roomle-dev/roomle-ui/commit/e96a5f95d4279ea9908c8b96a1d30a175cedddbf))
31
- * regenerate lines on camera move 90 degrees ([b089c2e](https://github.com/roomle-dev/roomle-ui/commit/b089c2efe72f3c51d38311d88991bf8e275cdde2))
32
- * update addons on "Add an element" ([a3768bc](https://github.com/roomle-dev/roomle-ui/commit/a3768bcf70d4b26ca11536179ae8642fbb0187f2))
33
- * update position of remaining root modules when deleting a root module ([9e71f46](https://github.com/roomle-dev/roomle-ui/commit/9e71f469ef992b43fc4f90995595cf620f7acba9))
14
+ * set file size limit of embedding lib to 15 kb after adding comlink ([65809d9](https://github.com/roomle-dev/roomle-ui/commit/65809d9d616c5000631a85cddbe4388567bd63bb))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomle/embedding-lib",
3
- "version": "5.27.0",
3
+ "version": "5.28.0-alpha.2",
4
4
  "description": "This is a small library which can be used to communicate with the Roomle Configurator",
5
5
  "type": "module",
6
6
  "main": "./roomle-embedding-lib.umd.js",
@@ -5,10 +5,16 @@ import { default as RoomleGLBViewer } from '@roomle/web-sdk/glb-viewer-core/src/
5
5
  import { default as RoomlePlanner } from '@roomle/web-sdk/planner-core/src/roomle-planner';
6
6
  import { DragIn } from './plugins/drag-in';
7
7
  import { Connector } from './connector';
8
+ import { MasterData } from '@roomle/web-sdk/homag-intelligence/src/model/oc-scripts-domain.model';
8
9
 
9
10
  interface PluginMap {
10
11
  dragIn: typeof DragIn;
11
12
  }
13
+ export interface HiCallbacks {
14
+ onLoadJavascript: (libraryId: string) => Promise<string>;
15
+ onLoadMasterData: (libraryId: string) => Promise<MasterData>;
16
+ onLoadArticleCatalog: (libraryId: string) => Promise<any>;
17
+ }
12
18
  export type AvailablePlugins = {
13
19
  [K in keyof PluginMap]?: InstanceType<PluginMap[K]>;
14
20
  };
@@ -47,6 +53,7 @@ export default class RoomleEmbeddingApi<SdkType, SdkCallbacks> extends Connector
47
53
  * @param initData settings with which the configurator should be started
48
54
  */
49
55
  static createViewer(configuratorId: string, container: HTMLElement, initData: UiInitData, plugins?: PluginDefinitions): Promise<RoomleViewerApi>;
56
+ static setupHi(callbacks: HiCallbacks): void;
50
57
  private static _create;
51
58
  private _waitForIframe;
52
59
  private _container;
@@ -7,7 +7,9 @@ export declare class RoomleLightSource {
7
7
  private _light;
8
8
  constructor(lightSourceId: number, lightSource: Light);
9
9
  get lightSourceId(): number;
10
+ get isLightOn(): boolean;
10
11
  addToScene(object3d: Object3D): void;
11
12
  removeFromScene(): void;
13
+ setLightOnOff(state: boolean): void;
12
14
  updateLightSource(lightSourceAttributes: any): void;
13
15
  }
@@ -2,7 +2,7 @@ import { Dimensioning, KernelCube, KernelEnum } from '../../../typings/kernel';
2
2
  import { AssetUrl, RapiMaterial, RapiMaterialShading, RapiTexture } from '../../../typings/rapi-types';
3
3
  import { Position2, Position3 } from '../common-interfaces';
4
4
  import { default as WallPlanElementViewModel } from '../../../planner-core/src/view-model/wall-plan-element-view-model';
5
- import { Camera, Intersection, Material, Matrix4, MeshPhysicalMaterial, MeshStandardMaterial, NormalBufferAttributes, Object3D, Object3DEventMap, Quaternion, Texture, Vector2, Scene, Box3, BufferGeometry, Color, CubeTexture, DataTexture, Layers, Mesh, MeshBasicMaterial, Vector3 } from 'three';
5
+ import { ShaderChunk, Camera, Intersection, Material, Matrix4, MeshPhysicalMaterial, MeshStandardMaterial, NormalBufferAttributes, Object3D, Object3DEventMap, Quaternion, Texture, Vector2, Scene, Box3, BufferGeometry, Color, CubeTexture, DataTexture, Layers, Mesh, MeshBasicMaterial, Vector3 } from 'three';
6
6
  import { GUI } from 'dat.gui';
7
7
  import { OBJECT_EVENT } from '../../../configurator-core/src/utils/raycast-helper';
8
8
  import { INPUT_EVENT_TYPE } from '../input/input-manager';
@@ -132,4 +132,5 @@ export interface Object3DRoomleEventMap extends Object3DEventMap {
132
132
  * normalize the angle between -PI and PI
133
133
  */
134
134
  export declare const normalizeRotation: (angleInRad: number) => number;
135
+ export declare const patchLighting: (shaderChunk: typeof ShaderChunk) => void;
135
136
  export {};
@@ -29,6 +29,7 @@ export interface RoomleComponent extends RoomleEventedObject3D {
29
29
  getLightSourceById(lightSourceId: number): RoomleLightSource | null;
30
30
  removeLightSourceById(lightSourceId: number): void;
31
31
  addLightSource(lightSource: RoomleLightSource): void;
32
+ getAllLightSources(): Map<number, RoomleLightSource>;
32
33
  getMeshById(meshId: number): Mesh;
33
34
  removeAllMeshes(): void;
34
35
  select(): void;
@@ -103,7 +103,7 @@ export default abstract class SceneManager implements Context, LifeCycleCallback
103
103
  protected _setupScene(_offset?: CanvasOffset, transparent?: boolean): void;
104
104
  loadEnvMap(url: string): Promise<void>;
105
105
  private _getEnvMapIntensityAndRotation;
106
- private _setDefaultEnvironmentScene;
106
+ protected _setDefaultEnvironmentScene(): void;
107
107
  private _setEnvMap;
108
108
  private _tabVisible;
109
109
  private _releaseKeystrokeStates;
@@ -26,7 +26,7 @@ export interface ExternalObjectGroup {
26
26
  groupId: string;
27
27
  pos: number[];
28
28
  rotationY?: number;
29
- rootModules: ExternalObjectRootModule[];
29
+ rootModules?: ExternalObjectRootModule[];
30
30
  contours?: ExternalObjectContour[];
31
31
  }
32
32
  export interface ExternalModuleInformation {
@@ -1,4 +1,4 @@
1
- import { ExternalModuleInformation, ExternalObjectGroup, ExternalObjectGroupPosition } from './callbacks';
1
+ import { ExternalModuleInformation, ExternalObjectGroup } from './callbacks';
2
2
  import { MasterData, PosModuleAttribute, PosGroup, PosModuleData, PosModuleRootData } from './model/oc-scripts-domain.model';
3
3
 
4
4
  export interface LibraryData {
@@ -28,7 +28,7 @@ export interface GlueLogic {
28
28
  mergeGroups(targetGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], idOfTargetRootModule: string): void;
29
29
  deleteRootModule(remainingGroup: ExternalObjectGroup, rootModuleIdToDelete: string, splitOffGroups: ExternalObjectGroup[]): void;
30
30
  splitRootModuleFromGroup(splitGroup: ExternalObjectGroup, newGroupedRootModules: ExternalObjectGroup[]): void;
31
- duplicateGroup(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
31
+ duplicateGroup(sourceGroupId: string, duplicatedGroup: ExternalObjectGroup): void;
32
32
  modifyAttribute(groupId: string, moduleIdObjects: ExternalModuleInformation[], attributeName: string, value: string): void;
33
33
  arrangeRootModulesOfGroup(changedGroup: ExternalObjectGroup): void;
34
34
  changedGroupPlanningSituation(changedGroup: ExternalObjectGroup): void;
@@ -68,7 +68,7 @@ export declare class Emulator implements GlueLogic {
68
68
  selectSubModule(_groupId: any, rootId: string, moduleId: string): Promise<void>;
69
69
  openCloseGroup(groupId: string): Promise<void>;
70
70
  deleteRootModule(remainingGroup: ExternalObjectGroup, rootModuleIdToDelete: string, splitOffGroups: ExternalObjectGroup[]): void;
71
- duplicateGroup(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): Promise<void>;
71
+ duplicateGroup(_sourceGroupId: string, duplicatedGroup: ExternalObjectGroup): Promise<void>;
72
72
  mergeGroups(targetGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], idOfTargetRootModule: string): void;
73
73
  private _applyImplicitRelevantAttributes;
74
74
  splitRootModuleFromGroup(splitGroup: ExternalObjectGroup, newGroupedRootModules: ExternalObjectGroup[]): void;
@@ -5,6 +5,7 @@ import { MasterData } from './model/oc-scripts-domain.model';
5
5
  import { default as RoomlePlanner } from '../../planner-core/src/roomle-planner';
6
6
  import { ExternalConfiguration, ExternalItem } from '../../typings/external-objects';
7
7
  import { HiTagCatalogCallbacks } from './hi-tag-catalog-callbacks';
8
+ import { HiCallbacks } from '../../../../embedding-lib/src/embedding-lib';
8
9
 
9
10
  declare global {
10
11
  interface Window {
@@ -29,13 +30,14 @@ export declare class HomagIntelligence extends RmlPlugin {
29
30
  private _hiLibraryLoaded;
30
31
  private _orders;
31
32
  constructor();
32
- loadHiLibrary(libraryId: string, apiOptions: ApiOptions): Promise<{
33
+ loadHiLibrary(hiCallbacks: HiCallbacks, libraryId: string): Promise<{
33
34
  articles: any;
34
35
  masterData: MasterData;
35
36
  calcScriptLoaded: boolean;
36
37
  }>;
37
- init(articles: any, catalogCallbacks: HiTagCatalogCallbacks, roomlePlanner: RoomlePlanner, libraryId: string, apiOptions: ApiOptions): Promise<this>;
38
+ init(articles: any, catalogCallbacks: HiTagCatalogCallbacks, roomlePlanner: RoomlePlanner, libraryId: string, apiOptions: ApiOptions, hiCallbacks: HiCallbacks): Promise<this>;
38
39
  private _loadMasterData;
40
+ private _initCalcScript;
39
41
  getEmulator(): Emulator;
40
42
  sendToOM(withPrice?: boolean): Promise<void>;
41
43
  fetchPrice(planId?: string): Promise<any>;
@@ -18,7 +18,5 @@ export declare const fetchDataWithAuthorization: (url: string, type: 'json' | 't
18
18
  property: string;
19
19
  }) => Promise<Response>;
20
20
  export declare const loadArticleCatalog: (libraryId: string, apiOptions: ApiOptions) => Promise<any>;
21
- export declare const loadHiLibrary: (libraryId: string, apiOptions: ApiOptions) => Promise<{
22
- masterData: MasterData;
23
- calcScriptLoaded: boolean;
24
- }>;
21
+ export declare const loadMasterData: (libraryId: string, apiOptions: ApiOptions) => Promise<MasterData>;
22
+ export declare const loadCalcScript: (libraryId: string, apiOptions: ApiOptions) => Promise<string>;
@@ -5,7 +5,8 @@ export interface ExternalObjectSegment {
5
5
  cmd: string;
6
6
  x: number;
7
7
  y: number;
8
- type: string;
8
+ type?: string;
9
+ angle?: number;
9
10
  }
10
11
  export interface ExternalObjectContour {
11
12
  level: number;
@@ -13,18 +14,18 @@ export interface ExternalObjectContour {
13
14
  }
14
15
  export interface ExternalObjectGroupPosition {
15
16
  pos: number[];
16
- rotation?: number;
17
+ rotationY?: number;
17
18
  contours?: ExternalObjectContour[];
18
19
  }
19
20
  export interface ExternalObjectRootModule {
20
21
  moduleId: string;
21
22
  pos: number[];
22
- rotation?: number;
23
+ rotationY?: number;
23
24
  }
24
25
  export interface ExternalObjectGroup {
25
- groupId?: string;
26
+ groupId: string;
26
27
  pos: number[];
27
- rotation?: number;
28
+ rotationY?: number;
28
29
  rootModules?: ExternalObjectRootModule[];
29
30
  contours?: ExternalObjectContour[];
30
31
  }
@@ -84,12 +85,12 @@ export interface ExternalObjectUiCallback {
84
85
  /**
85
86
  * "onDuplicateExternalObjectGroup" is invoked when a group of root modules is duplicated.
86
87
  * This event request generating a completely new group with the an new root modules
87
- * with exactly the same structure as the group wih the ID "sourceGroupId".
88
- * The new group is placed at the position and orientation defined in "newGroupPosition".
88
+ * with exactly the same structure as the group provided "duplicatedGroup".
89
+ * The new group is placed at the position and orientation defined in "duplicatedGroup".
89
90
  * @param sourceGroupId The ID of the source group of root modules.
90
- * @param newGroupPosition The position and orientation of the new group.
91
+ * @param duplicatedGroup The group of root modules.
91
92
  */
92
- onDuplicateExternalObjectGroup(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
93
+ onDuplicateExternalObjectGroup(sourceGroupId: string, duplicatedGroup: ExternalObjectGroup): void;
93
94
  /**
94
95
  * “onChangedExternalObjectGroupPlan” is invoked when a group of root modules is moved or rotated to a new position
95
96
  * or when the plan itself is changed.
@@ -6,7 +6,7 @@ export declare const CEILING_LIGHT_INTENSITY = 2;
6
6
  export declare const CEILING_LIGHT_DISTANCE = 25;
7
7
  export declare const CEILING_LIGHT_DECAY = 0;
8
8
  export declare const CEILING_LIGHT_POWER = 25;
9
- export declare const CEILING_LIGHT_SHADOW_INTENSITY = 0.5;
9
+ export declare const CEILING_LIGHT_SHADOW_INTENSITY = 0;
10
10
  export declare const CEILING_LIGHT_SHADOW_MAP_SIZE = 0;
11
11
  export default class CeilingLight extends PointLight {
12
12
  private _container;
@@ -4,9 +4,8 @@ import { default as CeilingLight } from './ceiling-light';
4
4
  export declare class LightGroup extends Group {
5
5
  children: CeilingLight[];
6
6
  private _availableShadowMaps;
7
- private _lightsOn;
8
7
  get lightsOn(): boolean;
9
8
  constructor();
10
9
  add(...lights: Array<Object3D<Object3DEventMap>>): this;
11
- toggleAllLights(turnLightsOn: boolean): void;
10
+ toggleAllLights(on: boolean): void;
12
11
  }
@@ -14,7 +14,7 @@ import { MeasurementLineDimension, MeasurementLineDimensionTransferable } from '
14
14
  import { ConstructionMeasurementsTransferable } from './utils/measurements';
15
15
  import { FloorAreaDataTransferable } from './view-model/floor-plan-element-view-model';
16
16
  import { BASE_CONTEXT } from '../../common-core/src/main';
17
- import { ExternalObjectGroup, ExternalObjectGroupPosition, ExternalObjectUiCallback } from './external-object-api-callbacks';
17
+ import { ExternalObjectGroup, ExternalObjectUiCallback } from './external-object-api-callbacks';
18
18
 
19
19
  export interface SelectionPayload {
20
20
  item?: RapiItem;
@@ -206,7 +206,7 @@ export default class RoomlePlannerUiCallback extends UiCallback implements Exter
206
206
  /**
207
207
  * documented in interface ExternalObjectUiCallback
208
208
  */
209
- onDuplicateExternalObjectGroup: (sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition) => void;
209
+ onDuplicateExternalObjectGroup: (sourceGroupId: string, duplicatedGroup: ExternalObjectGroup) => void;
210
210
  /**
211
211
  * documented in interface ExternalObjectUiCallback
212
212
  */
@@ -28,6 +28,7 @@ import { PluginName } from '../../configurator-core/src/utils/plugin-types';
28
28
  import { Nullable } from '../../typings/helper';
29
29
  import { MaybePromise } from '../../common-core/src/utils/common-utils';
30
30
  import { HomagIntelligence } from '../../homag-intelligence/src/homag-intelligence';
31
+ import { RoomleLightSource } from '../../common-core/src/light/light-source';
31
32
 
32
33
  export type ID_TYPE = 'rml_id' | 'tc_id' | 'rml_serialized' | 'tc_serialized';
33
34
  export declare const EXT_OBJ_EXCEPTION = "Could not retrieve configuration for external object! Did you implement onGetConfigurationForExternalObject?";
@@ -499,15 +500,20 @@ export default class RoomlePlanner<P extends readonly PluginName[] = readonly []
499
500
  */
500
501
  resumeInputListeners(): void;
501
502
  /**
502
- * Enables experimental lights in the scene
503
- * @hidden
503
+ * Returns all configurable element's light/lamp sources in the scene.
504
504
  */
505
- turnLightsOn(): void;
505
+ getScenePlanElementLightSources(): Array<Map<number, RoomleLightSource>>;
506
506
  /**
507
- * Disables experimental lights in the scene
508
- * @hidden
507
+ * Turns all lights in the scene on or off.
508
+ * @param state whether the lights should be on or off
509
+ */
510
+ setAllLightsOnOff(state: boolean): void;
511
+ /**
512
+ * Turns lights by list of light IDs in the scene on or off
513
+ * @param state whether the lights should be on or off
514
+ * @param ids array of light IDs, see type interface RoomleLightSource._lightSourceId
509
515
  */
510
- turnLightsOff(): void;
516
+ setLightsOnOffByIds(ids: number[], state: boolean): void;
511
517
  getPlanObjectForRuntimeId(runtimeId: number): Promise<PlanElementViewModel | null>;
512
518
  rotateByRuntimeId(runtimeId: number, rotateBy: number): Promise<void>;
513
519
  deleteByRuntimeId(runtimeId: number): Promise<void>;
@@ -7,7 +7,7 @@ import { default as PlanElementViewModel } from '../../../common-core/src/view-m
7
7
  import { Position3 } from '../../../common-core/src/common-interfaces';
8
8
  import { default as ConfiguratorKernelAccess } from '../../../common-core/src/configurator-kernel-access';
9
9
  import { ExternalObjectApiConfiguration } from '../external-object-api';
10
- import { ExternalObjectGroup, ExternalObjectGroupPosition } from '../external-object-api-callbacks';
10
+ import { ExternalObjectGroup } from '../external-object-api-callbacks';
11
11
 
12
12
  export interface PlannerKernelCallbackI {
13
13
  handlerSwitchedPlans(fromPlan: Plan, toPlan: Plan): void;
@@ -71,7 +71,7 @@ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
71
71
  externalObjectConfigurationLoaded(plan: Plan, planObject: PlanObject, configuration: string): void;
72
72
  externalObjectConfigurationDeleted(plan: Plan, planObject: PlanObject, uniqueId: string): void;
73
73
  externalObjectComponentDeleted(plan: Plan, planObject: PlanObject, remainingGroupOrGroups: ExternalObjectGroup | ExternalObjectGroup[], deletedRootModuleId: string): void;
74
- externalObjectConfigurationDuplicated(plan: Plan, planObject: PlanObject, sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
74
+ externalObjectConfigurationDuplicated(plan: Plan, planObject: PlanObject, duplicatedGroup: ExternalObjectGroup): void;
75
75
  externalObjectPlanChanged(plan: Plan, planObject: PlanObject, movedGroup: ExternalObjectGroup): void;
76
76
  externalObjectConfigurationsMerged(plan: Plan, planObject: PlanObject, mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], targetRootModuleId: string): void;
77
77
  externalObjectComponentSplitOff(plan: Plan, planObject: PlanObject, splitGroups: ExternalObjectGroup[]): void;
@@ -100,7 +100,7 @@ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
100
100
  protected _externalObjectConfigurationLoaded(_objectId: number, configuration: string): void;
101
101
  protected _externalObjectConfigurationDeleted(groupId: string): void;
102
102
  protected _externalObjectComponentDeleted(remainingGroupOrGroups: ExternalObjectGroup | ExternalObjectGroup[], deletedRootModuleId: string): void;
103
- _externalObjectConfigurationDuplicated(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
103
+ _externalObjectConfigurationDuplicated(duplicatedGroup: ExternalObjectGroup): void;
104
104
  _externalObjectPlanChanged(movedGroup: ExternalObjectGroup): Promise<void>;
105
105
  _externalObjectConfigurationsMerged(mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], targetRootModuleId: string): Promise<void>;
106
106
  _externalObjectComponentSplitOff(splitGroups: ExternalObjectGroup[]): void;
@@ -18,7 +18,6 @@ import { default as ConstructionPlanObjectViewModel } from './construction-plan-
18
18
  import { default as MeasurementLinePlanElementViewModel } from './measurement-line-plan-element-view-model';
19
19
  import { LightGroup } from '../lights/light-group';
20
20
  import { QualityLevel } from '../../../common-core/src/webgl/renderer/scene-renderer';
21
- import { default as LampLight } from '../lights/lamp-light';
22
21
  import { Point } from 'roomle-core-hsc/src/embind/configuratorCoreInterface';
23
22
  import { default as WallAtticPlanElementViewModel } from './wall-attic-plan-element-view-model';
24
23
 
@@ -96,7 +95,7 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
96
95
  rotation?: Point;
97
96
  active?: boolean;
98
97
  }): void;
99
- toggleCeilingLights(on: boolean, isInteriorLightsActive: boolean): void;
98
+ toggleCeilingLights(on: boolean): void;
100
99
  private commonHandlerForEditableAndTopView;
101
100
  protected dockComponent(componentId: number, isRootComponent: boolean, parentId: number, componentPosition: KernelVector3, componentRotation: KernelVector3): void;
102
101
  protected _addComponent(component: RoomleComponent): void;
@@ -113,7 +112,6 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
113
112
  getFloorGroup(): Group;
114
113
  getMeasurementLineGroup(): Group;
115
114
  getCeilingLightsGroup(): LightGroup;
116
- getLampLightsArray(): LampLight[];
117
115
  getWallAtticsGroup(): Group;
118
116
  getBoundingBox(): Box3;
119
117
  getBoundingBoxOfGeometry(): Box3;
@@ -170,5 +168,4 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
170
168
  setNodeZoom(zoom: number): void;
171
169
  planCleared(): void;
172
170
  requestCatalogItem(_catalogItemId: string): void;
173
- turnLightsOnOrOff(onOrOff: boolean): void;
174
171
  }
@@ -21,6 +21,7 @@ import { default as Planner3dCameraBehaviour } from '../../../common-core/src/ca
21
21
  import { default as PlannerFpCameraBehaviour } from '../../../common-core/src/cameracontrol/planner-fp-camera-behaviour';
22
22
  import { EMSConstant } from '../../../typings/planner-kernel-container';
23
23
  import { default as InitData } from '../../../common-core/src/utils/init-data';
24
+ import { RoomleLightSource } from '../../../common-core/src/light/light-source';
24
25
 
25
26
  export declare function isLockedElement(planElementViewModel: PlanElementViewModel, initData: InitData): boolean;
26
27
  declare const SET_WALL_MATERIAL_TYPE: {
@@ -54,6 +55,9 @@ export default class PlannerSceneManager extends ConfiguratorSceneManager implem
54
55
  constructor(creator: string, offset: CanvasOffset, plannerCallback: RoomlePlannerCallback, mode: Enumify<typeof CAMERA_TYPE>);
55
56
  get configuratorContext(): import('../../../common-core/src/webgl/configurator-context').default;
56
57
  get hasSingleRoom(): boolean;
58
+ get scenePlanElementLightSources(): Map<number, RoomleLightSource>[];
59
+ setAllLightsOnOff(state: boolean): void;
60
+ setLightsOnOffByIds(ids: number[], state: boolean): void;
57
61
  private _activateElement;
58
62
  planCleared(): void;
59
63
  planHistoryStateChanged(): void;
@@ -221,7 +225,7 @@ export default class PlannerSceneManager extends ConfiguratorSceneManager implem
221
225
  getObjectComponent(id: number): KernelPlanObjectComponent;
222
226
  getCameraParameters3d(): NonNullable<CameraParameter>;
223
227
  private _createCeilingLightGroup;
224
- toggleInteriorLightsSceneSettings(onOrOff: boolean): void;
228
+ toggleInteriorLightsSceneSettings(on: boolean): void;
225
229
  private _insertRapiItems;
226
230
  insertRapiObjects(rapiIds: InsertItemIdInfo[]): Promise<InsertItemResult[]>;
227
231
  }