@roomle/web-sdk 2.93.0 → 2.94.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/.releaserc.json +7 -5
  2. package/lib/TextGeometry-259292ec.nomodule.js +2 -0
  3. package/lib/TextGeometry-259292ec.nomodule.js.map +1 -0
  4. package/lib/TextGeometry-dc304c0e.js +2 -0
  5. package/lib/TextGeometry-dc304c0e.js.map +1 -0
  6. package/lib/{banana-for-scale-82698f0d.nomodule.js → banana-for-scale-7d77113f.nomodule.js} +2 -2
  7. package/lib/{banana-for-scale-82698f0d.nomodule.js.map → banana-for-scale-7d77113f.nomodule.js.map} +1 -1
  8. package/lib/{banana-for-scale-97867f4b.js → banana-for-scale-a6cfb03f.js} +2 -2
  9. package/lib/{banana-for-scale-97867f4b.js.map → banana-for-scale-a6cfb03f.js.map} +1 -1
  10. package/lib/{budgeteer-measure-f6505461.js → budgeteer-measure-7662ae7e.js} +2 -2
  11. package/lib/{budgeteer-measure-f6505461.js.map → budgeteer-measure-7662ae7e.js.map} +1 -1
  12. package/lib/budgeteer-measure.nomodule.js +1 -1
  13. package/lib/{camera-behaviour-030b51c2.js → camera-behaviour-05fc5ef1.js} +2 -2
  14. package/lib/camera-behaviour-05fc5ef1.js.map +1 -0
  15. package/lib/{camera-behaviour-ca49ab38.nomodule.js → camera-behaviour-55f86fa4.nomodule.js} +2 -2
  16. package/lib/camera-behaviour-55f86fa4.nomodule.js.map +1 -0
  17. package/lib/{component-dimensioning-1f0b49db.js → component-dimensioning-a9ea8349.js} +2 -2
  18. package/lib/component-dimensioning-a9ea8349.js.map +1 -0
  19. package/lib/{component-dimensioning-23833567.nomodule.js → component-dimensioning-d2271998.nomodule.js} +2 -2
  20. package/lib/component-dimensioning-d2271998.nomodule.js.map +1 -0
  21. package/lib/{component-raycast-helper-3897a2ff.js → component-raycast-helper-80394a4e.js} +2 -2
  22. package/lib/component-raycast-helper-80394a4e.js.map +1 -0
  23. package/lib/{component-raycast-helper-6ca8533f.nomodule.js → component-raycast-helper-e910b27c.nomodule.js} +2 -2
  24. package/lib/component-raycast-helper-e910b27c.nomodule.js.map +1 -0
  25. package/lib/{configurator-c12782f6.nomodule.js → configurator-79cf93dd.nomodule.js} +2 -2
  26. package/lib/configurator-79cf93dd.nomodule.js.map +1 -0
  27. package/lib/{configurator-8bd32915.js → configurator-a35cc80c.js} +2 -2
  28. package/lib/configurator-a35cc80c.js.map +1 -0
  29. package/lib/configurator-main-94e1c5d0.js +2 -0
  30. package/lib/configurator-main-94e1c5d0.js.map +1 -0
  31. package/lib/configurator-main.nomodule.js +1 -1
  32. package/lib/{continuous-drawing-helper-cb4aacc1.js → continuous-drawing-helper-be34f1ca.js} +2 -2
  33. package/lib/continuous-drawing-helper-be34f1ca.js.map +1 -0
  34. package/lib/{continuous-drawing-helper-f0db09d7.nomodule.js → continuous-drawing-helper-d10bf8bc.nomodule.js} +2 -2
  35. package/lib/continuous-drawing-helper-d10bf8bc.nomodule.js.map +1 -0
  36. package/lib/{default-light-setting-dc41f88c.nomodule.js → default-light-setting-31cbd6d3.nomodule.js} +2 -2
  37. package/lib/default-light-setting-31cbd6d3.nomodule.js.map +1 -0
  38. package/lib/{default-light-setting-59bf1477.js → default-light-setting-f7470fe4.js} +2 -2
  39. package/lib/default-light-setting-f7470fe4.js.map +1 -0
  40. package/lib/definitions/common-core/src/utils/init-data.d.ts +2 -0
  41. package/lib/definitions/common-core/src/utils/shims.d.ts +10 -0
  42. package/lib/definitions/common-core/src/webgl/renderer/scene-renderer.d.ts +2 -1
  43. package/lib/definitions/common-core/src/webgl/roomle-webgl-renderer.d.ts +1 -1
  44. package/lib/definitions/configurator-core/src/roomle-configurator.d.ts +4 -1
  45. package/lib/definitions/configurator-core/src/utils/imos-ix-poc-export-helper.d.ts +43 -0
  46. package/lib/definitions/configurator-core/src/webgl/configurator-scene-manager.d.ts +1 -0
  47. package/lib/definitions/packages/common-core/src/utils/init-data.d.ts +2 -0
  48. package/lib/definitions/packages/common-core/src/utils/shims.d.ts +10 -0
  49. package/lib/definitions/packages/common-core/src/webgl/renderer/scene-renderer.d.ts +2 -1
  50. package/lib/definitions/packages/common-core/src/webgl/roomle-webgl-renderer.d.ts +1 -1
  51. package/lib/definitions/packages/configurator-core/src/roomle-configurator.d.ts +4 -1
  52. package/lib/definitions/packages/configurator-core/src/utils/imos-ix-poc-export-helper.d.ts +43 -0
  53. package/lib/definitions/packages/configurator-core/src/webgl/configurator-scene-manager.d.ts +1 -0
  54. package/lib/definitions/packages/planner-core/src/external-object-api-callbacks.d.ts +26 -13
  55. package/lib/definitions/packages/planner-core/src/external-object-api.d.ts +2 -1
  56. package/lib/definitions/packages/planner-core/src/roomle-planner-ui-callback.d.ts +9 -5
  57. package/lib/definitions/packages/planner-core/src/roomle-planner.d.ts +6 -3
  58. package/lib/definitions/packages/planner-core/src/services/planner-kernel-access.d.ts +11 -11
  59. package/lib/definitions/packages/planner-core/src/utils/planner-scene-manager.d.ts +1 -1
  60. package/lib/definitions/packages/planner-core/src/view-model/plan-view-model.d.ts +1 -0
  61. package/lib/definitions/packages/planner-core/src/webgl/planner-scene-manager.d.ts +5 -0
  62. package/lib/definitions/packages/typings/planner.d.ts +20 -1
  63. package/lib/definitions/planner-core/src/external-object-api-callbacks.d.ts +26 -13
  64. package/lib/definitions/planner-core/src/external-object-api.d.ts +2 -1
  65. package/lib/definitions/planner-core/src/roomle-planner-ui-callback.d.ts +9 -5
  66. package/lib/definitions/planner-core/src/roomle-planner.d.ts +6 -3
  67. package/lib/definitions/planner-core/src/services/planner-kernel-access.d.ts +11 -11
  68. package/lib/definitions/planner-core/src/utils/planner-scene-manager.d.ts +1 -1
  69. package/lib/definitions/planner-core/src/view-model/plan-view-model.d.ts +1 -0
  70. package/lib/definitions/planner-core/src/webgl/planner-scene-manager.d.ts +5 -0
  71. package/lib/definitions/typings/planner.d.ts +20 -1
  72. package/lib/dimensioning-helper-940e213e.js +2 -0
  73. package/lib/{dimensioning-helper-b578c929.js.map → dimensioning-helper-940e213e.js.map} +1 -1
  74. package/lib/dimensioning-helper-c90a2e59.nomodule.js +2 -0
  75. package/lib/dimensioning-helper-c90a2e59.nomodule.js.map +1 -0
  76. package/lib/{glb-viewer-27827d4c.nomodule.js → glb-viewer-447927c4.nomodule.js} +2 -2
  77. package/lib/{glb-viewer-27827d4c.nomodule.js.map → glb-viewer-447927c4.nomodule.js.map} +1 -1
  78. package/lib/{glb-viewer-camera-behaviour-1f71cb62.js → glb-viewer-camera-behaviour-141567b1.js} +2 -2
  79. package/lib/glb-viewer-camera-behaviour-141567b1.js.map +1 -0
  80. package/lib/{glb-viewer-camera-behaviour-3d4a8906.nomodule.js → glb-viewer-camera-behaviour-2608e844.nomodule.js} +2 -2
  81. package/lib/glb-viewer-camera-behaviour-2608e844.nomodule.js.map +1 -0
  82. package/lib/{glb-viewer-175715eb.js → glb-viewer-fd67ff04.js} +2 -2
  83. package/lib/{glb-viewer-175715eb.js.map → glb-viewer-fd67ff04.js.map} +1 -1
  84. package/lib/glb-viewer-main-3c69bc92.js +2 -0
  85. package/lib/glb-viewer-main-3c69bc92.js.map +1 -0
  86. package/lib/glb-viewer-main.nomodule.js +1 -1
  87. package/lib/imos-ix-poc-export-helper-dee4f3a1.js +2 -0
  88. package/lib/imos-ix-poc-export-helper-dee4f3a1.js.map +1 -0
  89. package/lib/imos-ix-poc-export-helper-e4c914df.nomodule.js +2 -0
  90. package/lib/imos-ix-poc-export-helper-e4c914df.nomodule.js.map +1 -0
  91. package/lib/legacy/TextGeometry-5fb8e830.legacy.js +2 -0
  92. package/lib/legacy/TextGeometry-5fb8e830.legacy.js.map +1 -0
  93. package/lib/legacy/{banana-for-scale-c5474706.legacy.js → banana-for-scale-d076a131.legacy.js} +2 -2
  94. package/lib/legacy/{banana-for-scale-c5474706.legacy.js.map → banana-for-scale-d076a131.legacy.js.map} +1 -1
  95. package/lib/legacy/budgeteer-measure.legacy.js +1 -1
  96. package/lib/legacy/camera-behaviour-b583d9da.legacy.js +2 -0
  97. package/lib/legacy/camera-behaviour-b583d9da.legacy.js.map +1 -0
  98. package/lib/legacy/{component-dimensioning-6564c623.legacy.js → component-dimensioning-2f39ca2d.legacy.js} +2 -2
  99. package/lib/legacy/component-dimensioning-2f39ca2d.legacy.js.map +1 -0
  100. package/lib/legacy/{component-raycast-helper-bd3bf7e5.legacy.js → component-raycast-helper-d8951895.legacy.js} +2 -2
  101. package/lib/legacy/component-raycast-helper-d8951895.legacy.js.map +1 -0
  102. package/lib/legacy/configurator-254d3ebf.legacy.js +2 -0
  103. package/lib/legacy/configurator-254d3ebf.legacy.js.map +1 -0
  104. package/lib/legacy/configurator-main.legacy.js +1 -1
  105. package/lib/legacy/{continuous-drawing-helper-d02d4a86.legacy.js → continuous-drawing-helper-6d3c0faf.legacy.js} +2 -2
  106. package/lib/legacy/continuous-drawing-helper-6d3c0faf.legacy.js.map +1 -0
  107. package/lib/legacy/{default-light-setting-eaedd022.legacy.js → default-light-setting-e60bff1b.legacy.js} +2 -2
  108. package/lib/legacy/default-light-setting-e60bff1b.legacy.js.map +1 -0
  109. package/lib/legacy/dimensioning-helper-216dab16.legacy.js +2 -0
  110. package/lib/legacy/dimensioning-helper-216dab16.legacy.js.map +1 -0
  111. package/lib/legacy/{glb-viewer-0a5e5b7f.legacy.js → glb-viewer-14374774.legacy.js} +2 -2
  112. package/lib/legacy/{glb-viewer-0a5e5b7f.legacy.js.map → glb-viewer-14374774.legacy.js.map} +1 -1
  113. package/lib/legacy/{glb-viewer-camera-behaviour-890268c6.legacy.js → glb-viewer-camera-behaviour-7ffdea3d.legacy.js} +2 -2
  114. package/lib/legacy/glb-viewer-camera-behaviour-7ffdea3d.legacy.js.map +1 -0
  115. package/lib/legacy/glb-viewer-main.legacy.js +1 -1
  116. package/lib/legacy/imos-ix-poc-export-helper-2426ab25.legacy.js +2 -0
  117. package/lib/legacy/imos-ix-poc-export-helper-2426ab25.legacy.js.map +1 -0
  118. package/lib/legacy/main-thread-to-worker-1ffd1d44.legacy.js +7 -0
  119. package/lib/legacy/main-thread-to-worker-1ffd1d44.legacy.js.map +1 -0
  120. package/lib/legacy/{material-viewer-f194ab6e.legacy.js → material-viewer-12b157a5.legacy.js} +2 -2
  121. package/lib/legacy/material-viewer-12b157a5.legacy.js.map +1 -0
  122. package/lib/legacy/material-viewer-main.legacy.js +1 -1
  123. package/lib/legacy/planner-7f2c55fa.legacy.js +2 -0
  124. package/lib/legacy/planner-7f2c55fa.legacy.js.map +1 -0
  125. package/lib/legacy/planner-main.legacy.js +1 -1
  126. package/lib/legacy/{query-params-helper-aca6a1b1.legacy.js → query-params-helper-9bc9aa02.legacy.js} +2 -2
  127. package/lib/legacy/query-params-helper-9bc9aa02.legacy.js.map +1 -0
  128. package/lib/legacy/roomle-configurator-f918de16.legacy.js +2 -0
  129. package/lib/legacy/roomle-configurator-f918de16.legacy.js.map +1 -0
  130. package/lib/legacy/roomle-dependency-injection-eb7a606c.legacy.js +9 -0
  131. package/lib/legacy/roomle-dependency-injection-eb7a606c.legacy.js.map +1 -0
  132. package/lib/legacy/roomle-sdk.legacy.js +1 -1
  133. package/lib/legacy/{script-loader-c892cabd.legacy.js → script-loader-ee55f933.legacy.js} +2 -2
  134. package/lib/legacy/script-loader-ee55f933.legacy.js.map +1 -0
  135. package/lib/legacy/static/ConfiguratorKernel-6f3c0f674deeab31.wasm +0 -0
  136. package/lib/legacy/static/RoomleCore-3d2f18d8ad3a0176.wasm +0 -0
  137. package/lib/legacy/static/{RoomleCore-f2d7b1b87640ef15.js → RoomleCore-ed8b449f8ddfd032.js} +5 -5
  138. package/lib/legacy/static/RoomleToolsCore-b75693bfe1271a75.wasm +0 -0
  139. package/lib/legacy/static/default-external-object-api-configuration-c4294f96099e0d09.json +70 -0
  140. package/lib/legacy/{stats-helper-2050f9c2.legacy.js → stats-helper-d995ff14.legacy.js} +2 -2
  141. package/lib/legacy/stats-helper-d995ff14.legacy.js.map +1 -0
  142. package/lib/legacy/{tools-core-3732bba5.legacy.js → tools-core-3c0d3832.legacy.js} +2 -2
  143. package/lib/legacy/tools-core-3c0d3832.legacy.js.map +1 -0
  144. package/lib/main-thread-to-worker-352ff4b1.js +8 -0
  145. package/lib/main-thread-to-worker-352ff4b1.js.map +1 -0
  146. package/lib/main-thread-to-worker-7f1cb5ea.nomodule.js +8 -0
  147. package/lib/main-thread-to-worker-7f1cb5ea.nomodule.js.map +1 -0
  148. package/lib/{material-viewer-974f49f8.js → material-viewer-0638640d.js} +2 -2
  149. package/lib/material-viewer-0638640d.js.map +1 -0
  150. package/lib/{material-viewer-51ea0a5b.nomodule.js → material-viewer-1fa1935f.nomodule.js} +2 -2
  151. package/lib/material-viewer-1fa1935f.nomodule.js.map +1 -0
  152. package/lib/material-viewer-main-e1bec764.js +2 -0
  153. package/lib/material-viewer-main-e1bec764.js.map +1 -0
  154. package/lib/material-viewer-main.nomodule.js +1 -1
  155. package/lib/planner-95c43453.nomodule.js +2 -0
  156. package/lib/planner-95c43453.nomodule.js.map +1 -0
  157. package/lib/planner-d31cce72.js +2 -0
  158. package/lib/planner-d31cce72.js.map +1 -0
  159. package/lib/planner-main-e4a5d313.js +2 -0
  160. package/lib/planner-main-e4a5d313.js.map +1 -0
  161. package/lib/planner-main.nomodule.js +1 -1
  162. package/lib/{query-params-helper-c9492f35.js → query-params-helper-28405b8d.js} +2 -2
  163. package/lib/query-params-helper-28405b8d.js.map +1 -0
  164. package/lib/{query-params-helper-51a53f8c.nomodule.js → query-params-helper-4f855064.nomodule.js} +2 -2
  165. package/lib/query-params-helper-4f855064.nomodule.js.map +1 -0
  166. package/lib/roomle-configurator-53e99bd9.nomodule.js +2 -0
  167. package/lib/roomle-configurator-53e99bd9.nomodule.js.map +1 -0
  168. package/lib/roomle-configurator-cceb45ae.js +2 -0
  169. package/lib/roomle-configurator-cceb45ae.js.map +1 -0
  170. package/lib/roomle-dependency-injection-0758cad6.nomodule.js +9 -0
  171. package/lib/roomle-dependency-injection-0758cad6.nomodule.js.map +1 -0
  172. package/lib/roomle-dependency-injection-91bf1e95.js +9 -0
  173. package/lib/roomle-dependency-injection-91bf1e95.js.map +1 -0
  174. package/lib/{roomle-sdk-33253a52.js → roomle-sdk-02567b03.js} +2 -2
  175. package/lib/roomle-sdk-02567b03.js.map +1 -0
  176. package/lib/roomle-sdk.nomodule.js +1 -1
  177. package/lib/{script-loader-184e3f9c.nomodule.js → script-loader-1491eb6e.nomodule.js} +2 -2
  178. package/lib/script-loader-1491eb6e.nomodule.js.map +1 -0
  179. package/lib/{script-loader-a610d57a.js → script-loader-be245e2c.js} +2 -2
  180. package/lib/script-loader-be245e2c.js.map +1 -0
  181. package/lib/static/ConfiguratorKernel-6f3c0f674deeab31.wasm +0 -0
  182. package/lib/static/RoomleCore-3d2f18d8ad3a0176.wasm +0 -0
  183. package/lib/static/{RoomleCore-f2d7b1b87640ef15.js → RoomleCore-ed8b449f8ddfd032.js} +1 -1
  184. package/lib/static/{RoomleCore-f2d7b1b87640ef15.js.map → RoomleCore-ed8b449f8ddfd032.js.map} +1 -1
  185. package/lib/static/RoomleToolsCore-b75693bfe1271a75.wasm +0 -0
  186. package/lib/static/default-external-object-api-configuration-c4294f96099e0d09.json +70 -0
  187. package/lib/{stats-helper-3203697b.js → stats-helper-31f64ecd.js} +2 -2
  188. package/lib/stats-helper-31f64ecd.js.map +1 -0
  189. package/lib/{stats-helper-cd71292f.nomodule.js → stats-helper-89db8c48.nomodule.js} +2 -2
  190. package/lib/stats-helper-89db8c48.nomodule.js.map +1 -0
  191. package/lib/{tools-core-96051b9f.js → tools-core-531ed8dc.js} +2 -2
  192. package/lib/tools-core-531ed8dc.js.map +1 -0
  193. package/lib/{tools-core-4bb0ae02.nomodule.js → tools-core-dd55a366.nomodule.js} +2 -2
  194. package/lib/tools-core-dd55a366.nomodule.js.map +1 -0
  195. package/package.json +3 -3
  196. package/lib/TextGeometry-ab643210.js +0 -2
  197. package/lib/TextGeometry-ab643210.js.map +0 -1
  198. package/lib/TextGeometry-cd81779b.nomodule.js +0 -2
  199. package/lib/TextGeometry-cd81779b.nomodule.js.map +0 -1
  200. package/lib/camera-behaviour-030b51c2.js.map +0 -1
  201. package/lib/camera-behaviour-ca49ab38.nomodule.js.map +0 -1
  202. package/lib/component-dimensioning-1f0b49db.js.map +0 -1
  203. package/lib/component-dimensioning-23833567.nomodule.js.map +0 -1
  204. package/lib/component-raycast-helper-3897a2ff.js.map +0 -1
  205. package/lib/component-raycast-helper-6ca8533f.nomodule.js.map +0 -1
  206. package/lib/configurator-8bd32915.js.map +0 -1
  207. package/lib/configurator-c12782f6.nomodule.js.map +0 -1
  208. package/lib/configurator-main-af9fe823.js +0 -2
  209. package/lib/configurator-main-af9fe823.js.map +0 -1
  210. package/lib/continuous-drawing-helper-cb4aacc1.js.map +0 -1
  211. package/lib/continuous-drawing-helper-f0db09d7.nomodule.js.map +0 -1
  212. package/lib/default-light-setting-59bf1477.js.map +0 -1
  213. package/lib/default-light-setting-dc41f88c.nomodule.js.map +0 -1
  214. package/lib/dimensioning-helper-b2e15337.nomodule.js +0 -2
  215. package/lib/dimensioning-helper-b2e15337.nomodule.js.map +0 -1
  216. package/lib/dimensioning-helper-b578c929.js +0 -2
  217. package/lib/glb-viewer-camera-behaviour-1f71cb62.js.map +0 -1
  218. package/lib/glb-viewer-camera-behaviour-3d4a8906.nomodule.js.map +0 -1
  219. package/lib/glb-viewer-main-75d66b65.js +0 -2
  220. package/lib/glb-viewer-main-75d66b65.js.map +0 -1
  221. package/lib/legacy/TextGeometry-f4299b59.legacy.js +0 -2
  222. package/lib/legacy/TextGeometry-f4299b59.legacy.js.map +0 -1
  223. package/lib/legacy/camera-behaviour-ad25f6ef.legacy.js +0 -2
  224. package/lib/legacy/camera-behaviour-ad25f6ef.legacy.js.map +0 -1
  225. package/lib/legacy/component-dimensioning-6564c623.legacy.js.map +0 -1
  226. package/lib/legacy/component-raycast-helper-bd3bf7e5.legacy.js.map +0 -1
  227. package/lib/legacy/configurator-e1b5002c.legacy.js +0 -2
  228. package/lib/legacy/configurator-e1b5002c.legacy.js.map +0 -1
  229. package/lib/legacy/continuous-drawing-helper-d02d4a86.legacy.js.map +0 -1
  230. package/lib/legacy/default-light-setting-eaedd022.legacy.js.map +0 -1
  231. package/lib/legacy/dimensioning-helper-a275a8bb.legacy.js +0 -2
  232. package/lib/legacy/dimensioning-helper-a275a8bb.legacy.js.map +0 -1
  233. package/lib/legacy/glb-viewer-camera-behaviour-890268c6.legacy.js.map +0 -1
  234. package/lib/legacy/main-thread-to-worker-7c2b8bc9.legacy.js +0 -7
  235. package/lib/legacy/main-thread-to-worker-7c2b8bc9.legacy.js.map +0 -1
  236. package/lib/legacy/material-viewer-f194ab6e.legacy.js.map +0 -1
  237. package/lib/legacy/planner-0ab7ddd9.legacy.js +0 -2
  238. package/lib/legacy/planner-0ab7ddd9.legacy.js.map +0 -1
  239. package/lib/legacy/query-params-helper-aca6a1b1.legacy.js.map +0 -1
  240. package/lib/legacy/roomle-configurator-252480e3.legacy.js +0 -2
  241. package/lib/legacy/roomle-configurator-252480e3.legacy.js.map +0 -1
  242. package/lib/legacy/roomle-dependency-injection-6311d19a.legacy.js +0 -9
  243. package/lib/legacy/roomle-dependency-injection-6311d19a.legacy.js.map +0 -1
  244. package/lib/legacy/script-loader-c892cabd.legacy.js.map +0 -1
  245. package/lib/legacy/static/ConfiguratorKernel-e1942929e3172878.wasm +0 -0
  246. package/lib/legacy/static/RoomleCore-9cf7a78a45f7e539.wasm +0 -0
  247. package/lib/legacy/static/RoomleToolsCore-4f5855738685f5c2.wasm +0 -0
  248. package/lib/legacy/static/default-external-object-api-configuration-1e7103889f664a3f.json +0 -16
  249. package/lib/legacy/stats-helper-2050f9c2.legacy.js.map +0 -1
  250. package/lib/legacy/tools-core-3732bba5.legacy.js.map +0 -1
  251. package/lib/main-thread-to-worker-2529fa31.nomodule.js +0 -2
  252. package/lib/main-thread-to-worker-2529fa31.nomodule.js.map +0 -1
  253. package/lib/main-thread-to-worker-ee3036b3.js +0 -2
  254. package/lib/main-thread-to-worker-ee3036b3.js.map +0 -1
  255. package/lib/material-viewer-51ea0a5b.nomodule.js.map +0 -1
  256. package/lib/material-viewer-974f49f8.js.map +0 -1
  257. package/lib/material-viewer-main-8dec693f.js +0 -2
  258. package/lib/material-viewer-main-8dec693f.js.map +0 -1
  259. package/lib/planner-147d2638.nomodule.js +0 -2
  260. package/lib/planner-147d2638.nomodule.js.map +0 -1
  261. package/lib/planner-f7cb4600.js +0 -2
  262. package/lib/planner-f7cb4600.js.map +0 -1
  263. package/lib/planner-main-f1934878.js +0 -2
  264. package/lib/planner-main-f1934878.js.map +0 -1
  265. package/lib/query-params-helper-51a53f8c.nomodule.js.map +0 -1
  266. package/lib/query-params-helper-c9492f35.js.map +0 -1
  267. package/lib/roomle-configurator-993ecc38.js +0 -2
  268. package/lib/roomle-configurator-993ecc38.js.map +0 -1
  269. package/lib/roomle-configurator-bc0c5cc0.nomodule.js +0 -2
  270. package/lib/roomle-configurator-bc0c5cc0.nomodule.js.map +0 -1
  271. package/lib/roomle-dependency-injection-18c33055.nomodule.js +0 -9
  272. package/lib/roomle-dependency-injection-18c33055.nomodule.js.map +0 -1
  273. package/lib/roomle-dependency-injection-bf1bdb72.js +0 -9
  274. package/lib/roomle-dependency-injection-bf1bdb72.js.map +0 -1
  275. package/lib/roomle-sdk-33253a52.js.map +0 -1
  276. package/lib/script-loader-184e3f9c.nomodule.js.map +0 -1
  277. package/lib/script-loader-a610d57a.js.map +0 -1
  278. package/lib/static/ConfiguratorKernel-e1942929e3172878.wasm +0 -0
  279. package/lib/static/RoomleCore-9cf7a78a45f7e539.wasm +0 -0
  280. package/lib/static/RoomleToolsCore-4f5855738685f5c2.wasm +0 -0
  281. package/lib/static/default-external-object-api-configuration-1e7103889f664a3f.json +0 -16
  282. package/lib/stats-helper-3203697b.js.map +0 -1
  283. package/lib/stats-helper-cd71292f.nomodule.js.map +0 -1
  284. package/lib/tools-core-4bb0ae02.nomodule.js.map +0 -1
  285. package/lib/tools-core-96051b9f.js.map +0 -1
