@roomle/embedding-lib 5.32.0 → 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.
Files changed (37) hide show
  1. package/docs/md/web/embedding/CHANGELOG.md +10 -62
  2. package/package.json +1 -1
  3. package/packages/embedding-lib/src/embedding-lib.d.ts +1 -0
  4. package/packages/embedding-lib/src/examples/utils/homag-intelligence/create-catalog.d.ts +1 -0
  5. package/packages/embedding-lib/src/examples/utils/homag-intelligence/default-api-options.d.ts +6 -22
  6. package/packages/embedding-lib/src/examples/utils/homag-intelligence/util.d.ts +6 -1
  7. package/packages/web-sdk/packages/common-core/mock/kernel-instances.d.ts +1 -0
  8. package/packages/web-sdk/packages/common-core/mock/mock-image-renderer.d.ts +1 -1
  9. package/packages/web-sdk/packages/common-core/src/configurator-kernel-access.d.ts +2 -2
  10. package/packages/web-sdk/packages/common-core/src/utils/shims.d.ts +0 -6
  11. package/packages/web-sdk/packages/common-core/src/view-model/configurator-view-model.d.ts +2 -1
  12. package/packages/web-sdk/packages/common-core/src/webgl/image-renderer.d.ts +2 -1
  13. package/packages/web-sdk/packages/configurator-core/mock/configurator-mock-data.d.ts +0 -2
  14. package/packages/web-sdk/packages/configurator-core/src/roomle-configurator.d.ts +2 -0
  15. package/packages/web-sdk/packages/configurator-core/src/webgl/configurator-scene-manager.d.ts +2 -0
  16. package/packages/web-sdk/packages/homag-intelligence/__tests__/hi-object-selection-test.d.ts +1 -0
  17. package/packages/web-sdk/packages/homag-intelligence/src/api.d.ts +1 -6
  18. package/packages/web-sdk/packages/homag-intelligence/src/debug-logging.d.ts +5 -10
  19. package/packages/web-sdk/packages/homag-intelligence/src/external-object-api.d.ts +38 -0
  20. package/packages/web-sdk/packages/homag-intelligence/src/glue-logic.d.ts +7 -12
  21. package/packages/web-sdk/packages/homag-intelligence/src/hi-object-selection.d.ts +9 -1
  22. package/packages/web-sdk/packages/homag-intelligence/src/loader.d.ts +4 -20
  23. package/packages/web-sdk/packages/homag-intelligence/src/model/oc-scripts-domain.model.d.ts +11 -8
  24. package/packages/web-sdk/packages/planner-core/src/roomle-planner.d.ts +4 -25
  25. package/packages/web-sdk/packages/planner-core/src/view-model/plan-view-model.d.ts +2 -0
  26. package/packages/web-sdk/packages/planner-core/src/webgl/planner-scene-manager.d.ts +5 -3
  27. package/packages/web-sdk/packages/typings/kernel.d.ts +14 -8
  28. package/packages/web-sdk/packages/typings/planner.d.ts +3 -2
  29. package/packages/web-sdk/packages/typings/rapi-types.d.ts +0 -4
  30. package/roomle-embedding-lib.es.js +22 -21
  31. package/roomle-embedding-lib.es.min.js +1 -1
  32. package/roomle-embedding-lib.umd.js +6 -6
  33. package/roomle-embedding-lib.umd.min.js +1 -1
  34. package/src/common/composables/use-configurator-actions-visibility.d.ts +1 -1
  35. package/src/configurator/business-logic/sdk-connector.d.ts +1 -0
  36. package/src/configurator/embedding/exposed-api.d.ts +5 -0
  37. package/src/planner/business-logic/sdk-connector-planner.d.ts +1 -0
