@roomle/embedding-lib 5.24.0 → 5.25.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 (521) hide show
  1. package/docs/md/web/embedding/CHANGELOG.md +24 -19
  2. package/{drag-in-DNbVoUkq.mjs → drag-in-BWioG4OL.mjs} +1 -1
  3. package/from-custom-view-DRAqJ-yY.mjs +1 -0
  4. package/from-website-DR93OSJD.mjs +1 -0
  5. package/package.json +2 -4
  6. package/packages/common/src/utils/id-inferrer.d.ts +2 -2
  7. package/packages/common/src/utils/init-data.d.ts +0 -1
  8. package/packages/embedding-lib/src/connector.d.ts +1 -3
  9. package/packages/embedding-lib/src/embedding-lib.d.ts +5 -5
  10. package/packages/embedding-lib/src/examples/utils/drag-listeners.d.ts +3 -3
  11. package/packages/embedding-lib/src/plugins/drag-in.d.ts +1 -1
  12. package/packages/embedding-lib/src/plugins/strategy/from-custom-view.d.ts +1 -1
  13. package/packages/embedding-lib/src/plugins/strategy/from-website.d.ts +1 -1
  14. package/packages/embedding-lib/src/plugins/strategy/types.d.ts +1 -1
  15. package/packages/web-sdk/packages/acceptance-tests/src/utils/async-acceptance-test.d.ts +3 -0
  16. package/packages/web-sdk/packages/benchmark/budgeteer-measure.d.ts +1 -0
  17. package/packages/web-sdk/packages/common-core/__tests__/async-guard.d.ts +1 -0
  18. package/packages/web-sdk/packages/common-core/__tests__/camera-control-2d.d.ts +1 -0
  19. package/packages/web-sdk/packages/common-core/__tests__/camera-control-3d.d.ts +1 -0
  20. package/packages/web-sdk/packages/common-core/__tests__/camera-mode-helper.d.ts +1 -0
  21. package/packages/web-sdk/packages/common-core/__tests__/common-kernel-access.d.ts +1 -0
  22. package/packages/web-sdk/packages/common-core/__tests__/configurator-kernel-access.d.ts +1 -0
  23. package/packages/web-sdk/packages/common-core/__tests__/data-syncer.d.ts +1 -0
  24. package/packages/web-sdk/packages/common-core/__tests__/dependency-injection.d.ts +1 -0
  25. package/packages/web-sdk/packages/common-core/__tests__/dom-helper.d.ts +1 -0
  26. package/packages/web-sdk/packages/common-core/__tests__/dynamic-environment-setting-loader.d.ts +1 -0
  27. package/packages/web-sdk/packages/common-core/__tests__/dynamic-light-setting-loader.d.ts +1 -0
  28. package/packages/web-sdk/packages/common-core/__tests__/image-renderer.d.ts +12 -0
  29. package/packages/web-sdk/packages/common-core/__tests__/input-manager.d.ts +1 -0
  30. package/packages/web-sdk/packages/common-core/__tests__/life-cycle-manager.d.ts +1 -0
  31. package/packages/web-sdk/packages/common-core/__tests__/main.d.ts +1 -0
  32. package/packages/web-sdk/packages/common-core/__tests__/rapi-access.d.ts +1 -0
  33. package/packages/web-sdk/packages/common-core/__tests__/raycast-helper.d.ts +1 -0
  34. package/packages/web-sdk/packages/common-core/__tests__/roomle-component-factory.d.ts +1 -0
  35. package/packages/web-sdk/packages/common-core/__tests__/script-loader.d.ts +1 -0
  36. package/packages/web-sdk/packages/common-core/__tests__/static-item-loader.d.ts +1 -0
  37. package/packages/web-sdk/packages/common-core/__tests__/ui-callback.d.ts +1 -0
  38. package/packages/web-sdk/packages/common-core/__tests__/utils/app-context.d.ts +1 -0
  39. package/packages/web-sdk/packages/common-core/__tests__/utils/benchmark.d.ts +1 -0
  40. package/packages/web-sdk/packages/common-core/__tests__/utils/browser-helper.d.ts +1 -0
  41. package/packages/web-sdk/packages/common-core/__tests__/utils/common-utils.d.ts +1 -0
  42. package/packages/web-sdk/packages/common-core/__tests__/utils/dom-helper.d.ts +1 -0
  43. package/packages/web-sdk/packages/common-core/__tests__/utils/enumerable.d.ts +1 -0
  44. package/packages/web-sdk/packages/common-core/__tests__/utils/exposable.d.ts +1 -0
  45. package/packages/web-sdk/packages/common-core/__tests__/utils/expose-for.d.ts +1 -0
  46. package/packages/web-sdk/packages/common-core/__tests__/utils/external-objects.d.ts +1 -0
  47. package/packages/web-sdk/packages/common-core/__tests__/utils/kernel-utils.d.ts +1 -0
  48. package/packages/web-sdk/packages/common-core/__tests__/utils/local-storage-helper.d.ts +1 -0
  49. package/packages/web-sdk/packages/common-core/__tests__/utils/map-to-ui-plan-objects.d.ts +1 -0
  50. package/packages/web-sdk/packages/common-core/__tests__/utils/math-helper.d.ts +1 -0
  51. package/packages/web-sdk/packages/common-core/__tests__/utils/measurements.d.ts +1 -0
  52. package/packages/web-sdk/packages/common-core/__tests__/utils/promise-queue.d.ts +1 -0
  53. package/packages/web-sdk/packages/common-core/__tests__/utils/query-params-helper.d.ts +1 -0
  54. package/packages/web-sdk/packages/common-core/__tests__/utils/rapi-utils.d.ts +1 -0
  55. package/packages/web-sdk/packages/common-core/__tests__/utils/threejs-utils.d.ts +1 -0
  56. package/packages/web-sdk/packages/common-core/__tests__/utils/validate-params.d.ts +1 -0
  57. package/packages/web-sdk/packages/common-core/__tests__/utils/waiter.d.ts +1 -0
  58. package/packages/web-sdk/packages/common-core/__tests__/view-model/configurator-view-model.d.ts +1 -0
  59. package/packages/web-sdk/packages/common-core/__tests__/view-model/construction-plan-object-view-model.d.ts +1 -0
  60. package/packages/web-sdk/packages/common-core/__tests__/view-model/measurement-line-plan-element-view-model.d.ts +1 -0
  61. package/packages/web-sdk/packages/common-core/__tests__/view-model/plan-element-view-model.d.ts +1 -0
  62. package/packages/web-sdk/packages/common-core/__tests__/view-model/wall-plan-element-view-model.d.ts +1 -0
  63. package/packages/web-sdk/packages/common-core/config/base.environment.d.ts +2 -0
  64. package/packages/web-sdk/packages/common-core/config/environment.d.ts +2 -0
  65. package/packages/web-sdk/packages/common-core/mock/common-kernel-access-mock.d.ts +10 -0
  66. package/packages/web-sdk/packages/common-core/mock/console-handler.d.ts +7 -0
  67. package/packages/web-sdk/packages/common-core/mock/constants.d.ts +1 -0
  68. package/packages/web-sdk/packages/common-core/mock/kernel-instances.d.ts +323 -0
  69. package/packages/web-sdk/packages/common-core/mock/mock-camera-parameters.d.ts +16 -0
  70. package/packages/web-sdk/packages/common-core/mock/mock-draco-loader.d.ts +7 -0
  71. package/packages/web-sdk/packages/common-core/mock/mock-gltf-loader.d.ts +10 -0
  72. package/packages/web-sdk/packages/common-core/mock/mock-idb-manager.d.ts +20 -0
  73. package/packages/web-sdk/packages/common-core/mock/mock-image-renderer.d.ts +19 -0
  74. package/packages/web-sdk/packages/common-core/mock/mock-input-event-dispatcher.d.ts +12 -0
  75. package/packages/web-sdk/packages/common-core/mock/mock-rapi-types.d.ts +94 -0
  76. package/packages/web-sdk/packages/common-core/mock/mock-utils.d.ts +26 -0
  77. package/packages/web-sdk/packages/common-core/mock/rapi-globals.d.ts +6 -0
  78. package/packages/web-sdk/packages/common-core/mock/three-mock.d.ts +47 -0
  79. package/packages/web-sdk/packages/common-core/mock/tween-mock.d.ts +5 -0
  80. package/packages/web-sdk/packages/common-core/src/async-guard.d.ts +12 -0
  81. package/packages/web-sdk/packages/common-core/src/cameracontrol/camera-behaviour-3d.d.ts +6 -0
  82. package/packages/web-sdk/packages/common-core/src/cameracontrol/camera-behaviour-state.d.ts +9 -0
  83. package/packages/web-sdk/packages/common-core/src/cameracontrol/camera-behaviour.d.ts +14 -0
  84. package/packages/web-sdk/packages/common-core/src/cameracontrol/camera-control-2d.d.ts +28 -0
  85. package/packages/web-sdk/packages/common-core/src/cameracontrol/camera-control-3d.d.ts +83 -0
  86. package/packages/web-sdk/packages/common-core/src/cameracontrol/camera-control.d.ts +127 -0
  87. package/packages/web-sdk/packages/common-core/src/cameracontrol/camera-type.d.ts +8 -0
  88. package/packages/web-sdk/packages/common-core/src/cameracontrol/configurator-camera-behaviour.d.ts +22 -0
  89. package/packages/web-sdk/packages/common-core/src/cameracontrol/glb-viewer-camera-behaviour.d.ts +10 -0
  90. package/packages/web-sdk/packages/common-core/src/cameracontrol/material-viewer-camera-behaviour.d.ts +6 -0
  91. package/packages/web-sdk/packages/common-core/src/cameracontrol/planner-2d-camera-behaviour.d.ts +18 -0
  92. package/packages/web-sdk/packages/common-core/src/cameracontrol/planner-3d-camera-behaviour.d.ts +21 -0
  93. package/packages/web-sdk/packages/common-core/src/cameracontrol/planner-camera-behaviour.d.ts +16 -0
  94. package/packages/web-sdk/packages/common-core/src/cameracontrol/planner-fp-camera-behaviour.d.ts +18 -0
  95. package/packages/web-sdk/packages/common-core/src/common-configurator-kernel-callback.d.ts +20 -0
  96. package/packages/web-sdk/packages/common-core/src/common-interfaces.d.ts +38 -0
  97. package/packages/web-sdk/packages/common-core/src/configurator-kernel-access.d.ts +147 -0
  98. package/packages/web-sdk/packages/common-core/src/di/container.d.ts +20 -0
  99. package/packages/web-sdk/packages/common-core/src/di/context.d.ts +3 -0
  100. package/packages/web-sdk/packages/common-core/src/di/global-definitions.d.ts +9 -0
  101. package/packages/web-sdk/packages/common-core/src/di/inject.d.ts +2 -0
  102. package/packages/web-sdk/packages/common-core/src/di/injectables.d.ts +3 -0
  103. package/packages/web-sdk/packages/common-core/src/di/roomle-dependency-injection.d.ts +10 -0
  104. package/packages/web-sdk/packages/common-core/src/environment/background-environment.d.ts +16 -0
  105. package/packages/web-sdk/packages/common-core/src/environment/dynamic-environment-setting-loader.d.ts +83 -0
  106. package/packages/web-sdk/packages/common-core/src/environment/environment.d.ts +16 -0
  107. package/packages/web-sdk/packages/common-core/src/environment/ground-projected-environment.d.ts +15 -0
  108. package/packages/web-sdk/packages/common-core/src/error-handler.d.ts +18 -0
  109. package/packages/web-sdk/packages/common-core/src/form-data-util.d.ts +16 -0
  110. package/packages/web-sdk/packages/common-core/src/input/input-manager.d.ts +115 -0
  111. package/packages/web-sdk/packages/common-core/src/kernel-access-callback.d.ts +15 -0
  112. package/packages/web-sdk/packages/common-core/src/kernel-io.d.ts +28 -0
  113. package/packages/web-sdk/packages/common-core/src/life-cycle-manager.d.ts +13 -0
  114. package/packages/web-sdk/packages/common-core/src/light/light-source.d.ts +13 -0
  115. package/packages/web-sdk/packages/common-core/src/lightsetting/dynamic-light-setting-loader.d.ts +60 -0
  116. package/packages/web-sdk/packages/common-core/src/lightsetting/dynamic-light-setting.d.ts +26 -0
  117. package/packages/web-sdk/packages/common-core/src/lightsetting/light-setting.d.ts +14 -0
  118. package/packages/web-sdk/packages/common-core/src/logger.d.ts +6 -0
  119. package/packages/web-sdk/packages/common-core/src/main.d.ts +110 -0
  120. package/packages/web-sdk/packages/common-core/src/network-layer.d.ts +16 -0
  121. package/packages/web-sdk/packages/common-core/src/rapi-access.d.ts +200 -0
  122. package/packages/web-sdk/packages/common-core/src/roomle-sdk.d.ts +51 -0
  123. package/packages/web-sdk/packages/common-core/src/scene-settings-loader.d.ts +9 -0
  124. package/packages/web-sdk/packages/common-core/src/script-loader.d.ts +16 -0
  125. package/packages/web-sdk/packages/common-core/src/services/cache-holder.d.ts +12 -0
  126. package/packages/web-sdk/packages/common-core/src/services/common-kernel-access.d.ts +135 -0
  127. package/packages/web-sdk/packages/common-core/src/services/data-syncer.d.ts +41 -0
  128. package/packages/web-sdk/packages/common-core/src/services/global-callback.d.ts +36 -0
  129. package/packages/web-sdk/packages/common-core/src/services/hdr-environment-loader.d.ts +19 -0
  130. package/packages/web-sdk/packages/common-core/src/services/idb-manager.d.ts +20 -0
  131. package/packages/web-sdk/packages/common-core/src/services/memory-manager.d.ts +11 -0
  132. package/packages/web-sdk/packages/common-core/src/static-files/environment-maps.d.ts +7 -0
  133. package/packages/web-sdk/packages/common-core/src/static-files/libs.d.ts +1 -0
  134. package/packages/web-sdk/packages/common-core/src/static-files/light-settings.d.ts +6 -0
  135. package/packages/web-sdk/packages/common-core/src/static-files/luts.d.ts +9 -0
  136. package/packages/web-sdk/packages/common-core/src/static-files/roomle-core.d.ts +6 -0
  137. package/packages/web-sdk/packages/common-core/src/static-files/three.d.ts +5 -0
  138. package/packages/web-sdk/packages/common-core/src/types.d.ts +8 -0
  139. package/packages/web-sdk/packages/common-core/src/utils/app-context.d.ts +14 -0
  140. package/packages/web-sdk/packages/common-core/src/utils/benchmark.d.ts +24 -0
  141. package/packages/web-sdk/packages/common-core/src/utils/browser-helper.d.ts +6 -0
  142. package/packages/web-sdk/packages/common-core/src/utils/clipboard-manager.d.ts +40 -0
  143. package/packages/web-sdk/packages/common-core/src/utils/common-utils.d.ts +119 -0
  144. package/packages/web-sdk/packages/common-core/src/utils/dom-helper.d.ts +28 -0
  145. package/packages/web-sdk/packages/common-core/src/utils/enumerable.d.ts +3 -0
  146. package/packages/web-sdk/packages/common-core/src/utils/external-objects.d.ts +7 -0
  147. package/packages/web-sdk/packages/common-core/src/utils/feature-detection.d.ts +6 -0
  148. package/packages/web-sdk/packages/common-core/src/utils/fps-couter.d.ts +12 -0
  149. package/packages/web-sdk/packages/common-core/src/utils/global-init-data.d.ts +19 -0
  150. package/packages/web-sdk/packages/common-core/src/utils/init-data.d.ts +90 -0
  151. package/packages/web-sdk/packages/common-core/src/utils/kernel-utils.d.ts +15 -0
  152. package/packages/web-sdk/packages/common-core/src/utils/local-storage-helper.d.ts +23 -0
  153. package/packages/web-sdk/packages/common-core/src/utils/local-storage.d.ts +10 -0
  154. package/packages/web-sdk/packages/common-core/src/utils/material-creator.d.ts +10 -0
  155. package/packages/web-sdk/packages/common-core/src/utils/math-helper.d.ts +10 -0
  156. package/packages/web-sdk/packages/common-core/src/utils/parameter-types.d.ts +16 -0
  157. package/packages/web-sdk/packages/common-core/src/utils/promise-queue.d.ts +21 -0
  158. package/packages/web-sdk/packages/common-core/src/utils/query-params-helper.d.ts +3 -0
  159. package/packages/web-sdk/packages/common-core/src/utils/rapi-utils.d.ts +11 -0
  160. package/packages/web-sdk/packages/common-core/src/utils/shims.d.ts +489 -0
  161. package/packages/web-sdk/packages/common-core/src/utils/single-promise-factory.d.ts +17 -0
  162. package/packages/web-sdk/packages/common-core/src/utils/stats-helper.d.ts +18 -0
  163. package/packages/web-sdk/packages/common-core/src/utils/string-utils.d.ts +1 -0
  164. package/packages/web-sdk/packages/common-core/src/utils/threejs-utils.d.ts +135 -0
  165. package/packages/web-sdk/packages/common-core/src/utils/ui-callback.d.ts +17 -0
  166. package/packages/web-sdk/packages/common-core/src/utils/url-shortener.d.ts +6 -0
  167. package/packages/web-sdk/packages/common-core/src/utils/waiter.d.ts +10 -0
  168. package/packages/web-sdk/packages/common-core/src/view-model/configurable-construction-plan-object-view-model.d.ts +22 -0
  169. package/packages/web-sdk/packages/common-core/src/view-model/configurator-plan-object-view-model.d.ts +20 -0
  170. package/packages/web-sdk/packages/common-core/src/view-model/configurator-view-model.d.ts +125 -0
  171. package/packages/web-sdk/packages/common-core/src/view-model/helpers/constants.d.ts +2 -0
  172. package/packages/web-sdk/packages/common-core/src/view-model/kernel-view-model.d.ts +8 -0
  173. package/packages/web-sdk/packages/common-core/src/view-model/plan-element-view-model.d.ts +45 -0
  174. package/packages/web-sdk/packages/common-core/src/view-model/plan-object-view-model.d.ts +34 -0
  175. package/packages/web-sdk/packages/common-core/src/wasm-loader.d.ts +1 -0
  176. package/packages/web-sdk/packages/common-core/src/webgl/EnvMapReader.d.ts +18 -0
  177. package/packages/web-sdk/packages/common-core/src/webgl/baked-shadow-plane.d.ts +15 -0
  178. package/packages/web-sdk/packages/common-core/src/webgl/configurator-context.d.ts +20 -0
  179. package/packages/web-sdk/packages/common-core/src/webgl/hdr-env-map-reader.d.ts +18 -0
  180. package/packages/web-sdk/packages/common-core/src/webgl/image-renderer.d.ts +37 -0
  181. package/packages/web-sdk/packages/common-core/src/webgl/layer.d.ts +14 -0
  182. package/packages/web-sdk/packages/common-core/src/webgl/mesh-generator.d.ts +49 -0
  183. package/packages/web-sdk/packages/common-core/src/webgl/renderer/environment-definition.d.ts +44 -0
  184. package/packages/web-sdk/packages/common-core/src/webgl/renderer/environment-scene.d.ts +41 -0
  185. package/packages/web-sdk/packages/common-core/src/webgl/renderer/light-source-detection-debug.d.ts +15 -0
  186. package/packages/web-sdk/packages/common-core/src/webgl/renderer/light-source-detection.d.ts +87 -0
  187. package/packages/web-sdk/packages/common-core/src/webgl/renderer/materials/blend-ao-and-shadow-material.d.ts +14 -0
  188. package/packages/web-sdk/packages/common-core/src/webgl/renderer/materials/blend-ao-pass-depth-material.d.ts +12 -0
  189. package/packages/web-sdk/packages/common-core/src/webgl/renderer/materials/illumination-buffer-material.d.ts +14 -0
  190. package/packages/web-sdk/packages/common-core/src/webgl/renderer/materials/normal-depth-material.d.ts +14 -0
  191. package/packages/web-sdk/packages/common-core/src/webgl/renderer/materials/postprocessing-material-plugin.d.ts +26 -0
  192. package/packages/web-sdk/packages/common-core/src/webgl/renderer/objects/shadow-ground-plane.d.ts +16 -0
  193. package/packages/web-sdk/packages/common-core/src/webgl/renderer/outline-renderer.d.ts +40 -0
  194. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/ao-pass.d.ts +61 -0
  195. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/baked-ground-contact-shadow-pass.d.ts +78 -0
  196. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/debug-pass.d.ts +24 -0
  197. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/gbuffer-render-pass.d.ts +69 -0
  198. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/ground-reflection-pass.d.ts +74 -0
  199. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/outline-pass.d.ts +64 -0
  200. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/pass-utility.d.ts +13 -0
  201. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/poisson-denoise-pass.d.ts +68 -0
  202. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/render-pass.d.ts +19 -0
  203. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/scene-render-pass.d.ts +12 -0
  204. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/screen-space-shadow-map-pass.d.ts +208 -0
  205. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pass/shadow-and-ao-pass.d.ts +107 -0
  206. package/packages/web-sdk/packages/common-core/src/webgl/renderer/pmrem-environment.d.ts +11 -0
  207. package/packages/web-sdk/packages/common-core/src/webgl/renderer/render-cache.d.ts +71 -0
  208. package/packages/web-sdk/packages/common-core/src/webgl/renderer/render-pass-manager.d.ts +96 -0
  209. package/packages/web-sdk/packages/common-core/src/webgl/renderer/render-utility.d.ts +84 -0
  210. package/packages/web-sdk/packages/common-core/src/webgl/renderer/scene-renderer-gui.d.ts +18 -0
  211. package/packages/web-sdk/packages/common-core/src/webgl/renderer/scene-renderer.d.ts +122 -0
  212. package/packages/web-sdk/packages/common-core/src/webgl/renderer/shader-utility.d.ts +112 -0
  213. package/packages/web-sdk/packages/common-core/src/webgl/renderer/shaders/ao-shader.d.ts +84 -0
  214. package/packages/web-sdk/packages/common-core/src/webgl/renderer/shaders/poisson-denoise-shader.d.ts +74 -0
  215. package/packages/web-sdk/packages/common-core/src/webgl/renderer/shading-settings.d.ts +50 -0
  216. package/packages/web-sdk/packages/common-core/src/webgl/roomle-component-factory.d.ts +116 -0
  217. package/packages/web-sdk/packages/common-core/src/webgl/roomle-webgl-renderer-quality-levels.d.ts +6 -0
  218. package/packages/web-sdk/packages/common-core/src/webgl/roomle-webgl-renderer.d.ts +72 -0
  219. package/packages/web-sdk/packages/common-core/src/webgl/scene-event-handler.d.ts +17 -0
  220. package/packages/web-sdk/packages/common-core/src/webgl/scene-manager.d.ts +154 -0
  221. package/packages/web-sdk/packages/common-core/src/webgl/static-item-loader.d.ts +22 -0
  222. package/packages/web-sdk/packages/configurator-core/__acceptance__/boot.d.ts +1 -0
  223. package/packages/web-sdk/packages/configurator-core/__tests__/configurator-mesh-generator.d.ts +1 -0
  224. package/packages/web-sdk/packages/configurator-core/__tests__/configurator-scene-event-handler.d.ts +1 -0
  225. package/packages/web-sdk/packages/configurator-core/__tests__/configurator-scene-manager.d.ts +1 -0
  226. package/packages/web-sdk/packages/configurator-core/__tests__/configurator.d.ts +1 -0
  227. package/packages/web-sdk/packages/configurator-core/__tests__/environment/floor-environment.d.ts +1 -0
  228. package/packages/web-sdk/packages/configurator-core/__tests__/plugin-system.d.ts +1 -0
  229. package/packages/web-sdk/packages/configurator-core/__tests__/roomle-configurator.d.ts +1 -0
  230. package/packages/web-sdk/packages/configurator-core/__tests__/scene-event-handler.d.ts +1 -0
  231. package/packages/web-sdk/packages/configurator-core/__tests__/services/unit-formatter.d.ts +1 -0
  232. package/packages/web-sdk/packages/configurator-core/__tests__/utils/component-dimensioning-helper.d.ts +1 -0
  233. package/packages/web-sdk/packages/configurator-core/__tests__/utils/component-dimensioning.d.ts +1 -0
  234. package/packages/web-sdk/packages/configurator-core/__tests__/utils/component-raycast-helper.d.ts +1 -0
  235. package/packages/web-sdk/packages/configurator-core/__tests__/utils/configurator-history.d.ts +1 -0
  236. package/packages/web-sdk/packages/configurator-core/__tests__/utils/dimensioning-helper.d.ts +1 -0
  237. package/packages/web-sdk/packages/configurator-core/mock/configurator-mock-data.d.ts +203 -0
  238. package/packages/web-sdk/packages/configurator-core/mock/kernel-mock.d.ts +29 -0
  239. package/packages/web-sdk/packages/configurator-core/src/configurator-debug-api.d.ts +8 -0
  240. package/packages/web-sdk/packages/configurator-core/src/configurator-main.d.ts +1 -0
  241. package/packages/web-sdk/packages/configurator-core/src/configurator.d.ts +14 -0
  242. package/packages/web-sdk/packages/configurator-core/src/input/configurator-input-manager.d.ts +4 -0
  243. package/packages/web-sdk/packages/configurator-core/src/roomle-configurator.d.ts +698 -0
  244. package/packages/web-sdk/packages/configurator-core/src/services/configurator-kernel-access-callback.d.ts +20 -0
  245. package/packages/web-sdk/packages/configurator-core/src/services/configurator-ui-callback.d.ts +296 -0
  246. package/packages/web-sdk/packages/configurator-core/src/services/unit-formatter.d.ts +47 -0
  247. package/packages/web-sdk/packages/configurator-core/src/static-files/fonts.d.ts +2 -0
  248. package/packages/web-sdk/packages/configurator-core/src/static-files/geometries.d.ts +1 -0
  249. package/packages/web-sdk/packages/configurator-core/src/static-files/settings.d.ts +1 -0
  250. package/packages/web-sdk/packages/configurator-core/src/static-files/textures.d.ts +1 -0
  251. package/packages/web-sdk/packages/configurator-core/src/utils/animation/animation-helper.d.ts +5 -0
  252. package/packages/web-sdk/packages/configurator-core/src/utils/animation/animation-value-map.d.ts +17 -0
  253. package/packages/web-sdk/packages/configurator-core/src/utils/animation/drag-insert-animation.d.ts +18 -0
  254. package/packages/web-sdk/packages/configurator-core/src/utils/animation/object-animations.d.ts +21 -0
  255. package/packages/web-sdk/packages/configurator-core/src/utils/async-dependency-loader.d.ts +9 -0
  256. package/packages/web-sdk/packages/configurator-core/src/utils/async-helper.d.ts +12 -0
  257. package/packages/web-sdk/packages/configurator-core/src/utils/component-dimensioning-helper.d.ts +25 -0
  258. package/packages/web-sdk/packages/configurator-core/src/utils/component-dimensioning.d.ts +31 -0
  259. package/packages/web-sdk/packages/configurator-core/src/utils/component-raycast-helper.d.ts +23 -0
  260. package/packages/web-sdk/packages/configurator-core/src/utils/configurator-history.d.ts +48 -0
  261. package/packages/web-sdk/packages/configurator-core/src/utils/dimensioning-helper.d.ts +61 -0
  262. package/packages/web-sdk/packages/configurator-core/src/utils/error-messages.d.ts +4 -0
  263. package/packages/web-sdk/packages/configurator-core/src/utils/event-dispatcher.d.ts +17 -0
  264. package/packages/web-sdk/packages/configurator-core/src/utils/global-definitions.d.ts +8 -0
  265. package/packages/web-sdk/packages/configurator-core/src/utils/imos-ix-poc-export-helper.d.ts +44 -0
  266. package/packages/web-sdk/packages/configurator-core/src/utils/indexeddb-adapter.d.ts +10 -0
  267. package/packages/web-sdk/packages/configurator-core/src/utils/injectables.d.ts +3 -0
  268. package/packages/web-sdk/packages/configurator-core/src/utils/parameter-helper.d.ts +15 -0
  269. package/packages/web-sdk/packages/configurator-core/src/utils/plugin-types.d.ts +10 -0
  270. package/packages/web-sdk/packages/configurator-core/src/utils/raycast-helper.d.ts +82 -0
  271. package/packages/web-sdk/packages/configurator-core/src/utils/selection-handler.d.ts +37 -0
  272. package/packages/web-sdk/packages/configurator-core/src/utils/sort-helper.d.ts +4 -0
  273. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/animation-helper.d.ts +1 -0
  274. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/async-test-helper.d.ts +1 -0
  275. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/fetch-helper.d.ts +8 -0
  276. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/globals-helper.d.ts +4 -0
  277. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/image-diff.d.ts +11 -0
  278. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/mock-data/materials.d.ts +12 -0
  279. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/mock-data/partlists.d.ts +2 -0
  280. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/preview-helper.d.ts +4 -0
  281. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/ui-mock.d.ts +18 -0
  282. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/utils.d.ts +4 -0
  283. package/packages/web-sdk/packages/configurator-core/src/utils/test-helpers/webgl-mock.d.ts +10 -0
  284. package/packages/web-sdk/packages/configurator-core/src/utils/text-with-background.d.ts +24 -0
  285. package/packages/web-sdk/packages/configurator-core/src/utils/ui-intersection-helper.d.ts +24 -0
  286. package/packages/web-sdk/packages/configurator-core/src/webgl/banana-for-scale.d.ts +14 -0
  287. package/packages/web-sdk/packages/configurator-core/src/webgl/configurator-mesh-generator.d.ts +12 -0
  288. package/packages/web-sdk/packages/configurator-core/src/webgl/configurator-scene-event-handler.d.ts +94 -0
  289. package/packages/web-sdk/packages/configurator-core/src/webgl/configurator-scene-manager.d.ts +161 -0
  290. package/packages/web-sdk/packages/configurator-core/src/webgl/environment/floor-environment.d.ts +34 -0
  291. package/packages/web-sdk/packages/configurator-core/src/webgl/lightsetting/default-light-setting.d.ts +16 -0
  292. package/packages/web-sdk/packages/configurator-core/src/webgl/lightsetting/hd-light-setting.d.ts +16 -0
  293. package/packages/web-sdk/packages/configurator-core/src/webgl/lightsetting/top-image-light-setting.d.ts +13 -0
  294. package/packages/web-sdk/packages/configurator-core/src/webgl/plugin-system.d.ts +44 -0
  295. package/packages/web-sdk/packages/glb-viewer-core/__tests__/adjujstable-camera-control-3d.d.ts +1 -0
  296. package/packages/web-sdk/packages/glb-viewer-core/__tests__/glb-viewer-scene-manager.d.ts +1 -0
  297. package/packages/web-sdk/packages/glb-viewer-core/__tests__/roomle-glb-viewer.d.ts +1 -0
  298. package/packages/web-sdk/packages/glb-viewer-core/mock/mock-scene-settings.d.ts +1 -0
  299. package/packages/web-sdk/packages/glb-viewer-core/src/camera-control/adjustable-camera-control-3d.d.ts +9 -0
  300. package/packages/web-sdk/packages/glb-viewer-core/src/glb-viewer-main.d.ts +1 -0
  301. package/packages/web-sdk/packages/glb-viewer-core/src/glb-viewer.d.ts +13 -0
  302. package/packages/web-sdk/packages/glb-viewer-core/src/input/glb-input-manager.d.ts +4 -0
  303. package/packages/web-sdk/packages/glb-viewer-core/src/roomle-glb-viewer.d.ts +108 -0
  304. package/packages/web-sdk/packages/glb-viewer-core/src/services/glb-render-worker.d.ts +28 -0
  305. package/packages/web-sdk/packages/glb-viewer-core/src/utils/global-definitions.d.ts +7 -0
  306. package/packages/web-sdk/packages/glb-viewer-core/src/utils/injectables.d.ts +3 -0
  307. package/packages/web-sdk/packages/glb-viewer-core/src/webgl/glb-viewer-light-setting.d.ts +12 -0
  308. package/packages/web-sdk/packages/glb-viewer-core/src/webgl/glb-viewer-scene-manager.d.ts +36 -0
  309. package/packages/web-sdk/packages/material-viewer/__tests__/roomle-material-viewer.d.ts +1 -0
  310. package/packages/web-sdk/packages/material-viewer/src/material-viewer-main.d.ts +1 -0
  311. package/packages/web-sdk/packages/material-viewer/src/material-viewer.d.ts +13 -0
  312. package/packages/web-sdk/packages/material-viewer/src/roomle-material-viewer-ui-callback.d.ts +11 -0
  313. package/packages/web-sdk/packages/material-viewer/src/roomle-material-viewer.d.ts +126 -0
  314. package/packages/web-sdk/packages/material-viewer/src/utils/global-definitions.d.ts +7 -0
  315. package/packages/web-sdk/packages/material-viewer/src/utils/injectables.d.ts +3 -0
  316. package/packages/web-sdk/packages/material-viewer/src/webgl/material-viewer-scene-manager.d.ts +48 -0
  317. package/packages/web-sdk/packages/planner-core/__tests__/Roomle-tool-cores.d.ts +1 -0
  318. package/packages/web-sdk/packages/planner-core/__tests__/camera-control-first-person.d.ts +1 -0
  319. package/packages/web-sdk/packages/planner-core/__tests__/configurable-configurator-plan-object-view-model.d.ts +1 -0
  320. package/packages/web-sdk/packages/planner-core/__tests__/configurator-plan-object-view-model.d.ts +1 -0
  321. package/packages/web-sdk/packages/planner-core/__tests__/plan-object-view-model.d.ts +1 -0
  322. package/packages/web-sdk/packages/planner-core/__tests__/plan-view-model.d.ts +1 -0
  323. package/packages/web-sdk/packages/planner-core/__tests__/planner-input-manager.d.ts +1 -0
  324. package/packages/web-sdk/packages/planner-core/__tests__/planner-kernel-access.d.ts +1 -0
  325. package/packages/web-sdk/packages/planner-core/__tests__/planner-mesh-generator.d.ts +1 -0
  326. package/packages/web-sdk/packages/planner-core/__tests__/planner-scene-event-handler.d.ts +1 -0
  327. package/packages/web-sdk/packages/planner-core/__tests__/planner-scene-manager.d.ts +1 -0
  328. package/packages/web-sdk/packages/planner-core/__tests__/planner-selection-handler.d.ts +1 -0
  329. package/packages/web-sdk/packages/planner-core/__tests__/planner.d.ts +1 -0
  330. package/packages/web-sdk/packages/planner-core/__tests__/roomle-planner.d.ts +1 -0
  331. package/packages/web-sdk/packages/planner-core/__tests__/static-plan-object-view-model.d.ts +1 -0
  332. package/packages/web-sdk/packages/planner-core/__tests__/webgl/lightsetting/planner-light-setting.d.ts +1 -0
  333. package/packages/web-sdk/packages/planner-core/mock/planner-kernel-access-mock.d.ts +23 -0
  334. package/packages/web-sdk/packages/planner-core/mock/planner-mock-helper.d.ts +40 -0
  335. package/packages/web-sdk/packages/planner-core/src/camera-control/camera-control-first-person.d.ts +43 -0
  336. package/packages/web-sdk/packages/planner-core/src/external-object-api-callbacks.d.ts +153 -0
  337. package/packages/web-sdk/packages/planner-core/src/external-object-api.d.ts +114 -0
  338. package/packages/web-sdk/packages/planner-core/src/input/planner-input-manager.d.ts +5 -0
  339. package/packages/web-sdk/packages/planner-core/src/lights/ceiling-light.d.ts +20 -0
  340. package/packages/web-sdk/packages/planner-core/src/lights/lamp-light.d.ts +25 -0
  341. package/packages/web-sdk/packages/planner-core/src/lights/light-group.d.ts +12 -0
  342. package/packages/web-sdk/packages/planner-core/src/lights/point-lamp-light.d.ts +22 -0
  343. package/packages/web-sdk/packages/planner-core/src/lights/rect-area-light.d.ts +22 -0
  344. package/packages/web-sdk/packages/planner-core/src/plan-xml.d.ts +1 -0
  345. package/packages/web-sdk/packages/planner-core/src/planner-main.d.ts +1 -0
  346. package/packages/web-sdk/packages/planner-core/src/planner.d.ts +16 -0
  347. package/packages/web-sdk/packages/planner-core/src/roomle-planner-ui-callback.d.ts +247 -0
  348. package/packages/web-sdk/packages/planner-core/src/roomle-planner.d.ts +516 -0
  349. package/packages/web-sdk/packages/planner-core/src/services/planner-kernel-access.d.ts +115 -0
  350. package/packages/web-sdk/packages/planner-core/src/utils/dimensions-helper.d.ts +13 -0
  351. package/packages/web-sdk/packages/planner-core/src/utils/global-definitions.d.ts +14 -0
  352. package/packages/web-sdk/packages/planner-core/src/utils/injectables.d.ts +3 -0
  353. package/packages/web-sdk/packages/planner-core/src/utils/map-to-ui-plan-objects.d.ts +5 -0
  354. package/packages/web-sdk/packages/planner-core/src/utils/measurements.d.ts +120 -0
  355. package/packages/web-sdk/packages/planner-core/src/utils/planner-scene-utils.d.ts +11 -0
  356. package/packages/web-sdk/packages/planner-core/src/utils/planner-selection-handler.d.ts +41 -0
  357. package/packages/web-sdk/packages/planner-core/src/view-model/ceiling-plan-element-view-model.d.ts +8 -0
  358. package/packages/web-sdk/packages/planner-core/src/view-model/construction-plan-object-view-model.d.ts +20 -0
  359. package/packages/web-sdk/packages/planner-core/src/view-model/floor-plan-element-view-model.d.ts +22 -0
  360. package/packages/web-sdk/packages/planner-core/src/view-model/measurement-line-plan-element-view-model.d.ts +83 -0
  361. package/packages/web-sdk/packages/planner-core/src/view-model/node-plan-element-view-model.d.ts +20 -0
  362. package/packages/web-sdk/packages/planner-core/src/view-model/plan-view-model.d.ts +174 -0
  363. package/packages/web-sdk/packages/planner-core/src/view-model/static-plan-object-view-model.d.ts +17 -0
  364. package/packages/web-sdk/packages/planner-core/src/view-model/wall-attic-plan-element-view-model.d.ts +10 -0
  365. package/packages/web-sdk/packages/planner-core/src/view-model/wall-plan-element-view-model.d.ts +48 -0
  366. package/packages/web-sdk/packages/planner-core/src/webgl/construction-top-view.d.ts +30 -0
  367. package/packages/web-sdk/packages/planner-core/src/webgl/continuous-drawing-helper.d.ts +16 -0
  368. package/packages/web-sdk/packages/planner-core/src/webgl/draggable-node.d.ts +18 -0
  369. package/packages/web-sdk/packages/planner-core/src/webgl/lightsetting/planner-light-setting.d.ts +18 -0
  370. package/packages/web-sdk/packages/planner-core/src/webgl/paper-background.d.ts +5 -0
  371. package/packages/web-sdk/packages/planner-core/src/webgl/planner-element-highlighter.d.ts +17 -0
  372. package/packages/web-sdk/packages/planner-core/src/webgl/planner-mesh-generator.d.ts +23 -0
  373. package/packages/web-sdk/packages/planner-core/src/webgl/planner-scene-event-handler.d.ts +166 -0
  374. package/packages/web-sdk/packages/planner-core/src/webgl/planner-scene-manager.d.ts +229 -0
  375. package/packages/web-sdk/packages/test-helpers/unit/global-setup.d.ts +1 -0
  376. package/packages/web-sdk/packages/test-helpers/unit/modules-setup.d.ts +1 -0
  377. package/packages/web-sdk/packages/tools-core/src/roomle-tools-core.d.ts +38 -0
  378. package/packages/web-sdk/packages/tools-core/src/tools-core.d.ts +13 -0
  379. package/packages/web-sdk/packages/tools-core/src/utils/global-definitions.d.ts +7 -0
  380. package/packages/web-sdk/packages/tools-core/src/utils/injectables.d.ts +3 -0
  381. package/packages/web-sdk/packages/typings/configurator-kernel-container.d.ts +103 -0
  382. package/packages/web-sdk/packages/typings/ems.d.ts +27 -0
  383. package/packages/web-sdk/packages/typings/external-objects.d.ts +20 -0
  384. package/packages/web-sdk/packages/typings/global-definitions.d.ts +33 -0
  385. package/packages/web-sdk/packages/typings/helper.d.ts +2 -0
  386. package/packages/web-sdk/packages/typings/kernel.d.ts +650 -0
  387. package/packages/web-sdk/packages/typings/planner-kernel-container.d.ts +379 -0
  388. package/packages/web-sdk/packages/typings/planner.d.ts +381 -0
  389. package/packages/web-sdk/packages/typings/rapi-types.d.ts +510 -0
  390. package/packages/web-sdk/packages/typings/shims.d.ts +12 -0
  391. package/packages/web-sdk/packages/typings/stats.d.ts +4 -0
  392. package/packages/web-sdk/packages/vite-plugins/vite-plugin-auto-workers.d.ts +8 -0
  393. package/packages/web-sdk/packages/vite-plugins/vite-plugin-bundle-sw.d.ts +10 -0
  394. package/packages/web-sdk/packages/workers/__tests__/asset-loader.d.ts +1 -0
  395. package/packages/web-sdk/packages/workers/__tests__/budgeteer.sw.d.ts +1 -0
  396. package/packages/web-sdk/packages/workers/__tests__/communication-interface.d.ts +1 -0
  397. package/packages/web-sdk/packages/workers/src/asset-loader.d.ts +8 -0
  398. package/packages/web-sdk/packages/workers/src/asset-loader.worker.d.ts +1 -0
  399. package/packages/web-sdk/packages/workers/src/budgeteer/constants.d.ts +41 -0
  400. package/packages/web-sdk/packages/workers/src/budgeteer.sw.d.ts +16 -0
  401. package/packages/web-sdk/packages/workers/src/communication-interface.d.ts +29 -0
  402. package/packages/web-sdk/packages/workers/src/main-thread-to-worker.d.ts +8 -0
  403. package/packages/web-sdk/packages/workers/src/static-files/workers.d.ts +2 -0
  404. package/packages/web-sdk/packages/workers/src/worker-to-main-thread.d.ts +6 -0
  405. package/roomle-embedding-lib.es.min.js +1 -1
  406. package/roomle-embedding-lib.umd.min.js +1 -1
  407. package/src/common/components/collection-view/-utils/ParameterTooltip.vue.d.ts +2 -4
  408. package/src/common/components/collection-view/-utils/TabbedNav.vue.d.ts +6 -6
  409. package/src/common/components/collection-view/-utils/collection-view-dynamic-components.d.ts +79 -79
  410. package/src/common/components/collection-view/-utils/collection-view-props.d.ts +2 -2
  411. package/src/common/components/collection-view/-utils/types.d.ts +2 -2
  412. package/src/common/components/collection-view/CollectionView.vue.d.ts +8 -8
  413. package/src/common/components/collection-view/CollectionViewElement.vue.d.ts +11 -11
  414. package/src/common/components/drawer-layout/DrawerElement.vue.d.ts +10 -11
  415. package/src/common/components/drawer-layout/DrawerLayout.vue.d.ts +7 -7
  416. package/src/common/components/notifications/LoadSavedPlanNotification.vue.d.ts +0 -2
  417. package/src/common/components/overlays/PartList.vue.d.ts +14 -16
  418. package/src/common/components/overlays/part-list/PartListEntry.vue.d.ts +5 -5
  419. package/src/common/components/overlays/part-list/PartListPrint.vue.d.ts +0 -2
  420. package/src/common/components/overlays/part-list/PartListRow.vue.d.ts +1 -1
  421. package/src/common/components/overlays/part-list/partlist-setup.d.ts +3 -3
  422. package/src/common/components/parameters/ColorParameter.vue.d.ts +4 -7
  423. package/src/common/components/tool-tip/MoreInfoTooltipContent.vue.d.ts +2 -6
  424. package/src/common/components/utils/-utils/notifications.d.ts +1 -1
  425. package/src/common/composables/use-configurator-api.d.ts +1 -2
  426. package/src/common/composables/use-core-instances.d.ts +1 -3
  427. package/src/common/composables/use-fetch-root-tag.d.ts +1 -1
  428. package/src/common/composables/use-item-variants.d.ts +1 -1
  429. package/src/common/composables/use-materials-and-ral-colors.d.ts +2 -4
  430. package/src/common/composables/use-materials-grouped.d.ts +1 -1
  431. package/src/common/composables/use-measurement-styles.d.ts +2 -2
  432. package/src/common/composables/use-open-close-anim.d.ts +0 -1
  433. package/src/common/composables/use-product-price.d.ts +2 -2
  434. package/src/common/composables/use-sdk-event-emitter-listener.d.ts +7 -7
  435. package/src/common/composables/use-selected-object-center.d.ts +1 -1
  436. package/src/common/composables/use-selected-plan-element.d.ts +0 -1
  437. package/src/common/composables/use-static-item-parameters.d.ts +6 -7
  438. package/src/common/composables/use-wall-dimensions-cache.d.ts +1 -1
  439. package/src/common/store/common-ui-state.d.ts +1 -0
  440. package/src/common/store/common-ui-store.d.ts +6 -127
  441. package/src/common/utils/color.d.ts +3 -5
  442. package/src/common/utils/helper.d.ts +8 -9
  443. package/src/common/utils/parameters.d.ts +3 -3
  444. package/src/common/utils/root-tags.d.ts +2 -3
  445. package/src/common/utils/types.d.ts +5 -5
  446. package/src/common/utils/ui-actions.d.ts +1 -1
  447. package/src/configurator/business-logic/roomle-sdk-wrapper.d.ts +7 -7
  448. package/src/configurator/business-logic/sdk-connector-configurator.d.ts +1 -1
  449. package/src/configurator/business-logic/sdk-connector.d.ts +12 -12
  450. package/src/configurator/business-logic/ui-callback.d.ts +1 -1
  451. package/src/configurator/components/addons/PossibleChildren.vue.d.ts +0 -2
  452. package/src/configurator/components/grid-view/-utils/CollapsedView.vue.d.ts +4 -4
  453. package/src/configurator/components/grid-view/-utils/ExpandedView.vue.d.ts +16 -16
  454. package/src/configurator/components/grid-view/-utils/GridViewElement.vue.d.ts +2 -3
  455. package/src/configurator/components/grid-view/-utils/GridViewHelper.d.ts +3 -3
  456. package/src/configurator/components/grid-view/-utils/GridViewMaterialElement.vue.d.ts +2 -4
  457. package/src/configurator/components/grid-view/-utils/GridViewThumbnailsElement.vue.d.ts +2 -4
  458. package/src/configurator/components/grid-view/-utils/GridViewTooltipElement.vue.d.ts +2 -4
  459. package/src/configurator/components/grid-view/GridView.vue.d.ts +14 -15
  460. package/src/configurator/components/overlays/ar/OpenARView.vue.d.ts +0 -2
  461. package/src/configurator/components/parameters/types/DisabledParameters.vue.d.ts +3 -3
  462. package/src/configurator/components/parameters/types/MaterialParameter.vue.d.ts +13 -15
  463. package/src/configurator/components/parameters/types/OptionsParameter.vue.d.ts +0 -2
  464. package/src/configurator/components/parameters/types/ProductVariant.vue.d.ts +13 -14
  465. package/src/configurator/components/parameters/types/RangeParameter.vue.d.ts +0 -1
  466. package/src/configurator/components/parameters/types/ThumbnailsParameter.vue.d.ts +13 -14
  467. package/src/configurator/components/utils/-utils/SceneOffsetResizer.d.ts +2 -2
  468. package/src/configurator/embedding/exposed-api.d.ts +5 -5
  469. package/src/configurator/embedding/exposed-callbacks.d.ts +3 -4
  470. package/src/configurator/embedding/helper.d.ts +7 -8
  471. package/src/configurator/embedding/roomle-configurator-api.d.ts +4 -5
  472. package/src/configurator/embedding/types.d.ts +3 -3
  473. package/src/configurator/store/core-data.d.ts +1 -1
  474. package/src/configurator/store/core-state.d.ts +1 -1
  475. package/src/configurator/store/ui-state.d.ts +4 -4
  476. package/src/planner/business-logic/general-room-parameters.d.ts +0 -2
  477. package/src/planner/business-logic/rooms.d.ts +4 -4
  478. package/src/planner/business-logic/sdk-connector-planner.d.ts +8 -8
  479. package/src/planner/components/ObjectList.vue.d.ts +2 -4
  480. package/src/planner/components/measurements/MeasurementDisplayComponent.vue.d.ts +2 -9
  481. package/src/planner/components/measurements/ShowConstructionMeasurements.vue.d.ts +2 -4
  482. package/src/planner/components/measurements/ShowFloorsAreasData.vue.d.ts +0 -2
  483. package/src/planner/components/measurements/ShowMeasurementLineDimension.vue.d.ts +2 -4
  484. package/src/planner/components/measurements/ShowObjectMeasurements.vue.d.ts +0 -2
  485. package/src/planner/components/measurements/ShowWallAtticMeasurements.vue.d.ts +0 -2
  486. package/src/planner/components/measurements/ShowWallMeasurements.vue.d.ts +0 -2
  487. package/src/planner/components/overlays/ProductList.vue.d.ts +2 -3
  488. package/src/planner/components/overlays/ProductSettings.vue.d.ts +3 -3
  489. package/src/planner/components/overlays/product-list/ProductListEntry.vue.d.ts +2 -3
  490. package/src/planner/components/overlays/product-list/ProductListType.vue.d.ts +2 -3
  491. package/src/planner/components/overlays/product-list/ProductsTotalPrice.vue.d.ts +2 -2
  492. package/src/planner/components/overlays/product-settings/ProductPositions.vue.d.ts +2 -4
  493. package/src/planner/components/overlays/product-settings/ProductRangeControl.vue.d.ts +6 -126
  494. package/src/planner/components/overlays/product-settings/ProductRotation.vue.d.ts +2 -4
  495. package/src/planner/components/overlays/product-settings/ProductSettingsInfos.vue.d.ts +2 -5
  496. package/src/planner/components/overlays/product-settings/ProductSize.vue.d.ts +2 -4
  497. package/src/planner/components/overlays/product-settings/ProductXYZChanger.vue.d.ts +2 -5
  498. package/src/planner/components/overlays/rooms/ConstructionVariants.vue.d.ts +2 -5
  499. package/src/planner/components/overlays/rooms/DoorParametersSetting.vue.d.ts +51 -55
  500. package/src/planner/components/overlays/rooms/ElementLengthScaling.vue.d.ts +3 -4
  501. package/src/planner/components/overlays/rooms/RoomFloorAndWallSettings.vue.d.ts +2 -4
  502. package/src/planner/components/overlays/rooms/RoomGeneralSettings.vue.d.ts +2 -4
  503. package/src/planner/components/overlays/rooms/RoomRangeParameter.vue.d.ts +0 -1
  504. package/src/planner/components/overlays/rooms/RoomsList.vue.d.ts +2 -2
  505. package/src/planner/components/overlays/rooms/SlopingRoof.vue.d.ts +2 -4
  506. package/src/planner/components/overlays/rooms/SlopingRoofDirection.vue.d.ts +4 -7
  507. package/src/planner/components/overlays/rooms/WallGeneralSettings.vue.d.ts +2 -4
  508. package/src/planner/components/overlays/rooms/WindowParametersSetting.vue.d.ts +3 -4
  509. package/src/planner/components/utils/AssureConfiguratorHandlers.vue.d.ts +1 -1
  510. package/src/planner/components/utils/AssureSdkHandlers.vue.d.ts +2 -2
  511. package/src/planner/components/utils/ConfiguratorParameter.vue.d.ts +3 -3
  512. package/src/planner/components/utils/MeasurementsString.vue.d.ts +4 -8
  513. package/src/planner/store/planner-core-data.d.ts +1 -1
  514. package/src/planner/store/planner-ui-state.d.ts +4 -4
  515. package/src/planner/utils/interaction.d.ts +1 -5
  516. package/src/planner/utils/planner-sidebar.d.ts +3 -4
  517. package/src/viewer/business-logic/sdk-connector-viewer.d.ts +1 -1
  518. package/touch-drag-BEct6jbW.mjs +1 -0
  519. package/from-custom-view-BrrXfWzP.mjs +0 -1
  520. package/from-website-BOvSwnL1.mjs +0 -1
  521. package/touch-drag-BYVdETHB.mjs +0 -1