@@ -6,7 +6,7 @@ import type RoomlePlannerUiCallback from '../roomle-planner-ui-callback';
6
6
  import type PlanElementViewModel from '../../../common-core/src/view-model/plan-element-view-model';
7
7
  import type { Position3 } from '../../../common-core/src/common-interfaces';
8
8
  import ConfiguratorKernelAccess from '../../../common-core/src/configurator-kernel-access';
9
- import type { ExternalObjectGroup, ExternalObjectGroupAndModules, ExternalObjectGroupPosition } from '../external-object-api-callbacks';
9
+ import type { ExternalObjectGroup, ExternalObjectGroupPosition } from '../external-object-api-callbacks';
10
10
  export interface PlannerKernelCallbackI {
11
11
  handlerSwitchedPlans(fromPlan: Plan, toPlan: Plan): void;
12
12
  planCompletelyLoaded(plan: Plan): void;
@@ -67,12 +67,12 @@ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
67
67
  externalObjectConfigurationChanged(plan: Plan, planObject: PlanObject, configuration: string): void;
68
68
  externalObjectConfigurationLoaded(plan: Plan, planObject: PlanObject, configuration: string): void;
69
69
  externalObjectConfigurationDeleted(plan: Plan, planObject: PlanObject, uniqueId: string): void;
70
- externalObjectComponentDeleted(plan: Plan, planObject: PlanObject, remainingGroupOrGroups: ExternalObjectGroupAndModules | ExternalObjectGroupAndModules[], deletedRootModuleId: string): void;
70
+ externalObjectComponentDeleted(plan: Plan, planObject: PlanObject, remainingGroupOrGroups: ExternalObjectGroup | ExternalObjectGroup[], deletedRootModuleId: string): void;
71
71
  externalObjectConfigurationDuplicated(plan: Plan, planObject: PlanObject, sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
72
- externalObjectConfigurationMoved(plan: Plan, planObject: PlanObject, movedGroup: ExternalObjectGroup): void;
73
- externalObjectConfigurationsMerged(plan: Plan, planObject: PlanObject, mergedGroup: ExternalObjectGroupAndModules, sourceGroupId: string): void;
74
- externalObjectComponentSplitOff(plan: Plan, planObject: PlanObject, splitGroups: ExternalObjectGroupAndModules[]): void;
75
- externalObjectArrangementChanged(plan: Plan, planObject: PlanObject, changedGroup: ExternalObjectGroupAndModules): void;
72
+ externalObjectPlaningSituationChanged(plan: Plan, planObject: PlanObject, movedGroup: ExternalObjectGroup): void;
73
+ externalObjectConfigurationsMerged(plan: Plan, planObject: PlanObject, mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[]): void;
74
+ externalObjectComponentSplitOff(plan: Plan, planObject: PlanObject, splitGroups: ExternalObjectGroup[]): void;
75
+ externalObjectArrangementChanged(plan: Plan, planObject: PlanObject, changedGroup: ExternalObjectGroup): void;
76
76
  planObjectConfigurationLoaded(plan: Plan, element: PlanElement, success: boolean): Promise<void>;
77
77
  requestCatalogItem(catalogItemId: string): void;
78
78
  startedDrawing(): void;
@@ -95,12 +95,12 @@ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
95
95
  protected _externalObjectConfigurationChanged(objectId: number, configuration: string): void;
96
96
  protected _externalObjectConfigurationLoaded(objectId: number, configuration: string): void;
97
97
  protected _externalObjectConfigurationDeleted(groupId: string): void;
98
- protected _externalObjectComponentDeleted(remainingGroupOrGroups: ExternalObjectGroupAndModules | ExternalObjectGroupAndModules[], deletedRootModuleId: string): void;
98
+ protected _externalObjectComponentDeleted(remainingGroupOrGroups: ExternalObjectGroup | ExternalObjectGroup[], deletedRootModuleId: string): void;
99
99
  _externalObjectConfigurationDuplicated(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
100
- _externalObjectConfigurationsMoved(movedGroup: ExternalObjectGroup): void;
101
- _externalObjectConfigurationsMerged(mergedGroup: ExternalObjectGroupAndModules, sourceGroupId: string): void;
102
- _externalObjectComponentSplitOff(splitGroups: ExternalObjectGroupAndModules[]): void;
103
- _externalObjectArrangementChanged(changedGroup: ExternalObjectGroupAndModules): void;
100
+ _externalObjectPlaningSituationChanged(movedGroup: ExternalObjectGroup): void;
101
+ _externalObjectConfigurationsMerged(mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[]): void;
102
+ _externalObjectComponentSplitOff(splitGroups: ExternalObjectGroup[]): void;
103
+ _externalObjectArrangementChanged(changedGroup: ExternalObjectGroup): void;
104
104
  planSnapshotCreated(planSnapshot: RapiPlanSnapshotPostData): void;
105
105
  requestDeleteComponents(componentIds: number[]): void;
106
106
  requestDeleteComponent(componentId: number): void;
@@ -3,5 +3,5 @@ import type { PlanObjectPosition } from '../../../typings/planner';
3
3
  import type { Camera } from 'three';
4
4
  import type PlanElementViewModel from '../../../common-core/src/view-model/plan-element-view-model';
5
5
  export declare const createTransferableObjectPosition: (planViewModel: PlanObjectViewModel | PlanElementViewModel, camera: Camera, clientWidth: number, clientHeight: number) => PlanObjectPosition;
6
- export type CallbackObjectType = 'static' | 'configuration' | 'wall' | 'measure' | 'door' | 'floor' | 'window' | 'unknown';
6
+ export type CallbackObjectType = 'static' | 'configuration' | 'wall' | 'measure' | 'door' | 'floor' | 'window' | 'unknown' | 'external-configuration';
7
7
  export declare const getCallbackObjectType: (planElementViewModel: PlanElementViewModel) => CallbackObjectType;
@@ -54,6 +54,7 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
54
54
  addPlanElementViewModel(planElementViewModel: PlanElementViewModel): void;
55
55
  private _handleConfiguratorPlanObjectViewModel;
56
56
  private _linkPlanObjectViewModelAndComponent;
57
+ private _detachPlanObjectViewModelFromComponent;
57
58
  private _handleConfiguratorConstructionPlanObjectViewModel;
58
59
  private _handleConstructionPlanObjectViewModel;
59
60
  private _handleStaticPlanObjectViewModel;
@@ -1,6 +1,7 @@
1
1
  import type { Base64Image, CanvasOffset } from '../../../common-core/src/common-interfaces';
2
2
  import type { PlannerKernelCallbackI } from '../services/planner-kernel-access';
3
3
  import type { CancelSelectionReasons, Plan, PlanElement } from '../../../typings/planner';
4
+ import type { KernelPlanObjectComponent } from '../../../typings/kernel';
4
5
  import { type KernelEnum, type KernelPlanObject, type KernelVector3, type RuntimeId } from '../../../typings/kernel';
5
6
  import PlannerSceneEventHandler from './planner-scene-event-handler';
6
7
  import type { BatchPaintMaterial, RoomlePlannerCallback, SceneEvents } from '../roomle-planner';
@@ -205,5 +206,9 @@ export default class PlannerSceneManager extends ConfiguratorSceneManager implem
205
206
  protected setEventHandlerObject(object: Object3D): void;
206
207
  protected _readyForRender(): void;
207
208
  protected notifyPlannerOnComponentSelectionCancel(isExternalObject: boolean, reason: CancelSelectionReasons): void;
209
+ private _planObjectSelectionChanged;
210
+ highlightExternalObject(planObjectComponent: KernelPlanObjectComponent): void;
211
+ private _selectExternalObjectModule;
212
+ getObjectComponent(id: number): KernelPlanObjectComponent;
208
213
  }
209
214
  export {};
@@ -264,6 +264,18 @@ export interface PlanOverview {
264
264
  outsideWalls: PlanElement[];
265
265
  rooms: PlanElement[];
266
266
  }
267
+ export interface LightSourceConfiguration {
268
+ lightSourceAreaInSquareMeters: number;
269
+ minimumAreaInSquareMeters: number;
270
+ }
271
+ export interface RoomLightSourceDistribution {
272
+ ceilingId: number;
273
+ floorId: number;
274
+ positionsInPlan: PointArray;
275
+ positionsRelativeToFloor: PointArray;
276
+ }
277
+ declare class RoomLightSourceDistributionArray extends EmsArray<RoomLightSourceDistribution> {
278
+ }
267
279
  export interface PlanModelViewHelper {
268
280
  getPlanOverview(planObject: KernelObject): PlanOverview;
269
281
  getPlanObject(plan: Plan, aRuntimeId: number): KernelPlanObject;
@@ -272,6 +284,7 @@ export interface PlanModelViewHelper {
272
284
  getExternalObjectComponent(plan: Plan, groupId: string, moduleId: string): KernelPlanObjectComponent;
273
285
  getExternalComponentModuleIdsForSelection(plan: Plan, groupOrRootModuleId: string, subModuleId: string): ExternalModuleInformation;
274
286
  requestMesh3d(element: PlanElement): void;
287
+ calculateLightSourceDistribution(plan: Plan, lightSourceConfiguration: LightSourceConfiguration): RoomLightSourceDistributionArray;
275
288
  }
276
289
  export interface PlanNode extends KernelObject {
277
290
  getMaxWallHeight(): number;
@@ -295,6 +308,9 @@ export declare const enum KernelWallType {
295
308
  InnerWall = 3
296
309
  }
297
310
  export interface KernelWall extends KernelObject {
311
+ getFrom(): Node;
312
+ getTo(): Node;
313
+ getAttachedAttics(): KernelAtticArray;
298
314
  readonly thickness: number;
299
315
  readonly meshThickness: number;
300
316
  readonly isVectorWall: boolean;
@@ -306,9 +322,12 @@ export interface KernelWall extends KernelObject {
306
322
  readonly rightNormal: KernelVector3;
307
323
  getAngle: () => number;
308
324
  }
325
+ declare class KernelAtticArray extends EmsArray<KernelAttic> {
326
+ }
309
327
  export interface KernelAttic extends KernelObject {
310
328
  getFrom(): Node;
311
329
  getTo(): Node;
330
+ getAssociatedWall(): KernelWall;
312
331
  get2dPolygon(): PointArray;
313
332
  getRidgePoints(): PointArray;
314
333
  getPointsWithHeight(height: number): PointArray;
@@ -327,5 +346,5 @@ export interface PlanObjectPosition {
327
346
  runtimeId: RuntimeId;
328
347
  position2d: Position2;
329
348
  }
330
- export type CancelSelectionReasons = 'swap_object' | 'click_outside' | 'select_other' | 'double_click_wall' | 'unknown' | 'dock_component' | 'delete_object' | 'selection_mode_changed';
349
+ export type CancelSelectionReasons = 'swap_object' | 'dragIn' | 'click_outside' | 'select_other' | 'double_click_wall' | 'unknown' | 'dock_component' | 'delete_object' | 'selection_mode_changed';
331
350
  export {};
@@ -1,23 +1,30 @@
1
1
  import type { CancelSelectionReasons } from '../../typings/planner';
2
- export interface ExternalObjectGroupPosition {
3
- pos: number[];
4
- rotation?: number;
2
+ export interface ExternalObjectSegment {
3
+ cmd: string;
4
+ x: number;
5
+ y: number;
6
+ type: string;
5
7
  }
6
- export interface ExternalObjectGroup {
7
- groupId: string;
8
+ export interface ExternalObjectContour {
9
+ level: number;
10
+ segments: ExternalObjectSegment[];
11
+ }
12
+ export interface ExternalObjectGroupPosition {
8
13
  pos: number[];
9
14
  rotation?: number;
15
+ contours?: ExternalObjectContour[];
10
16
  }
11
17
  export interface ExternalObjectRootModule {
12
18
  moduleId: string;
13
19
  pos: number[];
14
20
  rotation?: number;
15
21
  }
16
- export interface ExternalObjectGroupAndModules {
17
- groupId?: string;
22
+ export interface ExternalObjectGroup {
23
+ groupId: string;
18
24
  pos: number[];
19
25
  rotation?: number;
20
- rootModules: ExternalObjectRootModule[];
26
+ rootModules?: ExternalObjectRootModule[];
27
+ contours?: ExternalObjectContour[];
21
28
  }
22
29
  export interface ExternalObjectUiCallback {
23
30
  /** "onMergeExternalObjectGroup" is invoked when a group of root modules is merged into another group of root modules.
@@ -28,7 +35,7 @@ export interface ExternalObjectUiCallback {
28
35
  * @param targetGroup The target group of root modules.
29
36
  * @param idsOfGroupsMerged The IDs of the groups merged into the target group.
30
37
  */
31
- onMergeExternalObjectGroup(targetGroup: ExternalObjectGroupAndModules, idsOfGroupsMerged: string | string[]): void;
38
+ onMergeExternalObjectGroup(targetGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[]): void;
32
39
  /**
33
40
  * "onSplitExternalObjectGroup" is invoked when one or more root modules are split from a group of root modules.
34
41
  * The split root modules form a new group, which must be assigned a new ID.
@@ -37,13 +44,13 @@ export interface ExternalObjectUiCallback {
37
44
  * @param splitGroup The original group of root modules.
38
45
  * @param newGroupedRootModules The new group of root modules.
39
46
  */
40
- onSplitExternalObjectGroup(splitGroup: ExternalObjectGroupAndModules, newGroupedRootModules: ExternalObjectGroupAndModules | ExternalObjectGroupAndModules[]): void;
47
+ onSplitExternalObjectGroup(splitGroup: ExternalObjectGroup, newGroupedRootModules: ExternalObjectGroup | ExternalObjectGroup[]): void;
41
48
  /**
42
49
  * "onExternalObjectGroupArrangementChanged" is invoked when the arrangement (position and rotation) of the root modules of a group has changed .
43
50
  * "changedGroup" contains the information about the root modules of the group.
44
51
  * @param changedGroup The new arranged group and its root modules .
45
52
  */
46
- onExternalObjectGroupArrangementChanged(changedGroup: ExternalObjectGroupAndModules): void;
53
+ onExternalObjectGroupArrangementChanged(changedGroup: ExternalObjectGroup): void;
47
54
  /**
48
55
  * "onDeleteExternalObjectGroup" is invoked when a group of root modules and all the root modules it contains are deleted.
49
56
  * The group with the ID "groupIdToDelete" is removed from the plan and is completely deleted.
@@ -62,7 +69,7 @@ export interface ExternalObjectUiCallback {
62
69
  * @param rootModuleIdToDelete The ID of the root module.
63
70
  * @param splitGroups The new groups of root modules that have been split off.
64
71
  */
65
- onDeleteExternalObjectRootModule(remainingGroup: ExternalObjectGroupAndModules, rootModuleIdToDelete: string, splitOffGroups?: ExternalObjectGroupAndModules[]): void;
72
+ onDeleteExternalObjectRootModule(remainingGroup: ExternalObjectGroup, rootModuleIdToDelete: string, splitOffGroups?: ExternalObjectGroup[]): void;
66
73
  /**
67
74
  * "onDeleteExternalObjectSubModule" is invoked when a sub module is deleted from a root module.
68
75
  * The sub module with the ID "subModuleIdToDelete" is removed from the root module with the ID "rootModuleId"
@@ -81,10 +88,16 @@ export interface ExternalObjectUiCallback {
81
88
  */
82
89
  onDuplicateExternalObjectGroup(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
83
90
  /**
84
- * “onMovedExternalObjectGroup” is invoked when a group of root modules is moved or rotated to a new position.
91
+ * “onChangedPlaningSituationForExternalObjectGroup” is invoked when a group of root modules is moved or rotated to a new position
92
+ * or when the plan itself is changed.
85
93
  * The group with the ID "group.id" is moved to the new position and orientation defined in "group".
86
94
  * @param group The group of root modules.
87
95
  */
96
+ onChangedPlaningSituationForExternalObjectGroup(group: ExternalObjectGroup): void;
97
+ /**
98
+ * @deprecated and replaced by “onChangedPlaningSituationForExternalObjectGroup”.
99
+ * @param group The group of root modules.
100
+ */
88
101
  onMovedExternalObjectGroup(group: ExternalObjectGroup): void;
89
102
  /**
90
103
  * "onExternalObjectEnvironmentChanged" is invoked when the plan (walls, doors, windows, etc.) has changed.
@@ -57,8 +57,9 @@ export interface ExternalObjectAPI {
57
57
  /**
58
58
  * "removeExternalObjectGroup" removes a group and all its modules from the plan.
59
59
  * @param groupId The ID of the group of modules.
60
+ * @param wasMerged Should be set to true if the group has been merged with another group (this is required to generate correct undo/redo steps).
60
61
  */
61
- removeExternalObjectGroup(groupId: string): Promise<void>;
62
+ removeExternalObjectGroup(groupId: string, wasMerged: boolean): Promise<void>;
62
63
  /**
63
64
  * "removeExternalObjectRootModule" removes a root module from a group and splits the remaining group if the removed root module is located between other root modules.
64
65
  * If the group consists of only one root module, the group is removed.
@@ -14,7 +14,7 @@ import type { MeasurementLineDimension, MeasurementLineDimensionTransferable } f
14
14
  import type { ConstructionMeasurementsTransferable } from './utils/measurements';
15
15
  import type { FloorAreaDataTransferable } from './view-model/floor-plan-element-view-model';
16
16
  import { type BASE_CONTEXT } from '../../common-core/src/main';
17
- import type { ExternalObjectGroup, ExternalObjectGroupAndModules, ExternalObjectGroupPosition, ExternalObjectUiCallback } from './external-object-api-callbacks';
17
+ import type { ExternalObjectGroup, ExternalObjectGroupPosition, ExternalObjectUiCallback } from './external-object-api-callbacks';
18
18
  export interface SelectionPayload {
19
19
  item?: RapiItem;
20
20
  configuration?: RapiConfiguration;
@@ -179,15 +179,15 @@ export default class RoomlePlannerUiCallback extends UiCallback implements Exter
179
179
  /**
180
180
  * documented in interface ExternalObjectUiCallback
181
181
  */
182
- onMergeExternalObjectGroup: (targetGroup: ExternalObjectGroupAndModules, idsOfGroupsMerged: string | string[]) => void;
182
+ onMergeExternalObjectGroup: (targetGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[]) => void;
183
183
  /**
184
184
  * documented in interface ExternalObjectUiCallback
185
185
  */
186
- onSplitExternalObjectGroup: (originalGroup: ExternalObjectGroupAndModules, newGroupedRootModules: ExternalObjectGroupAndModules | ExternalObjectGroupAndModules[]) => void;
186
+ onSplitExternalObjectGroup: (originalGroup: ExternalObjectGroup, newGroupedRootModules: ExternalObjectGroup | ExternalObjectGroup[]) => void;
187
187
  /**
188
188
  * documented in interface ExternalObjectUiCallback
189
189
  */
190
- onExternalObjectGroupArrangementChanged: (changedGroup: ExternalObjectGroupAndModules) => void;
190
+ onExternalObjectGroupArrangementChanged: (changedGroup: ExternalObjectGroup) => void;
191
191
  /**
192
192
  * documented in interface ExternalObjectUiCallback
193
193
  */
@@ -195,7 +195,7 @@ export default class RoomlePlannerUiCallback extends UiCallback implements Exter
195
195
  /**
196
196
  * documented in interface ExternalObjectUiCallback
197
197
  */
198
- onDeleteExternalObjectRootModule: (_remainingGroup: ExternalObjectGroupAndModules, _rootModuleIdToDelete: string, _splitOffGroups?: ExternalObjectGroupAndModules[]) => void;
198
+ onDeleteExternalObjectRootModule: (_remainingGroup: ExternalObjectGroup, _rootModuleIdToDelete: string, _splitOffGroups?: ExternalObjectGroup[]) => void;
199
199
  /**
200
200
  * documented in interface ExternalObjectUiCallback
201
201
  */
@@ -204,6 +204,10 @@ export default class RoomlePlannerUiCallback extends UiCallback implements Exter
204
204
  * documented in interface ExternalObjectUiCallback
205
205
  */
206
206
  onDuplicateExternalObjectGroup: (sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition) => void;
207
+ /**
208
+ * documented in interface ExternalObjectUiCallback
209
+ */
210
+ onChangedPlaningSituationForExternalObjectGroup: (group: ExternalObjectGroup) => void;
207
211
  /**
208
212
  * documented in interface ExternalObjectUiCallback
209
213
  */
@@ -6,7 +6,7 @@ import type { Configurator } from '../../configurator-core/src/configurator';
6
6
  import type { GlobalInitDataDefinition, InitDataDefinition } from '../../common-core/src/utils/shims';
7
7
  import type { ConfigurationString, RapiConfiguration, RapiId, RapiItem, RapiPlan, RapiPlanSnapshotGetData } from '../../typings/rapi-types';
8
8
  import type { Context } from '../../common-core/src/di/context';
9
- import type { CancelSelectionReasons, KernelObject, KernelWall, PlanInteractionHandler, PlanModelViewHelper, PlanOverview } from '../../typings/planner';
9
+ import { type CancelSelectionReasons, type KernelObject, type KernelWall, type PlanInteractionHandler, type PlanModelViewHelper, type PlanOverview } from '../../typings/planner';
10
10
  import type { KernelAccessCallbackI } from '../../common-core/src/kernel-access-callback';
11
11
  import type InitData from '../../common-core/src/utils/init-data';
12
12
  import type { CanvasOffset, Position3 } from '../../common-core/src/common-interfaces';
@@ -376,6 +376,7 @@ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlann
376
376
  resolveShortUrl(shortUrl: string): Promise<string>;
377
377
  enableEvents(): void;
378
378
  disableEvents(): void;
379
+ downloadHomagIxExportPoC(): Promise<any>;
379
380
  configureExternalObjectApi(configurationJson: string | ExternalObjectApiConfiguration): Promise<void>;
380
381
  loadExternalObjectLibrary(libraryJson: string | object): void;
381
382
  loadExternalObjectGroup(groupJson: string | object, findFreeSpaceInPlan: boolean, verifyArrangement?: boolean): Promise<void>;
@@ -383,7 +384,7 @@ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlann
383
384
  renderImagesOfExternalObjectGroup(groupsJson: string | object): Promise<{
384
385
  [key: string]: string;
385
386
  }>;
386
- removeExternalObjectGroup(groupId: string): Promise<void>;
387
+ removeExternalObjectGroup(groupId: string, wasMerged?: boolean): Promise<void>;
387
388
  removeExternalObjectRootModule(rootModuleId: string): void;
388
389
  selectExternalObjectGroup(groupId: string): Promise<void>;
389
390
  selectExternalObjectRootModule(rootModuleId: string): Promise<void>;
@@ -391,7 +392,9 @@ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlann
391
392
  openOrCloseGeometryOfExternalObject(groupIdOrRootModuleId: string, subModuleId: string | null, open: boolean, animate: boolean): Promise<void>;
392
393
  private _selectKernelComponent;
393
394
  _selectExternalObjectGroup(groupId: string, switchToPlanner: boolean): Promise<void>;
394
- _selectExternalObjectModule(rootModuleId: string, subModuleId: string | null, selectPlanObject: boolean, switchToConfigurator: boolean, selectComponent: boolean): Promise<void>;
395
+ _selectExternalObjectModule(rootModuleId: string, subModuleId: string | null, selectPlanObject: boolean, switchToConfigurator: boolean, selectComponent: boolean, highlightSelection: boolean): Promise<void>;
396
+ private _selectPlanObject;
397
+ private _getSelectedPlanObjectComponent;
395
398
  /**
396
399
  * @internal
397
400
  * Use this callbacks to hook in your functionality
@@ -6,7 +6,7 @@ import type RoomlePlannerUiCallback from '../roomle-planner-ui-callback';
6
6
  import type PlanElementViewModel from '../../../common-core/src/view-model/plan-element-view-model';
7
7
  import type { Position3 } from '../../../common-core/src/common-interfaces';
8
8
  import ConfiguratorKernelAccess from '../../../common-core/src/configurator-kernel-access';
9
- import type { ExternalObjectGroup, ExternalObjectGroupAndModules, ExternalObjectGroupPosition } from '../external-object-api-callbacks';
9
+ import type { ExternalObjectGroup, ExternalObjectGroupPosition } from '../external-object-api-callbacks';
10
10
  export interface PlannerKernelCallbackI {
11
11
  handlerSwitchedPlans(fromPlan: Plan, toPlan: Plan): void;
12
12
  planCompletelyLoaded(plan: Plan): void;
@@ -67,12 +67,12 @@ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
67
67
  externalObjectConfigurationChanged(plan: Plan, planObject: PlanObject, configuration: string): void;
68
68
  externalObjectConfigurationLoaded(plan: Plan, planObject: PlanObject, configuration: string): void;
69
69
  externalObjectConfigurationDeleted(plan: Plan, planObject: PlanObject, uniqueId: string): void;
70
- externalObjectComponentDeleted(plan: Plan, planObject: PlanObject, remainingGroupOrGroups: ExternalObjectGroupAndModules | ExternalObjectGroupAndModules[], deletedRootModuleId: string): void;
70
+ externalObjectComponentDeleted(plan: Plan, planObject: PlanObject, remainingGroupOrGroups: ExternalObjectGroup | ExternalObjectGroup[], deletedRootModuleId: string): void;
71
71
  externalObjectConfigurationDuplicated(plan: Plan, planObject: PlanObject, sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
72
- externalObjectConfigurationMoved(plan: Plan, planObject: PlanObject, movedGroup: ExternalObjectGroup): void;
73
- externalObjectConfigurationsMerged(plan: Plan, planObject: PlanObject, mergedGroup: ExternalObjectGroupAndModules, sourceGroupId: string): void;
74
- externalObjectComponentSplitOff(plan: Plan, planObject: PlanObject, splitGroups: ExternalObjectGroupAndModules[]): void;
75
- externalObjectArrangementChanged(plan: Plan, planObject: PlanObject, changedGroup: ExternalObjectGroupAndModules): void;
72
+ externalObjectPlaningSituationChanged(plan: Plan, planObject: PlanObject, movedGroup: ExternalObjectGroup): void;
73
+ externalObjectConfigurationsMerged(plan: Plan, planObject: PlanObject, mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[]): void;
74
+ externalObjectComponentSplitOff(plan: Plan, planObject: PlanObject, splitGroups: ExternalObjectGroup[]): void;
75
+ externalObjectArrangementChanged(plan: Plan, planObject: PlanObject, changedGroup: ExternalObjectGroup): void;
76
76
  planObjectConfigurationLoaded(plan: Plan, element: PlanElement, success: boolean): Promise<void>;
77
77
  requestCatalogItem(catalogItemId: string): void;
78
78
  startedDrawing(): void;
@@ -95,12 +95,12 @@ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
95
95
  protected _externalObjectConfigurationChanged(objectId: number, configuration: string): void;
96
96
  protected _externalObjectConfigurationLoaded(objectId: number, configuration: string): void;
97
97
  protected _externalObjectConfigurationDeleted(groupId: string): void;
98
- protected _externalObjectComponentDeleted(remainingGroupOrGroups: ExternalObjectGroupAndModules | ExternalObjectGroupAndModules[], deletedRootModuleId: string): void;
98
+ protected _externalObjectComponentDeleted(remainingGroupOrGroups: ExternalObjectGroup | ExternalObjectGroup[], deletedRootModuleId: string): void;
99
99
  _externalObjectConfigurationDuplicated(sourceGroupId: string, newGroupPosition: ExternalObjectGroupPosition): void;
100
- _externalObjectConfigurationsMoved(movedGroup: ExternalObjectGroup): void;
101
- _externalObjectConfigurationsMerged(mergedGroup: ExternalObjectGroupAndModules, sourceGroupId: string): void;
102
- _externalObjectComponentSplitOff(splitGroups: ExternalObjectGroupAndModules[]): void;
103
- _externalObjectArrangementChanged(changedGroup: ExternalObjectGroupAndModules): void;
100
+ _externalObjectPlaningSituationChanged(movedGroup: ExternalObjectGroup): void;
101
+ _externalObjectConfigurationsMerged(mergedGroup: ExternalObjectGroup, idsOfGroupsMerged: string | string[]): void;
102
+ _externalObjectComponentSplitOff(splitGroups: ExternalObjectGroup[]): void;
103
+ _externalObjectArrangementChanged(changedGroup: ExternalObjectGroup): void;
104
104
  planSnapshotCreated(planSnapshot: RapiPlanSnapshotPostData): void;
105
105
  requestDeleteComponents(componentIds: number[]): void;
106
106
  requestDeleteComponent(componentId: number): void;
@@ -3,5 +3,5 @@ import type { PlanObjectPosition } from '../../../typings/planner';
3
3
  import type { Camera } from 'three';
4
4
  import type PlanElementViewModel from '../../../common-core/src/view-model/plan-element-view-model';
5
5
  export declare const createTransferableObjectPosition: (planViewModel: PlanObjectViewModel | PlanElementViewModel, camera: Camera, clientWidth: number, clientHeight: number) => PlanObjectPosition;
6
- export type CallbackObjectType = 'static' | 'configuration' | 'wall' | 'measure' | 'door' | 'floor' | 'window' | 'unknown';
6
+ export type CallbackObjectType = 'static' | 'configuration' | 'wall' | 'measure' | 'door' | 'floor' | 'window' | 'unknown' | 'external-configuration';
7
7
  export declare const getCallbackObjectType: (planElementViewModel: PlanElementViewModel) => CallbackObjectType;
@@ -54,6 +54,7 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
54
54
  addPlanElementViewModel(planElementViewModel: PlanElementViewModel): void;
55
55
  private _handleConfiguratorPlanObjectViewModel;
56
56
  private _linkPlanObjectViewModelAndComponent;
57
+ private _detachPlanObjectViewModelFromComponent;
57
58
  private _handleConfiguratorConstructionPlanObjectViewModel;
58
59
  private _handleConstructionPlanObjectViewModel;
59
60
  private _handleStaticPlanObjectViewModel;
@@ -1,6 +1,7 @@
1
1
  import type { Base64Image, CanvasOffset } from '../../../common-core/src/common-interfaces';
2
2
  import type { PlannerKernelCallbackI } from '../services/planner-kernel-access';
3
3
  import type { CancelSelectionReasons, Plan, PlanElement } from '../../../typings/planner';
4
+ import type { KernelPlanObjectComponent } from '../../../typings/kernel';
4
5
  import { type KernelEnum, type KernelPlanObject, type KernelVector3, type RuntimeId } from '../../../typings/kernel';
5
6
  import PlannerSceneEventHandler from './planner-scene-event-handler';
6
7
  import type { BatchPaintMaterial, RoomlePlannerCallback, SceneEvents } from '../roomle-planner';
@@ -205,5 +206,9 @@ export default class PlannerSceneManager extends ConfiguratorSceneManager implem
205
206
  protected setEventHandlerObject(object: Object3D): void;
206
207
  protected _readyForRender(): void;
207
208
  protected notifyPlannerOnComponentSelectionCancel(isExternalObject: boolean, reason: CancelSelectionReasons): void;
209
+ private _planObjectSelectionChanged;
210
+ highlightExternalObject(planObjectComponent: KernelPlanObjectComponent): void;
211
+ private _selectExternalObjectModule;
212
+ getObjectComponent(id: number): KernelPlanObjectComponent;
208
213
  }
209
214
  export {};
@@ -264,6 +264,18 @@ export interface PlanOverview {
264
264
  outsideWalls: PlanElement[];
265
265
  rooms: PlanElement[];
266
266
  }
267
+ export interface LightSourceConfiguration {
268
+ lightSourceAreaInSquareMeters: number;
269
+ minimumAreaInSquareMeters: number;
270
+ }
271
+ export interface RoomLightSourceDistribution {
272
+ ceilingId: number;
273
+ floorId: number;
274
+ positionsInPlan: PointArray;
275
+ positionsRelativeToFloor: PointArray;
276
+ }
277
+ declare class RoomLightSourceDistributionArray extends EmsArray<RoomLightSourceDistribution> {
278
+ }
267
279
  export interface PlanModelViewHelper {
268
280
  getPlanOverview(planObject: KernelObject): PlanOverview;
269
281
  getPlanObject(plan: Plan, aRuntimeId: number): KernelPlanObject;
@@ -272,6 +284,7 @@ export interface PlanModelViewHelper {
272
284
  getExternalObjectComponent(plan: Plan, groupId: string, moduleId: string): KernelPlanObjectComponent;
273
285
  getExternalComponentModuleIdsForSelection(plan: Plan, groupOrRootModuleId: string, subModuleId: string): ExternalModuleInformation;
274
286
  requestMesh3d(element: PlanElement): void;
287
+ calculateLightSourceDistribution(plan: Plan, lightSourceConfiguration: LightSourceConfiguration): RoomLightSourceDistributionArray;
275
288
  }
276
289
  export interface PlanNode extends KernelObject {
277
290
  getMaxWallHeight(): number;
@@ -295,6 +308,9 @@ export declare const enum KernelWallType {
295
308
  InnerWall = 3
296
309
  }
297
310
  export interface KernelWall extends KernelObject {
311
+ getFrom(): Node;
312
+ getTo(): Node;
313
+ getAttachedAttics(): KernelAtticArray;
298
314
  readonly thickness: number;
299
315
  readonly meshThickness: number;
300
316
  readonly isVectorWall: boolean;
@@ -306,9 +322,12 @@ export interface KernelWall extends KernelObject {
306
322
  readonly rightNormal: KernelVector3;
307
323
  getAngle: () => number;
308
324
  }
325
+ declare class KernelAtticArray extends EmsArray<KernelAttic> {
326
+ }
309
327
  export interface KernelAttic extends KernelObject {
310
328
  getFrom(): Node;
311
329
  getTo(): Node;
330
+ getAssociatedWall(): KernelWall;
312
331
  get2dPolygon(): PointArray;
313
332
  getRidgePoints(): PointArray;
314
333
  getPointsWithHeight(height: number): PointArray;
@@ -327,5 +346,5 @@ export interface PlanObjectPosition {
327
346
  runtimeId: RuntimeId;
328
347
  position2d: Position2;
329
348
  }
330
- export type CancelSelectionReasons = 'swap_object' | 'click_outside' | 'select_other' | 'double_click_wall' | 'unknown' | 'dock_component' | 'delete_object' | 'selection_mode_changed';
349
+ export type CancelSelectionReasons = 'swap_object' | 'dragIn' | 'click_outside' | 'select_other' | 'double_click_wall' | 'unknown' | 'dock_component' | 'delete_object' | 'selection_mode_changed';
331
350
  export {};
@@ -0,0 +1,2 @@
1
+ import{aX as normalizeRotation,H as dispose,_ as __decorate,i as inject,j as AsyncGuard,aY as AsyncDependencyLoader,ac as convertToTHREE}from"./roomle-dependency-injection-91bf1e95.js";import{O as Object3D,a as Vector3,h as MeshBasicMaterial,w as DoubleSide,bo as MeshPhongMaterial,B as BufferGeometry,z as Mesh,Q as Quaternion,b9 as PlaneGeometry,K as Group,u as LineBasicMaterial,G as Line,b as BufferAttribute,bL as Line3,ad as Box3}from"./main-thread-to-worker-352ff4b1.js";import{T as TextGeometry}from"./TextGeometry-dc304c0e.js";const PLANE_MATERIAL="component_dimensioning_plane_material",TEXT_MATERIAL="component_dimensioning_text_material";class TextWithBackground extends Object3D{constructor(e){super(),this._label="",this._parameters={font:null,size:.1,depth:.001,curveSegments:2,bevelEnabled:!0,bevelThickness:.001,bevelSize:.001},this.topDown=!1,this._parameters.font=e,this._position=new Vector3,this._initMaterials(),this._init(),this._update()}_initMaterials(){this._cacheHolder.materialCache.has(PLANE_MATERIAL)?this._planeMaterial=this._cacheHolder.materialCache.get(PLANE_MATERIAL):(this._planeMaterial=new MeshBasicMaterial({color:16777215,side:DoubleSide,opacity:.8,transparent:!0}),this._cacheHolder.materialCache.set(PLANE_MATERIAL,this._planeMaterial)),this._cacheHolder.materialCache.has(TEXT_MATERIAL)?this._textMaterial=this._cacheHolder.materialCache.get(TEXT_MATERIAL):(this._textMaterial=new MeshPhongMaterial({color:3618615}),this._cacheHolder.materialCache.set(TEXT_MATERIAL,this._textMaterial))}_init(){let e=new BufferGeometry;this._text=new Mesh(e,this._textMaterial),this._text.userData.ignoreComponentRaycast=!0,this._text.name="text with background text "+this._label,this._plane=new Mesh(e,this._planeMaterial),this._plane.userData.ignoreComponentRaycast=!0,this._plane.name="text with background plane "+this._label,this._textGeometry=new TextGeometry(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this.add(this._text),this.add(this._plane)}update(e,t,i){this._position.copy(e),this._cameraPosition=i,this._label=t;const s=this.getWorldPosition(new Vector3),n=this._cameraPosition.distanceTo(s),o=Math.max(.01,n/150),h=Math.max(5e-4,n/5e3);this._parameters.bevelThickness=h,this._parameters.bevelSize=h,this._parameters.size=o,this._textGeometry=new TextGeometry(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this._update()}_update(){if(this.topDown){let e=new Quaternion;e.setFromAxisAngle(new Vector3(-1,0,0),Math.PI/2),this._updateText(this._textGeometry,e,new Vector3)}else if(this._updateText(this._textGeometry,new Quaternion,new Vector3),this._cameraPosition){const e=this.getWorldPosition(new Vector3),t=normalizeRotation(Math.atan2(this._cameraPosition.x-e.x,this._cameraPosition.z-e.z)-this.parent.rotation.y);this._text.rotation.y=t,this._plane.rotation.y=t}}_updateText(e,t,i){let s=new Vector3;s.copy(this._position),i.x*=this._getXSign(),s.add(i);let n=e.boundingBox.getSize(new Vector3);e.center(),this._text.position.copy(s),t&&this._text.quaternion.copy(t);let o=new PlaneGeometry(n.x+.02,n.y+.02,32);o.center(),this._plane.geometry=o,this._plane.position.copy(s),t&&this._plane.quaternion.copy(t)}_getXSign(){return!this._cameraPosition||this._cameraPosition.x>=0?1:-1}dispose(){dispose(this)}}__decorate([inject],TextWithBackground.prototype,"_cacheHolder",void 0);class DimensioningHelper{constructor(e){this._objectRotation=0,this._cameraPosition=new Vector3,this._topDimensions=!1,this._initialized=new AsyncGuard,this._enabled=!1,this._dimensionsVisible=!1,this._dimensionLineGroup=new Group,this._dimensionTextGroup=new Object3D,this._creator_=e,this._lineMaterial=new LineBasicMaterial({color:3618615,linewidth:2});let t=new BufferGeometry;this._widthLine=new Line(t,this._lineMaterial),this._widthLine.userData.ignoreComponentRaycast=!0,this._widthLine.name="dimension width line",this._dimensionLineGroup.add(this._widthLine),this._heightLine=new Line(t,this._lineMaterial),this._heightLine.userData.ignoreComponentRaycast=!0,this._heightLine.name="dimension height line",this._dimensionLineGroup.add(this._heightLine),this._depthLine=new Line(t,this._lineMaterial),this._depthLine.userData.ignoreComponentRaycast=!0,this._depthLine.name="dimension depth line",this._dimensionLineGroup.add(this._depthLine),this._planeMaterial=new MeshBasicMaterial({color:16777215,side:DoubleSide,opacity:.8,transparent:!0}),AsyncDependencyLoader.loadFont("static/lato_regular_sub-9dd2262895ccc1a9.json").then(e=>{this._font=e,this._loaded()})}_loaded(){this.update(!1),this.addToObject(this._object),this.addToUiScene(this._uiScene),this._initialized.resolve()}_performUpdate(e){this._enabled&&(this._dimensions||e)&&this._font&&(this._updateHeight(),this._updateWidth(),this._updateDepth())}_updateWidth(){let e=new BufferGeometry,t=this._getWidthEdge(),i=[t.start.x,t.start.y,t.start.z,t.end.x,t.end.y,t.end.z];e.setAttribute("position",new BufferAttribute(new Float32Array(i),3)),this._widthLine.geometry.dispose(),this._widthLine.geometry=e;let s=t.getCenter(new Vector3);this._widthText||(this._widthText=new TextWithBackground(this._font),this._dimensionTextGroup.add(this._widthText)),this._widthText.topDown=this._topDimensions;const n=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.x);this._widthText.update(s,n,this._cameraPosition)}_updateHeight(){let e=new BufferGeometry,t=this._getHeightEdge(),i=[t.start.x,t.start.y,t.start.z,t.end.x,t.end.y,t.end.z];e.setAttribute("position",new BufferAttribute(new Float32Array(i),3)),this._heightLine.geometry.dispose(),this._heightLine.geometry=e;let s=t.getCenter(new Vector3);this._heightText||(this._heightText=new TextWithBackground(this._font),this._dimensionTextGroup.add(this._heightText)),this._heightText.topDown=this._topDimensions;const n=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.y);this._heightText.update(s,n,this._cameraPosition)}_updateDepth(){let e=new BufferGeometry,t=this._getDepthEdge(),i=[t.start.x,t.start.y,t.start.z,t.end.x,t.end.y,t.end.z];e.setAttribute("position",new BufferAttribute(new Float32Array(i),3)),this._depthLine.geometry.dispose(),this._depthLine.geometry=e;let s=t.getCenter(new Vector3);this._depthText||(this._depthText=new TextWithBackground(this._font),this._dimensionTextGroup.add(this._depthText)),this._depthText.topDown=this._topDimensions;const n=this._unitFormatter.formatMMValueToUnitString(-1e3*this._dimensions.z);this._depthText.update(s,n,this._cameraPosition)}updateSize(e){this._origin=convertToTHREE(e.origin),this._dimensionLineGroup.position.x=this._origin.x-this._object.position.x,this._dimensionLineGroup.position.y=this._origin.y-this._object.position.y,this._dimensionLineGroup.position.z=this._origin.z-this._object.position.z,this._dimensions=convertToTHREE(e.size);const t=this._dimensionLineGroup.localToWorld(new Vector3);this._dimensionTextGroup.position.copy(t),this.update()}update(e=!1){this._enabled&&!this._dimensionsVisible&&(this._dimensionsVisible=!0,this._visibilityChangedCallback()),this._performUpdate(e)}addToObject(e){this._widthText&&this._widthLine&&this._heightText&&this._heightLine&&this._heightText&&this._heightLine&&e.add(this._dimensionLineGroup)}removeFromObject(e){e.remove(this._dimensionLineGroup),this.update()}addToUiScene(e){if(!(this._widthText&&this._heightText&&this._depthText&&this._object))return;const t=this._dimensionLineGroup.localToWorld(new Vector3);this._dimensionTextGroup.position.copy(t),this._dimensionTextGroup.rotation.y=this._objectRotation,e.add(this._dimensionTextGroup),this.update()}removeFromUiScene(e){e.remove(this._dimensionTextGroup),this.update()}_getWidthEdge(){const e=this._getRotation();return e>Math.PI/2||e<-Math.PI/2?new Line3(new Vector3(-.05,0,this._dimensions.z-.05),new Vector3(this._dimensions.x+.05,0,this._dimensions.z-.05)):new Line3(new Vector3(-.05,0,.05),new Vector3(this._dimensions.x+.05,0,.05))}_getDepthEdge(){return this._getRotation()>0?new Line3(new Vector3(.05+this._dimensions.x,0,.05),new Vector3(.05+this._dimensions.x,0,this._dimensions.z-.05)):new Line3(new Vector3(-.05,0,.05),new Vector3(-.05,0,this._dimensions.z-.05))}_getHeightEdge(){const e=this._getRotation();return e>0&&e<Math.PI/2?new Line3(new Vector3(-.05,0,.05),new Vector3(-.05,this._dimensions.y+.05,.05)):e>Math.PI/2?new Line3(new Vector3(-.05,0,this._dimensions.z-.05),new Vector3(-.05,this._dimensions.y+.05,this._dimensions.z-.05)):e<-Math.PI/2?new Line3(new Vector3(.05+this._dimensions.x,0,this._dimensions.z-.05),new Vector3(.05+this._dimensions.x,this._dimensions.y+.05,this._dimensions.z-.05)):new Line3(new Vector3(.05+this._dimensions.x,0,.05),new Vector3(.05+this._dimensions.x,this._dimensions.y+.05,.05))}onDimensionsVisibilityChanged(e){this._onChange=e}enableTopDimensions(){this._topDimensions=!0,this.enableDimensions(),this._heightLine.visible=!1,this._heightText.visible=!1,this.update(!0)}disableTopDimensions(){this._topDimensions=!1,this._heightLine.visible=!0,this._heightText.visible=!0,this.disableDimensions()}enableDimensions(){this._enabled=!0,this.update(!0),this.addToObject(this._object),this.addToUiScene(this._uiScene)}disableDimensions(){this._enabled=!1,this._dimensionsVisible&&(this._dimensionsVisible=!1,this._visibilityChangedCallback()),this.removeFromUiScene(this._uiScene),this.removeFromObject(this._object)}_visibilityChangedCallback(){this._onChange&&this._onChange(this._dimensionsVisible)}_clear(){this._lineMaterial.dispose(),this._planeMaterial.dispose(),this._widthLine.geometry.dispose(),this._heightLine.geometry.dispose(),this._depthLine.geometry.dispose(),this._heightText.dispose(),this._heightText.dispose(),this._depthText.dispose()}getBoundingBox(){const e=new Box3;return e.expandByObject(this._widthLine),e.expandByObject(this._widthText),e.expandByObject(this._heightLine),e.expandByObject(this._heightText),e.expandByObject(this._depthLine),e.expandByObject(this._depthText),e}setVisibility(e){this._dimensionLineGroup&&this._dimensionTextGroup&&(this._dimensionLineGroup.visible=e,this._dimensionTextGroup.visible=e)}moveCameraStart(e){this.setVisibility(!1),this._cameraPosition=e,this.update()}moveCameraEnd(e){this.setVisibility(!0),this._cameraPosition=e,this.update()}clearScene(e){this._clear()}setObject(e,t=0){this._object=e,this._objectRotation=t}setUiScene(e){this._uiScene=e}isInitialized(){return this._initialized.wait()}areDimensionsEnabled(){return this._enabled}_getRotation(){const e=this._object.getWorldPosition(new Vector3);return normalizeRotation(Math.atan2(this._cameraPosition.x-e.x,this._cameraPosition.z-e.z)-this._objectRotation)}}__decorate([inject],DimensioningHelper.prototype,"_unitFormatter",void 0);export{DimensioningHelper as default};
2
+ //# sourceMappingURL=dimensioning-helper-940e213e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dimensioning-helper-b578c929.js","sources":["../../packages/configurator-core/public/fonts/lato_regular_sub.json"],"sourcesContent":["export default \"static/lato_regular_sub-9dd2262895ccc1a9.json\""],"names":[],"mappings":"w7IAAe"}
1
+ {"version":3,"file":"dimensioning-helper-940e213e.js","sources":["../../packages/configurator-core/public/fonts/lato_regular_sub.json"],"sourcesContent":["export default \"static/lato_regular_sub-9dd2262895ccc1a9.json\""],"names":[],"mappings":"u7IAAe"}
@@ -0,0 +1,2 @@
1
+ System.register(["./roomle-dependency-injection-0758cad6.nomodule.js","./main-thread-to-worker-7f1cb5ea.nomodule.js","./TextGeometry-259292ec.nomodule.js"],(function(t){var i,e,s,n,h,o,a,_,d,r,p,m,l,c,x,u,g,w,b,y,T,L,z;return{setters:[function(t){i=t.aX,e=t.H,s=t._,n=t.i,h=t.j,o=t.aY,a=t.ac},function(t){_=t.O,d=t.a,r=t.h,p=t.w,m=t.bo,l=t.B,c=t.z,x=t.Q,u=t.b9,g=t.K,w=t.u,b=t.G,y=t.b,T=t.bL,L=t.ad},function(t){z=t.T}],execute:function(){const G="component_dimensioning_plane_material",M="component_dimensioning_text_material";class j extends _{constructor(t){super(),this._label="",this._parameters={font:null,size:.1,depth:.001,curveSegments:2,bevelEnabled:!0,bevelThickness:.001,bevelSize:.001},this.topDown=!1,this._parameters.font=t,this._position=new d,this._initMaterials(),this._init(),this._update()}_initMaterials(){this._cacheHolder.materialCache.has(G)?this._planeMaterial=this._cacheHolder.materialCache.get(G):(this._planeMaterial=new r({color:16777215,side:p,opacity:.8,transparent:!0}),this._cacheHolder.materialCache.set(G,this._planeMaterial)),this._cacheHolder.materialCache.has(M)?this._textMaterial=this._cacheHolder.materialCache.get(M):(this._textMaterial=new m({color:3618615}),this._cacheHolder.materialCache.set(M,this._textMaterial))}_init(){let t=new l;this._text=new c(t,this._textMaterial),this._text.userData.ignoreComponentRaycast=!0,this._text.name="text with background text "+this._label,this._plane=new c(t,this._planeMaterial),this._plane.userData.ignoreComponentRaycast=!0,this._plane.name="text with background plane "+this._label,this._textGeometry=new z(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this.add(this._text),this.add(this._plane)}update(t,i,e){this._position.copy(t),this._cameraPosition=e,this._label=i;const s=this.getWorldPosition(new d),n=this._cameraPosition.distanceTo(s),h=Math.max(.01,n/150),o=Math.max(5e-4,n/5e3);this._parameters.bevelThickness=o,this._parameters.bevelSize=o,this._parameters.size=h,this._textGeometry=new z(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this._update()}_update(){if(this.topDown){let t=new x;t.setFromAxisAngle(new d(-1,0,0),Math.PI/2),this._updateText(this._textGeometry,t,new d)}else if(this._updateText(this._textGeometry,new x,new d),this._cameraPosition){const t=this.getWorldPosition(new d),e=i(Math.atan2(this._cameraPosition.x-t.x,this._cameraPosition.z-t.z)-this.parent.rotation.y);this._text.rotation.y=e,this._plane.rotation.y=e}}_updateText(t,i,e){let s=new d;s.copy(this._position),e.x*=this._getXSign(),s.add(e);let n=t.boundingBox.getSize(new d);t.center(),this._text.position.copy(s),i&&this._text.quaternion.copy(i);let h=new u(n.x+.02,n.y+.02,32);h.center(),this._plane.geometry=h,this._plane.position.copy(s),i&&this._plane.quaternion.copy(i)}_getXSign(){return!this._cameraPosition||this._cameraPosition.x>=0?1:-1}dispose(){e(this)}}s([n],j.prototype,"_cacheHolder",void 0);class D{constructor(t){this._objectRotation=0,this._cameraPosition=new d,this._topDimensions=!1,this._initialized=new h,this._enabled=!1,this._dimensionsVisible=!1,this._dimensionLineGroup=new g,this._dimensionTextGroup=new _,this._creator_=t,this._lineMaterial=new w({color:3618615,linewidth:2});let i=new l;this._widthLine=new b(i,this._lineMaterial),this._widthLine.userData.ignoreComponentRaycast=!0,this._widthLine.name="dimension width line",this._dimensionLineGroup.add(this._widthLine),this._heightLine=new b(i,this._lineMaterial),this._heightLine.userData.ignoreComponentRaycast=!0,this._heightLine.name="dimension height line",this._dimensionLineGroup.add(this._heightLine),this._depthLine=new b(i,this._lineMaterial),this._depthLine.userData.ignoreComponentRaycast=!0,this._depthLine.name="dimension depth line",this._dimensionLineGroup.add(this._depthLine),this._planeMaterial=new r({color:16777215,side:p,opacity:.8,transparent:!0}),o.loadFont("static/lato_regular_sub-9dd2262895ccc1a9.json").then(t=>{this._font=t,this._loaded()})}_loaded(){this.update(!1),this.addToObject(this._object),this.addToUiScene(this._uiScene),this._initialized.resolve()}_performUpdate(t){this._enabled&&(this._dimensions||t)&&this._font&&(this._updateHeight(),this._updateWidth(),this._updateDepth())}_updateWidth(){let t=new l,i=this._getWidthEdge(),e=[i.start.x,i.start.y,i.start.z,i.end.x,i.end.y,i.end.z];t.setAttribute("position",new y(new Float32Array(e),3)),this._widthLine.geometry.dispose(),this._widthLine.geometry=t;let s=i.getCenter(new d);this._widthText||(this._widthText=new j(this._font),this._dimensionTextGroup.add(this._widthText)),this._widthText.topDown=this._topDimensions;const n=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.x);this._widthText.update(s,n,this._cameraPosition)}_updateHeight(){let t=new l,i=this._getHeightEdge(),e=[i.start.x,i.start.y,i.start.z,i.end.x,i.end.y,i.end.z];t.setAttribute("position",new y(new Float32Array(e),3)),this._heightLine.geometry.dispose(),this._heightLine.geometry=t;let s=i.getCenter(new d);this._heightText||(this._heightText=new j(this._font),this._dimensionTextGroup.add(this._heightText)),this._heightText.topDown=this._topDimensions;const n=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.y);this._heightText.update(s,n,this._cameraPosition)}_updateDepth(){let t=new l,i=this._getDepthEdge(),e=[i.start.x,i.start.y,i.start.z,i.end.x,i.end.y,i.end.z];t.setAttribute("position",new y(new Float32Array(e),3)),this._depthLine.geometry.dispose(),this._depthLine.geometry=t;let s=i.getCenter(new d);this._depthText||(this._depthText=new j(this._font),this._dimensionTextGroup.add(this._depthText)),this._depthText.topDown=this._topDimensions;const n=this._unitFormatter.formatMMValueToUnitString(-1e3*this._dimensions.z);this._depthText.update(s,n,this._cameraPosition)}updateSize(t){this._origin=a(t.origin),this._dimensionLineGroup.position.x=this._origin.x-this._object.position.x,this._dimensionLineGroup.position.y=this._origin.y-this._object.position.y,this._dimensionLineGroup.position.z=this._origin.z-this._object.position.z,this._dimensions=a(t.size);const i=this._dimensionLineGroup.localToWorld(new d);this._dimensionTextGroup.position.copy(i),this.update()}update(t=!1){this._enabled&&!this._dimensionsVisible&&(this._dimensionsVisible=!0,this._visibilityChangedCallback()),this._performUpdate(t)}addToObject(t){this._widthText&&this._widthLine&&this._heightText&&this._heightLine&&this._heightText&&this._heightLine&&t.add(this._dimensionLineGroup)}removeFromObject(t){t.remove(this._dimensionLineGroup),this.update()}addToUiScene(t){if(!(this._widthText&&this._heightText&&this._depthText&&this._object))return;const i=this._dimensionLineGroup.localToWorld(new d);this._dimensionTextGroup.position.copy(i),this._dimensionTextGroup.rotation.y=this._objectRotation,t.add(this._dimensionTextGroup),this.update()}removeFromUiScene(t){t.remove(this._dimensionTextGroup),this.update()}_getWidthEdge(){const t=this._getRotation();return t>Math.PI/2||t<-Math.PI/2?new T(new d(-.05,0,this._dimensions.z-.05),new d(this._dimensions.x+.05,0,this._dimensions.z-.05)):new T(new d(-.05,0,.05),new d(this._dimensions.x+.05,0,.05))}_getDepthEdge(){return this._getRotation()>0?new T(new d(.05+this._dimensions.x,0,.05),new d(.05+this._dimensions.x,0,this._dimensions.z-.05)):new T(new d(-.05,0,.05),new d(-.05,0,this._dimensions.z-.05))}_getHeightEdge(){const t=this._getRotation();return t>0&&t<Math.PI/2?new T(new d(-.05,0,.05),new d(-.05,this._dimensions.y+.05,.05)):t>Math.PI/2?new T(new d(-.05,0,this._dimensions.z-.05),new d(-.05,this._dimensions.y+.05,this._dimensions.z-.05)):t<-Math.PI/2?new T(new d(.05+this._dimensions.x,0,this._dimensions.z-.05),new d(.05+this._dimensions.x,this._dimensions.y+.05,this._dimensions.z-.05)):new T(new d(.05+this._dimensions.x,0,.05),new d(.05+this._dimensions.x,this._dimensions.y+.05,.05))}onDimensionsVisibilityChanged(t){this._onChange=t}enableTopDimensions(){this._topDimensions=!0,this.enableDimensions(),this._heightLine.visible=!1,this._heightText.visible=!1,this.update(!0)}disableTopDimensions(){this._topDimensions=!1,this._heightLine.visible=!0,this._heightText.visible=!0,this.disableDimensions()}enableDimensions(){this._enabled=!0,this.update(!0),this.addToObject(this._object),this.addToUiScene(this._uiScene)}disableDimensions(){this._enabled=!1,this._dimensionsVisible&&(this._dimensionsVisible=!1,this._visibilityChangedCallback()),this.removeFromUiScene(this._uiScene),this.removeFromObject(this._object)}_visibilityChangedCallback(){this._onChange&&this._onChange(this._dimensionsVisible)}_clear(){this._lineMaterial.dispose(),this._planeMaterial.dispose(),this._widthLine.geometry.dispose(),this._heightLine.geometry.dispose(),this._depthLine.geometry.dispose(),this._heightText.dispose(),this._heightText.dispose(),this._depthText.dispose()}getBoundingBox(){const t=new L;return t.expandByObject(this._widthLine),t.expandByObject(this._widthText),t.expandByObject(this._heightLine),t.expandByObject(this._heightText),t.expandByObject(this._depthLine),t.expandByObject(this._depthText),t}setVisibility(t){this._dimensionLineGroup&&this._dimensionTextGroup&&(this._dimensionLineGroup.visible=t,this._dimensionTextGroup.visible=t)}moveCameraStart(t){this.setVisibility(!1),this._cameraPosition=t,this.update()}moveCameraEnd(t){this.setVisibility(!0),this._cameraPosition=t,this.update()}clearScene(t){this._clear()}setObject(t,i=0){this._object=t,this._objectRotation=i}setUiScene(t){this._uiScene=t}isInitialized(){return this._initialized.wait()}areDimensionsEnabled(){return this._enabled}_getRotation(){const t=this._object.getWorldPosition(new d);return i(Math.atan2(this._cameraPosition.x-t.x,this._cameraPosition.z-t.z)-this._objectRotation)}}t("default",D),s([n],D.prototype,"_unitFormatter",void 0)}}}));
2
+ //# sourceMappingURL=dimensioning-helper-c90a2e59.nomodule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimensioning-helper-c90a2e59.nomodule.js","sources":["../../packages/configurator-core/public/fonts/lato_regular_sub.json"],"sourcesContent":["export default \"static/lato_regular_sub-9dd2262895ccc1a9.json\""],"names":[],"mappings":"u4HAAe"}
@@ -1,2 +1,2 @@
1
- System.register(["./script-loader-184e3f9c.nomodule.js","./roomle-dependency-injection-18c33055.nomodule.js","./camera-behaviour-ca49ab38.nomodule.js","./main-thread-to-worker-2529fa31.nomodule.js","./default-light-setting-dc41f88c.nomodule.js","./glb-viewer-camera-behaviour-3d4a8906.nomodule.js","./query-params-helper-51a53f8c.nomodule.js"],(function(e){var t,r,i,a,n,s,o,h,c,l,d,u,m,_,g,p,v,w,b,C,f,S,L,M,B,y,I,x,G,E,j,F,O;return{setters:[function(e){t=e.S,r=e.M},function(e){i=e.aM,a=e.D,n=e.L,s=e.R,o=e.ag,h=e._,c=e.i,l=e.u,d=e.x,u=e.y,m=e.H,_=e.b},function(e){g=e.C,p=e.L,v=e.S,w=e.T},function(e){b=e.a,C=e.ad,f=e.ag,S=e.Q,L=e.A,M=e.C,B=e.aE,y=e.aR,I=e.bw,x=e.i,G=e.bk,E=e.N,j=e.bP},function(e){F=e.D},function(e){O=e.G},function(){}],execute:function(){const P=[new a("script-loader",t),new a("glb-input-manager",class extends i{},1),new a("logger",n),new a("rapi-access",s)];class D extends g{constructor(){super(...arguments),this.shouldIgnoreStandardBehavior=!1}adjust(e,t,r,i,a){let n=new b(-e.x/2,0,-e.z/2),s=new b(e.x/2,e.y,e.z/2);this._boundingBox=new C(n,s);let o=new f(-Math.PI/2+i,r,0,"ZYX"),h=(new S).setFromEuler(o);this._camera.updateProjectionMatrix(),this._camera.quaternion.copy(h),this._camera.position.copy(t)}_update(e){this.shouldIgnoreStandardBehavior?this._saveYawAndPitch():super._update(e)}animateCamera(e){return!!this.shouldIgnoreStandardBehavior||super.animateCamera(e)}}class k extends p{constructor(e,t){super(e,t),this._params={ambientLight:{color:"#ffffff"}},this._ambientLight=new L(new M(this._params.ambientLight.color),.5),this.addToScene()}addToScene(){this._scene.add(this._ambientLight)}removeFromScene(){this._scene.remove(this._ambientLight)}reload(){this.removeFromScene(),this.addToScene()}showGUI(){let e=o();if(e&&this._ambientLight){let t=e.addFolder("Ambient Light");t.add(this._ambientLight,"visible"),t.add(this._ambientLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.ambientLight,"color").onChange(e=>{this._ambientLight.color=new M(e)})}}}class R extends v{constructor(e,t){super(e,t,l.GLB,B.CAMERA_3D),this._itemsCount=0,this._standardSceneBackgroundColor=this._scene.background,this._initData.legacyLight&&(this._renderer.capabilities.maxTextures>8?this.loadDynamicLightSetting(d.createDynamicLightSettingSource(null,u.CAMERA)):(console.warn("this device has a maximum of 8 texture units thus we are using a simpler light setting"),this._lightSetting=new k(this._scene)))}createCameraControl(e,t){this._changeCameraBehaviour(new O(new D(this._creator_,this._getInputManager(),null),this._cameraBehaviourState))}_getInputManager(){return this._glbInputManager}async loadStaticItem(e,t){const r=await this._rapiAccess.getItem(e);if(r.configuration)return Promise.reject();const i=y(r);return i?this.loadGLB(i,!0,void 0,t):Promise.reject(new Error("GLB Url not detected"))}loadGLB(e,t=!0,r=new b(1,1,1),i){return this.clearScene(),new Promise((a,n)=>{this._loadGLB(e,new b(0,0,0),0,void 0,r,void 0,void 0,i).then(e=>{this._currentGLB=e,this._scene.add(this._currentGLB);let r=(new C).setFromObject(this._currentGLB);t&&this.cameraBehaviour.cameraControl instanceof D&&this.glbViewerCameraBehaviour.updateCameraOnItemLoaded(r),this._updateBounds(r,null,!0),this._readyForRender(),a()},n)})}preparePerspectiveImage(e,t,r){return new Promise(i=>{var a,n;t||(t=1e3),r||(r=1e3),e||((e=new I({antialias:!0})).setSize(t,r),e.outputColorSpace=x,e.autoClear=!1,e.shadowMap.enabled=!0,e.shadowMap.type=G);let s=this.cameraBehaviour.cameraControl.getCamera().clone();s instanceof E&&(s.aspect=t/r,s.updateProjectionMatrix()),null===(a=this._lightSetting)||void 0===a||a.removeFromScene();let o=new F(this._scene);e.render(this._scene,s);let h=e.domElement.toDataURL();e.domElement.toBlob(e=>{i({image:h,width:t,height:r,blob:e})},"image/png"),o.removeFromScene(),null===(n=this._lightSetting)||void 0===n||n.addToScene()})}adjustCamera(e,t,r,i){if(this.cameraBehaviour.cameraControl instanceof D){let a=(new C).setFromObject(this._scene).getSize(new b);this.cameraBehaviour.cameraControl.adjust(a,e,t,r,i),this._requestRender()}}onStart(e){this._itemsCount=e,this._scene.background=null,this.cameraBehaviour.cameraControl instanceof D&&(this.cameraBehaviour.cameraControl.shouldIgnoreStandardBehavior=!0)}onElementFinished(e){this._itemsCount,Math.round(100/this._itemsCount*e)}onFinished(e){this._scene.background=this._standardSceneBackgroundColor,this.cameraBehaviour.cameraControl instanceof D&&(this.cameraBehaviour.cameraControl.shouldIgnoreStandardBehavior=!1)}clearScene(){this._currentGLB&&(this._scene.remove(this._currentGLB),m(this._currentGLB),this._currentGLB=null),super.clearScene()}enableHD(){super.enableHD()}sceneChanged(){}getBounds(){return this._currentGLB?(new C).setFromObject(this._currentGLB):null}get glbViewerCameraBehaviour(){return this.cameraBehaviour}getGeometryBounds(){return null}cameraBehaviourChanged(){super.cameraBehaviourChanged(),this.cameraBehaviour.cameraControl.addEventListener(3,()=>{this._requestRender()},this),this.cameraBehaviour.cameraControl.addEventListener(4,()=>{this._requestRender()},this)}async moveCamera(e){return this.glbViewerCameraBehaviour.externalApiMoveCamera(e)}_readyForRender(){this._globalCallback.onReadyForRender()}}h([c],R.prototype,"_glbInputManager",void 0),h([c],R.prototype,"_rapiAccess",void 0);class z{constructor(e,t,r){this._prefix="https://furniture.roomle.com/3d/glb/",this._listeners=new Set,this._finishedItems=0,this._sceneManager=e,this._renderer=new I({antialias:!0,alpha:!0}),this._width=t,this._height=r,this._renderer.setSize(t,r),this._renderer.setClearColor(16777215,0),this._renderer.outputColorSpace=x}addListener(e){this._listeners.add(e)}removeListener(e){this._listeners.delete(e)}start(e){return this._entries=[],e.forEach(e=>{this._entries.push(this._transform(e))}),this._finishedItems=0,this._listeners.forEach(e=>e.onStart(this._entries.length)),this._zip=new window.JSZip,this._doNextEntry(),new Promise(e=>{this._resolve=e})}_transform(e){return{name:e.path.replace(".glb",".png"),url:this._prefix+e.path,position:new b(e.camera.position.x,e.camera.position.z,-e.camera.position.y),fov:2*e.camera.fieldOfView,yaw:e.camera.rotation.z,pitch:e.camera.rotation.x}}_doNextEntry(){0===this._entries.length?(this._listeners.forEach(e=>e.onFinished(this._zip)),this._resolve(this._zip)):this._processEntry(this._entries[0])}_processEntry(e){this._sceneManager.loadGLB(e.url,!1,void 0).then(()=>{this._sceneManager.adjustCamera(e.position,e.yaw,e.pitch,e.fov),this._sceneManager.preparePerspectiveImage(this._renderer,this._width,this._height).then(t=>{this._entryFinished(e,t)})})}_entryFinished(e,t){let r=this._entries.indexOf(e);r>-1&&this._entries.splice(r,1),this._finishedItems++,this._listeners.forEach(e=>e.onElementFinished(this._finishedItems)),this._zip.file(e.name,t.blob),this._doNextEntry()}}class A{constructor(e){this._currentIdOrUrl=null,this._creator_=e}setCameraOffset(e){this._sceneManager.setCameraOffset(e)}getCameraOffset(){return this._sceneManager.getCameraOffset()}init(e,t){return this.setOverrides(t),this._domHelper.setDomElement(e),this._sceneManager?(this._lifeCycleManager.resume(),Promise.resolve()):new Promise(this._initPromiseCallback.bind(this))}_initPromiseCallback(e,t){Promise.all([this._scriptLoader.fetch(w,{id:"tween-js"})]).then(()=>{this._sceneManager=new R(this._creator_,{left:0,top:1,right:1,bottom:0}),this._sceneManager.enableHD(),e()})}clearScene(){this._sceneManager.clearScene()}loadGLB(e,t=1,r){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadGLB(e,!0,new b(t,t,t),r)}loadStaticItem(e,t){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadStaticItem(e,t)}getCurrentId(){return this._currentIdOrUrl}loadSceneSetting(e){return this._sceneManager.loadSceneSettings(e)}preparePerspectiveImage(){return this._sceneManager.preparePerspectiveImage()}processRenderList(e,t=320,r=320){let i=JSON.parse(e);this._scriptLoader.fetch("static/jszip.min-c96375d50e72b199.js",{id:"jszip-js"}).then(()=>{let e=new z(this._sceneManager,t,r);e.addListener(this._sceneManager),e.start(i.items).then(t=>{t.generateAsync({type:"blob"}).then(t=>{j("content.zip",URL.createObjectURL(t)),e.removeListener(this._sceneManager)})})})}setOverrides(e){e&&(this._initData.setOverrides(e),this._globalInitData.setOverrides(e))}updateSize(){this._sceneManager.updateCamera()}getMain(){}resumeTest(e){this._domHelper.setDomElement(e),this._lifeCycleManager.resume()}pauseTest(){this._lifeCycleManager.pause()}showGUI(){this._sceneManager.showGUI()}get callbacks(){return{}}getScene(){return this._sceneManager.getScene()}updateScene(){this._sceneManager.updateScene()}getUnitFormatter(){return this._unitFormatter}getStorage(){return this._idbManager}setEnvironmentMap(e){const{url:t,intensity:r,rotation:i,maxLightSources:a}=e;this._sceneManager.setEnvironmentMap(t,r,i,a)}exportCanvasScreenshot(e){return this._sceneManager.exportCanvasScreenshot(e)}async moveCamera(e){return this._sceneManager.moveCamera(e)}get globalCallbacks(){return this._globalCallback}}h([c],A.prototype,"_rapiAccess",void 0),h([c],A.prototype,"_domHelper",void 0),h([c],A.prototype,"_scriptLoader",void 0),h([c],A.prototype,"_lifeCycleManager",void 0),h([c],A.prototype,"_initData",void 0),h([c],A.prototype,"_globalInitData",void 0),h([c],A.prototype,"_globalCallback",void 0),h([c],A.prototype,"_unitFormatter",void 0),h([c],A.prototype,"_idbManager",void 0),e("GlbViewer",class extends r{setupGlobals(){}setupDependencies(){_.setup(P),this.lookup("logger",this._context)}cleanUpGlobals(){throw new Error("Method not implemented.")}cleanUpDependencies(){throw new Error("Method not implemented.")}bootFinished(){this._viewer=new A(this._context),window.RoomleGLBViewer||(window.RoomleGLBViewer=this._viewer)}getApi(){return this._viewer}getContextName(){return"glb-viewer"}})}}}));
2
- //# sourceMappingURL=glb-viewer-27827d4c.nomodule.js.map
1
+ System.register(["./script-loader-1491eb6e.nomodule.js","./roomle-dependency-injection-0758cad6.nomodule.js","./camera-behaviour-55f86fa4.nomodule.js","./main-thread-to-worker-7f1cb5ea.nomodule.js","./default-light-setting-31cbd6d3.nomodule.js","./glb-viewer-camera-behaviour-2608e844.nomodule.js","./query-params-helper-4f855064.nomodule.js"],(function(e){var t,r,i,a,n,s,o,h,c,l,d,u,m,_,g,p,v,w,b,C,f,S,L,B,M,y,I,x,G,E,j,F,O;return{setters:[function(e){t=e.S,r=e.M},function(e){i=e.aN,a=e.D,n=e.L,s=e.R,o=e.ag,h=e._,c=e.i,l=e.u,d=e.x,u=e.y,m=e.H,_=e.b},function(e){g=e.C,p=e.L,v=e.S,w=e.T},function(e){b=e.a,C=e.ad,f=e.ag,S=e.Q,L=e.A,B=e.C,M=e.aE,y=e.aR,I=e.by,x=e.i,G=e.bk,E=e.U,j=e.bF},function(e){F=e.D},function(e){O=e.G},function(){}],execute:function(){const D=[new a("script-loader",t),new a("glb-input-manager",class extends i{},1),new a("logger",n),new a("rapi-access",s)];class P extends g{constructor(){super(...arguments),this.shouldIgnoreStandardBehavior=!1}adjust(e,t,r,i,a){let n=new b(-e.x/2,0,-e.z/2),s=new b(e.x/2,e.y,e.z/2);this._boundingBox=new C(n,s);let o=new f(-Math.PI/2+i,r,0,"ZYX"),h=(new S).setFromEuler(o);this._camera.updateProjectionMatrix(),this._camera.quaternion.copy(h),this._camera.position.copy(t)}_update(e){this.shouldIgnoreStandardBehavior?this._saveYawAndPitch():super._update(e)}animateCamera(e){return!!this.shouldIgnoreStandardBehavior||super.animateCamera(e)}}class k extends p{constructor(e,t){super(e,t),this._params={ambientLight:{color:"#ffffff"}},this._ambientLight=new L(new B(this._params.ambientLight.color),.5),this.addToScene()}addToScene(){this._scene.add(this._ambientLight)}removeFromScene(){this._scene.remove(this._ambientLight)}reload(){this.removeFromScene(),this.addToScene()}showGUI(){let e=o();if(e&&this._ambientLight){let t=e.addFolder("Ambient Light");t.add(this._ambientLight,"visible"),t.add(this._ambientLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.ambientLight,"color").onChange(e=>{this._ambientLight.color=new B(e)})}}}class R extends v{constructor(e,t){super(e,t,l.GLB,M.CAMERA_3D),this._itemsCount=0,this._standardSceneBackgroundColor=this._scene.background,this._initData.legacyLight&&(this._renderer.capabilities.maxTextures>8?this.loadDynamicLightSetting(d.createDynamicLightSettingSource(null,u.CAMERA)):(console.warn("this device has a maximum of 8 texture units thus we are using a simpler light setting"),this._lightSetting=new k(this._scene)))}createCameraControl(e,t){this._changeCameraBehaviour(new O(new P(this._creator_,this._getInputManager(),null),this._cameraBehaviourState))}_getInputManager(){return this._glbInputManager}async loadStaticItem(e,t){const r=await this._rapiAccess.getItem(e);if(r.configuration)return Promise.reject();const i=y(r);return i?this.loadGLB(i,!0,void 0,t):Promise.reject(new Error("GLB Url not detected"))}loadGLB(e,t=!0,r=new b(1,1,1),i){return this.clearScene(),new Promise((a,n)=>{this._loadGLB(e,new b(0,0,0),0,void 0,r,void 0,void 0,i).then(e=>{this._currentGLB=e,this._scene.add(this._currentGLB);let r=(new C).setFromObject(this._currentGLB);t&&this.cameraBehaviour.cameraControl instanceof P&&this.glbViewerCameraBehaviour.updateCameraOnItemLoaded(r),this._updateBounds(r,null,!0),this._readyForRender(),a()},n)})}preparePerspectiveImage(e,t,r){return new Promise(i=>{var a,n;t||(t=1e3),r||(r=1e3),e||((e=new I({antialias:!0})).setSize(t,r),e.outputColorSpace=x,e.autoClear=!1,e.shadowMap.enabled=!0,e.shadowMap.type=G);let s=this.cameraBehaviour.cameraControl.getCamera().clone();s instanceof E&&(s.aspect=t/r,s.updateProjectionMatrix()),null===(a=this._lightSetting)||void 0===a||a.removeFromScene();let o=new F(this._scene);e.render(this._scene,s);let h=e.domElement.toDataURL();e.domElement.toBlob(e=>{i({image:h,width:t,height:r,blob:e})},"image/png"),o.removeFromScene(),null===(n=this._lightSetting)||void 0===n||n.addToScene()})}adjustCamera(e,t,r,i){if(this.cameraBehaviour.cameraControl instanceof P){let a=(new C).setFromObject(this._scene).getSize(new b);this.cameraBehaviour.cameraControl.adjust(a,e,t,r,i),this._requestRender()}}onStart(e){this._itemsCount=e,this._scene.background=null,this.cameraBehaviour.cameraControl instanceof P&&(this.cameraBehaviour.cameraControl.shouldIgnoreStandardBehavior=!0)}onElementFinished(e){this._itemsCount,Math.round(100/this._itemsCount*e)}onFinished(e){this._scene.background=this._standardSceneBackgroundColor,this.cameraBehaviour.cameraControl instanceof P&&(this.cameraBehaviour.cameraControl.shouldIgnoreStandardBehavior=!1)}clearScene(){this._currentGLB&&(this._scene.remove(this._currentGLB),m(this._currentGLB),this._currentGLB=null),super.clearScene()}enableHD(){super.enableHD()}sceneChanged(){}getBounds(){return this._currentGLB?(new C).setFromObject(this._currentGLB):null}get glbViewerCameraBehaviour(){return this.cameraBehaviour}getGeometryBounds(){return null}cameraBehaviourChanged(){super.cameraBehaviourChanged(),this.cameraBehaviour.cameraControl.addEventListener(3,()=>{this._requestRender()},this),this.cameraBehaviour.cameraControl.addEventListener(4,()=>{this._requestRender()},this)}async moveCamera(e){return this.glbViewerCameraBehaviour.externalApiMoveCamera(e)}_readyForRender(){this._globalCallback.onReadyForRender()}}h([c],R.prototype,"_glbInputManager",void 0),h([c],R.prototype,"_rapiAccess",void 0);class z{constructor(e,t,r){this._prefix="https://furniture.roomle.com/3d/glb/",this._listeners=new Set,this._finishedItems=0,this._sceneManager=e,this._renderer=new I({antialias:!0,alpha:!0}),this._width=t,this._height=r,this._renderer.setSize(t,r),this._renderer.setClearColor(16777215,0),this._renderer.outputColorSpace=x}addListener(e){this._listeners.add(e)}removeListener(e){this._listeners.delete(e)}start(e){return this._entries=[],e.forEach(e=>{this._entries.push(this._transform(e))}),this._finishedItems=0,this._listeners.forEach(e=>e.onStart(this._entries.length)),this._zip=new window.JSZip,this._doNextEntry(),new Promise(e=>{this._resolve=e})}_transform(e){return{name:e.path.replace(".glb",".png"),url:this._prefix+e.path,position:new b(e.camera.position.x,e.camera.position.z,-e.camera.position.y),fov:2*e.camera.fieldOfView,yaw:e.camera.rotation.z,pitch:e.camera.rotation.x}}_doNextEntry(){0===this._entries.length?(this._listeners.forEach(e=>e.onFinished(this._zip)),this._resolve(this._zip)):this._processEntry(this._entries[0])}_processEntry(e){this._sceneManager.loadGLB(e.url,!1,void 0).then(()=>{this._sceneManager.adjustCamera(e.position,e.yaw,e.pitch,e.fov),this._sceneManager.preparePerspectiveImage(this._renderer,this._width,this._height).then(t=>{this._entryFinished(e,t)})})}_entryFinished(e,t){let r=this._entries.indexOf(e);r>-1&&this._entries.splice(r,1),this._finishedItems++,this._listeners.forEach(e=>e.onElementFinished(this._finishedItems)),this._zip.file(e.name,t.blob),this._doNextEntry()}}class A{constructor(e){this._currentIdOrUrl=null,this._creator_=e}setCameraOffset(e){this._sceneManager.setCameraOffset(e)}getCameraOffset(){return this._sceneManager.getCameraOffset()}init(e,t){return this.setOverrides(t),this._domHelper.setDomElement(e),this._sceneManager?(this._lifeCycleManager.resume(),Promise.resolve()):new Promise(this._initPromiseCallback.bind(this))}_initPromiseCallback(e,t){Promise.all([this._scriptLoader.fetch(w,{id:"tween-js"})]).then(()=>{this._sceneManager=new R(this._creator_,{left:0,top:1,right:1,bottom:0}),this._sceneManager.enableHD(),e()})}clearScene(){this._sceneManager.clearScene()}loadGLB(e,t=1,r){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadGLB(e,!0,new b(t,t,t),r)}loadStaticItem(e,t){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadStaticItem(e,t)}getCurrentId(){return this._currentIdOrUrl}loadSceneSetting(e){return this._sceneManager.loadSceneSettings(e)}preparePerspectiveImage(){return this._sceneManager.preparePerspectiveImage()}processRenderList(e,t=320,r=320){let i=JSON.parse(e);this._scriptLoader.fetch("static/jszip.min-c96375d50e72b199.js",{id:"jszip-js"}).then(()=>{let e=new z(this._sceneManager,t,r);e.addListener(this._sceneManager),e.start(i.items).then(t=>{t.generateAsync({type:"blob"}).then(t=>{j("content.zip",URL.createObjectURL(t)),e.removeListener(this._sceneManager)})})})}setOverrides(e){e&&(this._initData.setOverrides(e),this._globalInitData.setOverrides(e))}updateSize(){this._sceneManager.updateCamera()}getMain(){}resumeTest(e){this._domHelper.setDomElement(e),this._lifeCycleManager.resume()}pauseTest(){this._lifeCycleManager.pause()}showGUI(){this._sceneManager.showGUI()}get callbacks(){return{}}getScene(){return this._sceneManager.getScene()}updateScene(){this._sceneManager.updateScene()}getUnitFormatter(){return this._unitFormatter}getStorage(){return this._idbManager}setEnvironmentMap(e){const{url:t,intensity:r,rotation:i,maxLightSources:a}=e;this._sceneManager.setEnvironmentMap(t,r,i,a)}exportCanvasScreenshot(e){return this._sceneManager.exportCanvasScreenshot(e)}async moveCamera(e){return this._sceneManager.moveCamera(e)}get globalCallbacks(){return this._globalCallback}}h([c],A.prototype,"_rapiAccess",void 0),h([c],A.prototype,"_domHelper",void 0),h([c],A.prototype,"_scriptLoader",void 0),h([c],A.prototype,"_lifeCycleManager",void 0),h([c],A.prototype,"_initData",void 0),h([c],A.prototype,"_globalInitData",void 0),h([c],A.prototype,"_globalCallback",void 0),h([c],A.prototype,"_unitFormatter",void 0),h([c],A.prototype,"_idbManager",void 0),e("GlbViewer",class extends r{setupGlobals(){}setupDependencies(){_.setup(D),this.lookup("logger",this._context)}cleanUpGlobals(){throw new Error("Method not implemented.")}cleanUpDependencies(){throw new Error("Method not implemented.")}bootFinished(){this._viewer=new A(this._context),window.RoomleGLBViewer||(window.RoomleGLBViewer=this._viewer)}getApi(){return this._viewer}getContextName(){return"glb-viewer"}})}}}));
2
+ //# sourceMappingURL=glb-viewer-447927c4.nomodule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glb-viewer-27827d4c.nomodule.js","sources":["../../node_modules/jszip/dist/jszip.min.js"],"sourcesContent":["export default \"static/jszip.min-c96375d50e72b199.js\""],"names":[],"mappings":"m0PAAe"}
1
+ {"version":3,"file":"glb-viewer-447927c4.nomodule.js","sources":["../../node_modules/jszip/dist/jszip.min.js"],"sourcesContent":["export default \"static/jszip.min-c96375d50e72b199.js\""],"names":[],"mappings":"m0PAAe"}
@@ -1,2 +1,2 @@
1
- import{b as CameraBehaviour}from"./camera-behaviour-030b51c2.js";class GlbViewerCameraBehaviour extends CameraBehaviour{get cameraControl(){return this._cameraControl}async updateCameraOnItemLoaded(a){await this.cameraControl.updateAndReset(a,!0)}async externalApiMoveCamera(a){await this.cameraControl.moveCamera(a),this._onCameraChanged()}}export{GlbViewerCameraBehaviour as G};
2
- //# sourceMappingURL=glb-viewer-camera-behaviour-1f71cb62.js.map
1
+ import{b as CameraBehaviour}from"./camera-behaviour-05fc5ef1.js";class GlbViewerCameraBehaviour extends CameraBehaviour{get cameraControl(){return this._cameraControl}async updateCameraOnItemLoaded(a){await this.cameraControl.updateAndReset(a,!0)}async externalApiMoveCamera(a){await this.cameraControl.moveCamera(a),this._onCameraChanged()}}export{GlbViewerCameraBehaviour as G};
2
+ //# sourceMappingURL=glb-viewer-camera-behaviour-141567b1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glb-viewer-camera-behaviour-141567b1.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- System.register(["./camera-behaviour-ca49ab38.nomodule.js"],(function(e){var a;return{setters:[function(e){a=e.b}],execute:function(){e("G",class extends a{get cameraControl(){return this._cameraControl}async updateCameraOnItemLoaded(e){await this.cameraControl.updateAndReset(e,!0)}async externalApiMoveCamera(e){await this.cameraControl.moveCamera(e),this._onCameraChanged()}})}}}));
2
- //# sourceMappingURL=glb-viewer-camera-behaviour-3d4a8906.nomodule.js.map
1
+ System.register(["./camera-behaviour-55f86fa4.nomodule.js"],(function(e){var a;return{setters:[function(e){a=e.b}],execute:function(){e("G",class extends a{get cameraControl(){return this._cameraControl}async updateCameraOnItemLoaded(e){await this.cameraControl.updateAndReset(e,!0)}async externalApiMoveCamera(e){await this.cameraControl.moveCamera(e),this._onCameraChanged()}})}}}));
2
+ //# sourceMappingURL=glb-viewer-camera-behaviour-2608e844.nomodule.js.map