@roomle/embedding-lib 5.26.0-alpha.1 → 5.26.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,31 +1,9 @@
1
- ## [5.26.0-alpha.1](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.25.0...embedding-lib-v5.26.0-alpha.1) (2025-08-12)
2
-
3
-
4
- ### Features
5
-
6
- * mobile view, expanding grid views, collapsing, hiding on selection change ([e09153e](https://github.com/roomle-dev/roomle-ui/commit/e09153e2ccc4dd79fdff13342fa332325463d05a))
7
- * router based grid view concept ([18c7968](https://github.com/roomle-dev/roomle-ui/commit/18c79687167c6d05d1d7c549aea451c872d0a335))
8
- * unregistering components ([8e707a0](https://github.com/roomle-dev/roomle-ui/commit/8e707a002cd822d57e9a87acd6073f5ce0319f5c))
9
- * working router view layering system ([447b929](https://github.com/roomle-dev/roomle-ui/commit/447b929dad11aa98fb84e4f59e3fdba21d4d428f))
1
+ ## [5.26.0-alpha.2](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.26.0-alpha.1...embedding-lib-v5.26.0-alpha.2) (2025-08-19)
10
2
 
11
3
 
12
4
  ### Bug Fixes
13
5
 
14
- * broken drawer behavior on stop configuring while grid view is open ([0c3ff29](https://github.com/roomle-dev/roomle-ui/commit/0c3ff29706ffbdc72be5896a192ac7e0e2cd1442))
15
- * configurator sidebar addon panels ([c04cede](https://github.com/roomle-dev/roomle-ui/commit/c04cededcdc633a196841cac5cd1a89bebb223d3))
16
- * decouple slider value and pause mobile sidebar rendering ([0133047](https://github.com/roomle-dev/roomle-ui/commit/0133047468667d3bc430b3d944b17941f808d8a1))
17
- * e2e passing ([a3763a4](https://github.com/roomle-dev/roomle-ui/commit/a3763a466aadc7ea1f6488e2c6c4e2dafa79a975))
18
- * failing tests ([bf62d13](https://github.com/roomle-dev/roomle-ui/commit/bf62d13b068e92ee124b155ed549f95eb7ff4646))
19
- * grid view preview elements resorting ([f4f83fb](https://github.com/roomle-dev/roomle-ui/commit/f4f83fb88e0b1c03d0a7e4e99e8f6d9b69f75349))
20
- * labels and interaction bugs ([3e7eedf](https://github.com/roomle-dev/roomle-ui/commit/3e7eedfec5fa8acdb97365db435dc29ce43051fa))
21
- * loading states on variants, active tab bug ([7e8bd10](https://github.com/roomle-dev/roomle-ui/commit/7e8bd109199747f699fef8598892b44140525213))
22
- * material picker ordering ([cc5dcc2](https://github.com/roomle-dev/roomle-ui/commit/cc5dcc2986801328c3603a546d1cbd82160d9f8f))
23
- * mobile touch start on range sliders ([32ae540](https://github.com/roomle-dev/roomle-ui/commit/32ae540f64278b1b4c056907befa3e5cc764eec5))
24
- * part list scrolling ([b536269](https://github.com/roomle-dev/roomle-ui/commit/b536269b0703ed276fe53f104848a37b889ef6d1))
25
- * redo removal of uuid ([0cb2869](https://github.com/roomle-dev/roomle-ui/commit/0cb28693f43c1979969e8fbe26e8ae2f288383d4))
26
- * redo removal of uuid ([474751e](https://github.com/roomle-dev/roomle-ui/commit/474751e01a0b8e48f53076324ccc0c77c47e9158))
27
- * revert ([0c99e68](https://github.com/roomle-dev/roomle-ui/commit/0c99e68529b58ea0a10179ddd47025995630b7b5))
28
- * tabbed nav ids ([64b6a6a](https://github.com/roomle-dev/roomle-ui/commit/64b6a6a84cf33d25000007666a50633a3218885b))
29
- * tabbed nav scroller ([6b72823](https://github.com/roomle-dev/roomle-ui/commit/6b72823557e5cc543219fcd2dca3d3cb779c84a1))
30
- * testparty mobile fixes pt 1 ([845ecba](https://github.com/roomle-dev/roomle-ui/commit/845ecba69ae7f705c0d7e17e84934a0895200d15))
31
- * various ([b351a18](https://github.com/roomle-dev/roomle-ui/commit/b351a183eb8cd1c4617ac7f29d3efeeee605e57b))
6
+ * add glu layer mocks to tests ([1d7f967](https://github.com/roomle-dev/roomle-ui/commit/1d7f9673ac2ccab62b12fc4e3da29f8b8750847b))
7
+ * get the catalog showing in the demo ([1138ea6](https://github.com/roomle-dev/roomle-ui/commit/1138ea60ec99043b5776bda25d622a6b509715e2))
8
+ * infinite loop on dragging ext obj ([0f925f7](https://github.com/roomle-dev/roomle-ui/commit/0f925f741013ff7ab0bff11aeb3383c8d2c74456))
9
+ * removal of unused code ([e184154](https://github.com/roomle-dev/roomle-ui/commit/e184154b89ba598376f06373934316b736fe94ce))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomle/embedding-lib",
3
- "version": "5.26.0-alpha.1",
3
+ "version": "5.26.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",
@@ -0,0 +1,12 @@
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
+ setupHtml(parent: HTMLElement): Promise<void>;
7
+ closeExample(): Promise<void>;
8
+ private start;
9
+ onRequestPlan(roomDesignerApi: RoomDesignerApiType): Promise<void>;
10
+ doPriceCalculation(roomDesignerApi: RoomDesignerApiType): Promise<void>;
11
+ runExample(): Promise<void>;
12
+ }
@@ -196,5 +196,6 @@ export default class RapiAccess implements Context {
196
196
  updateCache(rapiPath: RAPI_PATHS, data: RapiJson & {
197
197
  id: RapiId;
198
198
  }): void;
199
+ getExternalObjects(externalObjectIds: `__ext__obj__#${string}`[]): Promise<any[]>;
199
200
  }
200
201
  export {};
@@ -3,6 +3,7 @@ import { RapiJsonBox } from '../../../typings/rapi-types';
3
3
  import { KernelMessageMetaInfo, KernelMessageType } from '../kernel-io';
4
4
  import { ExternalResponseValidator, FetchOptions, RAPI_PATHS } from '../rapi-access';
5
5
  import { UiCallback } from '../utils/ui-callback';
6
+ import { ExternalObjectOnFetchDataMap } from '../../../typings/external-objects';
6
7
 
7
8
  export declare class GlobalCallback extends UiCallback {
8
9
  /**
@@ -33,4 +34,5 @@ export declare class GlobalCallback extends UiCallback {
33
34
  * is called the scene is ready for rendering it as an image
34
35
  */
35
36
  onReadyForRender: () => void;
37
+ onFetchExternalData: <T extends keyof ExternalObjectOnFetchDataMap, K extends string | string[]>(_type: T, _ids: K) => Promise<K extends string ? ExternalObjectOnFetchDataMap[T] : K extends string[] ? Array<ExternalObjectOnFetchDataMap[T]> : never | undefined>;
36
38
  }
@@ -116,3 +116,4 @@ export declare const isRecord: (value: any) => value is Record<string, any>;
116
116
  export declare const getIdQueryParam: (urlString: string) => string | null;
117
117
  export declare const isCtrlOrCmd: (event: KeyboardEvent) => boolean;
118
118
  export declare const ctrlOrCmd: (event: KeyboardEvent, checkIfItIsTheOnlyKey?: boolean) => boolean;
119
+ export declare const runIfNotEmpty: <T extends any[]>(ids: string[], executor: () => Promise<T>) => Promise<T>;
@@ -9,6 +9,7 @@ import { default as InitData } from '../utils/init-data';
9
9
  import { default as MeshGenerator } from '../webgl/mesh-generator';
10
10
  import { default as PlannerKernelAccess } from '../../../planner-core/src/services/planner-kernel-access';
11
11
  import { Box3, Mesh } from 'three';
12
+ import { ExternalConfiguration } from '../../../typings/external-objects';
12
13
 
13
14
  export interface ConfiguratorViewModelCallbackI {
14
15
  componentUpdated(component: RoomleComponent, kernelComponent: KernelComponent): void;
@@ -36,6 +37,7 @@ export default class ConfiguratorViewModel implements ConfiguratorKernelCallback
36
37
  private _geometriesMerged;
37
38
  private _subPartObject;
38
39
  private _subPartGuard;
40
+ private _externalConfigurations;
39
41
  protected _components: Map<number, RoomleComponent>;
40
42
  private _previews;
41
43
  protected _componentNumberOfPossibleChildren: Map<number, number>;
@@ -50,6 +52,8 @@ export default class ConfiguratorViewModel implements ConfiguratorKernelCallback
50
52
  private _applyMeshUVTransform;
51
53
  updateAnimationParameters(elementId: number | number[], parameters: KernelParameter[]): void;
52
54
  changeAnimationValue(elementId: number, parameterKey: string, value: string, level: number, applyToChildren: boolean, animate: boolean): void;
55
+ saveExternalConfiguration(externalConfiguration: ExternalConfiguration): void;
56
+ getExternalConfigurationById(id: string): ExternalConfiguration;
53
57
  private getComponentFromElementId;
54
58
  private _addMeshToSubPart;
55
59
  private _addMeshToComponent;
@@ -8,6 +8,7 @@ import { PlannerKernelContainer } from '../../../typings/planner-kernel-containe
8
8
  import { RoomleComponent } from '../../../common-core/src/webgl/roomle-component-factory';
9
9
  import { ConfiguratorDebugCallbacks } from '../configurator-debug-api';
10
10
  import { CancelSelectionReasons } from '../../../typings/planner';
11
+ import { ExternalConfiguration } from '../../../typings/external-objects';
11
12
 
12
13
  export type ComponentAction = 'edit' | 'add';
13
14
  export type ComponentType = 'preview' | 'component';
@@ -292,5 +293,9 @@ export default class ConfiguratorUiCallbacks extends UiCallback implements Confi
292
293
  */
293
294
  onGeometryNotReady: (runtimeId: number) => void;
294
295
  onValueMapChanged: (changes: DebugValueMapChange) => void;
296
+ /**
297
+ * is called when the external configuration should be saved
298
+ */
299
+ onExternalConfigurationSaved: (configuration: ExternalConfiguration) => void;
295
300
  constructor(creator: string);
296
301
  }
@@ -21,6 +21,7 @@ import { default as CameraBehaviour } from '../../../common-core/src/cameracontr
21
21
  import { default as CameraBehaviour3d } from '../../../common-core/src/cameracontrol/camera-behaviour-3d';
22
22
  import { default as GlobalInitData } from '../../../common-core/src/utils/global-init-data';
23
23
  import { CancelSelectionReasons } from '../../../typings/planner';
24
+ import { ExternalConfiguration } from '../../../typings/external-objects';
24
25
 
25
26
  export default class ConfiguratorSceneManager extends SceneManager implements ConfiguratorViewModelCallbackI {
26
27
  _creator_: string;
@@ -48,6 +49,8 @@ export default class ConfiguratorSceneManager extends SceneManager implements Co
48
49
  enableEvents(): void;
49
50
  enableConfiguratorEvents(): void;
50
51
  disableConfiguratorEvents(): void;
52
+ saveExternalConfiguration(externalConfiguration: ExternalConfiguration): void;
53
+ getExternalConfigurationById(id: string): ExternalConfiguration;
51
54
  protected _getViewModel(): ConfiguratorViewModel;
52
55
  protected _getKernelAccess(): PlannerKernelAccess;
53
56
  private _showDockings;
@@ -0,0 +1,20 @@
1
+ import { Emulator } from './emulator';
2
+ import { Context } from '../../common-core/src/di/context';
3
+
4
+ export declare const FAKE_ROOT_TAG = "external:root-tag";
5
+ export declare class HiTagCatalogCallbacks implements Context {
6
+ _creator_: string;
7
+ private _emulator;
8
+ private _articlesPromise;
9
+ private _externalItems;
10
+ private _externalConfigurations;
11
+ private _tagIds;
12
+ private _globalCallback;
13
+ private _configuratorViewModel;
14
+ constructor(creator: string, articles: Promise<any>);
15
+ setEmulator(emulator: Emulator): void;
16
+ private _init;
17
+ private _onCheckExternalCache;
18
+ private _onFetchExternalData;
19
+ private _processedArticles;
20
+ }
@@ -3,6 +3,8 @@ import { Emulator } from './emulator';
3
3
  import { ApiOptions } 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
+ import { ExternalConfiguration, ExternalItem } from '../../typings/external-objects';
7
+ import { HiTagCatalogCallbacks } from './hi-tag-catalog-callbacks';
6
8
 
7
9
  declare global {
8
10
  interface Window {
@@ -10,6 +12,13 @@ declare global {
10
12
  }
11
13
  }
12
14
  export declare const HOMAG_INTELLIGENCE_ENDPOINT = "https://europe-west3-rml-showcases.cloudfunctions.net/proxy_request?url=";
15
+ export type ExternalObjects = Map<string, {
16
+ id: string;
17
+ label: string;
18
+ items: any[];
19
+ }>;
20
+ export type ExternalItems = Map<string, ExternalItem>;
21
+ export type ExternalConfigurations = Map<string, ExternalConfiguration>;
13
22
  export declare class HomagIntelligence extends RmlPlugin {
14
23
  private _roomlePlanner;
15
24
  private _api;
@@ -25,7 +34,7 @@ export declare class HomagIntelligence extends RmlPlugin {
25
34
  masterData: MasterData;
26
35
  calcScriptLoaded: boolean;
27
36
  }>;
28
- init(roomlePlanner: RoomlePlanner, libraryId: string, apiOptions: ApiOptions): Promise<this>;
37
+ init(articles: any, catalogCallbacks: HiTagCatalogCallbacks, roomlePlanner: RoomlePlanner, libraryId: string, apiOptions: ApiOptions): Promise<this>;
29
38
  private _loadMasterData;
30
39
  getEmulator(): Emulator;
31
40
  sendToOM(withPrice?: boolean): Promise<void>;
@@ -17,8 +17,8 @@ export interface ApiOptions {
17
17
  export declare const fetchDataWithAuthorization: (url: string, type: 'json' | 'text', apiOptions: ApiOptions, debug?: {
18
18
  property: string;
19
19
  }) => Promise<Response>;
20
+ export declare const loadArticleCatalog: (libraryId: string, apiOptions: ApiOptions) => Promise<any>;
20
21
  export declare const loadHiLibrary: (libraryId: string, apiOptions: ApiOptions) => Promise<{
21
- articles: any;
22
22
  masterData: MasterData;
23
23
  calcScriptLoaded: boolean;
24
24
  }>;
@@ -524,5 +524,6 @@ export default class RoomlePlanner<P extends readonly PluginName[] = readonly []
524
524
  newPosDataFromId(id: string): any;
525
525
  sendToOM(withPrice?: boolean): Promise<void>;
526
526
  fetchPrice(planId?: string): Promise<any>;
527
+ getOrderManagerGroupData(planId?: string): Promise<import('../../homag-intelligence/src/model/oc-scripts-domain.model').PosGroup>;
527
528
  getRapiAccess(): RapiAccess;
528
529
  }
@@ -101,8 +101,8 @@ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
101
101
  protected _externalObjectConfigurationDeleted(groupId: string): void;
102
102
  protected _externalObjectComponentDeleted(remainingGroupOrGroups: ExternalObjectGroup | ExternalObjectGroup[], deletedRootModuleId: string): void;
103
103
  _externalObjectConfigurationDuplicated(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
104
- _externalObjectPlanChanged(movedGroup: ExternalObjectGroup): void;
105
- _externalObjectConfigurationsMerged(mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], targetRootModuleId: string): void;
104
+ _externalObjectPlanChanged(movedGroup: ExternalObjectGroup): Promise<void>;
105
+ _externalObjectConfigurationsMerged(mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[], targetRootModuleId: string): Promise<void>;
106
106
  _externalObjectComponentSplitOff(splitGroups: ExternalObjectGroup[]): void;
107
107
  _externalObjectArrangementChanged(changedGroup: ExternalObjectGroup): void;
108
108
  planSnapshotCreated(planSnapshot: RapiPlanSnapshotPostData): void;
@@ -25,4 +25,13 @@ export type RoomleConfiguratorWithExtObjs = RoomleConfigurator<[
25
25
  'external-objects'
26
26
  ]>;
27
27
  export type RoomleConfiguratorType = RoomleConfigurator | RoomleConfiguratorWithExtObjs;
28
+ export interface ExternalDataResponse<T> {
29
+ data: T;
30
+ meta: Record<string, any>;
31
+ }
32
+ export interface ExternalObjectOnFetchDataMap {
33
+ 'external-item': ExternalDataResponse<ExternalItem>;
34
+ 'external-configuration': ExternalDataResponse<ExternalConfiguration>;
35
+ 'external-tag': ExternalDataResponse<ExternalTag>;
36
+ }
28
37
  export {};
@@ -16,9 +16,9 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
16
16
  rotationDegrees?: number;
17
17
  }> & Readonly<{}>, {
18
18
  progress: number;
19
+ radius: number;
19
20
  stroke: number;
20
21
  selectedObjCenter: PointCoords;
21
- radius: number;
22
22
  snapDegrees: number;
23
23
  rotationDegrees: number;
24
24
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>, {