@roomle/web-sdk 3.6.0-alpha.3 → 3.6.0-alpha.4

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 (327) hide show
  1. package/lib/BufferGeometry-DLEagG41.mjs +1022 -0
  2. package/lib/BufferGeometry-DLEagG41.mjs.map +1 -0
  3. package/lib/ConfiguratorKernel.wasm +0 -0
  4. package/lib/GLTFExporter-D8qsdwDK.mjs +1092 -0
  5. package/lib/GLTFExporter-D8qsdwDK.mjs.map +1 -0
  6. package/lib/Object3D-DSjIOhON.mjs +1713 -0
  7. package/lib/Object3D-DSjIOhON.mjs.map +1 -0
  8. package/lib/PointLightHelper-BnjxGaOG.mjs +257 -0
  9. package/lib/PointLightHelper-BnjxGaOG.mjs.map +1 -0
  10. package/lib/RoomleCore.wasm +0 -0
  11. package/lib/RoomleToolsCore.wasm +0 -0
  12. package/lib/SpotLightHelper-DqsfqCrs.mjs +154 -0
  13. package/lib/SpotLightHelper-DqsfqCrs.mjs.map +1 -0
  14. package/lib/USDZExporter-DxIqi8St.mjs +296 -0
  15. package/lib/USDZExporter-DxIqi8St.mjs.map +1 -0
  16. package/lib/Vector4-DGmBYfpK.mjs +204 -0
  17. package/lib/Vector4-DGmBYfpK.mjs.map +1 -0
  18. package/lib/api-CNoIBuvr.mjs +55 -0
  19. package/lib/api-CNoIBuvr.mjs.map +1 -0
  20. package/lib/banana-for-scale-C_iNmlCT.mjs +36 -0
  21. package/lib/banana-for-scale-C_iNmlCT.mjs.map +1 -0
  22. package/lib/common-utils-DMSTohiS.mjs +187 -0
  23. package/lib/common-utils-DMSTohiS.mjs.map +1 -0
  24. package/lib/component-dimensioning-CvRmUja4.mjs +162 -0
  25. package/lib/component-dimensioning-CvRmUja4.mjs.map +1 -0
  26. package/lib/component-raycast-helper-CEp7wy9c.mjs +97 -0
  27. package/lib/component-raycast-helper-CEp7wy9c.mjs.map +1 -0
  28. package/lib/configurator-B_5XVG2O.mjs +45 -0
  29. package/lib/configurator-B_5XVG2O.mjs.map +1 -0
  30. package/lib/configurator-DCdvMM0o.mjs +2 -0
  31. package/lib/continuous-drawing-helper-v_5UAM9A.mjs +42 -0
  32. package/lib/continuous-drawing-helper-v_5UAM9A.mjs.map +1 -0
  33. package/lib/decorate-C1QnXPYw.mjs +35 -0
  34. package/lib/decorate-C1QnXPYw.mjs.map +1 -0
  35. package/lib/dimensioning-helper-DTcW85Oq.mjs +2 -0
  36. package/lib/dimensioning-helper-Fwpt1HTT.mjs +268 -0
  37. package/lib/dimensioning-helper-Fwpt1HTT.mjs.map +1 -0
  38. package/lib/fflate.module-dFNj5UPI.mjs +536 -0
  39. package/lib/fflate.module-dFNj5UPI.mjs.map +1 -0
  40. package/lib/glb-viewer-cP8g6bcm.mjs +315 -0
  41. package/lib/glb-viewer-cP8g6bcm.mjs.map +1 -0
  42. package/lib/glb-viewer-dZThmlwM.mjs +2 -0
  43. package/lib/homag-intelligence-LoOJ7roM.mjs +381 -0
  44. package/lib/homag-intelligence-LoOJ7roM.mjs.map +1 -0
  45. package/lib/imos-ix-poc-export-helper-CQh94HsO.mjs +161 -0
  46. package/lib/imos-ix-poc-export-helper-CQh94HsO.mjs.map +1 -0
  47. package/lib/kernel-BAQSG9r5.mjs +46 -0
  48. package/lib/kernel-BAQSG9r5.mjs.map +1 -0
  49. package/lib/kernel-utils-H74uNY1h.mjs +44 -0
  50. package/lib/kernel-utils-H74uNY1h.mjs.map +1 -0
  51. package/lib/layer-C_JtkhdO.mjs +8 -0
  52. package/lib/layer-C_JtkhdO.mjs.map +1 -0
  53. package/lib/main-BxEZ11ag.mjs +20461 -0
  54. package/lib/main-BxEZ11ag.mjs.map +1 -0
  55. package/lib/material-viewer-njBFF0Zg.mjs +292 -0
  56. package/lib/material-viewer-njBFF0Zg.mjs.map +1 -0
  57. package/lib/planner-Cr495Cyn.mjs +2 -0
  58. package/lib/planner-DY73rplC.mjs +44 -0
  59. package/lib/planner-DY73rplC.mjs.map +1 -0
  60. package/lib/plugin-system-D9K46xJk.mjs +55 -0
  61. package/lib/plugin-system-D9K46xJk.mjs.map +1 -0
  62. package/lib/roomle-sdk.d.ts +15 -2
  63. package/lib/roomle-sdk.js +7 -36
  64. package/lib/scene-renderer-D8HkTFeZ.mjs +3826 -0
  65. package/lib/scene-renderer-D8HkTFeZ.mjs.map +1 -0
  66. package/lib/script-loader-KBq8SjP6.mjs +45 -0
  67. package/lib/script-loader-KBq8SjP6.mjs.map +1 -0
  68. package/lib/static/draco/node_modules/three/examples/jsm/libs/draco/draco_decoder.js +34 -0
  69. package/lib/static/draco/node_modules/three/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
  70. package/lib/static/draco/node_modules/three/examples/jsm/libs/draco/draco_encoder.js +33 -0
  71. package/lib/static/draco/node_modules/three/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
  72. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -0
  73. package/lib/static/roomle-core-hsc/{src → node_modules/roomle-core-hsc/src}/embind/plannerCoreInterface.d.ts +2 -0
  74. package/lib/static/roomle-core-hsc/{wasm_modern → node_modules/roomle-core-hsc/wasm_modern}/ConfiguratorKernel.wasm +0 -0
  75. package/lib/static/roomle-core-hsc/{RoomleCore.wasm → node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm} +0 -0
  76. package/lib/static/roomle-core-hsc/{wasm_modern → node_modules/roomle-core-hsc/wasm_modern}/RoomleToolsCore.wasm +0 -0
  77. package/lib/stats-helper-HM0TaIM5.mjs +95 -0
  78. package/lib/stats-helper-HM0TaIM5.mjs.map +1 -0
  79. package/lib/three.core-CLIofecG.mjs +7629 -0
  80. package/lib/three.core-CLIofecG.mjs.map +1 -0
  81. package/lib/three.module-C4Q1skJQ.mjs +5795 -0
  82. package/lib/three.module-C4Q1skJQ.mjs.map +1 -0
  83. package/lib/three.webgpu-dFspy2yF.mjs +16057 -0
  84. package/lib/three.webgpu-dFspy2yF.mjs.map +1 -0
  85. package/lib/threejs-utils-jEzvlJF1.mjs +2233 -0
  86. package/lib/threejs-utils-jEzvlJF1.mjs.map +1 -0
  87. package/lib/tools-core-CZbPygRC.mjs +30 -0
  88. package/lib/tools-core-CZbPygRC.mjs.map +1 -0
  89. package/package.json +1 -1
  90. package/lib/BufferGeometry-C1o0MiFL.mjs +0 -2064
  91. package/lib/BufferGeometry-C1o0MiFL.mjs.map +0 -1
  92. package/lib/GLTFExporter-CXMBueJw.mjs +0 -1323
  93. package/lib/GLTFExporter-CXMBueJw.mjs.map +0 -1
  94. package/lib/PointLightHelper-ICWLqwjK.mjs +0 -522
  95. package/lib/PointLightHelper-ICWLqwjK.mjs.map +0 -1
  96. package/lib/SpotLightHelper-CW5lDGFp.mjs +0 -222
  97. package/lib/SpotLightHelper-CW5lDGFp.mjs.map +0 -1
  98. package/lib/USDZExporter-CUp3dX08.mjs +0 -552
  99. package/lib/USDZExporter-CUp3dX08.mjs.map +0 -1
  100. package/lib/banana-for-scale-CfQ8dnY2.mjs +0 -50
  101. package/lib/banana-for-scale-CfQ8dnY2.mjs.map +0 -1
  102. package/lib/component-dimensioning-C9AWhxvj.mjs +0 -237
  103. package/lib/component-dimensioning-C9AWhxvj.mjs.map +0 -1
  104. package/lib/continuous-drawing-helper-B5BlbPPz.mjs +0 -48
  105. package/lib/continuous-drawing-helper-B5BlbPPz.mjs.map +0 -1
  106. package/lib/homag-intelligence-UFo9Z8FS.mjs +0 -549
  107. package/lib/homag-intelligence-UFo9Z8FS.mjs.map +0 -1
  108. package/lib/imos-ix-poc-export-helper-CGSk-8yx.mjs +0 -180
  109. package/lib/imos-ix-poc-export-helper-CGSk-8yx.mjs.map +0 -1
  110. package/lib/index-DIyMlQBA.mjs +0 -100947
  111. package/lib/index-DIyMlQBA.mjs.map +0 -1
  112. package/lib/material-viewer-QTlidNBs.mjs +0 -451
  113. package/lib/material-viewer-QTlidNBs.mjs.map +0 -1
  114. package/lib/roomle-sdk.js.map +0 -1
  115. package/lib/static/draco/gltf/draco_decoder.js +0 -33
  116. package/lib/static/draco/gltf/draco_decoder.wasm +0 -0
  117. package/lib/static/draco/gltf/draco_encoder.js +0 -33
  118. package/lib/static/draco/gltf/draco_wasm_wrapper.js +0 -116
  119. package/lib/static/roomle-core-hsc/ConfiguratorKernel.wasm +0 -0
  120. package/lib/static/roomle-core-hsc/RoomleToolsCore.wasm +0 -0
  121. package/lib/static/roomle-core-hsc/embind/configuratorCallback.d.ts +0 -82
  122. package/lib/static/roomle-core-hsc/embind/configuratorCallback.js +0 -355
  123. package/lib/static/roomle-core-hsc/embind/configuratorCallback.js.map +0 -1
  124. package/lib/static/roomle-core-hsc/embind/configuratorCore.d.ts +0 -19
  125. package/lib/static/roomle-core-hsc/embind/configuratorCore.js +0 -50
  126. package/lib/static/roomle-core-hsc/embind/configuratorCore.js.map +0 -1
  127. package/lib/static/roomle-core-hsc/embind/configuratorCoreInterface.d.ts +0 -746
  128. package/lib/static/roomle-core-hsc/embind/configuratorCoreInterface.js +0 -99
  129. package/lib/static/roomle-core-hsc/embind/configuratorCoreInterface.js.map +0 -1
  130. package/lib/static/roomle-core-hsc/embind/configuratorUtils.d.ts +0 -3
  131. package/lib/static/roomle-core-hsc/embind/configuratorUtils.js +0 -52
  132. package/lib/static/roomle-core-hsc/embind/configuratorUtils.js.map +0 -1
  133. package/lib/static/roomle-core-hsc/embind/coreModue.d.ts +0 -4
  134. package/lib/static/roomle-core-hsc/embind/coreModue.js +0 -3
  135. package/lib/static/roomle-core-hsc/embind/coreModue.js.map +0 -1
  136. package/lib/static/roomle-core-hsc/embind/coreModule.d.ts +0 -11
  137. package/lib/static/roomle-core-hsc/embind/coreModule.js +0 -19
  138. package/lib/static/roomle-core-hsc/embind/coreModule.js.map +0 -1
  139. package/lib/static/roomle-core-hsc/embind/plannerCoreInterface.d.ts +0 -851
  140. package/lib/static/roomle-core-hsc/loader/configurableObject.d.ts +0 -30
  141. package/lib/static/roomle-core-hsc/loader/configurableObject.js +0 -111
  142. package/lib/static/roomle-core-hsc/loader/configurableObject.js.map +0 -1
  143. package/lib/static/roomle-core-hsc/loader/configurationGeometryConstructor.d.ts +0 -21
  144. package/lib/static/roomle-core-hsc/loader/configurationGeometryConstructor.js +0 -90
  145. package/lib/static/roomle-core-hsc/loader/configurationGeometryConstructor.js.map +0 -1
  146. package/lib/static/roomle-core-hsc/loader/configurationLoader.d.ts +0 -116
  147. package/lib/static/roomle-core-hsc/loader/configurationLoader.js +0 -345
  148. package/lib/static/roomle-core-hsc/loader/configurationLoader.js.map +0 -1
  149. package/lib/static/roomle-core-hsc/loader/configurationManager.d.ts +0 -41
  150. package/lib/static/roomle-core-hsc/loader/configurationManager.js +0 -147
  151. package/lib/static/roomle-core-hsc/loader/configurationManager.js.map +0 -1
  152. package/lib/static/roomle-core-hsc/loaderUtility.d.ts +0 -81
  153. package/lib/static/roomle-core-hsc/loaderUtility.js +0 -141
  154. package/lib/static/roomle-core-hsc/loaderUtility.js.map +0 -1
  155. package/lib/static/roomle-core-hsc/logger.d.ts +0 -29
  156. package/lib/static/roomle-core-hsc/logger.js +0 -61
  157. package/lib/static/roomle-core-hsc/logger.js.map +0 -1
  158. package/lib/static/roomle-core-hsc/package.json +0 -1
  159. package/lib/static/roomle-core-hsc/planElementManager.d.ts +0 -96
  160. package/lib/static/roomle-core-hsc/planElementManager.js +0 -300
  161. package/lib/static/roomle-core-hsc/planElementManager.js.map +0 -1
  162. package/lib/static/roomle-core-hsc/plannerCore.d.ts +0 -31
  163. package/lib/static/roomle-core-hsc/plannerCore.js +0 -111
  164. package/lib/static/roomle-core-hsc/plannerCore.js.map +0 -1
  165. package/lib/static/roomle-core-hsc/plannerCoreCallback.d.ts +0 -39
  166. package/lib/static/roomle-core-hsc/plannerCoreCallback.js +0 -116
  167. package/lib/static/roomle-core-hsc/plannerCoreCallback.js.map +0 -1
  168. package/lib/static/roomle-core-hsc/plannerCoreInterface.d.ts +0 -851
  169. package/lib/static/roomle-core-hsc/plannerCoreInterface.js +0 -93
  170. package/lib/static/roomle-core-hsc/plannerCoreInterface.js.map +0 -1
  171. package/lib/static/roomle-core-hsc/rapiAccess.d.ts +0 -70
  172. package/lib/static/roomle-core-hsc/rapiAccess.js +0 -227
  173. package/lib/static/roomle-core-hsc/rapiAccess.js.map +0 -1
  174. package/lib/static/roomle-core-hsc/serviceCore.d.ts +0 -20
  175. package/lib/static/roomle-core-hsc/serviceCore.js +0 -54
  176. package/lib/static/roomle-core-hsc/serviceCore.js.map +0 -1
  177. package/lib/static/roomle-core-hsc/serviceCoreInterface.d.ts +0 -13
  178. package/lib/static/roomle-core-hsc/serviceCoreInterface.js +0 -3
  179. package/lib/static/roomle-core-hsc/serviceCoreInterface.js.map +0 -1
  180. package/lib/static/roomle-core-hsc/src/embind/configuratorCallback.d.ts +0 -82
  181. package/lib/static/roomle-core-hsc/src/embind/configuratorCallback.js +0 -355
  182. package/lib/static/roomle-core-hsc/src/embind/configuratorCallback.js.map +0 -1
  183. package/lib/static/roomle-core-hsc/src/embind/configuratorCore.d.ts +0 -19
  184. package/lib/static/roomle-core-hsc/src/embind/configuratorCore.js +0 -50
  185. package/lib/static/roomle-core-hsc/src/embind/configuratorCore.js.map +0 -1
  186. package/lib/static/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts +0 -746
  187. package/lib/static/roomle-core-hsc/src/embind/configuratorCoreInterface.js +0 -99
  188. package/lib/static/roomle-core-hsc/src/embind/configuratorCoreInterface.js.map +0 -1
  189. package/lib/static/roomle-core-hsc/src/embind/configuratorUtils.d.ts +0 -3
  190. package/lib/static/roomle-core-hsc/src/embind/configuratorUtils.js +0 -52
  191. package/lib/static/roomle-core-hsc/src/embind/configuratorUtils.js.map +0 -1
  192. package/lib/static/roomle-core-hsc/src/embind/coreModue.d.ts +0 -4
  193. package/lib/static/roomle-core-hsc/src/embind/coreModue.js +0 -3
  194. package/lib/static/roomle-core-hsc/src/embind/coreModue.js.map +0 -1
  195. package/lib/static/roomle-core-hsc/src/embind/coreModule.d.ts +0 -11
  196. package/lib/static/roomle-core-hsc/src/embind/coreModule.js +0 -19
  197. package/lib/static/roomle-core-hsc/src/embind/coreModule.js.map +0 -1
  198. package/lib/static/roomle-core-hsc/src/embind/plannerCore.d.ts +0 -31
  199. package/lib/static/roomle-core-hsc/src/embind/plannerCore.js +0 -111
  200. package/lib/static/roomle-core-hsc/src/embind/plannerCore.js.map +0 -1
  201. package/lib/static/roomle-core-hsc/src/embind/plannerCoreCallback.d.ts +0 -39
  202. package/lib/static/roomle-core-hsc/src/embind/plannerCoreCallback.js +0 -116
  203. package/lib/static/roomle-core-hsc/src/embind/plannerCoreCallback.js.map +0 -1
  204. package/lib/static/roomle-core-hsc/src/embind/plannerCoreInterface.js +0 -93
  205. package/lib/static/roomle-core-hsc/src/embind/plannerCoreInterface.js.map +0 -1
  206. package/lib/static/roomle-core-hsc/src/embind/serviceCore.d.ts +0 -20
  207. package/lib/static/roomle-core-hsc/src/embind/serviceCore.js +0 -54
  208. package/lib/static/roomle-core-hsc/src/embind/serviceCore.js.map +0 -1
  209. package/lib/static/roomle-core-hsc/src/embind/serviceCoreInterface.d.ts +0 -13
  210. package/lib/static/roomle-core-hsc/src/embind/serviceCoreInterface.js +0 -3
  211. package/lib/static/roomle-core-hsc/src/embind/serviceCoreInterface.js.map +0 -1
  212. package/lib/static/roomle-core-hsc/src/embind/toolsCore.d.ts +0 -17
  213. package/lib/static/roomle-core-hsc/src/embind/toolsCore.js +0 -75
  214. package/lib/static/roomle-core-hsc/src/embind/toolsCore.js.map +0 -1
  215. package/lib/static/roomle-core-hsc/src/embind/toolsCoreInterface.d.ts +0 -40
  216. package/lib/static/roomle-core-hsc/src/embind/toolsCoreInterface.js +0 -8
  217. package/lib/static/roomle-core-hsc/src/embind/toolsCoreInterface.js.map +0 -1
  218. package/lib/static/roomle-core-hsc/src/loader/configurableObject.d.ts +0 -30
  219. package/lib/static/roomle-core-hsc/src/loader/configurableObject.js +0 -111
  220. package/lib/static/roomle-core-hsc/src/loader/configurableObject.js.map +0 -1
  221. package/lib/static/roomle-core-hsc/src/loader/configurationGeometryConstructor.d.ts +0 -21
  222. package/lib/static/roomle-core-hsc/src/loader/configurationGeometryConstructor.js +0 -90
  223. package/lib/static/roomle-core-hsc/src/loader/configurationGeometryConstructor.js.map +0 -1
  224. package/lib/static/roomle-core-hsc/src/loader/configurationLoader.d.ts +0 -116
  225. package/lib/static/roomle-core-hsc/src/loader/configurationLoader.js +0 -345
  226. package/lib/static/roomle-core-hsc/src/loader/configurationLoader.js.map +0 -1
  227. package/lib/static/roomle-core-hsc/src/loader/configurationManager.d.ts +0 -41
  228. package/lib/static/roomle-core-hsc/src/loader/configurationManager.js +0 -147
  229. package/lib/static/roomle-core-hsc/src/loader/configurationManager.js.map +0 -1
  230. package/lib/static/roomle-core-hsc/src/loader/loaderUtility.d.ts +0 -81
  231. package/lib/static/roomle-core-hsc/src/loader/loaderUtility.js +0 -141
  232. package/lib/static/roomle-core-hsc/src/loader/loaderUtility.js.map +0 -1
  233. package/lib/static/roomle-core-hsc/src/loader/logger.d.ts +0 -29
  234. package/lib/static/roomle-core-hsc/src/loader/logger.js +0 -61
  235. package/lib/static/roomle-core-hsc/src/loader/logger.js.map +0 -1
  236. package/lib/static/roomle-core-hsc/src/loader/planElementManager.d.ts +0 -96
  237. package/lib/static/roomle-core-hsc/src/loader/planElementManager.js +0 -300
  238. package/lib/static/roomle-core-hsc/src/loader/planElementManager.js.map +0 -1
  239. package/lib/static/roomle-core-hsc/src/loader/rapiAccess.d.ts +0 -70
  240. package/lib/static/roomle-core-hsc/src/loader/rapiAccess.js +0 -227
  241. package/lib/static/roomle-core-hsc/src/loader/rapiAccess.js.map +0 -1
  242. package/lib/static/roomle-core-hsc/toolsCore.d.ts +0 -17
  243. package/lib/static/roomle-core-hsc/toolsCore.js +0 -75
  244. package/lib/static/roomle-core-hsc/toolsCore.js.map +0 -1
  245. package/lib/static/roomle-core-hsc/toolsCoreInterface.d.ts +0 -40
  246. package/lib/static/roomle-core-hsc/toolsCoreInterface.js +0 -8
  247. package/lib/static/roomle-core-hsc/toolsCoreInterface.js.map +0 -1
  248. package/lib/static/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js +0 -74
  249. package/lib/static/roomle-core-hsc/wasm_modern/RoomleCore.js +0 -79
  250. package/lib/static/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  251. package/lib/static/roomle-core-hsc/wasm_modern/RoomleToolsCore.js +0 -74
  252. package/lib/stats-helper-cTITQsAT.mjs +0 -108
  253. package/lib/stats-helper-cTITQsAT.mjs.map +0 -1
  254. package/lib/tools-core-CCWbo8fD.mjs +0 -36
  255. package/lib/tools-core-CCWbo8fD.mjs.map +0 -1
  256. /package/lib/static/draco/{README.md → node_modules/three/examples/jsm/libs/draco/README.md} +0 -0
  257. /package/lib/static/draco/{draco_decoder.js → node_modules/three/examples/jsm/libs/draco/gltf/draco_decoder.js} +0 -0
  258. /package/lib/static/draco/{draco_decoder.wasm → node_modules/three/examples/jsm/libs/draco/gltf/draco_decoder.wasm} +0 -0
  259. /package/lib/static/draco/{draco_encoder.js → node_modules/three/examples/jsm/libs/draco/gltf/draco_encoder.js} +0 -0
  260. /package/lib/static/draco/{draco_wasm_wrapper.js → node_modules/three/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js} +0 -0
  261. /package/lib/static/{asset-loader.worker.js → packages/workers/generated/asset-loader.worker.js} +0 -0
  262. /package/lib/static/{budgeteer.sw.js → packages/workers/generated/budgeteer.sw.js} +0 -0
  263. /package/lib/static/roomle-core-hsc/{configuratorCallback.d.ts → node_modules/roomle-core-hsc/src/embind/configuratorCallback.d.ts} +0 -0
  264. /package/lib/static/roomle-core-hsc/{configuratorCallback.js → node_modules/roomle-core-hsc/src/embind/configuratorCallback.js} +0 -0
  265. /package/lib/static/roomle-core-hsc/{configuratorCallback.js.map → node_modules/roomle-core-hsc/src/embind/configuratorCallback.js.map} +0 -0
  266. /package/lib/static/roomle-core-hsc/{configuratorCore.d.ts → node_modules/roomle-core-hsc/src/embind/configuratorCore.d.ts} +0 -0
  267. /package/lib/static/roomle-core-hsc/{configuratorCore.js → node_modules/roomle-core-hsc/src/embind/configuratorCore.js} +0 -0
  268. /package/lib/static/roomle-core-hsc/{configuratorCore.js.map → node_modules/roomle-core-hsc/src/embind/configuratorCore.js.map} +0 -0
  269. /package/lib/static/roomle-core-hsc/{configuratorCoreInterface.d.ts → node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts} +0 -0
  270. /package/lib/static/roomle-core-hsc/{configuratorCoreInterface.js → node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.js} +0 -0
  271. /package/lib/static/roomle-core-hsc/{configuratorCoreInterface.js.map → node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.js.map} +0 -0
  272. /package/lib/static/roomle-core-hsc/{configuratorUtils.d.ts → node_modules/roomle-core-hsc/src/embind/configuratorUtils.d.ts} +0 -0
  273. /package/lib/static/roomle-core-hsc/{configuratorUtils.js → node_modules/roomle-core-hsc/src/embind/configuratorUtils.js} +0 -0
  274. /package/lib/static/roomle-core-hsc/{configuratorUtils.js.map → node_modules/roomle-core-hsc/src/embind/configuratorUtils.js.map} +0 -0
  275. /package/lib/static/roomle-core-hsc/{coreModue.d.ts → node_modules/roomle-core-hsc/src/embind/coreModue.d.ts} +0 -0
  276. /package/lib/static/roomle-core-hsc/{coreModue.js → node_modules/roomle-core-hsc/src/embind/coreModue.js} +0 -0
  277. /package/lib/static/roomle-core-hsc/{coreModue.js.map → node_modules/roomle-core-hsc/src/embind/coreModue.js.map} +0 -0
  278. /package/lib/static/roomle-core-hsc/{coreModule.d.ts → node_modules/roomle-core-hsc/src/embind/coreModule.d.ts} +0 -0
  279. /package/lib/static/roomle-core-hsc/{coreModule.js → node_modules/roomle-core-hsc/src/embind/coreModule.js} +0 -0
  280. /package/lib/static/roomle-core-hsc/{coreModule.js.map → node_modules/roomle-core-hsc/src/embind/coreModule.js.map} +0 -0
  281. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCore.d.ts +0 -0
  282. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCore.js +0 -0
  283. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCore.js.map +0 -0
  284. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCoreCallback.d.ts +0 -0
  285. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCoreCallback.js +0 -0
  286. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCoreCallback.js.map +0 -0
  287. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCoreInterface.js +0 -0
  288. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/plannerCoreInterface.js.map +0 -0
  289. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/serviceCore.d.ts +0 -0
  290. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/serviceCore.js +0 -0
  291. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/serviceCore.js.map +0 -0
  292. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/serviceCoreInterface.d.ts +0 -0
  293. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/serviceCoreInterface.js +0 -0
  294. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/serviceCoreInterface.js.map +0 -0
  295. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/toolsCore.d.ts +0 -0
  296. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/toolsCore.js +0 -0
  297. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/toolsCore.js.map +0 -0
  298. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/toolsCoreInterface.d.ts +0 -0
  299. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/toolsCoreInterface.js +0 -0
  300. /package/lib/static/roomle-core-hsc/{embind → node_modules/roomle-core-hsc/src/embind}/toolsCoreInterface.js.map +0 -0
  301. /package/lib/static/roomle-core-hsc/{configurableObject.d.ts → node_modules/roomle-core-hsc/src/loader/configurableObject.d.ts} +0 -0
  302. /package/lib/static/roomle-core-hsc/{configurableObject.js → node_modules/roomle-core-hsc/src/loader/configurableObject.js} +0 -0
  303. /package/lib/static/roomle-core-hsc/{configurableObject.js.map → node_modules/roomle-core-hsc/src/loader/configurableObject.js.map} +0 -0
  304. /package/lib/static/roomle-core-hsc/{configurationGeometryConstructor.d.ts → node_modules/roomle-core-hsc/src/loader/configurationGeometryConstructor.d.ts} +0 -0
  305. /package/lib/static/roomle-core-hsc/{configurationGeometryConstructor.js → node_modules/roomle-core-hsc/src/loader/configurationGeometryConstructor.js} +0 -0
  306. /package/lib/static/roomle-core-hsc/{configurationGeometryConstructor.js.map → node_modules/roomle-core-hsc/src/loader/configurationGeometryConstructor.js.map} +0 -0
  307. /package/lib/static/roomle-core-hsc/{configurationLoader.d.ts → node_modules/roomle-core-hsc/src/loader/configurationLoader.d.ts} +0 -0
  308. /package/lib/static/roomle-core-hsc/{configurationLoader.js → node_modules/roomle-core-hsc/src/loader/configurationLoader.js} +0 -0
  309. /package/lib/static/roomle-core-hsc/{configurationLoader.js.map → node_modules/roomle-core-hsc/src/loader/configurationLoader.js.map} +0 -0
  310. /package/lib/static/roomle-core-hsc/{configurationManager.d.ts → node_modules/roomle-core-hsc/src/loader/configurationManager.d.ts} +0 -0
  311. /package/lib/static/roomle-core-hsc/{configurationManager.js → node_modules/roomle-core-hsc/src/loader/configurationManager.js} +0 -0
  312. /package/lib/static/roomle-core-hsc/{configurationManager.js.map → node_modules/roomle-core-hsc/src/loader/configurationManager.js.map} +0 -0
  313. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/loaderUtility.d.ts +0 -0
  314. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/loaderUtility.js +0 -0
  315. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/loaderUtility.js.map +0 -0
  316. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/logger.d.ts +0 -0
  317. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/logger.js +0 -0
  318. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/logger.js.map +0 -0
  319. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/planElementManager.d.ts +0 -0
  320. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/planElementManager.js +0 -0
  321. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/planElementManager.js.map +0 -0
  322. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/rapiAccess.d.ts +0 -0
  323. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/rapiAccess.js +0 -0
  324. /package/lib/static/roomle-core-hsc/{loader → node_modules/roomle-core-hsc/src/loader}/rapiAccess.js.map +0 -0
  325. /package/lib/static/roomle-core-hsc/{ConfiguratorKernel.js → node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js} +0 -0
  326. /package/lib/static/roomle-core-hsc/{RoomleCore.js → node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js} +0 -0
  327. /package/lib/static/roomle-core-hsc/{RoomleToolsCore.js → node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js} +0 -0