@@ -1,70 +1,18 @@
1
- ## [5.32.0](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.31.0...embedding-lib-v5.32.0) (2025-11-18)
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
- * add glb of external objects to snapshot ([d8295c2](https://github.com/roomle-dev/roomle-ui/commit/d8295c2b9647244dc5f944eb8ec06ba3a6ef4b77))
7
- * add images of external objects to snapshot ([aa9ec65](https://github.com/roomle-dev/roomle-ui/commit/aa9ec65ca9af7594756714985fa11edf5de89ced))
8
- * add images of plan to snapshot ([ca864f5](https://github.com/roomle-dev/roomle-ui/commit/ca864f58878f859c945045afa50d1b4faf83f0c6))
9
- * add order data to external object snapshot ([266219e](https://github.com/roomle-dev/roomle-ui/commit/266219ed1e4844646560a894880d0899ddf984a4))
10
- * add plan xml to external object snapshot ([32039e5](https://github.com/roomle-dev/roomle-ui/commit/32039e5b2fb7a471864a2e9ad162914e74769b83))
11
- * calculate selection geometry from geometry bounds ([d03f9d6](https://github.com/roomle-dev/roomle-ui/commit/d03f9d64785f550e6e21a4f1283ea55d4f4a82b2))
12
- * core api - KernelPermissionToDelete ([1b92613](https://github.com/roomle-dev/roomle-ui/commit/1b9261376583de2cc7769525eb9da7b6b1aedcd7))
13
- * core api - loadFreeFlyingExternalObject ([6190ceb](https://github.com/roomle-dev/roomle-ui/commit/6190ceba50c5c62e8ce72ec903af4ae87da00347))
14
- * core api - permissionToDelete ([9cb31e3](https://github.com/roomle-dev/roomle-ui/commit/9cb31e3262f03db6ee317f746a16310d024688a4))
15
- * core api - sub articles ([4f729bc](https://github.com/roomle-dev/roomle-ui/commit/4f729bc2c094903b9214825d3f4d56f69cdef403))
16
- * core api - sub modules ([1743bf6](https://github.com/roomle-dev/roomle-ui/commit/1743bf6d059ba0a32767ea924c3ebf8306c7b8b7))
17
- * core api - updateConfiguration ([68f84ea](https://github.com/roomle-dev/roomle-ui/commit/68f84ea3a46e5a93cd067e0f633f06c3535b9879))
18
- * core api - updateConfiguration ([f01e6f5](https://github.com/roomle-dev/roomle-ui/commit/f01e6f573af8794a7778518133c467ae6b5f133d))
19
- * core api geometry bounds ([69bc272](https://github.com/roomle-dev/roomle-ui/commit/69bc27212b30fbc2ffe47a91e55ebdbaf5c9a177))
20
- * delegate undo/redo to ConfiguratorHistory in isolation mode ([c8fe7c5](https://github.com/roomle-dev/roomle-ui/commit/c8fe7c5e8156bfd980d080ac757c418094ea1dc9))
21
- * download externalObjectSnapshot.json in Homag Intelligence Example ([08e6510](https://github.com/roomle-dev/roomle-ui/commit/08e6510fe787dc70ad03bd184c8026023a34f3cf))
22
- * download orderData.json in Homag Intelligence Catalog Exmaple ([4d84ba4](https://github.com/roomle-dev/roomle-ui/commit/4d84ba42f704c16cda4fd404d890e996837a5b0f))
23
- * download orderManagerGroupData.json in Homag Intelligence Example ([2c100a3](https://github.com/roomle-dev/roomle-ui/commit/2c100a32e00b6f05496b5cdf5fc76819e88a8e12))
24
- * feature flag "undoRedoInConfiguratorInPlanner" ([84fb03c](https://github.com/roomle-dev/roomle-ui/commit/84fb03c250c26c3cd7586e75086877ae86d488b8))
25
- * get valid containers when sub article is selected ([eaeef6e](https://github.com/roomle-dev/roomle-ui/commit/eaeef6ec78309c51bf1a5817fb8673a5270cd4ac))
26
- * getExternalObjectSnapshot api ([0b2f2d7](https://github.com/roomle-dev/roomle-ui/commit/0b2f2d7d7fb779f1ef07bca3354f3e31f5696ab7))
27
- * glue logic - addSubArticle ([76f5bdc](https://github.com/roomle-dev/roomle-ui/commit/76f5bdcd3fbd3828d884bafee0fe2028bce7fb5c))
28
- * glue logic - get valid containers for sub articles ([a829ccf](https://github.com/roomle-dev/roomle-ui/commit/a829ccfd2266a89dadb5b9a63f5eb87fd78d40b6))
29
- * glue logic - get valid sub articles ([0f67084](https://github.com/roomle-dev/roomle-ui/commit/0f6708405dc81f342c5733aae40425ddaee9a73e))
30
- * glue-layer - sub article requests ([451e3b1](https://github.com/roomle-dev/roomle-ui/commit/451e3b12217b75f986024b2aec175230a966482d))
31
- * HI api - getExternalObjectValidSubArticles ([e21f623](https://github.com/roomle-dev/roomle-ui/commit/e21f623ae0c734c6151804d97a13a39493f33a28))
32
- * hi library api for sub articles ([a273e65](https://github.com/roomle-dev/roomle-ui/commit/a273e65052d7d9f5936d3ee8bb0f56c67022562f))
33
- * initially load group from save data if "startInDetail: true" ([a79bcb6](https://github.com/roomle-dev/roomle-ui/commit/a79bcb673b7f59ec9f5f16003981e840c3a2ede5))
34
- * tidy-up core api - requestPreviewGeometry ([430f14d](https://github.com/roomle-dev/roomle-ui/commit/430f14dca912dffa859190b957e44e1bf935db07))
35
- * update article types ([59de0c0](https://github.com/roomle-dev/roomle-ui/commit/59de0c0d4713557604642d3d06d2e02b835a15cb))
36
- * update configurable object from history on undo/redo ([ef89aef](https://github.com/roomle-dev/roomle-ui/commit/ef89aef8be0f4da67116b3669382cfb0623c4c89))
37
- * update external object group from history on undo/redo ([0ba38a9](https://github.com/roomle-dev/roomle-ui/commit/0ba38a9c800dd82fef278c1a2d5c10e8c7790d5f))
38
- * **core:** upgrade to version 2.64.0-alpha.10 ([5086296](https://github.com/roomle-dev/roomle-ui/commit/5086296e1f9c6e41526468370294a9b693243394))
39
- * **core:** upgrade to version 2.64.0-alpha.11 ([8da30f3](https://github.com/roomle-dev/roomle-ui/commit/8da30f36a2ff46c363c8311410617c97c62aa9db))
40
- * **core:** upgrade to version 2.64.0-alpha.12 ([eaefd95](https://github.com/roomle-dev/roomle-ui/commit/eaefd95b4d34c7081da5c19ccffcc3680e91a1c9))
41
- * **core:** upgrade to version 2.64.0-alpha.1 ([03314f1](https://github.com/roomle-dev/roomle-ui/commit/03314f1f61df1162e54cd828ea9caba17b4b8671))
42
- * **core:** upgrade to version 2.64.0-alpha.2 ([783b045](https://github.com/roomle-dev/roomle-ui/commit/783b045fcc6d62434d3f2d554c47fb27b818243e))
43
- * **core:** upgrade to version 2.64.0-alpha.3 ([3fcde79](https://github.com/roomle-dev/roomle-ui/commit/3fcde79f483fc0f7dddcd8140ff9292a1e5922e0))
44
- * **core:** upgrade to version 2.64.0-alpha.4 ([b3afac3](https://github.com/roomle-dev/roomle-ui/commit/b3afac377fdfe47d9b4ec0f31cbcff8a89aec64d))
45
- * **core:** upgrade to version 2.64.0-alpha.5 ([ace7bb0](https://github.com/roomle-dev/roomle-ui/commit/ace7bb017637379c72e747ad19d256a40f228a92))
46
- * **core:** upgrade to version 2.64.0-alpha.6 ([8ab32d8](https://github.com/roomle-dev/roomle-ui/commit/8ab32d831a9f7c965fa6cd14a39b0a8dfa0aad02))
47
- * **core:** upgrade to version 2.64.0-alpha.7 ([7bf70a6](https://github.com/roomle-dev/roomle-ui/commit/7bf70a649dce24de73fa1d34b517a3dcf182e4d0))
48
- * **core:** upgrade to version 2.64.0-alpha.8 ([433f820](https://github.com/roomle-dev/roomle-ui/commit/433f820150e4e6d9b098c1ce93048bf9fe41ab1c))
49
- * **core:** upgrade to version 2.64.0-alpha.9 ([61b7de7](https://github.com/roomle-dev/roomle-ui/commit/61b7de7538883e07eee8f330094d9b75dc3d602f))
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))
50
12
 
51
13
 
52
14
  ### Bug Fixes
53
15
 
54
- * artifacts in scene after external object export ([3335568](https://github.com/roomle-dev/roomle-ui/commit/3335568d16ae379b95ad90245b6c7dd41c8f80c3))
55
- * code review suggestions ([77834aa](https://github.com/roomle-dev/roomle-ui/commit/77834aa671f69e3f236d5e87d186702c155e34e5))
56
- * disable reflection pass if webgpu ([89ee63c](https://github.com/roomle-dev/roomle-ui/commit/89ee63c5589f97b28bd77894ea097c23f3fc94fe))
57
- * flaky test ([d463826](https://github.com/roomle-dev/roomle-ui/commit/d463826ff0705ab7bc490ef15ec88f9c5e7852d9))
58
- * flaky test, lint ([c4a2012](https://github.com/roomle-dev/roomle-ui/commit/c4a20125d4c05a9e462dee3d694afdd934954dcd))
59
- * get group data from glue-layer instead of possible outdate group data from core ([8214993](https://github.com/roomle-dev/roomle-ui/commit/8214993e8ffbebf2d1b3bb413d80bf71c0f43a68))
60
- * initial test fixes ([7e75f5b](https://github.com/roomle-dev/roomle-ui/commit/7e75f5bd65ae4a6733aa81068a33db621d6e68ae))
61
- * on undo redo the group which is stored in the glue layer needs to be recalculated ([fadcdbc](https://github.com/roomle-dev/roomle-ui/commit/fadcdbc2bbb543c7d73c865482dd65512405d0a5))
62
- * recalculate group - don't modify input group but only recalculated group ([fd87ec4](https://github.com/roomle-dev/roomle-ui/commit/fd87ec450f4a15c0a36d7092e671171313ede140))
63
- * tests passing ([6f30123](https://github.com/roomle-dev/roomle-ui/commit/6f3012366cd0907c3e6baad04cc7f9f17c576d1f))
64
- * types, broken e2e ([3971941](https://github.com/roomle-dev/roomle-ui/commit/39719414a2be7cf4b19cefa1d082693d48774ad8))
65
- * vector mock ([ed9e056](https://github.com/roomle-dev/roomle-ui/commit/ed9e0565e4ccfea10db9008dee67dcbdd4faf587))
66
-
67
-
68
- ### Reverts
69
-
70
- * unnecessary changes ([e7888c0](https://github.com/roomle-dev/roomle-ui/commit/e7888c026100958b8d2f8631be0e98271abf93fe))
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.32.0",
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",
@@ -138,6 +138,7 @@ export default class RoomleEmbeddingApi<SdkType, SdkCallbacks> extends Connector
138
138
  * @param initData settings with which the configurator should be started
139
139
  */
140
140
  static createViewer(configuratorId: string, container: HTMLElement, initData: UiInitData, plugins?: PluginDefinitions): Promise<RoomleViewerApi>;
141
+ private static hiMessageHandler;
141
142
  static setupHi(callbacks: HiCallbacks): void;
142
143
  private static _create;
143
144
  private _waitForIframe;
@@ -1 +1,2 @@
1
+ export declare const setCatalogArticles: (data: any) => void;
1
2
  export declare const createCatalog: (articleCatalog: HTMLElement, draggable?: boolean) => Promise<void>;
@@ -1,3 +1,8 @@
1
+ import { ApiOptions } from '@roomle/web-sdk/homag-intelligence/src/loader';
2
+
3
+ interface TcOptions extends ApiOptions {
4
+ libraryId: string;
5
+ }
1
6
  declare const _default: {
2
7
  enableArrangementCorrection: boolean;
3
8
  uiConfiguration: {
@@ -10,31 +15,10 @@ declare const _default: {
10
15
  };
11
16
  materialConfiguration: {
12
17
  defaultMaterial: string;
13
- replaceUnmappedMaterialsWithDefault: boolean;
14
- materialMapping: any[];
15
18
  };
16
19
  debugConfiguration: {
17
20
  createDebugGeometry: boolean;
18
21
  };
19
- tecConfigInfo: {
20
- baseUrlDebug: string;
21
- /**
22
- * If you do not want to use the proxy provided by Roomle
23
- * uncomment the next three lines and comment the line
24
- * which has the Roomle proxy URL in it.
25
- * BE AWARE: That the example url dfteccdeveu01-app.azurewebsites.net
26
- * only works if you requesting from localhost:3100 otherwise you
27
- * will have CORS issues
28
- */
29
- /** comment this line if you do not want to use the Roomle proxy */
30
- baseUrl: string;
31
- subscriptionId: string;
32
- om: {
33
- subscriptionId: string;
34
- key: string;
35
- importBaseUrl: string;
36
- };
37
- libraryId: string;
38
- };
22
+ tecConfigInfo: TcOptions;
39
23
  };
40
24
  export default _default;
@@ -1,5 +1,10 @@
1
1
  export declare const fetchJSONData: (url: string) => Promise<any>;
2
- export declare const fetchDataWithAuthorization: (url: string, type: string, property: string) => Promise<Response>;
2
+ export declare const fetchDataWithAuthorization: (url: string, type: 'json' | 'text', apiOptions: any, debug?: {
3
+ property: string;
4
+ }) => Promise<Response>;
5
+ export declare const loadArticleCatalog: (hiInitData: any) => Promise<any>;
6
+ export declare const loadMasterData: (hiInitData: any) => Promise<any>;
7
+ export declare const loadCalcScript: (hiInitData: any) => Promise<string>;
3
8
  export declare const logInUi: (area: string, message: string, args?: (string | null)[]) => void;
4
9
  export declare const logMessage: (message: string, ...args: (string | null)[]) => void;
5
10
  export declare const logApiCall: (message: string) => void;
@@ -121,6 +121,7 @@ export declare const MOCK_MINIMAL_KERNEL_INSTANCE: {
121
121
  getPlanComponentAnimations: () => KernelParameter[];
122
122
  getComponent: () => any;
123
123
  getPlanObjectPossibleChildren: () => KernelPossibleChild[];
124
+ getComponentOrModuleInformation: () => void;
124
125
  };
125
126
  export declare class MockConfiguratorKernel {
126
127
  }
@@ -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>;
@@ -1,5 +1,5 @@
1
1
  import { default as ConfiguratorContext } from './webgl/configurator-context';
2
- import { DebugClient, KernelDockPairPreview, KernelObjectInformation, EmscriptenString, KernelAnimation, KernelComponent, KernelParameter, KernelParameterGroup, KernelVector3, PlanObject, VariantsList } from '../../typings/kernel';
2
+ import { DebugClient, KernelDockPairPreview, KernelObjectInformation, PossibleChildPreviewElement, EmscriptenString, KernelAnimation, KernelComponent, KernelParameter, KernelParameterGroup, KernelVector3, PlanObject, VariantsList } from '../../typings/kernel';
3
3
  import { default as CommonKernelAccess, KERNEL_TYPE } from './services/common-kernel-access';
4
4
  import { ArticleNumber, ConfigurationHash, ConfigurationString, RapiId, RapiPrice } from '../../typings/rapi-types';
5
5
  import { CommonConfiguratorKernelCallbackI } from './common-configurator-kernel-callback';
@@ -54,7 +54,7 @@ export default class ConfiguratorKernelAccess extends CommonKernelAccess {
54
54
  dockComponent(parentId: number, parentDockId: number, childId: number, childDockId: number): void;
55
55
  changeUseOfHDGeometry(context: ConfiguratorContext, useHDGeometry: boolean): void;
56
56
  webGlPreviewDockings(context: ConfiguratorContext, dragIn: boolean): void;
57
- webGlPreviewDockingsForKernelObjects(context: ConfiguratorContext, dragIn: boolean): void;
57
+ webGlPreviewDockingsForPlanObject(planObjectId: number, possibleChild: PossibleChildPreviewElement, dragIn: boolean): void;
58
58
  previewDockingsWithDrag(componentId: number, planObjectId: number): void;
59
59
  cancelDocking(componentId: number): void;
60
60
  loadConfiguration(configuration: ConfigurationString): void;
@@ -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>;
@@ -4,8 +4,6 @@ export declare const USM_PARTLIST: any;
4
4
  export declare const CUBE_PARTLIST: any;
5
5
  export declare const USM_KERNEL_POSSIBLE_CHILD: KernelPossibleChild;
6
6
  export declare const USM_KERNEL_IMPOSSIBLE_CHILD: KernelPossibleChild;
7
- export declare const EXTERNAL_COMPONENT: KernelPossibleChild;
8
- export declare const EXTERNAL_ITEM: KernelPossibleChild;
9
7
  export declare const USM_RAPI_COMPONENT: {
10
8
  externalIdentifier: string;
11
9
  catalog: string;
@@ -668,6 +668,8 @@ export default class RoomleConfigurator<P extends readonly PluginName[] = readon
668
668
  }>;
669
669
  private _addAdditionalInfoToPossibleChildren;
670
670
  private _getPossibleChildrenForKernelPossibleChildren;
671
+ private _addPossibleChildren;
672
+ private _getPossibleChildrenFromSubArticles;
671
673
  /**
672
674
  * returns unit formatter for formatting input und output values in scene
673
675
  */
@@ -23,6 +23,7 @@ import { default as GlobalInitData } from '../../../common-core/src/utils/global
23
23
  import { CancelSelectionReasons } from '../../../typings/planner';
24
24
  import { default as UnitFormatter } from '../services/unit-formatter';
25
25
  import { AnimationLevelType } from '../utils/animation/animation-helper';
26
+ import { PosArticle } from '../../../homag-intelligence/src/model/oc-scripts-domain.model';
26
27
 
27
28
  export default class ConfiguratorSceneManager extends SceneManager implements ConfiguratorViewModelCallbackI {
28
29
  _creator_: string;
@@ -175,4 +176,5 @@ export default class ConfiguratorSceneManager extends SceneManager implements Co
175
176
  private _showCustomComponentDimensions;
176
177
  private _removeCustomComponentDimensions;
177
178
  clearHighlighting(): void;
179
+ getExternalSubArticles(_id: number): PosArticle[];
178
180
  }
@@ -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
  }
@@ -3,8 +3,8 @@ import { GlueLogic, LibraryData, PlanSnapshot, RoomDesignerRequests } from './gl
3
3
  import { ExternalObjectGroup } from 'roomle-core-hsc/src/embind/plannerCoreInterface';
4
4
  import { ExternalModuleInformation } from '../../typings/kernel';
5
5
  import { CheckResult, PosArticle, PosGroup, PosSaveData } from './model/oc-scripts-domain.model';
6
- import { HiObjectSelection } from './hi-object-selection';
7
- import { LoadExternalObjectOptions } from './external-object-api';
6
+ import { HiObjectSelectionApi } from './hi-object-selection';
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 {
@@ -12,7 +12,7 @@ export declare class GlueLayerRequestDebugLogging implements GlueLogic {
12
12
  private _hiCallbacks;
13
13
  constructor(glueLogic: GlueLogic, hiCallbacks: HiCallbacks);
14
14
  get hiCallbacks(): HiCallbacks | null;
15
- get hiObjectSelection(): HiObjectSelection;
15
+ get hiObjectSelection(): HiObjectSelectionApi;
16
16
  private _logRequest;
17
17
  isLibraryLoaded(libraryId: string): boolean;
18
18
  getLibraryData(libraryId: string): LibraryData | null;
@@ -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>;
@@ -1,8 +1,8 @@
1
1
  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
- import { HiObjectSelection } from './hi-object-selection';
5
- import { LoadExternalObjectOptions } from './external-object-api';
4
+ import { HiObjectSelectionApi } from './hi-object-selection';
5
+ import { ExternalObjectSnapshotSaveResult, ExternalRoomInformation, LoadExternalObjectOptions } from './external-object-api';
6
6
 
7
7
  export interface LibraryIdAndLibraryData {
8
8
  libraryId?: string;
@@ -30,17 +30,12 @@ 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;
43
- hiObjectSelection: HiObjectSelection;
38
+ hiObjectSelection: HiObjectSelectionApi;
44
39
  isLibraryLoaded(libraryId: string): boolean;
45
40
  getLibraryData(libraryId: string): LibraryData | null;
46
41
  addLibrary(libraryData: LibraryData): void;
@@ -87,6 +82,7 @@ export declare class GlueLogicImplementation implements GlueLogic {
87
82
  private _libraryData;
88
83
  private _posDataForLoading;
89
84
  private _posArticleMap;
85
+ private _posSubArticleMap;
90
86
  private _groupMap;
91
87
  private _nextPosDataId;
92
88
  private _hiCallbacks;
@@ -96,7 +92,7 @@ export declare class GlueLogicImplementation implements GlueLogic {
96
92
  private _validSubArticles;
97
93
  constructor(designerRequests: RoomDesignerRequests, hiCallbacks?: HiCallbacks | null);
98
94
  get hiCallbacks(): HiCallbacks | null;
99
- get hiObjectSelection(): HiObjectSelection;
95
+ get hiObjectSelection(): HiObjectSelectionApi;
100
96
  private _getGroup;
101
97
  getLibraryData(data: string | PosGroup): LibraryData | null;
102
98
  isLibraryLoaded(libraryId: string): boolean;
@@ -135,7 +131,6 @@ export declare class GlueLogicImplementation implements GlueLogic {
135
131
  private _splitOffRootModulesFromGroup;
136
132
  private _calculateNewGroup;
137
133
  private _getLibraryIdForPosData;
138
- private _populateRootFromMasterData;
139
134
  private _setSubmoduleImages;
140
135
  private _calculateAndUpdateGroupMap;
141
136
  private _addNewGroup;
@@ -19,7 +19,15 @@ export declare const HI_SELECTION_MODE: {
19
19
  readonly RML_OBJECT: "rml-object";
20
20
  };
21
21
  export type HiSelectionMode = (typeof HI_SELECTION_MODE)[keyof typeof HI_SELECTION_MODE];
22
- export declare class HiObjectSelection {
22
+ export interface HiObjectSelectionApi {
23
+ setSidebar(viewName: string): void;
24
+ contextChanged(context: BASE_CONTEXT): void;
25
+ groupOrModuleSelected(groupId: string, rootModuleId: string | null, subModuleId: string | null): void;
26
+ componentSelectionCancel(reason: CancelSelectionReasons): void;
27
+ selectionCancel(reason: CancelSelectionReasons): void;
28
+ selectionChanged(selectionMode: SELECTION_MODE, objectType: CallbackObjectType, payload: SelectionPayload, _payloadPromise: Promise<SelectionPayload>, _planElementViewModel: PlanElementViewModel): void;
29
+ }
30
+ export declare class HiObjectSelection implements HiObjectSelectionApi {
23
31
  private _callbacks;
24
32
  private _contextType;
25
33
  private _selectionMode;
@@ -1,5 +1,3 @@
1
- import { MasterData } from './model/oc-scripts-domain.model';
2
-
3
1
  export interface HomagIntelligenceInitData {
4
2
  libraryId: string;
5
3
  serverOptions?: ApiOptions;
@@ -8,27 +6,13 @@ export interface HomagIntelligenceInitData {
8
6
  export interface OrderManagerOptions {
9
7
  key?: string;
10
8
  importBaseUrl?: string;
9
+ subscriptionId?: string;
11
10
  }
12
11
  export interface ApiOptions {
13
12
  subscriptionId: string;
14
- om?: OrderManagerOptions;
15
13
  endpointUrl?: string;
14
+ key?: string;
15
+ om?: OrderManagerOptions;
16
+ baseUrl?: string;
16
17
  localUrl?: string;
17
18
  }
18
- export declare const fetchDataWithAuthorization: (url: string, type: 'json' | 'text', apiOptions: ApiOptions, debug?: {
19
- property: string;
20
- }) => Promise<Response>;
21
- export declare const loadArticleCatalog: (apiOptions: HomagIntelligenceInitData) => Promise<any>;
22
- export declare const loadMasterData: (apiOptions: HomagIntelligenceInitData) => Promise<MasterData>;
23
- export declare const loadCalcScript: (apiOptions: HomagIntelligenceInitData) => Promise<string>;
24
- export declare const getRequestSettings: (apiOptions: ApiOptions) => {
25
- subscriptionId: string;
26
- headers: {
27
- headers: {
28
- 'Content-Type': string;
29
- };
30
- };
31
- key: string;
32
- importBaseUrl: string;
33
- };
34
- export declare const omRequest: (apiOptions: ApiOptions, body: any, url: string, debugStr?: string, extraHeaders?: {}) => Promise<any>;
@@ -9,7 +9,7 @@ export declare const enum UserRightLevel {
9
9
  Master = 2
10
10
  }
11
11
  export declare const getUserRightLevel: (right?: PosUserRight | null) => UserRightLevel;
12
- interface PosArticleInfo {
12
+ export interface PosArticleInfo {
13
13
  /**
14
14
  * Defined the library that is used / must match the MasterData
15
15
  */
@@ -31,6 +31,12 @@ interface PosArticleInfo {
31
31
  category?: string;
32
32
  isConfigDummy?: boolean;
33
33
  }
34
+ export interface PosPositionInfo extends PosArticleInfo {
35
+ /**
36
+ * Additional text for this root module
37
+ */
38
+ additionalText?: string;
39
+ }
34
40
  export interface PosPartData {
35
41
  id: string;
36
42
  hidden?: boolean;
@@ -79,18 +85,16 @@ export interface PosModuleData {
79
85
  id: string;
80
86
  name: string;
81
87
  modules?: PosModuleData[];
88
+ containers?: PosModuleData[];
82
89
  parts?: PosPartData[];
83
90
  imageUrl?: string;
84
91
  attributes?: PosModuleAttribute[];
85
92
  canBeDeleted?: boolean;
86
93
  isGenerated?: boolean;
87
94
  checkAttributes?: Map<string, string | number | boolean | undefined>;
95
+ articleInfo?: PosPositionInfo;
88
96
  }
89
- export interface PosModuleRootData extends PosModuleData, PosArticleInfo {
90
- /**
91
- * Additional text for this root module
92
- */
93
- additionalText?: string;
97
+ export interface PosModuleRootData extends PosModuleData, PosPositionInfo {
94
98
  /**
95
99
  * Position of this article; if not set it is always 0,0,0 (x/y/z)
96
100
  */
@@ -315,7 +319,6 @@ export interface CheckDropDownEntry {
315
319
  }
316
320
  export declare enum CheckDropDownEntryKind {
317
321
  Normal = 0,
318
- Conflicting = 1,
319
- Invalid = 2
322
+ Conflicting = 1
320
323
  }
321
324
  export {};
@@ -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;