@colijnit/configurator 261.1.1 → 261.20.0

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 (399) hide show
  1. package/{fesm2015/colijnit-configurator.js → fesm2022/colijnit-configurator.mjs} +19092 -18478
  2. package/fesm2022/colijnit-configurator.mjs.map +1 -0
  3. package/index.d.ts +3301 -0
  4. package/lib/components/answer-card/style/_layout.scss +3 -3
  5. package/lib/components/answers-slideout/style/_layout.scss +1 -0
  6. package/package.json +17 -13
  7. package/bundles/colijnit-configurator.umd.js +0 -20167
  8. package/bundles/colijnit-configurator.umd.js.map +0 -1
  9. package/colijnit-configurator.d.ts +0 -5
  10. package/esm2015/colijnit-configurator.js +0 -5
  11. package/esm2015/lib/builder.js +0 -795
  12. package/esm2015/lib/components/answer-card/answer-card.component.js +0 -313
  13. package/esm2015/lib/components/answer-card/answer-card.module.js +0 -50
  14. package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.component.js +0 -182
  15. package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.module.js +0 -34
  16. package/esm2015/lib/components/answers-slideout/answers-slideout.component.js +0 -490
  17. package/esm2015/lib/components/answers-slideout/answers-slideout.module.js +0 -61
  18. package/esm2015/lib/components/color-filter/color-filter.component.js +0 -59
  19. package/esm2015/lib/components/color-filter/color-filter.module.js +0 -26
  20. package/esm2015/lib/components/configurator/configurator.component.js +0 -133
  21. package/esm2015/lib/components/configurator/configurator.module.js +0 -42
  22. package/esm2015/lib/components/configurator-dialog/configurator-camera-settings.component.js +0 -222
  23. package/esm2015/lib/components/configurator-dialog/configurator-dialog.module.js +0 -48
  24. package/esm2015/lib/components/configurator-dialog/configurator-error-dialog.component.js +0 -82
  25. package/esm2015/lib/components/configurator-dialog/configurator-export-dialog.component.js +0 -163
  26. package/esm2015/lib/components/configurator-loader/configurator-loader.component.js +0 -49
  27. package/esm2015/lib/components/configurator-loader/configurator-loader.module.js +0 -33
  28. package/esm2015/lib/components/configurator-scene/configurator-scene.component.js +0 -60
  29. package/esm2015/lib/components/configurator-scene/configurator-scene.module.js +0 -17
  30. package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.component.js +0 -46
  31. package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.module.js +0 -26
  32. package/esm2015/lib/components/element-buttons/element-buttons.component.js +0 -168
  33. package/esm2015/lib/components/element-buttons/element-buttons.module.js +0 -30
  34. package/esm2015/lib/components/element-toolbar/element-toolbar.component.js +0 -186
  35. package/esm2015/lib/components/element-toolbar/element-toolbar.module.js +0 -34
  36. package/esm2015/lib/components/image-zoom/image-zoom.component.js +0 -61
  37. package/esm2015/lib/components/image-zoom/image-zoom.module.js +0 -30
  38. package/esm2015/lib/components/lite-selector/lite-selector.component.js +0 -206
  39. package/esm2015/lib/components/lite-selector/lite-selector.module.js +0 -34
  40. package/esm2015/lib/components/product-configurator/product-configurator.component.js +0 -184
  41. package/esm2015/lib/components/product-configurator/product-configurator.module.js +0 -72
  42. package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.component.js +0 -237
  43. package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.module.js +0 -38
  44. package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.js +0 -284
  45. package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.js +0 -42
  46. package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.js +0 -72
  47. package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.js +0 -34
  48. package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.js +0 -82
  49. package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.js +0 -30
  50. package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.js +0 -80
  51. package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.js +0 -34
  52. package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.js +0 -93
  53. package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.js +0 -34
  54. package/esm2015/lib/components/progress-bar/progress-bar.component.js +0 -55
  55. package/esm2015/lib/components/progress-bar/progress-bar.module.js +0 -29
  56. package/esm2015/lib/components/scene-options/scene-options.component.js +0 -164
  57. package/esm2015/lib/components/scene-options/scene-options.module.js +0 -38
  58. package/esm2015/lib/components/selections-summary/selections-summary.component.js +0 -163
  59. package/esm2015/lib/components/selections-summary/selections-summary.module.js +0 -45
  60. package/esm2015/lib/components/selections-summary-line/selections-summary-line.component.js +0 -171
  61. package/esm2015/lib/components/selections-summary-line/selections-summary-line.module.js +0 -34
  62. package/esm2015/lib/components/slideout/slideout.component.js +0 -83
  63. package/esm2015/lib/components/slideout/slideout.module.js +0 -17
  64. package/esm2015/lib/components/summary-line/summary-line.component.js +0 -273
  65. package/esm2015/lib/components/summary-line/summary-line.module.js +0 -44
  66. package/esm2015/lib/components/tag-filter/tag-filter.component.js +0 -39
  67. package/esm2015/lib/components/tag-filter/tag-filter.module.js +0 -21
  68. package/esm2015/lib/components/threedselector/threedselector.component.js +0 -155
  69. package/esm2015/lib/components/threedselector/threedselector.module.js +0 -34
  70. package/esm2015/lib/core/helper/variation-helper.js +0 -553
  71. package/esm2015/lib/core/shader/floor-fade.shader.js +0 -33
  72. package/esm2015/lib/core/textures/depth-data-texture.js +0 -19
  73. package/esm2015/lib/directives/directives.module.js +0 -26
  74. package/esm2015/lib/directives/visibility-observer-master.directive.js +0 -53
  75. package/esm2015/lib/directives/visibility-observer.directive.js +0 -54
  76. package/esm2015/lib/enum/ar-feature.enum.js +0 -14
  77. package/esm2015/lib/enum/configuration-key.enum.js +0 -41
  78. package/esm2015/lib/enum/configuration-template.enum.js +0 -6
  79. package/esm2015/lib/enum/device-size-type.js +0 -7
  80. package/esm2015/lib/enum/device-tier.enum.js +0 -7
  81. package/esm2015/lib/enum/icon.enum.js +0 -113
  82. package/esm2015/lib/enum/item-type.enum.js +0 -23
  83. package/esm2015/lib/enum/light.enum.js +0 -9
  84. package/esm2015/lib/enum/navigator-type.enum.js +0 -6
  85. package/esm2015/lib/enum/output-encoding.enum.js +0 -9
  86. package/esm2015/lib/enum/result-type.enum.js +0 -21
  87. package/esm2015/lib/enum/scene-event.enum.js +0 -12
  88. package/esm2015/lib/enum/shadow-map-type.enum.js +0 -8
  89. package/esm2015/lib/enum/texture-type.js +0 -9
  90. package/esm2015/lib/enum/tone-mapping-local.enum.js +0 -12
  91. package/esm2015/lib/enum/view-mode.enum.js +0 -7
  92. package/esm2015/lib/enum/xr-mode.enum.js +0 -6
  93. package/esm2015/lib/environments/environment.js +0 -8
  94. package/esm2015/lib/interfaces/aa-options.interface.js +0 -2
  95. package/esm2015/lib/interfaces/adjustable-element.interface.js +0 -2
  96. package/esm2015/lib/interfaces/ao-options.interface.js +0 -2
  97. package/esm2015/lib/interfaces/changes.interface.js +0 -2
  98. package/esm2015/lib/interfaces/configuration-data.interface.js +0 -2
  99. package/esm2015/lib/interfaces/light-preset.interface.js +0 -2
  100. package/esm2015/lib/interfaces/post-processing-setting.interface.js +0 -2
  101. package/esm2015/lib/interfaces/scene-option-button.interface.js +0 -6
  102. package/esm2015/lib/interfaces/screen-size-info.js +0 -2
  103. package/esm2015/lib/interfaces/setting.interface.js +0 -2
  104. package/esm2015/lib/interfaces/texture.interface.js +0 -2
  105. package/esm2015/lib/interfaces/vignette-options.interface.js +0 -2
  106. package/esm2015/lib/model/ar-position-indicator.js +0 -18
  107. package/esm2015/lib/model/camera-settings.js +0 -14
  108. package/esm2015/lib/model/configuration-result-object.js +0 -6
  109. package/esm2015/lib/model/configurator-error-message.js +0 -9
  110. package/esm2015/lib/model/configurator-settings.js +0 -25
  111. package/esm2015/lib/model/custom-button.js +0 -16
  112. package/esm2015/lib/model/factory.js +0 -28
  113. package/esm2015/lib/model/icon.js +0 -112
  114. package/esm2015/lib/model/intersected-objects.js +0 -7
  115. package/esm2015/lib/model/light-preset.js +0 -73
  116. package/esm2015/lib/model/light-properties.js +0 -45
  117. package/esm2015/lib/model/material.js +0 -11
  118. package/esm2015/lib/model/metadata.js +0 -2
  119. package/esm2015/lib/model/render-parameters.js +0 -16
  120. package/esm2015/lib/model/setting-options.js +0 -71
  121. package/esm2015/lib/model/settings.js +0 -16
  122. package/esm2015/lib/model/shadow-properties.js +0 -10
  123. package/esm2015/lib/model/skin.js +0 -3
  124. package/esm2015/lib/model/texture.js +0 -76
  125. package/esm2015/lib/model/variation-settings.js +0 -54
  126. package/esm2015/lib/model/variation.js +0 -3
  127. package/esm2015/lib/model/xr-reticle.js +0 -79
  128. package/esm2015/lib/modules/render/enum/scene-type.enum.js +0 -6
  129. package/esm2015/lib/modules/render/model/ar-parameters.js +0 -12
  130. package/esm2015/lib/modules/render/model/scene-setting.js +0 -6
  131. package/esm2015/lib/modules/render/model/scene-settings.js +0 -3
  132. package/esm2015/lib/pipes/append.pipe.js +0 -21
  133. package/esm2015/lib/pipes/google-translate.pipe.js +0 -21
  134. package/esm2015/lib/pipes/localize.pipe.js +0 -28
  135. package/esm2015/lib/pipes/pipes.module.js +0 -41
  136. package/esm2015/lib/pipes/prepend.pipe.js +0 -21
  137. package/esm2015/lib/pipes/strip-html.pipe.js +0 -17
  138. package/esm2015/lib/services/app-event.service.js +0 -36
  139. package/esm2015/lib/services/app-initializer.service.js +0 -27
  140. package/esm2015/lib/services/ar.service.js +0 -844
  141. package/esm2015/lib/services/build-furniture-base.service.js +0 -1181
  142. package/esm2015/lib/services/build-furniture-without-scene.service.js +0 -86
  143. package/esm2015/lib/services/build-furniture.service.js +0 -169
  144. package/esm2015/lib/services/bundle-initialzer.service.js +0 -113
  145. package/esm2015/lib/services/camera.service.js +0 -123
  146. package/esm2015/lib/services/configuration.service.js +0 -79
  147. package/esm2015/lib/services/configurator-connector.service.js +0 -830
  148. package/esm2015/lib/services/configurator.service.js +0 -285
  149. package/esm2015/lib/services/configuring.service.js +0 -119
  150. package/esm2015/lib/services/controls.js +0 -799
  151. package/esm2015/lib/services/debug.service.js +0 -43
  152. package/esm2015/lib/services/dictionary.service.js +0 -65
  153. package/esm2015/lib/services/dynamic-camera.service.js +0 -96
  154. package/esm2015/lib/services/floor-plane.service.js +0 -252
  155. package/esm2015/lib/services/font.service.js +0 -27
  156. package/esm2015/lib/services/google-translate.service.js +0 -79
  157. package/esm2015/lib/services/icon-cache.service.js +0 -44
  158. package/esm2015/lib/services/intersection.service.js +0 -47
  159. package/esm2015/lib/services/item.service.js +0 -75
  160. package/esm2015/lib/services/json-utils.service.js +0 -48
  161. package/esm2015/lib/services/light-creation.service.js +0 -35
  162. package/esm2015/lib/services/light-presets.service.js +0 -157
  163. package/esm2015/lib/services/lights.service.js +0 -146
  164. package/esm2015/lib/services/load-furniture-base.service.js +0 -164
  165. package/esm2015/lib/services/load-furniture-without-scene.service.js +0 -45
  166. package/esm2015/lib/services/load-furniture.service.js +0 -72
  167. package/esm2015/lib/services/loader.service.js +0 -32
  168. package/esm2015/lib/services/locator.service.js +0 -11
  169. package/esm2015/lib/services/message-board.service.js +0 -50
  170. package/esm2015/lib/services/post-processing.service.js +0 -378
  171. package/esm2015/lib/services/product-configurator.service.js +0 -16
  172. package/esm2015/lib/services/progress.service.js +0 -20
  173. package/esm2015/lib/services/scene-event.service.js +0 -246
  174. package/esm2015/lib/services/scene-options.service.js +0 -24
  175. package/esm2015/lib/services/scene.service.js +0 -313
  176. package/esm2015/lib/services/screen-size-analysis.service.js +0 -97
  177. package/esm2015/lib/services/settings.service.js +0 -142
  178. package/esm2015/lib/services/switch-build-furniture.service.js +0 -37
  179. package/esm2015/lib/services/switch-load-furniture.service.js +0 -35
  180. package/esm2015/lib/services/threedselector.service.js +0 -72
  181. package/esm2015/lib/services/utils.service.js +0 -207
  182. package/esm2015/lib/services/variation-cache.service.js +0 -143
  183. package/esm2015/lib/services/variation.service.js +0 -490
  184. package/esm2015/lib/services/view-mode.service.js +0 -37
  185. package/esm2015/lib/services/vr.service.js +0 -191
  186. package/esm2015/lib/services/xr.service.js +0 -294
  187. package/esm2015/lib/utils/asset.utils.js +0 -120
  188. package/esm2015/lib/utils/base-utils.js +0 -9
  189. package/esm2015/lib/utils/color.utils.js +0 -30
  190. package/esm2015/lib/utils/debug.utils.js +0 -9
  191. package/esm2015/lib/utils/device.utils.js +0 -25
  192. package/esm2015/lib/utils/file.utils.js +0 -167
  193. package/esm2015/lib/utils/image.utils.js +0 -61
  194. package/esm2015/lib/utils/json-parser.utils.js +0 -180
  195. package/esm2015/lib/utils/material.utils.js +0 -433
  196. package/esm2015/lib/utils/object.utils.js +0 -360
  197. package/esm2015/lib/utils/relative-position.utils.js +0 -75
  198. package/esm2015/lib/utils/rotation-helper.utils.js +0 -15
  199. package/esm2015/lib/utils/scene-3d.utils.js +0 -213
  200. package/esm2015/lib/utils/scene-utils.js +0 -191
  201. package/esm2015/lib/utils/text-utils.js +0 -68
  202. package/esm2015/lib/utils/threed.utils.js +0 -281
  203. package/esm2015/lib/utils/variation-utils.js +0 -459
  204. package/esm2015/public-api.js +0 -65
  205. package/fesm2015/colijnit-configurator.js.map +0 -1
  206. package/lib/builder.d.ts +0 -83
  207. package/lib/components/answer-card/answer-card.component.d.ts +0 -58
  208. package/lib/components/answer-card/answer-card.module.d.ts +0 -11
  209. package/lib/components/answer-info-dialog/answer-info-dialog.component.d.ts +0 -38
  210. package/lib/components/answer-info-dialog/answer-info-dialog.module.d.ts +0 -10
  211. package/lib/components/answers-slideout/answers-slideout.component.d.ts +0 -86
  212. package/lib/components/answers-slideout/answers-slideout.module.d.ts +0 -16
  213. package/lib/components/color-filter/color-filter.component.d.ts +0 -20
  214. package/lib/components/color-filter/color-filter.module.d.ts +0 -8
  215. package/lib/components/configurator/configurator.component.d.ts +0 -37
  216. package/lib/components/configurator/configurator.module.d.ts +0 -12
  217. package/lib/components/configurator-dialog/configurator-camera-settings.component.d.ts +0 -30
  218. package/lib/components/configurator-dialog/configurator-dialog.module.d.ts +0 -13
  219. package/lib/components/configurator-dialog/configurator-error-dialog.component.d.ts +0 -16
  220. package/lib/components/configurator-dialog/configurator-export-dialog.component.d.ts +0 -26
  221. package/lib/components/configurator-loader/configurator-loader.component.d.ts +0 -7
  222. package/lib/components/configurator-loader/configurator-loader.module.d.ts +0 -9
  223. package/lib/components/configurator-scene/configurator-scene.component.d.ts +0 -24
  224. package/lib/components/configurator-scene/configurator-scene.module.d.ts +0 -7
  225. package/lib/components/configurator-scene-loader/configurator-scene-loader.component.d.ts +0 -7
  226. package/lib/components/configurator-scene-loader/configurator-scene-loader.module.d.ts +0 -8
  227. package/lib/components/element-buttons/element-buttons.component.d.ts +0 -32
  228. package/lib/components/element-buttons/element-buttons.module.d.ts +0 -9
  229. package/lib/components/element-toolbar/element-toolbar.component.d.ts +0 -27
  230. package/lib/components/element-toolbar/element-toolbar.module.d.ts +0 -10
  231. package/lib/components/image-zoom/image-zoom.component.d.ts +0 -15
  232. package/lib/components/image-zoom/image-zoom.module.d.ts +0 -9
  233. package/lib/components/lite-selector/lite-selector.component.d.ts +0 -40
  234. package/lib/components/lite-selector/lite-selector.module.d.ts +0 -10
  235. package/lib/components/product-configurator/product-configurator.component.d.ts +0 -50
  236. package/lib/components/product-configurator/product-configurator.module.d.ts +0 -15
  237. package/lib/components/product-configurator-selector/product-configurator-selector.component.d.ts +0 -35
  238. package/lib/components/product-configurator-selector/product-configurator-selector.module.d.ts +0 -11
  239. package/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.d.ts +0 -31
  240. package/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.d.ts +0 -13
  241. package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.d.ts +0 -20
  242. package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.d.ts +0 -10
  243. package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.d.ts +0 -20
  244. package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.d.ts +0 -10
  245. package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.d.ts +0 -21
  246. package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.d.ts +0 -10
  247. package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.d.ts +0 -21
  248. package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.d.ts +0 -10
  249. package/lib/components/progress-bar/progress-bar.component.d.ts +0 -10
  250. package/lib/components/progress-bar/progress-bar.module.d.ts +0 -8
  251. package/lib/components/scene-options/scene-options.component.d.ts +0 -24
  252. package/lib/components/scene-options/scene-options.module.d.ts +0 -11
  253. package/lib/components/selections-summary/selections-summary.component.d.ts +0 -38
  254. package/lib/components/selections-summary/selections-summary.module.d.ts +0 -12
  255. package/lib/components/selections-summary-line/selections-summary-line.component.d.ts +0 -27
  256. package/lib/components/selections-summary-line/selections-summary-line.module.d.ts +0 -10
  257. package/lib/components/slideout/slideout.component.d.ts +0 -22
  258. package/lib/components/slideout/slideout.module.d.ts +0 -7
  259. package/lib/components/summary-line/summary-line.component.d.ts +0 -50
  260. package/lib/components/summary-line/summary-line.module.d.ts +0 -11
  261. package/lib/components/tag-filter/tag-filter.component.d.ts +0 -9
  262. package/lib/components/tag-filter/tag-filter.module.d.ts +0 -7
  263. package/lib/components/threedselector/threedselector.component.d.ts +0 -38
  264. package/lib/components/threedselector/threedselector.module.d.ts +0 -10
  265. package/lib/core/helper/variation-helper.d.ts +0 -25
  266. package/lib/core/shader/floor-fade.shader.d.ts +0 -5
  267. package/lib/core/textures/depth-data-texture.d.ts +0 -5
  268. package/lib/directives/directives.module.d.ts +0 -8
  269. package/lib/directives/visibility-observer-master.directive.d.ts +0 -12
  270. package/lib/directives/visibility-observer.directive.d.ts +0 -16
  271. package/lib/enum/ar-feature.enum.d.ts +0 -12
  272. package/lib/enum/configuration-key.enum.d.ts +0 -39
  273. package/lib/enum/configuration-template.enum.d.ts +0 -4
  274. package/lib/enum/device-size-type.d.ts +0 -5
  275. package/lib/enum/device-tier.enum.d.ts +0 -5
  276. package/lib/enum/icon.enum.d.ts +0 -111
  277. package/lib/enum/item-type.enum.d.ts +0 -21
  278. package/lib/enum/light.enum.d.ts +0 -7
  279. package/lib/enum/navigator-type.enum.d.ts +0 -4
  280. package/lib/enum/output-encoding.enum.d.ts +0 -7
  281. package/lib/enum/result-type.enum.d.ts +0 -19
  282. package/lib/enum/scene-event.enum.d.ts +0 -10
  283. package/lib/enum/shadow-map-type.enum.d.ts +0 -6
  284. package/lib/enum/texture-type.d.ts +0 -7
  285. package/lib/enum/tone-mapping-local.enum.d.ts +0 -10
  286. package/lib/enum/view-mode.enum.d.ts +0 -5
  287. package/lib/enum/xr-mode.enum.d.ts +0 -4
  288. package/lib/environments/environment.d.ts +0 -4
  289. package/lib/interfaces/aa-options.interface.d.ts +0 -4
  290. package/lib/interfaces/adjustable-element.interface.d.ts +0 -5
  291. package/lib/interfaces/ao-options.interface.d.ts +0 -18
  292. package/lib/interfaces/changes.interface.d.ts +0 -9
  293. package/lib/interfaces/configuration-data.interface.d.ts +0 -40
  294. package/lib/interfaces/light-preset.interface.d.ts +0 -22
  295. package/lib/interfaces/post-processing-setting.interface.d.ts +0 -11
  296. package/lib/interfaces/scene-option-button.interface.d.ts +0 -19
  297. package/lib/interfaces/screen-size-info.d.ts +0 -10
  298. package/lib/interfaces/setting.interface.d.ts +0 -8
  299. package/lib/interfaces/texture.interface.d.ts +0 -44
  300. package/lib/interfaces/vignette-options.interface.d.ts +0 -4
  301. package/lib/model/ar-position-indicator.d.ts +0 -4
  302. package/lib/model/camera-settings.d.ts +0 -12
  303. package/lib/model/configuration-result-object.d.ts +0 -30
  304. package/lib/model/configurator-error-message.d.ts +0 -8
  305. package/lib/model/configurator-settings.d.ts +0 -62
  306. package/lib/model/custom-button.d.ts +0 -10
  307. package/lib/model/factory.d.ts +0 -5
  308. package/lib/model/icon.d.ts +0 -4
  309. package/lib/model/intersected-objects.d.ts +0 -6
  310. package/lib/model/light-preset.d.ts +0 -33
  311. package/lib/model/light-properties.d.ts +0 -25
  312. package/lib/model/material.d.ts +0 -41
  313. package/lib/model/metadata.d.ts +0 -78
  314. package/lib/model/render-parameters.d.ts +0 -12
  315. package/lib/model/setting-options.d.ts +0 -67
  316. package/lib/model/settings.d.ts +0 -10
  317. package/lib/model/shadow-properties.d.ts +0 -7
  318. package/lib/model/skin.d.ts +0 -15
  319. package/lib/model/texture.d.ts +0 -52
  320. package/lib/model/variation-settings.d.ts +0 -55
  321. package/lib/model/variation.d.ts +0 -11
  322. package/lib/model/xr-reticle.d.ts +0 -17
  323. package/lib/modules/render/enum/scene-type.enum.d.ts +0 -4
  324. package/lib/modules/render/model/ar-parameters.d.ts +0 -9
  325. package/lib/modules/render/model/scene-setting.d.ts +0 -13
  326. package/lib/modules/render/model/scene-settings.d.ts +0 -4
  327. package/lib/pipes/append.pipe.d.ts +0 -7
  328. package/lib/pipes/google-translate.pipe.d.ts +0 -11
  329. package/lib/pipes/localize.pipe.d.ts +0 -10
  330. package/lib/pipes/pipes.module.d.ts +0 -11
  331. package/lib/pipes/prepend.pipe.d.ts +0 -7
  332. package/lib/pipes/strip-html.pipe.d.ts +0 -7
  333. package/lib/services/app-event.service.d.ts +0 -32
  334. package/lib/services/app-initializer.service.d.ts +0 -14
  335. package/lib/services/ar.service.d.ts +0 -120
  336. package/lib/services/build-furniture-base.service.d.ts +0 -117
  337. package/lib/services/build-furniture-without-scene.service.d.ts +0 -14
  338. package/lib/services/build-furniture.service.d.ts +0 -14
  339. package/lib/services/bundle-initialzer.service.d.ts +0 -45
  340. package/lib/services/camera.service.d.ts +0 -44
  341. package/lib/services/configuration.service.d.ts +0 -18
  342. package/lib/services/configurator-connector.service.d.ts +0 -140
  343. package/lib/services/configurator.service.d.ts +0 -62
  344. package/lib/services/configuring.service.d.ts +0 -46
  345. package/lib/services/controls.d.ts +0 -11
  346. package/lib/services/debug.service.d.ts +0 -16
  347. package/lib/services/dictionary.service.d.ts +0 -15
  348. package/lib/services/dynamic-camera.service.d.ts +0 -21
  349. package/lib/services/floor-plane.service.d.ts +0 -47
  350. package/lib/services/font.service.d.ts +0 -10
  351. package/lib/services/google-translate.service.d.ts +0 -26
  352. package/lib/services/icon-cache.service.d.ts +0 -21
  353. package/lib/services/intersection.service.d.ts +0 -11
  354. package/lib/services/item.service.d.ts +0 -18
  355. package/lib/services/json-utils.service.d.ts +0 -7
  356. package/lib/services/light-creation.service.d.ts +0 -9
  357. package/lib/services/light-presets.service.d.ts +0 -34
  358. package/lib/services/lights.service.d.ts +0 -34
  359. package/lib/services/load-furniture-base.service.d.ts +0 -37
  360. package/lib/services/load-furniture-without-scene.service.d.ts +0 -9
  361. package/lib/services/load-furniture.service.d.ts +0 -9
  362. package/lib/services/loader.service.d.ts +0 -11
  363. package/lib/services/locator.service.d.ts +0 -7
  364. package/lib/services/message-board.service.d.ts +0 -18
  365. package/lib/services/post-processing.service.d.ts +0 -74
  366. package/lib/services/product-configurator.service.d.ts +0 -11
  367. package/lib/services/progress.service.d.ts +0 -9
  368. package/lib/services/scene-event.service.d.ts +0 -72
  369. package/lib/services/scene-options.service.d.ts +0 -11
  370. package/lib/services/scene.service.d.ts +0 -71
  371. package/lib/services/screen-size-analysis.service.d.ts +0 -32
  372. package/lib/services/settings.service.d.ts +0 -24
  373. package/lib/services/switch-build-furniture.service.d.ts +0 -21
  374. package/lib/services/switch-load-furniture.service.d.ts +0 -21
  375. package/lib/services/threedselector.service.d.ts +0 -17
  376. package/lib/services/utils.service.d.ts +0 -24
  377. package/lib/services/variation-cache.service.d.ts +0 -23
  378. package/lib/services/variation.service.d.ts +0 -26
  379. package/lib/services/view-mode.service.d.ts +0 -17
  380. package/lib/services/vr.service.d.ts +0 -42
  381. package/lib/services/xr.service.d.ts +0 -56
  382. package/lib/utils/asset.utils.d.ts +0 -19
  383. package/lib/utils/base-utils.d.ts +0 -4
  384. package/lib/utils/color.utils.d.ts +0 -8
  385. package/lib/utils/debug.utils.d.ts +0 -3
  386. package/lib/utils/device.utils.d.ts +0 -7
  387. package/lib/utils/file.utils.d.ts +0 -30
  388. package/lib/utils/image.utils.d.ts +0 -9
  389. package/lib/utils/json-parser.utils.d.ts +0 -9
  390. package/lib/utils/material.utils.d.ts +0 -34
  391. package/lib/utils/object.utils.d.ts +0 -32
  392. package/lib/utils/relative-position.utils.d.ts +0 -12
  393. package/lib/utils/rotation-helper.utils.d.ts +0 -6
  394. package/lib/utils/scene-3d.utils.d.ts +0 -8
  395. package/lib/utils/scene-utils.d.ts +0 -7
  396. package/lib/utils/text-utils.d.ts +0 -4
  397. package/lib/utils/threed.utils.d.ts +0 -20
  398. package/lib/utils/variation-utils.d.ts +0 -18
  399. package/public-api.d.ts +0 -60