@@ -1 +1 @@
1
- var e=Object.defineProperty,t=(t,s,r)=>((t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r)(t,"symbol"!=typeof s?s+"":s,r);class s{constructor(e,s,r,i){t(this,"_side"),t(this,"_incomingMessageBus",null),t(this,"_outgoingMessageBus",null),t(this,"_execMessage",null),this._side=e,this._incomingMessageBus=s,this._outgoingMessageBus=r,this._execMessage=i,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(e){this._outgoingMessageBus=e}setMessageExecution(e){this._execMessage=e}sendMessage(e,t=[]){return new Promise(((s,r)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const i=new MessageChannel;i.port1.onmessage=e=>{if(!e||!e.data)return i.port1.close(),i.port2.close(),r(new Error(this._side+" received message but response can not be interpreted"));let t;try{t=JSON.parse(e.data)}catch(e){return i.port1.close(),i.port2.close(),this._prepareError(e),r(e)}t.error?r(t.error):void 0!==t.result?s(t.result):s(void 0),i.port1.close(),i.port2.close()};let n="";try{n=JSON.stringify({message:e,args:t})}catch{return r(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return r(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(n,"*",[i.port2])}))}_handleMessage(e){const t=e.ports&&Array.isArray(e.ports)&&e.ports.length>0?e.ports[0]:null;if(e.data&&t)try{const s=JSON.parse(e.data);if(!this._execMessage)return t.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const r=this._execMessage(s,e);if(void 0===r)return;r.then(((e={})=>{let s,r;"object"==typeof e&&null!==e&&(s=e.error,r=e.result),s?t.postMessage(JSON.stringify({error:s})):void 0!==r?t.postMessage(JSON.stringify({result:r})):t.postMessage(JSON.stringify({result:e}))}),(e=>{t.postMessage(JSON.stringify({error:this._prepareError(e)}))}))}catch(e){t.postMessage(JSON.stringify({error:this._prepareError(e)}))}}_prepareError(e){return"string"==typeof e?this._side+": "+e:(e.message=this._side+": "+e.message,e.message)}}const r=["127.0.0.1","localhost","0.0.0.0"],i=["language","browserLanguage","userLanguage","systemLanguage"],n=(e,t)=>{for(const s in t)try{t[s].constructor===Object?e[s]=n(e[s],t[s]):e[s]=t[s]}catch{e[s]=t[s]}return e};var a=(e=>(e.BOTTOM_BAR="bottom_bar",e.PARTLIST_BOUNDS="partlist_bounds",e.INTERACTION_NOTES="interaction_notes",e.PARAMETER_GROUPS="parameter_groups",e))(a||{}),o={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const l={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[a.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1,openCloseAnimation:!1},rotationSnapDegrees:10,interactionsCollapsed:!1},c=e=>{if(!e)return;const t=Object.keys(e);for(const s of t){const t=e[s];if(!Array.isArray(t)&&"object"==typeof t&&null!==t&&c(t),Array.isArray(t))for(const e of t)c(e);("true"===t||"false"===t)&&(e[s]="true"===t)}},u=()=>/(android)/i.test(navigator.userAgent);class g{constructor(){t(this,"_messageHandler",null),t(this,"isSetupDone",!1),t(this,"viewName","main"),t(this,"plugins",{}),t(this,"pluginsLoaded",[]),t(this,"ui",{callbacks:null}),t(this,"extended",{callbacks:null}),t(this,"configurator",{callbacks:null}),t(this,"analytics",{callbacks:{}}),t(this,"rapi",{callbacks:{}}),t(this,"global",{callbacks:{}})}setMessageHandler(e){this._messageHandler=e}handleSetup(e){const{methods:t,callbacks:s}=e;t.forEach((e=>{const t=e.split("."),s=t[0],r=t[1];this[s]||(this[s]={}),this[s][r]=function(){if(this._messageHandler)return this._messageHandler.sendMessage(e,[...arguments])}.bind(this)})),s.forEach((e=>{const t=e.split("."),s=t[0],r=t[1],i=t[2];this[s]||(this[s]={}),this[s][r]||(this[s][r]={}),this[s][r][i]=()=>{}})),this.isSetupDone=!0}executeMessage({message:e,args:t}){const s=e.split("."),r=s[0],i=s[1],n=3===s.length?s[2]:null;if(n&&this[r][i][n]){const e=this[r][i][n](...t);return e instanceof Promise?e.then((e=>({result:e}))):void 0!==e?Promise.resolve({result:e}):Promise.resolve({result:null})}return Promise.reject('Message "'+e+'" is unkown')}setupPlugins(e,t,s="website"){for(const r of e)"string"==typeof r&&"dragIn"===r?this.pluginsLoaded.push(new Promise(((e,r)=>{try{import("./drag-in-DNbVoUkq.mjs").then((e=>e.l)).then((({DragIn:i})=>{const n=new i(this.ui,t,s,this.viewName);n.init().then((()=>{this.plugins.dragIn=n,e()}),r)}))}catch(e){r(e)}}))):r.name&&r.loader&&this.pluginsLoaded.push(new Promise(((e,i)=>{try{r.loader().then((n=>{const a=new n(this.ui,t,s,this.viewName);a.init().then((()=>{this.plugins[r.name]=a,e()}),i)}))}catch(e){i(e)}})))}}const h=()=>{let e,t;return{promise:new Promise(((s,r)=>{e=s,t=r})),resolve:e,reject:t}},d=(e,t,s)=>{let r=null;Object.defineProperty(e,t,{get:()=>r||s,set(e){r=null!=e&&e.mute?e.value:e}})},m=()=>.01*window.innerHeight+"px",p=e=>{e&&setTimeout((()=>e.style.setProperty(_,m())),0)},f="rml-styles",_="--rml-full-height",w="rml-container",b="rml-fill",y="rml-pos",v="rml-android-height",M="rml-overflow-hidden",S=new Map;class P extends g{constructor(e,r,i,n,a){if(super(),t(this,"_waitForIframe"),t(this,"_container"),t(this,"_configuratorSettings"),t(this,"_initData",{}),t(this,"_iframe"),!e||"string"!=typeof e.id)throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(S.has(r))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(f)){const e=i.zIndex||9999999,t=document.createElement("style");t.type="text/css",t.id=f;const s="transition:all ease-in-out 450ms;",r=["-webkit-","-o-"].reduce(((e,t)=>e+(t+s)),"")+s,n=m();t.innerHTML=`\n .${w}{${_}:${n};}\n .${y}{position:fixed;top:0;left:0;z-index:${e};opacity:0}\n .rml-transition{${r}}\n .${b}{width:100%;height:100%;opacity:1}\n .${v}{height:calc(var(${_},1vh)*100)}\n .${M}{overflow:hidden}\n `,document.head.appendChild(t)}this._executeMessage=this._executeMessage.bind(this);const o=new s("website",window,null,this._executeMessage);this.setMessageHandler(o),this._onResize=this._onResize.bind(this),u()&&window.addEventListener("resize",this._onResize),this._container=r,this._initData=i,this._configuratorSettings=e;const l=this._createIframe();this._onUseFullPage=this._onUseFullPage.bind(this),this._onBackToWebsite=this._onBackToWebsite.bind(this),this._waitForIframe=a,this._container.appendChild(l),this._iframe=l,this.setupPlugins(n,this._iframe),S.set(r,!0)}static createPlanner(e,t,s,r=[]){return this._create(e,t,s,r)}static async connect(e,t=[]){const r=new g;r.viewName=e;const{resolve:i,promise:n}=h(),{resolve:a,promise:o}=h(),l=new s("custom-view-"+e,window,window.parent,(({message:e,args:t})=>{switch(e){case"registerCustomViewDone":i();break;case"returnMethods":r.handleSetup(t[0]),a();break;default:if(r.isSetupDone)return r.executeMessage({message:e,args:t})}}));r.setMessageHandler(l);const c=[e];return l.sendMessage("registerCustomView",c),await n,l.sendMessage("getMethods",c),await o,r.setupPlugins(t,document.body,"custom-view"),await Promise.allSettled(r.pluginsLoaded),r}static createConfigurator(e,t,s,r=[]){return this._create(e,t,s,r)}static create(e,t,s,r){return this._create(e,t,s,r)}static createViewer(e,t,s,r=[]){return this._create(e,t,s,r)}static async _create(e,t,s,a){return new Promise((async(u,g)=>{try{const g=n((()=>{const e=(e=>JSON.parse(JSON.stringify(e)))(l);e.locale||(e.locale=((e=null)=>{const t=window.navigator;if(e)return e.substr(0,2);if(Array.isArray(t.languages)&&t.languages.length>0)return t.languages[0].substr(0,2);for(let e=0,s=i.length;e<s;e++){const s=t[i[e]];if(s)return s.substr(0,2)}return"en"})()),"(idle)"===e.id&&delete e.id;const t=(()=>{const e=(()=>{try{return window.self!==window.top}catch{return!0}})();let t=window.location.href;if(e){if(!document.referrer)return null;t=document.referrer}const{hostname:s}=new URL(t);return s})();return t&&(e=>!!(r.includes(e)||e.endsWith("roomle.com")||e.endsWith("gitlab.io")||e.endsWith("gitlab.com")))(t)&&(e.configuratorId="demoConfigurator"),e.customApiUrl=o.VITE_RAPI_URL,e.emails=!1,e})(),(c(h=s),null!=h&&h.customApiUrl&&(h.customApiUrl=decodeURIComponent(h.customApiUrl)),h.shareUrl&&(h.deeplink=h.shareUrl.replace("<CONF_ID>","#CONFIGURATIONID#")),h));(e=>{e.featureFlags||(e.featureFlags={}),"boolean"!=typeof e.featureFlags.realPartList&&(e.featureFlags.realPartList=!0),"boolean"!=typeof e.featureFlags.globalCallbacks&&(e.featureFlags.globalCallbacks=!0),"boolean"!=typeof e.featureFlags.mocAr&&(e.featureFlags.mocAr=!1)})(g);const d=await(async(e,t)=>{if("string"!=typeof e)throw new Error('Configurator ID is not a string type: "'+typeof e+'"');const s=t.customApiUrl?t.customApiUrl:"https://api.roomle.com/v2",r=t.overrideTenant||9,i=s+"/configurators/"+e,n="roomle_portal_v2",a="03-"+window.btoa((new Date).toISOString()+";anonymous;"+n),o=new Request(i,{method:"GET",headers:new Headers({apiKey:n,currentTenant:r,locale:"en",language:"en",device:1,token:a,platform:"web"}),mode:"cors",cache:"default"}),l=await fetch(o),{configurator:c}=await l.json();return c})(e,g);s=((e,t)=>{t.configuratorId=e.id;const s=e.settings||{};return!t.overrideTenant&&e.tenant&&(t.overrideTenant=e.tenant),((e,t)=>{const s=JSON.parse(JSON.stringify(e));return n(s,t)})(s,t)})(d,g);const m=new this(d,t,s,a,u);return await Promise.allSettled(m.pluginsLoaded),m}catch(e){return g(e)}var h}))}teardown(){this._container&&S.delete(this._container);const e=this._container.querySelector("iframe");e&&this._container.removeChild(e),window.removeEventListener("resize",this._onResize)}_createIframe(){var e;const t=document.createElement("iframe");let s=(null==(e=this._configuratorSettings)?void 0:e.url)||"https://www.roomle.com/t/cp/";return this._initData.useLocalRoomle&&(s=location.href.replace("embedding.html","")),location.href.includes("roomle.gitlab.io")&&(s=location.href.replace("embedding.html","index.html")),this._initData.overrideServerUrl&&(s=this._initData.overrideServerUrl),t.src=s,t.classList.add(w),t.classList.add(b),t}_onResize(){p(this._iframe)}_onUseFullPage(){this._iframe.classList.add(y),document.documentElement.classList.add(M),window.document.body.classList.add(M),u()&&(p(this._iframe),this._iframe.classList.add(v))}_onBackToWebsite(){this._iframe.classList.remove(y),this._iframe.classList.remove(v),document.documentElement.classList.remove(M),window.document.body.classList.remove(M)}_executeMessage({message:e,args:t},s){var r;if(s.source&&s.source===(null==(r=this._iframe)?void 0:r.contentWindow))return"requestBoot"===e?this._messageHandler?(this._messageHandler.setOutgoingMessageBus(s.source),Promise.resolve({result:this._initData})):Promise.resolve({error:"MessageHandler not set"}):"setup"===e?(this.handleSetup(t[0]),d(this.ui.callbacks,"onUseFullPage",this._onUseFullPage),d(this.ui.callbacks,"onBackToWebsite",this._onBackToWebsite),this._waitForIframe(this),setTimeout((()=>{this._messageHandler&&this._messageHandler.sendMessage("websiteReady")}),0),Promise.resolve({result:null})):this.executeMessage({message:e,args:t})}}export{P as default};
1
+ var e=Object.defineProperty,t=(t,s,r)=>((t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r)(t,"symbol"!=typeof s?s+"":s,r);class s{constructor(e,s,r,i){t(this,"_side"),t(this,"_incomingMessageBus",null),t(this,"_outgoingMessageBus",null),t(this,"_execMessage",null),this._side=e,this._incomingMessageBus=s,this._outgoingMessageBus=r,this._execMessage=i,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(e){this._outgoingMessageBus=e}setMessageExecution(e){this._execMessage=e}sendMessage(e,t=[]){return new Promise((s,r)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const i=new MessageChannel;i.port1.onmessage=e=>{if(!e||!e.data)return i.port1.close(),i.port2.close(),r(new Error(this._side+" received message but response can not be interpreted"));let t;try{t=JSON.parse(e.data)}catch(e){return i.port1.close(),i.port2.close(),this._prepareError(e),r(e)}t.error?r(t.error):void 0!==t.result?s(t.result):s(void 0),i.port1.close(),i.port2.close()};let n="";try{n=JSON.stringify({message:e,args:t})}catch{return r(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return r(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(n,"*",[i.port2])})}_handleMessage(e){const t=e.ports&&Array.isArray(e.ports)&&e.ports.length>0?e.ports[0]:null;if(e.data&&t)try{const s=JSON.parse(e.data);if(!this._execMessage)return t.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const r=this._execMessage(s,e);if(void 0===r)return;r.then((e={})=>{let s,r;"object"==typeof e&&null!==e&&(s=e.error,r=e.result),s?t.postMessage(JSON.stringify({error:s})):void 0!==r?t.postMessage(JSON.stringify({result:r})):t.postMessage(JSON.stringify({result:e}))},e=>{t.postMessage(JSON.stringify({error:this._prepareError(e)}))})}catch(e){t.postMessage(JSON.stringify({error:this._prepareError(e)}))}}_prepareError(e){return"string"==typeof e?this._side+": "+e:(e.message=this._side+": "+e.message,e.message)}}const r=["127.0.0.1","localhost","0.0.0.0"],i=["language","browserLanguage","userLanguage","systemLanguage"],n=(e,t)=>{for(const s in t)try{t[s].constructor===Object?e[s]=n(e[s],t[s]):e[s]=t[s]}catch{e[s]=t[s]}return e};var a=(e=>(e.BOTTOM_BAR="bottom_bar",e.PARTLIST_BOUNDS="partlist_bounds",e.INTERACTION_NOTES="interaction_notes",e.PARAMETER_GROUPS="parameter_groups",e))(a||{}),o={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const l={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[a.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1,openCloseAnimation:!1},rotationSnapDegrees:10,interactionsCollapsed:!1},c=e=>{if(!e)return;const t=Object.keys(e);for(const s of t){const t=e[s];if(!Array.isArray(t)&&"object"==typeof t&&null!==t&&c(t),Array.isArray(t))for(const e of t)c(e);("true"===t||"false"===t)&&(e[s]="true"===t)}},u=()=>/(android)/i.test(navigator.userAgent);class g{constructor(){t(this,"_messageHandler",null),t(this,"isSetupDone",!1),t(this,"viewName","main"),t(this,"plugins",{}),t(this,"pluginsLoaded",[]),t(this,"ui",{callbacks:null}),t(this,"extended",{callbacks:null}),t(this,"configurator",{callbacks:null}),t(this,"analytics",{callbacks:{}}),t(this,"rapi",{callbacks:{}}),t(this,"global",{callbacks:{}})}setMessageHandler(e){this._messageHandler=e}handleSetup(e){const{methods:t,callbacks:s}=e;t.forEach(e=>{const t=e.split("."),s=t[0],r=t[1];this[s]||(this[s]={}),this[s][r]=function(){if(this._messageHandler)return this._messageHandler.sendMessage(e,[...arguments])}.bind(this)}),s.forEach(e=>{const t=e.split("."),s=t[0],r=t[1],i=t[2];this[s]||(this[s]={}),this[s][r]||(this[s][r]={}),this[s][r][i]=()=>{}}),this.isSetupDone=!0}executeMessage({message:e,args:t}){const s=e.split("."),r=s[0],i=s[1],n=3===s.length?s[2]:null;if(n&&this[r][i][n]){const e=this[r][i][n](...t);return e instanceof Promise?e.then(e=>({result:e})):void 0!==e?Promise.resolve({result:e}):Promise.resolve({result:null})}return Promise.reject('Message "'+e+'" is unkown')}setupPlugins(e,t,s="website"){for(const r of e)"string"==typeof r&&"dragIn"===r?this.pluginsLoaded.push(new Promise((e,r)=>{try{import("./drag-in-BWioG4OL.mjs").then(e=>e.l).then(({DragIn:i})=>{const n=new i(this.ui,t,s,this.viewName);n.init().then(()=>{this.plugins.dragIn=n,e()},r)})}catch(e){r(e)}})):r.name&&r.loader&&this.pluginsLoaded.push(new Promise((e,i)=>{try{r.loader().then(n=>{const a=new n(this.ui,t,s,this.viewName);a.init().then(()=>{this.plugins[r.name]=a,e()},i)})}catch(e){i(e)}}))}}const h=()=>{let e,t;return{promise:new Promise((s,r)=>{e=s,t=r}),resolve:e,reject:t}},d=(e,t,s)=>{let r=null;Object.defineProperty(e,t,{get:()=>r||s,set(e){r=null!=e&&e.mute?e.value:e}})},m=()=>.01*window.innerHeight+"px",p=e=>{e&&setTimeout(()=>e.style.setProperty(_,m()),0)},f="rml-styles",_="--rml-full-height",w="rml-container",b="rml-fill",y="rml-pos",v="rml-android-height",M="rml-overflow-hidden",S=new Map;class P extends g{constructor(e,r,i,n,a){if(super(),t(this,"_waitForIframe"),t(this,"_container"),t(this,"_configuratorSettings"),t(this,"_initData",{}),t(this,"_iframe"),!e||"string"!=typeof e.id)throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(S.has(r))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(f)){const e=i.zIndex||9999999,t=document.createElement("style");t.type="text/css",t.id=f;const s="transition:all ease-in-out 450ms;",r=["-webkit-","-o-"].reduce((e,t)=>e+(t+s),"")+s,n=m();t.innerHTML=`\n .${w}{${_}:${n};}\n .${y}{position:fixed;top:0;left:0;z-index:${e};opacity:0}\n .rml-transition{${r}}\n .${b}{width:100%;height:100%;opacity:1}\n .${v}{height:calc(var(${_},1vh)*100)}\n .${M}{overflow:hidden}\n `,document.head.appendChild(t)}this._executeMessage=this._executeMessage.bind(this);const o=new s("website",window,null,this._executeMessage);this.setMessageHandler(o),this._onResize=this._onResize.bind(this),u()&&window.addEventListener("resize",this._onResize),this._container=r,this._initData=i,this._configuratorSettings=e;const l=this._createIframe();this._onUseFullPage=this._onUseFullPage.bind(this),this._onBackToWebsite=this._onBackToWebsite.bind(this),this._waitForIframe=a,this._container.appendChild(l),this._iframe=l,this.setupPlugins(n,this._iframe),S.set(r,!0)}static createPlanner(e,t,s,r=[]){return this._create(e,t,s,r)}static async connect(e,t=[]){const r=new g;r.viewName=e;const{resolve:i,promise:n}=h(),{resolve:a,promise:o}=h(),l=new s("custom-view-"+e,window,window.parent,({message:e,args:t})=>{switch(e){case"registerCustomViewDone":i();break;case"returnMethods":r.handleSetup(t[0]),a();break;default:if(r.isSetupDone)return r.executeMessage({message:e,args:t})}});r.setMessageHandler(l);const c=[e];return l.sendMessage("registerCustomView",c),await n,l.sendMessage("getMethods",c),await o,r.setupPlugins(t,document.body,"custom-view"),await Promise.allSettled(r.pluginsLoaded),r}static createConfigurator(e,t,s,r=[]){return this._create(e,t,s,r)}static create(e,t,s,r){return this._create(e,t,s,r)}static createViewer(e,t,s,r=[]){return this._create(e,t,s,r)}static async _create(e,t,s,a){return new Promise(async(u,g)=>{try{const g=n((()=>{const e=(e=>JSON.parse(JSON.stringify(e)))(l);e.locale||(e.locale=((e=null)=>{const t=window.navigator;if(e)return e.substr(0,2);if(Array.isArray(t.languages)&&t.languages.length>0)return t.languages[0].substr(0,2);for(let e=0,s=i.length;e<s;e++){const s=t[i[e]];if(s)return s.substr(0,2)}return"en"})()),"(idle)"===e.id&&delete e.id;const t=(()=>{const e=(()=>{try{return window.self!==window.top}catch{return!0}})();let t=window.location.href;if(e){if(!document.referrer)return null;t=document.referrer}const{hostname:s}=new URL(t);return s})();return t&&(e=>!!(r.includes(e)||e.endsWith("roomle.com")||e.endsWith("gitlab.io")||e.endsWith("gitlab.com")))(t)&&(e.configuratorId="demoConfigurator"),e.customApiUrl=o.VITE_RAPI_URL,e.emails=!1,e})(),(c(h=s),null!=h&&h.customApiUrl&&(h.customApiUrl=decodeURIComponent(h.customApiUrl)),h.shareUrl&&(h.deeplink=h.shareUrl.replace("<CONF_ID>","#CONFIGURATIONID#")),h));(e=>{e.featureFlags||(e.featureFlags={}),"boolean"!=typeof e.featureFlags.realPartList&&(e.featureFlags.realPartList=!0),"boolean"!=typeof e.featureFlags.globalCallbacks&&(e.featureFlags.globalCallbacks=!0),"boolean"!=typeof e.featureFlags.mocAr&&(e.featureFlags.mocAr=!1)})(g);const d=await(async(e,t)=>{if("string"!=typeof e)throw new Error('Configurator ID is not a string type: "'+typeof e+'"');const s=t.customApiUrl?t.customApiUrl:"https://api.roomle.com/v2",r=t.overrideTenant||9,i=s+"/configurators/"+e,n="roomle_portal_v2",a="03-"+window.btoa((new Date).toISOString()+";anonymous;"+n),o=new Request(i,{method:"GET",headers:new Headers({apiKey:n,currentTenant:r,locale:"en",language:"en",device:1,token:a,platform:"web"}),mode:"cors",cache:"default"}),l=await fetch(o),{configurator:c}=await l.json();return c})(e,g);s=((e,t)=>{t.configuratorId=e.id;const s=e.settings||{};return!t.overrideTenant&&e.tenant&&(t.overrideTenant=e.tenant),((e,t)=>{const s=JSON.parse(JSON.stringify(e));return n(s,t)})(s,t)})(d,g);const m=new this(d,t,s,a,u);return await Promise.allSettled(m.pluginsLoaded),m}catch(e){return g(e)}var h})}teardown(){this._container&&S.delete(this._container);const e=this._container.querySelector("iframe");e&&this._container.removeChild(e),window.removeEventListener("resize",this._onResize)}_createIframe(){var e;const t=document.createElement("iframe");let s=(null==(e=this._configuratorSettings)?void 0:e.url)||"https://www.roomle.com/t/cp/";return this._initData.useLocalRoomle&&(s=location.href.replace("embedding.html","")),location.href.includes("roomle.gitlab.io")&&(s=location.href.replace("embedding.html","index.html")),this._initData.overrideServerUrl&&(s=this._initData.overrideServerUrl),t.src=s,t.classList.add(w),t.classList.add(b),t}_onResize(){p(this._iframe)}_onUseFullPage(){this._iframe.classList.add(y),document.documentElement.classList.add(M),window.document.body.classList.add(M),u()&&(p(this._iframe),this._iframe.classList.add(v))}_onBackToWebsite(){this._iframe.classList.remove(y),this._iframe.classList.remove(v),document.documentElement.classList.remove(M),window.document.body.classList.remove(M)}_executeMessage({message:e,args:t},s){var r;if(s.source&&s.source===(null==(r=this._iframe)?void 0:r.contentWindow))return"requestBoot"===e?this._messageHandler?(this._messageHandler.setOutgoingMessageBus(s.source),Promise.resolve({result:this._initData})):Promise.resolve({error:"MessageHandler not set"}):"setup"===e?(this.handleSetup(t[0]),d(this.ui.callbacks,"onUseFullPage",this._onUseFullPage),d(this.ui.callbacks,"onBackToWebsite",this._onBackToWebsite),this._waitForIframe(this),setTimeout(()=>{this._messageHandler&&this._messageHandler.sendMessage("websiteReady")},0),Promise.resolve({result:null})):this.executeMessage({message:e,args:t})}}export{P as default};
@@ -1 +1 @@
1
- var t,e;t=this,e=function(){"use strict";var t=Object.defineProperty,e=(e,s,i)=>((e,s,i)=>s in e?t(e,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[s]=i)(e,"symbol"!=typeof s?s+"":s,i);class s{constructor(t,s,i,n){e(this,"_side"),e(this,"_incomingMessageBus",null),e(this,"_outgoingMessageBus",null),e(this,"_execMessage",null),this._side=t,this._incomingMessageBus=s,this._outgoingMessageBus=i,this._execMessage=n,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(t){this._outgoingMessageBus=t}setMessageExecution(t){this._execMessage=t}sendMessage(t,e=[]){return new Promise(((s,i)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const n=new MessageChannel;n.port1.onmessage=t=>{if(!t||!t.data)return n.port1.close(),n.port2.close(),i(new Error(this._side+" received message but response can not be interpreted"));let e;try{e=JSON.parse(t.data)}catch(t){return n.port1.close(),n.port2.close(),this._prepareError(t),i(t)}e.error?i(e.error):void 0!==e.result?s(e.result):s(void 0),n.port1.close(),n.port2.close()};let r="";try{r=JSON.stringify({message:t,args:e})}catch{return i(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return i(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(r,"*",[n.port2])}))}_handleMessage(t){const e=t.ports&&Array.isArray(t.ports)&&t.ports.length>0?t.ports[0]:null;if(t.data&&e)try{const s=JSON.parse(t.data);if(!this._execMessage)return e.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const i=this._execMessage(s,t);if(void 0===i)return;i.then(((t={})=>{let s,i;"object"==typeof t&&null!==t&&(s=t.error,i=t.result),s?e.postMessage(JSON.stringify({error:s})):void 0!==i?e.postMessage(JSON.stringify({result:i})):e.postMessage(JSON.stringify({result:t}))}),(t=>{e.postMessage(JSON.stringify({error:this._prepareError(t)}))}))}catch(t){e.postMessage(JSON.stringify({error:this._prepareError(t)}))}}_prepareError(t){return"string"==typeof t?this._side+": "+t:(t.message=this._side+": "+t.message,t.message)}}const i=["127.0.0.1","localhost","0.0.0.0"],n=["language","browserLanguage","userLanguage","systemLanguage"],r=(t,e)=>{for(const s in e)try{e[s].constructor===Object?t[s]=r(t[s],e[s]):t[s]=e[s]}catch{t[s]=e[s]}return t};var a,o=((a=o||{}).BOTTOM_BAR="bottom_bar",a.PARTLIST_BOUNDS="partlist_bounds",a.INTERACTION_NOTES="interaction_notes",a.PARAMETER_GROUPS="parameter_groups",a),l={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const h={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[o.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1,openCloseAnimation:!1},rotationSnapDegrees:10,interactionsCollapsed:!1},c=t=>{if(!t)return;const e=Object.keys(t);for(const s of e){const e=t[s];if(!Array.isArray(e)&&"object"==typeof e&&null!==e&&c(e),Array.isArray(e))for(const t of e)c(t);("true"===e||"false"===e)&&(t[s]="true"===e)}},u=()=>/(android)/i.test(navigator.userAgent);class g{constructor(){e(this,"_messageHandler",null),e(this,"isSetupDone",!1),e(this,"viewName","main"),e(this,"plugins",{}),e(this,"pluginsLoaded",[]),e(this,"ui",{callbacks:null}),e(this,"extended",{callbacks:null}),e(this,"configurator",{callbacks:null}),e(this,"analytics",{callbacks:{}}),e(this,"rapi",{callbacks:{}}),e(this,"global",{callbacks:{}})}setMessageHandler(t){this._messageHandler=t}handleSetup(t){const{methods:e,callbacks:s}=t;e.forEach((t=>{const e=t.split("."),s=e[0],i=e[1];this[s]||(this[s]={}),this[s][i]=function(){if(this._messageHandler)return this._messageHandler.sendMessage(t,[...arguments])}.bind(this)})),s.forEach((t=>{const e=t.split("."),s=e[0],i=e[1],n=e[2];this[s]||(this[s]={}),this[s][i]||(this[s][i]={}),this[s][i][n]=()=>{}})),this.isSetupDone=!0}executeMessage({message:t,args:e}){const s=t.split("."),i=s[0],n=s[1],r=3===s.length?s[2]:null;if(r&&this[i][n][r]){const t=this[i][n][r](...e);return t instanceof Promise?t.then((t=>({result:t}))):void 0!==t?Promise.resolve({result:t}):Promise.resolve({result:null})}return Promise.reject('Message "'+t+'" is unkown')}setupPlugins(t,e,s="website"){for(const i of t)"string"==typeof i&&"dragIn"===i?this.pluginsLoaded.push(new Promise(((t,i)=>{try{Promise.resolve().then((()=>k)).then((({DragIn:n})=>{const r=new n(this.ui,e,s,this.viewName);r.init().then((()=>{this.plugins.dragIn=r,t()}),i)}))}catch(t){i(t)}}))):i.name&&i.loader&&this.pluginsLoaded.push(new Promise(((t,n)=>{try{i.loader().then((r=>{const a=new r(this.ui,e,s,this.viewName);a.init().then((()=>{this.plugins[i.name]=a,t()}),n)}))}catch(t){n(t)}})))}}const d=()=>{let t,e;return{promise:new Promise(((s,i)=>{t=s,e=i})),resolve:t,reject:e}},m=(t,e,s)=>{let i=null;Object.defineProperty(t,e,{get:()=>i||s,set(t){i=null!=t&&t.mute?t.value:t}})},_=()=>.01*window.innerHeight+"px",p=t=>{t&&setTimeout((()=>t.style.setProperty(y,_())),0)},f="rml-styles",y="--rml-full-height",v="rml-container",b="rml-fill",w="rml-pos",D="rml-android-height",E="rml-overflow-hidden",T=new Map;class S{constructor(t,s,i,n){e(this,"_mainDomElement"),e(this,"_instance"),e(this,"_mode","website"),e(this,"_viewName","main"),this._instance=t,this._mainDomElement=s,this._mode=i,this._viewName=n}async init(){return Promise.resolve()}}const x="rml-drag-in-styles",I="rml-drag-in-drag-element",M="rml-drag-in-overlay",C="rml-drag-in-drag-ghost",A="rml-drag-in-fade-in",O="rml-drag-in-fade-out",L="rml-display-none",B="250ms",P="forwards",F=`@keyframes ${A} {from{opacity: 0;}to {opacity: 0.5;}}`,U=`@keyframes ${O} {from{opacity: 0.5;}to {opacity: 0;}}`,R=`${A} ${B} ${P}`,N=`${O} ${B} ${P}`,X="https://res.cloudinary.com/roomle/image/upload/v1729679975/fallback_afpyqr.jpg",k=Object.freeze(Object.defineProperty({__proto__:null,DragIn:class extends S{constructor(t,s,i,n){super(t,s,i,n),e(this,"options",{}),e(this,"_customDragSignal",new AbortController),this._mainDomElement=s,this._injectStyles(),this._initializeDragGhost()}_injectStyles(){if(!document.getElementById(x)){const t=document.createElement("style");t.type="text/css",t.id=x,t.innerHTML=`\n .${L}{display:none}\n .${M}{position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;}\n .${C}{position:absolute;top:0;left:0;width:1px;height:1px;z-index:999;pointer-events:none;background-color:transparent;}\n ${F}\n ${U}\n `,document.head.appendChild(t)}}_initializeDragGhost(){const t=this._mainDomElement.parentNode;let e=t.querySelector("."+C);e||(e=document.createElement("div"),e.classList.add(C),e.innerText=" ",t.appendChild(e))}async init(){if(await super.init(),"website"===this._mode)try{const{DragInFromWebsiteStrategy:t}=await Promise.resolve().then((()=>et));this._strategy=new t(this._instance,this._mainDomElement,{settings:this.options,mode:"website"})}catch(t){throw t}else{if("custom-view"!==this._mode)throw new Error("Unsupported mode");try{const{DragInFromCustomViewStrategy:t}=await Promise.resolve().then((()=>at));this._strategy=new t(this._instance,this.options,this._viewName)}catch(t){throw t}}}get isDragging(){return this._strategy.isDragging}dragStart(t,e,s="rml_id"){this._strategy.dragStart(t,e,s)}dragUpdate(t){this._strategy.dragUpdate(t)}dragEnd(){this._strategy.dragEnd()}touchStart(t,e,s="rml_id"){this._strategy.touchStart(t,e,s)}touchMove(t){this._strategy.touchMove(t)}touchEnd(){this._strategy.touchEnd()}dispose(){this._strategy.dispose()}beforeUpdateGhost(t){this._strategy.beforeUpdateGhost(t)}registerCustomDrag({customDragStart:t,customDragEnd:e,customDragUpdate:s,beforeUpdateGhost:i}){i&&this._strategy.beforeUpdateGhost(i);const n=this._customDragSignal.signal,r=e=>{"true"===e.target.getAttribute("data-rml-draggable")&&t(e)},a=t=>{this._strategy.releaseInput(t),this._strategy.isDragging&&e(t)},o=t=>{s(t)};document.querySelectorAll('[data-rml-draggable="true"]').forEach((t=>{t.draggable=!1})),document.addEventListener("mousedown",r,{signal:n}),document.addEventListener("mouseup",a,{signal:n}),document.addEventListener("mousemove",o,{signal:n}),document.addEventListener("mouseleave",a,{signal:n}),document.addEventListener("touchstart",r,{signal:n}),document.addEventListener("touchend",a,{signal:n}),document.addEventListener("touchmove",o,{signal:n})}unregisterCustomDrag(){this._customDragSignal.abort(),this._customDragSignal=new AbortController}releaseInput(t){this._strategy.releaseInput(t)}}},Symbol.toStringTag,{value:"Module"}));class G{constructor(t=16){e(this,"_computedStyleCache",new Map),e(this,"_maxLifetime",16),e(this,"_cacheCleanInterval",null),this._maxLifetime=t}get(t){const e=this._computedStyleCache.get(t),s=Date.now();if(e&&s-e.updated<this._maxLifetime)return e.style;const i=getComputedStyle(t);return this._computedStyleCache.set(t,{style:i,updated:s}),this._cacheCleanInterval||(this._cacheCleanInterval=setInterval((()=>this._cleanUpCache),Math.max(1e3*this._maxLifetime,5e3))),i}_cleanUpCache(){const t=Date.now();for(const[e,{updated:s}]of this._computedStyleCache.entries())t-s>=this._maxLifetime&&this._computedStyleCache.delete(e);0===this._computedStyleCache.size&&this._cacheCleanInterval&&(clearInterval(this._cacheCleanInterval),this._cacheCleanInterval=null)}}const Y=t=>window.TouchEvent&&t instanceof window.TouchEvent;let $;const j=t=>($||($=new G),$.get(t)),H=(t,e,s)=>{const i=parseFloat(t),n=window.devicePixelRatio||1;if("px"===e)return i;if("%"===e)return i/100*(s===document.documentElement?window.innerWidth:s.offsetWidth);if("rem"===e)return i*parseFloat(j(document.documentElement).fontSize);if("em"===e)return i*parseFloat(j(s).fontSize);if("vh"===e||"vw"===e||"vmin"===e||"vmax"===e)return i/100*{vh:window.innerHeight,vw:window.innerWidth,vmin:Math.min(window.innerWidth,window.innerHeight),vmax:Math.max(window.innerWidth,window.innerHeight)}[e];const r={cm:37.7952755906,mm:3.77952755906,in:96};return e in r?i*r[e]*n:0},z=(t,e,s={x:0,y:0})=>{const i=t.getBoundingClientRect(),n=j(t).transform;let r=0,a=0;if("none"!==n){const e=/translate\(\s*([-+]?\d*\.?\d+|\d+)(px|%)?,?\s*([-+]?\d*\.?\d+|\d+)?(px|%)?\s*\)/,s=n.match(e);s&&(r=H(s[1],s[2],t),a=H(s[3],s[4],t))}const{clientX:o,clientY:l}=W(e,s);return{x:o-i.left-r+t.scrollLeft,y:l-i.top-a+t.scrollTop}},W=(t,e=null)=>{const{clientX:s,clientY:i}=Y(t)?q(t):t;return{clientX:s>0?s:e?e.x:s,clientY:i>0?i:e?e.y:i}},q=t=>{if(t.touches.length){let{clientX:e,clientY:s}=t.touches[0];if(t.touches.length>1){const i=t.touches[1];e=(e+i.clientX)/2,s=(s+i.clientY)/2}return{clientX:e,clientY:s}}const e=t.changedTouches[0];return{clientX:e.clientX,clientY:e.clientY}},J=(t,e=0)=>Y(t)?{clientX:t.touches[e].clientX,clientY:t.touches[e].clientY}:{clientX:t.clientX,clientY:t.clientY},V=t=>!t||!Y(t)||t.touches.length>0;class K{constructor(t,{onTouchDragStart:s},i={}){e(this,"_touchDragTimeOut"),e(this,"_onTouchDragStart"),e(this,"_payload",null),e(this,"_delay",500),e(this,"_firstTouch",null),e(this,"_lastTouch",null),e(this,"_epsilon",10),this._payload=t,this._onTouchDragStart=s,this._delay="number"==typeof i.delay?i.delay:500,this._epsilon="number"==typeof i.epsilon?i.epsilon:10}onStart(t){V(t)&&(this._touchDragTimeOut||(this._firstTouch=J(t,Y(t)?t.touches.length-1:0),this._touchDragTimeOut=setTimeout((()=>{this._clearTimeout(),this._lastTouch||(this._lastTouch=J(t)),this._checkXDistance(t)()}),this._delay)))}onEnd(){this._resetTouches()}onMove(t){V(t)&&(this._lastTouch=J(t))}_clearTimeout(){this._touchDragTimeOut&&(clearTimeout(this._touchDragTimeOut),this._touchDragTimeOut=null)}_resetTouches(){this._clearTimeout(),this._lastTouch=null,this._firstTouch=null,this._payload=null}_checkXDistance(t){return()=>{if(!this._firstTouch||!this._lastTouch)return;let e=!1;e=Math.abs(this._firstTouch.clientX-this._lastTouch.clientX)<this._epsilon,e&&(this._onTouchDragStart(this._payload,t),this._resetTouches())}}}const Q=(t,e,s=0,i=0)=>{const n=e.x+e.width+s,r=e.x-s,a=e.y+e.height+i,o=e.y-i,{x:l,y:h}=t;return l>=r&&l<=n&&h>=o&&h<=a},Z=(t,e,s,i=0,n=0)=>{if(s&&(s.hiddenIn||s.visibleIn))return s.visibleIn?Q({x:t,y:e},s.visibleIn,i,n):!!s.hiddenIn&&!Q({x:t,y:e},s.hiddenIn,-i,-n)};class tt{constructor(t=null){e(this,"_dragGhostAnimationFrameId",null),e(this,"_dragGhostRemoveAnimationFrameId",null),e(this,"_dragGhostElement",null),this._dragGhostElement=t}updateDragGhost(t,e,s){var i;this._dragGhostRemoveAnimationFrameId&&(cancelAnimationFrame(this._dragGhostRemoveAnimationFrameId),this._dragGhostRemoveAnimationFrameId=null),(null==(i=s.ghost)||!i.external)&&s.ghost&&(this._dragGhostAnimationFrameId||(this._dragGhostAnimationFrameId=requestAnimationFrame((()=>{(()=>{if(!document.getElementById(x)){const t=document.createElement("style");t.type="text/css",t.id=x,t.innerHTML=`\n ${F}\n ${U}\n `,document.head.appendChild(t)}})();const i={x:t,y:e};!s.ghost&&this._dragGhostElement&&(s.ghost={}),s.ghost&&!s.ghost.element&&this._dragGhostElement&&(s.ghost.element=this._dragGhostElement),(({x:t,y:e},s)=>{var i,n,r,a,o,l;let h=document.getElementById(I);if(!h){if(h=document.createElement("div"),null!=(i=s.ghost)&&i.element)h.appendChild(s.ghost.element);else{const t=document.createElement("img");t.src=(null==(n=s.ghost)?void 0:n.url)||X,t.width=(null==(r=s.ghost)?void 0:r.width)||112,t.height=(null==(a=s.ghost)?void 0:a.height)||112,h.appendChild(t)}h.id=I,h.style.position="fixed",h.style.top="0",h.style.left="0",h.style.willChange="transform",h.style.transform="translate3d(0, 0, 0)",h.style.zIndex="9999",h.style.opacity="0.5",Z(t,e,s.ghost||{},null==(o=s.settings)?void 0:o.dragInOverlapX,null==(l=s.settings)?void 0:l.dragInOverlapY)||(h.style.display="none"),h.style.pointerEvents="none",document.body.appendChild(h)}})(i,s),(({x:t,y:e},s)=>{var i,n,r,a;const o=document.getElementById(I);if(!o)return;let l=null==(i=s.ghost)?void 0:i.width,h=null==(n=s.ghost)?void 0:n.height;typeof l>"u"&&(l=o.getBoundingClientRect().width||112),typeof h>"u"&&(h=o.getBoundingClientRect().height||112);const c=t-l/2,u=e-h/2;o.style.transform=`translate3d(${c}px, ${u}px, 0)`,s.ghost&&(Z(t,e,s.ghost,null==(r=s.settings)?void 0:r.dragInOverlapX,null==(a=s.settings)?void 0:a.dragInOverlapY)?o.style.animation!=R&&(o.style.animation=R):o.style.animation!=N&&(o.style.animation=N))})(i,s),this._dragGhostAnimationFrameId=null}))))}removeDragGhost(){this._dragGhostAnimationFrameId&&(cancelAnimationFrame(this._dragGhostAnimationFrameId),this._dragGhostAnimationFrameId=null),this._dragGhostRemoveAnimationFrameId||(this._dragGhostRemoveAnimationFrameId=requestAnimationFrame((()=>{const t=document.getElementById(I);t&&document.body.removeChild(t),this._dragGhostRemoveAnimationFrameId=null})))}}const et=Object.freeze(Object.defineProperty({__proto__:null,DragInFromWebsiteStrategy:class{constructor(t,s,i){e(this,"_options",{}),e(this,"_instance"),e(this,"_mainDomElement"),e(this,"_currentDrag",{}),e(this,"_currentTouch",null),e(this,"_firefoxDragPosition",{x:0,y:0}),e(this,"_onBeforeUpdateDrag",(()=>({}))),e(this,"isDragging",!1),e(this,"_firefoxFallback",(t=>{if(!this._currentDrag.event)return;t.preventDefault();const e=t||window.event;this._firefoxDragPosition.x=e.pageX||0,this._firefoxDragPosition.y=e.pageY||0})),this._instance=t,this._mainDomElement=s,this._options=i||{},this._firefoxFallback=this._firefoxFallback.bind(this),document.addEventListener("dragover",this._firefoxFallback)}beforeUpdateGhost(t){this._onBeforeUpdateDrag=t}dragStart(t,e,s="rml_id"){const i=this._mainDomElement.parentNode;if("relative"!==j(i).position)return;this._mainDomElement.style.pointerEvents="none";let n=i.querySelector("."+M);n||(n=document.createElement("div"),n.classList.add(M),i.appendChild(n)),n.classList.remove(L),e.target.getAttribute("draggable");const r=i.querySelector("."+C);this._currentDrag.event=e;const a=e.target,o=a.cloneNode(!0),l=a.getBoundingClientRect();o.style.width=`${l.width}px`,o.style.height=`${l.height}px`,this._currentDrag.ghost=new tt(o),this._currentDrag.offset||(this._currentDrag.offset={x:0,y:0});const{clientX:h,clientY:c}=W(e,this._firefoxDragPosition);this._currentDrag.offset.x=h-l.left,this._currentDrag.offset.y=c-l.top,e instanceof DragEvent&&e.dataTransfer&&e.dataTransfer.setDragImage&&e.dataTransfer.setDragImage(r,0,0);const{x:u,y:g}=z(i,this._currentDrag.event||e,this._firefoxDragPosition),d=Math.max(1,u),m=Math.max(1,g);this.isDragging=!0,this._instance.dragInObject(t,d,m,s)}dragUpdate(t){var e;const s=this._mainDomElement.parentNode,{x:i,y:n}=z(s,t,this._firefoxDragPosition);if(0===i&&0===n)return;const r=Math.max(1,i),a=Math.max(1,n);if(1===r&&1===a)return;let o=r,l=a;if(Y(t)){const t=(null==(e=this._options.settings)?void 0:e.fingerSize)||0;o=Math.max(2,r+t),l=Math.max(2,a-t)}const{x:h,y:c,options:u}=this._onBeforeUpdateDrag(o,l,{}),g=u||{settings:{},ghost:{}};g.ghost||(g.ghost={}),g.ghost.visibleIn&&g.ghost.hiddenIn||(g.ghost.hiddenIn=this._mainDomElement.getBoundingClientRect());const d="number"==typeof h?h:o,m="number"==typeof c?c:l;if(this._currentDrag.ghost){const{clientX:e,clientY:s}=W(t,this._firefoxDragPosition);this._currentDrag.ghost.updateDragGhost(e,s,g)}this._instance.updateDrag(d,m,{})}dragEnd(){this._mainDomElement.style.pointerEvents="all";const t=this._mainDomElement.parentNode;this.isDragging=!1,this._instance.dragInObjectEnd(),this._currentDrag.ghost&&(this._currentDrag.ghost.removeDragGhost(),this._currentDrag.ghost=null),this._currentDrag={},this._firefoxDragPosition={x:0,y:0};const e=t.querySelector("."+M);e&&e.classList.add(L)}touchStart(t,e,s="rml_id"){var i,n,r,a;e.preventDefault();const o={};"number"==typeof(null==(n=null==(i=this._options)?void 0:i.settings)?void 0:n.touchDragDelay)&&(o.delay=this._options.settings.touchDragDelay),null!=(a=null==(r=this._options)?void 0:r.settings)&&a.touchDragEpsilon&&(o.epsilon=this._options.settings.touchDragEpsilon),this._currentTouch=new K(void 0,{onTouchDragStart:(e,i)=>{this.dragStart(t,i,s)}},o),this._currentTouch.onStart(e)}touchMove(t){this._currentTouch&&this._currentTouch.onMove(t),this._currentDrag.event&&this.dragUpdate(t)}touchEnd(){this._currentTouch&&this._currentTouch.onEnd(),this._currentTouch=null,this.dragEnd()}dispose(){document.removeEventListener("dragover",this._firefoxFallback)}releaseInput(t){}}},Symbol.toStringTag,{value:"Module"})),st=t=>{t.preventDefault(),t.stopPropagation()};class it{constructor({onCustomDragStart:t},s={}){e(this,"_startX",0),e(this,"_startY",0),e(this,"_lastX",0),e(this,"_lastY",0),e(this,"_epsilon"),e(this,"_isWaiting",!1),e(this,"_onCustomDragStart"),this._epsilon="number"==typeof s.epsilon?s.epsilon:15,this._onCustomDragStart=t}onMove(t){this._lastX=t.clientX,this._lastY=t.clientY,this._isWaiting&&((t,e)=>{const s=this._lastX-t,i=this._lastY-e;return Math.sqrt(s*s+i*i)})(this._startX,this._startY)>this._epsilon&&(this._onCustomDragStart(t),this._isWaiting=!1)}onStart(t){this._startX=t.clientX,this._startY=t.clientY,this.onMove(t),this._isWaiting=!0}onEnd(){this._reset()}_reset(){this._startX=0,this._startY=0,this._lastX=0,this._lastY=0,this._isWaiting=!1}}const nt="data-rml-old-draggable",rt=(t,e)=>{const s=Y(t),i={delay:s?500:100,epsilon:s?10:15};if(!e)return i;if(!(s||t instanceof MouseEvent))return i;const{delayKey:n,epsilonKey:r}=s?{delayKey:"touchDragDelay",epsilonKey:"touchDragEpsilon"}:{delayKey:"customDragDelay",epsilonKey:"customDragEpsilon"};return"number"==typeof e[n]&&(i.delay=e.touchDragDelay),"number"==typeof e[r]&&(i.epsilon=e.touchDragEpsilon),i},at=Object.freeze(Object.defineProperty({__proto__:null,DragInFromCustomViewStrategy:class{constructor(t,s,i){e(this,"_options",{}),e(this,"_instance"),e(this,"_viewName"),e(this,"_currentCustomDrag",null),e(this,"_currentBb",null),e(this,"_startTarget",null),e(this,"_onBeforeUpdateDrag",(()=>({}))),e(this,"isDragging",!1),this._instance=t,this._options=s||{},this._viewName=i}beforeUpdateGhost(t){this._onBeforeUpdateDrag=t}async _dragStart(t,e,s="rml_id"){this._startTarget&&(this._startTarget.style.pointerEvents="none",this._startTarget.style.userSelect="none",this._startTarget.setAttribute(nt,this._startTarget.draggable.toString()),this._startTarget.draggable=!1,this._startTarget.removeEventListener("dragstart",st),this._startTarget.addEventListener("dragstart",st)),this._currentBb=await this._instance.getBoundingClientRect((()=>`[data-rml-custom-view="${this._viewName}"]`)());const{clientX:i,clientY:n}=W(e),r=this._currentBb.x+i,a=this._currentBb.y+n;this.isDragging=!0,this._instance.dragInObject(t,r,a,s)}_dragUpdate(t){if(document.body.focus(),this._currentCustomDrag&&this._currentCustomDrag.onMove(t),!this._currentBb||!this.isDragging)return;const{clientX:e,clientY:s}=W(t),{url:i,width:n,height:r}=(t=>{let e="",s=112,i=112;if(!t)return{url:X,width:s,height:i};const n=t;if(n instanceof HTMLElement){const t=n.getBoundingClientRect(),r=n.getAttribute("data-rml-ghost-url"),a=n.getAttribute("data-rml-ghost-width"),o=n.getAttribute("data-rml-ghost-height");r?e=r:!r&&n instanceof HTMLImageElement&&n.src&&(e=n.src),e?(s=t.width,i=t.height):e=X,s=a?parseInt(a,10):s,i=o?parseInt(o,10):i}return{url:e||X,width:s,height:i}})(this._startTarget),a=this._currentBb.x+e,o=this._currentBb.y+s,l=this._options||{},h={ghost:{visibleIn:{x:this._currentBb.x-(l.dragInOverlapX||0),y:this._currentBb.y+(l.dragInOverlapY||0),width:this._currentBb.width+(l.dragInOverlapX||0),height:this._currentBb.height+(l.dragInOverlapY||0)},url:i,width:n,height:r},mode:"custom-view"},{x:c,y:u,options:g}=this._onBeforeUpdateDrag(a,o,h),d="number"==typeof c?c:a,m="number"==typeof u?u:o,_=g||h;this._instance.updateDrag(d,m,_)}_dragEnd(){this._currentCustomDrag&&this._currentCustomDrag.onEnd(),this._currentCustomDrag=null,this.isDragging=!1,this._currentBb=null,this._resetStartTarget(),this._instance.enableEvents(),this._instance.dragInObjectEnd()}dragStart(t,e,s){this._instance.disableEvents(),this._startTarget=e.target,this._currentCustomDrag=Y(e)?new K(void 0,{onTouchDragStart:(e,i)=>{this._dragStart(t,i,s)}},rt(e,this._options)):new it({onCustomDragStart:e=>this._dragStart(t,e,s)},rt(e,this._options)),this._currentCustomDrag.onStart(e)}dragEnd(){this._dragEnd()}dragUpdate(t){this._dragUpdate(t)}touchStart(t,e,s="rml_id"){this.dragStart(t,e,s)}touchMove(t){this.dragUpdate(t)}touchEnd(){this.dragEnd()}dispose(){}_resetStartTarget(){this._startTarget&&(this._startTarget.style.pointerEvents="",this._startTarget.style.userSelect="",this._startTarget.draggable="true"===this._startTarget.getAttribute(nt),this._startTarget.removeAttribute(nt),this._startTarget.removeEventListener("dragstart",st))}releaseInput(t){this._currentCustomDrag&&this._currentCustomDrag.onEnd(),this._resetStartTarget()}}},Symbol.toStringTag,{value:"Module"}));return class extends g{constructor(t,i,n,r,a){if(super(),e(this,"_waitForIframe"),e(this,"_container"),e(this,"_configuratorSettings"),e(this,"_initData",{}),e(this,"_iframe"),!t||"string"!=typeof t.id)throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(T.has(i))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(f)){const t=n.zIndex||9999999,e=document.createElement("style");e.type="text/css",e.id=f;const s="transition:all ease-in-out 450ms;",i=["-webkit-","-o-"].reduce(((t,e)=>t+(e+s)),"")+s,r=_();e.innerHTML=`\n .${v}{${y}:${r};}\n .${w}{position:fixed;top:0;left:0;z-index:${t};opacity:0}\n .rml-transition{${i}}\n .${b}{width:100%;height:100%;opacity:1}\n .${D}{height:calc(var(${y},1vh)*100)}\n .${E}{overflow:hidden}\n `,document.head.appendChild(e)}this._executeMessage=this._executeMessage.bind(this);const o=new s("website",window,null,this._executeMessage);this.setMessageHandler(o),this._onResize=this._onResize.bind(this),u()&&window.addEventListener("resize",this._onResize),this._container=i,this._initData=n,this._configuratorSettings=t;const l=this._createIframe();this._onUseFullPage=this._onUseFullPage.bind(this),this._onBackToWebsite=this._onBackToWebsite.bind(this),this._waitForIframe=a,this._container.appendChild(l),this._iframe=l,this.setupPlugins(r,this._iframe),T.set(i,!0)}static createPlanner(t,e,s,i=[]){return this._create(t,e,s,i)}static async connect(t,e=[]){const i=new g;i.viewName=t;const{resolve:n,promise:r}=d(),{resolve:a,promise:o}=d(),l=new s("custom-view-"+t,window,window.parent,(({message:t,args:e})=>{switch(t){case"registerCustomViewDone":n();break;case"returnMethods":i.handleSetup(e[0]),a();break;default:if(i.isSetupDone)return i.executeMessage({message:t,args:e})}}));i.setMessageHandler(l);const h=[t];return l.sendMessage("registerCustomView",h),await r,l.sendMessage("getMethods",h),await o,i.setupPlugins(e,document.body,"custom-view"),await Promise.allSettled(i.pluginsLoaded),i}static createConfigurator(t,e,s,i=[]){return this._create(t,e,s,i)}static create(t,e,s,i){return this._create(t,e,s,i)}static createViewer(t,e,s,i=[]){return this._create(t,e,s,i)}static async _create(t,e,s,a){return new Promise((async(o,u)=>{try{const u=r((()=>{const t=(t=>JSON.parse(JSON.stringify(t)))(h);t.locale||(t.locale=((t=null)=>{const e=window.navigator;if(t)return t.substr(0,2);if(Array.isArray(e.languages)&&e.languages.length>0)return e.languages[0].substr(0,2);for(let t=0,s=n.length;t<s;t++){const s=e[n[t]];if(s)return s.substr(0,2)}return"en"})()),"(idle)"===t.id&&delete t.id;const e=(()=>{const t=(()=>{try{return window.self!==window.top}catch{return!0}})();let e=window.location.href;if(t){if(!document.referrer)return null;e=document.referrer}const{hostname:s}=new URL(e);return s})();return e&&(t=>!!(i.includes(t)||t.endsWith("roomle.com")||t.endsWith("gitlab.io")||t.endsWith("gitlab.com")))(e)&&(t.configuratorId="demoConfigurator"),t.customApiUrl=l.VITE_RAPI_URL,t.emails=!1,t})(),(t=>(c(t),null!=t&&t.customApiUrl&&(t.customApiUrl=decodeURIComponent(t.customApiUrl)),t.shareUrl&&(t.deeplink=t.shareUrl.replace("<CONF_ID>","#CONFIGURATIONID#")),t))(s));(t=>{t.featureFlags||(t.featureFlags={}),"boolean"!=typeof t.featureFlags.realPartList&&(t.featureFlags.realPartList=!0),"boolean"!=typeof t.featureFlags.globalCallbacks&&(t.featureFlags.globalCallbacks=!0),"boolean"!=typeof t.featureFlags.mocAr&&(t.featureFlags.mocAr=!1)})(u);const g=await(async(t,e)=>{if("string"!=typeof t)throw new Error('Configurator ID is not a string type: "'+typeof t+'"');const s=e.customApiUrl?e.customApiUrl:"https://api.roomle.com/v2",i=e.overrideTenant||9,n=s+"/configurators/"+t,r="roomle_portal_v2",a="03-"+window.btoa((new Date).toISOString()+";anonymous;"+r),o=new Request(n,{method:"GET",headers:new Headers({apiKey:r,currentTenant:i,locale:"en",language:"en",device:1,token:a,platform:"web"}),mode:"cors",cache:"default"}),l=await fetch(o),{configurator:h}=await l.json();return h})(t,u);s=((t,e)=>{e.configuratorId=t.id;const s=t.settings||{};return!e.overrideTenant&&t.tenant&&(e.overrideTenant=t.tenant),((t,e)=>{const s=JSON.parse(JSON.stringify(t));return r(s,e)})(s,e)})(g,u);const d=new this(g,e,s,a,o);return await Promise.allSettled(d.pluginsLoaded),d}catch(t){return u(t)}}))}teardown(){this._container&&T.delete(this._container);const t=this._container.querySelector("iframe");t&&this._container.removeChild(t),window.removeEventListener("resize",this._onResize)}_createIframe(){var t;const e=document.createElement("iframe");let s=(null==(t=this._configuratorSettings)?void 0:t.url)||"https://www.roomle.com/t/cp/";return this._initData.useLocalRoomle&&(s=location.href.replace("embedding.html","")),location.href.includes("roomle.gitlab.io")&&(s=location.href.replace("embedding.html","index.html")),this._initData.overrideServerUrl&&(s=this._initData.overrideServerUrl),e.src=s,e.classList.add(v),e.classList.add(b),e}_onResize(){p(this._iframe)}_onUseFullPage(){this._iframe.classList.add(w),document.documentElement.classList.add(E),window.document.body.classList.add(E),u()&&(p(this._iframe),this._iframe.classList.add(D))}_onBackToWebsite(){this._iframe.classList.remove(w),this._iframe.classList.remove(D),document.documentElement.classList.remove(E),window.document.body.classList.remove(E)}_executeMessage({message:t,args:e},s){var i;if(s.source&&s.source===(null==(i=this._iframe)?void 0:i.contentWindow))return"requestBoot"===t?this._messageHandler?(this._messageHandler.setOutgoingMessageBus(s.source),Promise.resolve({result:this._initData})):Promise.resolve({error:"MessageHandler not set"}):"setup"===t?(this.handleSetup(e[0]),m(this.ui.callbacks,"onUseFullPage",this._onUseFullPage),m(this.ui.callbacks,"onBackToWebsite",this._onBackToWebsite),this._waitForIframe(this),setTimeout((()=>{this._messageHandler&&this._messageHandler.sendMessage("websiteReady")}),0),Promise.resolve({result:null})):this.executeMessage({message:t,args:e})}}},"object"==typeof exports&&typeof module<"u"?module.exports=e():"function"==typeof define&&define.amd?define(e):((t=typeof globalThis<"u"?globalThis:t||self)["roomle-embedding-lib"]=t["roomle-embedding-lib"]||{},t["roomle-embedding-lib"].umd=t["roomle-embedding-lib"].umd||{},t["roomle-embedding-lib"].umd.min=t["roomle-embedding-lib"].umd.min||{},t["roomle-embedding-lib"].umd.min.js=e());
1
+ var t,e;t=this,e=function(){"use strict";var t=Object.defineProperty,e=(e,s,i)=>((e,s,i)=>s in e?t(e,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[s]=i)(e,"symbol"!=typeof s?s+"":s,i);class s{constructor(t,s,i,n){e(this,"_side"),e(this,"_incomingMessageBus",null),e(this,"_outgoingMessageBus",null),e(this,"_execMessage",null),this._side=t,this._incomingMessageBus=s,this._outgoingMessageBus=i,this._execMessage=n,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(t){this._outgoingMessageBus=t}setMessageExecution(t){this._execMessage=t}sendMessage(t,e=[]){return new Promise((s,i)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const n=new MessageChannel;n.port1.onmessage=t=>{if(!t||!t.data)return n.port1.close(),n.port2.close(),i(new Error(this._side+" received message but response can not be interpreted"));let e;try{e=JSON.parse(t.data)}catch(t){return n.port1.close(),n.port2.close(),this._prepareError(t),i(t)}e.error?i(e.error):void 0!==e.result?s(e.result):s(void 0),n.port1.close(),n.port2.close()};let r="";try{r=JSON.stringify({message:t,args:e})}catch{return i(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return i(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(r,"*",[n.port2])})}_handleMessage(t){const e=t.ports&&Array.isArray(t.ports)&&t.ports.length>0?t.ports[0]:null;if(t.data&&e)try{const s=JSON.parse(t.data);if(!this._execMessage)return e.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const i=this._execMessage(s,t);if(void 0===i)return;i.then((t={})=>{let s,i;"object"==typeof t&&null!==t&&(s=t.error,i=t.result),s?e.postMessage(JSON.stringify({error:s})):void 0!==i?e.postMessage(JSON.stringify({result:i})):e.postMessage(JSON.stringify({result:t}))},t=>{e.postMessage(JSON.stringify({error:this._prepareError(t)}))})}catch(t){e.postMessage(JSON.stringify({error:this._prepareError(t)}))}}_prepareError(t){return"string"==typeof t?this._side+": "+t:(t.message=this._side+": "+t.message,t.message)}}const i=["127.0.0.1","localhost","0.0.0.0"],n=["language","browserLanguage","userLanguage","systemLanguage"],r=(t,e)=>{for(const s in e)try{e[s].constructor===Object?t[s]=r(t[s],e[s]):t[s]=e[s]}catch{t[s]=e[s]}return t};var a,o=((a=o||{}).BOTTOM_BAR="bottom_bar",a.PARTLIST_BOUNDS="partlist_bounds",a.INTERACTION_NOTES="interaction_notes",a.PARAMETER_GROUPS="parameter_groups",a),l={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const h={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[o.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1,openCloseAnimation:!1},rotationSnapDegrees:10,interactionsCollapsed:!1},c=t=>{if(!t)return;const e=Object.keys(t);for(const s of e){const e=t[s];if(!Array.isArray(e)&&"object"==typeof e&&null!==e&&c(e),Array.isArray(e))for(const t of e)c(t);("true"===e||"false"===e)&&(t[s]="true"===e)}},u=()=>/(android)/i.test(navigator.userAgent);class g{constructor(){e(this,"_messageHandler",null),e(this,"isSetupDone",!1),e(this,"viewName","main"),e(this,"plugins",{}),e(this,"pluginsLoaded",[]),e(this,"ui",{callbacks:null}),e(this,"extended",{callbacks:null}),e(this,"configurator",{callbacks:null}),e(this,"analytics",{callbacks:{}}),e(this,"rapi",{callbacks:{}}),e(this,"global",{callbacks:{}})}setMessageHandler(t){this._messageHandler=t}handleSetup(t){const{methods:e,callbacks:s}=t;e.forEach(t=>{const e=t.split("."),s=e[0],i=e[1];this[s]||(this[s]={}),this[s][i]=function(){if(this._messageHandler)return this._messageHandler.sendMessage(t,[...arguments])}.bind(this)}),s.forEach(t=>{const e=t.split("."),s=e[0],i=e[1],n=e[2];this[s]||(this[s]={}),this[s][i]||(this[s][i]={}),this[s][i][n]=()=>{}}),this.isSetupDone=!0}executeMessage({message:t,args:e}){const s=t.split("."),i=s[0],n=s[1],r=3===s.length?s[2]:null;if(r&&this[i][n][r]){const t=this[i][n][r](...e);return t instanceof Promise?t.then(t=>({result:t})):void 0!==t?Promise.resolve({result:t}):Promise.resolve({result:null})}return Promise.reject('Message "'+t+'" is unkown')}setupPlugins(t,e,s="website"){for(const i of t)"string"==typeof i&&"dragIn"===i?this.pluginsLoaded.push(new Promise((t,i)=>{try{Promise.resolve().then(()=>k).then(({DragIn:n})=>{const r=new n(this.ui,e,s,this.viewName);r.init().then(()=>{this.plugins.dragIn=r,t()},i)})}catch(t){i(t)}})):i.name&&i.loader&&this.pluginsLoaded.push(new Promise((t,n)=>{try{i.loader().then(r=>{const a=new r(this.ui,e,s,this.viewName);a.init().then(()=>{this.plugins[i.name]=a,t()},n)})}catch(t){n(t)}}))}}const d=()=>{let t,e;return{promise:new Promise((s,i)=>{t=s,e=i}),resolve:t,reject:e}},m=(t,e,s)=>{let i=null;Object.defineProperty(t,e,{get:()=>i||s,set(t){i=null!=t&&t.mute?t.value:t}})},_=()=>.01*window.innerHeight+"px",p=t=>{t&&setTimeout(()=>t.style.setProperty(y,_()),0)},f="rml-styles",y="--rml-full-height",v="rml-container",b="rml-fill",w="rml-pos",D="rml-android-height",E="rml-overflow-hidden",T=new Map;class S{constructor(t,s,i,n){e(this,"_mainDomElement"),e(this,"_instance"),e(this,"_mode","website"),e(this,"_viewName","main"),this._instance=t,this._mainDomElement=s,this._mode=i,this._viewName=n}async init(){return Promise.resolve()}}const x="rml-drag-in-styles",I="rml-drag-in-drag-element",M="rml-drag-in-overlay",C="rml-drag-in-drag-ghost",A="rml-drag-in-fade-in",O="rml-drag-in-fade-out",L="rml-display-none",B="250ms",P="forwards",F=`@keyframes ${A} {from{opacity: 0;}to {opacity: 0.5;}}`,U=`@keyframes ${O} {from{opacity: 0.5;}to {opacity: 0;}}`,R=`${A} ${B} ${P}`,N=`${O} ${B} ${P}`,X="https://res.cloudinary.com/roomle/image/upload/v1729679975/fallback_afpyqr.jpg",k=Object.freeze(Object.defineProperty({__proto__:null,DragIn:class extends S{constructor(t,s,i,n){super(t,s,i,n),e(this,"options",{}),e(this,"_customDragSignal",new AbortController),this._mainDomElement=s,this._injectStyles(),this._initializeDragGhost()}_injectStyles(){if(!document.getElementById(x)){const t=document.createElement("style");t.type="text/css",t.id=x,t.innerHTML=`\n .${L}{display:none}\n .${M}{position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;}\n .${C}{position:absolute;top:0;left:0;width:1px;height:1px;z-index:999;pointer-events:none;background-color:transparent;}\n ${F}\n ${U}\n `,document.head.appendChild(t)}}_initializeDragGhost(){const t=this._mainDomElement.parentNode;let e=t.querySelector("."+C);e||(e=document.createElement("div"),e.classList.add(C),e.innerText=" ",t.appendChild(e))}async init(){if(await super.init(),"website"===this._mode)try{const{DragInFromWebsiteStrategy:t}=await Promise.resolve().then(()=>et);this._strategy=new t(this._instance,this._mainDomElement,{settings:this.options,mode:"website"})}catch(t){throw t}else{if("custom-view"!==this._mode)throw new Error("Unsupported mode");try{const{DragInFromCustomViewStrategy:t}=await Promise.resolve().then(()=>at);this._strategy=new t(this._instance,this.options,this._viewName)}catch(t){throw t}}}get isDragging(){return this._strategy.isDragging}dragStart(t,e,s="rml_id"){this._strategy.dragStart(t,e,s)}dragUpdate(t){this._strategy.dragUpdate(t)}dragEnd(){this._strategy.dragEnd()}touchStart(t,e,s="rml_id"){this._strategy.touchStart(t,e,s)}touchMove(t){this._strategy.touchMove(t)}touchEnd(){this._strategy.touchEnd()}dispose(){this._strategy.dispose()}beforeUpdateGhost(t){this._strategy.beforeUpdateGhost(t)}registerCustomDrag({customDragStart:t,customDragEnd:e,customDragUpdate:s,beforeUpdateGhost:i}){i&&this._strategy.beforeUpdateGhost(i);const n=this._customDragSignal.signal,r=e=>{"true"===e.target.getAttribute("data-rml-draggable")&&t(e)},a=t=>{this._strategy.releaseInput(t),this._strategy.isDragging&&e(t)},o=t=>{s(t)};document.querySelectorAll('[data-rml-draggable="true"]').forEach(t=>{t.draggable=!1}),document.addEventListener("mousedown",r,{signal:n}),document.addEventListener("mouseup",a,{signal:n}),document.addEventListener("mousemove",o,{signal:n}),document.addEventListener("mouseleave",a,{signal:n}),document.addEventListener("touchstart",r,{signal:n}),document.addEventListener("touchend",a,{signal:n}),document.addEventListener("touchmove",o,{signal:n})}unregisterCustomDrag(){this._customDragSignal.abort(),this._customDragSignal=new AbortController}releaseInput(t){this._strategy.releaseInput(t)}}},Symbol.toStringTag,{value:"Module"}));class G{constructor(t=16){e(this,"_computedStyleCache",new Map),e(this,"_maxLifetime",16),e(this,"_cacheCleanInterval",null),this._maxLifetime=t}get(t){const e=this._computedStyleCache.get(t),s=Date.now();if(e&&s-e.updated<this._maxLifetime)return e.style;const i=getComputedStyle(t);return this._computedStyleCache.set(t,{style:i,updated:s}),this._cacheCleanInterval||(this._cacheCleanInterval=setInterval(()=>this._cleanUpCache,Math.max(1e3*this._maxLifetime,5e3))),i}_cleanUpCache(){const t=Date.now();for(const[e,{updated:s}]of this._computedStyleCache.entries())t-s>=this._maxLifetime&&this._computedStyleCache.delete(e);0===this._computedStyleCache.size&&this._cacheCleanInterval&&(clearInterval(this._cacheCleanInterval),this._cacheCleanInterval=null)}}const Y=t=>window.TouchEvent&&t instanceof window.TouchEvent;let $;const j=t=>($||($=new G),$.get(t)),H=(t,e,s)=>{const i=parseFloat(t),n=window.devicePixelRatio||1;if("px"===e)return i;if("%"===e)return i/100*(s===document.documentElement?window.innerWidth:s.offsetWidth);if("rem"===e)return i*parseFloat(j(document.documentElement).fontSize);if("em"===e)return i*parseFloat(j(s).fontSize);if("vh"===e||"vw"===e||"vmin"===e||"vmax"===e)return i/100*{vh:window.innerHeight,vw:window.innerWidth,vmin:Math.min(window.innerWidth,window.innerHeight),vmax:Math.max(window.innerWidth,window.innerHeight)}[e];const r={cm:37.7952755906,mm:3.77952755906,in:96};return e in r?i*r[e]*n:0},z=(t,e,s={x:0,y:0})=>{const i=t.getBoundingClientRect(),n=j(t).transform;let r=0,a=0;if("none"!==n){const e=/translate\(\s*([-+]?\d*\.?\d+|\d+)(px|%)?,?\s*([-+]?\d*\.?\d+|\d+)?(px|%)?\s*\)/,s=n.match(e);s&&(r=H(s[1],s[2],t),a=H(s[3],s[4],t))}const{clientX:o,clientY:l}=W(e,s);return{x:o-i.left-r+t.scrollLeft,y:l-i.top-a+t.scrollTop}},W=(t,e=null)=>{const{clientX:s,clientY:i}=Y(t)?q(t):t;return{clientX:s>0?s:e?e.x:s,clientY:i>0?i:e?e.y:i}},q=t=>{if(t.touches.length){let{clientX:e,clientY:s}=t.touches[0];if(t.touches.length>1){const i=t.touches[1];e=(e+i.clientX)/2,s=(s+i.clientY)/2}return{clientX:e,clientY:s}}const e=t.changedTouches[0];return{clientX:e.clientX,clientY:e.clientY}},J=(t,e=0)=>Y(t)?{clientX:t.touches[e].clientX,clientY:t.touches[e].clientY}:{clientX:t.clientX,clientY:t.clientY},V=t=>!t||!Y(t)||t.touches.length>0;class K{constructor(t,{onTouchDragStart:s},i={}){e(this,"_touchDragTimeOut"),e(this,"_onTouchDragStart"),e(this,"_payload",null),e(this,"_delay",500),e(this,"_firstTouch",null),e(this,"_lastTouch",null),e(this,"_epsilon",10),this._payload=t,this._onTouchDragStart=s,this._delay="number"==typeof i.delay?i.delay:500,this._epsilon="number"==typeof i.epsilon?i.epsilon:10}onStart(t){V(t)&&(this._touchDragTimeOut||(this._firstTouch=J(t,Y(t)?t.touches.length-1:0),this._touchDragTimeOut=setTimeout(()=>{this._clearTimeout(),this._lastTouch||(this._lastTouch=J(t)),this._checkXDistance(t)()},this._delay)))}onEnd(){this._resetTouches()}onMove(t){V(t)&&(this._lastTouch=J(t))}_clearTimeout(){this._touchDragTimeOut&&(clearTimeout(this._touchDragTimeOut),this._touchDragTimeOut=null)}_resetTouches(){this._clearTimeout(),this._lastTouch=null,this._firstTouch=null,this._payload=null}_checkXDistance(t){return()=>{if(!this._firstTouch||!this._lastTouch)return;let e=!1;e=Math.abs(this._firstTouch.clientX-this._lastTouch.clientX)<this._epsilon,e&&(this._onTouchDragStart(this._payload,t),this._resetTouches())}}}const Q=(t,e,s=0,i=0)=>{const n=e.x+e.width+s,r=e.x-s,a=e.y+e.height+i,o=e.y-i,{x:l,y:h}=t;return l>=r&&l<=n&&h>=o&&h<=a},Z=(t,e,s,i=0,n=0)=>{if(s&&(s.hiddenIn||s.visibleIn))return s.visibleIn?Q({x:t,y:e},s.visibleIn,i,n):!!s.hiddenIn&&!Q({x:t,y:e},s.hiddenIn,-i,-n)};class tt{constructor(t=null){e(this,"_dragGhostAnimationFrameId",null),e(this,"_dragGhostRemoveAnimationFrameId",null),e(this,"_dragGhostElement",null),this._dragGhostElement=t}updateDragGhost(t,e,s){var i;this._dragGhostRemoveAnimationFrameId&&(cancelAnimationFrame(this._dragGhostRemoveAnimationFrameId),this._dragGhostRemoveAnimationFrameId=null),(null==(i=s.ghost)||!i.external)&&s.ghost&&(this._dragGhostAnimationFrameId||(this._dragGhostAnimationFrameId=requestAnimationFrame(()=>{(()=>{if(!document.getElementById(x)){const t=document.createElement("style");t.type="text/css",t.id=x,t.innerHTML=`\n ${F}\n ${U}\n `,document.head.appendChild(t)}})();const i={x:t,y:e};!s.ghost&&this._dragGhostElement&&(s.ghost={}),s.ghost&&!s.ghost.element&&this._dragGhostElement&&(s.ghost.element=this._dragGhostElement),(({x:t,y:e},s)=>{var i,n,r,a,o,l;let h=document.getElementById(I);if(!h){if(h=document.createElement("div"),null!=(i=s.ghost)&&i.element)h.appendChild(s.ghost.element);else{const t=document.createElement("img");t.src=(null==(n=s.ghost)?void 0:n.url)||X,t.width=(null==(r=s.ghost)?void 0:r.width)||112,t.height=(null==(a=s.ghost)?void 0:a.height)||112,h.appendChild(t)}h.id=I,h.style.position="fixed",h.style.top="0",h.style.left="0",h.style.willChange="transform",h.style.transform="translate3d(0, 0, 0)",h.style.zIndex="9999",h.style.opacity="0.5",Z(t,e,s.ghost||{},null==(o=s.settings)?void 0:o.dragInOverlapX,null==(l=s.settings)?void 0:l.dragInOverlapY)||(h.style.display="none"),h.style.pointerEvents="none",document.body.appendChild(h)}})(i,s),(({x:t,y:e},s)=>{var i,n,r,a;const o=document.getElementById(I);if(!o)return;let l=null==(i=s.ghost)?void 0:i.width,h=null==(n=s.ghost)?void 0:n.height;typeof l>"u"&&(l=o.getBoundingClientRect().width||112),typeof h>"u"&&(h=o.getBoundingClientRect().height||112);const c=t-l/2,u=e-h/2;o.style.transform=`translate3d(${c}px, ${u}px, 0)`,s.ghost&&(Z(t,e,s.ghost,null==(r=s.settings)?void 0:r.dragInOverlapX,null==(a=s.settings)?void 0:a.dragInOverlapY)?o.style.animation!=R&&(o.style.animation=R):o.style.animation!=N&&(o.style.animation=N))})(i,s),this._dragGhostAnimationFrameId=null})))}removeDragGhost(){this._dragGhostAnimationFrameId&&(cancelAnimationFrame(this._dragGhostAnimationFrameId),this._dragGhostAnimationFrameId=null),this._dragGhostRemoveAnimationFrameId||(this._dragGhostRemoveAnimationFrameId=requestAnimationFrame(()=>{const t=document.getElementById(I);t&&document.body.removeChild(t),this._dragGhostRemoveAnimationFrameId=null}))}}const et=Object.freeze(Object.defineProperty({__proto__:null,DragInFromWebsiteStrategy:class{constructor(t,s,i){e(this,"_options",{}),e(this,"_instance"),e(this,"_mainDomElement"),e(this,"_currentDrag",{}),e(this,"_currentTouch",null),e(this,"_firefoxDragPosition",{x:0,y:0}),e(this,"_onBeforeUpdateDrag",()=>({})),e(this,"isDragging",!1),e(this,"_firefoxFallback",t=>{if(!this._currentDrag.event)return;t.preventDefault();const e=t||window.event;this._firefoxDragPosition.x=e.pageX||0,this._firefoxDragPosition.y=e.pageY||0}),this._instance=t,this._mainDomElement=s,this._options=i||{},this._firefoxFallback=this._firefoxFallback.bind(this),document.addEventListener("dragover",this._firefoxFallback)}beforeUpdateGhost(t){this._onBeforeUpdateDrag=t}dragStart(t,e,s="rml_id"){const i=this._mainDomElement.parentNode;if("relative"!==j(i).position)return;this._mainDomElement.style.pointerEvents="none";let n=i.querySelector("."+M);n||(n=document.createElement("div"),n.classList.add(M),i.appendChild(n)),n.classList.remove(L),e.target.getAttribute("draggable");const r=i.querySelector("."+C);this._currentDrag.event=e;const a=e.target,o=a.cloneNode(!0),l=a.getBoundingClientRect();o.style.width=`${l.width}px`,o.style.height=`${l.height}px`,this._currentDrag.ghost=new tt(o),this._currentDrag.offset||(this._currentDrag.offset={x:0,y:0});const{clientX:h,clientY:c}=W(e,this._firefoxDragPosition);this._currentDrag.offset.x=h-l.left,this._currentDrag.offset.y=c-l.top,e instanceof DragEvent&&e.dataTransfer&&e.dataTransfer.setDragImage&&e.dataTransfer.setDragImage(r,0,0);const{x:u,y:g}=z(i,this._currentDrag.event||e,this._firefoxDragPosition),d=Math.max(1,u),m=Math.max(1,g);this.isDragging=!0,this._instance.dragInObject(t,d,m,s)}dragUpdate(t){var e;const s=this._mainDomElement.parentNode,{x:i,y:n}=z(s,t,this._firefoxDragPosition);if(0===i&&0===n)return;const r=Math.max(1,i),a=Math.max(1,n);if(1===r&&1===a)return;let o=r,l=a;if(Y(t)){const t=(null==(e=this._options.settings)?void 0:e.fingerSize)||0;o=Math.max(2,r+t),l=Math.max(2,a-t)}const{x:h,y:c,options:u}=this._onBeforeUpdateDrag(o,l,{}),g=u||{settings:{},ghost:{}};g.ghost||(g.ghost={}),g.ghost.visibleIn&&g.ghost.hiddenIn||(g.ghost.hiddenIn=this._mainDomElement.getBoundingClientRect());const d="number"==typeof h?h:o,m="number"==typeof c?c:l;if(this._currentDrag.ghost){const{clientX:e,clientY:s}=W(t,this._firefoxDragPosition);this._currentDrag.ghost.updateDragGhost(e,s,g)}this._instance.updateDrag(d,m,{})}dragEnd(){this._mainDomElement.style.pointerEvents="all";const t=this._mainDomElement.parentNode;this.isDragging=!1,this._instance.dragInObjectEnd(),this._currentDrag.ghost&&(this._currentDrag.ghost.removeDragGhost(),this._currentDrag.ghost=null),this._currentDrag={},this._firefoxDragPosition={x:0,y:0};const e=t.querySelector("."+M);e&&e.classList.add(L)}touchStart(t,e,s="rml_id"){var i,n,r,a;e.preventDefault();const o={};"number"==typeof(null==(n=null==(i=this._options)?void 0:i.settings)?void 0:n.touchDragDelay)&&(o.delay=this._options.settings.touchDragDelay),null!=(a=null==(r=this._options)?void 0:r.settings)&&a.touchDragEpsilon&&(o.epsilon=this._options.settings.touchDragEpsilon),this._currentTouch=new K(void 0,{onTouchDragStart:(e,i)=>{this.dragStart(t,i,s)}},o),this._currentTouch.onStart(e)}touchMove(t){this._currentTouch&&this._currentTouch.onMove(t),this._currentDrag.event&&this.dragUpdate(t)}touchEnd(){this._currentTouch&&this._currentTouch.onEnd(),this._currentTouch=null,this.dragEnd()}dispose(){document.removeEventListener("dragover",this._firefoxFallback)}releaseInput(t){}}},Symbol.toStringTag,{value:"Module"})),st=t=>{t.preventDefault(),t.stopPropagation()};class it{constructor({onCustomDragStart:t},s={}){e(this,"_startX",0),e(this,"_startY",0),e(this,"_lastX",0),e(this,"_lastY",0),e(this,"_epsilon"),e(this,"_isWaiting",!1),e(this,"_onCustomDragStart"),this._epsilon="number"==typeof s.epsilon?s.epsilon:15,this._onCustomDragStart=t}onMove(t){this._lastX=t.clientX,this._lastY=t.clientY,this._isWaiting&&((t,e)=>{const s=this._lastX-t,i=this._lastY-e;return Math.sqrt(s*s+i*i)})(this._startX,this._startY)>this._epsilon&&(this._onCustomDragStart(t),this._isWaiting=!1)}onStart(t){this._startX=t.clientX,this._startY=t.clientY,this.onMove(t),this._isWaiting=!0}onEnd(){this._reset()}_reset(){this._startX=0,this._startY=0,this._lastX=0,this._lastY=0,this._isWaiting=!1}}const nt="data-rml-old-draggable",rt=(t,e)=>{const s=Y(t),i={delay:s?500:100,epsilon:s?10:15};if(!e)return i;if(!(s||t instanceof MouseEvent))return i;const{delayKey:n,epsilonKey:r}=s?{delayKey:"touchDragDelay",epsilonKey:"touchDragEpsilon"}:{delayKey:"customDragDelay",epsilonKey:"customDragEpsilon"};return"number"==typeof e[n]&&(i.delay=e.touchDragDelay),"number"==typeof e[r]&&(i.epsilon=e.touchDragEpsilon),i},at=Object.freeze(Object.defineProperty({__proto__:null,DragInFromCustomViewStrategy:class{constructor(t,s,i){e(this,"_options",{}),e(this,"_instance"),e(this,"_viewName"),e(this,"_currentCustomDrag",null),e(this,"_currentBb",null),e(this,"_startTarget",null),e(this,"_onBeforeUpdateDrag",()=>({})),e(this,"isDragging",!1),this._instance=t,this._options=s||{},this._viewName=i}beforeUpdateGhost(t){this._onBeforeUpdateDrag=t}async _dragStart(t,e,s="rml_id"){this._startTarget&&(this._startTarget.style.pointerEvents="none",this._startTarget.style.userSelect="none",this._startTarget.setAttribute(nt,this._startTarget.draggable.toString()),this._startTarget.draggable=!1,this._startTarget.removeEventListener("dragstart",st),this._startTarget.addEventListener("dragstart",st)),this._currentBb=await this._instance.getBoundingClientRect((()=>`[data-rml-custom-view="${this._viewName}"]`)());const{clientX:i,clientY:n}=W(e),r=this._currentBb.x+i,a=this._currentBb.y+n;this.isDragging=!0,this._instance.dragInObject(t,r,a,s)}_dragUpdate(t){if(document.body.focus(),this._currentCustomDrag&&this._currentCustomDrag.onMove(t),!this._currentBb||!this.isDragging)return;const{clientX:e,clientY:s}=W(t),{url:i,width:n,height:r}=(t=>{let e="",s=112,i=112;if(!t)return{url:X,width:s,height:i};const n=t;if(n instanceof HTMLElement){const t=n.getBoundingClientRect(),r=n.getAttribute("data-rml-ghost-url"),a=n.getAttribute("data-rml-ghost-width"),o=n.getAttribute("data-rml-ghost-height");r?e=r:!r&&n instanceof HTMLImageElement&&n.src&&(e=n.src),e?(s=t.width,i=t.height):e=X,s=a?parseInt(a,10):s,i=o?parseInt(o,10):i}return{url:e||X,width:s,height:i}})(this._startTarget),a=this._currentBb.x+e,o=this._currentBb.y+s,l=this._options||{},h={ghost:{visibleIn:{x:this._currentBb.x-(l.dragInOverlapX||0),y:this._currentBb.y+(l.dragInOverlapY||0),width:this._currentBb.width+(l.dragInOverlapX||0),height:this._currentBb.height+(l.dragInOverlapY||0)},url:i,width:n,height:r},mode:"custom-view"},{x:c,y:u,options:g}=this._onBeforeUpdateDrag(a,o,h),d="number"==typeof c?c:a,m="number"==typeof u?u:o,_=g||h;this._instance.updateDrag(d,m,_)}_dragEnd(){this._currentCustomDrag&&this._currentCustomDrag.onEnd(),this._currentCustomDrag=null,this.isDragging=!1,this._currentBb=null,this._resetStartTarget(),this._instance.enableEvents(),this._instance.dragInObjectEnd()}dragStart(t,e,s){this._instance.disableEvents(),this._startTarget=e.target,this._currentCustomDrag=Y(e)?new K(void 0,{onTouchDragStart:(e,i)=>{this._dragStart(t,i,s)}},rt(e,this._options)):new it({onCustomDragStart:e=>this._dragStart(t,e,s)},rt(e,this._options)),this._currentCustomDrag.onStart(e)}dragEnd(){this._dragEnd()}dragUpdate(t){this._dragUpdate(t)}touchStart(t,e,s="rml_id"){this.dragStart(t,e,s)}touchMove(t){this.dragUpdate(t)}touchEnd(){this.dragEnd()}dispose(){}_resetStartTarget(){this._startTarget&&(this._startTarget.style.pointerEvents="",this._startTarget.style.userSelect="",this._startTarget.draggable="true"===this._startTarget.getAttribute(nt),this._startTarget.removeAttribute(nt),this._startTarget.removeEventListener("dragstart",st))}releaseInput(t){this._currentCustomDrag&&this._currentCustomDrag.onEnd(),this._resetStartTarget()}}},Symbol.toStringTag,{value:"Module"}));return class extends g{constructor(t,i,n,r,a){if(super(),e(this,"_waitForIframe"),e(this,"_container"),e(this,"_configuratorSettings"),e(this,"_initData",{}),e(this,"_iframe"),!t||"string"!=typeof t.id)throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(T.has(i))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(f)){const t=n.zIndex||9999999,e=document.createElement("style");e.type="text/css",e.id=f;const s="transition:all ease-in-out 450ms;",i=["-webkit-","-o-"].reduce((t,e)=>t+(e+s),"")+s,r=_();e.innerHTML=`\n .${v}{${y}:${r};}\n .${w}{position:fixed;top:0;left:0;z-index:${t};opacity:0}\n .rml-transition{${i}}\n .${b}{width:100%;height:100%;opacity:1}\n .${D}{height:calc(var(${y},1vh)*100)}\n .${E}{overflow:hidden}\n `,document.head.appendChild(e)}this._executeMessage=this._executeMessage.bind(this);const o=new s("website",window,null,this._executeMessage);this.setMessageHandler(o),this._onResize=this._onResize.bind(this),u()&&window.addEventListener("resize",this._onResize),this._container=i,this._initData=n,this._configuratorSettings=t;const l=this._createIframe();this._onUseFullPage=this._onUseFullPage.bind(this),this._onBackToWebsite=this._onBackToWebsite.bind(this),this._waitForIframe=a,this._container.appendChild(l),this._iframe=l,this.setupPlugins(r,this._iframe),T.set(i,!0)}static createPlanner(t,e,s,i=[]){return this._create(t,e,s,i)}static async connect(t,e=[]){const i=new g;i.viewName=t;const{resolve:n,promise:r}=d(),{resolve:a,promise:o}=d(),l=new s("custom-view-"+t,window,window.parent,({message:t,args:e})=>{switch(t){case"registerCustomViewDone":n();break;case"returnMethods":i.handleSetup(e[0]),a();break;default:if(i.isSetupDone)return i.executeMessage({message:t,args:e})}});i.setMessageHandler(l);const h=[t];return l.sendMessage("registerCustomView",h),await r,l.sendMessage("getMethods",h),await o,i.setupPlugins(e,document.body,"custom-view"),await Promise.allSettled(i.pluginsLoaded),i}static createConfigurator(t,e,s,i=[]){return this._create(t,e,s,i)}static create(t,e,s,i){return this._create(t,e,s,i)}static createViewer(t,e,s,i=[]){return this._create(t,e,s,i)}static async _create(t,e,s,a){return new Promise(async(o,u)=>{try{const u=r((()=>{const t=(t=>JSON.parse(JSON.stringify(t)))(h);t.locale||(t.locale=((t=null)=>{const e=window.navigator;if(t)return t.substr(0,2);if(Array.isArray(e.languages)&&e.languages.length>0)return e.languages[0].substr(0,2);for(let t=0,s=n.length;t<s;t++){const s=e[n[t]];if(s)return s.substr(0,2)}return"en"})()),"(idle)"===t.id&&delete t.id;const e=(()=>{const t=(()=>{try{return window.self!==window.top}catch{return!0}})();let e=window.location.href;if(t){if(!document.referrer)return null;e=document.referrer}const{hostname:s}=new URL(e);return s})();return e&&(t=>!!(i.includes(t)||t.endsWith("roomle.com")||t.endsWith("gitlab.io")||t.endsWith("gitlab.com")))(e)&&(t.configuratorId="demoConfigurator"),t.customApiUrl=l.VITE_RAPI_URL,t.emails=!1,t})(),(t=>(c(t),null!=t&&t.customApiUrl&&(t.customApiUrl=decodeURIComponent(t.customApiUrl)),t.shareUrl&&(t.deeplink=t.shareUrl.replace("<CONF_ID>","#CONFIGURATIONID#")),t))(s));(t=>{t.featureFlags||(t.featureFlags={}),"boolean"!=typeof t.featureFlags.realPartList&&(t.featureFlags.realPartList=!0),"boolean"!=typeof t.featureFlags.globalCallbacks&&(t.featureFlags.globalCallbacks=!0),"boolean"!=typeof t.featureFlags.mocAr&&(t.featureFlags.mocAr=!1)})(u);const g=await(async(t,e)=>{if("string"!=typeof t)throw new Error('Configurator ID is not a string type: "'+typeof t+'"');const s=e.customApiUrl?e.customApiUrl:"https://api.roomle.com/v2",i=e.overrideTenant||9,n=s+"/configurators/"+t,r="roomle_portal_v2",a="03-"+window.btoa((new Date).toISOString()+";anonymous;"+r),o=new Request(n,{method:"GET",headers:new Headers({apiKey:r,currentTenant:i,locale:"en",language:"en",device:1,token:a,platform:"web"}),mode:"cors",cache:"default"}),l=await fetch(o),{configurator:h}=await l.json();return h})(t,u);s=((t,e)=>{e.configuratorId=t.id;const s=t.settings||{};return!e.overrideTenant&&t.tenant&&(e.overrideTenant=t.tenant),((t,e)=>{const s=JSON.parse(JSON.stringify(t));return r(s,e)})(s,e)})(g,u);const d=new this(g,e,s,a,o);return await Promise.allSettled(d.pluginsLoaded),d}catch(t){return u(t)}})}teardown(){this._container&&T.delete(this._container);const t=this._container.querySelector("iframe");t&&this._container.removeChild(t),window.removeEventListener("resize",this._onResize)}_createIframe(){var t;const e=document.createElement("iframe");let s=(null==(t=this._configuratorSettings)?void 0:t.url)||"https://www.roomle.com/t/cp/";return this._initData.useLocalRoomle&&(s=location.href.replace("embedding.html","")),location.href.includes("roomle.gitlab.io")&&(s=location.href.replace("embedding.html","index.html")),this._initData.overrideServerUrl&&(s=this._initData.overrideServerUrl),e.src=s,e.classList.add(v),e.classList.add(b),e}_onResize(){p(this._iframe)}_onUseFullPage(){this._iframe.classList.add(w),document.documentElement.classList.add(E),window.document.body.classList.add(E),u()&&(p(this._iframe),this._iframe.classList.add(D))}_onBackToWebsite(){this._iframe.classList.remove(w),this._iframe.classList.remove(D),document.documentElement.classList.remove(E),window.document.body.classList.remove(E)}_executeMessage({message:t,args:e},s){var i;if(s.source&&s.source===(null==(i=this._iframe)?void 0:i.contentWindow))return"requestBoot"===t?this._messageHandler?(this._messageHandler.setOutgoingMessageBus(s.source),Promise.resolve({result:this._initData})):Promise.resolve({error:"MessageHandler not set"}):"setup"===t?(this.handleSetup(e[0]),m(this.ui.callbacks,"onUseFullPage",this._onUseFullPage),m(this.ui.callbacks,"onBackToWebsite",this._onBackToWebsite),this._waitForIframe(this),setTimeout(()=>{this._messageHandler&&this._messageHandler.sendMessage("websiteReady")},0),Promise.resolve({result:null})):this.executeMessage({message:t,args:e})}}},"object"==typeof exports&&typeof module<"u"?module.exports=e():"function"==typeof define&&define.amd?define(e):((t=typeof globalThis<"u"?globalThis:t||self)["roomle-embedding-lib"]=t["roomle-embedding-lib"]||{},t["roomle-embedding-lib"].umd=t["roomle-embedding-lib"].umd||{},t["roomle-embedding-lib"].umd.min=t["roomle-embedding-lib"].umd.min||{},t["roomle-embedding-lib"].umd.min.js=e());
@@ -1,12 +1,10 @@
1
- import { CollectionViewElementPossibleTypes } from './types';
2
-
3
1
  declare const _default: import('vue').DefineComponent<{
4
- payload: CollectionViewElementPossibleTypes;
2
+ payload: any;
5
3
  placement: "left" | "right" | "top" | "bottom";
6
4
  customTooltipStyle: Record<string, any>;
7
5
  mobileBehavior: boolean;
8
6
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
9
- payload: CollectionViewElementPossibleTypes;
7
+ payload: any;
10
8
  placement: "left" | "right" | "top" | "bottom";
11
9
  customTooltipStyle: Record<string, any>;
12
10
  mobileBehavior: boolean;
@@ -1,17 +1,17 @@
1
1
  import { CollectionViewElement, TabCategory } from './types';
2
2
 
3
3
  declare const _default: import('vue').DefineComponent<{
4
- onSelect: (_tab: CollectionViewElement<import('./types').CollectionViewElementPossibleTypes>) => void;
4
+ onSelect: (_tab: CollectionViewElement<any>) => void;
5
5
  onSelectCategory: (_category: TabCategory, _index: number) => void;
6
- tabs: CollectionViewElement<import('./types').CollectionViewElementPossibleTypes>[];
7
- selected: CollectionViewElement<import('./types').CollectionViewElementPossibleTypes>;
6
+ tabs: CollectionViewElement<any>[];
7
+ selected: CollectionViewElement<any>;
8
8
  showSearch?: boolean;
9
9
  onClickSearch?: () => void;
10
10
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
11
- onSelect: (_tab: CollectionViewElement<import('./types').CollectionViewElementPossibleTypes>) => void;
11
+ onSelect: (_tab: CollectionViewElement<any>) => void;
12
12
  onSelectCategory: (_category: TabCategory, _index: number) => void;
13
- tabs: CollectionViewElement<import('./types').CollectionViewElementPossibleTypes>[];
14
- selected: CollectionViewElement<import('./types').CollectionViewElementPossibleTypes>;
13
+ tabs: CollectionViewElement<any>[];
14
+ selected: CollectionViewElement<any>;
15
15
  showSearch?: boolean;
16
16
  onClickSearch?: () => void;
17
17
  }> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;