@roomle/embedding-lib 5.29.0 → 5.30.0-alpha.1

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 (28) hide show
  1. package/docs/md/web/embedding/CHANGELOG.md +27 -43
  2. package/package.json +1 -1
  3. package/packages/embedding-lib/src/embedding-lib.d.ts +14 -0
  4. package/packages/embedding-lib/src/examples/homag-intelligence-catalog-load-async.d.ts +14 -0
  5. package/packages/embedding-lib/src/examples/utils/homag-intelligence/util.d.ts +1 -0
  6. package/packages/web-sdk/packages/homag-intelligence/src/api.d.ts +4 -1
  7. package/packages/web-sdk/packages/homag-intelligence/src/debug-logging.d.ts +54 -0
  8. package/packages/web-sdk/packages/homag-intelligence/src/emulator.d.ts +10 -6
  9. package/packages/web-sdk/packages/homag-intelligence/src/hi-tag-catalog-callbacks.d.ts +3 -3
  10. package/packages/web-sdk/packages/homag-intelligence/src/homag-intelligence.d.ts +5 -6
  11. package/packages/web-sdk/packages/homag-intelligence/src/loader.d.ts +16 -4
  12. package/packages/web-sdk/packages/homag-intelligence/src/orders.d.ts +3 -7
  13. package/packages/web-sdk/packages/planner-core/src/external-object-api.d.ts +1 -1
  14. package/packages/web-sdk/packages/planner-core/src/roomle-planner.d.ts +9 -1
  15. package/packages/web-sdk/packages/planner-core/src/utils/planner-selection-handler.d.ts +1 -1
  16. package/packages/web-sdk/packages/planner-core/src/webgl/planner-scene-manager.d.ts +2 -2
  17. package/packages/web-sdk/packages/typings/kernel.d.ts +3 -0
  18. package/packages/web-sdk/packages/typings/planner.d.ts +15 -0
  19. package/roomle-embedding-lib.es.js +45 -26
  20. package/roomle-embedding-lib.es.min.js +1 -1
  21. package/roomle-embedding-lib.umd.js +4 -4
  22. package/roomle-embedding-lib.umd.min.js +1 -1
  23. package/src/common/composables/use-planner-actions-visibility.d.ts +4 -0
  24. package/src/common/store/common-ui-store.d.ts +4 -1
  25. package/src/common/utils/root-tags.d.ts +6 -0
  26. package/src/configurator/business-logic/sdk-connector.d.ts +1 -0
  27. package/src/configurator/embedding/exposed-api.d.ts +5 -0
  28. package/src/planner/components/overlays/product-settings/ProductRangeControl.vue.d.ts +4 -1
@@ -1,51 +1,35 @@
1
- ## [5.29.0](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.28.0...embedding-lib-v5.29.0) (2025-10-07)
1
+ ## [5.30.0-alpha.1](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.29.0...embedding-lib-v5.30.0-alpha.1) (2025-10-08)
2
2
 
3
3
 
4
4
  ### Features
5
5
 
