@colijnit/configurator 260.1.2 → 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 +18067 -1889
  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 +17538 -1477
  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 -706
  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 -553
  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,86 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { BuildFurnitureBaseService } from './build-furniture-base.service';
4
+ import { ResultType } from '../enum/result-type.enum';
5
+ import { isNill } from '@colijnit/configuratorapi/build/utils/function/is-nill.function';
6
+ import { ConfigurationResultObject } from '../model/configuration-result-object';
7
+ import * as i0 from "@angular/core";
8
+ export class BuildFurnitureWithoutSceneService extends BuildFurnitureBaseService {
9
+ build(result) {
10
+ return __awaiter(this, void 0, void 0, function* () {
11
+ result.object = this.currentCustomFloorGroup;
12
+ this.emptyAnswerSelected();
13
+ this.emptySelectionsSelected();
14
+ if (result.resultType === ResultType.NoSelections) {
15
+ result.resultType = ResultType.ConfigurationFixed;
16
+ }
17
+ else if (result.resultType !== ResultType.Obsolete && result.resultType !== ResultType.ConfigurationFixed) { // don't override these
18
+ result.resultType = ResultType.Loaded;
19
+ }
20
+ result.selections = this.cloneSelections();
21
+ result.decos = Array.from(this.configuratorConnectorService.decoNodes);
22
+ this.appEventService.buildFinished.next(result);
23
+ return result;
24
+ });
25
+ }
26
+ startToBuild(result, shouldCopyInstance = false, looseOriginalConfiguration = true, standAlone = false, firstBuild = false, fromPreset = false, loadFromProject = false) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ if (isNill(result)) {
29
+ result = new ConfigurationResultObject();
30
+ }
31
+ result = yield this.prepareInstanceForBuild(shouldCopyInstance, loadFromProject, looseOriginalConfiguration, result);
32
+ yield this.configuratorConnectorService.getQuestionAndAnswersAsync(); // see if there is user input needed
33
+ if (this.configuratorConnectorService.activeAnswers.length === 0) {
34
+ yield this.prepareSelectionsAndDecos(result)
35
+ .catch((e) => Promise.reject(e));
36
+ return this.build(result);
37
+ }
38
+ else {
39
+ if (firstBuild) {
40
+ yield this.prepareSelectionsAndDecos(result)
41
+ .catch((e) => Promise.reject(e));
42
+ if (this.configuratorConnectorService.selections.length < 1) {
43
+ result.resultType = ResultType.NeedsUserInput;
44
+ }
45
+ else if (this.configuratorConnectorService.selections.length < 2) {
46
+ result.resultType = ResultType.BuildFromScratch;
47
+ }
48
+ else if (this.configuratorConnectorService.selections.length > 1) {
49
+ result.resultType = ResultType.NeedsUserInput;
50
+ }
51
+ return result;
52
+ }
53
+ }
54
+ });
55
+ }
56
+ startToBuildFromConfigurator(data) {
57
+ return this.startToBuild(data);
58
+ }
59
+ prepareSelectionsAndDecos(result) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ this.reset();
62
+ yield this.getSelectionsAndDecos();
63
+ return yield this.handlePrepareSelectionsDecos(result);
64
+ });
65
+ }
66
+ createSimple3DModel(result, standAlone) {
67
+ this.configuratorConnectorService.emptySelections();
68
+ this.appEventService.buildFinished.next(result);
69
+ return result;
70
+ }
71
+ createNonConfigurableFloor(result) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ // TODO Right now we do not need this, but we might need to render floors so we just prepared it like this.
74
+ return new ConfigurationResultObject();
75
+ });
76
+ }
77
+ }
78
+ BuildFurnitureWithoutSceneService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BuildFurnitureWithoutSceneService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
79
+ BuildFurnitureWithoutSceneService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BuildFurnitureWithoutSceneService, providedIn: 'root' });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BuildFurnitureWithoutSceneService, decorators: [{
81
+ type: Injectable,
82
+ args: [{
83
+ providedIn: 'root'
84
+ }]
85
+ }] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZnVybml0dXJlLXdpdGhvdXQtc2NlbmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL2J1aWxkLWZ1cm5pdHVyZS13aXRob3V0LXNjZW5lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUN2RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFLL0UsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLHlCQUF5QjtJQUVqRSxLQUFLLENBQUMsTUFBaUM7O1lBQ2xELE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1lBQzdDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQy9CLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsWUFBWSxFQUFFO2dCQUNqRCxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQzthQUNuRDtpQkFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLHVCQUF1QjtnQkFDcEksTUFBTSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2FBQ3ZDO1lBRUQsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMs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RztZQUMzRyxPQUFPLElBQUkseUJBQXlCLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0tBQUE7OytIQTdFVSxpQ0FBaUM7bUlBQWpDLGlDQUFpQyxjQUZoQyxNQUFNOzRGQUVQLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QnVpbGRGdXJuaXR1cmVCYXNlU2VydmljZX0gZnJvbSAnLi9idWlsZC1mdXJuaXR1cmUtYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZXN1bHRUeXBlfSBmcm9tICcuLi9lbnVtL3Jlc3VsdC10eXBlLmVudW0nO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uJztcclxuaW1wb3J0IHtDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0fSBmcm9tICcuLi9tb2RlbC9jb25maWd1cmF0aW9uLXJlc3VsdC1vYmplY3QnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVpbGRGdXJuaXR1cmVXaXRob3V0U2NlbmVTZXJ2aWNlIGV4dGVuZHMgQnVpbGRGdXJuaXR1cmVCYXNlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyBhc3luYyBidWlsZChyZXN1bHQ6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QpOiBQcm9taXNlPENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3Q+IHtcclxuICAgIHJlc3VsdC5vYmplY3QgPSB0aGlzLmN1cnJlbnRDdXN0b21GbG9vckdyb3VwO1xyXG4gICAgdGhpcy5lbXB0eUFuc3dlclNlbGVjdGVkKCk7XHJcbiAgICB0aGlzLmVtcHR5U2VsZWN0aW9uc1NlbGVjdGVkKCk7XHJcbiAgICBpZiAocmVzdWx0LnJlc3VsdFR5cGUgPT09IFJlc3VsdFR5cGUuTm9TZWxlY3Rpb25zKSB7XHJcbiAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5Db25maWd1cmF0aW9uRml4ZWQ7XHJcbiAgICB9IGVsc2UgaWYgKHJlc3VsdC5yZXN1bHRUeXBlICE9PSBSZXN1bHRUeXBlLk9ic29sZXRlICYmIHJlc3VsdC5yZXN1bHRUeXBlICE9PSBSZXN1bHRUeXBlLkNvbmZpZ3VyYXRpb25GaXhlZCkgeyAvLyBkb24ndCBvdmVycmlkZSB0aGVzZVxyXG4gICAgICByZXN1bHQucmVzdWx0VHlwZSA9IFJlc3VsdFR5cGUuTG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc3VsdC5zZWxlY3Rpb25zID0gdGhpcy5jbG9uZVNlbGVjdGlvbnMoKTtcclxuICAgIHJlc3VsdC5kZWNvcyA9IEFycmF5LmZyb20odGhpcy5jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLmRlY29Ob2Rlcyk7XHJcblxyXG4gICAgdGhpcy5hcHBFdmVudFNlcnZpY2UuYnVpbGRGaW5pc2hlZC5uZXh0KHJlc3VsdCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHN0YXJ0VG9CdWlsZChcclxuICAgIHJlc3VsdD86IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QsXHJcbiAgICBzaG91bGRDb3B5SW5zdGFuY2U6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGxvb3NlT3JpZ2luYWxDb25maWd1cmF0aW9uOiBib29sZWFuID0gdHJ1ZSxcclxuICAgIHN0YW5kQWxvbmU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGZpcnN0QnVpbGQ6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGZyb21QcmVzZXQ6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGxvYWRGcm9tUHJvamVjdDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogUHJvbWlzZTxDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0PiB7XHJcbiAgICBpZiAoaXNOaWxsKHJlc3VsdCkpIHtcclxuICAgICAgcmVzdWx0ID0gbmV3IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnByZXBhcmVJbnN0YW5jZUZvckJ1aWxkKHNob3VsZENvcHlJbnN0YW5jZSwgbG9hZEZyb21Qcm9qZWN0LCBsb29zZU9yaWdpbmFsQ29uZmlndXJhdGlvbiwgcmVzdWx0KTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2UuZ2V0UXVlc3Rpb25BbmRBbnN3ZXJzQXN5bmMoKTsgLy8gc2VlIGlmIHRoZXJlIGlzIHVzZXIgaW5wdXQgbmVlZGVkXHJcbiAgICBpZiAodGhpcy5jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLmFjdGl2ZUFuc3dlcnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVNlbGVjdGlvbnNBbmREZWNvcyhyZXN1bHQpXHJcbiAgICAgICAgLmNhdGNoKChlKSA9PiBQcm9taXNlLnJlamVjdChlKSk7XHJcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkKHJlc3VsdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZmlyc3RCdWlsZCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVNlbGVjdGlvbnNBbmREZWNvcyhyZXN1bHQpXHJcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IFByb21pc2UucmVqZWN0KGUpKTtcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLnNlbGVjdGlvbnMubGVuZ3RoIDwgMSkge1xyXG4gICAgICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLk5lZWRzVXNlcklucHV0O1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLnNlbGVjdGlvbnMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLkJ1aWxkRnJvbVNjcmF0Y2g7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2Uuc2VsZWN0aW9ucy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICByZXN1bHQucmVzdWx0VHlwZSA9IFJlc3VsdFR5cGUuTmVlZHNVc2VySW5wdXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc3RhcnRUb0J1aWxkRnJvbUNvbmZpZ3VyYXRvcihkYXRhOiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0KTogUHJvbWlzZTxDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGFydFRvQnVpbGQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcHJlcGFyZVNlbGVjdGlvbnNBbmREZWNvcyhcclxuICAgIHJlc3VsdDogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdFxyXG4gICk6IFByb21pc2U8Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdD4ge1xyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRTZWxlY3Rpb25zQW5kRGVjb3MoKTtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVByZXBhcmVTZWxlY3Rpb25zRGVjb3MocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVTaW1wbGUzRE1vZGVsKHJlc3VsdDogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCwgc3RhbmRBbG9uZT86IGJvb2xlYW4pOiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0IHtcclxuICAgIHRoaXMuY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZS5lbXB0eVNlbGVjdGlvbnMoKTtcclxuICAgIHRoaXMuYXBwRXZlbnRTZXJ2aWNlLmJ1aWxkRmluaXNoZWQubmV4dChyZXN1bHQpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVOb25Db25maWd1cmFibGVGbG9vcihyZXN1bHQ6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QpOiBQcm9taXNlPENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3Q+IHtcclxuICAgIC8vIFRPRE8gUmlnaHQgbm93IHdlIGRvIG5vdCBuZWVkIHRoaXMsIGJ1dCB3ZSBtaWdodCBuZWVkIHRvIHJlbmRlciBmbG9vcnMgc28gd2UganVzdCBwcmVwYXJlZCBpdCBsaWtlIHRoaXMuXHJcbiAgICByZXR1cm4gbmV3IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,169 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { Vector3 } from 'three';
4
+ import { NodeType } from '@colijnit/configuratorapi/build/enum/node-type.enum';
5
+ import { BuildFurnitureBaseService } from './build-furniture-base.service';
6
+ import { isNill } from '@colijnit/configuratorapi/build/utils/function/is-nill.function';
7
+ import { ConfiguratorErrorMessage } from '../model/configurator-error-message';
8
+ import { ResultType } from '../enum/result-type.enum';
9
+ import { ConfigurationResultObject } from '../model/configuration-result-object';
10
+ import { DebugUtils } from '../utils/debug.utils';
11
+ import { Scene3DUtil } from '../utils/scene-3d.utils';
12
+ import * as i0 from "@angular/core";
13
+ export class BuildFurnitureService extends BuildFurnitureBaseService {
14
+ build(result) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ if (!this.full3DObjectToUse) { // there's no 3d model so get out
17
+ return result;
18
+ }
19
+ // new build, clear errors
20
+ result.errorMessages = [];
21
+ const adjustables = this.getAdjustables();
22
+ if (adjustables && adjustables.length === 0 && this.selections && this.selections.length > 0) { // check if article has a gameObject
23
+ if (this.selections[0].nodeType === NodeType.Article && this.selections[0].gameObject) {
24
+ adjustables.push(this.selections[0]);
25
+ }
26
+ }
27
+ const item = this.createConfigurableItem(result.articleName);
28
+ if (adjustables && adjustables.length > 0) {
29
+ let connected = false;
30
+ for (let i = 0, len = adjustables.length; i < len; i++) {
31
+ const adjustable = this.createAdjustable(item, adjustables[i]);
32
+ if (adjustable) {
33
+ for (let ii = this.placedAdjustables.length - 1; ii >= 0; ii--) {
34
+ if (this.isMoveableObject(adjustable)) { // vrije verplaatsing mogelijk, connecten aan opgeslagen connector
35
+ const selection = adjustable.userData.selection;
36
+ this.addElementOnConnector(item, adjustable, selection.decoConnection ? selection.decoConnection : this.activeConnector, this.baseElementNodeId);
37
+ adjustable.visible = true;
38
+ connected = true;
39
+ break;
40
+ }
41
+ else {
42
+ if (Scene3DUtil.TrySelectorConnection(this.scene, item, this.placedAdjustables[ii], adjustable, i === 1)) {
43
+ adjustable.visible = true;
44
+ connected = true;
45
+ break;
46
+ }
47
+ }
48
+ connected = false;
49
+ }
50
+ }
51
+ if (!connected && this.placedAdjustables.length > 1) {
52
+ DebugUtils.log(`No connection found for: ${adjustable ? adjustable.name : adjustables[i].decoNode.gameObjectName}`);
53
+ result.errorMessages.push(new ConfiguratorErrorMessage(`No connection found for: ${adjustable ? adjustable.name : adjustables[i].decoNode.gameObjectName}`));
54
+ }
55
+ }
56
+ this.placeAddables(item);
57
+ Scene3DUtil.updatePivot(item);
58
+ yield this.loadVariations(item, result.instanceId);
59
+ yield this.updateBuildObject(item, result);
60
+ this.currentCustomFloorGroup = result.object;
61
+ this.arPlacementUpdate.next(true);
62
+ // this.handleIntegration(result.instanceId, this.currentCustomFloorGroup);
63
+ this.emptyAnswerSelected();
64
+ this.emptySelectionsSelected();
65
+ if (this.currentCustomFloorGroup.children.length === 0) {
66
+ result.resultType = ResultType.GameobjectNameMismatchInSource;
67
+ return Promise.reject(result);
68
+ }
69
+ }
70
+ else {
71
+ result.errorMessages.push(new ConfiguratorErrorMessage('NO_ADJUSTABLES', 'NO_ADJUSTABLES_INFO'));
72
+ result.resultType = ResultType.NoAdjustables;
73
+ return Promise.reject(result);
74
+ }
75
+ if (result.resultType === ResultType.NoSelections) {
76
+ result.resultType = ResultType.ConfigurationFixed;
77
+ }
78
+ else if (result.resultType !== ResultType.Obsolete && result.resultType !== ResultType.ConfigurationFixed) { // don't override these
79
+ result.resultType = ResultType.Loaded;
80
+ }
81
+ this.appEventService.buildFinished.next(result);
82
+ return result;
83
+ });
84
+ }
85
+ createNonConfigurableFloor(result) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ const assetUrl = result.assetUrl;
88
+ const floorMaterial = yield this.variationService.loadVariationByAssetUrl(assetUrl);
89
+ result.material = floorMaterial;
90
+ this.appEventService.buildFinished.next(result);
91
+ return result;
92
+ });
93
+ }
94
+ startToBuild(result, shouldCopyInstance = false, looseOriginalConfiguration = true, standAlone = false, firstBuild = false, fromPreset = false, loadFromProject = false) {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ if (isNill(result)) {
97
+ result = new ConfigurationResultObject();
98
+ }
99
+ result = yield this.prepareInstanceForBuild(shouldCopyInstance, loadFromProject, looseOriginalConfiguration, result);
100
+ this.startPosition = new Vector3();
101
+ if (loadFromProject) {
102
+ this.reset();
103
+ this.configuratorConnectorService.setSelections(result.selections);
104
+ this.configuratorConnectorService.setDecoNodes(Array.from(result.decos.values()));
105
+ this.preloadMaterials(result.schema);
106
+ this.prepareTheSelections(result.instanceId);
107
+ return this.build(result);
108
+ }
109
+ else {
110
+ yield this.configuratorConnectorService.getQuestionAndAnswersAsync(); // see if there is user input needed
111
+ if (this.configuratorConnectorService.activeAnswers.length === 0) {
112
+ yield this.prepareSelectionsAndDecos(result)
113
+ .catch((e) => Promise.reject(e));
114
+ return this.build(result);
115
+ }
116
+ else {
117
+ if (firstBuild) {
118
+ yield this.prepareSelectionsAndDecos(result).catch((e) => Promise.reject(e));
119
+ if (this.configuratorConnectorService.selections.length < 1) {
120
+ result.resultType = ResultType.NeedsUserInput;
121
+ }
122
+ else if (this.configuratorConnectorService.selections.length < 2) {
123
+ result.resultType = ResultType.BuildFromScratch;
124
+ }
125
+ else if (this.configuratorConnectorService.selections.length > 1) {
126
+ result.resultType = ResultType.NeedsUserInput;
127
+ }
128
+ this.appEventService.buildFinished.next(result);
129
+ return result;
130
+ }
131
+ }
132
+ }
133
+ });
134
+ }
135
+ createSimple3DModel(result) {
136
+ if (!this.full3DObjectToUse) { // there's no 3d model so get out
137
+ return result;
138
+ }
139
+ this.configuratorConnectorService.emptySelections();
140
+ this.full3DObjectToUse.children.forEach(c => c.visible = true);
141
+ result.object = this.full3DObjectToUse;
142
+ Scene3DUtil.updatePivot(result.object);
143
+ if (result.default180) {
144
+ result.object.rotation.set(this.defaultRotation.x, this.defaultRotation.y, this.defaultRotation.z);
145
+ }
146
+ this.appEventService.buildFinished.next(result);
147
+ return result;
148
+ }
149
+ startToBuildFromConfigurator(data) {
150
+ return this.startToBuild(data);
151
+ }
152
+ prepareSelectionsAndDecos(result) {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ this.reset();
155
+ yield this.getSelectionsAndDecos();
156
+ this.preloadMaterials(result.schema);
157
+ return yield this.handlePrepareSelectionsDecos(result);
158
+ });
159
+ }
160
+ }
161
+ BuildFurnitureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BuildFurnitureService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
162
+ BuildFurnitureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BuildFurnitureService, providedIn: 'root' });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BuildFurnitureService, decorators: [{
164
+ type: Injectable,
165
+ args: [{
166
+ providedIn: 'root'
167
+ }]
168
+ }] });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZnVybml0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25maWd1cmF0b3Ivc3JjL2xpYi9zZXJ2aWNlcy9idWlsZC1mdXJuaXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQXFCLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUNsRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDOztBQUtwRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEseUJBQXlCO0lBRXJELEtBQUssQ0FBQyxNQUFpQzs7WUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLGlDQUFpQztnQkFDOUQsT0FBTyxNQUFNLENBQUM7YUFDZjtZQUVELDBCQUEwQjtZQUMxQixNQUFNLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUUxQixNQUFNLFdBQVcsR0FBZ0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZELElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElB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QUNoQixDQUFDO0lBRU0sNEJBQTRCLENBQUMsSUFBK0I7UUFDakUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFWSx5QkFBeUIsQ0FDcEMsTUFBaUM7O1lBRWpDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxPQUFPLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELENBQUM7S0FBQTs7bUhBOUtVLHFCQUFxQjt1SEFBckIscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL3NlbGVjdGlvbic7XHJcbmltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRlcmlhbCwgT2JqZWN0M0QsIFZlY3RvcjN9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtOb2RlVHlwZX0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9lbnVtL25vZGUtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtCdWlsZEZ1cm5pdHVyZUJhc2VTZXJ2aWNlfSBmcm9tICcuL2J1aWxkLWZ1cm5pdHVyZS1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JFcnJvck1lc3NhZ2V9IGZyb20gJy4uL21vZGVsL2NvbmZpZ3VyYXRvci1lcnJvci1tZXNzYWdlJztcclxuaW1wb3J0IHtSZXN1bHRUeXBlfSBmcm9tICcuLi9lbnVtL3Jlc3VsdC10eXBlLmVudW0nO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3R9IGZyb20gJy4uL21vZGVsL2NvbmZpZ3VyYXRpb24tcmVzdWx0LW9iamVjdCc7XHJcbmltcG9ydCB7RGVidWdVdGlsc30gZnJvbSAnLi4vdXRpbHMvZGVidWcudXRpbHMnO1xyXG5pbXBvcnQge1NjZW5lM0RVdGlsfSBmcm9tICcuLi91dGlscy9zY2VuZS0zZC51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdWlsZEZ1cm5pdHVyZVNlcnZpY2UgZXh0ZW5kcyBCdWlsZEZ1cm5pdHVyZUJhc2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGFzeW5jIGJ1aWxkKHJlc3VsdDogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCk6IFByb21pc2U8Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdD4ge1xyXG4gICAgaWYgKCF0aGlzLmZ1bGwzRE9iamVjdFRvVXNlKSB7IC8vIHRoZXJlJ3Mgbm8gM2QgbW9kZWwgc28gZ2V0IG91dFxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5ldyBidWlsZCwgY2xlYXIgZXJyb3JzXHJcbiAgICByZXN1bHQuZXJyb3JNZXNzYWdlcyA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGFkanVzdGFibGVzOiBTZWxlY3Rpb25bXSA9IHRoaXMuZ2V0QWRqdXN0YWJsZXMoKTtcclxuICAgIGlmIChhZGp1c3RhYmxlcyAmJiBhZGp1c3RhYmxlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5zZWxlY3Rpb25zICYmIHRoaXMuc2VsZWN0aW9ucy5sZW5ndGggPiAwKSB7IC8vIGNoZWNrIGlmIGFydGljbGUgaGFzIGEgZ2FtZU9iamVjdFxyXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25zWzBdLm5vZGVUeXBlID09PSBOb2RlVHlwZS5BcnRpY2xlICYmIHRoaXMuc2VsZWN0aW9uc1swXS5nYW1lT2JqZWN0KSB7XHJcbiAgICAgICAgYWRqdXN0YWJsZXMucHVzaCh0aGlzLnNlbGVjdGlvbnNbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXRlbTogT2JqZWN0M0QgPSB0aGlzLmNyZWF0ZUNvbmZpZ3VyYWJsZUl0ZW0ocmVzdWx0LmFydGljbGVOYW1lKTtcclxuXHJcbiAgICBpZiAoYWRqdXN0YWJsZXMgJiYgYWRqdXN0YWJsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgY29ubmVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gYWRqdXN0YWJsZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBjb25zdCBhZGp1c3RhYmxlOiBPYmplY3QzRCA9IHRoaXMuY3JlYXRlQWRqdXN0YWJsZShpdGVtLCBhZGp1c3RhYmxlc1tpXSk7XHJcbiAgICAgICAgaWYgKGFkanVzdGFibGUpIHtcclxuICAgICAgICAgIGZvciAobGV0IGlpID0gdGhpcy5wbGFjZWRBZGp1c3RhYmxlcy5sZW5ndGggLSAxOyBpaSA+PSAwOyBpaS0tKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzTW92ZWFibGVPYmplY3QoYWRqdXN0YWJsZSkpIHsgLy8gdnJpamUgdmVycGxhYXRzaW5nIG1vZ2VsaWprLCBjb25uZWN0ZW4gYWFuIG9wZ2VzbGFnZW4gY29ubmVjdG9yXHJcbiAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBTZWxlY3Rpb24gPSBhZGp1c3RhYmxlLnVzZXJEYXRhLnNlbGVjdGlvbjtcclxuICAgICAgICAgICAgICB0aGlzLmFkZEVsZW1lbnRPbkNvbm5lY3RvcihcclxuICAgICAgICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICAgICAgICBhZGp1c3RhYmxlLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLmRlY29Db25uZWN0aW9uID8gc2VsZWN0aW9uLmRlY29Db25uZWN0aW9uIDogdGhpcy5hY3RpdmVDb25uZWN0b3IsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VFbGVtZW50Tm9kZUlkXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBhZGp1c3RhYmxlLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGNvbm5lY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKFNjZW5lM0RVdGlsLlRyeVNlbGVjdG9yQ29ubmVjdGlvbihcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NlbmUsXHJcbiAgICAgICAgICAgICAgICBpdGVtLCB0aGlzLnBsYWNlZEFkanVzdGFibGVzW2lpXSwgYWRqdXN0YWJsZSwgaSA9PT0gMSkpIHtcclxuICAgICAgICAgICAgICAgIGFkanVzdGFibGUudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25uZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbm5lY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFjb25uZWN0ZWQgJiYgdGhpcy5wbGFjZWRBZGp1c3RhYmxlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICBEZWJ1Z1V0aWxzLmxvZyhgTm8gY29ubmVjdGlvbiBmb3VuZCBmb3I6ICR7YWRqdXN0YWJsZSA/IGFkanVzdGFibGUubmFtZSA6IGFkanVzdGFibGVzW2ldLmRlY29Ob2RlLmdhbWVPYmplY3ROYW1lfWApO1xyXG4gICAgICAgICAgcmVzdWx0LmVycm9yTWVzc2FnZXMucHVzaChcclxuICAgICAgICAgICAgbmV3IENvbmZpZ3VyYXRvckVycm9yTWVzc2FnZShgTm8gY29ubmVjdGlvbiBmb3VuZCBmb3I6ICR7YWRqdXN0YWJsZSA/IGFkanVzdGFibGUubmFtZSA6IGFkanVzdGFibGVzW2ldLmRlY29Ob2RlLmdhbWVPYmplY3ROYW1lfWApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBsYWNlQWRkYWJsZXMoaXRlbSk7XHJcblxyXG4gICAgICBTY2VuZTNEVXRpbC51cGRhdGVQaXZvdChpdGVtKTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMubG9hZFZhcmlhdGlvbnMoaXRlbSwgcmVzdWx0Lmluc3RhbmNlSWQpO1xyXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZUJ1aWxkT2JqZWN0KGl0ZW0sIHJlc3VsdCk7XHJcblxyXG4gICAgICB0aGlzLmN1cnJlbnRDdXN0b21GbG9vckdyb3VwID0gcmVzdWx0Lm9iamVjdDtcclxuXHJcbiAgICAgIHRoaXMuYXJQbGFjZW1lbnRVcGRhdGUubmV4dCh0cnVlKTtcclxuICAgICAgLy8gdGhpcy5oYW5kbGVJbnRlZ3JhdGlvbihyZXN1bHQuaW5zdGFuY2VJZCwgdGhpcy5jdXJyZW50Q3VzdG9tRmxvb3JHcm91cCk7XHJcbiAgICAgIHRoaXMuZW1wdHlBbnN3ZXJTZWxlY3RlZCgpO1xyXG4gICAgICB0aGlzLmVtcHR5U2VsZWN0aW9uc1NlbGVjdGVkKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50Q3VzdG9tRmxvb3JHcm91cC5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXN1bHQucmVzdWx0VHlwZSA9IFJlc3VsdFR5cGUuR2FtZW9iamVjdE5hbWVNaXNtYXRjaEluU291cmNlO1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZXN1bHQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQuZXJyb3JNZXNzYWdlcy5wdXNoKG5ldyBDb25maWd1cmF0b3JFcnJvck1lc3NhZ2UoJ05PX0FESlVTVEFCTEVTJywgJ05PX0FESlVTVEFCTEVTX0lORk8nKSk7XHJcbiAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5Ob0FkanVzdGFibGVzO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTtcclxuICAgIH1cclxuICAgIGlmIChyZXN1bHQucmVzdWx0VHlwZSA9PT0gUmVzdWx0VHlwZS5Ob1NlbGVjdGlvbnMpIHtcclxuICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLkNvbmZpZ3VyYXRpb25GaXhlZDtcclxuICAgIH0gZWxzZSBpZiAocmVzdWx0LnJlc3VsdFR5cGUgIT09IFJlc3VsdFR5cGUuT2Jzb2xldGUgJiYgcmVzdWx0LnJlc3VsdFR5cGUgIT09IFJlc3VsdFR5cGUuQ29uZmlndXJhdGlvbkZpeGVkKSB7IC8vIGRvbid0IG92ZXJyaWRlIHRoZXNlXHJcbiAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5Mb2FkZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBFdmVudFNlcnZpY2UuYnVpbGRGaW5pc2hlZC5uZXh0KHJlc3VsdCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZU5vbkNvbmZpZ3VyYWJsZUZsb29yKHJlc3VsdDogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCk6IFByb21pc2U8Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdD4ge1xyXG4gICAgY29uc3QgYXNzZXRVcmw6IHN0cmluZyA9IHJlc3VsdC5hc3NldFVybDtcclxuICAgIGNvbnN0IGZsb29yTWF0ZXJpYWw6IE1hdGVyaWFsID0gYXdhaXQgdGhpcy52YXJpYXRpb25TZXJ2aWNlLmxvYWRWYXJpYXRpb25CeUFzc2V0VXJsKGFzc2V0VXJsKTtcclxuICAgIHJlc3VsdC5tYXRlcmlhbCA9IGZsb29yTWF0ZXJpYWw7XHJcbiAgICB0aGlzLmFwcEV2ZW50U2VydmljZS5idWlsZEZpbmlzaGVkLm5leHQocmVzdWx0KTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc3RhcnRUb0J1aWxkKFxyXG4gICAgcmVzdWx0PzogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCxcclxuICAgIHNob3VsZENvcHlJbnN0YW5jZTogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgbG9vc2VPcmlnaW5hbENvbmZpZ3VyYXRpb246IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgc3RhbmRBbG9uZTogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgZmlyc3RCdWlsZDogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgZnJvbVByZXNldDogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgbG9hZEZyb21Qcm9qZWN0OiBib29sZWFuID0gZmFsc2VcclxuICApOiBQcm9taXNlPENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3Q+IHtcclxuXHJcbiAgICBpZiAoaXNOaWxsKHJlc3VsdCkpIHtcclxuICAgICAgcmVzdWx0ID0gbmV3IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnByZXBhcmVJbnN0YW5jZUZvckJ1aWxkKHNob3VsZENvcHlJbnN0YW5jZSwgbG9hZEZyb21Qcm9qZWN0LCBsb29zZU9yaWdpbmFsQ29uZmlndXJhdGlvbiwgcmVzdWx0KTtcclxuXHJcbiAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSBuZXcgVmVjdG9yMygpO1xyXG5cclxuICAgIGlmIChsb2FkRnJvbVByb2plY3QpIHtcclxuICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2Uuc2V0U2VsZWN0aW9ucyhyZXN1bHQuc2VsZWN0aW9ucyk7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZS5zZXREZWNvTm9kZXMoQXJyYXkuZnJvbShyZXN1bHQuZGVjb3MudmFsdWVzKCkpKTtcclxuICAgICAgdGhpcy5wcmVsb2FkTWF0ZXJpYWxzKHJlc3VsdC5zY2hlbWEpO1xyXG4gICAgICB0aGlzLnByZXBhcmVUaGVTZWxlY3Rpb25zKHJlc3VsdC5pbnN0YW5jZUlkKTtcclxuICAgICAgcmV0dXJuIHRoaXMuYnVpbGQocmVzdWx0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZS5nZXRRdWVzdGlvbkFuZEFuc3dlcnNBc3luYygpOyAvLyBzZWUgaWYgdGhlcmUgaXMgdXNlciBpbnB1dCBuZWVkZWRcclxuICAgICAgaWYgKHRoaXMuY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZS5hY3RpdmVBbnN3ZXJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVNlbGVjdGlvbnNBbmREZWNvcyhyZXN1bHQpXHJcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IFByb21pc2UucmVqZWN0KGUpKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZChyZXN1bHQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChmaXJzdEJ1aWxkKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVTZWxlY3Rpb25zQW5kRGVjb3MocmVzdWx0KS5jYXRjaCgoZSkgPT4gUHJvbWlzZS5yZWplY3QoZSkpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZS5zZWxlY3Rpb25zLmxlbmd0aCA8IDEpIHtcclxuICAgICAgICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLk5lZWRzVXNlcklucHV0O1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2Uuc2VsZWN0aW9ucy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5CdWlsZEZyb21TY3JhdGNoO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2Uuc2VsZWN0aW9ucy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5OZWVkc1VzZXJJbnB1dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuYXBwRXZlbnRTZXJ2aWNlLmJ1aWxkRmluaXNoZWQubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVTaW1wbGUzRE1vZGVsKHJlc3VsdDogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCk6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3Qge1xyXG5cclxuICAgIGlmICghdGhpcy5mdWxsM0RPYmplY3RUb1VzZSkgeyAvLyB0aGVyZSdzIG5vIDNkIG1vZGVsIHNvIGdldCBvdXRcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHRoaXMuY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZS5lbXB0eVNlbGVjdGlvbnMoKTtcclxuICAgIHRoaXMuZnVsbDNET2JqZWN0VG9Vc2UuY2hpbGRyZW4uZm9yRWFjaChjID0+IGMudmlzaWJsZSA9IHRydWUpO1xyXG4gICAgcmVzdWx0Lm9iamVjdCA9IHRoaXMuZnVsbDNET2JqZWN0VG9Vc2U7XHJcblxyXG4gICAgU2NlbmUzRFV0aWwudXBkYXRlUGl2b3QocmVzdWx0Lm9iamVjdCk7XHJcblxyXG4gICAgaWYgKHJlc3VsdC5kZWZhdWx0MTgwKSB7XHJcbiAgICAgIHJlc3VsdC5vYmplY3Qucm90YXRpb24uc2V0KHRoaXMuZGVmYXVsdFJvdGF0aW9uLngsIHRoaXMuZGVmYXVsdFJvdGF0aW9uLnksIHRoaXMuZGVmYXVsdFJvdGF0aW9uLnopO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hcHBFdmVudFNlcnZpY2UuYnVpbGRGaW5pc2hlZC5uZXh0KHJlc3VsdCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXJ0VG9CdWlsZEZyb21Db25maWd1cmF0b3IoZGF0YTogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdCk6IFByb21pc2U8Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhcnRUb0J1aWxkKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHByZXBhcmVTZWxlY3Rpb25zQW5kRGVjb3MoXHJcbiAgICByZXN1bHQ6IENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3RcclxuICApOiBQcm9taXNlPENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3Q+IHtcclxuICAgIHRoaXMucmVzZXQoKTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0U2VsZWN0aW9uc0FuZERlY29zKCk7XHJcbiAgICB0aGlzLnByZWxvYWRNYXRlcmlhbHMocmVzdWx0LnNjaGVtYSk7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVQcmVwYXJlU2VsZWN0aW9uc0RlY29zKHJlc3VsdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,113 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Texture } from '../model/texture';
3
+ import { LightPreset } from '../model/light-preset';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { Injectable } from '@angular/core';
6
+ import { MaterialUtils } from '../utils/material.utils';
7
+ import { DebugUtils } from '../utils/debug.utils';
8
+ import { Setting } from '../model/settings';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./json-utils.service";
11
+ import * as i2 from "./settings.service";
12
+ import * as i3 from "./configurator-connector.service";
13
+ import * as i4 from "./app-initializer.service";
14
+ import * as i5 from "./configuration.service";
15
+ import * as i6 from "./scene.service";
16
+ import * as i7 from "./scene-options.service";
17
+ export class BundleInitializerService {
18
+ constructor(_jsonUtilsService, _settingsService, _ioneControllerService, _appInitializerService, _configurationService, _sceneService, _sceneOptionsService) {
19
+ this._jsonUtilsService = _jsonUtilsService;
20
+ this._settingsService = _settingsService;
21
+ this._ioneControllerService = _ioneControllerService;
22
+ this._appInitializerService = _appInitializerService;
23
+ this._configurationService = _configurationService;
24
+ this._sceneService = _sceneService;
25
+ this._sceneOptionsService = _sceneOptionsService;
26
+ this.settings = [];
27
+ this.floorTexturesLoaded = new BehaviorSubject(undefined);
28
+ this.lightPresetsLoaded = new BehaviorSubject(undefined);
29
+ this.settingsLoaded = new BehaviorSubject(undefined);
30
+ this.allLoaded = new BehaviorSubject(undefined);
31
+ this._connectionSet = false;
32
+ this._subs = [];
33
+ this._jsonFile = 'index.json';
34
+ this._lightPresetsJsonFile = 'light-presets.json';
35
+ this._appInitializerService.appInitialized.subscribe((loaded) => __awaiter(this, void 0, void 0, function* () {
36
+ if (loaded && !this._connectionSet) {
37
+ this._assetPath = this._settingsService.settings.assetPath;
38
+ if (this._settingsService.settings.assetIndex) {
39
+ this._jsonFile = this._settingsService.settings.assetIndex;
40
+ }
41
+ if (this._settingsService.settings.lightPresetsIndex) {
42
+ this._lightPresetsJsonFile = this._settingsService.settings.lightPresetsIndex;
43
+ }
44
+ MaterialUtils.SetAssetPath(this._assetPath);
45
+ yield this._initialize();
46
+ this._connectionSet = true;
47
+ this.allLoaded.next(true);
48
+ }
49
+ }));
50
+ }
51
+ ngOnDestroy() {
52
+ this.floorTextures = [];
53
+ this.lightPresets = [];
54
+ this._subs.forEach(s => s.unsubscribe());
55
+ }
56
+ getFloorTextures() {
57
+ return this.floorTextures ? this.floorTextures.filter(f => f.show && f.useStandalone) : [];
58
+ }
59
+ getFloorTexture() {
60
+ return this.floorTextures ? this.floorTextures.find(f => f.show && f.useStandalone && f.defaultStandalone) : undefined;
61
+ }
62
+ getLightPreset() {
63
+ return this.lightPresets ? this.lightPresets.filter(l => l.default && l.standalone) : [];
64
+ }
65
+ _initialize() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ try {
68
+ const indexFile = yield this._jsonUtilsService.readJsonFile(this._assetPath + 'assets/' + this._jsonFile, false);
69
+ const lightPresets = yield this._jsonUtilsService.readJsonFile(this._assetPath + 'assets/' + this._lightPresetsJsonFile, false);
70
+ if (indexFile.hasOwnProperty('floors')) {
71
+ this.floorTextures = indexFile['floors'].map((floorTextureDef) => this._createTexture(floorTextureDef));
72
+ this.floorTexturesLoaded.next(this.floorTextures);
73
+ }
74
+ else {
75
+ DebugUtils.log('No floor textures available');
76
+ }
77
+ if (lightPresets.hasOwnProperty('lightpresets')) {
78
+ this.lightPresets = lightPresets['lightpresets'].map((lightPresetDef) => this._createLightPreset(lightPresetDef));
79
+ this.lightPresetsLoaded.next(this.lightPresets);
80
+ }
81
+ else {
82
+ this.lightPresetsLoaded.next([]);
83
+ }
84
+ if (lightPresets.hasOwnProperty('settings')) {
85
+ this.settings = lightPresets['settings'].map((settingsDef) => this._createSettings(settingsDef));
86
+ this.settingsLoaded.next(this.settings);
87
+ }
88
+ else {
89
+ this.settingsLoaded.next(undefined);
90
+ }
91
+ }
92
+ catch (e) {
93
+ console.error(e);
94
+ }
95
+ });
96
+ }
97
+ _createTexture(texture) {
98
+ return Texture.CreateModelFromInterface(texture);
99
+ }
100
+ _createLightPreset(lightPreset) {
101
+ return LightPreset.CreateModelFromInterface(lightPreset);
102
+ }
103
+ _createSettings(setting) {
104
+ return Setting.CreateModelFromInterface(setting);
105
+ }
106
+ }
107
+ BundleInitializerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BundleInitializerService, deps: [{ token: i1.JsonUtilsService }, { token: i2.SettingsService }, { token: i3.ConfiguratorConnectorService }, { token: i4.AppInitializerService }, { token: i5.ConfigurationService }, { token: i6.SceneService }, { token: i7.SceneOptionsService }], target: i0.ɵɵFactoryTarget.Injectable });
108
+ BundleInitializerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BundleInitializerService, providedIn: 'root' });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BundleInitializerService, decorators: [{
110
+ type: Injectable,
111
+ args: [{ providedIn: 'root' }]
112
+ }], ctorParameters: function () { return [{ type: i1.JsonUtilsService }, { type: i2.SettingsService }, { type: i3.ConfiguratorConnectorService }, { type: i4.AppInitializerService }, { type: i5.ConfigurationService }, { type: i6.SceneService }, { type: i7.SceneOptionsService }]; } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLWluaXRpYWx6ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL2J1bmRsZS1pbml0aWFsemVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUtuRCxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQU10RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7QUFLMUMsTUFBTSxPQUFPLHdCQUF3QjtJQWlCbkMsWUFDVSxpQkFBbUMsRUFDbkMsZ0JBQWlDLEVBQ2pDLHNCQUFvRCxFQUNwRCxzQkFBNkMsRUFDN0MscUJBQTJDLEVBQzNDLGFBQTJCLEVBQzNCLG9CQUF5QztRQU56QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUE4QjtRQUNwRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQXBCNUMsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUV6Qix3QkFBbUIsR0FBK0IsSUFBSSxlQUFlLENBQVksU0FBUyxDQUFD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V0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDbkgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUN6QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDckM7YUFDRjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbEI7UUFDSCxDQUFDO0tBQUE7SUFFTyxjQUFjLENBQUMsT0FBeUI7UUFDOUMsT0FBTyxPQUFPLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFdBQWlDO1FBQzFELE9BQU8sV0FBVyxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxlQUFlLENBQUMsT0FBeUI7UUFDL0MsT0FBTyxPQUFPLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7c0hBckdVLHdCQUF3QjswSEFBeEIsd0JBQXdCLGNBRlosTUFBTTs0RkFFbEIsd0JBQXdCO2tCQUZwQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGV4dHVyZX0gZnJvbSAnLi4vbW9kZWwvdGV4dHVyZSc7XHJcbmltcG9ydCB7TGlnaHRQcmVzZXR9IGZyb20gJy4uL21vZGVsL2xpZ2h0LXByZXNldCc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0pzb25VdGlsc1NlcnZpY2V9IGZyb20gJy4vanNvbi11dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4vc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRlcmlhbFV0aWxzfSBmcm9tICcuLi91dGlscy9tYXRlcmlhbC51dGlscyc7XHJcbmltcG9ydCB7VGV4dHVyZUludGVyZmFjZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy90ZXh0dXJlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7TGlnaHRQcmVzZXRJbnRlcmZhY2V9IGZyb20gJy4uL2ludGVyZmFjZXMvbGlnaHQtcHJlc2V0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7U2NlbmVTZXJ2aWNlfSBmcm9tICcuL3NjZW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NjZW5lT3B0aW9uc1NlcnZpY2V9IGZyb20gJy4vc2NlbmUtb3B0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtBcHBJbml0aWFsaXplclNlcnZpY2V9IGZyb20gJy4vYXBwLWluaXRpYWxpemVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RlYnVnVXRpbHN9IGZyb20gJy4uL3V0aWxzL2RlYnVnLnV0aWxzJztcclxuaW1wb3J0IHtTZXR0aW5nfSBmcm9tICcuLi9tb2RlbC9zZXR0aW5ncyc7XHJcbmltcG9ydCB7U2V0dGluZ0ludGVyZmFjZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZXR0aW5nLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuXHJcbmV4cG9ydCBjbGFzcyBCdW5kbGVJbml0aWFsaXplclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgZmxvb3JUZXh0dXJlczogVGV4dHVyZVtdO1xyXG4gIHB1YmxpYyBsaWdodFByZXNldHM6IExpZ2h0UHJlc2V0W107XHJcbiAgcHVibGljIHNldHRpbmdzOiBTZXR0aW5nW10gPSBbXTtcclxuXHJcbiAgcHVibGljIGZsb29yVGV4dHVyZXNMb2FkZWQ6IEJlaGF2aW9yU3ViamVjdDxUZXh0dXJlW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZXh0dXJlW10+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIGxpZ2h0UHJlc2V0c0xvYWRlZDogQmVoYXZpb3JTdWJqZWN0PExpZ2h0UHJlc2V0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMaWdodFByZXNldFtdPih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBzZXR0aW5nc0xvYWRlZDogQmVoYXZpb3JTdWJqZWN0PFNldHRpbmdbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldHRpbmdbXT4odW5kZWZpbmVkKTtcclxuICBwdWJsaWMgYWxsTG9hZGVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIHByaXZhdGUgX2Fzc2V0UGF0aDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2Nvbm5lY3Rpb25TZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX2pzb25GaWxlOiBzdHJpbmcgPSAnaW5kZXguanNvbic7XHJcbiAgcHJpdmF0ZSBfbGlnaHRQcmVzZXRzSnNvbkZpbGU6IHN0cmluZyA9ICdsaWdodC1wcmVzZXRzLmpzb24nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2pzb25VdGlsc1NlcnZpY2U6IEpzb25VdGlsc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2lvbmVDb250cm9sbGVyU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FwcEluaXRpYWxpemVyU2VydmljZTogQXBwSW5pdGlhbGl6ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2NlbmVTZXJ2aWNlOiBTY2VuZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zY2VuZU9wdGlvbnNTZXJ2aWNlOiBTY2VuZU9wdGlvbnNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9hcHBJbml0aWFsaXplclNlcnZpY2UuYXBwSW5pdGlhbGl6ZWQuc3Vic2NyaWJlKGFzeW5jIChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKGxvYWRlZCAmJiAhdGhpcy5fY29ubmVjdGlvblNldCkge1xyXG4gICAgICAgIHRoaXMuX2Fzc2V0UGF0aCA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5hc3NldFBhdGg7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5hc3NldEluZGV4KSB7XHJcbiAgICAgICAgICB0aGlzLl9qc29uRmlsZSA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5hc3NldEluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLmxpZ2h0UHJlc2V0c0luZGV4KSB7XHJcbiAgICAgICAgICB0aGlzLl9saWdodFByZXNldHNKc29uRmlsZSA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5saWdodFByZXNldHNJbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgTWF0ZXJpYWxVdGlscy5TZXRBc3NldFBhdGgodGhpcy5fYXNzZXRQYXRoKTtcclxuICAgICAgICBhd2FpdCB0aGlzLl9pbml0aWFsaXplKCk7XHJcbiAgICAgICAgdGhpcy5fY29ubmVjdGlvblNldCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hbGxMb2FkZWQubmV4dCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmxvb3JUZXh0dXJlcyA9IFtdO1xyXG4gICAgdGhpcy5saWdodFByZXNldHMgPSBbXTtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Rmxvb3JUZXh0dXJlcygpOiBUZXh0dXJlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmxvb3JUZXh0dXJlcyA/IHRoaXMuZmxvb3JUZXh0dXJlcy5maWx0ZXIoZiA9PiBmLnNob3cgJiYgZi51c2VTdGFuZGFsb25lKSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZsb29yVGV4dHVyZSgpOiBUZXh0dXJlIHtcclxuICAgIHJldHVybiB0aGlzLmZsb29yVGV4dHVyZXMgPyB0aGlzLmZsb29yVGV4dHVyZXMuZmluZChmID0+IGYuc2hvdyAmJiBmLnVzZVN0YW5kYWxvbmUgJiYgZi5kZWZhdWx0U3RhbmRhbG9uZSkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TGlnaHRQcmVzZXQoKTogTGlnaHRQcmVzZXRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5saWdodFByZXNldHMgPyB0aGlzLmxpZ2h0UHJlc2V0cy5maWx0ZXIobCA9PiBsLmRlZmF1bHQgJiYgbC5zdGFuZGFsb25lKSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGluZGV4RmlsZTogYW55ID0gYXdhaXQgdGhpcy5fanNvblV0aWxzU2VydmljZS5yZWFkSnNvbkZpbGUodGhpcy5fYXNzZXRQYXRoICsgJ2Fzc2V0cy8nICsgdGhpcy5fanNvbkZpbGUsIGZhbHNlKTtcclxuICAgICAgY29uc3QgbGlnaHRQcmVzZXRzOiBhbnkgPSBhd2FpdCB0aGlzLl9qc29uVXRpbHNTZXJ2aWNlLnJlYWRKc29uRmlsZSh0aGlzLl9hc3NldFBhdGggKyAnYXNzZXRzLycgKyB0aGlzLl9saWdodFByZXNldHNKc29uRmlsZSwgZmFsc2UpO1xyXG5cclxuICAgICAgaWYgKGluZGV4RmlsZS5oYXNPd25Qcm9wZXJ0eSgnZmxvb3JzJykpIHtcclxuICAgICAgICB0aGlzLmZsb29yVGV4dHVyZXMgPSBpbmRleEZpbGVbJ2Zsb29ycyddLm1hcCgoZmxvb3JUZXh0dXJlRGVmOiBUZXh0dXJlSW50ZXJmYWNlKSA9PiB0aGlzLl9jcmVhdGVUZXh0dXJlKGZsb29yVGV4dHVyZURlZikpO1xyXG4gICAgICAgIHRoaXMuZmxvb3JUZXh0dXJlc0xvYWRlZC5uZXh0KHRoaXMuZmxvb3JUZXh0dXJlcyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgRGVidWdVdGlscy5sb2coJ05vIGZsb29yIHRleHR1cmVzIGF2YWlsYWJsZScpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAobGlnaHRQcmVzZXRzLmhhc093blByb3BlcnR5KCdsaWdodHByZXNldHMnKSkge1xyXG4gICAgICAgIHRoaXMubGlnaHRQcmVzZXRzID0gbGlnaHRQcmVzZXRzWydsaWdodHByZXNldHMnXS5tYXAoKGxpZ2h0UHJlc2V0RGVmOiBMaWdodFByZXNldEludGVyZmFjZSkgPT4gdGhpcy5fY3JlYXRlTGlnaHRQcmVzZXQobGlnaHRQcmVzZXREZWYpKTtcclxuICAgICAgICB0aGlzLmxpZ2h0UHJlc2V0c0xvYWRlZC5uZXh0KHRoaXMubGlnaHRQcmVzZXRzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxpZ2h0UHJlc2V0c0xvYWRlZC5uZXh0KFtdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGxpZ2h0UHJlc2V0cy5oYXNPd25Qcm9wZXJ0eSgnc2V0dGluZ3MnKSkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBsaWdodFByZXNldHNbJ3NldHRpbmdzJ10ubWFwKChzZXR0aW5nc0RlZjogU2V0dGluZ0ludGVyZmFjZSkgPT4gdGhpcy5fY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NEZWYpKTtcclxuICAgICAgICB0aGlzLnNldHRpbmdzTG9hZGVkLm5leHQodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc0xvYWRlZC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZVRleHR1cmUodGV4dHVyZTogVGV4dHVyZUludGVyZmFjZSk6IFRleHR1cmUge1xyXG4gICAgcmV0dXJuIFRleHR1cmUuQ3JlYXRlTW9kZWxGcm9tSW50ZXJmYWNlKHRleHR1cmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTGlnaHRQcmVzZXQobGlnaHRQcmVzZXQ6IExpZ2h0UHJlc2V0SW50ZXJmYWNlKTogTGlnaHRQcmVzZXQge1xyXG4gICAgcmV0dXJuIExpZ2h0UHJlc2V0LkNyZWF0ZU1vZGVsRnJvbUludGVyZmFjZShsaWdodFByZXNldCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVTZXR0aW5ncyhzZXR0aW5nOiBTZXR0aW5nSW50ZXJmYWNlKTogU2V0dGluZyB7XHJcbiAgICByZXR1cm4gU2V0dGluZy5DcmVhdGVNb2RlbEZyb21JbnRlcmZhY2Uoc2V0dGluZyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,123 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { Box3, PerspectiveCamera, Vector3 } from 'three';
4
+ import { Subject } from 'rxjs';
5
+ import { Controls } from './controls';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./settings.service";
8
+ const DEFAULT_CAMERA_ASPECT_RATIO = 1;
9
+ const DEFAULT_CAMERA_FOV = 45;
10
+ const DEFAULT_CAMERA_FOCUS = 10;
11
+ export class CameraService {
12
+ constructor(_settingsService) {
13
+ this._settingsService = _settingsService;
14
+ this.panSpeed = 30;
15
+ this.rotateBy = Math.PI / 32;
16
+ this.moveBy = 25;
17
+ this.cameraDefaultHeight = 1.7;
18
+ this.targetDefaultOffset = 1;
19
+ this.exploreDistanceFromCorner = 0.8;
20
+ this.cameraMovementChanged = new Subject();
21
+ this._cameraLocked = false;
22
+ this._realAspectRatio = DEFAULT_CAMERA_ASPECT_RATIO;
23
+ this._aspectRatio = window.innerWidth / window.innerHeight;
24
+ this._subs = [];
25
+ }
26
+ get cameraLocked() {
27
+ return this._cameraLocked;
28
+ }
29
+ set realAspectRatio(value) {
30
+ this._realAspectRatio = value;
31
+ }
32
+ ngOnDestroy() {
33
+ this._subs.forEach(s => s.unsubscribe());
34
+ this.controls.removeEventListener('change', () => this._controlsUpdate());
35
+ this.controls.removeEventListener('contextmenu');
36
+ this.controls.removeEventListener('mousedown');
37
+ this.controls.removeEventListener('wheel');
38
+ this.controls.removeEventListener('touchstart');
39
+ this.controls.removeEventListener('touchend');
40
+ this.controls.removeEventListener('touchmove');
41
+ window.removeEventListener('deviceorientation', this.controls.onDeviceMove(), false);
42
+ window.removeEventListener('keydown', this.controls.onKeyDown(), false);
43
+ this._element = undefined;
44
+ }
45
+ init(element) {
46
+ this._element = element;
47
+ this.camera = new PerspectiveCamera(45, 1, 0.01, 100);
48
+ this.camera.position.set(0, 3, 1.5);
49
+ this.camera.aspect = window.innerWidth / window.innerHeight;
50
+ this.camera.updateProjectionMatrix();
51
+ this.controls = new Controls(this.camera, this._element);
52
+ this.controls.addEventListener('change', () => this._controlsUpdate());
53
+ this.controls.update();
54
+ }
55
+ cameraZoomIn() {
56
+ this.controls.dollyIn(1.1);
57
+ this.controls.update();
58
+ }
59
+ cameraZoomOut() {
60
+ this.controls.dollyOut(1.1);
61
+ this.controls.update();
62
+ }
63
+ lockCamera() {
64
+ this._cameraLocked = true;
65
+ }
66
+ unlockCamera() {
67
+ this._cameraLocked = false;
68
+ }
69
+ disableRotate() {
70
+ this.controls.noRotate = true;
71
+ }
72
+ disableRotateHorizontal() {
73
+ this.controls.noRotateHorizontal = true;
74
+ }
75
+ disablePan() {
76
+ this.controls.noPan = true;
77
+ }
78
+ disableZoom() {
79
+ this.controls.noZoom = true;
80
+ }
81
+ moveCameraToFitObject(object, offset) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ if (!object) {
84
+ return;
85
+ }
86
+ offset = offset || 1.15;
87
+ // get bounding box of object - this will be used to setup controls and camera
88
+ const boundingBox = new Box3();
89
+ boundingBox.setFromObject(object);
90
+ const center = new Vector3();
91
+ boundingBox.getCenter(center);
92
+ const size = new Vector3();
93
+ boundingBox.getSize(size);
94
+ // get the max side of the bounding box (fits to width OR height as needed )
95
+ const maxDim = Math.max(size.x, size.y, size.z);
96
+ const fov = this.camera.fov * (Math.PI / 180);
97
+ // let cameraZ = Math.abs(maxDim / 4 * Math.tan(fov * 200));
98
+ let cameraZ = Math.abs((maxDim / 2) / Math.tan(fov / 2));
99
+ cameraZ *= offset; // zoom out a little so that objects don't fill the screen
100
+ const newPosition = new Vector3(0, size.y * 1.25, cameraZ);
101
+ if (this._settingsService.settings.options.useAnimations) {
102
+ const tween = yield this.controls.animateCameraMovement(newPosition, center, 2000);
103
+ }
104
+ else {
105
+ yield this.controls.fixedCameraMovement(newPosition, center);
106
+ }
107
+ });
108
+ }
109
+ _getCameraOffset(target, distance) {
110
+ const targetDistance = distance * 1.5;
111
+ return target.clone().add(new Vector3(0, targetDistance, targetDistance));
112
+ }
113
+ _controlsUpdate() {
114
+ this.cameraMovementChanged.next();
115
+ }
116
+ }
117
+ CameraService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CameraService, deps: [{ token: i1.SettingsService }], target: i0.ɵɵFactoryTarget.Injectable });
118
+ CameraService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CameraService, providedIn: 'root' });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CameraService, decorators: [{
120
+ type: Injectable,
121
+ args: [{ providedIn: 'root' }]
122
+ }], ctorParameters: function () { return [{ type: i1.SettingsService }]; } });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25maWd1cmF0b3Ivc3JjL2xpYi9zZXJ2aWNlcy9jYW1lcmEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsSUFBSSxFQUFtQixpQkFBaUIsRUFBdUIsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzdGLE9BQU8sRUFBQyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFLM0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQzs7O0FBSXBDLE1BQU0sMkJBQTJCLEdBQVcsQ0FBQyxDQUFDO0FBQzlDLE1BQU0sa0JBQWtCLEdBQVcsRUFBRSxDQUFDO0FBQ3RDLE1BQU0sb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0FBSXhDLE1BQU0sT0FBTyxhQUFhO0lBK0J4QixZQUNVLGdCQUFpQztRQUFqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBOUIzQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGFBQVEsR0FBVyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNoQyxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLHdCQUFtQixHQUFXLEdBQUcsQ0FBQztRQUNsQyx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsOEJBQXlCLEdBQVcsR0FBRyxDQUFDO1FBSWpELDBCQUFxQixHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXBELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBSy9CLHFCQUFnQixHQUFXLDJCQUEyQixDQUFDO1FBQ3ZELGlCQUFZLEdBQVcsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBRTlELFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBY25DLENBQUM7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Q0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakUsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLDBEQUEwRDtZQUU3RSxNQUFNLFdBQVcsR0FBWSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDcEUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ3BGO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDOUQ7UUFDSCxDQUFDO0tBQUE7SUFFTyxnQkFBZ0IsQ0FBQyxNQUFlLEVBQUUsUUFBZ0I7UUFDeEQsTUFBTSxjQUFjLEdBQVcsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQ3ZCLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7MkdBeElVLGFBQWE7K0dBQWIsYUFBYSxjQUZELE1BQU07NEZBRWxCLGFBQWE7a0JBRnpCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JveDMsIEV1bGVyLCBPYmplY3QzRCwgUGVyc3BlY3RpdmVDYW1lcmEsIFF1YXRlcm5pb24sIFZlY3RvcjIsIFZlY3RvcjN9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBUV0VFTiBmcm9tICdAdHdlZW5qcy90d2Vlbi5qcyc7XHJcbmltcG9ydCB7IFZpZXdNb2RlIH0gZnJvbSAnLi4vZW51bS92aWV3LW1vZGUuZW51bSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yU2V0dGluZ3N9IGZyb20gJy4uL21vZGVsL2NvbmZpZ3VyYXRvci1zZXR0aW5ncyc7XHJcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuL3NldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbnRyb2xzfSBmcm9tICcuL2NvbnRyb2xzJztcclxuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xyXG5cclxuXHJcbmNvbnN0IERFRkFVTFRfQ0FNRVJBX0FTUEVDVF9SQVRJTzogbnVtYmVyID0gMTtcclxuY29uc3QgREVGQVVMVF9DQU1FUkFfRk9WOiBudW1iZXIgPSA0NTtcclxuY29uc3QgREVGQVVMVF9DQU1FUkFfRk9DVVM6IG51bWJlciA9IDEwO1xyXG5cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtZXJhU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBwYW5TcGVlZDogbnVtYmVyID0gMzA7XHJcbiAgcHVibGljIHJlYWRvbmx5IHJvdGF0ZUJ5OiBudW1iZXIgPSBNYXRoLlBJIC8gMzI7XHJcbiAgcHVibGljIHJlYWRvbmx5IG1vdmVCeTogbnVtYmVyID0gMjU7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhbWVyYURlZmF1bHRIZWlnaHQ6IG51bWJlciA9IDEuNztcclxuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0RGVmYXVsdE9mZnNldDogbnVtYmVyID0gMTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZXhwbG9yZURpc3RhbmNlRnJvbUNvcm5lcjogbnVtYmVyID0gMC44O1xyXG5cclxuICBwdWJsaWMgY2FtZXJhOiBQZXJzcGVjdGl2ZUNhbWVyYTtcclxuICBwdWJsaWMgY29udHJvbHM6IGFueTtcclxuICBwdWJsaWMgY2FtZXJhTW92ZW1lbnRDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBfY2FtZXJhTG9ja2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBfdmlld1NpemU6IFZlY3RvcjM7XHJcbiAgcHJpdmF0ZSBfdmlld0NlbnRlcjogVmVjdG9yMztcclxuICBwcml2YXRlIF9leHBsb3JlVGFyZ2V0RGlzdGFuY2U6IG51bWJlcjtcclxuICBwcml2YXRlIF9yZWFsQXNwZWN0UmF0aW86IG51bWJlciA9IERFRkFVTFRfQ0FNRVJBX0FTUEVDVF9SQVRJTztcclxuICBwcml2YXRlIF9hc3BlY3RSYXRpbzogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGggLyB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgcHJpdmF0ZSBfdmlld01vZGU6IFZpZXdNb2RlO1xyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGdldCBjYW1lcmFMb2NrZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FtZXJhTG9ja2VkO1xyXG4gIH1cclxuXHJcbiAgc2V0IHJlYWxBc3BlY3RSYXRpbyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9yZWFsQXNwZWN0UmF0aW8gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLmNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHRoaXMuX2NvbnRyb2xzVXBkYXRlKCkpO1xyXG4gICAgdGhpcy5jb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScpO1xyXG4gICAgdGhpcy5jb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nKTtcclxuICAgIHRoaXMuY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnKTtcclxuICAgIHRoaXMuY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcpO1xyXG4gICAgdGhpcy5jb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcpO1xyXG4gICAgdGhpcy5jb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnKTtcclxuXHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZGV2aWNlb3JpZW50YXRpb24nLCB0aGlzLmNvbnRyb2xzLm9uRGV2aWNlTW92ZSgpLCBmYWxzZSk7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuY29udHJvbHMub25LZXlEb3duKCksIGZhbHNlKTtcclxuICAgIHRoaXMuX2VsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5pdChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7XHJcbiAgICB0aGlzLmNhbWVyYSA9IG5ldyBQZXJzcGVjdGl2ZUNhbWVyYSg0NSwgMSwgMC4wMSwgMTAwKTtcclxuICAgIHRoaXMuY2FtZXJhLnBvc2l0aW9uLnNldCgwLCAzLCAxLjUpO1xyXG4gICAgdGhpcy5jYW1lcmEuYXNwZWN0ID0gd2luZG93LmlubmVyV2lkdGggLyB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICB0aGlzLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XHJcbiAgICB0aGlzLmNvbnRyb2xzID0gbmV3IENvbnRyb2xzKHRoaXMuY2FtZXJhLCB0aGlzLl9lbGVtZW50KTtcclxuICAgIHRoaXMuY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gdGhpcy5fY29udHJvbHNVcGRhdGUoKSk7XHJcbiAgICB0aGlzLmNvbnRyb2xzLnVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYVpvb21JbigpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbHMuZG9sbHlJbigxLjEpO1xyXG4gICAgdGhpcy5jb250cm9scy51cGRhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW1lcmFab29tT3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9scy5kb2xseU91dCgxLjEpO1xyXG4gICAgdGhpcy5jb250cm9scy51cGRhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NrQ2FtZXJhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2FtZXJhTG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1bmxvY2tDYW1lcmEoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jYW1lcmFMb2NrZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlUm90YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9scy5ub1JvdGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYWJsZVJvdGF0ZUhvcml6b250YWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRyb2xzLm5vUm90YXRlSG9yaXpvbnRhbCA9IHRydWU7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGRpc2FibGVQYW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRyb2xzLm5vUGFuID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlWm9vbSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbHMubm9ab29tID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBtb3ZlQ2FtZXJhVG9GaXRPYmplY3Qob2JqZWN0OiBhbnksIG9mZnNldD86IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFvYmplY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDEuMTU7XHJcblxyXG4gICAgLy8gZ2V0IGJvdW5kaW5nIGJveCBvZiBvYmplY3QgLSB0aGlzIHdpbGwgYmUgdXNlZCB0byBzZXR1cCBjb250cm9scyBhbmQgY2FtZXJhXHJcbiAgICBjb25zdCBib3VuZGluZ0JveDogQm94MyA9IG5ldyBCb3gzKCk7XHJcbiAgICBib3VuZGluZ0JveC5zZXRGcm9tT2JqZWN0KG9iamVjdCk7XHJcbiAgICBjb25zdCBjZW50ZXI6IFZlY3RvcjMgPSBuZXcgVmVjdG9yMygpO1xyXG4gICAgYm91bmRpbmdCb3guZ2V0Q2VudGVyKGNlbnRlcik7XHJcbiAgICBjb25zdCBzaXplOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoKTtcclxuICAgIGJvdW5kaW5nQm94LmdldFNpemUoc2l6ZSk7XHJcblxyXG4gICAgLy8gZ2V0IHRoZSBtYXggc2lkZSBvZiB0aGUgYm91bmRpbmcgYm94IChmaXRzIHRvIHdpZHRoIE9SIGhlaWdodCBhcyBuZWVkZWQgKVxyXG4gICAgY29uc3QgbWF4RGltOiBudW1iZXIgPSBNYXRoLm1heChzaXplLngsIHNpemUueSwgc2l6ZS56KTtcclxuXHJcbiAgICBjb25zdCBmb3Y6IG51bWJlciA9IHRoaXMuY2FtZXJhLmZvdiAqIChNYXRoLlBJIC8gMTgwKTtcclxuICAgIC8vIGxldCBjYW1lcmFaID0gTWF0aC5hYnMobWF4RGltIC8gNCAqIE1hdGgudGFuKGZvdiAqIDIwMCkpO1xyXG4gICAgbGV0IGNhbWVyYVo6IG51bWJlciA9IE1hdGguYWJzKChtYXhEaW0gLyAyKSAvIE1hdGgudGFuKGZvdiAvIDIpKTtcclxuICAgIGNhbWVyYVogKj0gb2Zmc2V0OyAvLyB6b29tIG91dCBhIGxpdHRsZSBzbyB0aGF0IG9iamVjdHMgZG9uJ3QgZmlsbCB0aGUgc2NyZWVuXHJcblxyXG4gICAgY29uc3QgbmV3UG9zaXRpb246IFZlY3RvcjMgPSBuZXcgVmVjdG9yMygwLCBzaXplLnkgKiAxLjI1LCBjYW1lcmFaKTtcclxuICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy51c2VBbmltYXRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHR3ZWVuID0gYXdhaXQgdGhpcy5jb250cm9scy5hbmltYXRlQ2FtZXJhTW92ZW1lbnQobmV3UG9zaXRpb24sIGNlbnRlciwgMjAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbnRyb2xzLmZpeGVkQ2FtZXJhTW92ZW1lbnQobmV3UG9zaXRpb24sIGNlbnRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRDYW1lcmFPZmZzZXQodGFyZ2V0OiBWZWN0b3IzLCBkaXN0YW5jZTogbnVtYmVyKTogVmVjdG9yMyB7XHJcbiAgICBjb25zdCB0YXJnZXREaXN0YW5jZTogbnVtYmVyID0gZGlzdGFuY2UgKiAxLjU7XHJcbiAgICByZXR1cm4gdGFyZ2V0LmNsb25lKCkuYWRkKFxyXG4gICAgICBuZXcgVmVjdG9yMygwLCB0YXJnZXREaXN0YW5jZSwgdGFyZ2V0RGlzdGFuY2UpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbnRyb2xzVXBkYXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYW1lcmFNb3ZlbWVudENoYW5nZWQubmV4dCgpO1xyXG4gIH1cclxufVxyXG4iXX0=