@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,61 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PipesModule } from '../../pipes/pipes.module';
4
+ import { IconModule, PriceDisplayPipeModule } from '@colijnit/corecomponents_v12';
5
+ import { AnswersSlideoutComponent } from './answers-slideout.component';
6
+ import { AnswerCardModule } from '../answer-card/answer-card.module';
7
+ import { ImageZoomModule } from '../image-zoom/image-zoom.module';
8
+ import { ColorFilterModule } from '../color-filter/color-filter.module';
9
+ import { TagFilterModule } from '../tag-filter/tag-filter.module';
10
+ import { DirectivesModule } from '../../directives/directives.module';
11
+ import { SlideoutModule } from '../slideout/slideout.module';
12
+ import * as i0 from "@angular/core";
13
+ export class AnswersSlideoutModule {
14
+ }
15
+ AnswersSlideoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswersSlideoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ AnswersSlideoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswersSlideoutModule, declarations: [AnswersSlideoutComponent], imports: [SlideoutModule,
17
+ PipesModule,
18
+ CommonModule,
19
+ IconModule,
20
+ PriceDisplayPipeModule,
21
+ AnswerCardModule,
22
+ ImageZoomModule,
23
+ ColorFilterModule,
24
+ TagFilterModule,
25
+ DirectivesModule], exports: [AnswersSlideoutComponent] });
26
+ AnswersSlideoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswersSlideoutModule, imports: [[
27
+ SlideoutModule,
28
+ PipesModule,
29
+ CommonModule,
30
+ IconModule,
31
+ PriceDisplayPipeModule,
32
+ AnswerCardModule,
33
+ ImageZoomModule,
34
+ ColorFilterModule,
35
+ TagFilterModule,
36
+ DirectivesModule
37
+ ]] });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswersSlideoutModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ imports: [
42
+ SlideoutModule,
43
+ PipesModule,
44
+ CommonModule,
45
+ IconModule,
46
+ PriceDisplayPipeModule,
47
+ AnswerCardModule,
48
+ ImageZoomModule,
49
+ ColorFilterModule,
50
+ TagFilterModule,
51
+ DirectivesModule
52
+ ],
53
+ declarations: [
54
+ AnswersSlideoutComponent,
55
+ ],
56
+ exports: [
57
+ AnswersSlideoutComponent
58
+ ]
59
+ }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2Vycy1zbGlkZW91dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25maWd1cmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2Fuc3dlcnMtc2xpZGVvdXQvYW5zd2Vycy1zbGlkZW91dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUF3QjNELE1BQU0sT0FBTyxxQkFBcUI7O21IQUFyQixxQkFBcUI7b0hBQXJCLHFCQUFxQixpQkFQOUIsd0JBQXdCLGFBYnhCLGNBQWM7UUFDZCxXQUFXO1FBQ1gsWUFBWTtRQUNaLFVBQVU7UUFDVixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGdCQUFnQixhQU9oQix3QkFBd0I7b0hBSWYscUJBQXFCLFlBckJ2QjtZQUNQLGNBQWM7WUFDZCxXQUFXO1lBQ1gsWUFBWTtZQUNaLFVBQVU7WUFDVixzQkFBc0I7WUFDdEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGdCQUFnQjtTQUVqQjs0RkFTVSxxQkFBcUI7a0JBdEJqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixVQUFVO3dCQUNWLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBRWpCO29CQUNELFlBQVksRUFBRTt3QkFDWix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx3QkFBd0I7cUJBQ3pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1BpcGVzTW9kdWxlfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xyXG5pbXBvcnQge0ljb25Nb2R1bGUsIFByaWNlRGlzcGxheVBpcGVNb2R1bGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0Fuc3dlcnNTbGlkZW91dENvbXBvbmVudH0gZnJvbSAnLi9hbnN3ZXJzLXNsaWRlb3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QW5zd2VyQ2FyZE1vZHVsZX0gZnJvbSAnLi4vYW5zd2VyLWNhcmQvYW5zd2VyLWNhcmQubW9kdWxlJztcclxuaW1wb3J0IHtJbWFnZVpvb21Nb2R1bGV9IGZyb20gJy4uL2ltYWdlLXpvb20vaW1hZ2Utem9vbS5tb2R1bGUnO1xyXG5pbXBvcnQge0NvbG9yRmlsdGVyTW9kdWxlfSBmcm9tICcuLi9jb2xvci1maWx0ZXIvY29sb3ItZmlsdGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7VGFnRmlsdGVyTW9kdWxlfSBmcm9tICcuLi90YWctZmlsdGVyL3RhZy1maWx0ZXIubW9kdWxlJztcclxuaW1wb3J0IHtEaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcclxuaW1wb3J0IHtTbGlkZW91dE1vZHVsZX0gZnJvbSAnLi4vc2xpZGVvdXQvc2xpZGVvdXQubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2xpZGVvdXRNb2R1bGUsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEljb25Nb2R1bGUsXHJcbiAgICBQcmljZURpc3BsYXlQaXBlTW9kdWxlLFxyXG4gICAgQW5zd2VyQ2FyZE1vZHVsZSxcclxuICAgIEltYWdlWm9vbU1vZHVsZSxcclxuICAgIENvbG9yRmlsdGVyTW9kdWxlLFxyXG4gICAgVGFnRmlsdGVyTW9kdWxlLFxyXG4gICAgRGlyZWN0aXZlc01vZHVsZVxyXG5cclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQW5zd2Vyc1NsaWRlb3V0Q29tcG9uZW50LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQW5zd2Vyc1NsaWRlb3V0Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFuc3dlcnNTbGlkZW91dE1vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,59 @@
1
+ import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
+ import { ColorUtils } from '../../utils/color.utils';
3
+ import { IconEnum } from '../../enum/icon.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/icon-cache.service";
6
+ import * as i2 from "@angular/platform-browser";
7
+ import * as i3 from "@colijnit/corecomponents_v12";
8
+ export class ColorFilterComponent {
9
+ constructor(iconService, _sanitizer) {
10
+ this.iconService = iconService;
11
+ this._sanitizer = _sanitizer;
12
+ this.icons = IconEnum;
13
+ this.active = false;
14
+ }
15
+ showClass() {
16
+ return true;
17
+ }
18
+ set color(value) {
19
+ this._color = value;
20
+ this.backgroundStyle = this._sanitizer.bypassSecurityTrustStyle(`background-color: ${this._color.hexColor}`);
21
+ }
22
+ get color() {
23
+ return this._color;
24
+ }
25
+ get lightBackground() {
26
+ // TODO make this an interface or something
27
+ const rgb = ColorUtils.HexToRgb(this._color.hexColor);
28
+ return (rgb && (rgb.r > 210 && rgb.g > 210 && rgb.b > 210)) || !rgb;
29
+ }
30
+ }
31
+ ColorFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ColorFilterComponent, deps: [{ token: i1.IconCacheService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
32
+ ColorFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ColorFilterComponent, selector: "co-color-filter", inputs: { color: "color", active: "active" }, host: { properties: { "class.co-color-filter": "this.showClass", "class.light-background": "this.lightBackground" } }, ngImport: i0, template: `
33
+ <div class="color" [style]="backgroundStyle">
34
+ <co-icon [iconData]="iconService.getIcon(icons.CheckSolid)"></co-icon>
35
+ </div>
36
+ `, isInline: true, components: [{ type: i3.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], encapsulation: i0.ViewEncapsulation.None });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ColorFilterComponent, decorators: [{
38
+ type: Component,
39
+ args: [{
40
+ selector: 'co-color-filter',
41
+ template: `
42
+ <div class="color" [style]="backgroundStyle">
43
+ <co-icon [iconData]="iconService.getIcon(icons.CheckSolid)"></co-icon>
44
+ </div>
45
+ `,
46
+ encapsulation: ViewEncapsulation.None,
47
+ }]
48
+ }], ctorParameters: function () { return [{ type: i1.IconCacheService }, { type: i2.DomSanitizer }]; }, propDecorators: { showClass: [{
49
+ type: HostBinding,
50
+ args: ['class.co-color-filter']
51
+ }], color: [{
52
+ type: Input
53
+ }], active: [{
54
+ type: Input
55
+ }], lightBackground: [{
56
+ type: HostBinding,
57
+ args: ['class.light-background']
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvY29sb3ItZmlsdGVyL2NvbG9yLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBYTlDLE1BQU0sT0FBTyxvQkFBb0I7SUErQi9CLFlBQ1MsV0FBNkIsRUFDNUIsVUFBd0I7UUFEekIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQWM7UUFoQ2xCLFVBQUssR0FBb0IsUUFBUSxDQUFDO1FBa0IzQyxXQUFNLEdBQVksS0FBSyxDQUFDO0lBaUIvQixDQUFDO0lBaENNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUNXLEtBQUssQ0FBQyxLQUFZO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUtELElBQ1csZUFBZTtRQUN4QiwyQ0FBMkM7UUFDM0MsTUFBTSxHQUFHLEdBQXNDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3RFLENBQUM7O2tIQTFCVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiw0TkFQckI7Ozs7R0FJVDs0RkFHVSxvQkFBb0I7a0JBVGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO2tJQUtRLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBTXpCLEtBQUs7c0JBRGYsS0FBSztnQkFXQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUssZUFBZTtzQkFEekIsV0FBVzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlU3R5bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQge0NvbG9yfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2NvbG9yJztcclxuaW1wb3J0IHtDb2xvclV0aWxzfSBmcm9tICcuLi8uLi91dGlscy9jb2xvci51dGlscyc7XHJcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tY29sb3ItZmlsdGVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImNvbG9yXCIgW3N0eWxlXT1cImJhY2tncm91bmRTdHlsZVwiPlxyXG4gICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja1NvbGlkKVwiPjwvY28taWNvbj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbG9yRmlsdGVyQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uRW51bSA9IEljb25FbnVtO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWNvbG9yLWZpbHRlcicpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNvbG9yKHZhbHVlOiBDb2xvcikge1xyXG4gICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcclxuICAgIHRoaXMuYmFja2dyb3VuZFN0eWxlID0gdGhpcy5fc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShgYmFja2dyb3VuZC1jb2xvcjogJHt0aGlzLl9jb2xvci5oZXhDb2xvcn1gKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sb3IoKTogQ29sb3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGlnaHQtYmFja2dyb3VuZCcpXHJcbiAgcHVibGljIGdldCBsaWdodEJhY2tncm91bmQoKTogYm9vbGVhbiB7XHJcbiAgICAvLyBUT0RPIG1ha2UgdGhpcyBhbiBpbnRlcmZhY2Ugb3Igc29tZXRoaW5nXHJcbiAgICBjb25zdCByZ2I6IHtyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyfSA9IENvbG9yVXRpbHMuSGV4VG9SZ2IodGhpcy5fY29sb3IuaGV4Q29sb3IpO1xyXG4gICAgcmV0dXJuIChyZ2IgJiYgKHJnYi5yID4gMjEwICYmIHJnYi5nID4gMjEwICYmIHJnYi5iID4gMjEwKSkgfHwgIXJnYjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBiYWNrZ3JvdW5kU3R5bGU6IFNhZmVTdHlsZTtcclxuICBwcml2YXRlIF9jb2xvcjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ColorFilterComponent } from './color-filter.component';
3
+ import { IconModule } from '@colijnit/corecomponents_v12';
4
+ import * as i0 from "@angular/core";
5
+ export class ColorFilterModule {
6
+ }
7
+ ColorFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ColorFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ ColorFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ColorFilterModule, declarations: [ColorFilterComponent], imports: [IconModule], exports: [ColorFilterComponent] });
9
+ ColorFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ColorFilterModule, imports: [[
10
+ IconModule
11
+ ]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ColorFilterModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [
16
+ IconModule
17
+ ],
18
+ declarations: [
19
+ ColorFilterComponent
20
+ ],
21
+ exports: [
22
+ ColorFilterComponent
23
+ ]
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvY29sb3ItZmlsdGVyL2NvbG9yLWZpbHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7O0FBY3hELE1BQU0sT0FBTyxpQkFBaUI7OytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFQMUIsb0JBQW9CLGFBSHBCLFVBQVUsYUFNVixvQkFBb0I7Z0hBSVgsaUJBQWlCLFlBWG5CO1lBQ1AsVUFBVTtTQUNYOzRGQVNVLGlCQUFpQjtrQkFaN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsVUFBVTtxQkFDWDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbG9yRmlsdGVyQ29tcG9uZW50fSBmcm9tICcuL2NvbG9yLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ljb25Nb2R1bGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBJY29uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIENvbG9yRmlsdGVyQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb2xvckZpbHRlckNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvckZpbHRlck1vZHVsZSB7XHJcbn1cclxuIl19
@@ -0,0 +1,133 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/settings.service";
4
+ import * as i2 from "../../services/loader.service";
5
+ import * as i3 from "../../services/app-event.service";
6
+ import * as i4 from "../../services/configuring.service";
7
+ import * as i5 from "../progress-bar/progress-bar.component";
8
+ import * as i6 from "../configurator-loader/configurator-loader.component";
9
+ import * as i7 from "../configurator-dialog/configurator-error-dialog.component";
10
+ import * as i8 from "../threedselector/threedselector.component";
11
+ import * as i9 from "@angular/common";
12
+ export class ConfiguratorComponent {
13
+ constructor(settingsService, loaderService, _appEventService, _configuringService) {
14
+ this.settingsService = settingsService;
15
+ this.loaderService = loaderService;
16
+ this._appEventService = _appEventService;
17
+ this._configuringService = _configuringService;
18
+ this.showLoader = false;
19
+ this.showProgressBar = false;
20
+ this.showErrorMessages = true;
21
+ this.outputErrorMessages = true;
22
+ this.canCloseConfigurator = true;
23
+ this.buildResult = new EventEmitter();
24
+ // TODO
25
+ this.isLoading = new EventEmitter();
26
+ // TODO
27
+ this.updateProgressBar = new EventEmitter();
28
+ this.errorMessages = new EventEmitter();
29
+ this.showChange = new EventEmitter();
30
+ this.resultHasErrors = false;
31
+ this.showErrorDiagram = false;
32
+ this._subs = [];
33
+ this._subs.push(this._appEventService.articleNotFound.subscribe((buildResult) => this._handleArticleNotFound(buildResult)));
34
+ }
35
+ showClass() {
36
+ return true;
37
+ }
38
+ ngOnDestroy() {
39
+ this._subs.forEach(sub => sub.unsubscribe());
40
+ }
41
+ handleBuildFinished(result) {
42
+ this.configurationResultObject = result;
43
+ this.buildResult.emit(result);
44
+ if (this.outputErrorMessages && result.errorMessages.length > 0) {
45
+ this.errorMessages.emit(result.errorMessages);
46
+ }
47
+ if (this.showErrorMessages && result.errorMessages.length > 0) {
48
+ this.resultHasErrors = true;
49
+ this.showErrorDiagram = true;
50
+ }
51
+ }
52
+ handleShowChange(show) {
53
+ this._configuringService.isConfiguring = show;
54
+ this.showChange.emit(show);
55
+ }
56
+ handleCloseErrorDialog() {
57
+ this.showErrorDiagram = false;
58
+ }
59
+ _handleArticleNotFound(result) {
60
+ if (result) {
61
+ this.configurationResultObject = result;
62
+ if (this.outputErrorMessages && result.errorMessages.length > 0) {
63
+ this.errorMessages.emit(result.errorMessages);
64
+ }
65
+ if (this.showErrorMessages && result.errorMessages.length > 0) {
66
+ this.resultHasErrors = true;
67
+ this.showErrorDiagram = true;
68
+ }
69
+ }
70
+ }
71
+ }
72
+ ConfiguratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorComponent, deps: [{ token: i1.SettingsService }, { token: i2.LoaderService }, { token: i3.AppEventService }, { token: i4.ConfiguringService }], target: i0.ɵɵFactoryTarget.Component });
73
+ ConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ConfiguratorComponent, selector: "co-configurator", inputs: { showLoader: "showLoader", showProgressBar: "showProgressBar", showErrorMessages: "showErrorMessages", outputErrorMessages: "outputErrorMessages", canCloseConfigurator: "canCloseConfigurator" }, outputs: { buildResult: "buildResult", isLoading: "isLoading", updateProgressBar: "updateProgressBar", errorMessages: "errorMessages", showChange: "showChange" }, host: { properties: { "class.co-configurator": "this.showClass" } }, ngImport: i0, template: `
74
+ <co-progress-bar *ngIf="showProgressBar"></co-progress-bar>
75
+ <co-configurator-loader *ngIf="showLoader" [show]="loaderService.showLoader"></co-configurator-loader>
76
+ <co-configurator-error-dialog
77
+ *ngIf="showErrorMessages && resultHasErrors && showErrorDiagram"
78
+ [errorMessages]="configurationResultObject.errorMessages"
79
+ (closeErrorDialoag)="handleCloseErrorDialog()"
80
+ ></co-configurator-error-dialog>
81
+
82
+ <co-threedselector
83
+ [canCloseConfigurator]="canCloseConfigurator"
84
+ (buildFinished)="handleBuildFinished($event)"
85
+ (showChange)="handleShowChange($event)">
86
+ </co-threedselector>
87
+ `, isInline: true, components: [{ type: i5.ProgressBarComponent, selector: "co-progress-bar" }, { type: i6.ConfiguratorLoaderComponent, selector: "co-configurator-loader", inputs: ["show"] }, { type: i7.ConfiguratorErrorDialogComponent, selector: "co-configurator-error-dialog", inputs: ["errorMessages"], outputs: ["closeErrorDialoag"] }, { type: i8.ThreedselectorComponent, selector: "co-threedselector", inputs: ["selections", "canCloseConfigurator"], outputs: ["customizeButtonClicked", "buildFinished", "showChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorComponent, decorators: [{
89
+ type: Component,
90
+ args: [{
91
+ selector: 'co-configurator',
92
+ template: `
93
+ <co-progress-bar *ngIf="showProgressBar"></co-progress-bar>
94
+ <co-configurator-loader *ngIf="showLoader" [show]="loaderService.showLoader"></co-configurator-loader>
95
+ <co-configurator-error-dialog
96
+ *ngIf="showErrorMessages && resultHasErrors && showErrorDiagram"
97
+ [errorMessages]="configurationResultObject.errorMessages"
98
+ (closeErrorDialoag)="handleCloseErrorDialog()"
99
+ ></co-configurator-error-dialog>
100
+
101
+ <co-threedselector
102
+ [canCloseConfigurator]="canCloseConfigurator"
103
+ (buildFinished)="handleBuildFinished($event)"
104
+ (showChange)="handleShowChange($event)">
105
+ </co-threedselector>
106
+ `,
107
+ encapsulation: ViewEncapsulation.None
108
+ }]
109
+ }], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i2.LoaderService }, { type: i3.AppEventService }, { type: i4.ConfiguringService }]; }, propDecorators: { showClass: [{
110
+ type: HostBinding,
111
+ args: ['class.co-configurator']
112
+ }], showLoader: [{
113
+ type: Input
114
+ }], showProgressBar: [{
115
+ type: Input
116
+ }], showErrorMessages: [{
117
+ type: Input
118
+ }], outputErrorMessages: [{
119
+ type: Input
120
+ }], canCloseConfigurator: [{
121
+ type: Input
122
+ }], buildResult: [{
123
+ type: Output
124
+ }], isLoading: [{
125
+ type: Output
126
+ }], updateProgressBar: [{
127
+ type: Output
128
+ }], errorMessages: [{
129
+ type: Output
130
+ }], showChange: [{
131
+ type: Output
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdG9yL2NvbmZpZ3VyYXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7O0FBOEJoSCxNQUFNLE9BQU8scUJBQXFCO0lBMkNoQyxZQUNTLGVBQWdDLEVBQ2hDLGFBQTRCLEVBQzNCLGdCQUFpQyxFQUNqQyxtQkFBdUM7UUFIeEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQXhDMUMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUdqQyxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFHbEMsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBR3BDLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUdyQyxnQkFBVyxHQUE0QyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUU1RyxPQUFPO1FBRUEsY0FBUyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3RFLE9BQU87UUFFQSxzQkFBaUIsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUd2RSxrQkFBYSxHQUE2QyxJQUFJLFlBQVksRUFBOEIsQ0FBQztRQUd6RyxlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFaEUsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQVksS0FBSyxD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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1NjZW5lfSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvblJlc3VsdE9iamVjdH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlndXJhdGlvbi1yZXN1bHQtb2JqZWN0JztcclxuaW1wb3J0IHtMb2FkZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yRXJyb3JNZXNzYWdlfSBmcm9tICcuLi8uLi9tb2RlbC9jb25maWd1cmF0b3ItZXJyb3ItbWVzc2FnZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtBcHBFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlndXJpbmcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWNvbmZpZ3VyYXRvcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1wcm9ncmVzcy1iYXIgKm5nSWY9XCJzaG93UHJvZ3Jlc3NCYXJcIj48L2NvLXByb2dyZXNzLWJhcj5cclxuICAgIDxjby1jb25maWd1cmF0b3ItbG9hZGVyICpuZ0lmPVwic2hvd0xvYWRlclwiIFtzaG93XT1cImxvYWRlclNlcnZpY2Uuc2hvd0xvYWRlclwiPjwvY28tY29uZmlndXJhdG9yLWxvYWRlcj5cclxuICAgIDxjby1jb25maWd1cmF0b3ItZXJyb3ItZGlhbG9nXHJcbiAgICAgICpuZ0lmPVwic2hvd0Vycm9yTWVzc2FnZXMgJiYgcmVzdWx0SGFzRXJyb3JzICYmIHNob3dFcnJvckRpYWdyYW1cIlxyXG4gICAgICBbZXJyb3JNZXNzYWdlc109XCJjb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0LmVycm9yTWVzc2FnZXNcIlxyXG4gICAgICAoY2xvc2VFcnJvckRpYWxvYWcpPVwiaGFuZGxlQ2xvc2VFcnJvckRpYWxvZygpXCJcclxuICAgID48L2NvLWNvbmZpZ3VyYXRvci1lcnJvci1kaWFsb2c+XHJcblxyXG4gICAgPGNvLXRocmVlZHNlbGVjdG9yXHJcbiAgICAgIFtjYW5DbG9zZUNvbmZpZ3VyYXRvcl09XCJjYW5DbG9zZUNvbmZpZ3VyYXRvclwiXHJcbiAgICAgIChidWlsZEZpbmlzaGVkKT1cImhhbmRsZUJ1aWxkRmluaXNoZWQoJGV2ZW50KVwiXHJcbiAgICAgIChzaG93Q2hhbmdlKT1cImhhbmRsZVNob3dDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPC9jby10aHJlZWRzZWxlY3Rvcj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tY29uZmlndXJhdG9yJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dQcm9ncmVzc0JhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93RXJyb3JNZXNzYWdlczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG91dHB1dEVycm9yTWVzc2FnZXM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYW5DbG9zZUNvbmZpZ3VyYXRvcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBidWlsZFJlc3VsdDogRXZlbnRFbWl0dGVyPENvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0PigpO1xyXG5cclxuICAvLyBUT0RPXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGlzTG9hZGluZzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIC8vIFRPRE9cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdXBkYXRlUHJvZ3Jlc3NCYXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEV2ZW50RW1pdHRlcjxDb25maWd1cmF0b3JFcnJvck1lc3NhZ2VbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpZ3VyYXRvckVycm9yTWVzc2FnZVtdPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2hvd0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwdWJsaWMgcmVzdWx0SGFzRXJyb3JzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dFcnJvckRpYWdyYW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY29uZmlndXJhdGlvblJlc3VsdE9iamVjdDogQ29uZmlndXJhdGlvblJlc3VsdE9iamVjdDtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgbG9hZGVyU2VydmljZTogTG9hZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FwcEV2ZW50U2VydmljZTogQXBwRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJpbmdTZXJ2aWNlOiBDb25maWd1cmluZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLmFydGljbGVOb3RGb3VuZC5zdWJzY3JpYmUoKGJ1aWxkUmVzdWx0OiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0KSA9PiB0aGlzLl9oYW5kbGVBcnRpY2xlTm90Rm91bmQoYnVpbGRSZXN1bHQpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJ1aWxkRmluaXNoZWQocmVzdWx0OiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0KTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25SZXN1bHRPYmplY3QgPSByZXN1bHQ7XHJcbiAgICB0aGlzLmJ1aWxkUmVzdWx0LmVtaXQocmVzdWx0KTtcclxuXHJcbiAgICBpZiAodGhpcy5vdXRwdXRFcnJvck1lc3NhZ2VzICYmIHJlc3VsdC5lcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLmVtaXQocmVzdWx0LmVycm9yTWVzc2FnZXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hvd0Vycm9yTWVzc2FnZXMgJiYgcmVzdWx0LmVycm9yTWVzc2FnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnJlc3VsdEhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd0Vycm9yRGlhZ3JhbSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd0NoYW5nZShzaG93OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWd1cmluZ1NlcnZpY2UuaXNDb25maWd1cmluZyA9IHNob3c7XHJcbiAgICB0aGlzLnNob3dDaGFuZ2UuZW1pdChzaG93KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDbG9zZUVycm9yRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RXJyb3JEaWFncmFtID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVBcnRpY2xlTm90Rm91bmQocmVzdWx0OiBDb25maWd1cmF0aW9uUmVzdWx0T2JqZWN0KTogdm9pZCB7XHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvblJlc3VsdE9iamVjdCA9IHJlc3VsdDtcclxuICAgICAgaWYgKHRoaXMub3V0cHV0RXJyb3JNZXNzYWdlcyAmJiByZXN1bHQuZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLmVtaXQocmVzdWx0LmVycm9yTWVzc2FnZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvck1lc3NhZ2VzICYmIHJlc3VsdC5lcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJlc3VsdEhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93RXJyb3JEaWFncmFtID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { ConfiguratorComponent } from './configurator.component';
4
+ import { ProgressBarModule } from '../progress-bar/progress-bar.module';
5
+ import { ConfiguratorLoaderModule } from '../configurator-loader/configurator-loader.module';
6
+ import { ConfiguratorDialogModule } from '../configurator-dialog/configurator-dialog.module';
7
+ import { ThreedselectorModule } from '../threedselector/threedselector.module';
8
+ import * as i0 from "@angular/core";
9
+ export class ConfiguratorModule {
10
+ }
11
+ ConfiguratorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ ConfiguratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorModule, declarations: [ConfiguratorComponent], imports: [CommonModule,
13
+ ProgressBarModule,
14
+ ConfiguratorLoaderModule,
15
+ ConfiguratorDialogModule,
16
+ ThreedselectorModule], exports: [ConfiguratorComponent] });
17
+ ConfiguratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorModule, imports: [[
18
+ CommonModule,
19
+ ProgressBarModule,
20
+ ConfiguratorLoaderModule,
21
+ ConfiguratorDialogModule,
22
+ ThreedselectorModule
23
+ ]] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorModule, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ imports: [
28
+ CommonModule,
29
+ ProgressBarModule,
30
+ ConfiguratorLoaderModule,
31
+ ConfiguratorDialogModule,
32
+ ThreedselectorModule
33
+ ],
34
+ declarations: [
35
+ ConfiguratorComponent
36
+ ],
37
+ exports: [
38
+ ConfiguratorComponent
39
+ ]
40
+ }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdG9yL2NvbmZpZ3VyYXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seUNBQXlDLENBQUM7O0FBaUI3RSxNQUFNLE9BQU8sa0JBQWtCOztnSEFBbEIsa0JBQWtCO2lIQUFsQixrQkFBa0IsaUJBTjNCLHFCQUFxQixhQVByQixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsb0JBQW9CLGFBTXBCLHFCQUFxQjtpSEFHWixrQkFBa0IsWUFkcEI7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsb0JBQW9CO1NBQ3JCOzRGQVFVLGtCQUFrQjtrQkFmOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixvQkFBb0I7cUJBQ3JCO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb21wb25lbnR9IGZyb20gJy4vY29uZmlndXJhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UHJvZ3Jlc3NCYXJNb2R1bGV9IGZyb20gJy4uL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIubW9kdWxlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JMb2FkZXJNb2R1bGV9IGZyb20gJy4uL2NvbmZpZ3VyYXRvci1sb2FkZXIvY29uZmlndXJhdG9yLWxvYWRlci5tb2R1bGUnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRvckRpYWxvZ01vZHVsZX0gZnJvbSAnLi4vY29uZmlndXJhdG9yLWRpYWxvZy9jb25maWd1cmF0b3ItZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7VGhyZWVkc2VsZWN0b3JNb2R1bGV9IGZyb20gJy4uL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gICAgQ29uZmlndXJhdG9yTG9hZGVyTW9kdWxlLFxyXG4gICAgQ29uZmlndXJhdG9yRGlhbG9nTW9kdWxlLFxyXG4gICAgVGhyZWVkc2VsZWN0b3JNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQ29uZmlndXJhdG9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb25maWd1cmF0b3JDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0b3JNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,222 @@
1
+ import { Component, EventEmitter, HostBinding, Output, ViewEncapsulation } from '@angular/core';
2
+ import { IconEnum } from '../../enum/icon.enum';
3
+ import { CameraSettings } from '../../model/camera-settings';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/icon-cache.service";
6
+ import * as i2 from "../../services/camera.service";
7
+ import * as i3 from "../../services/dynamic-camera.service";
8
+ import * as i4 from "../../services/configurator-connector.service";
9
+ import * as i5 from "@colijnit/corecomponents_v12";
10
+ import * as i6 from "@angular/forms";
11
+ import * as i7 from "../../pipes/localize.pipe";
12
+ export class ConfiguratorCameraSettingsComponent {
13
+ constructor(iconService, _cameraService, _dynamicCameraService, _configuratorConnectorService) {
14
+ this.iconService = iconService;
15
+ this._cameraService = _cameraService;
16
+ this._dynamicCameraService = _dynamicCameraService;
17
+ this._configuratorConnectorService = _configuratorConnectorService;
18
+ this.icons = IconEnum;
19
+ this.closeCameraDialog = new EventEmitter();
20
+ this.tempCameraSettings = new CameraSettings();
21
+ }
22
+ ngOnInit() {
23
+ if (this._dynamicCameraService.currentCameraSettings) {
24
+ Object.assign(this.tempCameraSettings, this._dynamicCameraService.getCameraSettings());
25
+ }
26
+ this.currentSku = this._configuratorConnectorService.sku;
27
+ this._parsePositionAndRotation();
28
+ }
29
+ onClose() {
30
+ this.closeCameraDialog.emit();
31
+ }
32
+ saveSettings(asDefault) {
33
+ this._dynamicCameraService.saveSettingsToCurrentSettings(this.tempCameraSettings, asDefault);
34
+ this._dynamicCameraService.loadCustomCameraSettings();
35
+ this._parsePositionAndRotation();
36
+ }
37
+ exportSettings() {
38
+ this._dynamicCameraService.exportCameraSettings();
39
+ }
40
+ saveCurrentPosition() {
41
+ this.tempCameraSettings.position = this._cameraService.camera.position;
42
+ this._parsePositionAndRotation();
43
+ }
44
+ saveCurrentRotation() {
45
+ this.tempCameraSettings.rotation.x = this._cameraService.camera.rotation.x;
46
+ this.tempCameraSettings.rotation.y = this._cameraService.camera.rotation.y;
47
+ this.tempCameraSettings.rotation.z = this._cameraService.camera.rotation.z;
48
+ this._parsePositionAndRotation();
49
+ }
50
+ _parsePositionAndRotation() {
51
+ this.positionAsString = `
52
+ x: ${this.tempCameraSettings.position.x.toFixed(2)}
53
+ y: ${this.tempCameraSettings.position.y.toFixed(2)}
54
+ z: ${this.tempCameraSettings.position.z.toFixed(2)}`;
55
+ this.rotationAsString = `
56
+ x: ${this.tempCameraSettings.rotation.x.toFixed(2)}
57
+ y: ${this.tempCameraSettings.rotation.y.toFixed(2)}
58
+ z: ${this.tempCameraSettings.rotation.z.toFixed(2)}`;
59
+ }
60
+ }
61
+ ConfiguratorCameraSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorCameraSettingsComponent, deps: [{ token: i1.IconCacheService }, { token: i2.CameraService }, { token: i3.DynamicCameraService }, { token: i4.ConfiguratorConnectorService }], target: i0.ɵɵFactoryTarget.Component });
62
+ ConfiguratorCameraSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ConfiguratorCameraSettingsComponent, selector: "co-configurator-camera-settings-dialog", outputs: { closeCameraDialog: "closeCameraDialog" }, host: { properties: { "class.co-configurator-camera-settings-dialog": "this.icons" } }, ngImport: i0, template: `
63
+ <div class="dialog">
64
+ <div class="dialog-header">
65
+ <h2 [textContent]="'CAMERA_SETTINGS' | localize"></h2>
66
+ <button class="close-button" (click)="onClose()">
67
+ <co-icon [iconData]="iconService.getIcon(icons.Cross)"></co-icon>
68
+ </button>
69
+ </div>
70
+ <div class="dialog-body">
71
+
72
+ <div class="camera-setting-option">
73
+ <p [textContent]="'MAX_HORIZONTAL_ORBIT' | localize"></p>
74
+ <input type="number" [(ngModel)]="tempCameraSettings.maxHorizontalOrbit" name="maxHorizontalOrbit">
75
+ </div>
76
+
77
+ <div class="camera-setting-option">
78
+ <p [textContent]="'MIN_HORIZONTAL_ORBIT' | localize"></p>
79
+ <input type="number" [(ngModel)]="tempCameraSettings.minHorizontalOrbit" name="minHorizontalOrbit">
80
+ </div>
81
+
82
+ <div class="camera-setting-option">
83
+ <p [textContent]="'MAX_VERTICAL_ORBIT' | localize"></p>
84
+ <input type="number" [(ngModel)]="tempCameraSettings.maxVerticalOrbit" name="maxVerticalOrbit">
85
+ </div>
86
+
87
+ <div class="camera-setting-option">
88
+ <p [textContent]="'MIN_VERTICAL_ORBIT' | localize"></p>
89
+ <input type="number" [(ngModel)]="tempCameraSettings.minVerticalOrbit" name="minVerticalOrbit">
90
+ </div>
91
+
92
+ <div class="camera-setting-option">
93
+ <p [textContent]="'MAX_ZOOM_DISTANCE' | localize"></p>
94
+ <input type="number" [(ngModel)]="tempCameraSettings.maxZoomDistance" name="maxZoomDistance">
95
+ </div>
96
+
97
+ <div class="camera-setting-option">
98
+ <p [textContent]="'MIN_ZOOM_DISTANCE' | localize"></p>
99
+ <input type="number" [(ngModel)]="tempCameraSettings.minZoomDistance" name="minZoomDistance">
100
+ </div>
101
+
102
+ <div class="input-button-wrapper">
103
+ <div class="camera-setting-option">
104
+ <p [textContent]="'SAVED_POSITION' | localize"></p>
105
+ <input [disabled]="true" [ngModel]="positionAsString" name="position">
106
+ </div>
107
+ <button class="save-option-button" aria-label="Save Position" (click)="saveCurrentPosition()">
108
+ <co-icon [iconData]="iconService.getIcon(icons.Check)"></co-icon>
109
+ </button>
110
+ </div>
111
+
112
+ <div class="input-button-wrapper">
113
+ <div class="camera-setting-option">
114
+ <p [textContent]="'SAVED_ROTATION' | localize"></p>
115
+ <input [disabled]="true" [(ngModel)]="rotationAsString" name="rotation">
116
+ </div>
117
+ <button class="save-option-button" aria-label="Save Rotation" (click)="saveCurrentRotation()">
118
+ <co-icon [iconData]="iconService.getIcon(icons.Check)"></co-icon>
119
+ </button>
120
+ </div>
121
+
122
+ <div class="camera-setting-option">
123
+ <p [textContent]="'SKU' | localize"></p>
124
+ <input [disabled]="true" [ngModel]="currentSku" name="sku">
125
+ </div>
126
+ </div>
127
+
128
+
129
+ <div class="action-buttons">
130
+ <button (click)="saveSettings(true)" [textContent]="'SAVE_AS_DEFAULT' | localize"></button>
131
+ <button (click)="saveSettings(false)" [textContent]="'SAVE_FOR_SKU' | localize"></button>
132
+ <button (click)="exportSettings()" [textContent]="'EXPORT_SETTINGS' | localize"></button>
133
+ </div>
134
+ </div>
135
+ `, isInline: true, components: [{ type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], directives: [{ type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "localize": i7.LocalizePipe }, encapsulation: i0.ViewEncapsulation.None });
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfiguratorCameraSettingsComponent, decorators: [{
137
+ type: Component,
138
+ args: [{
139
+ selector: 'co-configurator-camera-settings-dialog',
140
+ template: `
141
+ <div class="dialog">
142
+ <div class="dialog-header">
143
+ <h2 [textContent]="'CAMERA_SETTINGS' | localize"></h2>
144
+ <button class="close-button" (click)="onClose()">
145
+ <co-icon [iconData]="iconService.getIcon(icons.Cross)"></co-icon>
146
+ </button>
147
+ </div>
148
+ <div class="dialog-body">
149
+
150
+ <div class="camera-setting-option">
151
+ <p [textContent]="'MAX_HORIZONTAL_ORBIT' | localize"></p>
152
+ <input type="number" [(ngModel)]="tempCameraSettings.maxHorizontalOrbit" name="maxHorizontalOrbit">
153
+ </div>
154
+
155
+ <div class="camera-setting-option">
156
+ <p [textContent]="'MIN_HORIZONTAL_ORBIT' | localize"></p>
157
+ <input type="number" [(ngModel)]="tempCameraSettings.minHorizontalOrbit" name="minHorizontalOrbit">
158
+ </div>
159
+
160
+ <div class="camera-setting-option">
161
+ <p [textContent]="'MAX_VERTICAL_ORBIT' | localize"></p>
162
+ <input type="number" [(ngModel)]="tempCameraSettings.maxVerticalOrbit" name="maxVerticalOrbit">
163
+ </div>
164
+
165
+ <div class="camera-setting-option">
166
+ <p [textContent]="'MIN_VERTICAL_ORBIT' | localize"></p>
167
+ <input type="number" [(ngModel)]="tempCameraSettings.minVerticalOrbit" name="minVerticalOrbit">
168
+ </div>
169
+
170
+ <div class="camera-setting-option">
171
+ <p [textContent]="'MAX_ZOOM_DISTANCE' | localize"></p>
172
+ <input type="number" [(ngModel)]="tempCameraSettings.maxZoomDistance" name="maxZoomDistance">
173
+ </div>
174
+
175
+ <div class="camera-setting-option">
176
+ <p [textContent]="'MIN_ZOOM_DISTANCE' | localize"></p>
177
+ <input type="number" [(ngModel)]="tempCameraSettings.minZoomDistance" name="minZoomDistance">
178
+ </div>
179
+
180
+ <div class="input-button-wrapper">
181
+ <div class="camera-setting-option">
182
+ <p [textContent]="'SAVED_POSITION' | localize"></p>
183
+ <input [disabled]="true" [ngModel]="positionAsString" name="position">
184
+ </div>
185
+ <button class="save-option-button" aria-label="Save Position" (click)="saveCurrentPosition()">
186
+ <co-icon [iconData]="iconService.getIcon(icons.Check)"></co-icon>
187
+ </button>
188
+ </div>
189
+
190
+ <div class="input-button-wrapper">
191
+ <div class="camera-setting-option">
192
+ <p [textContent]="'SAVED_ROTATION' | localize"></p>
193
+ <input [disabled]="true" [(ngModel)]="rotationAsString" name="rotation">
194
+ </div>
195
+ <button class="save-option-button" aria-label="Save Rotation" (click)="saveCurrentRotation()">
196
+ <co-icon [iconData]="iconService.getIcon(icons.Check)"></co-icon>
197
+ </button>
198
+ </div>
199
+
200
+ <div class="camera-setting-option">
201
+ <p [textContent]="'SKU' | localize"></p>
202
+ <input [disabled]="true" [ngModel]="currentSku" name="sku">
203
+ </div>
204
+ </div>
205
+
206
+
207
+ <div class="action-buttons">
208
+ <button (click)="saveSettings(true)" [textContent]="'SAVE_AS_DEFAULT' | localize"></button>
209
+ <button (click)="saveSettings(false)" [textContent]="'SAVE_FOR_SKU' | localize"></button>
210
+ <button (click)="exportSettings()" [textContent]="'EXPORT_SETTINGS' | localize"></button>
211
+ </div>
212
+ </div>
213
+ `,
214
+ encapsulation: ViewEncapsulation.None
215
+ }]
216
+ }], ctorParameters: function () { return [{ type: i1.IconCacheService }, { type: i2.CameraService }, { type: i3.DynamicCameraService }, { type: i4.ConfiguratorConnectorService }]; }, propDecorators: { icons: [{
217
+ type: HostBinding,
218
+ args: ['class.co-configurator-camera-settings-dialog']
219
+ }], closeCameraDialog: [{
220
+ type: Output
221
+ }] } });
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdG9yLWNhbWVyYS1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25maWd1cmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRvci1kaWFsb2cvY29uZmlndXJhdG9yLWNhbWVyYS1zZXR0aW5ncy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7QUFvRjNELE1BQU0sT0FBTyxtQ0FBbUM7SUFhOUMsWUFDUyxXQUE2QixFQUM1QixjQUE2QixFQUM3QixxQkFBMkMsRUFDM0MsNkJBQTREO1FBSDdELGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7UUFkdEQsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUcxQixzQkFBaUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVqRSx1QkFBa0IsR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQVdqRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixFQUFFO1lBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7U0FDeEY7UUFDRCxJQUFJLENBQUMsVUFBVSxH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bWl0dGVyLCBIb3N0QmluZGluZywgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25FbnVtfSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7Q2FtZXJhU2V0dGluZ3N9IGZyb20gJy4uLy4uL21vZGVsL2NhbWVyYS1zZXR0aW5ncyc7XHJcbmltcG9ydCB7Q2FtZXJhU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FtZXJhLnNlcnZpY2UnO1xyXG5pbXBvcnQge0R5bmFtaWNDYW1lcmFTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9keW5hbWljLWNhbWVyYS5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1jb25maWd1cmF0b3ItY2FtZXJhLXNldHRpbmdzLWRpYWxvZycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cclxuICAgICAgICA8aDIgW3RleHRDb250ZW50XT1cIidDQU1FUkFfU0VUVElOR1MnIHwgbG9jYWxpemVcIj48L2gyPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zcylcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWJvZHlcIj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FtZXJhLXNldHRpbmctb3B0aW9uXCI+XHJcbiAgICAgICAgICA8cCBbdGV4dENvbnRlbnRdPVwiJ01BWF9IT1JJWk9OVEFMX09SQklUJyB8IGxvY2FsaXplXCI+PC9wPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInRlbXBDYW1lcmFTZXR0aW5ncy5tYXhIb3Jpem9udGFsT3JiaXRcIiBuYW1lPVwibWF4SG9yaXpvbnRhbE9yYml0XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtc2V0dGluZy1vcHRpb25cIj5cclxuICAgICAgICAgIDxwIFt0ZXh0Q29udGVudF09XCInTUlOX0hPUklaT05UQUxfT1JCSVQnIHwgbG9jYWxpemVcIj48L3A+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwidGVtcENhbWVyYVNldHRpbmdzLm1pbkhvcml6b250YWxPcmJpdFwiIG5hbWU9XCJtaW5Ib3Jpem9udGFsT3JiaXRcIj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbWVyYS1zZXR0aW5nLW9wdGlvblwiPlxyXG4gICAgICAgICAgPHAgW3RleHRDb250ZW50XT1cIidNQVhfVkVSVElDQUxfT1JCSVQnIHwgbG9jYWxpemVcIj48L3A+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwidGVtcENhbWVyYVNldHRpbmdzLm1heFZlcnRpY2FsT3JiaXRcIiBuYW1lPVwibWF4VmVydGljYWxPcmJpdFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FtZXJhLXNldHRpbmctb3B0aW9uXCI+XHJcbiAgICAgICAgICA8cCBbdGV4dENvbnRlbnRdPVwiJ01JTl9WRVJUSUNBTF9PUkJJVCcgfCBsb2NhbGl6ZVwiPjwvcD5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJ0ZW1wQ2FtZXJhU2V0dGluZ3MubWluVmVydGljYWxPcmJpdFwiIG5hbWU9XCJtaW5WZXJ0aWNhbE9yYml0XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtc2V0dGluZy1vcHRpb25cIj5cclxuICAgICAgICAgIDxwIFt0ZXh0Q29udGVudF09XCInTUFYX1pPT01fRElTVEFOQ0UnIHwgbG9jYWxpemVcIj48L3A+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwidGVtcENhbWVyYVNldHRpbmdzLm1heFpvb21EaXN0YW5jZVwiIG5hbWU9XCJtYXhab29tRGlzdGFuY2VcIj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbWVyYS1zZXR0aW5nLW9wdGlvblwiPlxyXG4gICAgICAgICAgPHAgW3RleHRDb250ZW50XT1cIidNSU5fWk9PTV9ESVNUQU5DRScgfCBsb2NhbGl6ZVwiPjwvcD5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJ0ZW1wQ2FtZXJhU2V0dGluZ3MubWluWm9vbURpc3RhbmNlXCIgbmFtZT1cIm1pblpvb21EaXN0YW5jZVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtc2V0dGluZy1vcHRpb25cIj5cclxuICAgICAgICAgICAgPHAgW3RleHRDb250ZW50XT1cIidTQVZFRF9QT1NJVElPTicgfCBsb2NhbGl6ZVwiPjwvcD5cclxuICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJ0cnVlXCIgW25nTW9kZWxdPVwicG9zaXRpb25Bc1N0cmluZ1wiIG5hbWU9XCJwb3NpdGlvblwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZS1vcHRpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlNhdmUgUG9zaXRpb25cIiAoY2xpY2spPVwic2F2ZUN1cnJlbnRQb3NpdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtc2V0dGluZy1vcHRpb25cIj5cclxuICAgICAgICAgICAgPHAgW3RleHRDb250ZW50XT1cIidTQVZFRF9ST1RBVElPTicgfCBsb2NhbGl6ZVwiPjwvcD5cclxuICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJ0cnVlXCIgWyhuZ01vZGVsKV09XCJyb3RhdGlvbkFzU3RyaW5nXCIgbmFtZT1cInJvdGF0aW9uXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlLW9wdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiU2F2ZSBSb3RhdGlvblwiIChjbGljayk9XCJzYXZlQ3VycmVudFJvdGF0aW9uKClcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2spXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtc2V0dGluZy1vcHRpb25cIj5cclxuICAgICAgICAgIDxwIFt0ZXh0Q29udGVudF09XCInU0tVJyB8IGxvY2FsaXplXCI+PC9wPlxyXG4gICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJ0cnVlXCIgW25nTW9kZWxdPVwiY3VycmVudFNrdVwiIG5hbWU9XCJza3VcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2F2ZVNldHRpbmdzKHRydWUpXCIgW3RleHRDb250ZW50XT1cIidTQVZFX0FTX0RFRkFVTFQnIHwgbG9jYWxpemVcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzYXZlU2V0dGluZ3MoZmFsc2UpXCIgW3RleHRDb250ZW50XT1cIidTQVZFX0ZPUl9TS1UnIHwgbG9jYWxpemVcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJleHBvcnRTZXR0aW5ncygpXCIgW3RleHRDb250ZW50XT1cIidFWFBPUlRfU0VUVElOR1MnIHwgbG9jYWxpemVcIj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG5cclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0b3JDYW1lcmFTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1jb25maWd1cmF0b3ItY2FtZXJhLXNldHRpbmdzLWRpYWxvZycpXHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpY29ucyA9IEljb25FbnVtO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VDYW1lcmFEaWFsb2c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIHRlbXBDYW1lcmFTZXR0aW5nczogQ2FtZXJhU2V0dGluZ3MgPSBuZXcgQ2FtZXJhU2V0dGluZ3MoKTtcclxuICBwdWJsaWMgY3VycmVudFNrdTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwb3NpdGlvbkFzU3RyaW5nOiBzdHJpbmc7XHJcbiAgcHVibGljIHJvdGF0aW9uQXNTdHJpbmc6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jYW1lcmFTZXJ2aWNlOiBDYW1lcmFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHluYW1pY0NhbWVyYVNlcnZpY2U6IER5bmFtaWNDYW1lcmFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZSA6IENvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2R5bmFtaWNDYW1lcmFTZXJ2aWNlLmN1cnJlbnRDYW1lcmFTZXR0aW5ncykge1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMudGVtcENhbWVyYVNldHRpbmdzLCB0aGlzLl9keW5hbWljQ2FtZXJhU2VydmljZS5nZXRDYW1lcmFTZXR0aW5ncygpKTtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFNrdSA9IHRoaXMuX2NvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2Uuc2t1O1xyXG5cclxuICAgIHRoaXMuX3BhcnNlUG9zaXRpb25BbmRSb3RhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsb3NlQ2FtZXJhRGlhbG9nLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlU2V0dGluZ3MoYXNEZWZhdWx0OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9keW5hbWljQ2FtZXJhU2VydmljZS5zYXZlU2V0dGluZ3NUb0N1cnJlbnRTZXR0aW5ncyh0aGlzLnRlbXBDYW1lcmFTZXR0aW5ncywgYXNEZWZhdWx0KTtcclxuICAgIHRoaXMuX2R5bmFtaWNDYW1lcmFTZXJ2aWNlLmxvYWRDdXN0b21DYW1lcmFTZXR0aW5ncygpO1xyXG4gICAgdGhpcy5fcGFyc2VQb3NpdGlvbkFuZFJvdGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwb3J0U2V0dGluZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9keW5hbWljQ2FtZXJhU2VydmljZS5leHBvcnRDYW1lcmFTZXR0aW5ncygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVDdXJyZW50UG9zaXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBDYW1lcmFTZXR0aW5ncy5wb3NpdGlvbiA9IHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhLnBvc2l0aW9uO1xyXG4gICAgdGhpcy5fcGFyc2VQb3NpdGlvbkFuZFJvdGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUN1cnJlbnRSb3RhdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcENhbWVyYVNldHRpbmdzLnJvdGF0aW9uLnggPSB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYS5yb3RhdGlvbi54O1xyXG4gICAgdGhpcy50ZW1wQ2FtZXJhU2V0dGluZ3Mucm90YXRpb24ueSA9IHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhLnJvdGF0aW9uLnk7XHJcbiAgICB0aGlzLnRlbXBDYW1lcmFTZXR0aW5ncy5yb3RhdGlvbi56ID0gdGhpcy5fY2FtZXJhU2VydmljZS5jYW1lcmEucm90YXRpb24uejtcclxuICAgIHRoaXMuX3BhcnNlUG9zaXRpb25BbmRSb3RhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGFyc2VQb3NpdGlvbkFuZFJvdGF0aW9uKCkge1xyXG4gICAgdGhpcy5wb3NpdGlvbkFzU3RyaW5nID0gYFxyXG4gICAgICB4OiAke3RoaXMudGVtcENhbWVyYVNldHRpbmdzLnBvc2l0aW9uLngudG9GaXhlZCgyKX0gXHJcbiAgICAgIHk6ICR7dGhpcy50ZW1wQ2FtZXJhU2V0dGluZ3MucG9zaXRpb24ueS50b0ZpeGVkKDIpfSBcclxuICAgICAgejogJHt0aGlzLnRlbXBDYW1lcmFTZXR0aW5ncy5wb3NpdGlvbi56LnRvRml4ZWQoMil9YDtcclxuXHJcbiAgICB0aGlzLnJvdGF0aW9uQXNTdHJpbmcgPSBgXHJcbiAgICAgIHg6ICR7dGhpcy50ZW1wQ2FtZXJhU2V0dGluZ3Mucm90YXRpb24ueC50b0ZpeGVkKDIpfSBcclxuICAgICAgeTogJHt0aGlzLnRlbXBDYW1lcmFTZXR0aW5ncy5yb3RhdGlvbi55LnRvRml4ZWQoMil9IFxyXG4gICAgICB6OiAke3RoaXMudGVtcENhbWVyYVNldHRpbmdzLnJvdGF0aW9uLnoudG9GaXhlZCgyKX1gO1xyXG4gIH1cclxufVxyXG4iXX0=