@@ -1,549 +0,0 @@
1
- import { J as L, K as _ } from "./index-DIyMlQBA.mjs";
2
- const u = [];
3
- for (let o = 0; o < 256; ++o)
4
- u.push((o + 256).toString(16).slice(1));
5
- function b(o, e = 0) {
6
- return (u[o[e + 0]] + u[o[e + 1]] + u[o[e + 2]] + u[o[e + 3]] + "-" + u[o[e + 4]] + u[o[e + 5]] + "-" + u[o[e + 6]] + u[o[e + 7]] + "-" + u[o[e + 8]] + u[o[e + 9]] + "-" + u[o[e + 10]] + u[o[e + 11]] + u[o[e + 12]] + u[o[e + 13]] + u[o[e + 14]] + u[o[e + 15]]).toLowerCase();
7
- }
8
- let h;
9
- const S = new Uint8Array(16);
10
- function R() {
11
- if (!h) {
12
- if (typeof crypto > "u" || !crypto.getRandomValues)
13
- throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
14
- h = crypto.getRandomValues.bind(crypto);
15
- }
16
- return h(S);
17
- }
18
- const D = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), y = { randomUUID: D };
19
- function f(o, e, t) {
20
- if (y.randomUUID && !e && !o)
21
- return y.randomUUID();
22
- o = o || {};
23
- const r = o.random || (o.rng || R)();
24
- if (r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, e) {
25
- t = t || 0;
26
- for (let i = 0; i < 16; ++i)
27
- e[t + i] = r[i];
28
- return e;
29
- }
30
- return b(r);
31
- }
32
- const A = (o, e) => {
33
- o.callbacks.onCompletelyLoaded = () => {
34
- e.groupsCompletelyLoaded();
35
- }, o.callbacks.onExternalObjectModuleSelected = (t, r, i) => {
36
- e.hiObjectSelection.groupOrModuleSelected(
37
- t,
38
- r,
39
- i
40
- );
41
- }, o.callbacks.onContextChanged = (t) => {
42
- e.hiObjectSelection.contextChanged(t);
43
- }, o.callbacks.onSelectionChange = (t, r, i, c, a) => {
44
- e.hiObjectSelection.selectionChanged(
45
- t,
46
- r,
47
- i,
48
- c,
49
- a
50
- );
51
- }, o.callbacks.onSelectionCancel = (t) => {
52
- e.hiObjectSelection.selectionCancel(t);
53
- };
54
- }, d = (o = /* @__PURE__ */ new Date()) => {
55
- let e = o.toISOString();
56
- e = e.slice(0, -1);
57
- const t = e.lastIndexOf(".");
58
- let r = e;
59
- t !== -1 && (r = e.substring(0, t + 4) + "0000");
60
- const i = o.getTimezoneOffset(), c = Math.abs(Math.floor(i / 60)), a = Math.abs(i % 60), s = `${i <= 0 ? "+" : "-"}${String(c).padStart(
61
- 2,
62
- "0"
63
- )}:${String(a).padStart(2, "0")}`;
64
- return r + s;
65
- }, w = () => ({
66
- id: window.uuidv4 ? window.uuidv4() : "00000000-0000-0000-0000-000000000000",
67
- state: "New",
68
- orderNumber: "736362",
69
- orderName: "Bedroom & bathroom 01",
70
- orderDescription: "Lorem ipsum dolor sit amet...",
71
- project: "Single family house Müller John",
72
- personInCharge: "Joe",
73
- orderDate: d(),
74
- deliveryDatePlanned: d(
75
- new Date(Date.now() + 336 * 60 * 60 * 1e3)
76
- ),
77
- addresses: [
78
- {
79
- type: "Delivery, Billing",
80
- street: "Musterstraße",
81
- houseNumber: "1",
82
- postalCode: "12345",
83
- city: "Musterstadt",
84
- country: "Deutschland"
85
- }
86
- ],
87
- customerName: "Müller & Co.",
88
- customerNumber: "462642",
89
- createdAt: d(),
90
- changedAt: d(),
91
- changedBy: "Selfish",
92
- items: []
93
- }), O = async (o, e) => {
94
- const t = await o.getPlanOverview(), r = {}, i = t.objects.reduce((l, s) => (s.catalogItemId && (r[s.catalogItemId] || (r[s.catalogItemId] = 0, l.push(s.catalogItemId)), r[s.catalogItemId]++), l), []), a = (Array.isArray(i) && i.length > 0 ? await o.getRapiAccess().getItems(i) : []).filter((l) => l.manufacturerSKU !== void 0 ? (l.count = r[l.id], !0) : !1);
95
- if (Array.isArray(a) && a.length > 0) {
96
- e.items || (e.items = []);
97
- let l = e.items.reduce((s, n) => n.items?.length ? s + n.items.length : s, 0);
98
- a.forEach((s) => {
99
- const n = {};
100
- n.type = "Position", n.name = (++l).toString(), n.articleNumber = s.manufacturerSKU, n.articleName = s.label, n.catalog = s.catalog, n.quantity = s.count, n.height = s.displayedHeight, n.width = s.displayedWidth, n.depth = s.displayedDepth, n.color = s.basecolor, n.procurementType = "PTO", n.additionalData = [], s.perspectiveImage && n.additionalData.push({
101
- category: "ArticleImage",
102
- downloadUri: s.perspectiveImage,
103
- type: "Image"
104
- }), e.items.push(n);
105
- });
106
- }
107
- };
108
- class G {
109
- constructor(e, t) {
110
- this._roomlePlanner = e, this._glueLogic = t;
111
- }
112
- async fetchPrice(e, t) {
113
- let r = await this._glueLogic.getGroupDataForOrder(e);
114
- return r ? await this._fetchOrderDataWithPrice(r, t) : null;
115
- }
116
- async placeOrder(e = !0, t) {
117
- const r = await this._roomlePlanner.saveExternalObjectSnapshot();
118
- if (!r) {
119
- console.error("Could not save plan snapshot before placing order");
120
- return;
121
- }
122
- let i = e ? await this._fetchOrderDataWithPrice(r.orderData, t) : null, c;
123
- i ? c = i.orderData : (c = this._createOrder(t), c.items.push(r.orderData), await O(this._roomlePlanner, r.orderData)), this._addAdditionalDataToOrder(c.items[0], r), await this._glueLogic.hiCallbacks?.onPlaceOrder?.(c);
124
- }
125
- _addAdditionalDataToOrder(e, t) {
126
- Array.isArray(e.additionalData) || (e.additionalData = []), t.perspectiveImageLink && e.additionalData.push({
127
- type: "Image",
128
- category: "OverviewImage",
129
- downloadUri: t.perspectiveImageLink
130
- }), t.topImageLink && e.additionalData.push({
131
- type: "Image",
132
- category: "AboveImage",
133
- downloadUri: t.topImageLink
134
- }), t.objectGlbLink && e.additionalData.push({
135
- type: "ThreeD",
136
- category: "ThreeDModel",
137
- downloadUri: t.objectGlbLink
138
- });
139
- }
140
- async _fetchOrderDataWithPrice(e, t) {
141
- let r = this._createOrder(t);
142
- return r.items.push(e), this._glueLogic.hiCallbacks?.onFetchPrice?.(r) ?? null;
143
- }
144
- _createOrder(e) {
145
- return e ? {
146
- ...e,
147
- items: []
148
- } : w();
149
- }
150
- }
151
- class q {
152
- constructor(e, t) {
153
- this._glueLogic = e, this._hiCallbacks = t;
154
- }
155
- get hiCallbacks() {
156
- return this._hiCallbacks;
157
- }
158
- get hiObjectSelection() {
159
- return this._glueLogic.hiObjectSelection;
160
- }
161
- _logRequest(e, ...t) {
162
- let r = e;
163
- t && t.forEach((i) => {
164
- r += " " + i;
165
- }), this._hiCallbacks.onLogMessage?.("HI REQUEST", r);
166
- }
167
- isLibraryLoaded(e) {
168
- return this._glueLogic.isLibraryLoaded(e);
169
- }
170
- getLibraryData(e) {
171
- return this._glueLogic.getLibraryData(e);
172
- }
173
- addLibrary(e) {
174
- return this._logRequest("addLibrary", e.libraryId), this._glueLogic.addLibrary(e);
175
- }
176
- setPosDataForLoading(e) {
177
- return this._logRequest("setPosDataForLoading", e ? "set" : "null"), this._glueLogic.setPosDataForLoading(e);
178
- }
179
- loadPosData(e, t) {
180
- this._logRequest("loadPosData", t), this._glueLogic.loadPosData(e, t);
181
- }
182
- async mergeGroups(e, t, r, i) {
183
- return this._logRequest(
184
- "mergeGroups",
185
- e.groupId,
186
- JSON.stringify(t),
187
- r
188
- ), this._glueLogic.mergeGroups(
189
- e,
190
- t,
191
- r,
192
- i
193
- );
194
- }
195
- deleteRootModule(e, t, r) {
196
- return this._logRequest(
197
- "deleteRootModule",
198
- JSON.stringify(e),
199
- t,
200
- JSON.stringify(r)
201
- ), this._glueLogic.deleteRootModule(
202
- e,
203
- t,
204
- r
205
- );
206
- }
207
- splitRootModuleFromGroup(e, t) {
208
- return this._logRequest(
209
- "splitRootModuleFromGroup",
210
- JSON.stringify(e),
211
- JSON.stringify(t)
212
- ), this._glueLogic.splitRootModuleFromGroup(
213
- e,
214
- t
215
- );
216
- }
217
- async duplicateGroup(e) {
218
- return this._logRequest("duplicateGroup", e.groupId), this._glueLogic.duplicateGroup(e);
219
- }
220
- modifyAttribute(e, t, r, i) {
221
- return this._logRequest(
222
- "modifyAttribute",
223
- e,
224
- JSON.stringify(t),
225
- r,
226
- i
227
- ), this._glueLogic.modifyAttribute(
228
- e,
229
- t,
230
- r,
231
- i
232
- );
233
- }
234
- updateAttribute(e, t, r, i) {
235
- return this._logRequest(
236
- "updateAttribute",
237
- e,
238
- t,
239
- r,
240
- i.toString()
241
- ), this._glueLogic.updateAttribute(
242
- e,
243
- t,
244
- r,
245
- i
246
- );
247
- }
248
- getVerifiedAttributeOptions(e, t) {
249
- return this._logRequest(
250
- "getVerifiedAttributeOptions",
251
- e,
252
- t ? JSON.stringify(t) : "[]"
253
- ), this._glueLogic.getVerifiedAttributeOptions(e, t);
254
- }
255
- getVerifiedGroupAttributeOptions(e, t) {
256
- return this._logRequest(
257
- "getVerifiedGroupAttributeOptions",
258
- e,
259
- t ? JSON.stringify(t) : "[]"
260
- ), this._glueLogic.getVerifiedGroupAttributeOptions(
261
- e,
262
- t
263
- );
264
- }
265
- updateProperty(e, t, r) {
266
- this._logRequest(
267
- "updateProperty",
268
- e ?? "undefined",
269
- t ?? "undefined",
270
- r?.toString() ?? "undefined"
271
- ), this._glueLogic.updateProperty(e, t, r);
272
- }
273
- findValidSubArticles(e) {
274
- return this._logRequest(
275
- "findValidSubArticles",
276
- Array.isArray(e) ? JSON.stringify(e) : e
277
- ), this._glueLogic.findValidSubArticles(e);
278
- }
279
- getValidContainerModulesForSubArticle(e, t) {
280
- return this._logRequest(
281
- "getValidContainerModulesForSubArticle",
282
- Array.isArray(e) ? JSON.stringify(e) : e,
283
- t
284
- ), this._glueLogic.getValidContainerModulesForSubArticle(
285
- e,
286
- t
287
- );
288
- }
289
- addSubArticle(e, t, r) {
290
- return this._logRequest("addSubArticle", e, t, r), this._glueLogic.addSubArticle(
291
- e,
292
- t,
293
- r
294
- );
295
- }
296
- deleteSubArticles(e, t) {
297
- return this._logRequest(
298
- "deleteSubArticles",
299
- e,
300
- Array.isArray(t) ? JSON.stringify(t) : t
301
- ), this._glueLogic.deleteSubArticles(e, t);
302
- }
303
- swapRootModule(e, t, r) {
304
- return this._logRequest("swapRootModule", e, t, r), this._glueLogic.swapRootModule(e, t, r);
305
- }
306
- arrangeRootModulesOfGroup(e) {
307
- return this._logRequest("arrangeRootModulesOfGroup", JSON.stringify(e)), this._glueLogic.arrangeRootModulesOfGroup(e);
308
- }
309
- changedGroupPlanningSituation(e, t) {
310
- return this._logRequest(
311
- "changedGroupPlanningSituation",
312
- e.groupId,
313
- t.toString()
314
- ), this._glueLogic.changedGroupPlanningSituation(
315
- e,
316
- t
317
- );
318
- }
319
- changedGroupFromHistory(e, t) {
320
- this._logRequest(
321
- "changedGroupFromHistory",
322
- e.id,
323
- t.toString()
324
- ), this._glueLogic.changedGroupFromHistory(e, t);
325
- }
326
- loadedGroup(e) {
327
- return this._logRequest("loadedGroup", e.id), this._glueLogic.loadedGroup(e);
328
- }
329
- groupsCompletelyLoaded() {
330
- this._logRequest("groupsCompletelyLoaded"), this._glueLogic.groupsCompletelyLoaded();
331
- }
332
- removedGroup(e) {
333
- this._logRequest("removedGroup", e), this._glueLogic.removedGroup(e);
334
- }
335
- openCloseGroup(e) {
336
- this._logRequest("openCloseGroup", e), this._glueLogic.openCloseGroup(e);
337
- }
338
- getSaveDataGroups() {
339
- return this._logRequest("getSaveDataGroups"), this._glueLogic.getSaveDataGroups();
340
- }
341
- async newPosDataFromId(e) {
342
- return this._logRequest("newPosDataFromId", e), this._glueLogic.newPosDataFromId(e);
343
- }
344
- async newPosDataFromGroup(e) {
345
- return this._logRequest("newPosDataFromId", JSON.stringify(e)), this._glueLogic.newPosDataFromGroup(e);
346
- }
347
- getGroupDataForOrder(e) {
348
- return this._logRequest("getGroupDataForOrder", e), this._glueLogic.getGroupDataForOrder(e);
349
- }
350
- getMaterialUrl(e, t) {
351
- return this._logRequest("getMaterialUrl", e, t), this._glueLogic.getMaterialUrl(e, t);
352
- }
353
- }
354
- class P {
355
- constructor(e, t) {
356
- this._roomDesignerRequests = e, this._hiCallbacks = t;
357
- }
358
- _logResponse(e, ...t) {
359
- let r = e;
360
- t && t.forEach((i) => {
361
- r += " " + i;
362
- }), this._hiCallbacks.onLogMessage?.("HI RESPONSE", r);
363
- }
364
- loadMasterData(e) {
365
- this._logResponse("loadMasterData"), this._roomDesignerRequests.loadMasterData(e);
366
- }
367
- async loadPosGroups(e, t) {
368
- const r = Array.isArray(e) ? e.map((i) => i.id).join(",") : e.id;
369
- return this._logResponse(
370
- "loadPosGroups",
371
- r,
372
- t.reason ?? "undefined",
373
- t.findFreeSpaceInPlan?.toString() ?? "false",
374
- t.moduleIdMap ? JSON.stringify(t.moduleIdMap) : "[]",
375
- t.mergedGroups ? JSON.stringify(t.mergedGroups) : "[]"
376
- ), this._roomDesignerRequests.loadPosGroups(e, t);
377
- }
378
- completelyLoaded() {
379
- this._logResponse("completelyLoaded"), this._roomDesignerRequests.completelyLoaded();
380
- }
381
- async selectGroup(e) {
382
- return this._logResponse("selectGroup", e), this._roomDesignerRequests.selectGroup(e);
383
- }
384
- async selectRoot(e) {
385
- return this._logResponse("selectRoot", e), this._roomDesignerRequests.selectRoot(e);
386
- }
387
- async selectModule(e, t) {
388
- return this._logResponse("selectModule", e, t), this._roomDesignerRequests.selectModule(e, t);
389
- }
390
- openCloseGroup(e, t, r, i) {
391
- return this._logResponse(
392
- "openCloseGroup",
393
- e,
394
- t,
395
- r.toString(),
396
- i.toString()
397
- ), this._roomDesignerRequests.openCloseGroup(
398
- e,
399
- t,
400
- r,
401
- i
402
- ), Promise.resolve();
403
- }
404
- deleteGroup(e) {
405
- return this._logResponse("deleteGroup", e), this._roomDesignerRequests.deleteGroup(e);
406
- }
407
- deleteRootModule(e) {
408
- return this._logResponse("deleteRootModule", e), this._roomDesignerRequests.deleteRootModule(e);
409
- }
410
- getPosDataOfAllGroups() {
411
- return this._logResponse("getPosDataOfAllGroups"), this._roomDesignerRequests.getPosDataOfAllGroups();
412
- }
413
- getRoomInformation() {
414
- return this._logResponse("getRoomInformation"), this._roomDesignerRequests.getRoomInformation();
415
- }
416
- saveExternalObjectSnapshot() {
417
- return this._logResponse("saveExternalObjectSnapshot"), this._roomDesignerRequests.saveExternalObjectSnapshot();
418
- }
419
- }
420
- console.warn("Homag Intelligence plugin is loaded.");
421
- class v {
422
- constructor(e, t, r) {
423
- if (window.uuidv4 || (window.uuidv4 = f), this._roomlePlanner = e, this._roomlePlanner.setHomagIntelligence(this), this._hiCallbacks = r, this._api = new L(this._roomlePlanner), t?.debugLogging) {
424
- const i = new P(this._api, r), c = new _(i, r);
425
- this._glueLogic = new q(
426
- c,
427
- r
428
- );
429
- } else
430
- this._glueLogic = new _(this._api, r);
431
- A(this._roomlePlanner, this._glueLogic), this._orders = new G(e, this._glueLogic);
432
- }
433
- /**
434
- * Loads previously saved PosGroup data via hiCallbacks.
435
- * Must be called after construction to restore saved state.
436
- */
437
- async loadSavedPosData() {
438
- const e = await this._hiCallbacks.onGetSavedPosGroupData?.() ?? null;
439
- await this._glueLogic.setPosDataForLoading(e);
440
- }
441
- async loadLibrary(e) {
442
- const t = await this._loadLibraryData(e);
443
- await this._glueLogic.addLibrary(t);
444
- }
445
- async loadCatalog(e, t, r) {
446
- r?.setEmulator(this._glueLogic), this._glueLogic.loadPosData(await t, e);
447
- }
448
- async _loadLibraryData(e) {
449
- if (this._glueLogic.isLibraryLoaded(e)) {
450
- const a = this._glueLogic.getLibraryData(e);
451
- if (a !== null)
452
- return a;
453
- }
454
- const t = this._glueLogic.hiCallbacks;
455
- if (t === null)
456
- throw new Error("HiCallbacks not initialized");
457
- const { masterData: r, libraryExports: i } = await this._requestHiLibrary(
458
- e,
459
- t
460
- );
461
- return this._loadMasterData(r), {
462
- libraryId: e,
463
- masterData: r,
464
- posGroupVersion: 1,
465
- calculateGroup: (a) => i.calc(a),
466
- getOrderData: (a, l, s) => i.getOrderData(a, l, s),
467
- getAttributesDropDownValues: async (a, l) => {
468
- const s = l ? Array.isArray(l) ? l : [l] : (a.attributes ?? []).map((g) => g.id), n = {};
469
- for (const g of s)
470
- try {
471
- const m = await (i.getAttributesDropDownValuesV2 ?? i.getAttributesDropDownValues)(a, g);
472
- n[g] = m;
473
- } catch (p) {
474
- console.error(p), n[g] = [];
475
- }
476
- return n;
477
- },
478
- solveModuleAttributeConflict: (a, l, s) => i.solveModuleAttributeConflict ? i.solveModuleAttributeConflict(
479
- a,
480
- l,
481
- s
482
- ) : void 0,
483
- getValidSubArticles(a, l, s) {
484
- return i.getValidSubArticles ? i.getValidSubArticles(
485
- a,
486
- l,
487
- s
488
- ) : [];
489
- },
490
- getValidContainerModulesForSubArticle(a, l, s) {
491
- return i.getValidContainerModulesForSubArticle ? i.getValidContainerModulesForSubArticle(
492
- a,
493
- l,
494
- s
495
- ) : [];
496
- },
497
- addSubArticle(a, l, s, n) {
498
- return i.addSubArticle ? i.addSubArticle(
499
- a,
500
- l,
501
- s,
502
- n
503
- ) : a;
504
- },
505
- deleteSubArticle(a, l, s) {
506
- return i.deleteSubArticle ? i.deleteSubArticle(
507
- a,
508
- l,
509
- s
510
- ) : a;
511
- }
512
- };
513
- }
514
- async _requestHiLibrary(e, t) {
515
- const [r, i] = await Promise.all([
516
- t.onLoadMasterData(e),
517
- t.onLoadJavascript(e)
518
- ]), c = await this._initCalcScript(i);
519
- return {
520
- masterData: r,
521
- libraryExports: c
522
- };
523
- }
524
- _loadMasterData(e) {
525
- return this._api.loadMasterData(e);
526
- }
527
- async _initCalcScript(e) {
528
- try {
529
- window.exports = {};
530
- const t = new Blob([e], { type: "text/javascript" }), r = URL.createObjectURL(t);
531
- return await import(r), URL.revokeObjectURL(r), window.exports;
532
- } catch (t) {
533
- throw console.error(t), new Error("Failed to load calc.js!");
534
- }
535
- }
536
- getGlueLogic() {
537
- return this._glueLogic;
538
- }
539
- async placeOrder(e = !0, t) {
540
- await this._orders.placeOrder(e, t);
541
- }
542
- async fetchPrice(e, t) {
543
- return this._orders.fetchPrice(e, t);
544
- }
545
- }
546
- export {
547
- v as HomagIntelligence
548
- };
549
- //# sourceMappingURL=homag-intelligence-UFo9Z8FS.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"homag-intelligence-UFo9Z8FS.mjs","sources":["../../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../../node_modules/uuid/dist/esm-browser/rng.js","../../../../node_modules/uuid/dist/esm-browser/native.js","../../../../node_modules/uuid/dist/esm-browser/v4.js","../../packages/homag-intelligence/src/callbacks.ts","../../packages/homag-intelligence/src/orders.ts","../../packages/homag-intelligence/src/debug-logging.ts","../../packages/homag-intelligence/src/homag-intelligence.ts"],"sourcesContent":["import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ==","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9","import type { GlueLogic } from './glue-logic';\nimport { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport type { BASE_CONTEXT } from '../../common-core/src/main';\nimport type { SELECTION_MODE } from '../../configurator-core/src/utils/selection-handler';\nimport type { CallbackObjectType } from '../../planner-core/src/utils/planner-scene-utils';\nimport type { SelectionPayload } from '../../planner-core/src/roomle-planner-ui-callback';\nimport { type PlanElementViewModel } from '../../common-core/src/view-model/plan-element-view-model';\nimport type { CancelSelectionReasons } from '../../typings/planner';\n\nexport const initCallbacks = (\n roomlePlanner: RoomlePlanner,\n gluLogic: GlueLogic,\n) => {\n roomlePlanner.callbacks.onCompletelyLoaded = () => {\n gluLogic.groupsCompletelyLoaded();\n };\n\n roomlePlanner.callbacks.onExternalObjectModuleSelected = (\n groupId: string,\n rootModuleId: string | null,\n subModuleId: string | null,\n ) => {\n gluLogic.hiObjectSelection.groupOrModuleSelected(\n groupId,\n rootModuleId,\n subModuleId,\n );\n };\n\n roomlePlanner.callbacks.onContextChanged = (context: BASE_CONTEXT): void => {\n gluLogic.hiObjectSelection.contextChanged(context);\n };\n\n roomlePlanner.callbacks.onSelectionChange = (\n selectionMode: SELECTION_MODE,\n objectType: CallbackObjectType,\n payload: SelectionPayload,\n payloadPromise: Promise<SelectionPayload>,\n planElementViewModel: PlanElementViewModel,\n ): void => {\n gluLogic.hiObjectSelection.selectionChanged(\n selectionMode,\n objectType,\n payload,\n payloadPromise,\n planElementViewModel,\n );\n };\n\n roomlePlanner.callbacks.onSelectionCancel = (\n reason: CancelSelectionReasons,\n ): void => {\n gluLogic.hiObjectSelection.selectionCancel(reason);\n };\n};\n","import { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport type { GlueLogic } from './glue-logic';\nimport type { KernelPlanObject } from '../../typings/kernel';\nimport type { ExternalObjectSnapshotSaveResult } from './external-object-api';\nimport type {\n HiOrder,\n HiOrderData,\n HiOrderHeader,\n} from '#/common/src/hi/hi-types';\n\nconst getISO8601Date = (date = new Date()) => {\n // Get the ISO string (in UTC)\n let isoString = date.toISOString();\n\n // Remove the 'Z' at the end which indicates UTC\n isoString = isoString.slice(0, -1);\n\n // Find the position of milliseconds\n const msPosition = isoString.lastIndexOf('.');\n\n // Get the base timestamp with 3 digits of milliseconds and extend with zeros\n let baseTimestamp = isoString;\n\n if (msPosition !== -1) {\n // Add 4 zeros to extend from 3 to 7 digits of precision\n baseTimestamp = isoString.substring(0, msPosition + 4) + '0000';\n }\n\n // Get timezone offset in minutes and convert to hours and minutes\n const offsetMinutes = date.getTimezoneOffset();\n const offsetHours = Math.abs(Math.floor(offsetMinutes / 60));\n const offsetMins = Math.abs(offsetMinutes % 60);\n\n // Format the offset as +HH:MM or -HH:MM\n const offsetSign = offsetMinutes <= 0 ? '+' : '-';\n const offsetString = `${offsetSign}${String(offsetHours).padStart(\n 2,\n '0',\n )}:${String(offsetMins).padStart(2, '0')}`;\n\n return baseTimestamp + offsetString;\n};\n\nexport const createEmptyOrder = (): HiOrder => {\n return {\n id: (window as any).uuidv4\n ? (window as any).uuidv4()\n : '00000000-0000-0000-0000-000000000000',\n state: 'New',\n orderNumber: '736362',\n orderName: 'Bedroom & bathroom 01',\n orderDescription: 'Lorem ipsum dolor sit amet...',\n project: 'Single family house Müller John',\n personInCharge: 'Joe',\n orderDate: getISO8601Date(),\n deliveryDatePlanned: getISO8601Date(\n new Date(Date.now() + 14 * 24 * 60 * 60 * 1000),\n ),\n addresses: [\n {\n type: 'Delivery, Billing',\n street: 'Musterstraße',\n houseNumber: '1',\n postalCode: '12345',\n city: 'Musterstadt',\n country: 'Deutschland',\n },\n ],\n customerName: 'Müller & Co.',\n customerNumber: '462642',\n createdAt: getISO8601Date(),\n changedAt: getISO8601Date(),\n changedBy: 'Selfish',\n items: [] as any[],\n };\n};\n\nconst _addMerchantPositions = async (\n roomlePlanner: RoomlePlanner,\n groupData: any,\n) => {\n const planOverview = await roomlePlanner.getPlanOverview();\n const count: Record<string, number> = {}; // key is id and value is count\n const itemIds = (\n planOverview.objects as unknown as KernelPlanObject[]\n ).reduce((acc: string[], item: any) => {\n if (item.catalogItemId) {\n if (!count[item.catalogItemId]) {\n count[item.catalogItemId] = 0;\n acc.push(item.catalogItemId);\n }\n count[item.catalogItemId]++;\n }\n return acc;\n }, []);\n const items =\n Array.isArray(itemIds) && itemIds.length > 0\n ? await roomlePlanner.getRapiAccess().getItems(itemIds)\n : [];\n const merchantItems = items.filter((item: any) => {\n if (item.manufacturerSKU !== undefined) {\n item.count = count[item.id];\n return true;\n }\n return false;\n });\n if (Array.isArray(merchantItems) && merchantItems.length > 0) {\n if (!groupData.items) {\n groupData.items = [];\n }\n let posNo = groupData.items.reduce((acc: number, item: any) => {\n if (item.items?.length) {\n return acc + item.items.length;\n }\n return acc;\n }, 0);\n merchantItems.forEach((item) => {\n const pos = {} as any;\n pos.type = 'Position';\n pos.name = (++posNo).toString();\n pos.articleNumber = item.manufacturerSKU;\n pos.articleName = item.label;\n pos.catalog = item.catalog;\n pos.quantity = item.count;\n pos.height = item.displayedHeight;\n pos.width = item.displayedWidth;\n pos.depth = item.displayedDepth;\n pos.color = item.basecolor;\n pos.procurementType = 'PTO';\n pos.additionalData = [];\n if (item.perspectiveImage) {\n pos.additionalData.push({\n category: 'ArticleImage',\n downloadUri: item.perspectiveImage,\n type: 'Image',\n });\n }\n groupData.items.push(pos);\n });\n }\n};\n\nexport default class Orders {\n private _roomlePlanner: RoomlePlanner;\n private _glueLogic: GlueLogic;\n\n constructor(roomlePlanner: RoomlePlanner, glueLogic: GlueLogic) {\n this._roomlePlanner = roomlePlanner;\n this._glueLogic = glueLogic;\n }\n\n public async fetchPrice(planId?: string, orderHeader?: HiOrderHeader) {\n let orderData = await this._glueLogic.getGroupDataForOrder(planId);\n if (!orderData) {\n return null;\n }\n return await this._fetchOrderDataWithPrice(orderData, orderHeader);\n }\n\n public async placeOrder(\n withPrice: boolean = true,\n orderHeader?: HiOrderHeader,\n ) {\n const planData = await this._roomlePlanner.saveExternalObjectSnapshot();\n if (!planData) {\n console.error('Could not save plan snapshot before placing order');\n return;\n }\n\n let priceData = withPrice\n ? await this._fetchOrderDataWithPrice(planData.orderData, orderHeader)\n : null;\n\n let order;\n if (priceData) {\n order = priceData.orderData;\n } else {\n order = this._createOrder(orderHeader);\n order.items.push(planData.orderData as never);\n await _addMerchantPositions(this._roomlePlanner, planData.orderData);\n }\n\n // The first item in the order is the one created from the HI objects in the plan\n this._addAdditionalDataToOrder(order.items[0], planData);\n\n await this._glueLogic.hiCallbacks?.onPlaceOrder?.(order);\n }\n\n private _addAdditionalDataToOrder(\n orderData: HiOrderData,\n planData: ExternalObjectSnapshotSaveResult,\n ) {\n if (!Array.isArray(orderData.additionalData)) {\n orderData.additionalData = [];\n }\n if (planData.perspectiveImageLink) {\n orderData.additionalData.push({\n type: 'Image',\n category: 'OverviewImage',\n downloadUri: planData.perspectiveImageLink,\n });\n }\n if (planData.topImageLink) {\n orderData.additionalData.push({\n type: 'Image',\n category: 'AboveImage',\n downloadUri: planData.topImageLink,\n });\n }\n if (planData.objectGlbLink) {\n orderData.additionalData.push({\n type: 'ThreeD',\n category: 'ThreeDModel',\n downloadUri: planData.objectGlbLink,\n });\n }\n }\n\n private async _fetchOrderDataWithPrice(\n orderData: HiOrderData,\n orderHeader?: HiOrderHeader,\n ): Promise<any> {\n let order = this._createOrder(orderHeader);\n order.items.push(orderData as never);\n return this._glueLogic.hiCallbacks?.onFetchPrice?.(order) ?? null;\n }\n\n private _createOrder(orderHeader?: HiOrderHeader): HiOrder {\n return orderHeader\n ? {\n ...orderHeader,\n items: [],\n }\n : createEmptyOrder();\n }\n}\n","import type { HiCallbacks, HiOrderData } from '#/common/src/hi/hi-types';\nimport type {\n GlueLogic,\n LibraryData,\n RoomDesignerRequests,\n} from './glue-logic';\nimport type { ExternalObjectGroup } from 'roomle-core-hsc/src/embind/plannerCoreInterface';\nimport type { ExternalModuleInformation } from '../../typings/kernel';\nimport type {\n CheckDropDownResult,\n PosArticle,\n PosGroup,\n PosSaveData,\n} from './model/oc-scripts-domain.model';\nimport type { HiObjectSelectionApi } from './hi-object-selection';\nimport type {\n ExternalObjectSnapshotSaveResult,\n ExternalRoomInformation,\n LoadExternalObjectOptions,\n} from './external-object-api';\nimport type { ExternalObjectValidContainerModules } from './external-object-api-callbacks';\n\nexport class GlueLayerRequestDebugLogging implements GlueLogic {\n private _glueLogic: GlueLogic;\n private _hiCallbacks: HiCallbacks;\n\n constructor(glueLogic: GlueLogic, hiCallbacks: HiCallbacks) {\n this._glueLogic = glueLogic;\n this._hiCallbacks = hiCallbacks;\n }\n\n public get hiCallbacks(): HiCallbacks | null {\n return this._hiCallbacks;\n }\n\n public get hiObjectSelection(): HiObjectSelectionApi {\n return this._glueLogic.hiObjectSelection;\n }\n\n private _logRequest(\n message: string,\n ...args: Array<string | null | undefined>\n ) {\n let messageAndArgs = message;\n if (args) {\n args.forEach((item) => {\n messageAndArgs += ' ' + item;\n });\n }\n this._hiCallbacks.onLogMessage?.('HI REQUEST', messageAndArgs);\n }\n\n public isLibraryLoaded(libraryId: string): boolean {\n return this._glueLogic.isLibraryLoaded(libraryId);\n }\n\n public getLibraryData(libraryId: string): LibraryData | null {\n return this._glueLogic.getLibraryData(libraryId);\n }\n\n public addLibrary(libraryData: LibraryData): Promise<void> {\n this._logRequest('addLibrary', libraryData.libraryId);\n return this._glueLogic.addLibrary(libraryData);\n }\n\n public setPosDataForLoading(posData: PosSaveData | null): Promise<void> {\n this._logRequest('setPosDataForLoading', posData ? 'set' : 'null');\n return this._glueLogic.setPosDataForLoading(posData);\n }\n\n public loadPosData(articleCatalogJson: any, libraryId: string): void {\n this._logRequest('loadPosData', libraryId);\n this._glueLogic.loadPosData(articleCatalogJson, libraryId);\n }\n\n public async mergeGroups(\n targetGroup: ExternalObjectGroup,\n idsOfGroupsMerged: string | string[],\n idOfTargetRootModule: string,\n mergedWithDragging: boolean,\n ): Promise<void> {\n this._logRequest(\n 'mergeGroups',\n targetGroup.groupId,\n JSON.stringify(idsOfGroupsMerged),\n idOfTargetRootModule,\n );\n return this._glueLogic.mergeGroups(\n targetGroup,\n idsOfGroupsMerged,\n idOfTargetRootModule,\n mergedWithDragging,\n );\n }\n\n public deleteRootModule(\n remainingGroup: ExternalObjectGroup,\n rootModuleIdToDelete: string,\n splitOffGroups: ExternalObjectGroup[],\n ): Promise<void> {\n this._logRequest(\n 'deleteRootModule',\n JSON.stringify(remainingGroup),\n rootModuleIdToDelete,\n JSON.stringify(splitOffGroups),\n );\n return this._glueLogic.deleteRootModule(\n remainingGroup,\n rootModuleIdToDelete,\n splitOffGroups,\n );\n }\n\n public splitRootModuleFromGroup(\n splitGroup: ExternalObjectGroup,\n newGroupedRootModules: ExternalObjectGroup[],\n ): Promise<void> {\n this._logRequest(\n 'splitRootModuleFromGroup',\n JSON.stringify(splitGroup),\n JSON.stringify(newGroupedRootModules),\n );\n return this._glueLogic.splitRootModuleFromGroup(\n splitGroup,\n newGroupedRootModules,\n );\n }\n\n public async duplicateGroup(\n duplicatedGroup: ExternalObjectGroup,\n ): Promise<void> {\n this._logRequest('duplicateGroup', duplicatedGroup.groupId);\n return this._glueLogic.duplicateGroup(duplicatedGroup);\n }\n\n public modifyAttribute(\n groupId: string,\n moduleIdObjects: ExternalModuleInformation[],\n attributeName: string,\n value: string,\n ): Promise<void> {\n this._logRequest(\n 'modifyAttribute',\n groupId,\n JSON.stringify(moduleIdObjects),\n attributeName,\n value,\n );\n return this._glueLogic.modifyAttribute(\n groupId,\n moduleIdObjects,\n attributeName,\n value,\n );\n }\n\n public updateAttribute(\n rootModuleId: string,\n moduleId: string | null,\n attributeId: string,\n attributeValue: string | boolean,\n ): Promise<void> {\n this._logRequest(\n 'updateAttribute',\n rootModuleId,\n moduleId,\n attributeId,\n attributeValue.toString(),\n );\n return this._glueLogic.updateAttribute(\n rootModuleId,\n moduleId,\n attributeId,\n attributeValue,\n );\n }\n\n public getVerifiedAttributeOptions(\n moduleId: string,\n attributeIds?: string | string[],\n ): Promise<Record<string, CheckDropDownResult> | undefined> {\n this._logRequest(\n 'getVerifiedAttributeOptions',\n moduleId,\n attributeIds ? JSON.stringify(attributeIds) : '[]',\n );\n return this._glueLogic.getVerifiedAttributeOptions(moduleId, attributeIds);\n }\n\n public getVerifiedGroupAttributeOptions(\n groupId: string,\n attributeIds?: string | string[],\n ): Promise<Record<string, CheckDropDownResult> | undefined> {\n this._logRequest(\n 'getVerifiedGroupAttributeOptions',\n groupId,\n attributeIds ? JSON.stringify(attributeIds) : '[]',\n );\n return this._glueLogic.getVerifiedGroupAttributeOptions(\n groupId,\n attributeIds,\n );\n }\n\n public updateProperty(\n rootModuleId?: string,\n propertyName?: string,\n propertyValue?: string | number | boolean,\n ): void {\n this._logRequest(\n 'updateProperty',\n rootModuleId ?? 'undefined',\n propertyName ?? 'undefined',\n propertyValue?.toString() ?? 'undefined',\n );\n this._glueLogic.updateProperty(rootModuleId, propertyName, propertyValue);\n }\n\n public findValidSubArticles(posGroupIds: string[] | string): PosArticle[] {\n this._logRequest(\n 'findValidSubArticles',\n Array.isArray(posGroupIds) ? JSON.stringify(posGroupIds) : posGroupIds,\n );\n return this._glueLogic.findValidSubArticles(posGroupIds);\n }\n\n public getValidContainerModulesForSubArticle(\n posGroupIds: string[] | string,\n subArticleId: string,\n ): ExternalObjectValidContainerModules[] {\n this._logRequest(\n 'getValidContainerModulesForSubArticle',\n Array.isArray(posGroupIds) ? JSON.stringify(posGroupIds) : posGroupIds,\n subArticleId,\n );\n return this._glueLogic.getValidContainerModulesForSubArticle(\n posGroupIds,\n subArticleId,\n );\n }\n\n public addSubArticle(\n articleId: string,\n rootModuleId: string,\n parentModuleId: string,\n ): void {\n this._logRequest('addSubArticle', articleId, rootModuleId, parentModuleId);\n return this._glueLogic.addSubArticle(\n articleId,\n rootModuleId,\n parentModuleId,\n );\n }\n\n public deleteSubArticles(\n groupId: string,\n subModuleIds: string[] | string,\n ): Promise<void> {\n this._logRequest(\n 'deleteSubArticles',\n groupId,\n Array.isArray(subModuleIds) ? JSON.stringify(subModuleIds) : subModuleIds,\n );\n return this._glueLogic.deleteSubArticles(groupId, subModuleIds);\n }\n\n public swapRootModule(\n groupId: string,\n rootModuleId: string,\n articleId: string,\n ): Promise<void> {\n this._logRequest('swapRootModule', groupId, rootModuleId, articleId);\n return this._glueLogic.swapRootModule(groupId, rootModuleId, articleId);\n }\n\n public arrangeRootModulesOfGroup(\n changedGroup: ExternalObjectGroup,\n ): Promise<void> {\n this._logRequest('arrangeRootModulesOfGroup', JSON.stringify(changedGroup));\n return this._glueLogic.arrangeRootModulesOfGroup(changedGroup);\n }\n\n public changedGroupPlanningSituation(\n changedGroup: ExternalObjectGroup,\n objectPositionChanged: boolean,\n ): Promise<void> {\n this._logRequest(\n 'changedGroupPlanningSituation',\n changedGroup.groupId,\n objectPositionChanged.toString(),\n );\n return this._glueLogic.changedGroupPlanningSituation(\n changedGroup,\n objectPositionChanged,\n );\n }\n\n public changedGroupFromHistory(\n posDataJson: PosGroup,\n reloadGroup: boolean,\n ): void {\n this._logRequest(\n 'changedGroupFromHistory',\n posDataJson.id,\n reloadGroup.toString(),\n );\n this._glueLogic.changedGroupFromHistory(posDataJson, reloadGroup);\n }\n\n public loadedGroup(posDataJson: PosGroup): Promise<void> {\n this._logRequest('loadedGroup', posDataJson.id);\n return this._glueLogic.loadedGroup(posDataJson);\n }\n\n public groupsCompletelyLoaded(): void {\n this._logRequest('groupsCompletelyLoaded');\n this._glueLogic.groupsCompletelyLoaded();\n }\n\n public removedGroup(groupId: string): void {\n this._logRequest('removedGroup', groupId);\n this._glueLogic.removedGroup(groupId);\n }\n\n public openCloseGroup(groupId: string): void {\n this._logRequest('openCloseGroup', groupId);\n this._glueLogic.openCloseGroup(groupId);\n }\n\n public getSaveDataGroups(): Promise<PosGroup[] | null> {\n this._logRequest('getSaveDataGroups');\n return this._glueLogic.getSaveDataGroups();\n }\n\n public async newPosDataFromId(id: string): Promise<PosGroup | undefined> {\n this._logRequest('newPosDataFromId', id);\n return this._glueLogic.newPosDataFromId(id);\n }\n\n public async newPosDataFromGroup(posDataJson: PosGroup): Promise<PosGroup> {\n this._logRequest('newPosDataFromId', JSON.stringify(posDataJson));\n return this._glueLogic.newPosDataFromGroup(posDataJson);\n }\n\n public getGroupDataForOrder(\n roomlePlannerId?: string,\n ): Promise<HiOrderData | null> {\n this._logRequest('getGroupDataForOrder', roomlePlannerId);\n return this._glueLogic.getGroupDataForOrder(roomlePlannerId);\n }\n\n public getMaterialUrl(\n materialId: string,\n groupOrModuleId?: string,\n ): string | null {\n this._logRequest('getMaterialUrl', materialId, groupOrModuleId);\n return this._glueLogic.getMaterialUrl(materialId, groupOrModuleId);\n }\n}\n\nexport class GlueLayerResponseDebugLogging implements RoomDesignerRequests {\n private _roomDesignerRequests: RoomDesignerRequests;\n private _hiCallbacks: HiCallbacks;\n\n constructor(\n roomDesignerRequests: RoomDesignerRequests,\n hiCallbacks: HiCallbacks,\n ) {\n this._roomDesignerRequests = roomDesignerRequests;\n this._hiCallbacks = hiCallbacks;\n }\n\n private _logResponse(message: string, ...args: Array<string | null>) {\n let messageAndArgs = message;\n if (args) {\n args.forEach((item) => {\n messageAndArgs += ' ' + item;\n });\n }\n this._hiCallbacks.onLogMessage?.('HI RESPONSE', messageAndArgs);\n }\n\n public loadMasterData(masterData: any): void {\n this._logResponse('loadMasterData');\n this._roomDesignerRequests.loadMasterData(masterData);\n }\n\n public async loadPosGroups(\n posDataJson: PosGroup | PosGroup[],\n options: LoadExternalObjectOptions,\n ): Promise<void> {\n const groupIds = Array.isArray(posDataJson)\n ? posDataJson.map((group) => group.id).join(',')\n : posDataJson.id;\n this._logResponse(\n 'loadPosGroups',\n groupIds,\n options.reason ?? 'undefined',\n options.findFreeSpaceInPlan?.toString() ?? 'false',\n options.moduleIdMap ? JSON.stringify(options.moduleIdMap) : '[]',\n options.mergedGroups ? JSON.stringify(options.mergedGroups) : '[]',\n );\n return this._roomDesignerRequests.loadPosGroups(posDataJson, options);\n }\n\n public completelyLoaded(): void {\n this._logResponse('completelyLoaded');\n this._roomDesignerRequests.completelyLoaded();\n }\n\n public async selectGroup(groupId: string): Promise<void> {\n this._logResponse('selectGroup', groupId);\n return this._roomDesignerRequests.selectGroup(groupId);\n }\n\n public async selectRoot(rootModuleId: string): Promise<void> {\n this._logResponse('selectRoot', rootModuleId);\n return this._roomDesignerRequests.selectRoot(rootModuleId);\n }\n\n public async selectModule(\n rootModuleId: string,\n subModuleId: string,\n ): Promise<void> {\n this._logResponse('selectModule', rootModuleId, subModuleId);\n return this._roomDesignerRequests.selectModule(rootModuleId, subModuleId);\n }\n\n public openCloseGroup(\n groupOrRootModuleId: string,\n subModuleId: string | null,\n open: boolean,\n animate: boolean,\n ) {\n this._logResponse(\n 'openCloseGroup',\n groupOrRootModuleId,\n subModuleId,\n open.toString(),\n animate.toString(),\n );\n this._roomDesignerRequests.openCloseGroup(\n groupOrRootModuleId,\n subModuleId,\n open,\n animate,\n );\n return Promise.resolve();\n }\n\n public deleteGroup(groupId: string): void {\n this._logResponse('deleteGroup', groupId);\n return this._roomDesignerRequests.deleteGroup(groupId);\n }\n\n public deleteRootModule(rootModuleId: string): void {\n this._logResponse('deleteRootModule', rootModuleId);\n return this._roomDesignerRequests.deleteRootModule(rootModuleId);\n }\n\n public getPosDataOfAllGroups(): Promise<PosGroup[]> {\n this._logResponse('getPosDataOfAllGroups');\n return this._roomDesignerRequests.getPosDataOfAllGroups();\n }\n\n public getRoomInformation(): Promise<ExternalRoomInformation> {\n this._logResponse('getRoomInformation');\n return this._roomDesignerRequests.getRoomInformation();\n }\n\n public saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null> {\n this._logResponse('saveExternalObjectSnapshot');\n return this._roomDesignerRequests.saveExternalObjectSnapshot();\n }\n}\n","import { RoomDesignerApi } from './api';\nimport type { GlueLogic, HiAttributeOptionsResult } from './glue-logic';\nimport { GlueLogicImplementation, type LibraryData } from './glue-logic';\nimport { type HomagIntelligenceInitData } from './hi-api-types';\nimport { v4 as uuidv4 } from 'uuid';\nimport type {\n MasterData,\n PosArticle,\n PosContour,\n PosGroup,\n PosModuleAttribute,\n PosModuleData,\n} from './model/oc-scripts-domain.model';\nimport { initCallbacks } from './callbacks';\nimport { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport Orders from './orders';\nimport type {\n ExternalConfiguration,\n ExternalItem,\n} from '../../typings/external-objects';\nimport type { HiTagCatalogCallbacks } from './hi-tag-catalog-callbacks';\nimport type { HiCallbacks, HiOrderHeader } from '#/common/src/hi/hi-types';\nimport {\n GlueLayerRequestDebugLogging,\n GlueLayerResponseDebugLogging,\n} from './debug-logging';\nimport type { ExternalObjectValidContainerModules } from './external-object-api-callbacks';\n\ndeclare global {\n interface Window {\n uuidv4: () => string;\n }\n}\n\nconsole.warn('Homag Intelligence plugin is loaded.');\n\n// export const HOMAG_INTELLIGENCE_ENDPOINT = 'http://localhost:8080/proxy_request?url=';\n// export const HOMAG_INTELLIGENCE_ENDPOINT =\n// 'https://europe-west3-rml-showcases.cloudfunctions.net/proxy_request?url=';\n\nexport type ExternalObjects = Map<\n string,\n { id: string; label: string; items: any[] }\n>;\nexport type ExternalItems = Map<string, ExternalItem>;\nexport type ExternalConfigurations = Map<string, ExternalConfiguration>;\n\nexport class HomagIntelligence {\n private _roomlePlanner: RoomlePlanner;\n private _api: RoomDesignerApi;\n private _glueLogic: GlueLogic;\n private _orders: Orders;\n private _hiCallbacks: HiCallbacks;\n\n constructor(\n roomlePlanner: RoomlePlanner,\n hiOptions: HomagIntelligenceInitData,\n hiCallbacks: HiCallbacks,\n ) {\n if (!window.uuidv4) {\n window.uuidv4 = uuidv4; // Ensure uuidv4 is available globally\n }\n\n this._roomlePlanner = roomlePlanner;\n this._roomlePlanner.setHomagIntelligence(this);\n this._hiCallbacks = hiCallbacks;\n this._api = new RoomDesignerApi(this._roomlePlanner);\n\n if (hiOptions?.debugLogging) {\n const api = new GlueLayerResponseDebugLogging(this._api, hiCallbacks);\n const glueLogic = new GlueLogicImplementation(api, hiCallbacks);\n this._glueLogic = new GlueLayerRequestDebugLogging(\n glueLogic,\n hiCallbacks,\n );\n } else {\n this._glueLogic = new GlueLogicImplementation(this._api, hiCallbacks);\n }\n initCallbacks(this._roomlePlanner, this._glueLogic);\n this._orders = new Orders(roomlePlanner, this._glueLogic);\n }\n\n /**\n * Loads previously saved PosGroup data via hiCallbacks.\n * Must be called after construction to restore saved state.\n */\n public async loadSavedPosData(): Promise<void> {\n const savedPosGroupData =\n (await this._hiCallbacks.onGetSavedPosGroupData?.()) ?? null;\n await this._glueLogic.setPosDataForLoading(savedPosGroupData);\n }\n\n public async loadLibrary(libraryId: string) {\n const libraryData = await this._loadLibraryData(libraryId);\n await this._glueLogic.addLibrary(libraryData);\n }\n\n public async loadCatalog(\n libraryId: string,\n articles: any,\n catalogCallbacks: HiTagCatalogCallbacks,\n ) {\n catalogCallbacks?.setEmulator(this._glueLogic);\n this._glueLogic.loadPosData(await articles, libraryId);\n }\n\n private async _loadLibraryData(libraryId: string): Promise<LibraryData> {\n if (this._glueLogic.isLibraryLoaded(libraryId)) {\n const data = this._glueLogic.getLibraryData(libraryId);\n if (data !== null) {\n return data;\n }\n }\n const hiCallbacks = this._glueLogic.hiCallbacks;\n if (hiCallbacks === null) {\n throw new Error('HiCallbacks not initialized');\n }\n const { masterData, libraryExports } = await this._requestHiLibrary(\n libraryId,\n hiCallbacks,\n );\n this._loadMasterData(masterData);\n const libraryData: LibraryData = {\n libraryId,\n masterData,\n posGroupVersion: 1,\n calculateGroup: (groupData: PosGroup): PosGroup => {\n return libraryExports.calc(groupData);\n },\n getOrderData: (\n groupData: PosGroup[],\n roomlePlannerId?: string,\n rooms?: PosContour[],\n ): any => {\n return libraryExports.getOrderData(groupData, roomlePlannerId, rooms);\n },\n getAttributesDropDownValues: async (\n module: PosModuleData,\n attributeIds?: string | string[],\n ): Promise<Record<string, HiAttributeOptionsResult>> => {\n const ids = attributeIds\n ? Array.isArray(attributeIds)\n ? attributeIds\n : [attributeIds]\n : (module.attributes ?? []).map((attribute) => attribute.id);\n const attributeOptions: Record<string, any[]> = {};\n for (const attributeId of ids) {\n try {\n const attributeDropDownApi =\n libraryExports.getAttributesDropDownValuesV2 ??\n libraryExports.getAttributesDropDownValues;\n const options = await attributeDropDownApi(module, attributeId);\n attributeOptions[attributeId] = options;\n } catch (error) {\n console.error(error);\n attributeOptions[attributeId] = [];\n }\n }\n return attributeOptions;\n },\n solveModuleAttributeConflict: (\n module: PosModuleData,\n attributeName: string,\n value: string | number | boolean,\n ): PosModuleAttribute[] | undefined => {\n if (!libraryExports.solveModuleAttributeConflict) {\n return undefined;\n }\n const results = libraryExports.solveModuleAttributeConflict(\n module,\n attributeName,\n value,\n );\n return results;\n },\n getValidSubArticles(\n calculatedPosGroup: PosGroup,\n articles: PosArticle[],\n masterData: MasterData,\n ): PosArticle[] {\n if (!libraryExports.getValidSubArticles) {\n return [];\n }\n const results = libraryExports.getValidSubArticles(\n calculatedPosGroup,\n articles,\n masterData,\n );\n return results;\n },\n getValidContainerModulesForSubArticle(\n calculatedPosGroup: PosGroup,\n subArticle: PosArticle,\n masterData: MasterData,\n ): ExternalObjectValidContainerModules[] {\n if (!libraryExports.getValidContainerModulesForSubArticle) {\n return [];\n }\n const results = libraryExports.getValidContainerModulesForSubArticle(\n calculatedPosGroup,\n subArticle,\n masterData,\n );\n return results;\n },\n addSubArticle(\n targetPosGroup: PosGroup,\n article: PosArticle,\n rootId: string,\n parentModuleId: string,\n ): PosGroup {\n if (!libraryExports.addSubArticle) {\n return targetPosGroup;\n }\n const results = libraryExports.addSubArticle(\n targetPosGroup,\n article,\n rootId,\n parentModuleId,\n );\n return results;\n },\n deleteSubArticle(\n targetPosGroup: PosGroup,\n rootId: string,\n articleModuleId: string,\n ): PosGroup {\n if (!libraryExports.deleteSubArticle) {\n return targetPosGroup;\n }\n const results = libraryExports.deleteSubArticle(\n targetPosGroup,\n rootId,\n articleModuleId,\n );\n return results;\n },\n };\n return libraryData;\n }\n\n public async _requestHiLibrary(\n libraryId: string,\n hiCallbacks: HiCallbacks,\n ): Promise<{\n masterData: MasterData;\n libraryExports: any;\n }> {\n const [masterData, calcScriptString] = await Promise.all([\n hiCallbacks.onLoadMasterData(libraryId),\n hiCallbacks.onLoadJavascript(libraryId),\n ]);\n const libraryExports = await this._initCalcScript(calcScriptString);\n return {\n masterData,\n libraryExports,\n };\n }\n\n private _loadMasterData(masterData: MasterData): void {\n return this._api.loadMasterData(masterData);\n }\n\n private async _initCalcScript(scriptText: string): Promise<any> {\n try {\n window.exports = {};\n const blob = new Blob([scriptText], { type: 'text/javascript' });\n const blobUrl = URL.createObjectURL(blob);\n await import(blobUrl);\n URL.revokeObjectURL(blobUrl); // dispose of it when done\n return window.exports;\n } catch (e) {\n console.error(e);\n throw new Error('Failed to load calc.js!');\n }\n }\n\n public getGlueLogic(): GlueLogic {\n return this._glueLogic;\n }\n\n public async placeOrder(\n withPrice: boolean = true,\n orderHeader?: HiOrderHeader,\n ) {\n await this._orders.placeOrder(withPrice, orderHeader);\n }\n\n public async fetchPrice(planId?: string, orderHeader?: HiOrderHeader) {\n return this._orders.fetchPrice(planId, orderHeader);\n }\n}\n"],"names":["byteToHex","i","unsafeStringify","arr","offset","getRandomValues","rnds8","rng","randomUUID","native","v4","options","buf","rnds","initCallbacks","roomlePlanner","gluLogic","groupId","rootModuleId","subModuleId","context","selectionMode","objectType","payload","payloadPromise","planElementViewModel","reason","getISO8601Date","date","isoString","msPosition","baseTimestamp","offsetMinutes","offsetHours","offsetMins","offsetString","createEmptyOrder","_addMerchantPositions","groupData","planOverview","count","itemIds","acc","item","merchantItems","posNo","pos","Orders","glueLogic","planId","orderHeader","orderData","withPrice","planData","priceData","order","GlueLayerRequestDebugLogging","hiCallbacks","message","args","messageAndArgs","libraryId","libraryData","posData","articleCatalogJson","targetGroup","idsOfGroupsMerged","idOfTargetRootModule","mergedWithDragging","remainingGroup","rootModuleIdToDelete","splitOffGroups","splitGroup","newGroupedRootModules","duplicatedGroup","moduleIdObjects","attributeName","value","moduleId","attributeId","attributeValue","attributeIds","propertyName","propertyValue","posGroupIds","subArticleId","articleId","parentModuleId","subModuleIds","changedGroup","objectPositionChanged","posDataJson","reloadGroup","id","roomlePlannerId","materialId","groupOrModuleId","GlueLayerResponseDebugLogging","roomDesignerRequests","masterData","groupIds","group","groupOrRootModuleId","open","animate","HomagIntelligence","hiOptions","uuidv4","RoomDesignerApi","api","GlueLogicImplementation","savedPosGroupData","articles","catalogCallbacks","data","libraryExports","rooms","module","ids","attribute","attributeOptions","error","calculatedPosGroup","subArticle","targetPosGroup","article","rootId","articleModuleId","calcScriptString","scriptText","blob","blobUrl","e"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}