6
- * add the external object prefix to the ID if the object type is “tc_id” ([fa5188c](https://github.com/roomle-dev/roomle-ui/commit/fa5188cd5213fe7def41d5011231234df5eb4011))
7
- * added "respondWithPositionInPlan" argument to "loadExternalObjectGroup" ([a3fceb3](https://github.com/roomle-dev/roomle-ui/commit/a3fceb3f9449ae35372721278cac95f640dbaf28))
8
- * await group modification before calculating price ([8ce27c5](https://github.com/roomle-dev/roomle-ui/commit/8ce27c5e070cb75a7c1e112ebf47ffdee50f301e))
9
- * core api - external configuration module id map ([039de3f](https://github.com/roomle-dev/roomle-ui/commit/039de3f6ee9aaddca28f3a5ca57214f3f86cd7ba))
10
- * core api - external object update ([2dea816](https://github.com/roomle-dev/roomle-ui/commit/2dea81694e0257b6b2fb742d25cd5b0190ed3c23))
11
- * core api - object component ([bc8adfe](https://github.com/roomle-dev/roomle-ui/commit/bc8adfe0ccb6c926a083613ccc862846f7c9dcbc))
12
- * core api - return object when child mode is changed ([0001b31](https://github.com/roomle-dev/roomle-ui/commit/0001b31bafcb4f9085e4faf7aa1090a79dd382e1))
13
- * correct arrangement when swapping root modules ([6da5ed6](https://github.com/roomle-dev/roomle-ui/commit/6da5ed6c26d9524718f950ea9180b21564f7e5fa))
14
- * first implementation of exporters ([e1b4538](https://github.com/roomle-dev/roomle-ui/commit/e1b4538e979d03aa9966737f0b71e6b949347748))
15
- * glue layer - handle multiple libraries ([b91ff11](https://github.com/roomle-dev/roomle-ui/commit/b91ff11c14aa94765f6e216ccbe116acb2995bc7))
16
- * glue-layer group modification callback ([3437dfa](https://github.com/roomle-dev/roomle-ui/commit/3437dfa2474bfce6a06e450c8476ae4401919dda))
17
- * HI api - update attribute ([51d1a91](https://github.com/roomle-dev/roomle-ui/commit/51d1a91756fef48f9f1e31f4abf1c516bd876d84))
18
- * HI api - update attribute ([2106e97](https://github.com/roomle-dev/roomle-ui/commit/2106e9789547dab91d330715c0d1c2c2d66d5d41))
19
- * HI callback when group is laded from plan ([0e6392d](https://github.com/roomle-dev/roomle-ui/commit/0e6392da9989a05e744cee4afa7f981ced78a047))
20
- * HI group callbacks ([9e500af](https://github.com/roomle-dev/roomle-ui/commit/9e500afef9bc67db9be957f75a7bf0483f9161c5))
21
- * invoke HI group callbacks ([a72ddd5](https://github.com/roomle-dev/roomle-ui/commit/a72ddd5bec712b6b638df404914f7d78203fa1d7))
22
- * keep selection when swapping root modules ([a3cb518](https://github.com/roomle-dev/roomle-ui/commit/a3cb518466d67296f8ed73cdd3d22ada32d7f766))
23
- * keep the child selection when clicking on a sibling ([a2f6e1f](https://github.com/roomle-dev/roomle-ui/commit/a2f6e1f40a408075d21284b18cbbe359bccdf8f0))
24
- * make hi group callbacks optional ([589310e](https://github.com/roomle-dev/roomle-ui/commit/589310eb863fe9e6ecbe34443d276995e1e03afd))
25
- * Merge product in RD scene UI v2 (Double click to un-merge component and click to select the entire configuration) ([831e298](https://github.com/roomle-dev/roomle-ui/commit/831e298b8ebc8255ee92e3339c1c5b921af0cdd7))
26
- * onExternalObjectSwapRootModule request ([baafa95](https://github.com/roomle-dev/roomle-ui/commit/baafa95a89203427970b10a3ad89f3773161bd92))
27
- * show "swap product" button in hi example ([99c7820](https://github.com/roomle-dev/roomle-ui/commit/99c782006a191462b44a3d52a29aaea9d719a825))
28
- * show "undo" and "redo" buttons in hi example ([52dcda9](https://github.com/roomle-dev/roomle-ui/commit/52dcda958c82b0fc07cfa7c3342dc4f93f11c974))
29
- * start new interaction when parameter is changed ([176d0ac](https://github.com/roomle-dev/roomle-ui/commit/176d0ac9c2b439a08135d20a2c895ff25b499830))
30
- * swap root module in group ([45c3fea](https://github.com/roomle-dev/roomle-ui/commit/45c3fead5224417e22bc01f535d3da07b31c0596))
31
- * **core:** upgrade to version 2.61.0-alpha.1 ([540c602](https://github.com/roomle-dev/roomle-ui/commit/540c6025f6834a34b5167a6ed01e59a8ca8bdcfa))
32
- * **core:** upgrade to version 2.61.0-alpha.2 ([d364aff](https://github.com/roomle-dev/roomle-ui/commit/d364aff10df8e67b47900be7a7ef249546200a10))
33
- * **core:** upgrade to version 2.61.0-alpha.3 ([ecb1cf3](https://github.com/roomle-dev/roomle-ui/commit/ecb1cf3e8204fd74dbf11e9796978f08b61d5048))
34
- * **core:** upgrade to version 2.61.0-alpha.4 ([999ef76](https://github.com/roomle-dev/roomle-ui/commit/999ef767b46fbe80cbeb49aaef6d41e2b60cb3ff))
35
- * **core:** upgrade to version 2.61.0-alpha.6 ([101f9a8](https://github.com/roomle-dev/roomle-ui/commit/101f9a877603ef7b431145327a9d331ac8e11032))
36
- * **core:** upgrade to version 2.61.0-alpha.7 ([c9419cc](https://github.com/roomle-dev/roomle-ui/commit/c9419ccf703f74e87ba2184113c82ba175dae2db))
37
- * **core:** upgrade to version 2.61.0-alpha.8 ([03f3711](https://github.com/roomle-dev/roomle-ui/commit/03f37119298db55275bdd69e0e22534e6f7cfbbb))
6
+ * core api - PlanModelViewHelper.getObjectGeometryHelpLines ([d50c692](https://github.com/roomle-dev/roomle-ui/commit/d50c69250c139dcfb1d9d469109b02ae6f359183))
7
+ * core api - PlanObjectComponent properties ([4936555](https://github.com/roomle-dev/roomle-ui/commit/493655574ef91136049daa9b5db960018ac89663))
8
+ * created onPlaceOrder and onFetchPrice HI callbacks ([4b48864](https://github.com/roomle-dev/roomle-ui/commit/4b48864a4dc71bb9ce14254857caace4a87ebf33))
9
+ * hi core api 'providePossibleChildren' ([a1d96c6](https://github.com/roomle-dev/roomle-ui/commit/a1d96c673b1ec7204cab88eb55e3fc4d16f92f13))
10
+ * HI example debug logging ([605e63b](https://github.com/roomle-dev/roomle-ui/commit/605e63b344f34d7f35d67cca357b2e1511e61a45))
11
+ * initial working implementation ([07ba92c](https://github.com/roomle-dev/roomle-ui/commit/07ba92c20a3a0886afb5abaafdcd24b954e0fd5d))
12
+ * reselect object if object mode changes when clicking on the object ([03b1ea4](https://github.com/roomle-dev/roomle-ui/commit/03b1ea4eb6c7f0f2a1a0eb2c6d1bd85230820a01))
13
+ * **core:** upgrade to version 2.61.0 ([8468dff](https://github.com/roomle-dev/roomle-ui/commit/8468dff9ae43a224dd563bc53e36543b79211391))
14
+ * **core:** upgrade to version 2.62.0-alpha.1 ([e62b7f2](https://github.com/roomle-dev/roomle-ui/commit/e62b7f278ba0cd72e97b3a0de8ad47ac04fa860a))
15
+ * **core:** upgrade to version 2.62.0-alpha.2 ([e679883](https://github.com/roomle-dev/roomle-ui/commit/e6798835befcce2e9f8b1749275d1b62aff5d621))
16
+ * **core:** upgrade to version 2.62.0-alpha.4 ([788fc83](https://github.com/roomle-dev/roomle-ui/commit/788fc831445b3050b5188f8fa0100d36e377b30d))
17
+ * **core:** upgrade to version 2.62.0-alpha.5 ([c2ee7d8](https://github.com/roomle-dev/roomle-ui/commit/c2ee7d8b48e9ecfa7074d4ec88aa4678da209b51))
18
+ * upgrade to version 2.62.0-alpha.6 ([5383e89](https://github.com/roomle-dev/roomle-ui/commit/5383e89a1382f8e9599afc920914124d6a85fead))
38
19
 
39
20
 
40
21
  ### Bug Fixes
41
22
 
42
- * addons trigger should close open gridviews ([3fc7ba2](https://github.com/roomle-dev/roomle-ui/commit/3fc7ba2187a72f879eb468cbd0aca250fba09f48))
43
- * close open gridViews when selection changes in configurator ([f23c8c6](https://github.com/roomle-dev/roomle-ui/commit/f23c8c6e2f9627038d2c937db58b7edd3be4eacc))
44
- * configurator idb check not working ([702eb3b](https://github.com/roomle-dev/roomle-ui/commit/702eb3b0497d767853da672c9d2c5a5b078be2a6))
45
- * discard textures with identical mapping and keep only the first occurrence ([5f34165](https://github.com/roomle-dev/roomle-ui/commit/5f34165da80cb2d93ce095eafe4ab30ef6ff5982))
46
- * incorrect import ([674831f](https://github.com/roomle-dev/roomle-ui/commit/674831fd4961a69f001bf2a81a82cfd3c22da9b0))
47
- * new icon versions ([e1381a9](https://github.com/roomle-dev/roomle-ui/commit/e1381a922e4c6e6bad8bac01026245cd3165b0d1))
48
- * only allow child selection if advanced docking is enabled ([8daeb5b](https://github.com/roomle-dev/roomle-ui/commit/8daeb5bba7ce591fed4c3a5c77341cb7a61f9a84))
49
- * only select child if object is already selected ([e05e69b](https://github.com/roomle-dev/roomle-ui/commit/e05e69b15478fac67b6e6a980227e7c4a49dbffe))
50
- * remove double click handler and make merge and un-merge based on toggle the click event ([ffc7e3a](https://github.com/roomle-dev/roomle-ui/commit/ffc7e3a6aa48f8541ccaf4e0c634f78cb9cc1e17))
51
- * request the planning situation when a group is loaded from the plan ([f535c65](https://github.com/roomle-dev/roomle-ui/commit/f535c650dec30bcf0ab07a6a8f508382e3150072))
23
+ * add library id back to HI callbacks ([ea30779](https://github.com/roomle-dev/roomle-ui/commit/ea3077936ef79ee737b551842441358e0365db6d))
24
+ * article ID is the fallback label for catalog item ([a5449f0](https://github.com/roomle-dev/roomle-ui/commit/a5449f069485cfb29c07231b11a868cf2c14c9cd))
25
+ * catch hi callback exceptions ([f650511](https://github.com/roomle-dev/roomle-ui/commit/f650511d2c8fb82a545ccfa6fb5800b03b843516))
26
+ * consider that root module is moved to a new group on undock ([c293ba8](https://github.com/roomle-dev/roomle-ui/commit/c293ba87b9652ee363d98b772fe8640a5cd6f175))
27
+ * consider that the object may be merged on drag-end ([b033cbd](https://github.com/roomle-dev/roomle-ui/commit/b033cbd977513cca7d918e5a98d417770e01a484))
28
+ * drag-in hi objects by id instead of serialize json ([60df0bd](https://github.com/roomle-dev/roomle-ui/commit/60df0bd3e3fc07c14f9a5aebed4f06895cc6f93e))
29
+ * only unmerge objects if advanced docking is enabled ([2679668](https://github.com/roomle-dev/roomle-ui/commit/2679668d803351a04281ac1d7860864e9d950ae4))
30
+ * planner external object selection callback ([e631da9](https://github.com/roomle-dev/roomle-ui/commit/e631da99153e1bba809376989af7ea73970956a2))
31
+ * remove unused imports ([da6645c](https://github.com/roomle-dev/roomle-ui/commit/da6645c6c1a305341d1d875debbf135f62bd7134))
32
+ * remove unused params ([e22e84e](https://github.com/roomle-dev/roomle-ui/commit/e22e84e54861ca9bc37645db09a9f80aeb63859d))
33
+ * reset scroll on select catalog item and remove wrong icon and unneeded dark mode ([7e2339d](https://github.com/roomle-dev/roomle-ui/commit/7e2339d58d6d4c8487cec03ac1beeddbe681b433))
34
+ * type errors ([a64197f](https://github.com/roomle-dev/roomle-ui/commit/a64197f8a1f7af9003e5b9124ba0467355b6a9a1))
35
+ * update outdated version for playwright docker image since we update our playwright version ([58eafba](https://github.com/roomle-dev/roomle-ui/commit/58eafba6d6ae8f294288fd8175a3bf47ba672c2a))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomle/embedding-lib",
3
- "version": "5.29.0",
3
+ "version": "5.30.0-alpha.1",
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",
@@ -36,6 +36,20 @@ export interface HiCallbacks {
36
36
  * @param groupData The ID of the group which was deleted.
37
37
  */
38
38
  onPosGroupDeleted?: (posGroupIds: string[]) => Promise<void>;
39
+ /**
40
+ * "onLogMessage" is invoked when the Homag Intelligence library wants to log a message.
41
+ * You can use this to log messages in your own UI.
42
+ * @param area
43
+ * @param message
44
+ */
45
+ onLogMessage?: (area: string, message: string) => void;
46
+ onFetchPrice?: (orderData: any) => Promise<any>;
47
+ /**
48
+ * "onPlaceOrder" is invoked when the user wants to place an order.
49
+ * You can use this to send the order data to Order Manager or to a 3rd party service.
50
+ * @param orderData
51
+ */
52
+ onPlaceOrder?: (orderData: any) => Promise<void>;
39
53
  }
40
54
  export type AvailablePlugins = {
41
55
  [K in keyof PluginMap]?: InstanceType<PluginMap[K]>;
@@ -0,0 +1,14 @@
1
+ import { Example } from '../example';
2
+ import { RoomDesignerApiType } from './utils/homag-intelligence/overlay';
3
+
4
+ export default class DragInExample implements Example {
5
+ private _abortController;
6
+ private _roomDesignerApi;
7
+ setupHtml(parent: HTMLElement): Promise<void>;
8
+ closeExample(): Promise<void>;
9
+ private start;
10
+ loadHiCatalogAsync(roomDesignerApi: RoomDesignerApiType): Promise<void>;
11
+ onRequestPlan(roomDesignerApi: RoomDesignerApiType): Promise<void>;
12
+ doPriceCalculation(roomDesignerApi: RoomDesignerApiType): Promise<void>;
13
+ runExample(): Promise<void>;
14
+ }
@@ -1,5 +1,6 @@
1
1
  export declare const fetchJSONData: (url: string) => Promise<any>;
2
2
  export declare const fetchDataWithAuthorization: (url: string, type: string, property: string) => Promise<Response>;
3
+ export declare const logInUi: (area: string, message: string, args?: (string | null)[]) => void;
3
4
  export declare const logMessage: (message: string, ...args: (string | null)[]) => void;
4
5
  export declare const logApiCall: (message: string) => void;
5
6
  export declare const logApiCallback: (message: string, ...args: (string | null)[]) => void;
@@ -19,7 +19,10 @@ export declare class RoomDesignerApi implements RoomDesignerRequests {
19
19
  deleteRootModule(rootModuleId: string): void;
20
20
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
21
21
  getRoomInformation(): Promise<import('../../planner-core/src/external-object-api').ExternalRoomInformation>;
22
- generatePlanSnapshot(): Promise<void>;
22
+ generatePlanSnapshot(): Promise<{
23
+ objectId: string;
24
+ planId: string;
25
+ }>;
23
26
  saveExternalObjectSnapshot(): Promise<import('../../typings/rapi-types').RapiPlanSnapshotGetDataWith3dUrls>;
24
27
  saveCurrentPlanSnapshot(): Promise<import('../../typings/rapi-types').RapiPlanSnapshotGetData>;
25
28
  renderPosDataImage(posDataJson: object): Promise<void>;
@@ -0,0 +1,54 @@
1
+ import { HiCallbacks } from '../../../../embedding-lib/src/embedding-lib';
2
+ import { GlueLogic, RoomDesignerRequests } from './emulator';
3
+ import { ExternalObjectGroup } from 'roomle-core-hsc/src/embind/plannerCoreInterface';
4
+ import { ExternalModuleInformation } from '../../typings/kernel';
5
+ import { PosGroup } from './model/oc-scripts-domain.model';
6
+ import { ExternalObjectModuleIdMap } from './api';
7
+
8
+ export declare class GlueLayerRequestDebugLogging implements GlueLogic {
9
+ private _glueLogic;
10
+ private _hiCallbacks;
11
+ constructor(glueLogic: GlueLogic, hiCallbacks: HiCallbacks);
12
+ get hiCallbacks(): HiCallbacks | null;
13
+ private _logRequest;
14
+ loadPosData(articleCatalogJson: any, libraryId: string): void;
15
+ mergeGroups(targetGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], idOfTargetRootModule: string): void;
16
+ deleteRootModule(remainingGroup: ExternalObjectGroup, rootModuleIdToDelete: string, splitOffGroups: ExternalObjectGroup[]): void;
17
+ splitRootModuleFromGroup(splitGroup: ExternalObjectGroup, newGroupedRootModules: ExternalObjectGroup[]): void;
18
+ duplicateGroup(sourceGroupId: string, duplicatedGroup: ExternalObjectGroup): void;
19
+ modifyAttribute(groupId: string, moduleIdObjects: ExternalModuleInformation[], attributeName: string, value: string): void;
20
+ updateAttribute(rootModuleId: string, moduleId: string, attributeId: string, attributeValue: string | boolean): void;
21
+ swapRootModule(groupId: string, rootModuleId: string, articleId: string): void;
22
+ arrangeRootModulesOfGroup(changedGroup: ExternalObjectGroup): void;
23
+ changedGroupPlanningSituation(changedGroup: ExternalObjectGroup): void;
24
+ deleteGroup(groupId: string): Promise<void>;
25
+ changedGroup(posDataJson: PosGroup): void;
26
+ loadedGroup(posDataJson: PosGroup): void;
27
+ removedGroup(groupId: string): void;
28
+ openCloseGroup(groupId: string): void;
29
+ newPosDataFromId(id: string): PosGroup | undefined;
30
+ getGroupDataForOrder(roomlePlannerId?: string): Promise<any>;
31
+ savePlanSnapshot(): Promise<any>;
32
+ }
33
+ export declare class GlueLayerResponseDebugLogging implements RoomDesignerRequests {
34
+ private _roomDesignerRequests;
35
+ private _hiCallbacks;
36
+ constructor(roomDesignerRequests: RoomDesignerRequests, hiCallbacks: HiCallbacks);
37
+ private _logResponse;
38
+ loadMasterData(masterData: any): void;
39
+ loadPosGroups(posDataJson: PosGroup | PosGroup[], findFreeSpaceInPlan: boolean, verifyArrangement: boolean, mergedGroups?: string[], respondWithPositionInPlan?: boolean, moduleIdMap?: ExternalObjectModuleIdMap[]): Promise<void>;
40
+ selectGroup(groupId: string): Promise<void>;
41
+ selectRoot(rootModuleId: string): Promise<void>;
42
+ selectModule(rootModuleId: string, subModuleId: string): Promise<void>;
43
+ openCloseGroup(groupOrRootModuleId: string, subModuleId: string | null, open: boolean, animate: boolean): Promise<void>;
44
+ deleteGroup(groupId: string, wasMerged?: boolean): void;
45
+ deleteRootModule(rootModuleId: string): void;
46
+ getPosDataOfAllGroups(): Promise<PosGroup[]>;
47
+ getRoomInformation(): Promise<any>;
48
+ generatePlanSnapshot(): Promise<{
49
+ objectId: string;
50
+ planId: string;
51
+ }>;
52
+ saveExternalObjectSnapshot(): Promise<any>;
53
+ saveCurrentPlanSnapshot(): Promise<any>;
54
+ }
@@ -1,6 +1,6 @@
1
+ import { HiCallbacks } from '../../../../embedding-lib/src/embedding-lib';
1
2
  import { ExternalModuleInformation, ExternalObjectGroup } from './callbacks';
2
3
  import { MasterData, PosModuleAttribute, PosGroup, PosModuleData, PosModuleRootData } from './model/oc-scripts-domain.model';
3
- import { HiCallbacks } from '../../../../embedding-lib/src/embedding-lib';
4
4
  import { ExternalObjectModuleIdMap } from './api';
5
5
 
6
6
  export interface LibraryData {
@@ -23,12 +23,16 @@ export interface RoomDesignerRequests {
23
23
  deleteRootModule(rootModuleId: string): void;
24
24
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
25
25
  getRoomInformation(): Promise<any>;
26
- generatePlanSnapshot(): Promise<void>;
26
+ generatePlanSnapshot(): Promise<{
27
+ objectId: string;
28
+ planId: string;
29
+ }>;
27
30
  saveExternalObjectSnapshot(): Promise<any>;
28
31
  saveCurrentPlanSnapshot(): Promise<any>;
29
32
  }
30
33
  export interface GlueLogic {
31
- hiCallbacks?: HiCallbacks;
34
+ hiCallbacks: HiCallbacks | null;
35
+ loadPosData(articleCatalogJson: any, libraryId: string): void;
32
36
  mergeGroups(targetGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], idOfTargetRootModule: string): void;
33
37
  deleteRootModule(remainingGroup: ExternalObjectGroup, rootModuleIdToDelete: string, splitOffGroups: ExternalObjectGroup[]): void;
34
38
  splitRootModuleFromGroup(splitGroup: ExternalObjectGroup, newGroupedRootModules: ExternalObjectGroup[]): void;
@@ -47,7 +51,7 @@ export interface GlueLogic {
47
51
  getGroupDataForOrder(roomlePlannerId?: string): Promise<any>;
48
52
  savePlanSnapshot(): Promise<PlanSnapshot>;
49
53
  }
50
- interface PlanSnapshot {
54
+ export interface PlanSnapshot {
51
55
  id: string;
52
56
  perspectiveImageLink: string;
53
57
  topImageLink: string;
@@ -65,8 +69,8 @@ export declare class Emulator implements GlueLogic {
65
69
  private _groupMap;
66
70
  private _nextPosDataId;
67
71
  private _hiCallbacks;
68
- constructor(designerRequests: RoomDesignerRequests, libraryData: LibraryData);
69
- set hiCallbacks(value: HiCallbacks | null);
72
+ constructor(designerRequests: RoomDesignerRequests, libraryData: LibraryData, hiCallbacks?: HiCallbacks | null);
73
+ get hiCallbacks(): HiCallbacks | null;
70
74
  getLibraryData(libraryId: string): LibraryData | null;
71
75
  addLibrary(libraryData: LibraryData): void;
72
76
  loadPosData(articleCatalogJson: any, libraryId: string): void;
@@ -1,10 +1,10 @@
1
- import { Emulator } from './emulator';
1
+ import { GlueLogic } from './emulator';
2
2
  import { Context } from '../../common-core/src/di/context';
3
3
 
4
4
  export declare const FAKE_ROOT_TAG = "external:root-tag";
5
5
  export declare class HiTagCatalogCallbacks implements Context {
6
6
  _creator_: string;
7
- private _emulator;
7
+ private _glueLogic;
8
8
  private _articlesPromise;
9
9
  private _externalItems;
10
10
  private _externalConfigurations;
@@ -12,7 +12,7 @@ export declare class HiTagCatalogCallbacks implements Context {
12
12
  private _globalCallback;
13
13
  private _configuratorViewModel;
14
14
  constructor(creator: string, articles: Promise<any>);
15
- setEmulator(emulator: Emulator): void;
15
+ setEmulator(glueLogic: GlueLogic): void;
16
16
  private _init;
17
17
  private _onCheckExternalCache;
18
18
  private _onFetchExternalData;
@@ -1,6 +1,6 @@
1
1
  import { RmlPlugin } from './rml-plugin';
2
2
  import { GlueLogic } from './emulator';
3
- import { ApiOptions } from './loader';
3
+ import { HomagIntelligenceInitData } from './loader';
4
4
  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';
@@ -12,7 +12,6 @@ declare global {
12
12
  uuidv4: () => string;
13
13
  }
14
14
  }
15
- export declare const HOMAG_INTELLIGENCE_ENDPOINT = "https://europe-west3-rml-showcases.cloudfunctions.net/proxy_request?url=";
16
15
  export type ExternalObjects = Map<string, {
17
16
  id: string;
18
17
  label: string;
@@ -24,21 +23,21 @@ export declare class HomagIntelligence extends RmlPlugin {
24
23
  private _roomlePlanner;
25
24
  private _api;
26
25
  private _masterData;
27
- private _emulator;
26
+ private _glueLogic;
28
27
  private _articles;
29
28
  private _scriptLoaded;
30
29
  private _hiLibraryLoaded;
31
30
  private _orders;
32
31
  constructor();
33
- loadHiLibrary(hiCallbacks: HiCallbacks, libraryId: string): Promise<{
32
+ loadHiLibrary(libraryId: string, hiCallbacks: HiCallbacks): Promise<{
34
33
  articles: any;
35
34
  masterData: MasterData;
36
35
  calcScriptLoaded: boolean;
37
36
  }>;
38
- init(articles: any, catalogCallbacks: HiTagCatalogCallbacks, roomlePlanner: RoomlePlanner, libraryId: string, apiOptions: ApiOptions, hiCallbacks: HiCallbacks): Promise<this>;
37
+ init(articles: any, catalogCallbacks: HiTagCatalogCallbacks, roomlePlanner: RoomlePlanner, hiOptions: HomagIntelligenceInitData, hiCallbacks: HiCallbacks): Promise<this>;
39
38
  private _loadMasterData;
40
39
  private _initCalcScript;
41
40
  getGlueLogic(): GlueLogic;
42
- sendToOM(withPrice?: boolean): Promise<void>;
41
+ placeOrder(): Promise<void>;
43
42
  fetchPrice(planId?: string): Promise<any>;
44
43
  }
@@ -2,7 +2,8 @@ import { MasterData } from './model/oc-scripts-domain.model';
2
2
 
3
3
  export interface HomagIntelligenceInitData {
4
4
  libraryId: string;
5
- serverOptions: ApiOptions;
5
+ serverOptions?: ApiOptions;
6
+ debugLogging?: boolean;
6
7
  }
7
8
  export interface OrderManagerOptions {
8
9
  key?: string;
@@ -17,6 +18,17 @@ export interface ApiOptions {
17
18
  export declare const fetchDataWithAuthorization: (url: string, type: 'json' | 'text', apiOptions: ApiOptions, debug?: {
18
19
  property: string;
19
20
  }) => Promise<Response>;
20
- export declare const loadArticleCatalog: (libraryId: string, apiOptions: ApiOptions) => Promise<any>;
21
- export declare const loadMasterData: (libraryId: string, apiOptions: ApiOptions) => Promise<MasterData>;
22
- export declare const loadCalcScript: (libraryId: string, apiOptions: ApiOptions) => Promise<string>;
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>;
@@ -1,6 +1,5 @@
1
1
  import { default as RoomlePlanner } from '../../planner-core/src/roomle-planner';
2
2
  import { GlueLogic } from './emulator';
3
- import { ApiOptions } from './loader';
4
3
 
5
4
  export declare const createEmptyOrder: () => {
6
5
  id: any;
@@ -27,13 +26,10 @@ export declare const createEmptyOrder: () => {
27
26
  changedBy: string;
28
27
  items: any[];
29
28
  };
30
- export declare const sendToOM: (apiOptions: ApiOptions, roomlePlanner: RoomlePlanner, gluLogic: GlueLogic, withPrice?: boolean) => Promise<void>;
31
- export declare const fetchPrice: (apiOptions: ApiOptions, gluLogic: GlueLogic, planId?: string, useExtraHeaders?: boolean) => Promise<any>;
32
29
  export default class Orders {
33
30
  private _roomlePlanner;
34
- private _gluLogic;
35
- private _apiOptions;
36
- constructor(roomlePlanner: RoomlePlanner, gluLogic: GlueLogic, apiOptions: ApiOptions);
37
- sendToOM(withPrice?: boolean): Promise<void>;
31
+ private _glueLogic;
32
+ constructor(roomlePlanner: RoomlePlanner, glueLogic: GlueLogic);
33
+ placeOrder(): Promise<void>;
38
34
  fetchPrice(planId?: string): Promise<any>;
39
35
  }
@@ -25,9 +25,9 @@ export interface ExternalObjectDebugConfiguration {
25
25
  createDebugGeometry?: boolean;
26
26
  }
27
27
  export interface ExternalObjectApiConfiguration {
28
- legacyApi?: boolean;
29
28
  loadExternalObjectsFromPlan?: boolean;
30
29
  enableArrangementCorrection?: boolean;
30
+ providePossibleChildren?: boolean;
31
31
  uiConfiguration?: ExternalObjectUiConfiguration;
32
32
  materialConfiguration?: ExternalObjectMaterialConfiguration;
33
33
  debugConfiguration?: ExternalObjectDebugConfiguration;
@@ -29,6 +29,7 @@ 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
31
  import { RoomleLightSource } from '../../common-core/src/light/light-source';
32
+ import { HomagIntelligenceInitData } from '../../homag-intelligence/src/loader';
32
33
 
33
34
  export type ID_TYPE = 'rml_id' | 'tc_id' | 'rml_serialized' | 'tc_serialized';
34
35
  export declare const EXT_OBJ_EXCEPTION = "Could not retrieve configuration for external object! Did you implement onGetConfigurationForExternalObject?";
@@ -437,6 +438,7 @@ export default class RoomlePlanner<P extends readonly PluginName[] = readonly []
437
438
  private _loadExternalObjectGroup;
438
439
  private _loadExternalObjectGroupInConfigurator;
439
440
  private _loadExternalObjectGroupInPlanner;
441
+ private _updateExternalObjectRootModuleSelection;
440
442
  private _loadOrUpdateExternalObjectGroup;
441
443
  updateExternalObjectGroupAttribute(rootModuleId: string, moduleId: string, attributeId: string, attributeValue: string | boolean): void;
442
444
  private _createSerializedGroupCollection;
@@ -549,8 +551,14 @@ export default class RoomlePlanner<P extends readonly PluginName[] = readonly []
549
551
  redo(): Promise<void>;
550
552
  setHomagIntelligence(homagIntelligence: HomagIntelligence): void;
551
553
  newPosDataFromId(id: string): import('../../homag-intelligence/src/model/oc-scripts-domain.model').PosGroup;
552
- sendToOM(withPrice?: boolean): Promise<void>;
554
+ /**
555
+ * deprecated, use placeOrder() instead
556
+ */
557
+ sendToOM(): Promise<void>;
558
+ placeOrder(): Promise<void>;
553
559
  fetchPrice(planId?: string): Promise<any>;
554
560
  getOrderManagerGroupData(planId?: string): Promise<any>;
555
561
  getRapiAccess(): RapiAccess;
562
+ canElementBeDeleted(planElement: PlanElementViewModel): boolean;
563
+ setupHomagIntelligence(hi: HomagIntelligenceInitData): Promise<void>;
556
564
  }
@@ -25,7 +25,7 @@ export declare class PlannerSelectionHandlerEvent {
25
25
  export default class PlannerSelectionHandler extends EventDispatcher<PlannerSelectionHandlerEvent> {
26
26
  private _selectionMode;
27
27
  protected _selectedPlanElementViewModels: Map<number, PlanElementViewModel>;
28
- check(planElementViewModel: PlanElementViewModel): void;
28
+ check(planElementViewModel: PlanElementViewModel, objectModeChanged?: boolean): void;
29
29
  removeSelection(): void;
30
30
  cancelSelection(reason: CancelSelectionReasons): void;
31
31
  private _checkStandard;
@@ -216,11 +216,11 @@ export default class PlannerSceneManager extends ConfiguratorSceneManager implem
216
216
  protected setEventHandlerObject(object: Object3D): void;
217
217
  protected _readyForRender(): void;
218
218
  protected notifyPlannerOnComponentSelectionCancel(isExtObj: boolean, reason: CancelSelectionReasons): void;
219
- private _planObjectSelectionChanged;
219
+ private _externalPlanObjectSelectionChanged;
220
220
  highlightExternalObject(planObjectComponent: KernelPlanObjectComponent): void;
221
221
  private _selectExternalObjectModule;
222
222
  getObjectComponent(id: number, typeOfId: Enumify<typeof CORE_TYPE_OF_CORE_ID>): KernelPlanObjectComponent;
223
- getExternalObjectComponent(groupId: string, moduleId: string): KernelPlanObjectComponent;
223
+ getExternalObjectComponent(groupOrRootModuleId: string, subModuleId: string): KernelPlanObjectComponent;
224
224
  getCameraParameters3d(): NonNullable<CameraParameter>;
225
225
  private _createCeilingLightGroup;
226
226
  toggleInteriorLightsSceneSettings(on: boolean): void;
@@ -264,6 +264,9 @@ export interface KernelPlanObjectComponent extends KernelPlanObjectBase {
264
264
  externalObjectGroupId: string;
265
265
  externalRootModuleId: string;
266
266
  externalSubModuleId: string;
267
+ isAGeneratedModule: boolean;
268
+ canBeDeleted: boolean;
269
+ animations?: KernelAnimation[];
267
270
  }
268
271
  export interface UiPlanObject extends KernelPlanObject {
269
272
  data: RapiItem | RapiConfiguration | null;
@@ -319,6 +319,20 @@ declare class RoomGeometryArray extends EmsArray<PosContour> {
319
319
  export interface RoomInformation {
320
320
  rooms: RoomGeometryArray;
321
321
  }
322
+ export declare const CORE_HELP_LINE_TYPE: {
323
+ readonly WALL_SNAP_LEVEL: 0;
324
+ readonly WALL_SNAP_LEVEL_SNAPPED: 1;
325
+ };
326
+ export interface HelpLineType {
327
+ value: Enumify<typeof CORE_HELP_LINE_TYPE>;
328
+ }
329
+ export interface GeometryHelpLine {
330
+ end: KernelVector3f;
331
+ start: KernelVector3f;
332
+ type: HelpLineType;
333
+ }
334
+ declare class GeometryHelpLineArray extends EmsArray<GeometryHelpLine> {
335
+ }
322
336
  export interface PlanModelViewHelper {
323
337
  getPlanOverview(planObject: KernelObject): PlanOverview;
324
338
  getPlanObject(plan: Plan, aRuntimeId: number): KernelPlanObject;
@@ -330,6 +344,7 @@ export interface PlanModelViewHelper {
330
344
  getExternalObjectGroups(plan: Plan): KernelObjectConfigurationArray;
331
345
  getExternalRoomInformation(plan: Plan): RoomInformation;
332
346
  calculateLightSourceDistribution(plan: Plan, lightSourceConfiguration: LightSourceConfiguration): RoomLightSourceDistributionArray;
347
+ getObjectGeometryHelpLines(anObject: PlanObject): GeometryHelpLineArray;
333
348
  }
334
349
  export interface PlanNode extends KernelObject {
335
350
  getMaxWallHeight(): number;