@roomle/web-sdk 4.2.0-alpha.2 → 4.2.0-alpha.3

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 (38) 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-VdWgw-jg.mjs → api-BcdMPjhw.mjs} +2 -2
  5. package/lib/{api-VdWgw-jg.mjs.map → api-BcdMPjhw.mjs.map} +1 -1
  6. package/lib/configurator-B5JKyAVr.mjs +2 -0
  7. package/lib/{configurator-Bl3B3C63.mjs → configurator-CqUyAvhd.mjs} +3 -3
  8. package/lib/{configurator-Bl3B3C63.mjs.map → configurator-CqUyAvhd.mjs.map} +1 -1
  9. package/lib/{glb-viewer-DxwekYzn.mjs → glb-viewer-C6XU_HMw.mjs} +3 -3
  10. package/lib/{glb-viewer-DxwekYzn.mjs.map → glb-viewer-C6XU_HMw.mjs.map} +1 -1
  11. package/lib/glb-viewer-dwZ7AQ5k.mjs +2 -0
  12. package/lib/{homag-intelligence-DwBJIGnh.mjs → homag-intelligence-Cmhold3S.mjs} +3 -3
  13. package/lib/{homag-intelligence-DwBJIGnh.mjs.map → homag-intelligence-Cmhold3S.mjs.map} +1 -1
  14. package/lib/{material-viewer-DjGxE0tY.mjs → material-viewer-3laQuEgj.mjs} +3 -3
  15. package/lib/{material-viewer-DjGxE0tY.mjs.map → material-viewer-3laQuEgj.mjs.map} +1 -1
  16. package/lib/{packages-Dz8NmJP4.mjs → packages-BRoZjsxP.mjs} +5 -5
  17. package/lib/{packages-Dz8NmJP4.mjs.map → packages-BRoZjsxP.mjs.map} +1 -1
  18. package/lib/{planner-CWJXj28p.mjs → planner-2ZsNeXnj.mjs} +3 -3
  19. package/lib/{planner-CWJXj28p.mjs.map → planner-2ZsNeXnj.mjs.map} +1 -1
  20. package/lib/planner-CU5ZaWGK.mjs +2 -0
  21. package/lib/roomle-headless.d.ts +3 -0
  22. package/lib/roomle-headless.js +7 -7
  23. package/lib/{roomle-sdk-FrWkv2ZJ.mjs → roomle-sdk-CwG0lo8o.mjs} +18 -10
  24. package/lib/{roomle-sdk-FrWkv2ZJ.mjs.map → roomle-sdk-CwG0lo8o.mjs.map} +1 -1
  25. package/lib/roomle-sdk.d.ts +3 -0
  26. package/lib/roomle-sdk.js +6 -6
  27. package/lib/{script-loader-YLmjONN5.mjs → script-loader-CsWF2xfV.mjs} +2 -2
  28. package/lib/{script-loader-YLmjONN5.mjs.map → script-loader-CsWF2xfV.mjs.map} +1 -1
  29. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  30. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  31. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  32. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  33. package/lib/{tools-core-CToGr3ow.mjs → tools-core-CghU3HxF.mjs} +3 -3
  34. package/lib/{tools-core-CToGr3ow.mjs.map → tools-core-CghU3HxF.mjs.map} +1 -1
  35. package/package.json +2 -2
  36. package/lib/configurator-CHYss9Ix.mjs +0 -2
  37. package/lib/glb-viewer-Bo6d43Pf.mjs +0 -2
  38. package/lib/planner-CuYso338.mjs +0 -2
@@ -6183,6 +6183,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6183
6183
  private _cameraState;
6184
6184
  private _cameraStateLocked;
6185
6185
  private _planElementHighlighter;
6186
+ private _highlightRefreshScheduled;
6186
6187
  private _planner3dDimensionHelper;
6187
6188
  private _planner2dMeasurementsHelper;
6188
6189
  private _selectedPlanElementViewModel2d;
@@ -6300,6 +6301,8 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6300
6301
  setMode(mode: Enumify_3<typeof CAMERA_TYPE>): void;
6301
6302
  private _clearHighlighting;
6302
6303
  updateHighlightingOfPlanElements(): void;
6304
+ planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
6305
+ private _scheduleHighlightRefresh;
6303
6306
  highlightPlanElementsById(runtimeIds: number[] | null): void;
6304
6307
  highlightPlanElementById(runtimeId: number | null): void;
6305
6308
  destroy(): void;
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-Dz8NmJP4.mjs";
1
+ import { a as e, i as t, n, r, t as i } from "./packages-BRoZjsxP.mjs";
2
2
  import { i as a, t as o } from "./kernel-BWfRHWkW.mjs";
3
3
  import { mt as s, vt as c } from "./threejs-utils-C9zED_Tu.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-FrWkv2ZJ.mjs";
