@colijnit/configurator 261.1.0 → 261.1.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 (553) hide show
  1. package/bundles/colijnit-configurator.umd.js +18012 -1838
  2. package/bundles/colijnit-configurator.umd.js.map +1 -1
  3. package/colijnit-configurator.d.ts +2 -6
  4. package/esm2015/colijnit-configurator.js +2 -7
  5. package/esm2015/lib/builder.js +795 -0
  6. package/esm2015/lib/components/answer-card/answer-card.component.js +313 -0
  7. package/esm2015/lib/components/answer-card/answer-card.module.js +50 -0
  8. package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.component.js +182 -0
  9. package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.module.js +34 -0
  10. package/esm2015/lib/components/answers-slideout/answers-slideout.component.js +490 -0
  11. package/esm2015/lib/components/answers-slideout/answers-slideout.module.js +61 -0
  12. package/esm2015/lib/components/color-filter/color-filter.component.js +59 -0
  13. package/esm2015/lib/components/color-filter/color-filter.module.js +26 -0
  14. package/esm2015/lib/components/configurator/configurator.component.js +133 -0
  15. package/esm2015/lib/components/configurator/configurator.module.js +42 -0
  16. package/esm2015/lib/components/configurator-dialog/configurator-camera-settings.component.js +222 -0
  17. package/esm2015/lib/components/configurator-dialog/configurator-dialog.module.js +48 -0
  18. package/esm2015/lib/components/configurator-dialog/configurator-error-dialog.component.js +82 -0
  19. package/esm2015/lib/components/configurator-dialog/configurator-export-dialog.component.js +163 -0
  20. package/esm2015/lib/components/configurator-loader/configurator-loader.component.js +49 -0
  21. package/esm2015/lib/components/configurator-loader/configurator-loader.module.js +33 -0
  22. package/esm2015/lib/components/configurator-scene/configurator-scene.component.js +60 -0
  23. package/esm2015/lib/components/configurator-scene/configurator-scene.module.js +17 -0
  24. package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.component.js +46 -0
  25. package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.module.js +26 -0
  26. package/esm2015/lib/components/element-buttons/element-buttons.component.js +168 -0
  27. package/esm2015/lib/components/element-buttons/element-buttons.module.js +30 -0
  28. package/esm2015/lib/components/element-toolbar/element-toolbar.component.js +186 -0
  29. package/esm2015/lib/components/element-toolbar/element-toolbar.module.js +34 -0
  30. package/esm2015/lib/components/image-zoom/image-zoom.component.js +61 -0
  31. package/esm2015/lib/components/image-zoom/image-zoom.module.js +30 -0
  32. package/esm2015/lib/components/lite-selector/lite-selector.component.js +206 -0
  33. package/esm2015/lib/components/lite-selector/lite-selector.module.js +34 -0
  34. package/esm2015/lib/components/product-configurator/product-configurator.component.js +184 -0
  35. package/esm2015/lib/components/product-configurator/product-configurator.module.js +72 -0
  36. package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.component.js +237 -0
  37. package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.module.js +38 -0
  38. package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.js +284 -0
  39. package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.js +42 -0
  40. package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.js +72 -0
  41. package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.js +34 -0
  42. package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.js +82 -0
  43. package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.js +30 -0
  44. package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.js +80 -0
  45. package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.js +34 -0
  46. package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.js +93 -0
  47. package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.js +34 -0
  48. package/esm2015/lib/components/progress-bar/progress-bar.component.js +55 -0
  49. package/esm2015/lib/components/progress-bar/progress-bar.module.js +29 -0
  50. package/esm2015/lib/components/scene-options/scene-options.component.js +164 -0
  51. package/esm2015/lib/components/scene-options/scene-options.module.js +38 -0
  52. package/esm2015/lib/components/selections-summary/selections-summary.component.js +163 -0
  53. package/esm2015/lib/components/selections-summary/selections-summary.module.js +45 -0
  54. package/esm2015/lib/components/selections-summary-line/selections-summary-line.component.js +171 -0
  55. package/esm2015/lib/components/selections-summary-line/selections-summary-line.module.js +34 -0
  56. package/esm2015/lib/components/slideout/slideout.component.js +83 -0
  57. package/esm2015/lib/components/slideout/slideout.module.js +17 -0
  58. package/esm2015/lib/components/summary-line/summary-line.component.js +273 -0
  59. package/esm2015/lib/components/summary-line/summary-line.module.js +44 -0
  60. package/esm2015/lib/components/tag-filter/tag-filter.component.js +39 -0
  61. package/esm2015/lib/components/tag-filter/tag-filter.module.js +21 -0
  62. package/esm2015/lib/components/threedselector/threedselector.component.js +155 -0
  63. package/esm2015/lib/components/threedselector/threedselector.module.js +34 -0
  64. package/esm2015/lib/core/helper/variation-helper.js +553 -0
  65. package/esm2015/lib/core/shader/floor-fade.shader.js +33 -0
  66. package/esm2015/lib/core/textures/depth-data-texture.js +19 -0
  67. package/esm2015/lib/directives/directives.module.js +26 -0
  68. package/esm2015/lib/directives/visibility-observer-master.directive.js +53 -0
  69. package/esm2015/lib/directives/visibility-observer.directive.js +54 -0
  70. package/esm2015/lib/enum/ar-feature.enum.js +14 -0
  71. package/esm2015/lib/enum/configuration-key.enum.js +41 -0
  72. package/esm2015/lib/enum/configuration-template.enum.js +6 -0
  73. package/esm2015/lib/enum/device-size-type.js +7 -0
  74. package/esm2015/lib/enum/device-tier.enum.js +7 -0
  75. package/esm2015/lib/enum/icon.enum.js +113 -0
  76. package/esm2015/lib/enum/item-type.enum.js +23 -0
  77. package/esm2015/lib/enum/light.enum.js +9 -0
  78. package/esm2015/lib/enum/navigator-type.enum.js +6 -0
  79. package/esm2015/lib/enum/output-encoding.enum.js +9 -0
  80. package/esm2015/lib/enum/result-type.enum.js +21 -0
  81. package/esm2015/lib/enum/scene-event.enum.js +12 -0
  82. package/esm2015/lib/enum/shadow-map-type.enum.js +8 -0
  83. package/esm2015/lib/enum/texture-type.js +9 -0
  84. package/esm2015/lib/enum/tone-mapping-local.enum.js +12 -0
  85. package/esm2015/lib/enum/view-mode.enum.js +7 -0
  86. package/esm2015/lib/enum/xr-mode.enum.js +6 -0
  87. package/esm2015/lib/environments/environment.js +8 -0
  88. package/esm2015/lib/interfaces/aa-options.interface.js +2 -0
  89. package/esm2015/lib/interfaces/adjustable-element.interface.js +2 -0
  90. package/esm2015/lib/interfaces/ao-options.interface.js +2 -0
  91. package/esm2015/lib/interfaces/changes.interface.js +2 -0
  92. package/esm2015/lib/interfaces/configuration-data.interface.js +2 -0
  93. package/esm2015/lib/interfaces/light-preset.interface.js +2 -0
  94. package/esm2015/lib/interfaces/post-processing-setting.interface.js +2 -0
  95. package/esm2015/lib/interfaces/scene-option-button.interface.js +6 -0
  96. package/esm2015/lib/interfaces/screen-size-info.js +2 -0
  97. package/esm2015/lib/interfaces/setting.interface.js +2 -0
  98. package/esm2015/lib/interfaces/texture.interface.js +2 -0
  99. package/esm2015/lib/interfaces/vignette-options.interface.js +2 -0
  100. package/esm2015/lib/model/ar-position-indicator.js +18 -0
  101. package/esm2015/lib/model/camera-settings.js +14 -0
  102. package/esm2015/lib/model/configuration-result-object.js +6 -0
  103. package/esm2015/lib/model/configurator-error-message.js +9 -0
  104. package/esm2015/lib/model/configurator-settings.js +25 -0
  105. package/esm2015/lib/model/custom-button.js +16 -0
  106. package/esm2015/lib/model/factory.js +28 -0
  107. package/esm2015/lib/model/icon.js +112 -0
  108. package/esm2015/lib/model/intersected-objects.js +7 -0
  109. package/esm2015/lib/model/light-preset.js +73 -0
  110. package/esm2015/lib/model/light-properties.js +45 -0
  111. package/esm2015/lib/model/material.js +11 -0
  112. package/esm2015/lib/model/metadata.js +2 -0
  113. package/esm2015/lib/model/render-parameters.js +16 -0
  114. package/esm2015/lib/model/setting-options.js +71 -0
  115. package/esm2015/lib/model/settings.js +16 -0
  116. package/esm2015/lib/model/shadow-properties.js +10 -0
  117. package/esm2015/lib/model/skin.js +3 -0
  118. package/esm2015/lib/model/texture.js +76 -0
  119. package/esm2015/lib/model/variation-settings.js +54 -0
  120. package/esm2015/lib/model/variation.js +3 -0
  121. package/esm2015/lib/model/xr-reticle.js +79 -0
  122. package/esm2015/lib/modules/render/enum/scene-type.enum.js +6 -0
  123. package/esm2015/lib/modules/render/model/ar-parameters.js +12 -0
  124. package/esm2015/lib/modules/render/model/scene-setting.js +6 -0
  125. package/esm2015/lib/modules/render/model/scene-settings.js +3 -0
  126. package/esm2015/lib/pipes/append.pipe.js +21 -0
  127. package/esm2015/lib/pipes/google-translate.pipe.js +21 -0
  128. package/esm2015/lib/pipes/localize.pipe.js +28 -0
  129. package/esm2015/lib/pipes/pipes.module.js +41 -0
  130. package/esm2015/lib/pipes/prepend.pipe.js +21 -0
  131. package/esm2015/lib/pipes/strip-html.pipe.js +17 -0
  132. package/esm2015/lib/services/app-event.service.js +36 -0
  133. package/esm2015/lib/services/app-initializer.service.js +27 -0
  134. package/esm2015/lib/services/ar.service.js +844 -0
  135. package/esm2015/lib/services/build-furniture-base.service.js +1181 -0
  136. package/esm2015/lib/services/build-furniture-without-scene.service.js +86 -0
  137. package/esm2015/lib/services/build-furniture.service.js +169 -0
  138. package/esm2015/lib/services/bundle-initialzer.service.js +113 -0
  139. package/esm2015/lib/services/camera.service.js +123 -0
  140. package/esm2015/lib/services/configuration.service.js +79 -0
  141. package/esm2015/lib/services/configurator-connector.service.js +830 -0
  142. package/esm2015/lib/services/configurator.service.js +285 -0
  143. package/esm2015/lib/services/configuring.service.js +119 -0
  144. package/esm2015/lib/services/controls.js +799 -0
  145. package/esm2015/lib/services/debug.service.js +43 -0
  146. package/esm2015/lib/services/dictionary.service.js +65 -0
  147. package/esm2015/lib/services/dynamic-camera.service.js +96 -0
  148. package/esm2015/lib/services/floor-plane.service.js +252 -0
  149. package/esm2015/lib/services/font.service.js +27 -0
  150. package/esm2015/lib/services/google-translate.service.js +79 -0
  151. package/esm2015/lib/services/icon-cache.service.js +44 -0
  152. package/esm2015/lib/services/intersection.service.js +47 -0
  153. package/esm2015/lib/services/item.service.js +75 -0
  154. package/esm2015/lib/services/json-utils.service.js +48 -0
  155. package/esm2015/lib/services/light-creation.service.js +35 -0
  156. package/esm2015/lib/services/light-presets.service.js +157 -0
  157. package/esm2015/lib/services/lights.service.js +146 -0
  158. package/esm2015/lib/services/load-furniture-base.service.js +164 -0
  159. package/esm2015/lib/services/load-furniture-without-scene.service.js +45 -0
  160. package/esm2015/lib/services/load-furniture.service.js +72 -0
  161. package/esm2015/lib/services/loader.service.js +32 -0
  162. package/esm2015/lib/services/locator.service.js +11 -0
  163. package/esm2015/lib/services/message-board.service.js +50 -0
  164. package/esm2015/lib/services/post-processing.service.js +378 -0
  165. package/esm2015/lib/services/product-configurator.service.js +16 -0
  166. package/esm2015/lib/services/progress.service.js +20 -0
  167. package/esm2015/lib/services/scene-event.service.js +246 -0
  168. package/esm2015/lib/services/scene-options.service.js +24 -0
  169. package/esm2015/lib/services/scene.service.js +313 -0
  170. package/esm2015/lib/services/screen-size-analysis.service.js +97 -0
  171. package/esm2015/lib/services/settings.service.js +142 -0
  172. package/esm2015/lib/services/switch-build-furniture.service.js +37 -0
  173. package/esm2015/lib/services/switch-load-furniture.service.js +35 -0
  174. package/esm2015/lib/services/threedselector.service.js +72 -0
  175. package/esm2015/lib/services/utils.service.js +207 -0
  176. package/esm2015/lib/services/variation-cache.service.js +143 -0
  177. package/esm2015/lib/services/variation.service.js +490 -0
  178. package/esm2015/lib/services/view-mode.service.js +37 -0
  179. package/esm2015/lib/services/vr.service.js +191 -0
  180. package/esm2015/lib/services/xr.service.js +294 -0
  181. package/esm2015/lib/utils/asset.utils.js +120 -0
  182. package/esm2015/lib/utils/base-utils.js +9 -0
  183. package/esm2015/lib/utils/color.utils.js +30 -0
  184. package/esm2015/lib/utils/debug.utils.js +9 -0
  185. package/esm2015/lib/utils/device.utils.js +25 -0
  186. package/esm2015/lib/utils/file.utils.js +167 -0
  187. package/esm2015/lib/utils/image.utils.js +61 -0
  188. package/esm2015/lib/utils/json-parser.utils.js +180 -0
  189. package/esm2015/lib/utils/material.utils.js +433 -0
  190. package/esm2015/lib/utils/object.utils.js +360 -0
  191. package/esm2015/lib/utils/relative-position.utils.js +75 -0
  192. package/esm2015/lib/utils/rotation-helper.utils.js +15 -0
  193. package/esm2015/lib/utils/scene-3d.utils.js +213 -0
  194. package/esm2015/lib/utils/scene-utils.js +191 -0
  195. package/esm2015/lib/utils/text-utils.js +68 -0
  196. package/esm2015/lib/utils/threed.utils.js +281 -0
  197. package/esm2015/lib/utils/variation-utils.js +459 -0
  198. package/esm2015/public-api.js +65 -0
  199. package/fesm2015/colijnit-configurator.js +17512 -1451
  200. package/fesm2015/colijnit-configurator.js.map +1 -1
  201. package/{app → lib}/builder.d.ts +9 -1
  202. package/lib/components/answer-card/answer-card.component.d.ts +58 -0
  203. package/lib/components/answer-card/answer-card.module.d.ts +11 -0
  204. package/lib/components/answer-card/style/_layout.scss +88 -0
  205. package/lib/components/answer-card/style/_material-definition.scss +3 -0
  206. package/lib/components/answer-card/style/_theme.scss +67 -0
  207. package/lib/components/answer-card/style/material.scss +2 -0
  208. package/lib/components/answer-info-dialog/answer-info-dialog.component.d.ts +38 -0
  209. package/lib/components/answer-info-dialog/answer-info-dialog.module.d.ts +10 -0
  210. package/lib/components/answer-info-dialog/style/_layout.scss +88 -0
  211. package/lib/components/answer-info-dialog/style/_material-definition.scss +3 -0
  212. package/lib/components/answer-info-dialog/style/_theme.scss +44 -0
  213. package/lib/components/answer-info-dialog/style/material.scss +3 -0
  214. package/lib/components/answers-slideout/answers-slideout.component.d.ts +86 -0
  215. package/lib/components/answers-slideout/answers-slideout.module.d.ts +16 -0
  216. package/lib/components/answers-slideout/style/_layout.scss +198 -0
  217. package/lib/components/answers-slideout/style/_material-definition.scss +3 -0
  218. package/lib/components/answers-slideout/style/_theme.scss +54 -0
  219. package/lib/components/answers-slideout/style/material.scss +3 -0
  220. package/lib/components/color-filter/color-filter.component.d.ts +20 -0
  221. package/lib/components/color-filter/color-filter.module.d.ts +8 -0
  222. package/lib/components/color-filter/style/_layout.scss +41 -0
  223. package/lib/components/color-filter/style/_material-definition.scss +3 -0
  224. package/lib/components/color-filter/style/_theme.scss +7 -0
  225. package/lib/components/color-filter/style/material.scss +3 -0
  226. package/lib/components/configurator/configurator.component.d.ts +37 -0
  227. package/lib/components/configurator/configurator.module.d.ts +12 -0
  228. package/lib/components/configurator/style/_layout.scss +7 -0
  229. package/lib/components/configurator/style/_material-definition.scss +3 -0
  230. package/lib/components/configurator/style/_theme.scss +7 -0
  231. package/lib/components/configurator/style/material.scss +3 -0
  232. package/lib/components/configurator-dialog/configurator-camera-settings.component.d.ts +30 -0
  233. package/lib/components/configurator-dialog/configurator-dialog.module.d.ts +13 -0
  234. package/lib/components/configurator-dialog/configurator-error-dialog.component.d.ts +16 -0
  235. package/lib/components/configurator-dialog/configurator-export-dialog.component.d.ts +26 -0
  236. package/lib/components/configurator-dialog/style/_layout.scss +129 -0
  237. package/lib/components/configurator-dialog/style/_material-definition.scss +4 -0
  238. package/lib/components/configurator-dialog/style/_theme.scss +89 -0
  239. package/lib/components/configurator-dialog/style/material.scss +3 -0
  240. package/lib/components/configurator-loader/configurator-loader.component.d.ts +7 -0
  241. package/lib/components/configurator-loader/configurator-loader.module.d.ts +9 -0
  242. package/lib/components/configurator-loader/style/_layout.scss +72 -0
  243. package/lib/components/configurator-loader/style/_material-definition.scss +5 -0
  244. package/lib/components/configurator-loader/style/_theme.scss +26 -0
  245. package/lib/components/configurator-loader/style/material.scss +14 -0
  246. package/lib/components/configurator-scene/configurator-scene.component.d.ts +24 -0
  247. package/lib/components/configurator-scene/configurator-scene.module.d.ts +7 -0
  248. package/lib/components/configurator-scene/style/_layout.scss +22 -0
  249. package/lib/components/configurator-scene/style/_material-definition.scss +3 -0
  250. package/lib/components/configurator-scene/style/_theme.scss +7 -0
  251. package/lib/components/configurator-scene/style/material.scss +3 -0
  252. package/lib/components/configurator-scene-loader/configurator-scene-loader.component.d.ts +7 -0
  253. package/lib/components/configurator-scene-loader/configurator-scene-loader.module.d.ts +8 -0
  254. package/lib/components/configurator-scene-loader/style/_layout.scss +72 -0
  255. package/lib/components/configurator-scene-loader/style/_material-definition.scss +5 -0
  256. package/lib/components/configurator-scene-loader/style/_theme.scss +26 -0
  257. package/lib/components/configurator-scene-loader/style/material.scss +14 -0
  258. package/lib/components/element-buttons/element-buttons.component.d.ts +32 -0
  259. package/lib/components/element-buttons/element-buttons.module.d.ts +9 -0
  260. package/lib/components/element-buttons/style/_layout.scss +52 -0
  261. package/lib/components/element-buttons/style/_material-definition.scss +3 -0
  262. package/lib/components/element-buttons/style/_theme.scss +23 -0
  263. package/lib/components/element-buttons/style/material.scss +3 -0
  264. package/lib/components/element-toolbar/element-toolbar.component.d.ts +27 -0
  265. package/lib/components/element-toolbar/element-toolbar.component.scss +59 -0
  266. package/lib/components/element-toolbar/element-toolbar.module.d.ts +10 -0
  267. package/lib/components/element-toolbar/style/_layout.scss +107 -0
  268. package/lib/components/element-toolbar/style/_material-definition.scss +3 -0
  269. package/lib/components/element-toolbar/style/_theme.scss +47 -0
  270. package/lib/components/element-toolbar/style/material.scss +3 -0
  271. package/lib/components/image-zoom/image-zoom.component.d.ts +15 -0
  272. package/lib/components/image-zoom/image-zoom.module.d.ts +9 -0
  273. package/lib/components/image-zoom/style/_layout.scss +51 -0
  274. package/lib/components/image-zoom/style/_material-definition.scss +3 -0
  275. package/lib/components/image-zoom/style/_theme.scss +17 -0
  276. package/lib/components/image-zoom/style/material.scss +3 -0
  277. package/lib/components/lite-selector/lite-selector.component.d.ts +40 -0
  278. package/lib/components/lite-selector/lite-selector.module.d.ts +10 -0
  279. package/lib/components/lite-selector/style/_layout.scss +21 -0
  280. package/lib/components/lite-selector/style/_material-definition.scss +3 -0
  281. package/lib/components/lite-selector/style/_theme.scss +7 -0
  282. package/lib/components/lite-selector/style/material.scss +3 -0
  283. package/lib/components/product-configurator/product-configurator.component.d.ts +50 -0
  284. package/lib/components/product-configurator/product-configurator.module.d.ts +15 -0
  285. package/lib/components/product-configurator/style/_layout.scss +46 -0
  286. package/lib/components/product-configurator/style/_material-definition.scss +3 -0
  287. package/lib/components/product-configurator/style/_theme.scss +22 -0
  288. package/lib/components/product-configurator/style/material.scss +3 -0
  289. package/lib/components/product-configurator-selector/product-configurator-selector.component.d.ts +35 -0
  290. package/lib/components/product-configurator-selector/product-configurator-selector.module.d.ts +11 -0
  291. package/lib/components/product-configurator-selector/style/_layout.scss +145 -0
  292. package/lib/components/product-configurator-selector/style/_material-definition.scss +3 -0
  293. package/lib/components/product-configurator-selector/style/_theme.scss +57 -0
  294. package/lib/components/product-configurator-selector/style/material.scss +3 -0
  295. package/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.d.ts +31 -0
  296. package/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.d.ts +13 -0
  297. package/lib/components/product-configurator-selector-option/style/_layout.scss +7 -0
  298. package/lib/components/product-configurator-selector-option/style/_material-definition.scss +3 -0
  299. package/lib/components/product-configurator-selector-option/style/_theme.scss +7 -0
  300. package/lib/components/product-configurator-selector-option/style/material.scss +3 -0
  301. package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.d.ts +20 -0
  302. package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.d.ts +10 -0
  303. package/lib/components/product-configurator-selector-option-button/style/_layout.scss +28 -0
  304. package/lib/components/product-configurator-selector-option-button/style/_material-definition.scss +3 -0
  305. package/lib/components/product-configurator-selector-option-button/style/_theme.scss +33 -0
  306. package/lib/components/product-configurator-selector-option-button/style/material.scss +3 -0
  307. package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.d.ts +20 -0
  308. package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.d.ts +10 -0
  309. package/lib/components/product-configurator-selector-option-checkbox/style/_layout.scss +28 -0
  310. package/lib/components/product-configurator-selector-option-checkbox/style/_material-definition.scss +3 -0
  311. package/lib/components/product-configurator-selector-option-checkbox/style/_theme.scss +27 -0
  312. package/lib/components/product-configurator-selector-option-checkbox/style/material.scss +3 -0
  313. package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.d.ts +21 -0
  314. package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.d.ts +10 -0
  315. package/lib/components/product-configurator-selector-option-dropdown/style/_layout.scss +34 -0
  316. package/lib/components/product-configurator-selector-option-dropdown/style/_material-definition.scss +3 -0
  317. package/lib/components/product-configurator-selector-option-dropdown/style/_theme.scss +28 -0
  318. package/lib/components/product-configurator-selector-option-dropdown/style/material.scss +3 -0
  319. package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.d.ts +21 -0
  320. package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.d.ts +10 -0
  321. package/lib/components/product-configurator-selector-option-tile/style/_layout.scss +58 -0
  322. package/lib/components/product-configurator-selector-option-tile/style/_material-definition.scss +3 -0
  323. package/lib/components/product-configurator-selector-option-tile/style/_theme.scss +56 -0
  324. package/lib/components/product-configurator-selector-option-tile/style/material.scss +3 -0
  325. package/lib/components/progress-bar/progress-bar.component.d.ts +10 -0
  326. package/lib/components/progress-bar/progress-bar.component.scss +14 -0
  327. package/lib/components/progress-bar/progress-bar.module.d.ts +8 -0
  328. package/lib/components/progress-bar/style/_layout.scss +18 -0
  329. package/lib/components/progress-bar/style/_material-definition.scss +3 -0
  330. package/lib/components/progress-bar/style/_theme.scss +10 -0
  331. package/lib/components/progress-bar/style/material.scss +3 -0
  332. package/lib/components/scene-options/scene-options.component.d.ts +24 -0
  333. package/lib/components/scene-options/scene-options.module.d.ts +11 -0
  334. package/lib/components/scene-options/style/_layout.scss +52 -0
  335. package/lib/components/scene-options/style/_material-definition.scss +3 -0
  336. package/lib/components/scene-options/style/_theme.scss +7 -0
  337. package/lib/components/scene-options/style/material.scss +3 -0
  338. package/lib/components/selections-summary/selections-summary.component.d.ts +38 -0
  339. package/lib/components/selections-summary/selections-summary.module.d.ts +12 -0
  340. package/lib/components/selections-summary/style/_layout.scss +87 -0
  341. package/lib/components/selections-summary/style/_material-definition.scss +5 -0
  342. package/lib/components/selections-summary/style/_theme.scss +13 -0
  343. package/lib/components/selections-summary/style/material.scss +3 -0
  344. package/lib/components/selections-summary-line/selections-summary-line.component.d.ts +27 -0
  345. package/lib/components/selections-summary-line/selections-summary-line.module.d.ts +10 -0
  346. package/lib/components/selections-summary-line/style/_layout.scss +12 -0
  347. package/lib/components/selections-summary-line/style/_material-definition.scss +4 -0
  348. package/lib/components/selections-summary-line/style/_theme.scss +12 -0
  349. package/lib/components/selections-summary-line/style/material.scss +3 -0
  350. package/lib/components/slideout/slideout.component.d.ts +22 -0
  351. package/lib/components/slideout/slideout.module.d.ts +7 -0
  352. package/lib/components/slideout/style/_layout.scss +27 -0
  353. package/lib/components/slideout/style/_material-definition.scss +3 -0
  354. package/lib/components/slideout/style/_theme.scss +5 -0
  355. package/lib/components/slideout/style/material.scss +3 -0
  356. package/lib/components/summary-line/style/_layout.scss +137 -0
  357. package/lib/components/summary-line/style/_material-definition.scss +4 -0
  358. package/lib/components/summary-line/style/_theme.scss +56 -0
  359. package/lib/components/summary-line/style/material.scss +3 -0
  360. package/lib/components/summary-line/summary-line.component.d.ts +50 -0
  361. package/lib/components/summary-line/summary-line.module.d.ts +11 -0
  362. package/lib/components/tag-filter/style/_layout.scss +14 -0
  363. package/lib/components/tag-filter/style/_material-definition.scss +3 -0
  364. package/lib/components/tag-filter/style/_theme.scss +7 -0
  365. package/lib/components/tag-filter/style/material.scss +3 -0
  366. package/lib/components/tag-filter/tag-filter.component.d.ts +9 -0
  367. package/lib/components/tag-filter/tag-filter.module.d.ts +7 -0
  368. package/lib/components/threedselector/style/_layout.scss +32 -0
  369. package/lib/components/threedselector/style/_material-definition.scss +3 -0
  370. package/lib/components/threedselector/style/_theme.scss +7 -0
  371. package/lib/components/threedselector/style/material.scss +9 -0
  372. package/lib/components/threedselector/threedselector.component.d.ts +38 -0
  373. package/lib/components/threedselector/threedselector.module.d.ts +10 -0
  374. package/{helper → lib/core/helper}/variation-helper.d.ts +2 -2
  375. package/lib/core/shader/floor-fade.shader.d.ts +5 -0
  376. package/lib/core/textures/depth-data-texture.d.ts +5 -0
  377. package/lib/directives/directives.module.d.ts +8 -0
  378. package/{app → lib}/directives/visibility-observer-master.directive.d.ts +3 -0
  379. package/{app → lib}/directives/visibility-observer.directive.d.ts +3 -0
  380. package/lib/enum/ar-feature.enum.d.ts +12 -0
  381. package/lib/enum/configuration-key.enum.d.ts +39 -0
  382. package/lib/enum/configuration-template.enum.d.ts +4 -0
  383. package/lib/enum/device-size-type.d.ts +5 -0
  384. package/lib/enum/device-tier.enum.d.ts +5 -0
  385. package/lib/enum/icon.enum.d.ts +111 -0
  386. package/lib/enum/item-type.enum.d.ts +21 -0
  387. package/lib/enum/light.enum.d.ts +7 -0
  388. package/lib/enum/navigator-type.enum.d.ts +4 -0
  389. package/lib/enum/output-encoding.enum.d.ts +7 -0
  390. package/lib/enum/result-type.enum.d.ts +19 -0
  391. package/lib/enum/scene-event.enum.d.ts +10 -0
  392. package/lib/enum/shadow-map-type.enum.d.ts +6 -0
  393. package/lib/enum/texture-type.d.ts +7 -0
  394. package/lib/enum/tone-mapping-local.enum.d.ts +10 -0
  395. package/lib/enum/view-mode.enum.d.ts +5 -0
  396. package/lib/enum/xr-mode.enum.d.ts +4 -0
  397. package/lib/environments/environment.d.ts +4 -0
  398. package/lib/interfaces/aa-options.interface.d.ts +4 -0
  399. package/lib/interfaces/adjustable-element.interface.d.ts +5 -0
  400. package/lib/interfaces/ao-options.interface.d.ts +18 -0
  401. package/lib/interfaces/changes.interface.d.ts +9 -0
  402. package/lib/interfaces/configuration-data.interface.d.ts +40 -0
  403. package/lib/interfaces/light-preset.interface.d.ts +22 -0
  404. package/lib/interfaces/post-processing-setting.interface.d.ts +11 -0
  405. package/lib/interfaces/scene-option-button.interface.d.ts +19 -0
  406. package/lib/interfaces/screen-size-info.d.ts +10 -0
  407. package/lib/interfaces/setting.interface.d.ts +8 -0
  408. package/lib/interfaces/texture.interface.d.ts +44 -0
  409. package/lib/interfaces/vignette-options.interface.d.ts +4 -0
  410. package/lib/model/ar-position-indicator.d.ts +4 -0
  411. package/lib/model/camera-settings.d.ts +12 -0
  412. package/lib/model/configuration-result-object.d.ts +30 -0
  413. package/lib/model/configurator-error-message.d.ts +8 -0
  414. package/lib/model/configurator-settings.d.ts +62 -0
  415. package/lib/model/custom-button.d.ts +10 -0
  416. package/lib/model/factory.d.ts +5 -0
  417. package/lib/model/icon.d.ts +4 -0
  418. package/lib/model/intersected-objects.d.ts +6 -0
  419. package/lib/model/light-preset.d.ts +33 -0
  420. package/lib/model/light-properties.d.ts +25 -0
  421. package/lib/model/material.d.ts +41 -0
  422. package/lib/model/metadata.d.ts +78 -0
  423. package/lib/model/render-parameters.d.ts +12 -0
  424. package/lib/model/setting-options.d.ts +67 -0
  425. package/lib/model/settings.d.ts +10 -0
  426. package/lib/model/shadow-properties.d.ts +7 -0
  427. package/lib/model/skin.d.ts +15 -0
  428. package/lib/model/texture.d.ts +52 -0
  429. package/{model → lib/model}/variation-settings.d.ts +9 -8
  430. package/{model → lib/model}/variation.d.ts +2 -1
  431. package/lib/model/xr-reticle.d.ts +17 -0
  432. package/lib/modules/render/enum/scene-type.enum.d.ts +4 -0
  433. package/lib/modules/render/model/ar-parameters.d.ts +9 -0
  434. package/lib/modules/render/model/scene-setting.d.ts +13 -0
  435. package/lib/modules/render/model/scene-settings.d.ts +4 -0
  436. package/lib/pipes/append.pipe.d.ts +7 -0
  437. package/lib/pipes/google-translate.pipe.d.ts +11 -0
  438. package/lib/pipes/localize.pipe.d.ts +10 -0
  439. package/lib/pipes/pipes.module.d.ts +11 -0
  440. package/lib/pipes/prepend.pipe.d.ts +7 -0
  441. package/lib/pipes/strip-html.pipe.d.ts +7 -0
  442. package/lib/services/app-event.service.d.ts +32 -0
  443. package/lib/services/app-initializer.service.d.ts +14 -0
  444. package/lib/services/ar.service.d.ts +120 -0
  445. package/lib/services/build-furniture-base.service.d.ts +117 -0
  446. package/lib/services/build-furniture-without-scene.service.d.ts +14 -0
  447. package/lib/services/build-furniture.service.d.ts +14 -0
  448. package/lib/services/bundle-initialzer.service.d.ts +45 -0
  449. package/lib/services/camera.service.d.ts +44 -0
  450. package/lib/services/configuration.service.d.ts +18 -0
  451. package/lib/services/configurator-connector.service.d.ts +140 -0
  452. package/lib/services/configurator.service.d.ts +62 -0
  453. package/lib/services/configuring.service.d.ts +46 -0
  454. package/lib/services/controls.d.ts +11 -0
  455. package/lib/services/debug.service.d.ts +16 -0
  456. package/lib/services/dictionary.service.d.ts +15 -0
  457. package/lib/services/dynamic-camera.service.d.ts +21 -0
  458. package/lib/services/floor-plane.service.d.ts +47 -0
  459. package/lib/services/font.service.d.ts +10 -0
  460. package/lib/services/google-translate.service.d.ts +26 -0
  461. package/lib/services/icon-cache.service.d.ts +21 -0
  462. package/lib/services/intersection.service.d.ts +11 -0
  463. package/lib/services/item.service.d.ts +18 -0
  464. package/lib/services/json-utils.service.d.ts +7 -0
  465. package/lib/services/light-creation.service.d.ts +9 -0
  466. package/lib/services/light-presets.service.d.ts +34 -0
  467. package/lib/services/lights.service.d.ts +34 -0
  468. package/lib/services/load-furniture-base.service.d.ts +37 -0
  469. package/lib/services/load-furniture-without-scene.service.d.ts +9 -0
  470. package/lib/services/load-furniture.service.d.ts +9 -0
  471. package/lib/services/loader.service.d.ts +11 -0
  472. package/lib/services/locator.service.d.ts +7 -0
  473. package/lib/services/message-board.service.d.ts +18 -0
  474. package/lib/services/post-processing.service.d.ts +74 -0
  475. package/lib/services/product-configurator.service.d.ts +11 -0
  476. package/lib/services/progress.service.d.ts +9 -0
  477. package/lib/services/scene-event.service.d.ts +72 -0
  478. package/lib/services/scene-options.service.d.ts +11 -0
  479. package/lib/services/scene.service.d.ts +71 -0
  480. package/lib/services/screen-size-analysis.service.d.ts +32 -0
  481. package/lib/services/settings.service.d.ts +24 -0
  482. package/lib/services/switch-build-furniture.service.d.ts +21 -0
  483. package/lib/services/switch-load-furniture.service.d.ts +21 -0
  484. package/lib/services/threedselector.service.d.ts +17 -0
  485. package/lib/services/utils.service.d.ts +24 -0
  486. package/lib/services/variation-cache.service.d.ts +23 -0
  487. package/lib/services/variation.service.d.ts +26 -0
  488. package/lib/services/view-mode.service.d.ts +17 -0
  489. package/lib/services/vr.service.d.ts +42 -0
  490. package/lib/services/xr.service.d.ts +56 -0
  491. package/lib/style/_mixin.scss +9 -0
  492. package/lib/style/configurator-globals.scss +21 -0
  493. package/lib/style/template_variables.scss +37 -0
  494. package/lib/utils/color.utils.d.ts +8 -0
  495. package/lib/utils/debug.utils.d.ts +3 -0
  496. package/lib/utils/device.utils.d.ts +7 -0
  497. package/{utils → lib/utils}/file.utils.d.ts +3 -0
  498. package/{utils → lib/utils}/image.utils.d.ts +2 -3
  499. package/lib/utils/json-parser.utils.d.ts +9 -0
  500. package/lib/utils/material.utils.d.ts +34 -0
  501. package/lib/utils/object.utils.d.ts +32 -0
  502. package/lib/utils/relative-position.utils.d.ts +12 -0
  503. package/lib/utils/rotation-helper.utils.d.ts +6 -0
  504. package/lib/utils/scene-3d.utils.d.ts +8 -0
  505. package/lib/utils/text-utils.d.ts +4 -0
  506. package/{utils → lib/utils}/threed.utils.d.ts +7 -3
  507. package/{utils → lib/utils}/variation-utils.d.ts +4 -2
  508. package/package.json +17 -30
  509. package/public-api.d.ts +60 -0
  510. package/README.md +0 -28
  511. package/app/components/answers/answer/answer.component.d.ts +0 -11
  512. package/app/components/answers/answers.component.d.ts +0 -8
  513. package/app/components/answers/answers.module.d.ts +0 -2
  514. package/app/components/selections/selections.component.d.ts +0 -21
  515. package/app/components/selections/selections.module.d.ts +0 -2
  516. package/app/components/shared/loader/loader.component.d.ts +0 -2
  517. package/app/components/shared/shared.module.d.ts +0 -2
  518. package/app/services/configurator.service.d.ts +0 -19
  519. package/app/services/image-cache.service.d.ts +0 -10
  520. package/app/utils/object.utils.d.ts +0 -7
  521. package/colijnit-configurator.metadata.json +0 -1
  522. package/esm2015/app/builder.js +0 -710
  523. package/esm2015/app/components/answers/answer/answer.component.js +0 -66
  524. package/esm2015/app/components/answers/answers.component.js +0 -38
  525. package/esm2015/app/components/answers/answers.module.js +0 -27
  526. package/esm2015/app/components/selections/selections.component.js +0 -129
  527. package/esm2015/app/components/selections/selections.module.js +0 -21
  528. package/esm2015/app/components/shared/loader/loader.component.js +0 -22
  529. package/esm2015/app/components/shared/shared.module.js +0 -19
  530. package/esm2015/app/directives/visibility-observer-master.directive.js +0 -50
  531. package/esm2015/app/directives/visibility-observer.directive.js +0 -55
  532. package/esm2015/app/services/configurator.service.js +0 -79
  533. package/esm2015/app/services/image-cache.service.js +0 -63
  534. package/esm2015/app/utils/object.utils.js +0 -51
  535. package/esm2015/helper/variation-helper.js +0 -549
  536. package/esm2015/model/material.js +0 -11
  537. package/esm2015/model/variation-settings.js +0 -54
  538. package/esm2015/model/variation.js +0 -3
  539. package/esm2015/public_api.js +0 -7
  540. package/esm2015/utils/asset.utils.js +0 -124
  541. package/esm2015/utils/base-utils.js +0 -9
  542. package/esm2015/utils/file.utils.js +0 -142
  543. package/esm2015/utils/image.utils.js +0 -66
  544. package/esm2015/utils/object.utils.js +0 -49
  545. package/esm2015/utils/scene-utils.js +0 -187
  546. package/esm2015/utils/threed.utils.js +0 -226
  547. package/esm2015/utils/variation-utils.js +0 -388
  548. package/model/material.d.ts +0 -40
  549. package/public_api.d.ts +0 -6
  550. package/utils/object.utils.d.ts +0 -7
  551. /package/{utils → lib/utils}/asset.utils.d.ts +0 -0
  552. /package/{utils → lib/utils}/base-utils.d.ts +0 -0
  553. /package/{utils → lib/utils}/scene-utils.d.ts +0 -0
