@roomle/web-sdk 5.1.0-alpha.5 → 5.1.0-alpha.7

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 (45) hide show
  1. package/lib/ConfiguratorKernel.wasm +0 -0
  2. package/lib/RoomleCore.wasm +0 -0
  3. package/lib/RoomleToolsCore.wasm +0 -0
  4. package/lib/{api-CwEjmjrn.mjs → api-D1GP5SkG.mjs} +2 -2
  5. package/lib/{api-CwEjmjrn.mjs.map → api-D1GP5SkG.mjs.map} +1 -1
  6. package/lib/asset-loader.worker-CzI1oyTY.mjs.map +1 -1
  7. package/lib/budgeteer.sw-D80jTmYa.mjs.map +1 -1
  8. package/lib/{configurator-iYlO_buA.mjs → configurator-C0_PGKso.mjs} +3 -3
  9. package/lib/{configurator-iYlO_buA.mjs.map → configurator-C0_PGKso.mjs.map} +1 -1
  10. package/lib/configurator-DkdZwDYB.mjs +2 -0
  11. package/lib/glb-viewer-02ilhcMw.mjs +2 -0
  12. package/lib/{glb-viewer-AGV-_xKd.mjs → glb-viewer-BkdQVlpk.mjs} +3 -3
  13. package/lib/{glb-viewer-AGV-_xKd.mjs.map → glb-viewer-BkdQVlpk.mjs.map} +1 -1
  14. package/lib/{homag-intelligence-D_yBv0ig.mjs → homag-intelligence-DwPlHiPP.mjs} +3 -3
  15. package/lib/{homag-intelligence-D_yBv0ig.mjs.map → homag-intelligence-DwPlHiPP.mjs.map} +1 -1
  16. package/lib/kernel-BWfRHWkW.mjs.map +1 -1
  17. package/lib/{material-viewer-BuBSXGw6.mjs → material-viewer-Bgq9-EYG.mjs} +3 -3
  18. package/lib/{material-viewer-BuBSXGw6.mjs.map → material-viewer-Bgq9-EYG.mjs.map} +1 -1
  19. package/lib/{packages-CduZDHYG.mjs → packages-DAyvqO4U.mjs} +5 -5
  20. package/lib/{packages-CduZDHYG.mjs.map → packages-DAyvqO4U.mjs.map} +1 -1
  21. package/lib/{planner-BuBkFbra.mjs → planner-DSB66hxa.mjs} +3 -3
  22. package/lib/{planner-BuBkFbra.mjs.map → planner-DSB66hxa.mjs.map} +1 -1
  23. package/lib/planner-Dpcg_QGP.mjs +2 -0
  24. package/lib/roomle-headless.d.ts +13 -9
  25. package/lib/roomle-headless.js +7 -7
  26. package/lib/{roomle-sdk-CcNdTp_n.mjs → roomle-sdk-BObGek-f.mjs} +1183 -1126
  27. package/lib/roomle-sdk-BObGek-f.mjs.map +1 -0
  28. package/lib/roomle-sdk.d.ts +13 -9
  29. package/lib/roomle-sdk.js +6 -6
  30. package/lib/{script-loader-D6i0wQ_j.mjs → script-loader-BwGk350m.mjs} +2 -2
  31. package/lib/{script-loader-D6i0wQ_j.mjs.map → script-loader-BwGk350m.mjs.map} +1 -1
  32. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  33. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts +4 -1
  34. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +5 -0
  35. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  36. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  37. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  38. package/lib/threejs-utils-lVSsgAiQ.mjs.map +1 -1
  39. package/lib/{tools-core-CRGER_KC.mjs → tools-core-QpvVIiHK.mjs} +3 -3
  40. package/lib/{tools-core-CRGER_KC.mjs.map → tools-core-QpvVIiHK.mjs.map} +1 -1
  41. package/package.json +2 -2
  42. package/lib/configurator-y7zIaUe_.mjs +0 -2
  43. package/lib/glb-viewer-DSzNR4CI.mjs +0 -2
  44. package/lib/planner-B-SWR4R8.mjs +0 -2
  45. package/lib/roomle-sdk-CcNdTp_n.mjs.map +0 -1