5
- import { t as M } from "./configurator-Bl3B3C63.mjs";
6
- import { t as N } from "./planner-CWJXj28p.mjs";
7
- import { n as P, t as F } from "./glb-viewer-DxwekYzn.mjs";
8
- import { t as I } from "./api-VdWgw-jg.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-CwG0lo8o.mjs";
5
+ import { t as M } from "./configurator-CqUyAvhd.mjs";
6
+ import { t as N } from "./planner-2ZsNeXnj.mjs";
7
+ import { n as P, t as F } from "./glb-viewer-C6XU_HMw.mjs";
8
+ import { t as I } from "./api-BcdMPjhw.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-CX1ZGuFY.mjs";
2
- import { U as r, it as i } from "./roomle-sdk-FrWkv2ZJ.mjs";
2
+ import { U as r, it as i } from "./roomle-sdk-CwG0lo8o.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-YLmjONN5.mjs.map
86
+ //# sourceMappingURL=script-loader-CsWF2xfV.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"script-loader-YLmjONN5.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__Msg57USEadASvSStYSdmzA__\"","export default \"__VITE_ASSET__DUq8YoikZLXEejpNZ1KQvg__\"","export default \"__VITE_ASSET__epdbhdyBUyD3hvxx0_dcTg__\"","export default \"__VITE_ASSET__6kssa3xCT2YlMpIbbRNP$Q__\"","export default \"__VITE_ASSET__aLISaAY6NSiJFT$6GdtrfA__\"","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
+ {"version":3,"file":"script-loader-CsWF2xfV.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__6kssa3xCT2YlMpIbbRNP$Q__\"","export default \"__VITE_ASSET__$oUiuAXR7gZMKRQU56HW2w__\"","export default \"__VITE_ASSET___ewJD0zO9$SsiDvawfmAUw__\"","export default \"__VITE_ASSET__aLISaAY6NSiJFT$6GdtrfA__\"","export default \"__VITE_ASSET__gOpBNSELCNdnM_yZlyA5OQ__\"","export default \"__VITE_ASSET__DUq8YoikZLXEejpNZ1KQvg__\"","// @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": "2.83.0-alpha.6" }
1
+ {"name": "roomle-core-hsc", "version": "2.83.0-alpha.8" }
@@ -1,5 +1,5 @@
1
- import { H as e, V as t, n, st as r } from "./roomle-sdk-FrWkv2ZJ.mjs";
2
- import { t as i } from "./script-loader-YLmjONN5.mjs";
1
+ import { H as e, V as t, n, st as r } from "./roomle-sdk-CwG0lo8o.mjs";
2
+ import { t as i } from "./script-loader-CsWF2xfV.mjs";
3
3
  //#region packages/tools-core/src/utils/injectables.ts