@@ -0,0 +1,164 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { isFloorDecoration, isWallDecoration, itemTypeFromPlacement } from '../model/factory';
5
+ import { ObjectUtils } from '../utils/object.utils';
6
+ import { ResultType } from '../enum/result-type.enum';
7
+ import { isNill } from '@colijnit/configuratorapi/build/utils/function/is-nill.function';
8
+ import { RotationHelper } from '../utils/rotation-helper.utils';
9
+ import { DebugUtils } from '../utils/debug.utils';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "./configurator-connector.service";
12
+ import * as i2 from "./threedselector.service";
13
+ import * as i3 from "./switch-build-furniture.service";
14
+ import * as i4 from "./settings.service";
15
+ export class LoadFurnitureBaseService {
16
+ constructor(configuratorConnectorService, threedSelectorService, buildFurnitureService, settingsService) {
17
+ this.configuratorConnectorService = configuratorConnectorService;
18
+ this.threedSelectorService = threedSelectorService;
19
+ this.buildFurnitureService = buildFurnitureService;
20
+ this.settingsService = settingsService;
21
+ this._fullObjectCache = new Map();
22
+ this.articleLoaded = new BehaviorSubject(undefined);
23
+ this._subs = [];
24
+ window.onbeforeunload = () => this.ngOnDestroy();
25
+ }
26
+ set article(value) {
27
+ this._article = value;
28
+ if (this._article) {
29
+ this.buildFurnitureService.currentActiveService.articleAssetPath =
30
+ this._article.contentDeliveryUrl + (!this._article.contentDeliveryUrl.endsWith('/') ? '/' : '');
31
+ }
32
+ this.articleLoaded.next(this._article);
33
+ }
34
+ get article() {
35
+ return this._article;
36
+ }
37
+ ngOnDestroy() {
38
+ this._subs.forEach(s => s.unsubscribe());
39
+ this._cleanUp();
40
+ }
41
+ loadArticle(sku) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ if (this.article && this.article.sku === sku) {
44
+ return this.article;
45
+ }
46
+ this.article = yield this.configuratorConnectorService.getArticleBySku(sku, this.settingsService.settings.branch);
47
+ return this.article;
48
+ });
49
+ }
50
+ extendConfigurationBuildResult(article, result) {
51
+ result.goodId = article.id;
52
+ result.articleName = article.name;
53
+ result.assetUrl = article.assetUrl;
54
+ result.cdnUrl = article.contentDeliveryUrl;
55
+ result.placement = itemTypeFromPlacement(article.placement);
56
+ result.schema = article.distSchema ? this.article.distSchema : 'UP_DBA';
57
+ result.configurable = article.goodType ? article.goodType.toLowerCase() === 'b' : true;
58
+ result.default180 = !isNill(article.canRotate) ? RotationHelper.Default180(article.canRotate) : false;
59
+ result.assetPath =
60
+ article.contentDeliveryUrl ?
61
+ article.contentDeliveryUrl : this._getAssetPathFromModelUrlAndSchema(article.assetUrl, article.distSchema);
62
+ result.itemType = itemTypeFromPlacement(article.placement);
63
+ result.hdecoType = article.hdecoType;
64
+ return result;
65
+ }
66
+ getFull3DObject(sku, assetUrl, prepareProgress = false) {
67
+ if (this._fullObjectCache.has(assetUrl)) {
68
+ return Promise.resolve(this._fullObjectCache.get(assetUrl));
69
+ }
70
+ else if (assetUrl) {
71
+ const fileUrl = assetUrl.replace('.unity3d', '');
72
+ const fileName = new URL(fileUrl).pathname.split('/').pop();
73
+ return this.threedSelectorService.downloadAssetsAndReturn(fileName, assetUrl, prepareProgress)
74
+ .then(res => {
75
+ const obj = res;
76
+ obj.name = sku;
77
+ this._fullObjectCache.set(assetUrl, obj);
78
+ return obj;
79
+ }, err => {
80
+ DebugUtils.log('Error: ' + err);
81
+ return err;
82
+ });
83
+ // }
84
+ }
85
+ else {
86
+ return Promise.resolve(null);
87
+ }
88
+ }
89
+ tryLoadArticle(sku, result, initConnector) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ this.article = undefined;
92
+ const article = yield this.loadArticle(sku).catch((e) => {
93
+ if (e === 'ECONNABORTED') {
94
+ result.resultType = ResultType.Timeout;
95
+ return Promise.reject();
96
+ }
97
+ });
98
+ if (article) {
99
+ this.article = article;
100
+ return;
101
+ }
102
+ else { // no article found
103
+ result.resultType = ResultType.ArticleNotFound;
104
+ return Promise.reject();
105
+ }
106
+ });
107
+ }
108
+ _cleanUp() {
109
+ const objs = Array.from(this._fullObjectCache.values());
110
+ objs.forEach(o => ObjectUtils.DisposeObject(o));
111
+ this._fullObjectCache.clear();
112
+ }
113
+ needs3DModel(type) {
114
+ return !isFloorDecoration(type) && !isWallDecoration(type);
115
+ }
116
+ initFull3DObject(configurationResultObject) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ const obj = yield this.getFull3DObject(configurationResultObject.sku, configurationResultObject.assetUrl).catch((e) => {
119
+ if (this.settingsService.settings.options.onlyThreeD && this.needs3DModel(configurationResultObject.placement)) {
120
+ configurationResultObject.errorMessages.push(e);
121
+ configurationResultObject.resultType = ResultType.No3DModel;
122
+ return Promise.reject(configurationResultObject);
123
+ }
124
+ });
125
+ if (obj === null) {
126
+ if (this.settingsService.settings.options.onlyThreeD && this.needs3DModel(configurationResultObject.placement)) {
127
+ configurationResultObject.resultType = ResultType.No3DModel;
128
+ return Promise.reject(configurationResultObject);
129
+ }
130
+ else {
131
+ return Promise.resolve();
132
+ }
133
+ }
134
+ this.buildFurnitureService.currentActiveService.full3DObjectToUse = obj.clone();
135
+ return;
136
+ });
137
+ }
138
+ getAssetPathFromMetadata(metadata) {
139
+ if (metadata) {
140
+ if (metadata.assetPath) {
141
+ return metadata.assetPath.endsWith('/') ? metadata.assetPath : metadata.assetPath + '/';
142
+ }
143
+ else if (metadata.assetUrl) { // try to get from modelUrl
144
+ return this._getAssetPathFromModelUrlAndSchema(metadata.assetUrl, metadata.schema);
145
+ }
146
+ }
147
+ return '';
148
+ }
149
+ _getAssetPathFromModelUrlAndSchema(modelUrl, schema) {
150
+ if (!modelUrl || !schema) {
151
+ return '';
152
+ }
153
+ const schemaIdx = modelUrl.indexOf(schema);
154
+ const assetPath = modelUrl.substr(0, schemaIdx - 1);
155
+ return assetPath.endsWith('/') ? assetPath : assetPath + '/';
156
+ }
157
+ }
158
+ LoadFurnitureBaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureBaseService, deps: [{ token: i1.ConfiguratorConnectorService }, { token: i2.ThreedselectorService }, { token: i3.SwitchBuildFurnitureService }, { token: i4.SettingsService }], target: i0.ɵɵFactoryTarget.Injectable });
159
+ LoadFurnitureBaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureBaseService, providedIn: 'root' });
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureBaseService, decorators: [{
161
+ type: Injectable,
162
+ args: [{ providedIn: 'root' }]
163
+ }], ctorParameters: function () { return [{ type: i1.ConfiguratorConnectorService }, { type: i2.ThreedselectorService }, { type: i3.SwitchBuildFurnitureService }, { type: i4.SettingsService }]; } });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1mdXJuaXR1cmUtYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvc2VydmljZXMvbG9hZC1mdXJuaXR1cmUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFLbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDNUYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDdkYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRTlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBR2hELE1BQU0sT0FBZ0Isd0JBQXdCO0lBc0I1QyxZQUNZLDRCQUEwRCxFQUMxRCxxQkFBNEMsRUFDNUMscUJBQWtELEVBQ2xELGVBQWdDO1FBSGhDLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQTZCO1FBQ2xELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXpCM0IscUJBQWdCLEdBQTBCLElBQUksR0FBRyxFQUFFLENBQUM7UUFlOUQsa0JBQWEsR0FBNkIsSUFBSSxlQUFlLENBQVUsU0FBUyxDQUFDLENBQUM7UUFFakYsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFVakMsTUFBTSxDQUFDLGNB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LENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQzthQUN6RjtpQkFBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSwyQkFBMkI7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxrQ0FBa0MsQ0FBQyxRQUFnQixFQUFFLE1BQWM7UUFDekUsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN4QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxTQUFTLEdBQVcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxNQUFNLFNBQVMsR0FBVyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7SUFDL0QsQ0FBQzs7c0hBMUttQix3QkFBd0I7MEhBQXhCLHdCQUF3QixjQURyQixNQUFNOzRGQUNULHdCQUF3QjtrQkFEN0MsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXJ0aWNsZX0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9hcnRpY2xlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7T2JqZWN0M0R9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtTd2l0Y2hCdWlsZEZ1cm5pdHVyZVNlcnZpY2V9IGZyb20gJy4vc3dpdGNoLWJ1aWxkLWZ1cm5pdHVyZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUaHJlZWRzZWxlY3RvclNlcnZpY2V9IGZyb20gJy4vdGhyZWVkc2VsZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuL3NldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge2lzRmxvb3JEZWNvcmF0aW9uLCBpc1dhbGxEZWNvcmF0aW9uLCBpdGVtVHlwZUZyb21QbGFjZW1lbnR9IGZyb20gJy4uL21vZGVsL2ZhY3RvcnknO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICcuLi91dGlscy9vYmplY3QudXRpbHMnO1xyXG5pbXBvcnQge1Jlc3VsdFR5cGV9IGZyb20gJy4uL2VudW0vcmVzdWx0LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3R9IGZyb20gJy4uL21vZGVsL2NvbmZpZ3VyYXRpb24tcmVzdWx0LW9iamVjdCc7XHJcbmltcG9ydCB7aXNOaWxsfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb24nO1xyXG5pbXBvcnQge1JvdGF0aW9uSGVscGVyfSBmcm9tICcuLi91dGlscy9yb3RhdGlvbi1oZWxwZXIudXRpbHMnO1xyXG5pbXBvcnQge0l0ZW1UeXBlfSBmcm9tICcuLi9lbnVtL2l0ZW0tdHlwZS5lbnVtJztcclxuaW1wb3J0IHtEZWJ1Z1V0aWxzfSBmcm9tICcuLi91dGlscy9kZWJ1Zy51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvYWRGdXJuaXR1cmVCYXNlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZnVsbE9iamVjdENhY2hlOiBNYXA8c3RyaW5nLCBPYmplY3QzRD4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIHB1YmxpYyBzZXQgYXJ0aWNsZSh2YWx1ZTogQXJ0aWNsZSkge1xyXG4gICAgdGhpcy5fYXJ0aWNsZSA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuX2FydGljbGUpIHtcclxuICAgICAgdGhpcy5idWlsZEZ1cm5pdHVyZVNlcnZpY2UuY3VycmVudEFjdGl2ZVNlcnZpY2UuYXJ0aWNsZUFzc2V0UGF0aCA9XHJcbiAgICAgICAgdGhpcy5fYXJ0aWNsZS5jb250ZW50RGVsaXZlcnlVcmwgKyAoIXRoaXMuX2FydGljbGUuY29udGVudERlbGl2ZXJ5VXJsLmVuZHNXaXRoKCcvJykgPyAnLycgOiAnJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFydGljbGVMb2FkZWQubmV4dCh0aGlzLl9hcnRpY2xlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXJ0aWNsZSgpOiBBcnRpY2xlIHtcclxuICAgIHJldHVybiB0aGlzLl9hcnRpY2xlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFydGljbGVMb2FkZWQ6IEJlaGF2aW9yU3ViamVjdDxBcnRpY2xlPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJ0aWNsZT4odW5kZWZpbmVkKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9hcnRpY2xlOiBBcnRpY2xlO1xyXG5cclxuXHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2U6IENvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdGhyZWVkU2VsZWN0b3JTZXJ2aWNlOiBUaHJlZWRzZWxlY3RvclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgYnVpbGRGdXJuaXR1cmVTZXJ2aWNlOiBTd2l0Y2hCdWlsZEZ1cm5pdHVyZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VcclxuICApIHtcclxuICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9ICgpID0+IHRoaXMubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuX2NsZWFuVXAoKTtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGxvYWRGdXJuaXR1cmUoXHJcbiAgICBmdXJuaXR1cmVEYXRhOiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LFxyXG4gICAgc2hvdWxkQ29weUluc3RhbmNlOiBib29sZWFuLFxyXG4gICAgbG9vc2VPcmlnaW5hbENvbmZpZ3VyYXRpb246IGJvb2xlYW4sXHJcbiAgICBzdGFuZEFsb25lOiBib29sZWFuLFxyXG4gICAgZnJvbVNjcmF0Y2g6IGJvb2xlYW4sXHJcbiAgICBmcm9tUHJlc2V0OiBib29sZWFuLFxyXG4gICAgbG9hZEZyb21Qcm9qZWN0OiBib29sZWFuXHJcbiAgKTogUHJvbWlzZTxDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0PjtcclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWRBcnRpY2xlKHNrdTogc3RyaW5nKTogUHJvbWlzZTxBcnRpY2xlPiB7XHJcbiAgICBpZiAodGhpcy5hcnRpY2xlICYmIHRoaXMuYXJ0aWNsZS5za3UgPT09IHNrdSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hcnRpY2xlID0gYXdhaXQgdGhpcy5jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLmdldEFydGljbGVCeVNrdShza3UsIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLmJyYW5jaCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcnRpY2xlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4dGVuZENvbmZpZ3VyYXRpb25CdWlsZFJlc3VsdChhcnRpY2xlOiBBcnRpY2xlLCByZXN1bHQ6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QpOiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0IHtcclxuICAgIHJlc3VsdC5nb29kSWQgPSBhcnRpY2xlLmlkO1xyXG4gICAgcmVzdWx0LmFydGljbGVOYW1lID0gYXJ0aWNsZS5uYW1lO1xyXG4gICAgcmVzdWx0LmFzc2V0VXJsID0gYXJ0aWNsZS5hc3NldFVybDtcclxuICAgIHJlc3VsdC5jZG5VcmwgPSBhcnRpY2xlLmNvbnRlbnREZWxpdmVyeVVybDtcclxuICAgIHJlc3VsdC5wbGFjZW1lbnQgPSBpdGVtVHlwZUZyb21QbGFjZW1lbnQoYXJ0aWNsZS5wbGFjZW1lbnQpO1xyXG4gICAgcmVzdWx0LnNjaGVtYSA9IGFydGljbGUuZGlzdFNjaGVtYSA/IHRoaXMuYXJ0aWNsZS5kaXN0U2NoZW1hIDogJ1VQX0RCQSc7XHJcbiAgICByZXN1bHQuY29uZmlndXJhYmxlID0gYXJ0aWNsZS5nb29kVHlwZSA/IGFydGljbGUuZ29vZFR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ2InIDogdHJ1ZTtcclxuICAgIHJlc3VsdC5kZWZhdWx0MTgwID0gIWlzTmlsbChhcnRpY2xlLmNhblJvdGF0ZSkgPyBSb3RhdGlvbkhlbHBlci5EZWZhdWx0MTgwKGFydGljbGUuY2FuUm90YXRlKSA6IGZhbHNlO1xyXG4gICAgcmVzdWx0LmFzc2V0UGF0aCA9XHJcbiAgICAgIGFydGljbGUuY29udGVudERlbGl2ZXJ5VXJsID9cclxuICAgICAgICBhcnRpY2xlLmNvbnRlbnREZWxpdmVyeVVybCA6IHRoaXMuX2dldEFzc2V0UGF0aEZyb21Nb2RlbFVybEFuZFNjaGVtYShhcnRpY2xlLmFzc2V0VXJsLCBhcnRpY2xlLmRpc3RTY2hlbWEpO1xyXG5cclxuICAgIHJlc3VsdC5pdGVtVHlwZSA9IGl0ZW1UeXBlRnJvbVBsYWNlbWVudChhcnRpY2xlLnBsYWNlbWVudCk7XHJcbiAgICByZXN1bHQuaGRlY29UeXBlID0gYXJ0aWNsZS5oZGVjb1R5cGVcclxuXHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGdWxsM0RPYmplY3QoXHJcbiAgICBza3U6IHN0cmluZyxcclxuICAgIGFzc2V0VXJsOiBzdHJpbmcsXHJcbiAgICBwcmVwYXJlUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IFByb21pc2U8T2JqZWN0M0Q+IHtcclxuICAgIGlmICh0aGlzLl9mdWxsT2JqZWN0Q2FjaGUuaGFzKGFzc2V0VXJsKSkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2Z1bGxPYmplY3RDYWNoZS5nZXQoYXNzZXRVcmwpKTtcclxuICAgIH0gZWxzZSBpZiAoYXNzZXRVcmwpIHtcclxuICAgICAgY29uc3QgZmlsZVVybDogc3RyaW5nID0gYXNzZXRVcmwucmVwbGFjZSgnLnVuaXR5M2QnLCAnJyk7XHJcbiAgICAgIGNvbnN0IGZpbGVOYW1lOiBzdHJpbmcgPSBuZXcgVVJMKGZpbGVVcmwpLnBhdGhuYW1lLnNwbGl0KCcvJykucG9wKCk7XHJcbiAgICAgIHJldHVybiB0aGlzLnRocmVlZFNlbGVjdG9yU2VydmljZS5kb3dubG9hZEFzc2V0c0FuZFJldHVybihmaWxlTmFtZSwgYXNzZXRVcmwsIHByZXBhcmVQcm9ncmVzcylcclxuICAgICAgICAudGhlbihcclxuICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iajogT2JqZWN0M0QgPSByZXM7XHJcbiAgICAgICAgICAgIG9iai5uYW1lID0gc2t1O1xyXG4gICAgICAgICAgICB0aGlzLl9mdWxsT2JqZWN0Q2FjaGUuc2V0KGFzc2V0VXJsLCBvYmopO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgIERlYnVnVXRpbHMubG9nKCdFcnJvcjogJyArIGVycik7XHJcbiAgICAgICAgICAgIHJldHVybiBlcnI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgLy8gfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyB0cnlMb2FkQXJ0aWNsZShza3U6IHN0cmluZywgcmVzdWx0OiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LCBpbml0Q29ubmVjdG9yOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmFydGljbGUgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBhcnRpY2xlID0gYXdhaXQgdGhpcy5sb2FkQXJ0aWNsZShza3UpLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgIGlmIChlID09PSAnRUNPTk5BQk9SVEVEJykge1xyXG4gICAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5UaW1lb3V0O1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChhcnRpY2xlKSB7XHJcbiAgICAgIHRoaXMuYXJ0aWNsZSA9IGFydGljbGU7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgeyAvLyBubyBhcnRpY2xlIGZvdW5kXHJcbiAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5BcnRpY2xlTm90Rm91bmQ7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2xlYW5VcCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG9ianM6IE9iamVjdDNEW10gPSBBcnJheS5mcm9tKHRoaXMuX2Z1bGxPYmplY3RDYWNoZS52YWx1ZXMoKSk7XHJcbiAgICBvYmpzLmZvckVhY2gobyA9PiBPYmplY3RVdGlscy5EaXNwb3NlT2JqZWN0KG8pKTtcclxuICAgIHRoaXMuX2Z1bGxPYmplY3RDYWNoZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG5lZWRzM0RNb2RlbCh0eXBlOiBJdGVtVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICFpc0Zsb29yRGVjb3JhdGlvbih0eXBlKSAmJiAhaXNXYWxsRGVjb3JhdGlvbih0eXBlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0RnVsbDNET2JqZWN0KGNvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3Q6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IG9iajogT2JqZWN0M0QgPSBhd2FpdCB0aGlzLmdldEZ1bGwzRE9iamVjdChjb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LnNrdSwgY29uZmlndXJhdGlvblJlc3VsdE9iamVjdC5hc3NldFVybCkuY2F0Y2goKGUpID0+IHtcclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMub25seVRocmVlRCAmJiB0aGlzLm5lZWRzM0RNb2RlbChjb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LnBsYWNlbWVudCkpIHtcclxuICAgICAgICBjb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LmVycm9yTWVzc2FnZXMucHVzaChlKTtcclxuICAgICAgICBjb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLk5vM0RNb2RlbDtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoY29uZmlndXJhdGlvblJlc3VsdE9iamVjdCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChvYmogPT09IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMub25seVRocmVlRCAmJiB0aGlzLm5lZWRzM0RNb2RlbChjb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LnBsYWNlbWVudCkpIHtcclxuICAgICAgICBjb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLk5vM0RNb2RlbDtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoY29uZmlndXJhdGlvblJlc3VsdE9iamVjdCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1aWxkRnVybml0dXJlU2VydmljZS5jdXJyZW50QWN0aXZlU2VydmljZS5mdWxsM0RPYmplY3RUb1VzZSA9IG9iai5jbG9uZSgpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFzc2V0UGF0aEZyb21NZXRhZGF0YShtZXRhZGF0YTogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCk6IHN0cmluZyB7XHJcbiAgICBpZiAobWV0YWRhdGEpIHtcclxuICAgICAgaWYgKG1ldGFkYXRhLmFzc2V0UGF0aCkge1xyXG4gICAgICAgIHJldHVybiBtZXRhZGF0YS5hc3NldFBhdGguZW5kc1dpdGgoJy8nKSA/IG1ldGFkYXRhLmFzc2V0UGF0aCA6IG1ldGFkYXRhLmFzc2V0UGF0aCArICcvJztcclxuICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS5hc3NldFVybCkgeyAvLyB0cnkgdG8gZ2V0IGZyb20gbW9kZWxVcmxcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0QXNzZXRQYXRoRnJvbU1vZGVsVXJsQW5kU2NoZW1hKG1ldGFkYXRhLmFzc2V0VXJsLCBtZXRhZGF0YS5zY2hlbWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRBc3NldFBhdGhGcm9tTW9kZWxVcmxBbmRTY2hlbWEobW9kZWxVcmw6IHN0cmluZywgc2NoZW1hOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFtb2RlbFVybCB8fCAhc2NoZW1hKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGNvbnN0IHNjaGVtYUlkeDogbnVtYmVyID0gbW9kZWxVcmwuaW5kZXhPZihzY2hlbWEpO1xyXG4gICAgY29uc3QgYXNzZXRQYXRoOiBzdHJpbmcgPSBtb2RlbFVybC5zdWJzdHIoMCwgc2NoZW1hSWR4IC0gMSk7XHJcbiAgICByZXR1cm4gYXNzZXRQYXRoLmVuZHNXaXRoKCcvJykgPyBhc3NldFBhdGggOiBhc3NldFBhdGggKyAnLyc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,45 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { LoadFurnitureBaseService } from './load-furniture-base.service';
4
+ import { ResultType } from '../enum/result-type.enum';
5
+ import { ConfiguratorErrorMessage } from '../model/configurator-error-message';
6
+ import { isFloorDecoration } from '../model/factory';
7
+ import { ConfigurationResultObject } from '../model/configuration-result-object';
8
+ import * as i0 from "@angular/core";
9
+ export class LoadFurnitureWithoutSceneService extends LoadFurnitureBaseService {
10
+ loadFurniture(furnitureData, shouldCopyInstance = false, looseOriginalConfiguration = true, standAlone = false, fromScratch = false, fromPreset = false, loadFromProject = false) {
11
+ return __awaiter(this, void 0, void 0, function* () {
12
+ let result = new ConfigurationResultObject();
13
+ result.sku = furnitureData.sku;
14
+ result.instanceId = furnitureData.instanceId;
15
+ yield this.tryLoadArticle(furnitureData.sku, result, loadFromProject).catch((e) => {
16
+ if (result.resultType === ResultType.Timeout) {
17
+ return Promise.reject(result);
18
+ }
19
+ result.errorMessages.push(new ConfiguratorErrorMessage('ARTICLE_NOT_FOUND', 'ARTICLE_NOT_FOUND_DESC'));
20
+ result.resultType = ResultType.ArticleNotFound;
21
+ return Promise.reject(result);
22
+ });
23
+ if (this.article) {
24
+ // Add the data to the result
25
+ result = this.extendConfigurationBuildResult(this.article, result);
26
+ }
27
+ if (!result.configurable && !isFloorDecoration(result.placement)) { // simple 3d article, just load model
28
+ return this.buildFurnitureService.currentActiveService.createSimple3DModel(result);
29
+ }
30
+ else if (!result.configurable && isFloorDecoration(result.placement)) {
31
+ return this.buildFurnitureService.currentActiveService.createNonConfigurableFloor(result);
32
+ }
33
+ else {
34
+ return this.buildFurnitureService.currentActiveService.startToBuild(result, shouldCopyInstance, looseOriginalConfiguration, standAlone, true, fromPreset, loadFromProject);
35
+ }
36
+ });
37
+ }
38
+ }
39
+ LoadFurnitureWithoutSceneService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureWithoutSceneService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
40
+ LoadFurnitureWithoutSceneService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureWithoutSceneService, providedIn: 'root' });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureWithoutSceneService, decorators: [{
42
+ type: Injectable,
43
+ args: [{ providedIn: 'root' }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1mdXJuaXR1cmUtd2l0aG91dC1zY2VuZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvc2VydmljZXMvbG9hZC1mdXJuaXR1cmUtd2l0aG91dC1zY2VuZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsaUJBQWlCLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7O0FBRy9FLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSx3QkFBd0I7SUFFL0QsYUFBYSxDQUN4QixhQUF3QyxFQUN4QyxxQkFBOEIsS0FBSyxFQUNuQyw2QkFBc0MsSUFBSSxFQUMxQyxhQUFzQixLQUFLLEVBQzNCLGNBQXVCLEtBQUssRUFDNUIsYUFBc0IsS0FBSyxFQUMzQixrQkFBMkIsS0FBSzs7WUFHaEMsSUFBSSxNQUFNLEdBQThCLElBQUkseUJBQXlCLEVBQUUsQ0FBQztZQUN4RSxNQUFNLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDL0IsTUFBTSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBRTdDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDaEYsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUU7b0JBQzVDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDL0I7Z0JBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztnQkFDL0MsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQiw2QkFBNkI7Z0JBQzdCLE1BQU0sR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNwRTtZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUscUNBQXFDO2dCQUN2RyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwRjtpQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3RFLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzNGO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FDakUsTUFBTSxFQUNOLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEVBQ1YsZUFBZSxDQUFDLENBQUM7YUFDcEI7UUFDSCxDQUFDO0tBQUE7OzhIQTdDVSxnQ0FBZ0M7a0lBQWhDLGdDQUFnQyxjQURwQixNQUFNOzRGQUNsQixnQ0FBZ0M7a0JBRDVDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xvYWRGdXJuaXR1cmVCYXNlU2VydmljZX0gZnJvbSAnLi9sb2FkLWZ1cm5pdHVyZS1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Jlc3VsdFR5cGV9IGZyb20gJy4uL2VudW0vcmVzdWx0LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yRXJyb3JNZXNzYWdlfSBmcm9tICcuLi9tb2RlbC9jb25maWd1cmF0b3ItZXJyb3ItbWVzc2FnZSc7XHJcbmltcG9ydCB7aXNGbG9vckRlY29yYXRpb24sIGl0ZW1UeXBlRnJvbVBsYWNlbWVudH0gZnJvbSAnLi4vbW9kZWwvZmFjdG9yeSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdH0gZnJvbSAnLi4vbW9kZWwvY29uZmlndXJhdGlvbi1yZXN1bHQtb2JqZWN0JztcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgTG9hZEZ1cm5pdHVyZVdpdGhvdXRTY2VuZVNlcnZpY2UgZXh0ZW5kcyBMb2FkRnVybml0dXJlQmFzZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZEZ1cm5pdHVyZShcclxuICAgIGZ1cm5pdHVyZURhdGE6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QsXHJcbiAgICBzaG91bGRDb3B5SW5zdGFuY2U6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGxvb3NlT3JpZ2luYWxDb25maWd1cmF0aW9uOiBib29sZWFuID0gdHJ1ZSxcclxuICAgIHN0YW5kQWxvbmU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGZyb21TY3JhdGNoOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBmcm9tUHJlc2V0OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBsb2FkRnJvbVByb2plY3Q6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IFByb21pc2U8Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdD4ge1xyXG5cclxuICAgIGxldCByZXN1bHQ6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QgPSBuZXcgQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCgpO1xyXG4gICAgcmVzdWx0LnNrdSA9IGZ1cm5pdHVyZURhdGEuc2t1O1xyXG4gICAgcmVzdWx0Lmluc3RhbmNlSWQgPSBmdXJuaXR1cmVEYXRhLmluc3RhbmNlSWQ7XHJcblxyXG4gICAgYXdhaXQgdGhpcy50cnlMb2FkQXJ0aWNsZShmdXJuaXR1cmVEYXRhLnNrdSwgcmVzdWx0LCBsb2FkRnJvbVByb2plY3QpLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQucmVzdWx0VHlwZSA9PT0gUmVzdWx0VHlwZS5UaW1lb3V0KSB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlc3VsdCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlc3VsdC5lcnJvck1lc3NhZ2VzLnB1c2gobmV3IENvbmZpZ3VyYXRvckVycm9yTWVzc2FnZSgnQVJUSUNMRV9OT1RfRk9VTkQnLCAnQVJUSUNMRV9OT1RfRk9VTkRfREVTQycpKTtcclxuICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLkFydGljbGVOb3RGb3VuZDtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlc3VsdCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5hcnRpY2xlKSB7XHJcbiAgICAgIC8vIEFkZCB0aGUgZGF0YSB0byB0aGUgcmVzdWx0XHJcbiAgICAgIHJlc3VsdCA9IHRoaXMuZXh0ZW5kQ29uZmlndXJhdGlvbkJ1aWxkUmVzdWx0KHRoaXMuYXJ0aWNsZSwgcmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXJlc3VsdC5jb25maWd1cmFibGUgJiYgIWlzRmxvb3JEZWNvcmF0aW9uKHJlc3VsdC5wbGFjZW1lbnQpKSB7IC8vIHNpbXBsZSAzZCBhcnRpY2xlLCBqdXN0IGxvYWQgbW9kZWxcclxuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRGdXJuaXR1cmVTZXJ2aWNlLmN1cnJlbnRBY3RpdmVTZXJ2aWNlLmNyZWF0ZVNpbXBsZTNETW9kZWwocmVzdWx0KTtcclxuICAgIH0gZWxzZSBpZiAoIXJlc3VsdC5jb25maWd1cmFibGUgJiYgaXNGbG9vckRlY29yYXRpb24ocmVzdWx0LnBsYWNlbWVudCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRGdXJuaXR1cmVTZXJ2aWNlLmN1cnJlbnRBY3RpdmVTZXJ2aWNlLmNyZWF0ZU5vbkNvbmZpZ3VyYWJsZUZsb29yKHJlc3VsdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5idWlsZEZ1cm5pdHVyZVNlcnZpY2UuY3VycmVudEFjdGl2ZVNlcnZpY2Uuc3RhcnRUb0J1aWxkKFxyXG4gICAgICAgIHJlc3VsdCxcclxuICAgICAgICBzaG91bGRDb3B5SW5zdGFuY2UsXHJcbiAgICAgICAgbG9vc2VPcmlnaW5hbENvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgc3RhbmRBbG9uZSxcclxuICAgICAgICB0cnVlLFxyXG4gICAgICAgIGZyb21QcmVzZXQsXHJcbiAgICAgICAgbG9hZEZyb21Qcm9qZWN0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,72 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { LoadFurnitureBaseService } from './load-furniture-base.service';
4
+ import { FileUtils } from '../utils/file.utils';
5
+ import { ResultType } from '../enum/result-type.enum';
6
+ import { ConfiguratorErrorMessage } from '../model/configurator-error-message';
7
+ import { isFloorDecoration } from '../model/factory';
8
+ import { DebugUtils } from '../utils/debug.utils';
9
+ import { ItemType } from '../enum/item-type.enum';
10
+ import { HdecoType } from '@colijnit/configuratorapi/build/enum/hdeco-type.enum';
11
+ import * as i0 from "@angular/core";
12
+ export class LoadFurnitureService extends LoadFurnitureBaseService {
13
+ loadFurniture(furnitureData, shouldCopyInstance = false, looseOriginalConfiguration = true, standAlone = false, fromScratch = false, fromPreset = false, loadFromProject = false) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ let result = furnitureData;
16
+ let modelExists = false;
17
+ if (loadFromProject && result.assetUrl) {
18
+ modelExists = yield FileUtils.DoesFileExist(FileUtils.FixUrl(result.assetUrl));
19
+ }
20
+ if (!modelExists) {
21
+ yield this.tryLoadArticle(furnitureData.sku, result, loadFromProject).catch((e) => {
22
+ if (result.resultType === ResultType.Timeout) {
23
+ DebugUtils.log('Timeout loading article');
24
+ return Promise.reject(result);
25
+ }
26
+ if (!this.needs3DModel(result.placement)) {
27
+ result.resultType = ResultType.No3DModel;
28
+ }
29
+ if (!result.assetUrl && result.resultType !== ResultType.No3DModel || result.resultType === ResultType.ArticleNotFound) {
30
+ result.errorMessages.push(new ConfiguratorErrorMessage('ARTICLE_NOT_FOUND', 'ARTICLE_NOT_FOUND_DESC'));
31
+ DebugUtils.log('Article not found');
32
+ return Promise.reject(result);
33
+ }
34
+ });
35
+ if (this.article) {
36
+ // Add the data to the result
37
+ result = this.extendConfigurationBuildResult(this.article, result);
38
+ }
39
+ }
40
+ else {
41
+ result = furnitureData;
42
+ this.buildFurnitureService.currentActiveService.articleAssetPath = this.getAssetPathFromMetadata(result);
43
+ }
44
+ if (result.itemType === ItemType.FloorDecoration && result.hdecoType === HdecoType.Materials) {
45
+ result.resultType = ResultType.No3DModel;
46
+ }
47
+ else {
48
+ yield this.initFull3DObject(result).catch((e) => {
49
+ if (!standAlone) {
50
+ return Promise.reject(result);
51
+ }
52
+ });
53
+ }
54
+ if (!result.configurable && !isFloorDecoration(result.placement)) { // simple 3d article, just load model
55
+ return this.buildFurnitureService.currentActiveService.createSimple3DModel(result);
56
+ }
57
+ else if (!result.configurable && isFloorDecoration(result.placement)) {
58
+ return this.buildFurnitureService.currentActiveService.createNonConfigurableFloor(result);
59
+ }
60
+ else {
61
+ return this.buildFurnitureService.currentActiveService.startToBuild(result, shouldCopyInstance, looseOriginalConfiguration, standAlone, true, fromPreset, loadFromProject);
62
+ }
63
+ });
64
+ }
65
+ }
66
+ LoadFurnitureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
67
+ LoadFurnitureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureService, providedIn: 'root' });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureService, decorators: [{
69
+ type: Injectable,
70
+ args: [{ providedIn: 'root' }]
71
+ }] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1mdXJuaXR1cmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL2xvYWQtZnVybml0dXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzREFBc0QsQ0FBQzs7QUFJL0UsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHdCQUF3QjtJQUVuRCxhQUFhLENBQ3hCLGFBQXdDLEVBQ3hDLHFCQUE4QixLQUFLLEVBQ25DLDZCQUFzQyxJQUFJLEVBQzFDLGFBQXNCLEtBQUssRUFDM0IsY0FBdUIsS0FBSyxFQUM1QixhQUFzQixLQUFLLEVBQzNCLGtCQUEyQixLQUFLOztZQUVoQyxJQUFJLE1BQU0sR0FBOEIsYUFBYSxDQUFDO1lBRXRELElBQUksV0FBVyxHQUFZLEtBQUssQ0FBQztZQUNqQyxJQUFJLGVBQWUsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN0QyxXQUFXLEdBQUcsTUFBTSxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENB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QUFlLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUM7S0FBQTs7a0hBcEVVLG9CQUFvQjtzSEFBcEIsb0JBQW9CLGNBRFIsTUFBTTs0RkFDbEIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtMb2FkRnVybml0dXJlQmFzZVNlcnZpY2V9IGZyb20gJy4vbG9hZC1mdXJuaXR1cmUtYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGaWxlVXRpbHN9IGZyb20gJy4uL3V0aWxzL2ZpbGUudXRpbHMnO1xyXG5pbXBvcnQge1Jlc3VsdFR5cGV9IGZyb20gJy4uL2VudW0vcmVzdWx0LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yRXJyb3JNZXNzYWdlfSBmcm9tICcuLi9tb2RlbC9jb25maWd1cmF0b3ItZXJyb3ItbWVzc2FnZSc7XHJcbmltcG9ydCB7aXNGbG9vckRlY29yYXRpb259IGZyb20gJy4uL21vZGVsL2ZhY3RvcnknO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3R9IGZyb20gJy4uL21vZGVsL2NvbmZpZ3VyYXRpb24tcmVzdWx0LW9iamVjdCc7XHJcbmltcG9ydCB7RGVidWdVdGlsc30gZnJvbSAnLi4vdXRpbHMvZGVidWcudXRpbHMnO1xyXG5pbXBvcnQge0l0ZW1UeXBlfSBmcm9tICcuLi9lbnVtL2l0ZW0tdHlwZS5lbnVtJztcclxuaW1wb3J0IHtIZGVjb1R5cGV9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvZW51bS9oZGVjby10eXBlLmVudW0nO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgTG9hZEZ1cm5pdHVyZVNlcnZpY2UgZXh0ZW5kcyBMb2FkRnVybml0dXJlQmFzZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZEZ1cm5pdHVyZShcclxuICAgIGZ1cm5pdHVyZURhdGE6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QsXHJcbiAgICBzaG91bGRDb3B5SW5zdGFuY2U6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGxvb3NlT3JpZ2luYWxDb25maWd1cmF0aW9uOiBib29sZWFuID0gdHJ1ZSxcclxuICAgIHN0YW5kQWxvbmU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGZyb21TY3JhdGNoOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBmcm9tUHJlc2V0OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBsb2FkRnJvbVByb2plY3Q6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IFByb21pc2U8Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdD4ge1xyXG4gICAgbGV0IHJlc3VsdDogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCA9IGZ1cm5pdHVyZURhdGE7XHJcblxyXG4gICAgbGV0IG1vZGVsRXhpc3RzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAobG9hZEZyb21Qcm9qZWN0ICYmIHJlc3VsdC5hc3NldFVybCkge1xyXG4gICAgICBtb2RlbEV4aXN0cyA9IGF3YWl0IEZpbGVVdGlscy5Eb2VzRmlsZUV4aXN0KEZpbGVVdGlscy5GaXhVcmwocmVzdWx0LmFzc2V0VXJsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFtb2RlbEV4aXN0cykge1xyXG4gICAgICBhd2FpdCB0aGlzLnRyeUxvYWRBcnRpY2xlKGZ1cm5pdHVyZURhdGEuc2t1LCByZXN1bHQsIGxvYWRGcm9tUHJvamVjdCkuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnJlc3VsdFR5cGUgPT09IFJlc3VsdFR5cGUuVGltZW91dCkge1xyXG4gICAgICAgICAgRGVidWdVdGlscy5sb2coJ1RpbWVvdXQgbG9hZGluZyBhcnRpY2xlJyk7XHJcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5uZWVkczNETW9kZWwocmVzdWx0LnBsYWNlbWVudCkpIHtcclxuICAgICAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5ObzNETW9kZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghcmVzdWx0LmFzc2V0VXJsICYmIHJlc3VsdC5yZXN1bHRUeXBlICE9PSBSZXN1bHRUeXBlLk5vM0RNb2RlbCB8fCByZXN1bHQucmVzdWx0VHlwZSA9PT0gUmVzdWx0VHlwZS5BcnRpY2xlTm90Rm91bmQpIHtcclxuICAgICAgICAgIHJlc3VsdC5lcnJvck1lc3NhZ2VzLnB1c2gobmV3IENvbmZpZ3VyYXRvckVycm9yTWVzc2FnZSgnQVJUSUNMRV9OT1RfRk9VTkQnLCAnQVJUSUNMRV9OT1RfRk9VTkRfREVTQycpKTtcclxuICAgICAgICAgIERlYnVnVXRpbHMubG9nKCdBcnRpY2xlIG5vdCBmb3VuZCcpO1xyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmFydGljbGUpIHtcclxuICAgICAgICAvLyBBZGQgdGhlIGRhdGEgdG8gdGhlIHJlc3VsdFxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZXh0ZW5kQ29uZmlndXJhdGlvbkJ1aWxkUmVzdWx0KHRoaXMuYXJ0aWNsZSwgcmVzdWx0KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gZnVybml0dXJlRGF0YTtcclxuICAgICAgdGhpcy5idWlsZEZ1cm5pdHVyZVNlcnZpY2UuY3VycmVudEFjdGl2ZVNlcnZpY2UuYXJ0aWNsZUFzc2V0UGF0aCA9IHRoaXMuZ2V0QXNzZXRQYXRoRnJvbU1ldGFkYXRhKHJlc3VsdCk7XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHJlc3VsdC5pdGVtVHlwZSA9PT0gSXRlbVR5cGUuRmxvb3JEZWNvcmF0aW9uICYmIHJlc3VsdC5oZGVjb1R5cGUgPT09IEhkZWNvVHlwZS5NYXRlcmlhbHMpIHtcclxuICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLk5vM0RNb2RlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuaW5pdEZ1bGwzRE9iamVjdChyZXN1bHQpLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgICAgaWYgKCFzdGFuZEFsb25lKSB7XHJcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcmVzdWx0LmNvbmZpZ3VyYWJsZSAmJiAhaXNGbG9vckRlY29yYXRpb24ocmVzdWx0LnBsYWNlbWVudCkpIHsgLy8gc2ltcGxlIDNkIGFydGljbGUsIGp1c3QgbG9hZCBtb2RlbFxyXG4gICAgICByZXR1cm4gdGhpcy5idWlsZEZ1cm5pdHVyZVNlcnZpY2UuY3VycmVudEFjdGl2ZVNlcnZpY2UuY3JlYXRlU2ltcGxlM0RNb2RlbChyZXN1bHQpO1xyXG4gICAgfSBlbHNlIGlmICghcmVzdWx0LmNvbmZpZ3VyYWJsZSAmJiBpc0Zsb29yRGVjb3JhdGlvbihyZXN1bHQucGxhY2VtZW50KSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5idWlsZEZ1cm5pdHVyZVNlcnZpY2UuY3VycmVudEFjdGl2ZVNlcnZpY2UuY3JlYXRlTm9uQ29uZmlndXJhYmxlRmxvb3IocmVzdWx0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkRnVybml0dXJlU2VydmljZS5jdXJyZW50QWN0aXZlU2VydmljZS5zdGFydFRvQnVpbGQoXHJcbiAgICAgICAgcmVzdWx0LFxyXG4gICAgICAgIHNob3VsZENvcHlJbnN0YW5jZSxcclxuICAgICAgICBsb29zZU9yaWdpbmFsQ29uZmlndXJhdGlvbixcclxuICAgICAgICBzdGFuZEFsb25lLFxyXG4gICAgICAgIHRydWUsXHJcbiAgICAgICAgZnJvbVByZXNldCxcclxuICAgICAgICBsb2FkRnJvbVByb2plY3QpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LoaderService {
4
+ constructor() {
5
+ this._hideLoaderTimerTimeout = 500;
6
+ this._showLoader = false;
7
+ }
8
+ // TODO this should be checked, it does not really work due to alot of true/ false changes.
9
+ set showLoader(value) {
10
+ if (value) {
11
+ clearTimeout(this._hideLoaderTimeout);
12
+ this._showLoader = true;
13
+ }
14
+ else {
15
+ this._hideLoaderTimeout = setTimeout(() => {
16
+ this._showLoader = false;
17
+ }, this._hideLoaderTimerTimeout);
18
+ }
19
+ }
20
+ get showLoader() {
21
+ return this._showLoader;
22
+ }
23
+ }
24
+ LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
+ LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoaderService, providedIn: 'root' });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoaderService, decorators: [{
27
+ type: Injectable,
28
+ args: [{
29
+ providedIn: 'root'
30
+ }]
31
+ }], ctorParameters: function () { return []; } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25maWd1cmF0b3Ivc3JjL2xpYi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUt6QyxNQUFNLE9BQU8sYUFBYTtJQXNCeEI7UUFwQmlCLDRCQUF1QixHQUFXLEdBQUcsQ0FBQztRQWtCL0MsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFJckMsQ0FBQztJQXBCRCwyRkFBMkY7SUFDM0YsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNsQyxJQUFJLEtBQUssRUFBRTtZQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQzNCLENBQUMsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7OzJHQWxCVSxhQUFhOytHQUFiLGFBQWEsY0FGWixNQUFNOzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvYWRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2hpZGVMb2FkZXJUaW1lb3V0OiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfaGlkZUxvYWRlclRpbWVyVGltZW91dDogbnVtYmVyID0gNTAwO1xyXG5cclxuICAvLyBUT0RPIHRoaXMgc2hvdWxkIGJlIGNoZWNrZWQsIGl0IGRvZXMgbm90IHJlYWxseSB3b3JrIGR1ZSB0byBhbG90IG9mIHRydWUvIGZhbHNlIGNoYW5nZXMuXHJcbiAgcHVibGljIHNldCBzaG93TG9hZGVyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2hpZGVMb2FkZXJUaW1lb3V0KTtcclxuICAgICAgdGhpcy5fc2hvd0xvYWRlciA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oaWRlTG9hZGVyVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfSwgdGhpcy5faGlkZUxvYWRlclRpbWVyVGltZW91dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNob3dMb2FkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd0xvYWRlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ServiceLocator {
4
+ }
5
+ ServiceLocator.injector = undefined;
6
+ ServiceLocator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ServiceLocator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ ServiceLocator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ServiceLocator });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ServiceLocator, decorators: [{
9
+ type: Injectable
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvc2VydmljZXMvbG9jYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVcsTUFBTSxlQUFlLENBQUM7O0FBR25ELE1BQU0sT0FBTyxjQUFjOztBQUNsQix1QkFBUSxHQUFhLFNBQVMsQ0FBQzs0R0FEM0IsY0FBYztnSEFBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNlcnZpY2VMb2NhdG9yIHtcclxuICBzdGF0aWMgaW5qZWN0b3I6IEluamVjdG9yID0gdW5kZWZpbmVkO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { DoubleSide, Mesh, MeshBasicMaterial, PlaneGeometry, Vector3 } from 'three';
4
+ import { makeTextMesh } from '../utils/text-utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./settings.service";
7
+ import * as i2 from "./font.service";
8
+ export class MessageBoardService {
9
+ constructor(_settingsService, _fontService) {
10
+ this._settingsService = _settingsService;
11
+ this._fontService = _fontService;
12
+ this.messages = [];
13
+ }
14
+ init(scene) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ this.scene = scene;
17
+ if (this._settingsService.settings.options.xrDebug) {
18
+ this._createMessageBoard();
19
+ // this.font = await this._loadFont();
20
+ }
21
+ });
22
+ }
23
+ addMessage(message) {
24
+ if (this._settingsService.settings.options.xrDebug) {
25
+ const newMessage = makeTextMesh(message, this._fontService.monospaceFont, 0x000000, 6, false);
26
+ this.messages.push(newMessage);
27
+ this.board.add(newMessage);
28
+ newMessage.position.set(5, -this.messages.length * 10, 0);
29
+ }
30
+ }
31
+ _createMessageBoard() {
32
+ const planeWidth = 200;
33
+ const planeHeight = 250;
34
+ const planeGeo = new PlaneGeometry(planeWidth, planeHeight);
35
+ const planeMaterial = new MeshBasicMaterial({ color: 0x8bb2ff, side: DoubleSide, transparent: true, opacity: 0.5 });
36
+ this.board = new Mesh(planeGeo, planeMaterial);
37
+ // this.board.add(new AxesHelper(200));
38
+ this.board.rotateOnAxis(new Vector3(0, 1, 0), 180 * (Math.PI / 180));
39
+ this.board.geometry.translate(planeWidth / 2, -planeHeight / 2, 0);
40
+ this.scene.add(this.board);
41
+ this.board.position.set(0, 260, 0);
42
+ }
43
+ }
44
+ MessageBoardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MessageBoardService, deps: [{ token: i1.SettingsService }, { token: i2.FontService }], target: i0.ɵɵFactoryTarget.Injectable });
45
+ MessageBoardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MessageBoardService, providedIn: 'root' });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MessageBoardService, decorators: [{
47
+ type: Injectable,
48
+ args: [{ providedIn: 'root' }]
49
+ }], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i2.FontService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1ib2FyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvc2VydmljZXMvbWVzc2FnZS1ib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBaUIsVUFBVSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQVMsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBSXpHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUdqRCxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQ1UsZ0JBQWlDLEVBQ2pDLFlBQXlCO1FBRHpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFMNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztJQVE3QixDQUFDO0lBRVksSUFBSSxDQUFDLEtBQVk7O1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNsRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDM0Isc0NBQXNDO2FBQ3ZDO1FBQ0gsQ0FBQztLQUFBO0lBRU0sVUFBVSxDQUFDLE9BQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDbEQsTUFBTSxVQUFVLEdBQWUsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxVQUFVLEdBQVcsR0FBRyxDQUFDO1FBQy9CLE1BQU0sV0FBVyxHQUFXLEdBQUcsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBbUIsSUFBSSxhQUFhLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sYUFBYSxHQUFzQixJQUFJLGlCQUFpQixDQUFDLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFDckksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDL0MsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7aUhBMUNVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRFAsTUFBTTs0RkFDbEIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtCdWZmZXJHZW9tZXRyeSwgRG91YmxlU2lkZSwgTWVzaCwgTWVzaEJhc2ljTWF0ZXJpYWwsIFBsYW5lR2VvbWV0cnksIFNjZW5lLCBWZWN0b3IzfSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7Rm9udH0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvRm9udExvYWRlcic7XHJcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuL3NldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ZvbnRTZXJ2aWNlfSBmcm9tICcuL2ZvbnQuc2VydmljZSc7XHJcbmltcG9ydCB7bWFrZVRleHRNZXNofSBmcm9tICcuLi91dGlscy90ZXh0LXV0aWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZUJvYXJkU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBzY2VuZTogU2NlbmU7XHJcbiAgcHVibGljIGJvYXJkOiBNZXNoO1xyXG4gIHB1YmxpYyBtZXNzYWdlczogTWVzaFtdID0gW107XHJcbiAgcHJpdmF0ZSBfZm9udDogRm9udDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZvbnRTZXJ2aWNlOiBGb250U2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0KHNjZW5lOiBTY2VuZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zY2VuZSA9IHNjZW5lO1xyXG4gICAgaWYgKHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5vcHRpb25zLnhyRGVidWcpIHtcclxuICAgICAgdGhpcy5fY3JlYXRlTWVzc2FnZUJvYXJkKCk7XHJcbiAgICAgIC8vIHRoaXMuZm9udCA9IGF3YWl0IHRoaXMuX2xvYWRGb250KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy54ckRlYnVnKSB7XHJcbiAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IFRIUkVFLk1lc2ggPSBtYWtlVGV4dE1lc2gobWVzc2FnZSwgdGhpcy5fZm9udFNlcnZpY2UubW9ub3NwYWNlRm9udCwgMHgwMDAwMDAsIDYsIGZhbHNlKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG5ld01lc3NhZ2UpO1xyXG4gICAgICB0aGlzLmJvYXJkLmFkZChuZXdNZXNzYWdlKTtcclxuICAgICAgbmV3TWVzc2FnZS5wb3NpdGlvbi5zZXQoNSwgLXRoaXMubWVzc2FnZXMubGVuZ3RoICogMTAsIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTWVzc2FnZUJvYXJkKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGxhbmVXaWR0aDogbnVtYmVyID0gMjAwO1xyXG4gICAgY29uc3QgcGxhbmVIZWlnaHQ6IG51bWJlciA9IDI1MDtcclxuICAgIGNvbnN0IHBsYW5lR2VvOiBCdWZmZXJHZW9tZXRyeSA9IG5ldyBQbGFuZUdlb21ldHJ5KHBsYW5lV2lkdGgsIHBsYW5lSGVpZ2h0KTtcclxuICAgIGNvbnN0IHBsYW5lTWF0ZXJpYWw6IE1lc2hCYXNpY01hdGVyaWFsID0gbmV3IE1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogMHg4YmIyZmYsIHNpZGU6IERvdWJsZVNpZGUsIHRyYW5zcGFyZW50OiB0cnVlLCBvcGFjaXR5OiAwLjV9KTtcclxuICAgIHRoaXMuYm9hcmQgPSBuZXcgTWVzaChwbGFuZUdlbywgcGxhbmVNYXRlcmlhbCk7XHJcbiAgICAvLyB0aGlzLmJvYXJkLmFkZChuZXcgQXhlc0hlbHBlcigyMDApKTtcclxuICAgIHRoaXMuYm9hcmQucm90YXRlT25BeGlzKG5ldyBWZWN0b3IzKDAsIDEsIDApLCAxODAgKiAoTWF0aC5QSSAvIDE4MCkpO1xyXG4gICAgdGhpcy5ib2FyZC5nZW9tZXRyeS50cmFuc2xhdGUocGxhbmVXaWR0aCAvIDIsIC1wbGFuZUhlaWdodCAvIDIsIDApO1xyXG4gICAgdGhpcy5zY2VuZS5hZGQodGhpcy5ib2FyZCk7XHJcbiAgICB0aGlzLmJvYXJkLnBvc2l0aW9uLnNldCgwLCAyNjAsIDApO1xyXG4gIH1cclxufVxyXG4iXX0=