@@ -1068,7 +1068,6 @@ export declare class ConfiguratorContext {
1068
1068
  configurationRuntimeId: number;
1069
1069
  planElementId: number;
1070
1070
  rootComponentId: number;
1071
- dockingRootComponentId: number | null;
1072
1071
  baseContext: BASE_CONTEXT | null;
1073
1072
  lastPossibleChild: UiPossibleChild;
1074
1073
  rootComponentParametersAsGlobal: boolean;
@@ -1385,8 +1384,6 @@ export declare interface ConfiguratorKernelClass {
1385
1384
  clearAll(): void;
1386
1385
  loadConfiguration(kernelConversationId: number, configurationObject: ConfigurationString, position: KernelVector3): void;
1387
1386
  updateConfiguration(kernelConversationId: number, objectOrComponentId: number, serializedConfiguration: string): void;
1388
- loadPlainComponent(conversationId: number, componentId: RapiId, configuration: ConfigurationString): void;
1389
- loadFreeFlyingConfiguration(conversationId: number, configuration: ConfigurationString): void;
1390
1387
  requestComponentDockPreview(targetObjectId: number, componentId: string, serializedComponent: string, dragIn: boolean, allowInsertInBetween: boolean): void;
1391
1388
  requestItemDockPreview(targetObjectId: number, serializedConfiguration: string, dragIn: boolean, allowInsertInBetween: boolean): void;
1392
1389
  requestExternalObjectDockPreview(targetObjectId: number, articleId: string, dragIn: boolean, allowInsertInBetween: boolean): void;
@@ -1680,7 +1677,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1680
1677
  componentUpdated(component: RoomleComponent, kernelComponent: KernelComponent): void;
1681
1678
  planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
1682
1679
  componentDeleted(component: RoomleComponent): void;
1683
- previewConstructionDone(_component: RoomleComponent, hasPreviews: boolean): void;
1680
+ previewConstructionDone(component: RoomleComponent, hasPreviews: boolean): void;
1684
1681
  planObjectDependencyUpdated(planObjectId: number): void;
1685
1682
  configurationLoaded(component: RoomleComponent, isFreeFlying: boolean): void;
1686
1683
  addComponentHandlers(component: RoomleComponent): void;
@@ -2057,7 +2054,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2057
2054
  private _mergeNextComponent;
2058
2055
  private _mergeComponent;
2059
2056
  protected _addComponent(component: RoomleComponent): void;
2060
- removeDockingComponent(): void;
2057
+ cancelPreviewDocking(): void;
2061
2058
  protected dockComponent(componentDocking: KernelComponentDocking): void;
2062
2059
  dockComponentWithPosition(previewComponent: PreviewLineComponent, component?: RoomleComponent): void;
2063
2060
  removePreviews(): void;
@@ -2083,7 +2080,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2083
2080
  componentMetaUpdated(kernelComponent: KernelComponent): void;
2084
2081
  componentConfigurationUpdated(runtimeComponentId: number, geometryChanged: boolean): void;
2085
2082
  private _getRuntimeComponent;
2086
- configurationLoaded(conversationId: number, objectId: number, componentId: number, _hash: string, _errors: any, isFreeFlying: boolean): void;
2083
+ configurationLoaded(_conversationId: number, objectId: number, componentId: number, _hash: string, _errors: any, isFreeFlying: boolean): void;
2087
2084
  finishParameterChange(resolve: () => void, _reject: () => void): void;
2088
2085
  planObjectDependencyUpdated(planObjectId: number): void;
2089
2086
  planObjectConfigurationUpdated(planObjectId: number, _configuration: ConfigurationString, _hash: string, pendingDocking: boolean): void;
@@ -4471,10 +4468,9 @@ export declare interface KernelConfiguration {
4471
4468
  children: KernelConfiguration[];
4472
4469
  }
4473
4470
 
4474
- export declare interface KernelConfigurationPlanView {
4471
+ export declare interface KernelConfigurationPlanView extends KernelPlanViewStyle {
4475
4472
  viewType: PlanViewType;
4476
4473
  lineOfSight: KernelVector3f;
4477
- enabled: boolean;
4478
4474
  label: string | null;
4479
4475
  }
4480
4476
 
@@ -4768,6 +4764,13 @@ export declare interface KernelPlanObjectComponent extends KernelPlanObjectBase
4768
4764
  export declare class KernelPlanObjectList extends EmsList<KernelPlanObject> {
4769
4765
  }
4770
4766
 
4767
+ export declare interface KernelPlanViewStyle {
4768
+ lineColor: string | null;
4769
+ lineWidth: number | null;
4770
+ dimensioningColor: string | null;
4771
+ dimensioningLineWidth: number | null;
4772
+ }
4773
+
4771
4774
  export declare interface KernelPossibleChild {
4772
4775
  componentId?: RapiId;
4773
4776
  itemId?: RapiId;
@@ -6694,10 +6697,11 @@ export declare abstract class PlanText extends PlanElement {
6694
6697
  getText(): string;
6695
6698
  }
6696
6699
 
6697
- export declare interface PlanView {
6700
+ export declare interface PlanView extends KernelPlanViewStyle {
6698
6701
  id: number;
6699
6702
  viewType: PlanViewType;
6700
6703
  lineOfSight: KernelVector3f;
6704
+ label: string | null;
6701
6705
  objects: PlanObject[];
6702
6706
  profile: ElevationProfile;
6703
6707
  floorPlanEdges: FloorPlanEdges;
package/lib/roomle-sdk.js CHANGED
@@ -1,9 +1,9 @@
1
- import { a as e, i as t, n, r, t as i } from "./packages-CduZDHYG.mjs";
1
+ import { a as e, i as t, n, r, t as i } from "./packages-DAyvqO4U.mjs";
2
2
  import { i as a, t as o } from "./kernel-BWfRHWkW.mjs";
3
3
  import { ht as s, yt as c } from "./threejs-utils-lVSsgAiQ.mjs";
4
- import { F as l, G as u, J as d, K as f, M as p, N as m, P as h, S as g, W as _, b as v, ct as y, dt as b, j as x, k as S, lt as C, mt as w, q as T, t as E, u as D, ut as O, x as k, y as A, z as j } from "./roomle-sdk-CcNdTp_n.mjs";
5
- import { t as M } from "./configurator-iYlO_buA.mjs";
6
- import { t as N } from "./planner-BuBkFbra.mjs";
7
- import { n as P, t as F } from "./glb-viewer-AGV-_xKd.mjs";
8
- import { t as I } from "./api-CwEjmjrn.mjs";
4
+ import { F as l, G as u, J as d, K as f, M as p, N as m, P as h, S as g, W as _, b as v, ct as y, dt as b, j as x, k as S, lt as C, mt as w, q as T, t as E, u as D, ut as O, x as k, y as A, z as j } from "./roomle-sdk-BObGek-f.mjs";
5
+ import { t as M } from "./configurator-C0_PGKso.mjs";
6
+ import { t as N } from "./planner-DSB66hxa.mjs";
7
+ import { n as P, t as F } from "./glb-viewer-BkdQVlpk.mjs";
8
+ import { t as I } from "./api-D1GP5SkG.mjs";
9
9
  export { o as CONFIGURATION_TYPE, s as CORE_EDGE_TYPE, c as CORE_OBJECT_CATEGORY, a as CORE_PERMISSION_TO_DELETE, M as Configurator, x as FloorPlanElementViewModel, F as GlbViewer, j as HI_CONTEXT_ACTION, g as MeasurementLinePlanElementViewModel, A as PLAN_ELEMENT_CHANGE_TYPES, l as PlanElementViewModel, h as PlanObjectViewModel, N as Planner, y as RapiAccess, C as RapiInvalidIdError, O as RapiOfflineError, I as RoomDesignerApi, S as RoomleConfigurator, P as RoomleGLBViewer, w as RoomleLightSource, D as RoomlePlanner, E as RoomleSdk, m as StaticPlanObjectViewModel, p as WallPlanElementViewModel, _ as createExtObj, d as createExtObjId, b as getCatalogIdFromConfigurationHash, u as isExtObjId, f as isExternalObject, v as isFirefox, i as isIdAComponent, n as isIdAConfigurationString, r as isIdAPlan, t as isIdAnItem, e as isPlanSnapshotId, k as isSafari, T as removeExtObjIdPrefix };
@@ -1,5 +1,5 @@
1
1
  import { n as e, r as t, t as n } from "./decorate-Bl-JF_YY.mjs";
2
- import { U as r, it as i } from "./roomle-sdk-CcNdTp_n.mjs";
2
+ import { U as r, it as i } from "./roomle-sdk-BObGek-f.mjs";
3
3
  //#region ../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url
4
4
  var a = "" + new URL("ConfiguratorKernel.wasm", import.meta.url).href, o = "" + new URL("ConfiguratorKernel.js", import.meta.url).href, s = "" + new URL("RoomleCore.wasm", import.meta.url).href, c = "" + new URL("RoomleCore.js", import.meta.url).href, l = "" + new URL("RoomleToolsCore.wasm", import.meta.url).href, u = "" + new URL("RoomleToolsCore.js", import.meta.url).href, d = {
5
5
  configurator: {
@@ -83,4 +83,4 @@ n([t, e("design:type", Object)], _.prototype, "_singlePromiseFactory", void 0);
83
83
  //#endregion
84
84
  export { p as n, _ as t };
85
85
 
86
- //# sourceMappingURL=script-loader-D6i0wQ_j.mjs.map
86
+ //# sourceMappingURL=script-loader-BwGk350m.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"script-loader-D6i0wQ_j.mjs","names":[],"sources":["../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url","../../packages/common-core/src/static-files/roomle-core.ts","../../packages/common-core/src/script-loader.ts"],"sourcesContent":["export default \"__VITE_ASSET__m8R6TgWxwop2r_xOIPNRtg__\"","export default \"__VITE_ASSET__2$LtLFQdS6IeO$uJxLxRJQ__\"","export default \"__VITE_ASSET__rN_1li4k2aIbHGs0zKW8QQ__\"","export default \"__VITE_ASSET__U2YZxvNlcnuoWcGKwa9Wsw__\"","export default \"__VITE_ASSET___ewJD0zO9$SsiDvawfmAUw__\"","export default \"__VITE_ASSET__gOpBNSELCNdnM_yZlyA5OQ__\"","// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url';\n\nconst WASM_FILES: Record<string, { loader: string; wasm: string }> = {\n configurator: {\n loader: 'ConfiguratorKernel.js',\n wasm: 'ConfiguratorKernel.wasm',\n },\n planner: { loader: 'RoomleCore.js', wasm: 'RoomleCore.wasm' },\n tools: { loader: 'RoomleToolsCore.js', wasm: 'RoomleToolsCore.wasm' },\n};\n\n// The wasm paths returned by this function are specific to browsers (not headless):\nexport const getWasmPath = (type: 'configurator' | 'planner' | 'tools') => {\n if (type === 'planner') {\n return {\n wasm: PLANNER_WASM_MODERN_FILE_NAME,\n loader: PLANNER_LOADER_MODERN_FILE_NAME,\n };\n }\n if (type === 'tools') {\n return {\n wasm: TOOLS_CORE_WASM_MODERN_FILE_NAME,\n loader: TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n };\n }\n return {\n wasm: CONFIGURATOR_WASM_MODERN_FILE_NAME,\n loader: CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n };\n};\n\n// Resolve WASM module paths for headless (Node.js/Bun) mode.\n// Strategies (tried in order):\n// 1. import.meta.resolve('roomle-core-hsc/...') — works when running from\n// source in the monorepo where roomle-core-hsc is in node_modules, and\n// the module resolver can walk up to it from the current file's location.\n// 2. Files directly in the same directory as this bundle — works when the SDK\n// is consumed as a built package (dist/lib/), where vite-plugin-static-copy\n// places ConfiguratorKernel.wasm etc. alongside the bundle chunks.\n// 3. Legacy static/ subdirectory — kept as a final fallback for older dist\n// layouts where vite-plugin-static-copy targeted dist/lib/static/.\nexport const getHeadlessWasmPath = (\n type: 'configurator' | 'planner' | 'tools',\n): { loader: string; wasm: string } => {\n const entry = WASM_FILES[type];\n const moduleSpecifiers = {\n loader: `roomle-core-hsc/wasm_modern/${entry.loader}`,\n wasm: `roomle-core-hsc/wasm_modern/${entry.wasm}`,\n };\n\n const toPath = (url: string) =>\n url.startsWith('file://') ? url.slice(7) : url;\n\n // Strategy 1: resolve from node_modules (source / monorepo).\n // May fail when the consuming project's module resolver cannot reach\n // roomle-core-hsc (e.g. when web-sdk is installed via a file: reference\n // and symlink resolution stops before reaching the monorepo node_modules).\n try {\n return {\n loader: toPath(import.meta.resolve(moduleSpecifiers.loader)),\n wasm: toPath(import.meta.resolve(moduleSpecifiers.wasm)),\n };\n } catch {\n // roomle-core-hsc not reachable — fall through to bundle-relative lookup\n }\n\n // Strategy 2: files copied directly alongside the bundle (current dist layout).\n // vite-plugin-static-copy places ConfiguratorKernel.wasm / RoomleCore.wasm\n // etc. in dist/lib/ next to the JS chunks. import.meta.url of any chunk in\n // that directory has bundleDir = dist/lib/, so the files are found directly.\n const bundleDir = toPath(import.meta.url).replace(/\\/[^/]+$/, '');\n return {\n loader: `${bundleDir}/${entry.loader}`,\n wasm: `${bundleDir}/${entry.wasm}`,\n };\n};\n\nexport {\n CONFIGURATOR_WASM_MODERN_FILE_NAME,\n CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n PLANNER_WASM_MODERN_FILE_NAME,\n PLANNER_LOADER_MODERN_FILE_NAME,\n TOOLS_CORE_WASM_MODERN_FILE_NAME,\n TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n};\n","import Benchmark from './utils/benchmark';\nimport inject from './di/inject';\nimport type SinglePromiseFactory from './utils/single-promise-factory';\nimport { PROMISE_CATEGORY } from './utils/single-promise-factory';\nimport type { Context } from './di/context';\nimport { getWasmPath } from './static-files/roomle-core';\n\nlet _scriptCache: { [key: string]: boolean } = {};\nlet _idCache: { [key: string]: boolean } = {};\n\nfunction attachScript(\n url: string,\n options: { id: string },\n resolve: (value?: any) => void,\n reject: (error?: any) => void,\n) {\n if (_scriptCache[url]) {\n return resolve();\n }\n if (options.id && _idCache[options.id]) {\n return reject(\n new Error('There is already a script with ID \"' + options.id + '\"'),\n );\n }\n\n const mark = Benchmark.start('load_' + options.id.replace(/-/g, '_'));\n const element = document.createElement('script');\n element.async = false;\n element.src = url;\n element.id = options.id;\n element.onload = () => {\n _scriptCache[url] = true;\n _idCache[options.id] = true;\n Benchmark.end(mark);\n Object.defineProperty(resolve, 'name', { value: 'resolve-' + options.id });\n resolve();\n };\n element.onerror = (error) => {\n reject(error);\n };\n document.body.appendChild(element);\n}\n\nexport interface ScriptData {\n name: string;\n id: string;\n}\n\nexport default class ScriptLoader implements Context {\n public _creator_: string;\n\n @inject\n private _singlePromiseFactory: SinglePromiseFactory;\n\n constructor(creator: string) {\n this._creator_ = creator;\n }\n\n public fetch(url: string, options: { id: string }) {\n return this._singlePromiseFactory.create(\n PROMISE_CATEGORY.FETCH_SCRIPT,\n url,\n (resolve, reject) => {\n attachScript(url, options, resolve, reject);\n },\n );\n }\n\n public loadScripts(scripts: ScriptData[]) {\n const promises: any = [];\n scripts.forEach((script: any) => {\n let scriptLoadPromise = this.fetch(script.name, { id: script.id });\n promises.push(scriptLoadPromise);\n });\n return Promise.all(promises);\n }\n\n public resolveKernelPaths(type: 'configurator' | 'planner' | 'tools'): {\n wasm: string;\n loader: string;\n } {\n return getWasmPath(type);\n }\n\n public cleanUp() {\n for (let key in _idCache) {\n /* istanbul ignore else */\n if (_idCache.hasOwnProperty(key)) {\n const script = document.getElementById(key);\n if (script) {\n script.parentElement?.removeChild(script);\n }\n }\n }\n _scriptCache = {};\n _idCache = {};\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
1
+ {"version":3,"file":"script-loader-BwGk350m.mjs","names":[],"sources":["../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url","../../packages/common-core/src/static-files/roomle-core.ts","../../packages/common-core/src/script-loader.ts"],"sourcesContent":["export default \"__VITE_ASSET__m8R6TgWxwop2r_xOIPNRtg__\"","export default \"__VITE_ASSET__Msg57USEadASvSStYSdmzA__\"","export default \"__VITE_ASSET__rN_1li4k2aIbHGs0zKW8QQ__\"","export default \"__VITE_ASSET__epdbhdyBUyD3hvxx0_dcTg__\"","export default \"__VITE_ASSET___ewJD0zO9$SsiDvawfmAUw__\"","export default \"__VITE_ASSET__$oUiuAXR7gZMKRQU56HW2w__\"","// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url';\n\nconst WASM_FILES: Record<string, { loader: string; wasm: string }> = {\n configurator: {\n loader: 'ConfiguratorKernel.js',\n wasm: 'ConfiguratorKernel.wasm',\n },\n planner: { loader: 'RoomleCore.js', wasm: 'RoomleCore.wasm' },\n tools: { loader: 'RoomleToolsCore.js', wasm: 'RoomleToolsCore.wasm' },\n};\n\n// The wasm paths returned by this function are specific to browsers (not headless):\nexport const getWasmPath = (type: 'configurator' | 'planner' | 'tools') => {\n if (type === 'planner') {\n return {\n wasm: PLANNER_WASM_MODERN_FILE_NAME,\n loader: PLANNER_LOADER_MODERN_FILE_NAME,\n };\n }\n if (type === 'tools') {\n return {\n wasm: TOOLS_CORE_WASM_MODERN_FILE_NAME,\n loader: TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n };\n }\n return {\n wasm: CONFIGURATOR_WASM_MODERN_FILE_NAME,\n loader: CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n };\n};\n\n// Resolve WASM module paths for headless (Node.js/Bun) mode.\n// Strategies (tried in order):\n// 1. import.meta.resolve('roomle-core-hsc/...') — works when running from\n// source in the monorepo where roomle-core-hsc is in node_modules, and\n// the module resolver can walk up to it from the current file's location.\n// 2. Files directly in the same directory as this bundle — works when the SDK\n// is consumed as a built package (dist/lib/), where vite-plugin-static-copy\n// places ConfiguratorKernel.wasm etc. alongside the bundle chunks.\n// 3. Legacy static/ subdirectory — kept as a final fallback for older dist\n// layouts where vite-plugin-static-copy targeted dist/lib/static/.\nexport const getHeadlessWasmPath = (\n type: 'configurator' | 'planner' | 'tools',\n): { loader: string; wasm: string } => {\n const entry = WASM_FILES[type];\n const moduleSpecifiers = {\n loader: `roomle-core-hsc/wasm_modern/${entry.loader}`,\n wasm: `roomle-core-hsc/wasm_modern/${entry.wasm}`,\n };\n\n const toPath = (url: string) =>\n url.startsWith('file://') ? url.slice(7) : url;\n\n // Strategy 1: resolve from node_modules (source / monorepo).\n // May fail when the consuming project's module resolver cannot reach\n // roomle-core-hsc (e.g. when web-sdk is installed via a file: reference\n // and symlink resolution stops before reaching the monorepo node_modules).\n try {\n return {\n loader: toPath(import.meta.resolve(moduleSpecifiers.loader)),\n wasm: toPath(import.meta.resolve(moduleSpecifiers.wasm)),\n };\n } catch {\n // roomle-core-hsc not reachable — fall through to bundle-relative lookup\n }\n\n // Strategy 2: files copied directly alongside the bundle (current dist layout).\n // vite-plugin-static-copy places ConfiguratorKernel.wasm / RoomleCore.wasm\n // etc. in dist/lib/ next to the JS chunks. import.meta.url of any chunk in\n // that directory has bundleDir = dist/lib/, so the files are found directly.\n const bundleDir = toPath(import.meta.url).replace(/\\/[^/]+$/, '');\n return {\n loader: `${bundleDir}/${entry.loader}`,\n wasm: `${bundleDir}/${entry.wasm}`,\n };\n};\n\nexport {\n CONFIGURATOR_WASM_MODERN_FILE_NAME,\n CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n PLANNER_WASM_MODERN_FILE_NAME,\n PLANNER_LOADER_MODERN_FILE_NAME,\n TOOLS_CORE_WASM_MODERN_FILE_NAME,\n TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n};\n","import Benchmark from './utils/benchmark';\nimport inject from './di/inject';\nimport type SinglePromiseFactory from './utils/single-promise-factory';\nimport { PROMISE_CATEGORY } from './utils/single-promise-factory';\nimport type { Context } from './di/context';\nimport { getWasmPath } from './static-files/roomle-core';\n\nlet _scriptCache: { [key: string]: boolean } = {};\nlet _idCache: { [key: string]: boolean } = {};\n\nfunction attachScript(\n url: string,\n options: { id: string },\n resolve: (value?: any) => void,\n reject: (error?: any) => void,\n) {\n if (_scriptCache[url]) {\n return resolve();\n }\n if (options.id && _idCache[options.id]) {\n return reject(\n new Error('There is already a script with ID \"' + options.id + '\"'),\n );\n }\n\n const mark = Benchmark.start('load_' + options.id.replace(/-/g, '_'));\n const element = document.createElement('script');\n element.async = false;\n element.src = url;\n element.id = options.id;\n element.onload = () => {\n _scriptCache[url] = true;\n _idCache[options.id] = true;\n Benchmark.end(mark);\n Object.defineProperty(resolve, 'name', { value: 'resolve-' + options.id });\n resolve();\n };\n element.onerror = (error) => {\n reject(error);\n };\n document.body.appendChild(element);\n}\n\nexport interface ScriptData {\n name: string;\n id: string;\n}\n\nexport default class ScriptLoader implements Context {\n public _creator_: string;\n\n @inject\n private _singlePromiseFactory: SinglePromiseFactory;\n\n constructor(creator: string) {\n this._creator_ = creator;\n }\n\n public fetch(url: string, options: { id: string }) {\n return this._singlePromiseFactory.create(\n PROMISE_CATEGORY.FETCH_SCRIPT,\n url,\n (resolve, reject) => {\n attachScript(url, options, resolve, reject);\n },\n );\n }\n\n public loadScripts(scripts: ScriptData[]) {\n const promises: any = [];\n scripts.forEach((script: any) => {\n let scriptLoadPromise = this.fetch(script.name, { id: script.id });\n promises.push(scriptLoadPromise);\n });\n return Promise.all(promises);\n }\n\n public resolveKernelPaths(type: 'configurator' | 'planner' | 'tools'): {\n wasm: string;\n loader: string;\n } {\n return getWasmPath(type);\n }\n\n public cleanUp() {\n for (let key in _idCache) {\n /* istanbul ignore else */\n if (_idCache.hasOwnProperty(key)) {\n const script = document.getElementById(key);\n if (script) {\n script.parentElement?.removeChild(script);\n }\n }\n }\n _scriptCache = {};\n _idCache = {};\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
@@ -1 +1 @@
1
- {"name": "roomle-core-hsc", "version": "3.0.0-alpha.13" }
1
+ {"name": "roomle-core-hsc", "version": "3.0.0-alpha.15" }
@@ -312,9 +312,12 @@ export interface Configuration {
312
312
  parameters: Map<string, string>;
313
313
  }
314
314
  export interface ConfigurationPlanView {
315
- enabled: boolean;
315
+ dimensioningColor?: string;
316
+ dimensioningLineWidth?: number;
316
317
  label: string;
318
+ lineColor?: string;
317
319
  lineOfSight: Vector3;
320
+ lineWidth?: number;
318
321
  viewType: PlanViewType;
319
322
  }
320
323
  export interface Dimensioning {
@@ -438,9 +438,14 @@ export interface PlanDTO {
438
438
  rooms: RoomArray;
439
439
  }
440
440
  export interface PlanView {
441
+ dimensioningColor?: string;
442
+ dimensioningLineWidth?: number;
441
443
  floorPlanEdges: FloorPlanEdges;
442
444
  id: number;
445
+ label: string;
446
+ lineColor?: string;
443
447
  lineOfSight: Vector3;
448
+ lineWidth?: number;
444
449
  objects: PlanObjectPtrVector;
445
450
  profile: ElevationProfile;
446
451
  viewType: PlanViewType;