@roomle/embedding-lib 5.33.0-alpha.1 → 5.33.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.
@@ -1,46 +1,18 @@
1
- ## [5.33.0-alpha.1](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.32.0...embedding-lib-v5.33.0-alpha.1) (2025-11-24)
1
+ ## [5.33.0-alpha.2](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.33.0-alpha.1...embedding-lib-v5.33.0-alpha.2) (2025-11-27)
2
2
 
3
3
 
4
4
  ### Features
5
5
 
6
- * core api - getDrawnPoints ([5b92bd3](https://github.com/roomle-dev/roomle-ui/commit/5b92bd3bacc3d85e57af7f9efe6bc16e4ccac4fd))
7
- * core api - removed externalComponent from possible children ([5efeb4b](https://github.com/roomle-dev/roomle-ui/commit/5efeb4b07b5c15b715c08d27457d36caff0d10f1))
8
- * core api - valid container modules ([eeb3060](https://github.com/roomle-dev/roomle-ui/commit/eeb306085afbeefbf7f1822d0a6ee0336750cdd8))
9
- * create possible children from sub articles ([7af9ea4](https://github.com/roomle-dev/roomle-ui/commit/7af9ea42ad8862e4a1fbe4ac98a5499ddad13536))
10
- * distinguish between articles and sub-articles ([d9b2238](https://github.com/roomle-dev/roomle-ui/commit/d9b223815edfeecd343cd750aeb278c899005399))
11
- * exposed api "loadPlanXml" ([6d490ba](https://github.com/roomle-dev/roomle-ui/commit/6d490bac91944f956a1e7b707a86dbea228fcea3))
12
- * get valid sub articles for external object ([0a55b35](https://github.com/roomle-dev/roomle-ui/commit/0a55b35a29f45f02cf994701a3f05427763d047b))
13
- * interface "HiObjectSelectionApi" for hi object selection ([be880ca](https://github.com/roomle-dev/roomle-ui/commit/be880cad7eba2c4326b649232c6279d7cfc071e5))
14
- * removed deprecated core api ([64ae74b](https://github.com/roomle-dev/roomle-ui/commit/64ae74b4f90d50b74bb89857111247a2994f1ecc))
15
- * request sub article geometry for preview ([4e487c3](https://github.com/roomle-dev/roomle-ui/commit/4e487c3aa68f3e3f5afb3365763eba3f001ae408))
16
- * tidy-up permission to delete component ([b97dbc4](https://github.com/roomle-dev/roomle-ui/commit/b97dbc4ad7cc931f5a872be3e3fff8c86bd63a5f))
17
- * trigger external docking preview via api ([999924a](https://github.com/roomle-dev/roomle-ui/commit/999924ae804911ce336a56c53a1d45b934b2c96e))
18
- * update hi object model types ([098deef](https://github.com/roomle-dev/roomle-ui/commit/098deeff8682af334b5c3d47fb2789ec2b06f628))
19
- * **core:** upgrade to version 2.65.0-alpha.1 ([171c863](https://github.com/roomle-dev/roomle-ui/commit/171c8633afb6c4292d462e8ec61138f5210692e5))
20
- * **core:** upgrade to version 2.65.0-alpha.2 ([f4dfc54](https://github.com/roomle-dev/roomle-ui/commit/f4dfc54deb3b2c112e4e2a72347931dece4b5d16))
21
- * **core:** upgrade to version 2.65.0-alpha.3 ([8a31b8b](https://github.com/roomle-dev/roomle-ui/commit/8a31b8b99bdbc84c48b09d4ac7603653455f1c40))
22
- * **core:** upgrade to version 2.65.0-alpha.4 ([214ee4f](https://github.com/roomle-dev/roomle-ui/commit/214ee4fa8382252e7c2306d5df5a69428b42a989))
23
- * **core:** upgrade to version 2.65.0-alpha.5 ([7927a07](https://github.com/roomle-dev/roomle-ui/commit/7927a07f1e2913307ee3520fcfc9f10526cdd075))
24
- * use relative paths ([865a826](https://github.com/roomle-dev/roomle-ui/commit/865a8265fbc0642ead26f290a22b3fecdd59430c))
6
+ * core api - object component and permission to delete ([087aff9](https://github.com/roomle-dev/roomle-ui/commit/087aff965a24f99a9780a604af743dfdcaf99559))
7
+ * core api - Plan.getRotationForFrontView ([af665c7](https://github.com/roomle-dev/roomle-ui/commit/af665c7af8b2d7d8b9becbaaf7ffa142948dc525))
8
+ * enable undo/redo in isolation mode and remove feature flag ([cc5f059](https://github.com/roomle-dev/roomle-ui/commit/cc5f0590b79879a17eb5ef4d6c0ea67e6f4cf7ad))
9
+ * set rotation for perspective object image ([6d29fd1](https://github.com/roomle-dev/roomle-ui/commit/6d29fd15ddfdeee32e4de508782bf91d516db609))
10
+ * **core:** upgrade to version 2.65.0-alpha.6 ([bbfd2ad](https://github.com/roomle-dev/roomle-ui/commit/bbfd2ade04bf31e8d67abc910864b335ba873f63))
11
+ * **core:** upgrade to version 2.65.0-alpha.7 ([b2b491c](https://github.com/roomle-dev/roomle-ui/commit/b2b491c1099c62d67f42ebb05c3afb72a72c1463))
25
12
 
26
13
 
27
14
  ### Bug Fixes
28
15
 
29
- * add missing build feature-flags command ([12336e9](https://github.com/roomle-dev/roomle-ui/commit/12336e9de4594b1359aad10d6bf784f0eb037803))
30
- * article name of generated hi modules ([5556bd2](https://github.com/roomle-dev/roomle-ui/commit/5556bd2a5af526e8cb51127cc6a70197c74832e5))
31
- * check for length, not for array presence ([9cb4a57](https://github.com/roomle-dev/roomle-ui/commit/9cb4a57d6edeffe4a74818b0152569b8308e0a1c))
32
- * check possibleChild.articleId?.length ([5f6bb01](https://github.com/roomle-dev/roomle-ui/commit/5f6bb01f55dd87508ca8badb1db9890ff2bfbad1))
33
- * copying attributes from article data to new group data ([f4ef254](https://github.com/roomle-dev/roomle-ui/commit/f4ef2547d721c63a653d87b1e883270dc071df18))
34
- * error handling in loadPlanXml ([079e257](https://github.com/roomle-dev/roomle-ui/commit/079e257156fbdb05a224e101861238bab1266992))
35
- * filter catalog articles ([392c05d](https://github.com/roomle-dev/roomle-ui/commit/392c05d90b6e22c3dd6c7e7ae87bc5fc3b377778))
36
- * filter for the tag with visibilityStatus 2 ([464f136](https://github.com/roomle-dev/roomle-ui/commit/464f136e06d07a029c025d2c57e0dd19a2d6c664))
37
- * glue-logic - add sub article ([60b7fdc](https://github.com/roomle-dev/roomle-ui/commit/60b7fdc0903a4d09470b1b6f69c1a280a40349cd))
38
- * hi example subscription endpoint and catalog ([aefad46](https://github.com/roomle-dev/roomle-ui/commit/aefad462e482ad9d6446dc1d4c1a52ce310c8d41))
39
- * hi undo/redo (messed up when merging) ([2dffbaa](https://github.com/roomle-dev/roomle-ui/commit/2dffbaa8cd503c44560b04bb7951e33ff9b4358c))
40
- * make build work again ([1e22431](https://github.com/roomle-dev/roomle-ui/commit/1e22431f2bb1b445efb63c7f9e7d15587f0fe096))
41
- * recalculate group after adding sub article ([f26894c](https://github.com/roomle-dev/roomle-ui/commit/f26894ca22d7a8bd885312de12fdd5f791e3b049))
42
- * remove hi message handler before adding a new one ([632fdea](https://github.com/roomle-dev/roomle-ui/commit/632fdea46e1feea7e1b9d5b04e627f76bed91194))
43
- * remove redundant explicit initialization ([02e3cdd](https://github.com/roomle-dev/roomle-ui/commit/02e3cdda41a49ebfb56bfcbc3b367b5b20e20c35))
44
- * supply oncollapse to mobile search ([4abcda7](https://github.com/roomle-dev/roomle-ui/commit/4abcda7ad04a0854dd75cb66d898266619f61f17))
45
- * tidy-up glue logic for taking over properties from the article to the group ([e4c875e](https://github.com/roomle-dev/roomle-ui/commit/e4c875e5ac12c93290a3941179477a2893d2ee69))
46
- * visibility toggle not working on mobile ([1f8cae4](https://github.com/roomle-dev/roomle-ui/commit/1f8cae4f36af8cee87a1cd4e77c5cb47e203fd08))
16
+ * cannot read properties of null ([873981e](https://github.com/roomle-dev/roomle-ui/commit/873981ebf763052882affb13216d509df113eca8))
17
+ * typo in comment ([3a381c1](https://github.com/roomle-dev/roomle-ui/commit/3a381c1cd9c6ac2a10657f5a7ae391f840b2a32c))
18
+ * **planner:** update bounding box of configurable construction items ([ccc5de1](https://github.com/roomle-dev/roomle-ui/commit/ccc5de14ca67a6e8b9c8475661b29a8fb074fce3))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomle/embedding-lib",
3
- "version": "5.33.0-alpha.1",
3
+ "version": "5.33.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",
@@ -11,7 +11,7 @@ export default class MockImageRenderer {
11
11
  switchToPlannerSettings(): void;
12
12
  switchToConfiguratorSettings(): void;
13
13
  static getCameraTargetForBBox(bbox: Box3, spacing?: number): CameraTarget;
14
- preparePerspectiveImage(_scene: Scene, _uiScene: Scene, _camera: PerspectiveCamera, _cameraTarget: CameraTarget, _options?: PrepareImageOptions, _objectRotation?: number): Promise<Base64Image>;
14
+ preparePerspectiveImage(_scene: Scene, _uiScene: Scene, _camera: PerspectiveCamera, _cameraTarget: CameraTarget, _options?: PrepareImageOptions): Promise<Base64Image>;
15
15
  renderPerspectiveImage(_scene: Scene, _camera: PerspectiveCamera, _cameraTarget: CameraTarget, _size?: number): Promise<Base64Image>;
16
16
  static placeCameraForPerspectiveImage(_camera: PerspectiveCamera, _cameraTarget: CameraTarget, _angleX: number, _angleY: number): void;
17
17
  prepareTopImage(_scene: Scene, _uiScene: Scene, _cameraTarget: CameraTarget, _options?: PrepareImageOptions): Promise<Base64Image>;
@@ -118,12 +118,6 @@ export interface FeatureFlags {
118
118
  * @description If true, the advanced dimensioning is enabled (for test purposes only)
119
119
  */
120
120
  advancedDimensioning?: boolean;
121
- /**
122
- * @internal
123
- * @description If true, the undo/redo feature is enabled in the configurator in planner.
124
- * This is for test purposes only.
125
- */
126
- undoRedoInConfiguratorInPlanner?: boolean;
127
121
  /**
128
122
  * @internal
129
123
  * @description If true, the scene will be rendered with WebGPU instead of WebGL
@@ -1,4 +1,4 @@
1
- import { RoomleComponent, PreviewComponent, PreviewLineComponent, RoomleComponentFactory } from '../../../common-core/src/webgl/roomle-component-factory';
1
+ import { PreviewComponent, PreviewLineComponent, RoomleComponent, RoomleComponentFactory } from '../../../common-core/src/webgl/roomle-component-factory';
2
2
  import { ConfiguratorKernelCallbackI } from '../configurator-kernel-access';
3
3
  import { KernelComponent, KernelDockPairPreview, KernelEnum, KernelLightSourceAttributes, KernelMeshAttributes, KernelMeshBuffer, KernelParameter, KernelVector3, PlanObject } from '../../../typings/kernel';
4
4
  import { ConfigurationString } from '../../../typings/rapi-types';
@@ -52,6 +52,7 @@ export default class ConfiguratorViewModel implements ConfiguratorKernelCallback
52
52
  private _applyMeshUVTransform;
53
53
  updateAnimationParameters(elementId: number | number[], parameters: KernelParameter[]): void;
54
54
  changeAnimationValue(elementId: number, parameterKey: string, value: string, level: number, animationLevel: AnimationLevelType, animate: boolean): void;
55
+ protected updatePlanElement(_elementId: number): void;
55
56
  getComponentFromRuntimeId(elementId: number): RoomleComponent | null;
56
57
  private _addMeshToSubPart;
57
58
  private _addMeshToComponent;
@@ -13,6 +13,7 @@ export interface PrepareImageOptions {
13
13
  size?: number;
14
14
  showDimensions?: boolean;
15
15
  runtimeIds?: number[];
16
+ rotationY?: number;
16
17
  }
17
18
  export interface CameraTarget {
18
19
  center: Vector3;
@@ -29,7 +30,7 @@ export default class ImageRenderer {
29
30
  switchToConfiguratorSettings(): void;
30
31
  updateBounds(bounds: Box3): void;
31
32
  static getCameraTargetForBBox(bbox: Box3, spacing?: number): CameraTarget;
32
- preparePerspectiveImage(scene: Scene, uiScene: Scene, camera: PerspectiveCamera, cameraTarget: CameraTarget, options?: PrepareImageOptions, objectRotation?: number, onBeforeRender?: (camera: Camera) => void): Promise<Base64Image>;
33
+ preparePerspectiveImage(scene: Scene, uiScene: Scene, camera: PerspectiveCamera, cameraTarget: CameraTarget, options?: PrepareImageOptions, onBeforeRender?: (camera: Camera) => void): Promise<Base64Image>;
33
34
  renderPerspectiveImage(scene: Scene, camera: PerspectiveCamera, cameraTarget: CameraTarget, size?: number): Promise<Base64Image>;
34
35
  static placeCameraForPerspectiveImage(camera: PerspectiveCamera, cameraTarget: CameraTarget, angleX: number, angleY: number): void;
35
36
  prepareTopImage(scene: Scene, uiScene: Scene, cameraTarget: CameraTarget, options?: PrepareImageOptions): Promise<Base64Image>;
@@ -20,12 +20,7 @@ export declare class RoomDesignerApi implements RoomDesignerRequests {
20
20
  deleteRootModule(rootModuleId: string): void;
21
21
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
22
22
  getRoomInformation(): Promise<import('./external-object-api').ExternalRoomInformation>;
23
- generatePlanSnapshot(): Promise<{
24
- objectId: string;
25
- planId: string;
26
- }>;
27
- saveExternalObjectSnapshot(): Promise<import('../../typings/rapi-types').RapiPlanSnapshotGetDataWith3dUrls>;
23
+ saveExternalObjectSnapshot(): Promise<import('./external-object-api').ExternalObjectSnapshotSaveResult>;
28
24
  saveCurrentPlanSnapshot(): Promise<import('../../typings/rapi-types').RapiPlanSnapshotGetData>;
29
25
  renderPosDataImage(posDataJson: object): Promise<void>;
30
- downloadGlb(): Promise<void>;
31
26
  }
@@ -4,7 +4,7 @@ import { ExternalObjectGroup } from 'roomle-core-hsc/src/embind/plannerCoreInter
4
4
  import { ExternalModuleInformation } from '../../typings/kernel';
5
5
  import { CheckResult, PosArticle, PosGroup, PosSaveData } from './model/oc-scripts-domain.model';
6
6
  import { HiObjectSelectionApi } from './hi-object-selection';
7
- import { LoadExternalObjectOptions } from './external-object-api';
7
+ import { ExternalObjectSnapshotSaveResult, ExternalRoomInformation, LoadExternalObjectOptions } from './external-object-api';
8
8
  import { ExternalObjectValidContainerModules } from './external-object-api-callbacks';
9
9
 
10
10
  export declare class GlueLayerRequestDebugLogging implements GlueLogic {
@@ -58,11 +58,6 @@ export declare class GlueLayerResponseDebugLogging implements RoomDesignerReques
58
58
  deleteGroup(groupId: string): void;
59
59
  deleteRootModule(rootModuleId: string): void;
60
60
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
61
- getRoomInformation(): Promise<any>;
62
- generatePlanSnapshot(): Promise<{
63
- objectId: string;
64
- planId: string;
65
- }>;
66
- saveExternalObjectSnapshot(): Promise<any>;
67
- saveCurrentPlanSnapshot(): Promise<any>;
61
+ getRoomInformation(): Promise<ExternalRoomInformation>;
62
+ saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null>;
68
63
  }
@@ -1,4 +1,5 @@
1
1
  import { Position3 } from '../../common-core/src/common-interfaces';
2
+ import { RapiId } from '../../typings/rapi-types';
2
3
  import { CheckResult, PosArticle, PosContour } from './model/oc-scripts-domain.model';
3
4
 
4
5
  export interface ExternalObjectUiSliderRange {
@@ -64,6 +65,26 @@ export interface LoadExternalObjectOptions {
64
65
  export interface LoadExternalObjectGroupResult {
65
66
  id: number;
66
67
  }
68
+ export interface ExternalObjectSnapshotData {
69
+ orderData: string;
70
+ planXML: string;
71
+ objectGlb: string;
72
+ perspectiveImage: string;
73
+ topImage: string;
74
+ perspectiveObjectImage: string;
75
+ topObjectImage: string;
76
+ }
77
+ export interface ExternalObjectSnapshotSaveResult {
78
+ orderData: string;
79
+ planSnapshotId: string;
80
+ perspectiveImageLink: string;
81
+ topImageLink: string;
82
+ fullPlanGlbLink: string;
83
+ perspectiveObjectImageLink: string;
84
+ topObjectImageLink: string;
85
+ objectGlbLink: string;
86
+ glb: string;
87
+ }
67
88
  export interface ExternalObjectAPI {
68
89
  /**
69
90
  * With "configureExternalObjectApi" the default representation of the objects and UI and
@@ -196,5 +217,22 @@ export interface ExternalObjectAPI {
196
217
  * "getExternalRoomInformation" returns the room information for currently loaded in the plan.
197
218
  */
198
219
  getExternalRoomInformation(): Promise<ExternalRoomInformation>;
220
+ /**
221
+ * It generates a snapshot of the external object in the plan without saving any data.
222
+ * The snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
223
+ * and only the objects in the scene, as well as perspective images and a top image.
224
+ * The complete XML plan is returned. The assets are returned as base64 strings.
225
+ * @returns the snapshot of the external objects
226
+ */
227
+ getExternalObjectSnapshot(): Promise<ExternalObjectSnapshotData | null>;
228
+ /**
229
+ * It generates a snapshot of the external object and saves the data and assets in the Roomle backend.
230
+ * The snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
231
+ * and only the objects in the scene, as well as perspective images and a top image.
232
+ * Only the plan snapshot ID is returned from the plan. The assets are returned as URLs.
233
+ * @param parentPlanId id of the current plan, optional
234
+ * @returns the snapshot of the external objects if there are no external objects it returns null
235
+ */
236
+ saveExternalObjectSnapshot(parentPlanId?: RapiId): Promise<ExternalObjectSnapshotSaveResult | null>;
199
237
  }
200
238
  export declare const getDefaultExternalObjectApiConfiguration: () => Promise<ExternalObjectApiConfiguration>;
@@ -2,7 +2,7 @@ import { HiCallbacks } from '../../../../embedding-lib/src/embedding-lib';
2
2
  import { ExternalModuleInformation, ExternalObjectGroup, ExternalObjectValidContainerModules } from './external-object-api-callbacks';
3
3
  import { MasterData, PosModuleAttribute, PosGroup, PosModuleData, CheckResult, PosSaveData, PosArticle } from './model/oc-scripts-domain.model';
4
4
  import { HiObjectSelectionApi } from './hi-object-selection';
5
- import { LoadExternalObjectOptions } from './external-object-api';
5
+ import { ExternalObjectSnapshotSaveResult, ExternalRoomInformation, LoadExternalObjectOptions } from './external-object-api';
6
6
 
7
7
  export interface LibraryIdAndLibraryData {
8
8
  libraryId?: string;
@@ -30,13 +30,8 @@ export interface RoomDesignerRequests {
30
30
  deleteGroup(groupId: string): void;
31
31
  deleteRootModule(rootModuleId: string): void;
32
32
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
33
- getRoomInformation(): Promise<any>;
34
- generatePlanSnapshot(): Promise<{
35
- objectId: string;
36
- planId: string;
37
- }>;
38
- saveExternalObjectSnapshot(): Promise<any>;
39
- saveCurrentPlanSnapshot(): Promise<any>;
33
+ getRoomInformation(): Promise<ExternalRoomInformation>;
34
+ saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null>;
40
35
  }
41
36
  export interface GlueLogic {
42
37
  hiCallbacks: HiCallbacks | null;
@@ -4,7 +4,7 @@ import { GlbViewer } from '../../glb-viewer-core/src/glb-viewer';
4
4
  import { default as Main, ExternalEmbeddable, GlobalAPI, KernelUtilityForUi, RubensAPI } from '../../common-core/src/main';
5
5
  import { Configurator } from '../../configurator-core/src/configurator';
6
6
  import { GlobalInitDataDefinition, InitDataDefinition } from '../../common-core/src/utils/shims';
7
- import { ConfigurationString, RapiConfiguration, RapiId, RapiItem, RapiPlan, RapiPlanSnapshotGetData, RapiPlanSnapshotGetDataWith3dUrls } from '../../typings/rapi-types';
7
+ import { ConfigurationString, RapiConfiguration, RapiId, RapiItem, RapiPlan, RapiPlanSnapshotGetData } from '../../typings/rapi-types';
8
8
  import { Context } from '../../common-core/src/di/context';
9
9
  import { KernelAttic, PlanObject, WallSide, CancelSelectionReasons, KernelObject, KernelWall, PlanInteractionHandler, PlanModelViewHelper, PlanOverview } from '../../typings/planner';
10
10
  import { KernelAccessCallbackI } from '../../common-core/src/kernel-access-callback';
@@ -21,11 +21,10 @@ import { default as PlanElementViewModel } from '../../common-core/src/view-mode
21
21
  import { default as WallPlanElementViewModel } from './view-model/wall-plan-element-view-model';
22
22
  import { default as ConfiguratorContext } from '../../common-core/src/webgl/configurator-context';
23
23
  import { default as IdbManager } from '../../common-core/src/services/idb-manager';
24
- import { LoadExternalObjectGroupResult, LoadExternalObjectOptions, ExternalObjectAPI, ExternalObjectApiConfiguration, ExternalObjectModuleIdMap, ExternalRoomInformation, HiContextAction } from '../../homag-intelligence/src/external-object-api';
24
+ import { ExternalObjectSnapshotData, ExternalObjectSnapshotSaveResult, LoadExternalObjectGroupResult, LoadExternalObjectOptions, ExternalObjectAPI, ExternalObjectApiConfiguration, ExternalObjectModuleIdMap, ExternalRoomInformation, HiContextAction } from '../../homag-intelligence/src/external-object-api';
25
25
  import { GlobalCallback } from '../../common-core/src/services/global-callback';
26
26
  import { ExternalGroupData, ExternalObject, ExtObjId } from '../../typings/external-objects';
27
27
  import { PluginName } from '../../configurator-core/src/utils/plugin-types';
28
- import { Nullable } from '../../typings/helper';
29
28
  import { MaybePromise } from '../../common-core/src/utils/common-utils';
30
29
  import { HomagIntelligence } from '../../homag-intelligence/src/homag-intelligence';
31
30
  import { RoomleLightSource } from '../../common-core/src/light/light-source';
@@ -360,28 +359,8 @@ export default class RoomlePlanner<P extends readonly PluginName[] = readonly []
360
359
  * @param sceneEvents
361
360
  */
362
361
  setSceneEvents(sceneEvents: SceneEvents): void;
363
- /**
364
- * It generates a snapshot of the external object in the plan without saving any data.
365
- * The snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
366
- * and only the objects in the scene, as well as perspective images and a top image.
367
- * @returns the snapshot of the external objects
368
- */
369
- getExternalObjectSnapshot(): Promise<{
370
- orderData: any;
371
- planXML: string;
372
- objectGlb: string;
373
- perspectiveImage: string;
374
- topImage: string;
375
- perspectiveObjectImage: string;
376
- topObjectImage: string;
377
- }>;
378
- /**
379
- * Saves a snapshot of the external objects in the plan without walls and other objects
380
- * Also contains the urls to the glb and usdz files
381
- * @param parentPlanId id of the current plan, optional
382
- * @returns the snapshot of the external objects if there are no external objects it returns null
383
- */
384
- saveExternalObjectSnapshot(parentPlanId?: RapiId): Promise<Nullable<RapiPlanSnapshotGetDataWith3dUrls>>;
362
+ getExternalObjectSnapshot(): Promise<ExternalObjectSnapshotData | null>;
363
+ saveExternalObjectSnapshot(parentPlanId?: RapiId): Promise<ExternalObjectSnapshotSaveResult | null>;
385
364
  private _getExternalObjectGroupsInPlan;
386
365
  private _savePlanSnapshotExternalObjects;
387
366
  saveCurrentPlanSnapshot(parentPlanId?: RapiId, configurationHashOrGroupId?: string | string[]): Promise<RapiPlanSnapshotGetData>;
@@ -101,6 +101,8 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
101
101
  protected _addComponent(component: RoomleComponent): void;
102
102
  private _getPlanObjectViewModelForRuntimeId;
103
103
  getConfigurablePlanObjectForId(id: number): ConfiguratorPlanObjectViewModel;
104
+ private _findPlanObjectViewModel;
105
+ protected updatePlanElement(elementId: number): void;
104
106
  getStaticPlanObjectForId(id: number): StaticPlanObjectViewModel;
105
107
  getConstructionObjectForId(id: number): ConstructionPlanObjectViewModel;
106
108
  getStaticPlanObjectViewModelForId(id: number): StaticPlanObjectViewModel;
@@ -1,6 +1,6 @@
1
1
  import { Base64Image, CanvasOffset } from '../../../common-core/src/common-interfaces';
2
2
  import { PlannerKernelCallbackI } from '../services/planner-kernel-access';
3
- import { CORE_TYPE_OF_CORE_ID, CancelSelectionReasons, Plan, PlanElement } from '../../../typings/planner';
3
+ import { CancelSelectionReasons, CORE_TYPE_OF_CORE_ID, Plan, PlanElement } from '../../../typings/planner';
4
4
  import { KernelPlanObjectComponent, KernelEnum, KernelPlanObject, KernelVector3, RuntimeId } from '../../../typings/kernel';
5
5
  import { default as PlannerSceneEventHandler } from './planner-scene-event-handler';
6
6
  import { BatchPaintMaterial, InsertItemIdInfo, InsertItemResult, RoomlePlannerCallback, SceneEvents } from '../roomle-planner';
@@ -14,7 +14,7 @@ import { default as PlanViewModel } from '../view-model/plan-view-model';
14
14
  import { default as ConfiguratorSceneManager } from '../../../configurator-core/src/webgl/configurator-scene-manager';
15
15
  import { default as WallPlanElementViewModel } from '../view-model/wall-plan-element-view-model';
16
16
  import { Enumify } from '../../../common-core/src/types';
17
- import { Object3D, Box3 } from 'three';
17
+ import { Box3, Object3D } from 'three';
18
18
  import { CameraTarget, PrepareImageOptions } from '../../../common-core/src/webgl/image-renderer';
19
19
  import { default as Planner2dCameraBehaviour } from '../../../common-core/src/cameracontrol/planner-2d-camera-behaviour';
20
20
  import { default as Planner3dCameraBehaviour } from '../../../common-core/src/cameracontrol/planner-3d-camera-behaviour';
@@ -71,6 +71,7 @@ export interface KernelPart {
71
71
  count: number;
72
72
  currencySymbol: string;
73
73
  permissionToDelete: KernelPermissionToDelete;
74
+ permissionToDeleteInIsolation: KernelPermissionToDelete;
74
75
  label: string;
75
76
  parameters: KernelPartListParameter[];
76
77
  price: number;
@@ -265,11 +266,12 @@ export declare const CORE_PERMISSION_TO_DELETE: {
265
266
  readonly ALWAYS: 2;
266
267
  };
267
268
  export interface KernelPlanObjectComponent extends KernelPlanObjectBase {
269
+ isExternalObject: boolean;
268
270
  type: KernelComponentType;
271
+ isChildObject: boolean;
269
272
  objectMode: ChildEntityMode;
270
273
  planComponentRuntimeId: number;
271
274
  componentId: string;
272
- permissionToDelete: KernelPermissionToDelete;
273
275
  parentObjectId: number;
274
276
  childObjectIds: ems.EmsArray<number>;
275
277
  externalObjectGroupId: string;
@@ -277,6 +279,9 @@ export interface KernelPlanObjectComponent extends KernelPlanObjectBase {
277
279
  externalSubModuleId: string;
278
280
  isAGeneratedModule: boolean;
279
281
  canBeDeleted: boolean;
282
+ permissionToDelete: KernelPermissionToDelete;
283
+ permissionToDeleteInIsolation: KernelPermissionToDelete;
284
+ isExchangeable: boolean;
280
285
  animations?: KernelAnimation[];
281
286
  }
282
287
  export interface UiPlanObject extends KernelPlanObject {
@@ -312,6 +317,7 @@ export interface KernelComponent {
312
317
  id: number;
313
318
  valid: boolean;
314
319
  permissionToDelete: KernelPermissionToDelete;
320
+ permissionToDeleteInIsolation: KernelPermissionToDelete;
315
321
  objectId: number;
316
322
  rootId: number;
317
323
  rootSiblingIds: number[];
@@ -495,6 +501,7 @@ export interface KernelObjectInformation {
495
501
  source: string;
496
502
  type: KernelComponentType;
497
503
  permissionToDelete: KernelPermissionToDelete;
504
+ permissionToDeleteInIsolation: KernelPermissionToDelete;
498
505
  }
499
506
  export interface ExternalAttributeInformation {
500
507
  groupId: string;
@@ -29,6 +29,7 @@ export interface Plan extends KernelObject {
29
29
  getPlanXML(includeRuntimeId: boolean, xmlVersion: number /** current version is 2 */): string;
30
30
  createPlanXmlWithSingleObject(object: PlanObject, includeRuntimeId: boolean, version: number): string;
31
31
  createPlanXmlWithObjects(objectId: string | string[], includeRuntimeId: boolean, version: number): string;
32
+ getRotationForFrontView(objectIds: number | number[]): number;
32
33
  getWallCount(): number;
33
34
  getId(): number;
34
35
  }
@@ -320,10 +320,6 @@ export interface RapiPlanSnapshotGetData extends RapiPlanSnapshotPostData {
320
320
  perspectiveImage: string;
321
321
  topImage: string;
322
322
  }
323
- export interface RapiPlanSnapshotGetDataWith3dUrls extends RapiPlanSnapshotGetData {
324
- glb: string;
325
- usdz: string;
326
- }
327
323
  export interface RapiRetailer extends RapiJson {
328
324
  }
329
325
  export interface RapiConfiguration extends RapiJson {