4
4
  var a = [new r("script-loader", i)], o = class extends e {
5
5
  setupGlobals() {}
@@ -27,4 +27,4 @@ var a = [new r("script-loader", i)], o = class extends e {
27
27
  //#endregion
28
28
  export { o as ToolsCore };
29
29
 
30
- //# sourceMappingURL=tools-core-CToGr3ow.mjs.map
30
+ //# sourceMappingURL=tools-core-CghU3HxF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools-core-CToGr3ow.mjs","names":[],"sources":["../../packages/tools-core/src/utils/injectables.ts","../../packages/tools-core/src/tools-core.ts"],"sourcesContent":["import ScriptLoader from '../../../common-core/src/script-loader';\nimport { DependencyInjectionAssignment } from '../../../common-core/src/di/container';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n];\n","import './utils/global-definitions';\n\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport type Logger from '../../common-core/src/logger';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport type RoomleToolsCore from './roomle-tools-core';\nimport type ScriptLoader from '../../common-core/src/script-loader';\nimport { INJECTABLES } from './utils/injectables';\n\nexport class ToolsCore extends Main {\n private _tools: RoomleToolsCore | undefined;\n\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n }\n\n protected cleanUpGlobals(): void {\n this._tools = undefined;\n if (window.RoomleToolsCore) {\n delete window.RoomleToolsCore;\n }\n }\n\n protected cleanUpDependencies(): void {\n const scriptLoader = this.lookup<ScriptLoader>('script-loader');\n if (scriptLoader) {\n scriptLoader.cleanUp();\n }\n }\n\n protected async bootFinished(): Promise<void> {\n this._tools = this.lookup<RoomleToolsCore>(\n 'roomle-tools-core',\n this._context,\n );\n\n if (!window.RoomleToolsCore) {\n window.RoomleToolsCore = this._tools;\n }\n }\n\n public getApi(): RoomleToolsCore {\n if (this._tools === undefined) {\n throw new Error('ToolsCore not initialized. Call boot() first.');\n }\n return this._tools;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.TOOLS_CORE;\n }\n}\n"],"mappings":";;;AAGA,IAAa,IAA+C,CAC1D,IAAI,EAA8B,iBAAiB,EAAa,CACjE,ECIY,IAAb,cAA+B,EAAK;CAGlC,eAA+B;CAI/B,oBAAoC;AAElC,EADA,EAA0B,MAAM,EAAY,EAC5C,KAAK,OAAe,UAAU,KAAK,SAAS;;CAG9C,iBAAiC;AAE/B,EADA,KAAK,SAAS,KAAA,GACV,OAAO,mBACT,OAAO,OAAO;;CAIlB,sBAAsC;EACpC,IAAM,IAAe,KAAK,OAAqB,gBAAgB;AAC/D,EAAI,KACF,EAAa,SAAS;;CAI1B,MAAgB,eAA8B;AAM5C,EALA,KAAK,SAAS,KAAK,OACjB,qBACA,KAAK,SACN,EAEI,OAAO,oBACV,OAAO,kBAAkB,KAAK;;CAIlC,SAAiC;AAC/B,MAAI,KAAK,WAAW,KAAA,EAClB,OAAU,MAAM,gDAAgD;AAElE,SAAO,KAAK;;CAGd,iBAAmC;AACjC,SAAO,EAAa"}
1
+ {"version":3,"file":"tools-core-CghU3HxF.mjs","names":[],"sources":["../../packages/tools-core/src/utils/injectables.ts","../../packages/tools-core/src/tools-core.ts"],"sourcesContent":["import ScriptLoader from '../../../common-core/src/script-loader';\nimport { DependencyInjectionAssignment } from '../../../common-core/src/di/container';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n];\n","import './utils/global-definitions';\n\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport type Logger from '../../common-core/src/logger';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport type RoomleToolsCore from './roomle-tools-core';\nimport type ScriptLoader from '../../common-core/src/script-loader';\nimport { INJECTABLES } from './utils/injectables';\n\nexport class ToolsCore extends Main {\n private _tools: RoomleToolsCore | undefined;\n\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n }\n\n protected cleanUpGlobals(): void {\n this._tools = undefined;\n if (window.RoomleToolsCore) {\n delete window.RoomleToolsCore;\n }\n }\n\n protected cleanUpDependencies(): void {\n const scriptLoader = this.lookup<ScriptLoader>('script-loader');\n if (scriptLoader) {\n scriptLoader.cleanUp();\n }\n }\n\n protected async bootFinished(): Promise<void> {\n this._tools = this.lookup<RoomleToolsCore>(\n 'roomle-tools-core',\n this._context,\n );\n\n if (!window.RoomleToolsCore) {\n window.RoomleToolsCore = this._tools;\n }\n }\n\n public getApi(): RoomleToolsCore {\n if (this._tools === undefined) {\n throw new Error('ToolsCore not initialized. Call boot() first.');\n }\n return this._tools;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.TOOLS_CORE;\n }\n}\n"],"mappings":";;;AAGA,IAAa,IAA+C,CAC1D,IAAI,EAA8B,iBAAiB,EAAa,CACjE,ECIY,IAAb,cAA+B,EAAK;CAGlC,eAA+B;CAI/B,oBAAoC;AAElC,EADA,EAA0B,MAAM,EAAY,EAC5C,KAAK,OAAe,UAAU,KAAK,SAAS;;CAG9C,iBAAiC;AAE/B,EADA,KAAK,SAAS,KAAA,GACV,OAAO,mBACT,OAAO,OAAO;;CAIlB,sBAAsC;EACpC,IAAM,IAAe,KAAK,OAAqB,gBAAgB;AAC/D,EAAI,KACF,EAAa,SAAS;;CAI1B,MAAgB,eAA8B;AAM5C,EALA,KAAK,SAAS,KAAK,OACjB,qBACA,KAAK,SACN,EAEI,OAAO,oBACV,OAAO,kBAAkB,KAAK;;CAIlC,SAAiC;AAC/B,MAAI,KAAK,WAAW,KAAA,EAClB,OAAU,MAAM,gDAAgD;AAElE,SAAO,KAAK;;CAGd,iBAAmC;AACjC,SAAO,EAAa"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@roomle/web-sdk",
3
- "version": "4.2.0-alpha.2",
3
+ "version": "4.2.0-alpha.3",
4
4
  "description": "Roomle Web SDK",
5
5
  "author": "Roomle Development",
6
- "main": "./lib/roomle-sdk-FrWkv2ZJ.mjs",
6
+ "main": "./lib/roomle-sdk-CwG0lo8o.mjs",
7
7
  "scripts": {
8
8
  "release": "node ../scripts/run-semantic-release.mjs"
9
9
  },
@@ -1,2 +0,0 @@
1
- import { t as e } from "./configurator-Bl3B3C63.mjs";
2
- export { e as Configurator };
@@ -1,2 +0,0 @@
1
- import { t as e } from "./glb-viewer-DxwekYzn.mjs";
2
- export { e as GlbViewer };
@@ -1,2 +0,0 @@
1
- import { t as e } from "./planner-CWJXj28p.mjs";
2
- export { e as Planner };