@@ -1,142 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { BehaviorSubject, Subject } from 'rxjs';
4
- import { ConfiguratorSettings } from '../model/configurator-settings';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./json-utils.service";
7
- import * as i2 from "./dictionary.service";
8
- export class SettingsService {
9
- constructor(_jsonUtilsService, _dictionaryService) {
10
- this._jsonUtilsService = _jsonUtilsService;
11
- this._dictionaryService = _dictionaryService;
12
- this.settingsLoaded = new BehaviorSubject(false);
13
- this.lightSettingsLoaded = new BehaviorSubject(undefined);
14
- this.settingsChanged = new Subject();
15
- this._settings = new ConfiguratorSettings();
16
- // this._initializeSettings();
17
- }
18
- set settings(value) {
19
- this._settings = value;
20
- }
21
- get settings() {
22
- return this._settings;
23
- }
24
- createSettingsFromObject(obj) {
25
- if (!this.settings) {
26
- this.settings = new ConfiguratorSettings();
27
- }
28
- const ownOptions = Object.assign({}, this.settings.options);
29
- const ownRenderParameters = Object.assign({}, this.settings.renderParameters);
30
- const blenderSceneSettings = Object.assign({}, this.settings.blenderSceneSettings);
31
- this.settings = Object.assign({}, this.settings, obj);
32
- if (obj.renderParameters) {
33
- this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);
34
- }
35
- if (obj.options) {
36
- this.settings.options = Object.assign({}, ownOptions, obj.options);
37
- }
38
- if (obj.blenderSceneSettings) {
39
- this.settings.blenderSceneSettings = Object.assign({}, blenderSceneSettings, obj.blenderSceneSettings);
40
- }
41
- if (obj.hasOwnProperty('assetPath')) {
42
- this.settings.assetPath = obj['assetPath'];
43
- if (!this.settings.assetPath[this.settings.assetPath.length - 1].endsWith('/')) {
44
- this.settings.assetPath += '/';
45
- }
46
- this.settings.threeDAssetPath = this.settings.assetPath;
47
- }
48
- if (obj.hasOwnProperty('threeDAssetPath')) {
49
- this.settings.threeDAssetPath = obj['threeDAssetPath'];
50
- if (!this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1].endsWith('/')) {
51
- this.settings.threeDAssetPath += '/';
52
- }
53
- }
54
- if (obj.hasOwnProperty('blendFilesRender')) {
55
- this.settings.blendFilesRender = obj['blendFilesRender'];
56
- }
57
- if (obj.hasOwnProperty('user3DModelUploadEnabled')) {
58
- this.settings.user3DModelUploadEnabled = obj['user3DModelUploadEnabled'];
59
- }
60
- if (obj.hasOwnProperty('productRenderSceneAssetId')) {
61
- this.settings.productRenderSceneAssetId = obj['productRenderSceneAssetId'];
62
- }
63
- else {
64
- // set fallback, just to be sure.
65
- this.settings.productRenderSceneAssetId = 'scene_studio_eevee';
66
- }
67
- // this._connectorService.mainUrl = this.settings.url;
68
- // this._connectorService.mainSchema = this.settings.schema;
69
- // this._connectorService.mainVersion = this.settings.version;
70
- }
71
- initializeSettings(settings) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- if (settings) {
74
- yield this.initialize(settings);
75
- }
76
- yield this._checkUrlParameters();
77
- this.settingsLoaded.next(true);
78
- });
79
- }
80
- initialize(settings) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- if (settings) {
83
- yield this.createSettingsFromObject(settings);
84
- }
85
- yield this._dictionaryService.setDictionary(this.settings.assetPath, this.settings.client, this.settings.languageCode, this.settings.additionalTranslationFile);
86
- // this.settingsLoaded.next(true);
87
- });
88
- }
89
- checkAdditionalParameters() {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- // if (!this.settings) {
92
- // return;
93
- // }
94
- // if (!this.settings.assetPath) {
95
- // try {
96
- // let path = await this._configuratorService.getInternalParameter(InternalParam.GeneralAssetUrl);
97
- // if (!path.endsWith('/')) {
98
- // path += '/';
99
- // }
100
- // this.settings.assetPath = path;
101
- // } catch (e) {
102
- // }
103
- // }
104
- // if (!this.settings.threeDAssetPath) {
105
- // let path = await this._configuratorService.getInternalParameter(InternalParam.AssetUrl);
106
- // if (!path.endsWith('/')) {
107
- // path += '/';
108
- // }
109
- // this.settings.threeDAssetPath = path;
110
- // }
111
- // if (!this.settings.user3DModelUploadEnabled) {
112
- // const uploadSetting = await this._configuratorService.getInternalParameter(InternalParam.UPLOAD_3D_MODEL);
113
- // if (uploadSetting === 'J') {
114
- // this.settings.user3DModelUploadEnabled = true;
115
- // }
116
- // }
117
- });
118
- }
119
- _checkUrlParameters() {
120
- return __awaiter(this, void 0, void 0, function* () {
121
- // const urlParams = new URLSearchParams(window.location.search);
122
- // const client = urlParams.get('client');
123
- // if (client) {
124
- // const jsonSettings: any =
125
- // await this._jsonUtilsService.readJsonFile(this.settings.assetPath + `assets/${client}-settings.json`, false);
126
- // this.settings = Object.assign(new HomedecoratorSettings(), jsonSettings);
127
- // this.settings.options = Object.assign(new HomedecoratorSettingsOptions(), this.settings.options);
128
- // this.settings.client = client;
129
- // await this.initialize(this.settings);
130
- // }
131
- });
132
- }
133
- }
134
- SettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SettingsService, deps: [{ token: i1.JsonUtilsService }, { token: i2.DictionaryService }], target: i0.ɵɵFactoryTarget.Injectable });
135
- SettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SettingsService, providedIn: 'root' });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SettingsService, decorators: [{
137
- type: Injectable,
138
- args: [{
139
- providedIn: 'root'
140
- }]
141
- }], ctorParameters: function () { return [{ type: i1.JsonUtilsService }, { type: i2.DictionaryService }]; } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFRcEUsTUFBTSxPQUFPLGVBQWU7SUFnQjFCLFlBQ1UsaUJBQW1DLEVBQ25DLGtCQUFxQztRQURyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFSeEMsbUJBQWMsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsd0JBQW1CLEdBQStCLElBQUksZUFBZSxDQUFZLFNBQVMsQ0FBQyxDQUFDO1FBQzVGLG9CQUFlLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEQsY0FBUyxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFNbkUsOEJBQThCO0lBQ2hDLENBQUM7SUFuQkQsSUFBVyxRQUFRLENBQUMsS0FBMkI7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQWVNLHdCQUF3QixDQUFDLEdBQVE7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7U0FDNUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFB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Q0FBQztLQUFBO0lBRWEsbUJBQW1COztZQUMvQixpRUFBaUU7WUFDakUsMENBQTBDO1lBQzFDLGdCQUFnQjtZQUNoQiw4QkFBOEI7WUFDOUIsb0hBQW9IO1lBQ3BILDhFQUE4RTtZQUM5RSxzR0FBc0c7WUFDdEcsbUNBQW1DO1lBQ25DLDBDQUEwQztZQUMxQyxJQUFJO1FBQ04sQ0FBQztLQUFBOzs2R0FsSVUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JTZXR0aW5nc30gZnJvbSAnLi4vbW9kZWwvY29uZmlndXJhdG9yLXNldHRpbmdzJztcclxuaW1wb3J0IHtKc29uVXRpbHNTZXJ2aWNlfSBmcm9tICcuL2pzb24tdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4vZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZXR0aW5nfSBmcm9tICcuLi9tb2RlbC9zZXR0aW5ncyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc1NlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgc2V0IHNldHRpbmdzKHZhbHVlOiBDb25maWd1cmF0b3JTZXR0aW5ncykge1xyXG4gICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogQ29uZmlndXJhdG9yU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzTG9hZGVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuICBwdWJsaWMgbGlnaHRTZXR0aW5nc0xvYWRlZDogQmVoYXZpb3JTdWJqZWN0PFNldHRpbmdbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldHRpbmdbXT4odW5kZWZpbmVkKTtcclxuICBwdWJsaWMgc2V0dGluZ3NDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfc2V0dGluZ3M6IENvbmZpZ3VyYXRvclNldHRpbmdzID0gbmV3IENvbmZpZ3VyYXRvclNldHRpbmdzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfanNvblV0aWxzU2VydmljZTogSnNvblV0aWxzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gdGhpcy5faW5pdGlhbGl6ZVNldHRpbmdzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlU2V0dGluZ3NGcm9tT2JqZWN0KG9iajogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IG5ldyBDb25maWd1cmF0b3JTZXR0aW5ncygpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb3duT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2V0dGluZ3Mub3B0aW9ucyk7XHJcbiAgICBjb25zdCBvd25SZW5kZXJQYXJhbWV0ZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncy5yZW5kZXJQYXJhbWV0ZXJzKTtcclxuICAgIGNvbnN0IGJsZW5kZXJTY2VuZVNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncy5ibGVuZGVyU2NlbmVTZXR0aW5ncyk7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncywgb2JqKTtcclxuICAgIGlmIChvYmoucmVuZGVyUGFyYW1ldGVycykge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnJlbmRlclBhcmFtZXRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCBvd25SZW5kZXJQYXJhbWV0ZXJzLCBvYmoucmVuZGVyUGFyYW1ldGVycyk7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLm9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3duT3B0aW9ucywgb2JqLm9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouYmxlbmRlclNjZW5lU2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5ibGVuZGVyU2NlbmVTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIGJsZW5kZXJTY2VuZVNldHRpbmdzLCBvYmouYmxlbmRlclNjZW5lU2V0dGluZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoJ2Fzc2V0UGF0aCcpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuYXNzZXRQYXRoID0gb2JqWydhc3NldFBhdGgnXTtcclxuICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmFzc2V0UGF0aFt0aGlzLnNldHRpbmdzLmFzc2V0UGF0aC5sZW5ndGggLSAxXS5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGggKz0gJy8nO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoID0gdGhpcy5zZXR0aW5ncy5hc3NldFBhdGg7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KCd0aHJlZURBc3NldFBhdGgnKSkge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnRocmVlREFzc2V0UGF0aCA9IG9ialsndGhyZWVEQXNzZXRQYXRoJ107XHJcbiAgICAgIGlmICghdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGhbdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGgubGVuZ3RoIC0gMV0uZW5kc1dpdGgoJy8nKSkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoICs9ICcvJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgnYmxlbmRGaWxlc1JlbmRlcicpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuYmxlbmRGaWxlc1JlbmRlciA9IG9ialsnYmxlbmRGaWxlc1JlbmRlciddO1xyXG4gICAgfVxyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgndXNlcjNETW9kZWxVcGxvYWRFbmFibGVkJykpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQgPSBvYmpbJ3VzZXIzRE1vZGVsVXBsb2FkRW5hYmxlZCddO1xyXG4gICAgfVxyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgncHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCcpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MucHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCA9IG9ialsncHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCddO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gc2V0IGZhbGxiYWNrLCBqdXN0IHRvIGJlIHN1cmUuXHJcbiAgICAgIHRoaXMuc2V0dGluZ3MucHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCA9ICdzY2VuZV9zdHVkaW9fZWV2ZWUnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX2Nvbm5lY3RvclNlcnZpY2UubWFpblVybCA9IHRoaXMuc2V0dGluZ3MudXJsO1xyXG4gICAgLy8gdGhpcy5fY29ubmVjdG9yU2VydmljZS5tYWluU2NoZW1hID0gdGhpcy5zZXR0aW5ncy5zY2hlbWE7XHJcbiAgICAvLyB0aGlzLl9jb25uZWN0b3JTZXJ2aWNlLm1haW5WZXJzaW9uID0gdGhpcy5zZXR0aW5ncy52ZXJzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5ncz86IENvbmZpZ3VyYXRvclNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKHNldHRpbmdzKTtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMuX2NoZWNrVXJsUGFyYW1ldGVycygpO1xyXG4gICAgdGhpcy5zZXR0aW5nc0xvYWRlZC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoc2V0dGluZ3M6IENvbmZpZ3VyYXRvclNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTZXR0aW5nc0Zyb21PYmplY3Qoc2V0dGluZ3MpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5fZGljdGlvbmFyeVNlcnZpY2Uuc2V0RGljdGlvbmFyeShcclxuICAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGgsIHRoaXMuc2V0dGluZ3MuY2xpZW50LCB0aGlzLnNldHRpbmdzLmxhbmd1YWdlQ29kZSwgdGhpcy5zZXR0aW5ncy5hZGRpdGlvbmFsVHJhbnNsYXRpb25GaWxlKTtcclxuICAgIC8vIHRoaXMuc2V0dGluZ3NMb2FkZWQubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGVja0FkZGl0aW9uYWxQYXJhbWV0ZXJzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gaWYgKCF0aGlzLnNldHRpbmdzKSB7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghdGhpcy5zZXR0aW5ncy5hc3NldFBhdGgpIHtcclxuICAgIC8vICAgdHJ5IHtcclxuICAgIC8vICAgICBsZXQgcGF0aCA9IGF3YWl0IHRoaXMuX2NvbmZpZ3VyYXRvclNlcnZpY2UuZ2V0SW50ZXJuYWxQYXJhbWV0ZXIoSW50ZXJuYWxQYXJhbS5HZW5lcmFsQXNzZXRVcmwpO1xyXG4gICAgLy8gICAgIGlmICghcGF0aC5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAvLyAgICAgICBwYXRoICs9ICcvJztcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGggPSBwYXRoO1xyXG4gICAgLy8gICB9IGNhdGNoIChlKSB7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGgpIHtcclxuICAgIC8vICAgbGV0IHBhdGggPSBhd2FpdCB0aGlzLl9jb25maWd1cmF0b3JTZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uQXNzZXRVcmwpO1xyXG4gICAgLy8gICBpZiAoIXBhdGguZW5kc1dpdGgoJy8nKSkge1xyXG4gICAgLy8gICAgIHBhdGggKz0gJy8nO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoID0gcGF0aDtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQpIHtcclxuICAgIC8vICAgY29uc3QgdXBsb2FkU2V0dGluZyA9IGF3YWl0IHRoaXMuX2NvbmZpZ3VyYXRvclNlcnZpY2UuZ2V0SW50ZXJuYWxQYXJhbWV0ZXIoSW50ZXJuYWxQYXJhbS5VUExPQURfM0RfTU9ERUwpO1xyXG4gICAgLy8gICBpZiAodXBsb2FkU2V0dGluZyA9PT0gJ0onKSB7XHJcbiAgICAvLyAgICAgdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jaGVja1VybFBhcmFtZXRlcnMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgLy8gY29uc3QgY2xpZW50ID0gdXJsUGFyYW1zLmdldCgnY2xpZW50Jyk7XHJcbiAgICAvLyBpZiAoY2xpZW50KSB7XHJcbiAgICAvLyAgIGNvbnN0IGpzb25TZXR0aW5nczogYW55ID1cclxuICAgIC8vICAgICBhd2FpdCB0aGlzLl9qc29uVXRpbHNTZXJ2aWNlLnJlYWRKc29uRmlsZSh0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCArIGBhc3NldHMvJHtjbGllbnR9LXNldHRpbmdzLmpzb25gLCBmYWxzZSk7XHJcbiAgICAvLyAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKG5ldyBIb21lZGVjb3JhdG9yU2V0dGluZ3MoKSwganNvblNldHRpbmdzKTtcclxuICAgIC8vICAgdGhpcy5zZXR0aW5ncy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihuZXcgSG9tZWRlY29yYXRvclNldHRpbmdzT3B0aW9ucygpLCB0aGlzLnNldHRpbmdzLm9wdGlvbnMpO1xyXG4gICAgLy8gICB0aGlzLnNldHRpbmdzLmNsaWVudCA9IGNsaWVudDtcclxuICAgIC8vICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,37 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./build-furniture.service";
4
- import * as i2 from "./build-furniture-without-scene.service";
5
- import * as i3 from "./settings.service";
6
- import * as i4 from "./configurator-connector.service";
7
- export class SwitchBuildFurnitureService {
8
- constructor(_buildFurnitureService, _buildFurnitureWithoutSceneService, _settingsService, _configuratorService) {
9
- this._buildFurnitureService = _buildFurnitureService;
10
- this._buildFurnitureWithoutSceneService = _buildFurnitureWithoutSceneService;
11
- this._settingsService = _settingsService;
12
- this._configuratorService = _configuratorService;
13
- this._standAlone = true;
14
- // Defaults to BuildFurnitureService
15
- this.currentActiveService = this._buildFurnitureService;
16
- this._controllerInitSub = this._configuratorService.controllerInitialized.subscribe((initialized) => {
17
- if (initialized) {
18
- if (!this._settingsService.settings.options.useThreedScene && this._standAlone) {
19
- this.currentActiveService = this._buildFurnitureWithoutSceneService;
20
- }
21
- }
22
- });
23
- }
24
- ngOnDestroy() {
25
- this._controllerInitSub.unsubscribe();
26
- this._standAloneInstance.unsubscribe();
27
- }
28
- }
29
- SwitchBuildFurnitureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchBuildFurnitureService, deps: [{ token: i1.BuildFurnitureService }, { token: i2.BuildFurnitureWithoutSceneService }, { token: i3.SettingsService }, { token: i4.ConfiguratorConnectorService }], target: i0.ɵɵFactoryTarget.Injectable });
30
- SwitchBuildFurnitureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchBuildFurnitureService, providedIn: 'root' });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchBuildFurnitureService, decorators: [{
32
- type: Injectable,
33
- args: [{
34
- providedIn: 'root'
35
- }]
36
- }], ctorParameters: function () { return [{ type: i1.BuildFurnitureService }, { type: i2.BuildFurnitureWithoutSceneService }, { type: i3.SettingsService }, { type: i4.ConfiguratorConnectorService }]; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWJ1aWxkLWZ1cm5pdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvc2VydmljZXMvc3dpdGNoLWJ1aWxkLWZ1cm5pdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7Ozs7OztBQWFwRCxNQUFNLE9BQU8sMkJBQTJCO0lBT3RDLFlBQ1Usc0JBQTZDLEVBQzdDLGtDQUFxRSxFQUNyRSxnQkFBaUMsRUFDakMsb0JBQWtEO1FBSGxELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MsdUNBQWtDLEdBQWxDLGtDQUFrQyxDQUFtQztRQUNyRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBOEI7UUFScEQsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFVbEMsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFvQixFQUFFLEVBQUU7WUFDM0csSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUM5RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNyRTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7eUhBM0JVLDJCQUEyQjs2SEFBM0IsMkJBQTJCLGNBSDFCLE1BQU07NEZBR1AsMkJBQTJCO2tCQUp2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtCdWlsZEZ1cm5pdHVyZVNlcnZpY2V9IGZyb20gJy4vYnVpbGQtZnVybml0dXJlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0J1aWxkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZX0gZnJvbSAnLi9idWlsZC1mdXJuaXR1cmUtd2l0aG91dC1zY2VuZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtCdWlsZEZ1cm5pdHVyZUJhc2VTZXJ2aWNlfSBmcm9tICcuL2J1aWxkLWZ1cm5pdHVyZS1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NldHRpbmdzU2VydmljZX0gZnJvbSAnLi9zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuL2NvbmZpZ3VyYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoQnVpbGRGdXJuaXR1cmVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGN1cnJlbnRBY3RpdmVTZXJ2aWNlOiBCdWlsZEZ1cm5pdHVyZUJhc2VTZXJ2aWNlO1xyXG4gIHByaXZhdGUgX3N0YW5kQWxvbmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgX2NvbnRyb2xsZXJJbml0U3ViOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBfc3RhbmRBbG9uZUluc3RhbmNlOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYnVpbGRGdXJuaXR1cmVTZXJ2aWNlOiBCdWlsZEZ1cm5pdHVyZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9idWlsZEZ1cm5pdHVyZVdpdGhvdXRTY2VuZVNlcnZpY2U6IEJ1aWxkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gRGVmYXVsdHMgdG8gQnVpbGRGdXJuaXR1cmVTZXJ2aWNlXHJcbiAgICB0aGlzLmN1cnJlbnRBY3RpdmVTZXJ2aWNlID0gdGhpcy5fYnVpbGRGdXJuaXR1cmVTZXJ2aWNlO1xyXG4gICAgdGhpcy5fY29udHJvbGxlckluaXRTdWIgPSB0aGlzLl9jb25maWd1cmF0b3JTZXJ2aWNlLmNvbnRyb2xsZXJJbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmIChpbml0aWFsaXplZCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMudXNlVGhyZWVkU2NlbmUgJiYgdGhpcy5fc3RhbmRBbG9uZSkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2VydmljZSA9IHRoaXMuX2J1aWxkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250cm9sbGVySW5pdFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fc3RhbmRBbG9uZUluc3RhbmNlLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./load-furniture.service";
4
- import * as i2 from "./load-furniture-without-scene.service";
5
- import * as i3 from "./settings.service";
6
- import * as i4 from "./configurator-connector.service";
7
- export class SwitchLoadFurnitureService {
8
- constructor(_loadFurnitureService, _loadFurnitureWithoutSceneService, _settingsService, _iOne) {
9
- this._loadFurnitureService = _loadFurnitureService;
10
- this._loadFurnitureWithoutSceneService = _loadFurnitureWithoutSceneService;
11
- this._settingsService = _settingsService;
12
- this._iOne = _iOne;
13
- this._standAlone = true;
14
- // Defaults to LoadFurnitureService
15
- this.currentActiveService = this._loadFurnitureService;
16
- this._controllerInitSub = this._iOne.controllerInitialized.subscribe((initialized) => {
17
- if (initialized) {
18
- if (!this._settingsService.settings.options.useThreedScene && this._standAlone) {
19
- this.currentActiveService = this._loadFurnitureWithoutSceneService;
20
- }
21
- }
22
- });
23
- }
24
- ngOnDestroy() {
25
- this._controllerInitSub.unsubscribe();
26
- this._standAloneInstance.unsubscribe();
27
- }
28
- }
29
- SwitchLoadFurnitureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchLoadFurnitureService, deps: [{ token: i1.LoadFurnitureService }, { token: i2.LoadFurnitureWithoutSceneService }, { token: i3.SettingsService }, { token: i4.ConfiguratorConnectorService }], target: i0.ɵɵFactoryTarget.Injectable });
30
- SwitchLoadFurnitureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchLoadFurnitureService, providedIn: 'root' });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchLoadFurnitureService, decorators: [{
32
- type: Injectable,
33
- args: [{ providedIn: 'root' }]
34
- }], ctorParameters: function () { return [{ type: i1.LoadFurnitureService }, { type: i2.LoadFurnitureWithoutSceneService }, { type: i3.SettingsService }, { type: i4.ConfiguratorConnectorService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWxvYWQtZnVybml0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25maWd1cmF0b3Ivc3JjL2xpYi9zZXJ2aWNlcy9zd2l0Y2gtbG9hZC1mdXJuaXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRcEQsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxZQUNVLHFCQUEyQyxFQUMzQyxpQ0FBbUUsRUFDbkUsZ0JBQWlDLEVBQ2pDLEtBQW1DO1FBSG5DLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFrQztRQUNuRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLFVBQUssR0FBTCxLQUFLLENBQThCO1FBUnJDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBVWxDLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQW9CLEVBQUUsRUFBRTtZQUM1RixJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQzlFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUM7aUJBQ3BFO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzt3SEE1QlUsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGZCxNQUFNOzRGQUVsQiwwQkFBMEI7a0JBRnRDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2FkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZX0gZnJvbSAnLi9sb2FkLWZ1cm5pdHVyZS13aXRob3V0LXNjZW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xvYWRGdXJuaXR1cmVTZXJ2aWNlfSBmcm9tICcuL2xvYWQtZnVybml0dXJlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtMb2FkRnVybml0dXJlQmFzZVNlcnZpY2V9IGZyb20gJy4vbG9hZC1mdXJuaXR1cmUtYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4vc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoTG9hZEZ1cm5pdHVyZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgY3VycmVudEFjdGl2ZVNlcnZpY2U6IExvYWRGdXJuaXR1cmVCYXNlU2VydmljZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RhbmRBbG9uZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHJpdmF0ZSBfY29udHJvbGxlckluaXRTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIF9zdGFuZEFsb25lSW5zdGFuY2U6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9sb2FkRnVybml0dXJlU2VydmljZTogTG9hZEZ1cm5pdHVyZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9sb2FkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZTogTG9hZEZ1cm5pdHVyZVdpdGhvdXRTY2VuZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2lPbmU6IENvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2VcclxuICApIHtcclxuICAgIC8vIERlZmF1bHRzIHRvIExvYWRGdXJuaXR1cmVTZXJ2aWNlXHJcbiAgICB0aGlzLmN1cnJlbnRBY3RpdmVTZXJ2aWNlID0gdGhpcy5fbG9hZEZ1cm5pdHVyZVNlcnZpY2U7XHJcbiAgICB0aGlzLl9jb250cm9sbGVySW5pdFN1YiA9IHRoaXMuX2lPbmUuY29udHJvbGxlckluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKGluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy51c2VUaHJlZWRTY2VuZSAmJiB0aGlzLl9zdGFuZEFsb25lKSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTZXJ2aWNlID0gdGhpcy5fbG9hZEZ1cm5pdHVyZVdpdGhvdXRTY2VuZVNlcnZpY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29udHJvbGxlckluaXRTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3N0YW5kQWxvbmVJbnN0YW5jZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,72 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { JsonParserUtil } from '../utils/json-parser.utils';
4
- import { ThreedUtils } from '../utils/threed.utils';
5
- import { DebugUtils } from '../utils/debug.utils';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./variation-cache.service";
8
- import * as i2 from "./settings.service";
9
- import * as i3 from "./utils.service";
10
- export class ThreedselectorService {
11
- constructor(_variationCacheService, _settingsService, _utilsService) {
12
- this._variationCacheService = _variationCacheService;
13
- this._settingsService = _settingsService;
14
- this._utilsService = _utilsService;
15
- this._threedUtils = new ThreedUtils();
16
- }
17
- downloadAssetsAndReturn(fileName, assetPath, prepareProgress = false) {
18
- return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
19
- const oReq = new XMLHttpRequest();
20
- oReq.onloadend = (ev) => {
21
- try {
22
- const json = JSON.parse(ev.target.response);
23
- JsonParserUtil.TryToParse(json).then((object) => {
24
- // Do not remove this code, the render-service depends on the order of the children.
25
- object.children.forEach((c) => {
26
- const connectors = [];
27
- let meshes = [];
28
- c.children.forEach((x) => {
29
- if (x.name !== '') {
30
- connectors.push(x);
31
- }
32
- else {
33
- meshes.push(x);
34
- }
35
- });
36
- meshes = meshes.reverse();
37
- c.children = connectors.concat(meshes);
38
- });
39
- return resolve(object);
40
- });
41
- }
42
- catch (e) {
43
- reject(e);
44
- }
45
- };
46
- // oReq.onprogress = (ev: any) => this._progressService.setLoaded(lookupFileName, ev.loaded);
47
- oReq.onerror = (ev) => {
48
- return reject(lookupFileName);
49
- };
50
- let lookupFileName = fileName + (fileName.indexOf('.glb') < 0 ? '.glb' : '');
51
- yield this._threedUtils.loadGlbSource(assetPath, true, this._settingsService.settings.dracoPath).then((obj) => __awaiter(this, void 0, void 0, function* () {
52
- resolve(obj);
53
- })).catch((e) => __awaiter(this, void 0, void 0, function* () {
54
- DebugUtils.log('downloadAssetsAndReturn: ' + e);
55
- }));
56
- }));
57
- }
58
- loadVariation(id) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- return yield this._variationCacheService.loadVariation(id);
61
- });
62
- }
63
- }
64
- ThreedselectorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ThreedselectorService, deps: [{ token: i1.VariationCacheService }, { token: i2.SettingsService }, { token: i3.UtilsService }], target: i0.ɵɵFactoryTarget.Injectable });
65
- ThreedselectorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ThreedselectorService, providedIn: 'root' });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ThreedselectorService, decorators: [{
67
- type: Injectable,
68
- args: [{
69
- providedIn: 'root'
70
- }]
71
- }], ctorParameters: function () { return [{ type: i1.VariationCacheService }, { type: i2.SettingsService }, { type: i3.UtilsService }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWVkc2VsZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL3RocmVlZHNlbGVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBS2hELE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFDVSxzQkFBNkMsRUFDN0MsZ0JBQWlDLEVBQ2pDLGFBQTJCO1FBRjNCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUw3QixpQkFBWSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0lBT3RELENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLEVBQUUsa0JBQTJCLEtBQUs7UUFDbEcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFPLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO1lBQy9ELE1BQU0sSUFBSSxHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFPLEVBQUUsRUFBRTtnQkFDM0IsSUFBSTtvQkFDRixNQUFNLElBQUksR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2pELGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBZ0IsRUFBRSxFQUFFO3dCQUN4RCxvRkFBb0Y7d0JBQ3BGLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQzVCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQzs0QkFDdEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDOzRCQUNoQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dDQUN2QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO29DQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lDQUNwQjtxQ0FBTTtvQ0FDTCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lDQUNoQjs0QkFDSCxDQUFDLENBQUMsQ0FBQzs0QkFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDOzRCQUMxQixDQUFDLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBRXpDLENBQUMsQ0FBQyxDQUFDO3dCQUNILE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN6QixDQUFDLENBQUMsQ0FBQztpQkFDSjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1g7WUFDSCxDQUFDLENBQUM7WUFDRiw2RkFBNkY7WUFDN0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQU8sRUFBRSxFQUFFO2dCQUN6QixPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUM7WUFDRixJQUFJLGNBQWMsR0FBVyxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBTyxHQUFhLEVBQUUsRUFBRTtnQkFDNUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBTyxDQUFDLEVBQUUsRUFBRTtnQkFDbkIsVUFBVSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFWSxhQUFhLENBQUMsRUFBVTs7WUFDbkMsT0FBTyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQztLQUFBOzttSEF0RFUscUJBQXFCO3VIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtWYXJpYXRpb25DYWNoZVNlcnZpY2V9IGZyb20gJy4vdmFyaWF0aW9uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0pzb25QYXJzZXJVdGlsfSBmcm9tICcuLi91dGlscy9qc29uLXBhcnNlci51dGlscyc7XHJcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtPYmplY3QzRH0gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge1V0aWxzU2VydmljZX0gZnJvbSAnLi91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtWYXJpYXRpb25TZXR0aW5nc30gZnJvbSAnLi4vbW9kZWwvdmFyaWF0aW9uLXNldHRpbmdzJztcclxuaW1wb3J0IHtUaHJlZWRVdGlsc30gZnJvbSAnLi4vdXRpbHMvdGhyZWVkLnV0aWxzJztcclxuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4vc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7RGVidWdVdGlsc30gZnJvbSAnLi4vdXRpbHMvZGVidWcudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhyZWVkc2VsZWN0b3JTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBfdGhyZWVkVXRpbHM6IFRocmVlZFV0aWxzID0gbmV3IFRocmVlZFV0aWxzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmFyaWF0aW9uQ2FjaGVTZXJ2aWNlOiBWYXJpYXRpb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX3V0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG93bmxvYWRBc3NldHNBbmRSZXR1cm4oZmlsZU5hbWU6IHN0cmluZywgYXNzZXRQYXRoOiBzdHJpbmcsIHByZXBhcmVQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxUSFJFRS5PYmplY3QzRD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCBvUmVxOiBYTUxIdHRwUmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICBvUmVxLm9ubG9hZGVuZCA9IChldjogYW55KSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnN0IGpzb246IGFueSA9IEpTT04ucGFyc2UoZXYudGFyZ2V0LnJlc3BvbnNlKTtcclxuICAgICAgICAgIEpzb25QYXJzZXJVdGlsLlRyeVRvUGFyc2UoanNvbikudGhlbigob2JqZWN0OiBPYmplY3QzRCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgcmVtb3ZlIHRoaXMgY29kZSwgdGhlIHJlbmRlci1zZXJ2aWNlIGRlcGVuZHMgb24gdGhlIG9yZGVyIG9mIHRoZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgb2JqZWN0LmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBjb25uZWN0b3JzID0gW107XHJcbiAgICAgICAgICAgICAgbGV0IG1lc2hlcyA9IFtdO1xyXG4gICAgICAgICAgICAgIGMuY2hpbGRyZW4uZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHgubmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgY29ubmVjdG9ycy5wdXNoKHgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgbWVzaGVzLnB1c2goeCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgbWVzaGVzID0gbWVzaGVzLnJldmVyc2UoKTtcclxuICAgICAgICAgICAgICBjLmNoaWxkcmVuID0gY29ubmVjdG9ycy5jb25jYXQobWVzaGVzKTtcclxuXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShvYmplY3QpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgcmVqZWN0KGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgLy8gb1JlcS5vbnByb2dyZXNzID0gKGV2OiBhbnkpID0+IHRoaXMuX3Byb2dyZXNzU2VydmljZS5zZXRMb2FkZWQobG9va3VwRmlsZU5hbWUsIGV2LmxvYWRlZCk7XHJcbiAgICAgIG9SZXEub25lcnJvciA9IChldjogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlamVjdChsb29rdXBGaWxlTmFtZSk7XHJcbiAgICAgIH07XHJcbiAgICAgIGxldCBsb29rdXBGaWxlTmFtZTogc3RyaW5nID0gZmlsZU5hbWUgKyAoZmlsZU5hbWUuaW5kZXhPZignLmdsYicpIDwgMCA/ICcuZ2xiJyA6ICcnKTtcclxuICAgICAgYXdhaXQgdGhpcy5fdGhyZWVkVXRpbHMubG9hZEdsYlNvdXJjZShhc3NldFBhdGgsIHRydWUsIHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5kcmFjb1BhdGgpLnRoZW4oYXN5bmMgKG9iajogT2JqZWN0M0QpID0+IHtcclxuICAgICAgICByZXNvbHZlKG9iaik7XHJcbiAgICAgIH0pLmNhdGNoKGFzeW5jIChlKSA9PiB7XHJcbiAgICAgICAgRGVidWdVdGlscy5sb2coJ2Rvd25sb2FkQXNzZXRzQW5kUmV0dXJuOiAnICsgZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZFZhcmlhdGlvbihpZDogc3RyaW5nKTogUHJvbWlzZTxWYXJpYXRpb25TZXR0aW5ncz4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3ZhcmlhdGlvbkNhY2hlU2VydmljZS5sb2FkVmFyaWF0aW9uKGlkKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,207 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { AmbientLight, Box3, Camera, DirectionalLight, Group, MathUtils, Mesh, Object3D, PerspectiveCamera, Scene, SRGBColorSpace, Vector3, WebGLRenderer } from 'three';
4
- import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader';
5
- import { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader';
6
- import { USDZExporter } from 'three/examples/jsm/exporters/USDZExporter';
7
- import { DeviceUtils } from '../utils/device.utils';
8
- import { ObjectUtils } from '../utils/object.utils';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./settings.service";
11
- import * as i2 from "./progress.service";
12
- import * as i3 from "./item.service";
13
- export class UtilsService {
14
- constructor(_settingsService, _progressService, _itemService) {
15
- this._settingsService = _settingsService;
16
- this._progressService = _progressService;
17
- this._itemService = _itemService;
18
- this.clips = [];
19
- this._objectCache = new Map();
20
- this._subs = [];
21
- }
22
- ngOnDestroy() {
23
- this._subs.forEach(s => s.unsubscribe());
24
- }
25
- createCanvasImage(thumbnail = true) {
26
- const objects = this._itemService.sceneItems;
27
- const object = objects.values().next().value;
28
- const offscreenCanvas = document.createElement('canvas');
29
- const renderer = new WebGLRenderer({
30
- canvas: offscreenCanvas,
31
- alpha: true,
32
- antialias: true,
33
- preserveDrawingBuffer: true
34
- });
35
- const boundingBox = new Box3().setFromObject(object);
36
- const size = boundingBox.getSize(new Vector3());
37
- const center = boundingBox.getCenter(new Vector3());
38
- let width = 200;
39
- let height = 200;
40
- if (!thumbnail) {
41
- width = 1600;
42
- height = 1600;
43
- }
44
- renderer.setSize(width, height);
45
- renderer.setPixelRatio(DeviceUtils.GetPixelRatio());
46
- renderer.setClearColor(0xFFFFFF, 1);
47
- const scene = new Scene();
48
- const camera = new PerspectiveCamera(45, width / height, 0.1, 1000);
49
- object.rotation.x = MathUtils.degToRad(0);
50
- object.rotation.y = MathUtils.degToRad(0);
51
- object.rotation.z = 0;
52
- scene.add(object);
53
- const ambientLight = new AmbientLight(0xffffff, 2);
54
- scene.add(ambientLight);
55
- const directionalLight = new DirectionalLight(0xffffff, 2.5);
56
- directionalLight.position.set(5, 10, 5);
57
- scene.add(directionalLight);
58
- const maxDimension = Math.max(size.x, size.y, size.z);
59
- const distance = maxDimension * 1.5;
60
- camera.position.set(center.x - distance * 0.3, center.y + distance * 0.3, distance);
61
- camera.lookAt(center);
62
- camera.aspect = width / height;
63
- camera.updateProjectionMatrix();
64
- renderer.render(scene, camera);
65
- const imageData = offscreenCanvas.toDataURL('image/jpeg', 0.8);
66
- renderer.dispose();
67
- ObjectUtils.DisposeObject(scene);
68
- offscreenCanvas.remove();
69
- return imageData;
70
- }
71
- loadObjModel(filePath, mtlUrl) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- if (this._objectCache.has(filePath)) {
74
- return Promise.resolve(this._objectCache.get(filePath));
75
- }
76
- return new Promise((resolve, reject) => {
77
- new MTLLoader()
78
- .setPath(this._settingsService.settings.assetPath)
79
- .load(mtlUrl, (materials) => {
80
- materials.preload();
81
- new OBJLoader()
82
- .setMaterials(materials)
83
- .setPath(this._settingsService.settings.assetPath)
84
- .load(filePath, (object) => {
85
- const obj = this.cleanedUpObjects(object);
86
- obj.traverse((child) => {
87
- if (child instanceof Mesh && child.material) {
88
- const material = !Array.isArray(child.material) ? [child.material] : child.material;
89
- material.forEach(m => {
90
- if (m.map) {
91
- m.map.colorSpace = SRGBColorSpace;
92
- }
93
- });
94
- }
95
- });
96
- this._objectCache.set(filePath, obj);
97
- resolve(obj);
98
- });
99
- });
100
- });
101
- });
102
- }
103
- downloadUSDZforARIOS(object) {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- // Export USDZ exactly like before
106
- const exporter = new USDZExporter();
107
- const arraybuffer = yield exporter.parseAsync(object);
108
- // Correct MIME type for USDZ
109
- const blob = new Blob([arraybuffer], { type: 'model/vnd.usdz+zip' });
110
- const url = URL.createObjectURL(blob);
111
- // Feature-detect Apple Quick Look on Safari
112
- const anchor = document.createElement('a');
113
- const supportsAR = true;
114
- if (supportsAR) {
115
- // Quick Look path (must be invoked from a real user gesture)
116
- anchor.setAttribute('rel', 'ar');
117
- anchor.setAttribute('href', url);
118
- // Quick Look expects an <img> as the first child
119
- const img = document.createElement('img');
120
- img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
121
- img.alt = '';
122
- anchor.appendChild(img);
123
- // Add offscreen so it's a real DOM element for the gesture
124
- anchor.style.position = 'fixed';
125
- anchor.style.left = '-9999px';
126
- anchor.style.top = '-9999px';
127
- document.body.appendChild(anchor);
128
- // Important: ensure this method is called directly from the user's click/tap handler
129
- anchor.click();
130
- document.body.removeChild(anchor);
131
- // Revoke shortly after to avoid races during handoff
132
- setTimeout(() => URL.revokeObjectURL(url), 10000);
133
- return;
134
- }
135
- // Fallback: regular download/open behavior for non-Quick Look browsers
136
- const element = document.createElement('a');
137
- element.style.display = 'none';
138
- element.href = url;
139
- // Avoid target="_blank" (often blocked); force a download instead
140
- element.download = 'model.usdz';
141
- document.body.appendChild(element);
142
- element.click();
143
- document.body.removeChild(element);
144
- URL.revokeObjectURL(url);
145
- });
146
- }
147
- cleanedUpObjects(object, cleanUp = true) {
148
- let obj = new Object3D();
149
- // console.log(this.clips);
150
- object.children.forEach((c) => {
151
- if (!(c instanceof Camera)) {
152
- if (cleanUp && c instanceof Group || (c.children.length === 1 && c.children[0] instanceof Group)) {
153
- this._addGroupChildrenToObject(c, obj);
154
- }
155
- else if ((cleanUp && !(c instanceof Mesh)) || (!(c instanceof Mesh) && !c.name && c.children.length > 0)) {
156
- c.children.forEach((child) => {
157
- child.translateY(c.position.y);
158
- });
159
- c.translateY(-c.position.y);
160
- if (obj.children.length > 0) {
161
- obj.add(c.clone());
162
- }
163
- else {
164
- obj = c.clone();
165
- }
166
- }
167
- else {
168
- obj.add(c.clone());
169
- }
170
- }
171
- });
172
- const boundingBox = new Box3().setFromObject(obj);
173
- const bbCenterPivot = new Vector3();
174
- boundingBox.getCenter(bbCenterPivot);
175
- const delta = new Vector3().add(bbCenterPivot).negate();
176
- obj.children.forEach((cc) => {
177
- cc.position.add(delta);
178
- });
179
- return obj;
180
- }
181
- _addGroupChildrenToObject(group, obj, cleanUp = true) {
182
- group.children.forEach((gc) => {
183
- if (cleanUp && gc instanceof Group) {
184
- this._addGroupChildrenToObject(gc, obj);
185
- }
186
- else {
187
- // gc.translateX(-group.position.x);
188
- gc.translateY(group.position.y);
189
- // gc.translateZ(-group.position.z);
190
- if (gc.name.toLowerCase().indexOf('mask') > -1) {
191
- gc.visible = false;
192
- }
193
- obj.add(gc.clone());
194
- }
195
- });
196
- }
197
- _handleUpdateProgressBar(loaded) {
198
- this._progressService.progress = loaded;
199
- }
200
- }
201
- UtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilsService, deps: [{ token: i1.SettingsService }, { token: i2.ProgressService }, { token: i3.ItemService }], target: i0.ɵɵFactoryTarget.Injectable });
202
- UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilsService, providedIn: 'root' });
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilsService, decorators: [{
204
- type: Injectable,
205
- args: [{ providedIn: 'root' }]
206
- }], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i2.ProgressService }, { type: i3.ItemService }]; } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDdkssT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQU0vRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFJbEQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFDVSxnQkFBaUMsRUFDakMsZ0JBQWlDLEVBQ2pDLFlBQXlCO1FBRnpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVA1QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2YsaUJBQVksR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxVQUFLLEdBQW1CLEVBQUUsQ0FBQztJQU9uQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxF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LENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8seUJBQXlCLENBQUMsS0FBZSxFQUFFLEdBQWEsRUFBRSxVQUFtQixJQUFJO1FBQ3ZGLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBWSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxPQUFPLElBQUksRUFBRSxZQUFZLEtBQUssRUFBRTtnQkFDbEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxvQ0FBb0M7Z0JBQ3BDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsb0NBQW9DO2dCQUNwQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUM5QyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztpQkFDcEI7Z0JBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QixDQUFDLE1BQWM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDMUMsQ0FBQzs7MEdBaE5VLFlBQVk7OEdBQVosWUFBWSxjQUZBLE1BQU07NEZBRWxCLFlBQVk7a0JBRnhCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FtYmllbnRMaWdodCwgQm94MywgQ2FtZXJhLCBEaXJlY3Rpb25hbExpZ2h0LCBHcm91cCwgTWF0aFV0aWxzLCBNZXNoLCBPYmplY3QzRCwgUGVyc3BlY3RpdmVDYW1lcmEsIFNjZW5lLCBTUkdCQ29sb3JTcGFjZSwgVmVjdG9yMywgV2ViR0xSZW5kZXJlcn0gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge09CSkxvYWRlcn0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvT0JKTG9hZGVyJztcclxuaW1wb3J0IHtNVExMb2FkZXJ9IGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9sb2FkZXJzL01UTExvYWRlcic7XHJcbmltcG9ydCB7R0xURkxvYWRlcn0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvR0xURkxvYWRlcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtEUkFDT0xvYWRlcn0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvRFJBQ09Mb2FkZXInO1xyXG5pbXBvcnQge1NldHRpbmdzU2VydmljZX0gZnJvbSAnLi9zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtQcm9ncmVzc1NlcnZpY2V9IGZyb20gJy4vcHJvZ3Jlc3Muc2VydmljZSc7XHJcbmltcG9ydCB7VVNEWkV4cG9ydGVyfSBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vZXhwb3J0ZXJzL1VTRFpFeHBvcnRlcic7XHJcbmltcG9ydCB7IEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9pdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RldmljZVV0aWxzfSBmcm9tICcuLi91dGlscy9kZXZpY2UudXRpbHMnO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICcuLi91dGlscy9vYmplY3QudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXHJcblxyXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwdWJsaWMgY2xpcHM6IGFueSA9IFtdO1xyXG4gIHByaXZhdGUgX29iamVjdENhY2hlOiBNYXA8c3RyaW5nLCBPYmplY3QzRD4gPSBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Byb2dyZXNzU2VydmljZTogUHJvZ3Jlc3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaXRlbVNlcnZpY2U6IEl0ZW1TZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyZWF0ZUNhbnZhc0ltYWdlKHRodW1ibmFpbDogYm9vbGVhbiA9IHRydWUpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgb2JqZWN0czogT2JqZWN0M0RbXSA9IHRoaXMuX2l0ZW1TZXJ2aWNlLnNjZW5lSXRlbXM7XHJcbiAgICBjb25zdCBvYmplY3Q6IE9iamVjdDNEID0gIG9iamVjdHMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xyXG4gICAgY29uc3Qgb2Zmc2NyZWVuQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgY29uc3QgcmVuZGVyZXI6IFdlYkdMUmVuZGVyZXIgPSBuZXcgV2ViR0xSZW5kZXJlcih7XHJcbiAgICAgIGNhbnZhczogb2Zmc2NyZWVuQ2FudmFzLFxyXG4gICAgICBhbHBoYTogdHJ1ZSxcclxuICAgICAgYW50aWFsaWFzOiB0cnVlLFxyXG4gICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvdW5kaW5nQm94OiBCb3gzID0gbmV3IEJveDMoKS5zZXRGcm9tT2JqZWN0KG9iamVjdCk7XHJcbiAgICBjb25zdCBzaXplOiBWZWN0b3IzID0gYm91bmRpbmdCb3guZ2V0U2l6ZShuZXcgVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IGNlbnRlcjogVmVjdG9yMyA9IGJvdW5kaW5nQm94LmdldENlbnRlcihuZXcgVmVjdG9yMygpKTtcclxuXHJcbiAgICBsZXQgd2lkdGg6IG51bWJlciA9IDIwMDtcclxuICAgIGxldCBoZWlnaHQ6IG51bWJlciA9IDIwMDtcclxuICAgIGlmICghdGh1bWJuYWlsKSB7XHJcbiAgICAgIHdpZHRoID0gMTYwMDtcclxuICAgICAgaGVpZ2h0ID0gMTYwMDtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJlci5zZXRTaXplKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyhEZXZpY2VVdGlscy5HZXRQaXhlbFJhdGlvKCkpO1xyXG4gICAgcmVuZGVyZXIuc2V0Q2xlYXJDb2xvcigweEZGRkZGRiwgMSk7XHJcblxyXG4gICAgY29uc3Qgc2NlbmU6IFNjZW5lID0gbmV3IFNjZW5lKCk7XHJcbiAgICBjb25zdCBjYW1lcmE6IFBlcnNwZWN0aXZlQ2FtZXJhID0gbmV3IFBlcnNwZWN0aXZlQ2FtZXJhKDQ1LCB3aWR0aCAvIGhlaWdodCwgMC4xLCAxMDAwKTtcclxuXHJcbiAgICBvYmplY3Qucm90YXRpb24ueCA9IE1hdGhVdGlscy5kZWdUb1JhZCgwKTtcclxuICAgIG9iamVjdC5yb3RhdGlvbi55ID0gTWF0aFV0aWxzLmRlZ1RvUmFkKDApO1xyXG4gICAgb2JqZWN0LnJvdGF0aW9uLnogPSAwO1xyXG4gICAgc2NlbmUuYWRkKG9iamVjdCk7XHJcblxyXG4gICAgY29uc3QgYW1iaWVudExpZ2h0OiBBbWJpZW50TGlnaHQgPSBuZXcgQW1iaWVudExpZ2h0KDB4ZmZmZmZmLCAyKTtcclxuICAgIHNjZW5lLmFkZChhbWJpZW50TGlnaHQpO1xyXG4gICAgY29uc3QgZGlyZWN0aW9uYWxMaWdodDogRGlyZWN0aW9uYWxMaWdodCA9IG5ldyBEaXJlY3Rpb25hbExpZ2h0KDB4ZmZmZmZmLCAyLjUpO1xyXG4gICAgZGlyZWN0aW9uYWxMaWdodC5wb3NpdGlvbi5zZXQoNSwgMTAsIDUpO1xyXG4gICAgc2NlbmUuYWRkKGRpcmVjdGlvbmFsTGlnaHQpO1xyXG5cclxuICAgIGNvbnN0IG1heERpbWVuc2lvbjogbnVtYmVyID0gTWF0aC5tYXgoc2l6ZS54LCBzaXplLnksIHNpemUueik7XHJcbiAgICBjb25zdCBkaXN0YW5jZTogbnVtYmVyID0gbWF4RGltZW5zaW9uICogMS41O1xyXG4gICAgY2FtZXJhLnBvc2l0aW9uLnNldChjZW50ZXIueCAtIGRpc3RhbmNlICogMC4zLCBjZW50ZXIueSArIGRpc3RhbmNlICogMC4zLCBkaXN0YW5jZSk7XHJcbiAgICBjYW1lcmEubG9va0F0KGNlbnRlcik7XHJcbiAgICBjYW1lcmEuYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XHJcbiAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xyXG4gICAgcmVuZGVyZXIucmVuZGVyKHNjZW5lLCBjYW1lcmEpO1xyXG5cclxuICAgIGNvbnN0IGltYWdlRGF0YTogc3RyaW5nID0gb2Zmc2NyZWVuQ2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDAuOCk7XHJcblxyXG4gICAgcmVuZGVyZXIuZGlzcG9zZSgpO1xyXG4gICAgT2JqZWN0VXRpbHMuRGlzcG9zZU9iamVjdChzY2VuZSk7XHJcbiAgICBvZmZzY3JlZW5DYW52YXMucmVtb3ZlKCk7XHJcbiAgICByZXR1cm4gaW1hZ2VEYXRhO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2FkT2JqTW9kZWwoZmlsZVBhdGg6IHN0cmluZywgbXRsVXJsPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh0aGlzLl9vYmplY3RDYWNoZS5oYXMoZmlsZVBhdGgpKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fb2JqZWN0Q2FjaGUuZ2V0KGZpbGVQYXRoKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBuZXcgTVRMTG9hZGVyKClcclxuICAgICAgICAuc2V0UGF0aCh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuYXNzZXRQYXRoKVxyXG4gICAgICAgIC5sb2FkKG10bFVybCwgKG1hdGVyaWFscykgPT4ge1xyXG4gICAgICAgICAgICBtYXRlcmlhbHMucHJlbG9hZCgpO1xyXG4gICAgICAgICAgICBuZXcgT0JKTG9hZGVyKClcclxuICAgICAgICAgICAgICAuc2V0TWF0ZXJpYWxzKG1hdGVyaWFscylcclxuICAgICAgICAgICAgICAuc2V0UGF0aCh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuYXNzZXRQYXRoKVxyXG4gICAgICAgICAgICAgIC5sb2FkKGZpbGVQYXRoLCAob2JqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvYmo6IE9iamVjdDNEID0gdGhpcy5jbGVhbmVkVXBPYmplY3RzKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICBvYmoudHJhdmVyc2UoKGNoaWxkOiBPYmplY3QzRCB8IE1lc2gpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgTWVzaCAmJiBjaGlsZC5tYXRlcmlhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsOiBhbnlbXSA9ICFBcnJheS5pc0FycmF5KGNoaWxkLm1hdGVyaWFsKSA/IFtjaGlsZC5tYXRlcmlhbF0gOiBjaGlsZC5tYXRlcmlhbDtcclxuICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbC5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKG0ubWFwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG0ubWFwLmNvbG9yU3BhY2UgPSBTUkdCQ29sb3JTcGFjZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vYmplY3RDYWNoZS5zZXQoZmlsZVBhdGgsIG9iaik7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKG9iaik7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRvd25sb2FkVVNEWmZvckFSSU9TKG9iamVjdDogT2JqZWN0M0QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEV4cG9ydCBVU0RaIGV4YWN0bHkgbGlrZSBiZWZvcmVcclxuICAgIGNvbnN0IGV4cG9ydGVyID0gbmV3IFVTRFpFeHBvcnRlcigpO1xyXG4gICAgY29uc3QgYXJyYXlidWZmZXIgPSBhd2FpdCBleHBvcnRlci5wYXJzZUFzeW5jKG9iamVjdCk7XHJcblxyXG4gICAgLy8gQ29ycmVjdCBNSU1FIHR5cGUgZm9yIFVTRFpcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYXJyYXlidWZmZXJdLCB7dHlwZTogJ21vZGVsL3ZuZC51c2R6K3ppcCd9KTtcclxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcblxyXG4gICAgLy8gRmVhdHVyZS1kZXRlY3QgQXBwbGUgUXVpY2sgTG9vayBvbiBTYWZhcmlcclxuICAgIGNvbnN0IGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGNvbnN0IHN1cHBvcnRzQVIgPSB0cnVlO1xyXG5cclxuICAgIGlmIChzdXBwb3J0c0FSKSB7XHJcbiAgICAgIC8vIFF1aWNrIExvb2sgcGF0aCAobXVzdCBiZSBpbnZva2VkIGZyb20gYSByZWFsIHVzZXIgZ2VzdHVyZSlcclxuICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgncmVsJywgJ2FyJyk7XHJcbiAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xyXG4gICAgICAvLyBRdWljayBMb29rIGV4cGVjdHMgYW4gPGltZz4gYXMgdGhlIGZpcnN0IGNoaWxkXHJcbiAgICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xyXG4gICAgICBpbWcuc3JjID0gJ2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veXdBQUFBQUFRQUJBQUFDQVV3QU93PT0nO1xyXG4gICAgICBpbWcuYWx0ID0gJyc7XHJcbiAgICAgIGFuY2hvci5hcHBlbmRDaGlsZChpbWcpO1xyXG5cclxuICAgICAgLy8gQWRkIG9mZnNjcmVlbiBzbyBpdCdzIGEgcmVhbCBET00gZWxlbWVudCBmb3IgdGhlIGdlc3R1cmVcclxuICAgICAgYW5jaG9yLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuICAgICAgYW5jaG9yLnN0eWxlLmxlZnQgPSAnLTk5OTlweCc7XHJcbiAgICAgIGFuY2hvci5zdHlsZS50b3AgPSAnLTk5OTlweCc7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYW5jaG9yKTtcclxuXHJcbiAgICAgIC8vIEltcG9ydGFudDogZW5zdXJlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tIHRoZSB1c2VyJ3MgY2xpY2svdGFwIGhhbmRsZXJcclxuICAgICAgYW5jaG9yLmNsaWNrKCk7XHJcblxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XHJcbiAgICAgIC8vIFJldm9rZSBzaG9ydGx5IGFmdGVyIHRvIGF2b2lkIHJhY2VzIGR1cmluZyBoYW5kb2ZmXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpLCAxMDAwMCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGYWxsYmFjazogcmVndWxhciBkb3dubG9hZC9vcGVuIGJlaGF2aW9yIGZvciBub24tUXVpY2sgTG9vayBicm93c2Vyc1xyXG4gICAgY29uc3QgZWxlbWVudDogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBlbGVtZW50LmhyZWYgPSB1cmw7XHJcbiAgICAvLyBBdm9pZCB0YXJnZXQ9XCJfYmxhbmtcIiAob2Z0ZW4gYmxvY2tlZCk7IGZvcmNlIGEgZG93bmxvYWQgaW5zdGVhZFxyXG4gICAgZWxlbWVudC5kb3dubG9hZCA9ICdtb2RlbC51c2R6JztcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcbiAgICBlbGVtZW50LmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgcHVibGljIGNsZWFuZWRVcE9iamVjdHMob2JqZWN0OiBPYmplY3QzRCwgY2xlYW5VcDogYm9vbGVhbiA9IHRydWUpOiBPYmplY3QzRCB7XHJcbiAgICBsZXQgb2JqOiBPYmplY3QzRCA9IG5ldyBPYmplY3QzRCgpO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jbGlwcyk7XHJcbiAgICBvYmplY3QuY2hpbGRyZW4uZm9yRWFjaCgoYzogT2JqZWN0M0QpID0+IHtcclxuICAgICAgaWYgKCEoYyBpbnN0YW5jZW9mIENhbWVyYSkpIHtcclxuICAgICAgICBpZiAoY2xlYW5VcCAmJiBjIGluc3RhbmNlb2YgR3JvdXAgfHwgKGMuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmIGMuY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBHcm91cCkpIHtcclxuICAgICAgICAgIHRoaXMuX2FkZEdyb3VwQ2hpbGRyZW5Ub09iamVjdChjLCBvYmopO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKGNsZWFuVXAgJiYgIShjIGluc3RhbmNlb2YgTWVzaCkpIHx8ICghKGMgaW5zdGFuY2VvZiBNZXNoKSAmJiAhYy5uYW1lICYmIGMuY2hpbGRyZW4ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgIGMuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgY2hpbGQudHJhbnNsYXRlWShjLnBvc2l0aW9uLnkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjLnRyYW5zbGF0ZVkoLWMucG9zaXRpb24ueSk7XHJcbiAgICAgICAgICBpZiAob2JqLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgb2JqLmFkZChjLmNsb25lKCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb2JqID0gYy5jbG9uZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmouYWRkKGMuY2xvbmUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJvdW5kaW5nQm94ID0gbmV3IEJveDMoKS5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgICBjb25zdCBiYkNlbnRlclBpdm90ID0gbmV3IFZlY3RvcjMoKTtcclxuICAgIGJvdW5kaW5nQm94LmdldENlbnRlcihiYkNlbnRlclBpdm90KTtcclxuICAgIGNvbnN0IGRlbHRhOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoKS5hZGQoYmJDZW50ZXJQaXZvdCkubmVnYXRlKCk7XHJcbiAgICBvYmouY2hpbGRyZW4uZm9yRWFjaCgoY2MpID0+IHtcclxuICAgICAgY2MucG9zaXRpb24uYWRkKGRlbHRhKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZEdyb3VwQ2hpbGRyZW5Ub09iamVjdChncm91cDogT2JqZWN0M0QsIG9iajogT2JqZWN0M0QsIGNsZWFuVXA6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBncm91cC5jaGlsZHJlbi5mb3JFYWNoKChnYzogT2JqZWN0M0QpID0+IHtcclxuICAgICAgaWYgKGNsZWFuVXAgJiYgZ2MgaW5zdGFuY2VvZiBHcm91cCkge1xyXG4gICAgICAgIHRoaXMuX2FkZEdyb3VwQ2hpbGRyZW5Ub09iamVjdChnYywgb2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBnYy50cmFuc2xhdGVYKC1ncm91cC5wb3NpdGlvbi54KTtcclxuICAgICAgICBnYy50cmFuc2xhdGVZKGdyb3VwLnBvc2l0aW9uLnkpO1xyXG4gICAgICAgIC8vIGdjLnRyYW5zbGF0ZVooLWdyb3VwLnBvc2l0aW9uLnopO1xyXG4gICAgICAgIGlmIChnYy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignbWFzaycpID4gLTEpIHtcclxuICAgICAgICAgIGdjLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JqLmFkZChnYy5jbG9uZSgpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVVcGRhdGVQcm9ncmVzc0Jhcihsb2FkZWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fcHJvZ3Jlc3NTZXJ2aWNlLnByb2dyZXNzID0gbG9hZGVkO1xyXG4gIH1cclxufVxyXG4iXX0=