@colijnit/configurator 261.1.1 → 261.20.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 (401) hide show
  1. package/{fesm2015/colijnit-configurator.js → fesm2022/colijnit-configurator.mjs} +19087 -18481
  2. package/fesm2022/colijnit-configurator.mjs.map +1 -0
  3. package/index.d.ts +3299 -0
  4. package/lib/components/answer-card/style/_layout.scss +3 -3
  5. package/lib/components/answers-slideout/style/_layout.scss +1 -0
  6. package/lib/style/configurator-globals.scss +1 -21
  7. package/package.json +24 -19
  8. package/bundles/colijnit-configurator.umd.js +0 -20167
  9. package/bundles/colijnit-configurator.umd.js.map +0 -1
  10. package/colijnit-configurator.d.ts +0 -5
  11. package/esm2015/colijnit-configurator.js +0 -5
  12. package/esm2015/lib/builder.js +0 -795
  13. package/esm2015/lib/components/answer-card/answer-card.component.js +0 -313
  14. package/esm2015/lib/components/answer-card/answer-card.module.js +0 -50
  15. package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.component.js +0 -182
  16. package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.module.js +0 -34
  17. package/esm2015/lib/components/answers-slideout/answers-slideout.component.js +0 -490
  18. package/esm2015/lib/components/answers-slideout/answers-slideout.module.js +0 -61
  19. package/esm2015/lib/components/color-filter/color-filter.component.js +0 -59
  20. package/esm2015/lib/components/color-filter/color-filter.module.js +0 -26
  21. package/esm2015/lib/components/configurator/configurator.component.js +0 -133
  22. package/esm2015/lib/components/configurator/configurator.module.js +0 -42
  23. package/esm2015/lib/components/configurator-dialog/configurator-camera-settings.component.js +0 -222
  24. package/esm2015/lib/components/configurator-dialog/configurator-dialog.module.js +0 -48
  25. package/esm2015/lib/components/configurator-dialog/configurator-error-dialog.component.js +0 -82
  26. package/esm2015/lib/components/configurator-dialog/configurator-export-dialog.component.js +0 -163
  27. package/esm2015/lib/components/configurator-loader/configurator-loader.component.js +0 -49
  28. package/esm2015/lib/components/configurator-loader/configurator-loader.module.js +0 -33
  29. package/esm2015/lib/components/configurator-scene/configurator-scene.component.js +0 -60
  30. package/esm2015/lib/components/configurator-scene/configurator-scene.module.js +0 -17
  31. package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.component.js +0 -46
  32. package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.module.js +0 -26
  33. package/esm2015/lib/components/element-buttons/element-buttons.component.js +0 -168
  34. package/esm2015/lib/components/element-buttons/element-buttons.module.js +0 -30
  35. package/esm2015/lib/components/element-toolbar/element-toolbar.component.js +0 -186
  36. package/esm2015/lib/components/element-toolbar/element-toolbar.module.js +0 -34
  37. package/esm2015/lib/components/image-zoom/image-zoom.component.js +0 -61
  38. package/esm2015/lib/components/image-zoom/image-zoom.module.js +0 -30
  39. package/esm2015/lib/components/lite-selector/lite-selector.component.js +0 -206
  40. package/esm2015/lib/components/lite-selector/lite-selector.module.js +0 -34
  41. package/esm2015/lib/components/product-configurator/product-configurator.component.js +0 -184
  42. package/esm2015/lib/components/product-configurator/product-configurator.module.js +0 -72
  43. package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.component.js +0 -237
  44. package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.module.js +0 -38
  45. package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.js +0 -284
  46. package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.js +0 -42
  47. package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.js +0 -72
  48. package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.js +0 -34
  49. package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.js +0 -82
  50. package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.js +0 -30
  51. package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.js +0 -80
  52. package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.js +0 -34
  53. package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.js +0 -93
  54. package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.js +0 -34
  55. package/esm2015/lib/components/progress-bar/progress-bar.component.js +0 -55
  56. package/esm2015/lib/components/progress-bar/progress-bar.module.js +0 -29
  57. package/esm2015/lib/components/scene-options/scene-options.component.js +0 -164
  58. package/esm2015/lib/components/scene-options/scene-options.module.js +0 -38
  59. package/esm2015/lib/components/selections-summary/selections-summary.component.js +0 -163
  60. package/esm2015/lib/components/selections-summary/selections-summary.module.js +0 -45
  61. package/esm2015/lib/components/selections-summary-line/selections-summary-line.component.js +0 -171
  62. package/esm2015/lib/components/selections-summary-line/selections-summary-line.module.js +0 -34
  63. package/esm2015/lib/components/slideout/slideout.component.js +0 -83
  64. package/esm2015/lib/components/slideout/slideout.module.js +0 -17
  65. package/esm2015/lib/components/summary-line/summary-line.component.js +0 -273
  66. package/esm2015/lib/components/summary-line/summary-line.module.js +0 -44
  67. package/esm2015/lib/components/tag-filter/tag-filter.component.js +0 -39
  68. package/esm2015/lib/components/tag-filter/tag-filter.module.js +0 -21
  69. package/esm2015/lib/components/threedselector/threedselector.component.js +0 -155
  70. package/esm2015/lib/components/threedselector/threedselector.module.js +0 -34
  71. package/esm2015/lib/core/helper/variation-helper.js +0 -553
  72. package/esm2015/lib/core/shader/floor-fade.shader.js +0 -33
  73. package/esm2015/lib/core/textures/depth-data-texture.js +0 -19
  74. package/esm2015/lib/directives/directives.module.js +0 -26
  75. package/esm2015/lib/directives/visibility-observer-master.directive.js +0 -53
  76. package/esm2015/lib/directives/visibility-observer.directive.js +0 -54
  77. package/esm2015/lib/enum/ar-feature.enum.js +0 -14
  78. package/esm2015/lib/enum/configuration-key.enum.js +0 -41
  79. package/esm2015/lib/enum/configuration-template.enum.js +0 -6
  80. package/esm2015/lib/enum/device-size-type.js +0 -7
  81. package/esm2015/lib/enum/device-tier.enum.js +0 -7
  82. package/esm2015/lib/enum/icon.enum.js +0 -113
  83. package/esm2015/lib/enum/item-type.enum.js +0 -23
  84. package/esm2015/lib/enum/light.enum.js +0 -9
  85. package/esm2015/lib/enum/navigator-type.enum.js +0 -6
  86. package/esm2015/lib/enum/output-encoding.enum.js +0 -9
  87. package/esm2015/lib/enum/result-type.enum.js +0 -21
  88. package/esm2015/lib/enum/scene-event.enum.js +0 -12
  89. package/esm2015/lib/enum/shadow-map-type.enum.js +0 -8
  90. package/esm2015/lib/enum/texture-type.js +0 -9
  91. package/esm2015/lib/enum/tone-mapping-local.enum.js +0 -12
  92. package/esm2015/lib/enum/view-mode.enum.js +0 -7
  93. package/esm2015/lib/enum/xr-mode.enum.js +0 -6
  94. package/esm2015/lib/environments/environment.js +0 -8
  95. package/esm2015/lib/interfaces/aa-options.interface.js +0 -2
  96. package/esm2015/lib/interfaces/adjustable-element.interface.js +0 -2
  97. package/esm2015/lib/interfaces/ao-options.interface.js +0 -2
  98. package/esm2015/lib/interfaces/changes.interface.js +0 -2
  99. package/esm2015/lib/interfaces/configuration-data.interface.js +0 -2
  100. package/esm2015/lib/interfaces/light-preset.interface.js +0 -2
  101. package/esm2015/lib/interfaces/post-processing-setting.interface.js +0 -2
  102. package/esm2015/lib/interfaces/scene-option-button.interface.js +0 -6
  103. package/esm2015/lib/interfaces/screen-size-info.js +0 -2
  104. package/esm2015/lib/interfaces/setting.interface.js +0 -2
  105. package/esm2015/lib/interfaces/texture.interface.js +0 -2
  106. package/esm2015/lib/interfaces/vignette-options.interface.js +0 -2
  107. package/esm2015/lib/model/ar-position-indicator.js +0 -18
  108. package/esm2015/lib/model/camera-settings.js +0 -14
  109. package/esm2015/lib/model/configuration-result-object.js +0 -6
  110. package/esm2015/lib/model/configurator-error-message.js +0 -9
  111. package/esm2015/lib/model/configurator-settings.js +0 -25
  112. package/esm2015/lib/model/custom-button.js +0 -16
  113. package/esm2015/lib/model/factory.js +0 -28
  114. package/esm2015/lib/model/icon.js +0 -112
  115. package/esm2015/lib/model/intersected-objects.js +0 -7
  116. package/esm2015/lib/model/light-preset.js +0 -73
  117. package/esm2015/lib/model/light-properties.js +0 -45
  118. package/esm2015/lib/model/material.js +0 -11
  119. package/esm2015/lib/model/metadata.js +0 -2
  120. package/esm2015/lib/model/render-parameters.js +0 -16
  121. package/esm2015/lib/model/setting-options.js +0 -71
  122. package/esm2015/lib/model/settings.js +0 -16
  123. package/esm2015/lib/model/shadow-properties.js +0 -10
  124. package/esm2015/lib/model/skin.js +0 -3
  125. package/esm2015/lib/model/texture.js +0 -76
  126. package/esm2015/lib/model/variation-settings.js +0 -54
  127. package/esm2015/lib/model/variation.js +0 -3
  128. package/esm2015/lib/model/xr-reticle.js +0 -79
  129. package/esm2015/lib/modules/render/enum/scene-type.enum.js +0 -6
  130. package/esm2015/lib/modules/render/model/ar-parameters.js +0 -12
  131. package/esm2015/lib/modules/render/model/scene-setting.js +0 -6
  132. package/esm2015/lib/modules/render/model/scene-settings.js +0 -3
  133. package/esm2015/lib/pipes/append.pipe.js +0 -21
  134. package/esm2015/lib/pipes/google-translate.pipe.js +0 -21
  135. package/esm2015/lib/pipes/localize.pipe.js +0 -28
  136. package/esm2015/lib/pipes/pipes.module.js +0 -41
  137. package/esm2015/lib/pipes/prepend.pipe.js +0 -21
  138. package/esm2015/lib/pipes/strip-html.pipe.js +0 -17
  139. package/esm2015/lib/services/app-event.service.js +0 -36
  140. package/esm2015/lib/services/app-initializer.service.js +0 -27
  141. package/esm2015/lib/services/ar.service.js +0 -844
  142. package/esm2015/lib/services/build-furniture-base.service.js +0 -1181
  143. package/esm2015/lib/services/build-furniture-without-scene.service.js +0 -86
  144. package/esm2015/lib/services/build-furniture.service.js +0 -169
  145. package/esm2015/lib/services/bundle-initialzer.service.js +0 -113
  146. package/esm2015/lib/services/camera.service.js +0 -123
  147. package/esm2015/lib/services/configuration.service.js +0 -79
  148. package/esm2015/lib/services/configurator-connector.service.js +0 -830
  149. package/esm2015/lib/services/configurator.service.js +0 -285
  150. package/esm2015/lib/services/configuring.service.js +0 -119
  151. package/esm2015/lib/services/controls.js +0 -799
  152. package/esm2015/lib/services/debug.service.js +0 -43
  153. package/esm2015/lib/services/dictionary.service.js +0 -65
  154. package/esm2015/lib/services/dynamic-camera.service.js +0 -96
  155. package/esm2015/lib/services/floor-plane.service.js +0 -252
  156. package/esm2015/lib/services/font.service.js +0 -27
  157. package/esm2015/lib/services/google-translate.service.js +0 -79
  158. package/esm2015/lib/services/icon-cache.service.js +0 -44
  159. package/esm2015/lib/services/intersection.service.js +0 -47
  160. package/esm2015/lib/services/item.service.js +0 -75
  161. package/esm2015/lib/services/json-utils.service.js +0 -48
  162. package/esm2015/lib/services/light-creation.service.js +0 -35
  163. package/esm2015/lib/services/light-presets.service.js +0 -157
  164. package/esm2015/lib/services/lights.service.js +0 -146
  165. package/esm2015/lib/services/load-furniture-base.service.js +0 -164
  166. package/esm2015/lib/services/load-furniture-without-scene.service.js +0 -45
  167. package/esm2015/lib/services/load-furniture.service.js +0 -72
  168. package/esm2015/lib/services/loader.service.js +0 -32
  169. package/esm2015/lib/services/locator.service.js +0 -11
  170. package/esm2015/lib/services/message-board.service.js +0 -50
  171. package/esm2015/lib/services/post-processing.service.js +0 -378
  172. package/esm2015/lib/services/product-configurator.service.js +0 -16
  173. package/esm2015/lib/services/progress.service.js +0 -20
  174. package/esm2015/lib/services/scene-event.service.js +0 -246
  175. package/esm2015/lib/services/scene-options.service.js +0 -24
  176. package/esm2015/lib/services/scene.service.js +0 -313
  177. package/esm2015/lib/services/screen-size-analysis.service.js +0 -97
  178. package/esm2015/lib/services/settings.service.js +0 -142
  179. package/esm2015/lib/services/switch-build-furniture.service.js +0 -37
  180. package/esm2015/lib/services/switch-load-furniture.service.js +0 -35
  181. package/esm2015/lib/services/threedselector.service.js +0 -72
  182. package/esm2015/lib/services/utils.service.js +0 -207
  183. package/esm2015/lib/services/variation-cache.service.js +0 -143
  184. package/esm2015/lib/services/variation.service.js +0 -490
  185. package/esm2015/lib/services/view-mode.service.js +0 -37
  186. package/esm2015/lib/services/vr.service.js +0 -191
  187. package/esm2015/lib/services/xr.service.js +0 -294
  188. package/esm2015/lib/utils/asset.utils.js +0 -120
  189. package/esm2015/lib/utils/base-utils.js +0 -9
  190. package/esm2015/lib/utils/color.utils.js +0 -30
  191. package/esm2015/lib/utils/debug.utils.js +0 -9
  192. package/esm2015/lib/utils/device.utils.js +0 -25
  193. package/esm2015/lib/utils/file.utils.js +0 -167
  194. package/esm2015/lib/utils/image.utils.js +0 -61
  195. package/esm2015/lib/utils/json-parser.utils.js +0 -180
  196. package/esm2015/lib/utils/material.utils.js +0 -433
  197. package/esm2015/lib/utils/object.utils.js +0 -360
  198. package/esm2015/lib/utils/relative-position.utils.js +0 -75
  199. package/esm2015/lib/utils/rotation-helper.utils.js +0 -15
  200. package/esm2015/lib/utils/scene-3d.utils.js +0 -213
  201. package/esm2015/lib/utils/scene-utils.js +0 -191
  202. package/esm2015/lib/utils/text-utils.js +0 -68
  203. package/esm2015/lib/utils/threed.utils.js +0 -281
  204. package/esm2015/lib/utils/variation-utils.js +0 -459
  205. package/esm2015/public-api.js +0 -65
  206. package/fesm2015/colijnit-configurator.js.map +0 -1
  207. package/lib/builder.d.ts +0 -83
  208. package/lib/components/answer-card/answer-card.component.d.ts +0 -58
  209. package/lib/components/answer-card/answer-card.module.d.ts +0 -11
  210. package/lib/components/answer-info-dialog/answer-info-dialog.component.d.ts +0 -38
  211. package/lib/components/answer-info-dialog/answer-info-dialog.module.d.ts +0 -10
  212. package/lib/components/answers-slideout/answers-slideout.component.d.ts +0 -86
  213. package/lib/components/answers-slideout/answers-slideout.module.d.ts +0 -16
  214. package/lib/components/color-filter/color-filter.component.d.ts +0 -20
  215. package/lib/components/color-filter/color-filter.module.d.ts +0 -8
  216. package/lib/components/configurator/configurator.component.d.ts +0 -37
  217. package/lib/components/configurator/configurator.module.d.ts +0 -12
  218. package/lib/components/configurator-dialog/configurator-camera-settings.component.d.ts +0 -30
  219. package/lib/components/configurator-dialog/configurator-dialog.module.d.ts +0 -13
  220. package/lib/components/configurator-dialog/configurator-error-dialog.component.d.ts +0 -16
  221. package/lib/components/configurator-dialog/configurator-export-dialog.component.d.ts +0 -26
  222. package/lib/components/configurator-loader/configurator-loader.component.d.ts +0 -7
  223. package/lib/components/configurator-loader/configurator-loader.module.d.ts +0 -9
  224. package/lib/components/configurator-scene/configurator-scene.component.d.ts +0 -24
  225. package/lib/components/configurator-scene/configurator-scene.module.d.ts +0 -7
  226. package/lib/components/configurator-scene-loader/configurator-scene-loader.component.d.ts +0 -7
  227. package/lib/components/configurator-scene-loader/configurator-scene-loader.module.d.ts +0 -8
  228. package/lib/components/element-buttons/element-buttons.component.d.ts +0 -32
  229. package/lib/components/element-buttons/element-buttons.module.d.ts +0 -9
  230. package/lib/components/element-toolbar/element-toolbar.component.d.ts +0 -27
  231. package/lib/components/element-toolbar/element-toolbar.module.d.ts +0 -10
  232. package/lib/components/image-zoom/image-zoom.component.d.ts +0 -15
  233. package/lib/components/image-zoom/image-zoom.module.d.ts +0 -9
  234. package/lib/components/lite-selector/lite-selector.component.d.ts +0 -40
  235. package/lib/components/lite-selector/lite-selector.module.d.ts +0 -10
  236. package/lib/components/product-configurator/product-configurator.component.d.ts +0 -50
  237. package/lib/components/product-configurator/product-configurator.module.d.ts +0 -15
  238. package/lib/components/product-configurator-selector/product-configurator-selector.component.d.ts +0 -35
  239. package/lib/components/product-configurator-selector/product-configurator-selector.module.d.ts +0 -11
  240. package/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.d.ts +0 -31
  241. package/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.d.ts +0 -13
  242. package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.d.ts +0 -20
  243. package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.d.ts +0 -10
  244. package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.d.ts +0 -20
  245. package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.d.ts +0 -10
  246. package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.d.ts +0 -21
  247. package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.d.ts +0 -10
  248. package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.d.ts +0 -21
  249. package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.d.ts +0 -10
  250. package/lib/components/progress-bar/progress-bar.component.d.ts +0 -10
  251. package/lib/components/progress-bar/progress-bar.module.d.ts +0 -8
  252. package/lib/components/scene-options/scene-options.component.d.ts +0 -24
  253. package/lib/components/scene-options/scene-options.module.d.ts +0 -11
  254. package/lib/components/selections-summary/selections-summary.component.d.ts +0 -38
  255. package/lib/components/selections-summary/selections-summary.module.d.ts +0 -12
  256. package/lib/components/selections-summary-line/selections-summary-line.component.d.ts +0 -27
  257. package/lib/components/selections-summary-line/selections-summary-line.module.d.ts +0 -10
  258. package/lib/components/slideout/slideout.component.d.ts +0 -22
  259. package/lib/components/slideout/slideout.module.d.ts +0 -7
  260. package/lib/components/summary-line/summary-line.component.d.ts +0 -50
  261. package/lib/components/summary-line/summary-line.module.d.ts +0 -11
  262. package/lib/components/tag-filter/tag-filter.component.d.ts +0 -9
  263. package/lib/components/tag-filter/tag-filter.module.d.ts +0 -7
  264. package/lib/components/threedselector/threedselector.component.d.ts +0 -38
  265. package/lib/components/threedselector/threedselector.module.d.ts +0 -10
  266. package/lib/core/helper/variation-helper.d.ts +0 -25
  267. package/lib/core/shader/floor-fade.shader.d.ts +0 -5
  268. package/lib/core/textures/depth-data-texture.d.ts +0 -5
  269. package/lib/directives/directives.module.d.ts +0 -8
  270. package/lib/directives/visibility-observer-master.directive.d.ts +0 -12
  271. package/lib/directives/visibility-observer.directive.d.ts +0 -16
  272. package/lib/enum/ar-feature.enum.d.ts +0 -12
  273. package/lib/enum/configuration-key.enum.d.ts +0 -39
  274. package/lib/enum/configuration-template.enum.d.ts +0 -4
  275. package/lib/enum/device-size-type.d.ts +0 -5
  276. package/lib/enum/device-tier.enum.d.ts +0 -5
  277. package/lib/enum/icon.enum.d.ts +0 -111
  278. package/lib/enum/item-type.enum.d.ts +0 -21
  279. package/lib/enum/light.enum.d.ts +0 -7
  280. package/lib/enum/navigator-type.enum.d.ts +0 -4
  281. package/lib/enum/output-encoding.enum.d.ts +0 -7
  282. package/lib/enum/result-type.enum.d.ts +0 -19
  283. package/lib/enum/scene-event.enum.d.ts +0 -10
  284. package/lib/enum/shadow-map-type.enum.d.ts +0 -6
  285. package/lib/enum/texture-type.d.ts +0 -7
  286. package/lib/enum/tone-mapping-local.enum.d.ts +0 -10
  287. package/lib/enum/view-mode.enum.d.ts +0 -5
  288. package/lib/enum/xr-mode.enum.d.ts +0 -4
  289. package/lib/environments/environment.d.ts +0 -4
  290. package/lib/interfaces/aa-options.interface.d.ts +0 -4
  291. package/lib/interfaces/adjustable-element.interface.d.ts +0 -5
  292. package/lib/interfaces/ao-options.interface.d.ts +0 -18
  293. package/lib/interfaces/changes.interface.d.ts +0 -9
  294. package/lib/interfaces/configuration-data.interface.d.ts +0 -40
  295. package/lib/interfaces/light-preset.interface.d.ts +0 -22
  296. package/lib/interfaces/post-processing-setting.interface.d.ts +0 -11
  297. package/lib/interfaces/scene-option-button.interface.d.ts +0 -19
  298. package/lib/interfaces/screen-size-info.d.ts +0 -10
  299. package/lib/interfaces/setting.interface.d.ts +0 -8
  300. package/lib/interfaces/texture.interface.d.ts +0 -44
  301. package/lib/interfaces/vignette-options.interface.d.ts +0 -4
  302. package/lib/model/ar-position-indicator.d.ts +0 -4
  303. package/lib/model/camera-settings.d.ts +0 -12
  304. package/lib/model/configuration-result-object.d.ts +0 -30
  305. package/lib/model/configurator-error-message.d.ts +0 -8
  306. package/lib/model/configurator-settings.d.ts +0 -62
  307. package/lib/model/custom-button.d.ts +0 -10
  308. package/lib/model/factory.d.ts +0 -5
  309. package/lib/model/icon.d.ts +0 -4
  310. package/lib/model/intersected-objects.d.ts +0 -6
  311. package/lib/model/light-preset.d.ts +0 -33
  312. package/lib/model/light-properties.d.ts +0 -25
  313. package/lib/model/material.d.ts +0 -41
  314. package/lib/model/metadata.d.ts +0 -78
  315. package/lib/model/render-parameters.d.ts +0 -12
  316. package/lib/model/setting-options.d.ts +0 -67
  317. package/lib/model/settings.d.ts +0 -10
  318. package/lib/model/shadow-properties.d.ts +0 -7
  319. package/lib/model/skin.d.ts +0 -15
  320. package/lib/model/texture.d.ts +0 -52
  321. package/lib/model/variation-settings.d.ts +0 -55
  322. package/lib/model/variation.d.ts +0 -11
  323. package/lib/model/xr-reticle.d.ts +0 -17
  324. package/lib/modules/render/enum/scene-type.enum.d.ts +0 -4
  325. package/lib/modules/render/model/ar-parameters.d.ts +0 -9
  326. package/lib/modules/render/model/scene-setting.d.ts +0 -13
  327. package/lib/modules/render/model/scene-settings.d.ts +0 -4
  328. package/lib/pipes/append.pipe.d.ts +0 -7
  329. package/lib/pipes/google-translate.pipe.d.ts +0 -11
  330. package/lib/pipes/localize.pipe.d.ts +0 -10
  331. package/lib/pipes/pipes.module.d.ts +0 -11
  332. package/lib/pipes/prepend.pipe.d.ts +0 -7
  333. package/lib/pipes/strip-html.pipe.d.ts +0 -7
  334. package/lib/services/app-event.service.d.ts +0 -32
  335. package/lib/services/app-initializer.service.d.ts +0 -14
  336. package/lib/services/ar.service.d.ts +0 -120
  337. package/lib/services/build-furniture-base.service.d.ts +0 -117
  338. package/lib/services/build-furniture-without-scene.service.d.ts +0 -14
  339. package/lib/services/build-furniture.service.d.ts +0 -14
  340. package/lib/services/bundle-initialzer.service.d.ts +0 -45
  341. package/lib/services/camera.service.d.ts +0 -44
  342. package/lib/services/configuration.service.d.ts +0 -18
  343. package/lib/services/configurator-connector.service.d.ts +0 -140
  344. package/lib/services/configurator.service.d.ts +0 -62
  345. package/lib/services/configuring.service.d.ts +0 -46
  346. package/lib/services/controls.d.ts +0 -11
  347. package/lib/services/debug.service.d.ts +0 -16
  348. package/lib/services/dictionary.service.d.ts +0 -15
  349. package/lib/services/dynamic-camera.service.d.ts +0 -21
  350. package/lib/services/floor-plane.service.d.ts +0 -47
  351. package/lib/services/font.service.d.ts +0 -10
  352. package/lib/services/google-translate.service.d.ts +0 -26
  353. package/lib/services/icon-cache.service.d.ts +0 -21
  354. package/lib/services/intersection.service.d.ts +0 -11
  355. package/lib/services/item.service.d.ts +0 -18
  356. package/lib/services/json-utils.service.d.ts +0 -7
  357. package/lib/services/light-creation.service.d.ts +0 -9
  358. package/lib/services/light-presets.service.d.ts +0 -34
  359. package/lib/services/lights.service.d.ts +0 -34
  360. package/lib/services/load-furniture-base.service.d.ts +0 -37
  361. package/lib/services/load-furniture-without-scene.service.d.ts +0 -9
  362. package/lib/services/load-furniture.service.d.ts +0 -9
  363. package/lib/services/loader.service.d.ts +0 -11
  364. package/lib/services/locator.service.d.ts +0 -7
  365. package/lib/services/message-board.service.d.ts +0 -18
  366. package/lib/services/post-processing.service.d.ts +0 -74
  367. package/lib/services/product-configurator.service.d.ts +0 -11
  368. package/lib/services/progress.service.d.ts +0 -9
  369. package/lib/services/scene-event.service.d.ts +0 -72
  370. package/lib/services/scene-options.service.d.ts +0 -11
  371. package/lib/services/scene.service.d.ts +0 -71
  372. package/lib/services/screen-size-analysis.service.d.ts +0 -32
  373. package/lib/services/settings.service.d.ts +0 -24
  374. package/lib/services/switch-build-furniture.service.d.ts +0 -21
  375. package/lib/services/switch-load-furniture.service.d.ts +0 -21
  376. package/lib/services/threedselector.service.d.ts +0 -17
  377. package/lib/services/utils.service.d.ts +0 -24
  378. package/lib/services/variation-cache.service.d.ts +0 -23
  379. package/lib/services/variation.service.d.ts +0 -26
  380. package/lib/services/view-mode.service.d.ts +0 -17
  381. package/lib/services/vr.service.d.ts +0 -42
  382. package/lib/services/xr.service.d.ts +0 -56
  383. package/lib/utils/asset.utils.d.ts +0 -19
  384. package/lib/utils/base-utils.d.ts +0 -4
  385. package/lib/utils/color.utils.d.ts +0 -8
  386. package/lib/utils/debug.utils.d.ts +0 -3
  387. package/lib/utils/device.utils.d.ts +0 -7
  388. package/lib/utils/file.utils.d.ts +0 -30
  389. package/lib/utils/image.utils.d.ts +0 -9
  390. package/lib/utils/json-parser.utils.d.ts +0 -9
  391. package/lib/utils/material.utils.d.ts +0 -34
  392. package/lib/utils/object.utils.d.ts +0 -32
  393. package/lib/utils/relative-position.utils.d.ts +0 -12
  394. package/lib/utils/rotation-helper.utils.d.ts +0 -6
  395. package/lib/utils/scene-3d.utils.d.ts +0 -8
  396. package/lib/utils/scene-utils.d.ts +0 -7
  397. package/lib/utils/text-utils.d.ts +0 -4
  398. package/lib/utils/threed.utils.d.ts +0 -20
  399. package/lib/utils/variation-utils.d.ts +0 -18
  400. package/public-api.d.ts +0 -60
  401. /package/lib/style/{template_variables.scss → _variables.scss} +0 -0
@@ -1,237 +0,0 @@
1
- import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { animate, state, style, transition, trigger } from '@angular/animations';
3
- import { ConfigurationDisplayOption } from '@colijnit/configuratorapi/build/enum/refcode/configuration-display-option.enum';
4
- import { IconEnum } from '../../enum/icon.enum';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/configurator-connector.service";
7
- import * as i2 from "../../services/settings.service";
8
- import * as i3 from "../../services/icon-cache.service";
9
- import * as i4 from "@colijnit/corecomponents_v12";
10
- import * as i5 from "../product-configurator-selector-option/product-configurator-selector-option.component";
11
- import * as i6 from "@angular/common";
12
- import * as i7 from "../../pipes/google-translate.pipe";
13
- import * as i8 from "../../pipes/localize.pipe";
14
- export class ProductConfiguratorSelectorComponent {
15
- constructor(configuratorConnectorService, settingsService, iconService) {
16
- this.configuratorConnectorService = configuratorConnectorService;
17
- this.settingsService = settingsService;
18
- this.iconService = iconService;
19
- this.icons = IconEnum;
20
- this.treeLevelIndex = 1;
21
- this.isActive = true;
22
- this.markAsException = false;
23
- this.activate = new EventEmitter();
24
- this.selectionClass = '';
25
- this.listOfChoices = [];
26
- this.activeChildIndex = 0;
27
- }
28
- showClass() {
29
- return true;
30
- }
31
- get hostClasses() {
32
- const classes = [];
33
- classes.push(`treelevel-${this.treeLevelIndex}`);
34
- if (this.treeLevelIndex === 2 && !this.isActive) {
35
- classes.push('hidden');
36
- }
37
- return classes.join(' ');
38
- }
39
- get selectionIndexText() {
40
- return this.selectionIndex + '. ';
41
- }
42
- ngOnInit() {
43
- if (this.selection && this.selection.displayOptionControl == null) {
44
- this.selection.displayOptionControl = ConfigurationDisplayOption.TileLarge;
45
- }
46
- this.selectionClass = 'selection-container-' + this.selection.displayOptionControl;
47
- if (this.lastNodeWithChildren) {
48
- for (const option of this.options) {
49
- if (option.selector) {
50
- this.configuratorConnectorService.getImageForAnswer(option.selector);
51
- this.listOfChoices.push(option.selector);
52
- }
53
- }
54
- }
55
- if (this.markAsException) {
56
- this.showAndScroll();
57
- }
58
- }
59
- showAndScroll() {
60
- setTimeout(() => {
61
- var _a;
62
- (_a = this.exceptionContainer) === null || _a === void 0 ? void 0 : _a.nativeElement.scrollIntoView({ behavior: 'smooth' });
63
- });
64
- }
65
- onSubHeaderClick() {
66
- this.activate.emit();
67
- }
68
- }
69
- ProductConfiguratorSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorComponent, deps: [{ token: i1.ConfiguratorConnectorService }, { token: i2.SettingsService }, { token: i3.IconCacheService }], target: i0.ɵɵFactoryTarget.Component });
70
- ProductConfiguratorSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductConfiguratorSelectorComponent, selector: "co-product-configurator-selector", inputs: { selection: "selection", options: "options", lastNodeWithChildren: "lastNodeWithChildren", selectionIndex: "selectionIndex", treeLevelIndex: "treeLevelIndex", isActive: "isActive", markAsException: "markAsException" }, outputs: { activate: "activate" }, host: { properties: { "class.co-product-configurator-selector": "this.showClass", "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "exceptionContainer", first: true, predicate: ["exceptionContainer"], descendants: true }], ngImport: i0, template: `
71
- <div class="selector-container">
72
- <!--
73
- Based on the threeLevel and the length op options we got a couple of flavours
74
- treeLevel 1 -> article, should not be used here
75
- treeLevel 2 -> 'top' level should be a big and bold heading, when it has options
76
- treeLevel 3 -> title less bold, should be for something like 'fabric groups'
77
- treeLevel 4 -> more like bold text, should be for something like 'the fabric group'
78
- treeLevel 5 -> just text head
79
- -->
80
-
81
- <div class="selector-container-header">
82
- <h2 *ngIf="selection.treeLevel === 2 && options.length > 0" class="selector-option-header">
83
- <span [textContent]="selectionIndexText"></span>
84
- <span [textContent]="selection.nodeText ? selection.nodeText : selection.optionText | googleTranslate | async"></span>
85
- </h2>
86
-
87
- <h3
88
- *ngIf="selection.treeLevel === 3 && options.length > 0"
89
- class="selector-option-sub-header"
90
- [textContent]="selection.nodeText | googleTranslate | async" (click)="onSubHeaderClick()"></h3>
91
-
92
- <p
93
- *ngIf="selection.treeLevel === 4 && options.length > 0"
94
- class="selector-option-bold-text-header"
95
- [textContent]="selection.nodeText | googleTranslate | async"></p>
96
-
97
- <p
98
- *ngIf="selection.treeLevel === 5 && options.length > 0"
99
- class="selector-option-text-header"
100
- [textContent]="selection.nodeText | googleTranslate | async"></p>
101
-
102
-
103
- <span *ngIf="markAsException" class="exception-icon" #exceptionContainer [title]="'CONFIGURATION_EXCEPTION_INFO' | localize">
104
- <co-icon [iconData]="iconService.getIcon(icons.TriangleExclamation)"></co-icon>
105
- </span>
106
- </div>
107
-
108
- <ng-container *ngIf="lastNodeWithChildren">
109
- <co-product-configurator-selector-option
110
- [selection]="selection"
111
- [listOfChoices]="listOfChoices"
112
- [markAsException]="markAsException">
113
- </co-product-configurator-selector-option>
114
- </ng-container>
115
- </div>
116
-
117
- <ng-container *ngIf="!lastNodeWithChildren">
118
- <co-product-configurator-selector
119
- *ngFor="let displaySelection of options let index = index"
120
- [selection]="displaySelection.selector"
121
- [options]="displaySelection.selectorOptions"
122
- [lastNodeWithChildren]="displaySelection.lastNodeWithChildren"
123
- [selectionIndex]="index + 1"
124
- [treeLevelIndex]="treeLevelIndex + 1"
125
- [isActive]="treeLevelIndex !== 1 || index === activeChildIndex"
126
- [markAsException]="displaySelection.markForExceptionNotification"
127
- (activate)="activeChildIndex = index">
128
- </co-product-configurator-selector>
129
- </ng-container>
130
- `, isInline: true, components: [{ type: i4.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: i5.ProductConfiguratorSelectorOptionComponent, selector: "co-product-configurator-selector-option", inputs: ["selection", "listOfChoices", "markAsException"] }, { type: ProductConfiguratorSelectorComponent, selector: "co-product-configurator-selector", inputs: ["selection", "options", "lastNodeWithChildren", "selectionIndex", "treeLevelIndex", "isActive", "markAsException"], outputs: ["activate"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "googleTranslate": i7.GoogleTranslatePipe, "localize": i8.LocalizePipe }, animations: [
131
- trigger('showSelections', [
132
- state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
133
- state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
134
- transition('void <=> *', animate(200))
135
- ])
136
- ], encapsulation: i0.ViewEncapsulation.None });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorComponent, decorators: [{
138
- type: Component,
139
- args: [{
140
- selector: 'co-product-configurator-selector',
141
- template: `
142
- <div class="selector-container">
143
- <!--
144
- Based on the threeLevel and the length op options we got a couple of flavours
145
- treeLevel 1 -> article, should not be used here
146
- treeLevel 2 -> 'top' level should be a big and bold heading, when it has options
147
- treeLevel 3 -> title less bold, should be for something like 'fabric groups'
148
- treeLevel 4 -> more like bold text, should be for something like 'the fabric group'
149
- treeLevel 5 -> just text head
150
- -->
151
-
152
- <div class="selector-container-header">
153
- <h2 *ngIf="selection.treeLevel === 2 && options.length > 0" class="selector-option-header">
154
- <span [textContent]="selectionIndexText"></span>
155
- <span [textContent]="selection.nodeText ? selection.nodeText : selection.optionText | googleTranslate | async"></span>
156
- </h2>
157
-
158
- <h3
159
- *ngIf="selection.treeLevel === 3 && options.length > 0"
160
- class="selector-option-sub-header"
161
- [textContent]="selection.nodeText | googleTranslate | async" (click)="onSubHeaderClick()"></h3>
162
-
163
- <p
164
- *ngIf="selection.treeLevel === 4 && options.length > 0"
165
- class="selector-option-bold-text-header"
166
- [textContent]="selection.nodeText | googleTranslate | async"></p>
167
-
168
- <p
169
- *ngIf="selection.treeLevel === 5 && options.length > 0"
170
- class="selector-option-text-header"
171
- [textContent]="selection.nodeText | googleTranslate | async"></p>
172
-
173
-
174
- <span *ngIf="markAsException" class="exception-icon" #exceptionContainer [title]="'CONFIGURATION_EXCEPTION_INFO' | localize">
175
- <co-icon [iconData]="iconService.getIcon(icons.TriangleExclamation)"></co-icon>
176
- </span>
177
- </div>
178
-
179
- <ng-container *ngIf="lastNodeWithChildren">
180
- <co-product-configurator-selector-option
181
- [selection]="selection"
182
- [listOfChoices]="listOfChoices"
183
- [markAsException]="markAsException">
184
- </co-product-configurator-selector-option>
185
- </ng-container>
186
- </div>
187
-
188
- <ng-container *ngIf="!lastNodeWithChildren">
189
- <co-product-configurator-selector
190
- *ngFor="let displaySelection of options let index = index"
191
- [selection]="displaySelection.selector"
192
- [options]="displaySelection.selectorOptions"
193
- [lastNodeWithChildren]="displaySelection.lastNodeWithChildren"
194
- [selectionIndex]="index + 1"
195
- [treeLevelIndex]="treeLevelIndex + 1"
196
- [isActive]="treeLevelIndex !== 1 || index === activeChildIndex"
197
- [markAsException]="displaySelection.markForExceptionNotification"
198
- (activate)="activeChildIndex = index">
199
- </co-product-configurator-selector>
200
- </ng-container>
201
- `,
202
- encapsulation: ViewEncapsulation.None,
203
- animations: [
204
- trigger('showSelections', [
205
- state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
206
- state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
207
- transition('void <=> *', animate(200))
208
- ])
209
- ]
210
- }]
211
- }], ctorParameters: function () { return [{ type: i1.ConfiguratorConnectorService }, { type: i2.SettingsService }, { type: i3.IconCacheService }]; }, propDecorators: { showClass: [{
212
- type: HostBinding,
213
- args: ['class.co-product-configurator-selector']
214
- }], exceptionContainer: [{
215
- type: ViewChild,
216
- args: ['exceptionContainer']
217
- }], hostClasses: [{
218
- type: HostBinding,
219
- args: ['class']
220
- }], selection: [{
221
- type: Input
222
- }], options: [{
223
- type: Input
224
- }], lastNodeWithChildren: [{
225
- type: Input
226
- }], selectionIndex: [{
227
- type: Input
228
- }], treeLevelIndex: [{
229
- type: Input
230
- }], isActive: [{
231
- type: Input
232
- }], markAsException: [{
233
- type: Input
234
- }], activate: [{
235
- type: Output
236
- }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFLMUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBMEU5QyxNQUFNLE9BQU8sb0NBQW9DO0lBcUQvQyxZQUNTLDRCQUEwRCxFQUMxRCxlQUFnQyxFQUNoQyxXQUE2QjtRQUY3QixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFsRHRCLFVBQUssR0FBb0IsUUFBUSxDQUFDO1FBNEIzQyxtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUduQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2hCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBTXBDLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZ0Is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RTs0QkFDeEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7NEJBQ25FLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUM5RCxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDdkMsQ0FBQztxQkFDSDtpQkFDRjtnTEFHUSxTQUFTO3NCQURmLFdBQVc7dUJBQUMsd0NBQXdDO2dCQVE5QyxrQkFBa0I7c0JBRHhCLFNBQVM7dUJBQUMsb0JBQW9CO2dCQUlwQixXQUFXO3NCQURyQixXQUFXO3VCQUFDLE9BQU87Z0JBV2IsU0FBUztzQkFEZixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7U2VsZWN0b3JTdHJ1Y3R1cmV9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvbW9kZWwvc2VsZWN0b3Itc3RydWN0dXJlLmJvJztcclxuaW1wb3J0IHtDb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbn0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvY29uZmlndXJhdGlvbi1kaXNwbGF5LW9wdGlvbi5lbnVtJztcclxuaW1wb3J0IHtTZWxlY3RvcldpdGhPcHRpb25zfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL3NlbGVjdG9yLXdpdGgtb3B0aW9ucyc7XHJcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0b3ItY29udGFpbmVyXCI+XHJcbiAgICAgIDwhLS1cclxuICAgICAgICBCYXNlZCBvbiB0aGUgdGhyZWVMZXZlbCBhbmQgdGhlIGxlbmd0aCBvcCBvcHRpb25zIHdlIGdvdCBhIGNvdXBsZSBvZiBmbGF2b3Vyc1xyXG4gICAgICAgIHRyZWVMZXZlbCAxIC0+IGFydGljbGUsIHNob3VsZCBub3QgYmUgdXNlZCBoZXJlXHJcbiAgICAgICAgdHJlZUxldmVsIDIgLT4gJ3RvcCcgbGV2ZWwgc2hvdWxkIGJlIGEgYmlnIGFuZCBib2xkIGhlYWRpbmcsIHdoZW4gaXQgaGFzIG9wdGlvbnNcclxuICAgICAgICB0cmVlTGV2ZWwgMyAtPiB0aXRsZSBsZXNzIGJvbGQsIHNob3VsZCBiZSBmb3Igc29tZXRoaW5nIGxpa2UgJ2ZhYnJpYyBncm91cHMnXHJcbiAgICAgICAgdHJlZUxldmVsIDQgLT4gbW9yZSBsaWtlIGJvbGQgdGV4dCwgc2hvdWxkIGJlIGZvciBzb21ldGhpbmcgbGlrZSAndGhlIGZhYnJpYyBncm91cCdcclxuICAgICAgICB0cmVlTGV2ZWwgNSAtPiBqdXN0IHRleHQgaGVhZFxyXG4gICAgICAtLT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rvci1jb250YWluZXItaGVhZGVyXCI+XHJcbiAgICAgICAgPGgyICpuZ0lmPVwic2VsZWN0aW9uLnRyZWVMZXZlbCA9PT0gMiAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cInNlbGVjdG9yLW9wdGlvbi1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb25JbmRleFRleHRcIj48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uLm5vZGVUZXh0ID8gc2VsZWN0aW9uLm5vZGVUZXh0IDogc2VsZWN0aW9uLm9wdGlvblRleHQgfCBnb29nbGVUcmFuc2xhdGUgfCBhc3luY1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2gyPlxyXG5cclxuICAgICAgICA8aDNcclxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uLnRyZWVMZXZlbCA9PT0gMyAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3Rvci1vcHRpb24tc3ViLWhlYWRlclwiXHJcbiAgICAgICAgICBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uLm5vZGVUZXh0IHwgZ29vZ2xlVHJhbnNsYXRlIHwgYXN5bmNcIiAoY2xpY2spPVwib25TdWJIZWFkZXJDbGljaygpXCI+PC9oMz5cclxuXHJcbiAgICAgICAgPHBcclxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uLnRyZWVMZXZlbCA9PT0gNCAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3Rvci1vcHRpb24tYm9sZC10ZXh0LWhlYWRlclwiXHJcbiAgICAgICAgICBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uLm5vZGVUZXh0IHwgZ29vZ2xlVHJhbnNsYXRlIHwgYXN5bmNcIj48L3A+XHJcblxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbi50cmVlTGV2ZWwgPT09IDUgJiYgb3B0aW9ucy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0b3Itb3B0aW9uLXRleHQtaGVhZGVyXCJcclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb24ubm9kZVRleHQgfCBnb29nbGVUcmFuc2xhdGUgfCBhc3luY1wiPjwvcD5cclxuXHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibWFya0FzRXhjZXB0aW9uXCIgY2xhc3M9XCJleGNlcHRpb24taWNvblwiICNleGNlcHRpb25Db250YWluZXIgW3RpdGxlXT1cIidDT05GSUdVUkFUSU9OX0VYQ0VQVElPTl9JTkZPJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmlhbmdsZUV4Y2xhbWF0aW9uKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhc3ROb2RlV2l0aENoaWxkcmVuXCI+XHJcbiAgICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvblxyXG4gICAgICAgICAgW3NlbGVjdGlvbl09XCJzZWxlY3Rpb25cIlxyXG4gICAgICAgICAgW2xpc3RPZkNob2ljZXNdPVwibGlzdE9mQ2hvaWNlc1wiXHJcbiAgICAgICAgICBbbWFya0FzRXhjZXB0aW9uXT1cIm1hcmtBc0V4Y2VwdGlvblwiPlxyXG4gICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdE5vZGVXaXRoQ2hpbGRyZW5cIj5cclxuICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRpc3BsYXlTZWxlY3Rpb24gb2Ygb3B0aW9ucyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgW3NlbGVjdGlvbl09XCJkaXNwbGF5U2VsZWN0aW9uLnNlbGVjdG9yXCJcclxuICAgICAgICBbb3B0aW9uc109XCJkaXNwbGF5U2VsZWN0aW9uLnNlbGVjdG9yT3B0aW9uc1wiXHJcbiAgICAgICAgW2xhc3ROb2RlV2l0aENoaWxkcmVuXT1cImRpc3BsYXlTZWxlY3Rpb24ubGFzdE5vZGVXaXRoQ2hpbGRyZW5cIlxyXG4gICAgICAgIFtzZWxlY3Rpb25JbmRleF09XCJpbmRleCArIDFcIlxyXG4gICAgICAgIFt0cmVlTGV2ZWxJbmRleF09XCJ0cmVlTGV2ZWxJbmRleCArIDFcIlxyXG4gICAgICAgIFtpc0FjdGl2ZV09XCJ0cmVlTGV2ZWxJbmRleCAhPT0gMSB8fCBpbmRleCA9PT0gYWN0aXZlQ2hpbGRJbmRleFwiXHJcbiAgICAgICAgW21hcmtBc0V4Y2VwdGlvbl09XCJkaXNwbGF5U2VsZWN0aW9uLm1hcmtGb3JFeGNlcHRpb25Ob3RpZmljYXRpb25cIlxyXG4gICAgICAgIChhY3RpdmF0ZSk9XCJhY3RpdmVDaGlsZEluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgPC9jby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzaG93U2VsZWN0aW9ucycsIFtcclxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7J3RyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKDEwMCUpJywgb3BhY2l0eTogMH0pKSxcclxuICAgICAgc3RhdGUoJyonLCBzdHlsZSh7J3RyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKDAlKScsIG9wYWNpdHk6IDF9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPD0+IConLCBhbmltYXRlKDIwMCkpXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RDb25maWd1cmF0b3JTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3RvcicpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbkVudW0gPSBJY29uRW51bTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZXhjZXB0aW9uQ29udGFpbmVyJylcclxuICBwdWJsaWMgZXhjZXB0aW9uQ29udGFpbmVyPzogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgcHVibGljIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGNsYXNzZXMucHVzaChgdHJlZWxldmVsLSR7dGhpcy50cmVlTGV2ZWxJbmRleH1gKTtcclxuICAgIGlmICh0aGlzLnRyZWVMZXZlbEluZGV4ID09PSAyICYmICF0aGlzLmlzQWN0aXZlKSB7XHJcbiAgICAgIGNsYXNzZXMucHVzaCgnaGlkZGVuJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdG9yU3RydWN0dXJlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvcHRpb25zOiBTZWxlY3RvcldpdGhPcHRpb25zW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhc3ROb2RlV2l0aENoaWxkcmVuOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3Rpb25JbmRleDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmVlTGV2ZWxJbmRleCA9IDE7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzQWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWFya0FzRXhjZXB0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhY3RpdmF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIGdldCBzZWxlY3Rpb25JbmRleFRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkluZGV4ICsgJy4gJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3Rpb25DbGFzczogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGxpc3RPZkNob2ljZXM6IFNlbGVjdG9yU3RydWN0dXJlW10gPSBbXTtcclxuICBwdWJsaWMgYWN0aXZlQ2hpbGRJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24gJiYgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9IENvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0aW9uQ2xhc3MgPSAnc2VsZWN0aW9uLWNvbnRhaW5lci0nICsgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2w7XHJcbiAgICBpZiAodGhpcy5sYXN0Tm9kZVdpdGhDaGlsZHJlbikge1xyXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgICBpZiAob3B0aW9uLnNlbGVjdG9yKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2UuZ2V0SW1hZ2VGb3JBbnN3ZXIob3B0aW9uLnNlbGVjdG9yKTtcclxuICAgICAgICAgIHRoaXMubGlzdE9mQ2hvaWNlcy5wdXNoKG9wdGlvbi5zZWxlY3Rvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWFya0FzRXhjZXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2hvd0FuZFNjcm9sbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBbmRTY3JvbGwoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5leGNlcHRpb25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiAnc21vb3RoJ30pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TdWJIZWFkZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZhdGUuZW1pdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,38 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { ProductConfiguratorSelectorComponent } from './product-configurator-selector.component';
3
- import { PipesModule } from '../../pipes/pipes.module';
4
- import { CommonModule } from '@angular/common';
5
- import { IconModule } from '@colijnit/corecomponents_v12';
6
- import { ProductConfiguratorSelectorOptionModule } from '../product-configurator-selector-option/product-configurator-selector-option.module';
7
- import * as i0 from "@angular/core";
8
- export class ProductConfiguratorSelectorModule {
9
- }
10
- ProductConfiguratorSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- ProductConfiguratorSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, declarations: [ProductConfiguratorSelectorComponent], imports: [PipesModule,
12
- CommonModule,
13
- IconModule,
14
- ProductConfiguratorSelectorOptionModule], exports: [ProductConfiguratorSelectorComponent] });
15
- ProductConfiguratorSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, imports: [[
16
- PipesModule,
17
- CommonModule,
18
- IconModule,
19
- ProductConfiguratorSelectorOptionModule
20
- ]] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, decorators: [{
22
- type: NgModule,
23
- args: [{
24
- imports: [
25
- PipesModule,
26
- CommonModule,
27
- IconModule,
28
- ProductConfiguratorSelectorOptionModule
29
- ],
30
- declarations: [
31
- ProductConfiguratorSelectorComponent
32
- ],
33
- exports: [
34
- ProductConfiguratorSelectorComponent
35
- ]
36
- }]
37
- }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSxxRkFBcUYsQ0FBQzs7QUFvQjVJLE1BQU0sT0FBTyxpQ0FBaUM7OytIQUFqQyxpQ0FBaUM7Z0lBQWpDLGlDQUFpQyxpQkFSMUMsb0NBQW9DLGFBUHBDLFdBQVc7UUFDWCxZQUFZO1FBQ1osVUFBVTtRQUNWLHVDQUF1QyxhQU92QyxvQ0FBb0M7Z0lBSzNCLGlDQUFpQyxZQWhCbkM7WUFDUCxXQUFXO1lBQ1gsWUFBWTtZQUNaLFVBQVU7WUFDVix1Q0FBdUM7U0FFeEM7NEZBVVUsaUNBQWlDO2tCQWxCN0MsUUFBUTttQkFBQztvQkFFUixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsdUNBQXVDO3FCQUV4QztvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0NBQW9DO3FCQUNyQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0NBQW9DO3FCQUNyQztpQkFFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1Byb2R1Y3RDb25maWd1cmF0b3JTZWxlY3RvckNvbXBvbmVudH0gZnJvbSAnLi9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BpcGVzTW9kdWxlfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtJY29uTW9kdWxlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtQcm9kdWN0Q29uZmlndXJhdG9yU2VsZWN0b3JPcHRpb25Nb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24ubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcblxyXG4gIGltcG9ydHM6IFtcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIFByb2R1Y3RDb25maWd1cmF0b3JTZWxlY3Rvck9wdGlvbk1vZHVsZVxyXG5cclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgUHJvZHVjdENvbmZpZ3VyYXRvclNlbGVjdG9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBQcm9kdWN0Q29uZmlndXJhdG9yU2VsZWN0b3JDb21wb25lbnRcclxuICBdXHJcblxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RDb25maWd1cmF0b3JTZWxlY3Rvck1vZHVsZSB7IH1cclxuIl19
@@ -1,284 +0,0 @@
1
- import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
- import { animate, state, style, transition, trigger } from '@angular/animations';
3
- import { SelectorStructure } from '@colijnit/configuratorapi/build/model/selector-structure.bo';
4
- import { ConfigurationDisplayOption } from '@colijnit/configuratorapi/build/enum/refcode/configuration-display-option.enum';
5
- import { NodeType } from '@colijnit/configuratorapi/build/enum/node-type.enum';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../services/configurator-connector.service";
8
- import * as i2 from "../../services/settings.service";
9
- import * as i3 from "../../services/product-configurator.service";
10
- import * as i4 from "../product-configurator-selector-option-button/product-configurator-selector-option-button.component";
11
- import * as i5 from "../product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component";
12
- import * as i6 from "../product-configurator-selector-option-tile/product-configurator-selector-option-tile.component";
13
- import * as i7 from "../product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component";
14
- import * as i8 from "@angular/common";
15
- import * as i9 from "../../pipes/localize.pipe";
16
- export class ProductConfiguratorSelectorOptionComponent {
17
- constructor(configuratorConnectorService, settingsService, productConfiguratorService) {
18
- this.configuratorConnectorService = configuratorConnectorService;
19
- this.settingsService = settingsService;
20
- this.productConfiguratorService = productConfiguratorService;
21
- this.configurationDisplayOption = ConfigurationDisplayOption;
22
- this.selectionClass = '';
23
- this.showAllTiles = false;
24
- this.maxVisibleTiles = 10;
25
- this.maxVisibleSmallTiles = 24;
26
- this.visibleAnswers = [];
27
- this.remainingTilesCount = 0;
28
- }
29
- showClass() {
30
- return true;
31
- }
32
- ngOnInit() {
33
- if (this.selection && this.selection.displayOptionControl == null) {
34
- this.selection.displayOptionControl = ConfigurationDisplayOption.Tab;
35
- }
36
- if (this.markAsException) {
37
- this.selectionClass = 'selection-exception selection-container-' + this.selection.displayOptionControl;
38
- }
39
- else {
40
- this.selectionClass = 'selection-container-' + this.selection.displayOptionControl;
41
- }
42
- if (this.selection && this.selection.opvTreeNodeHierarchy && this.selection.nodeType === NodeType.Question) {
43
- // When the selection has a opvTreeNodeHierarchy and has nodeType OPT means we need to add a cancel/ skip option.
44
- // This is different from the slide out comp/ selector.
45
- // But we need to make a copy of it, if we do not do that, we are missing the right header...
46
- const selectionCopy = Object.assign(new SelectorStructure(), this.selection);
47
- this.configuratorConnectorService.getImageForAnswer(selectionCopy);
48
- this.listOfChoices.push(selectionCopy);
49
- }
50
- this._calculateVisibleAnswers();
51
- }
52
- selectionClicked(answer) {
53
- this.productConfiguratorService.selectSelection.emit(answer);
54
- }
55
- showMore() {
56
- this.showAllTiles = true;
57
- this._calculateVisibleAnswers();
58
- }
59
- showLess() {
60
- this.showAllTiles = false;
61
- this._calculateVisibleAnswers();
62
- }
63
- _calculateVisibleAnswers() {
64
- if (this.selection.displayOptionControl === ConfigurationDisplayOption.TileLarge) {
65
- if (this.showAllTiles) {
66
- this.visibleAnswers = this.listOfChoices;
67
- }
68
- else {
69
- this.visibleAnswers = this.listOfChoices.slice(0, this.maxVisibleTiles);
70
- }
71
- this.remainingTilesCount = Math.max(0, this.listOfChoices.length - this.maxVisibleTiles);
72
- }
73
- else if (this.selection.displayOptionControl === ConfigurationDisplayOption.TileSmall) {
74
- if (this.showAllTiles) {
75
- this.visibleAnswers = this.listOfChoices;
76
- }
77
- else {
78
- this.visibleAnswers = this.listOfChoices.slice(0, this.maxVisibleSmallTiles);
79
- }
80
- this.remainingTilesCount = Math.max(0, this.listOfChoices.length - this.maxVisibleSmallTiles);
81
- }
82
- else {
83
- this.visibleAnswers = this.listOfChoices;
84
- this.remainingTilesCount = 0;
85
- }
86
- }
87
- }
88
- ProductConfiguratorSelectorOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorOptionComponent, deps: [{ token: i1.ConfiguratorConnectorService }, { token: i2.SettingsService }, { token: i3.ProductConfiguratorService }], target: i0.ɵɵFactoryTarget.Component });
89
- ProductConfiguratorSelectorOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductConfiguratorSelectorOptionComponent, selector: "co-product-configurator-selector-option", inputs: { selection: "selection", listOfChoices: "listOfChoices", markAsException: "markAsException" }, host: { properties: { "class.co-product-configurator-selector-option": "this.showClass" } }, ngImport: i0, template: `
90
- <div class="selector-wrapper {{this.selectionClass}}">
91
- <ng-container *ngIf="this.selection.displayOptionControl !== configurationDisplayOption.DropDown
92
- && this.selection.displayOptionControl !== configurationDisplayOption.TileLarge
93
- && this.selection.displayOptionControl !== configurationDisplayOption.TileSmall">
94
-
95
- <ng-container *ngFor="let child of listOfChoices">
96
- <div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
97
- <co-product-configurator-selector-option-button
98
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Button"
99
- [option]="child"
100
- (selectionClicked)="selectionClicked(child)">
101
- </co-product-configurator-selector-option-button>
102
- <co-product-configurator-option-checkbox
103
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.ListOfValues"
104
- [option]="child"
105
- (selectionClicked)="selectionClicked(child)">
106
- </co-product-configurator-option-checkbox>
107
- <co-product-configurator-selector-option-tile
108
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileRounded"
109
- [option]="child"
110
- [tileClass]="'rounded'"
111
- (selectionClicked)="selectionClicked(child)">
112
- </co-product-configurator-selector-option-tile>
113
- <co-product-configurator-selector-option-tile
114
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Tab"
115
- [option]="child"
116
- [tileClass]="'small-rounded'"
117
- (selectionClicked)="selectionClicked(child)">
118
- </co-product-configurator-selector-option-tile>
119
- <co-product-configurator-selector-option-tile
120
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.HorizontalTiles"
121
- [option]="child"
122
- [tileClass]="'horizontal'"
123
- (selectionClicked)="selectionClicked(child)">
124
- </co-product-configurator-selector-option-tile>
125
- </div>
126
- </ng-container>
127
- </ng-container>
128
-
129
- <ng-container *ngIf="
130
- this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
131
- this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
132
- <ng-container *ngFor="let child of visibleAnswers">
133
- <div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
134
- <co-product-configurator-selector-option-tile
135
- [option]="child"
136
- [tileClass]="this.selection.displayOptionControl === configurationDisplayOption.TileLarge ? 'large' : 'small'"
137
- (selectionClicked)="selectionClicked(child)"
138
- ></co-product-configurator-selector-option-tile>
139
- </div>
140
- </ng-container>
141
- </ng-container>
142
-
143
- <ng-container *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown">
144
- <co-product-configurator-selector-option-dropdown
145
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown"
146
- [options]="listOfChoices"
147
- (selectionClicked)="selectionClicked($event)"
148
- ></co-product-configurator-selector-option-dropdown>
149
- </ng-container>
150
- </div>
151
-
152
- <ng-container *ngIf="
153
- this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
154
- this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
155
- <ng-container *ngIf="!showAllTiles && remainingTilesCount > 0">
156
- <div class="show-more-container">
157
- <span (click)="showMore()">
158
- <span class="show-more-text-link" [textContent]="'VIEW' | localize"></span>
159
- <span class="show-more-text-link" [textContent]="remainingTilesCount"></span>
160
- <span class="show-more-text-link" [textContent]="'MORE_OPTIONS' | localize:false"></span>
161
- </span>
162
- </div>
163
- </ng-container>
164
- <ng-container *ngIf="showAllTiles && listOfChoices.length > maxVisibleTiles">
165
- <div class="show-more-container">
166
- <span (click)="showLess()" [textContent]="'VIEW_LESS' | localize"></span>
167
- </div>
168
- </ng-container>
169
- </ng-container>
170
-
171
- `, isInline: true, components: [{ type: i4.ProductConfiguratorSelectorOptionButtonComponent, selector: "co-product-configurator-selector-option-button", inputs: ["option"], outputs: ["selectionClicked"] }, { type: i5.ProductConfiguratorOptionCheckboxComponent, selector: "co-product-configurator-option-checkbox", inputs: ["option"], outputs: ["selectionClicked"] }, { type: i6.ProductConfiguratorSelectorOptionTileComponent, selector: "co-product-configurator-selector-option-tile", inputs: ["option", "tileClass"], outputs: ["selectionClicked"] }, { type: i7.ProductConfiguratorSelectorOptionDropDownComponent, selector: "co-product-configurator-selector-option-dropdown", inputs: ["options", "tileClass"], outputs: ["selectionClicked"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "localize": i9.LocalizePipe }, animations: [
172
- trigger('showSelections', [
173
- state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
174
- state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
175
- transition('void <=> *', animate(200))
176
- ])
177
- ], encapsulation: i0.ViewEncapsulation.None });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorOptionComponent, decorators: [{
179
- type: Component,
180
- args: [{
181
- selector: 'co-product-configurator-selector-option',
182
- template: `
183
- <div class="selector-wrapper {{this.selectionClass}}">
184
- <ng-container *ngIf="this.selection.displayOptionControl !== configurationDisplayOption.DropDown
185
- && this.selection.displayOptionControl !== configurationDisplayOption.TileLarge
186
- && this.selection.displayOptionControl !== configurationDisplayOption.TileSmall">
187
-
188
- <ng-container *ngFor="let child of listOfChoices">
189
- <div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
190
- <co-product-configurator-selector-option-button
191
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Button"
192
- [option]="child"
193
- (selectionClicked)="selectionClicked(child)">
194
- </co-product-configurator-selector-option-button>
195
- <co-product-configurator-option-checkbox
196
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.ListOfValues"
197
- [option]="child"
198
- (selectionClicked)="selectionClicked(child)">
199
- </co-product-configurator-option-checkbox>
200
- <co-product-configurator-selector-option-tile
201
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileRounded"
202
- [option]="child"
203
- [tileClass]="'rounded'"
204
- (selectionClicked)="selectionClicked(child)">
205
- </co-product-configurator-selector-option-tile>
206
- <co-product-configurator-selector-option-tile
207
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Tab"
208
- [option]="child"
209
- [tileClass]="'small-rounded'"
210
- (selectionClicked)="selectionClicked(child)">
211
- </co-product-configurator-selector-option-tile>
212
- <co-product-configurator-selector-option-tile
213
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.HorizontalTiles"
214
- [option]="child"
215
- [tileClass]="'horizontal'"
216
- (selectionClicked)="selectionClicked(child)">
217
- </co-product-configurator-selector-option-tile>
218
- </div>
219
- </ng-container>
220
- </ng-container>
221
-
222
- <ng-container *ngIf="
223
- this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
224
- this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
225
- <ng-container *ngFor="let child of visibleAnswers">
226
- <div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
227
- <co-product-configurator-selector-option-tile
228
- [option]="child"
229
- [tileClass]="this.selection.displayOptionControl === configurationDisplayOption.TileLarge ? 'large' : 'small'"
230
- (selectionClicked)="selectionClicked(child)"
231
- ></co-product-configurator-selector-option-tile>
232
- </div>
233
- </ng-container>
234
- </ng-container>
235
-
236
- <ng-container *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown">
237
- <co-product-configurator-selector-option-dropdown
238
- *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown"
239
- [options]="listOfChoices"
240
- (selectionClicked)="selectionClicked($event)"
241
- ></co-product-configurator-selector-option-dropdown>
242
- </ng-container>
243
- </div>
244
-
245
- <ng-container *ngIf="
246
- this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
247
- this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
248
- <ng-container *ngIf="!showAllTiles && remainingTilesCount > 0">
249
- <div class="show-more-container">
250
- <span (click)="showMore()">
251
- <span class="show-more-text-link" [textContent]="'VIEW' | localize"></span>
252
- <span class="show-more-text-link" [textContent]="remainingTilesCount"></span>
253
- <span class="show-more-text-link" [textContent]="'MORE_OPTIONS' | localize:false"></span>
254
- </span>
255
- </div>
256
- </ng-container>
257
- <ng-container *ngIf="showAllTiles && listOfChoices.length > maxVisibleTiles">
258
- <div class="show-more-container">
259
- <span (click)="showLess()" [textContent]="'VIEW_LESS' | localize"></span>
260
- </div>
261
- </ng-container>
262
- </ng-container>
263
-
264
- `,
265
- encapsulation: ViewEncapsulation.None,
266
- animations: [
267
- trigger('showSelections', [
268
- state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
269
- state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
270
- transition('void <=> *', animate(200))
271
- ])
272
- ]
273
- }]
274
- }], ctorParameters: function () { return [{ type: i1.ConfiguratorConnectorService }, { type: i2.SettingsService }, { type: i3.ProductConfiguratorService }]; }, propDecorators: { showClass: [{
275
- type: HostBinding,
276
- args: ['class.co-product-configurator-selector-option']
277
- }], selection: [{
278
- type: Input
279
- }], listOfChoices: [{
280
- type: Input
281
- }], markAsException: [{
282
- type: Input
283
- }] } });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uL3Byb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDOUYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFJMUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7Ozs7OztBQWdHN0UsTUFBTSxPQUFPLDBDQUEwQztJQXdCckQsWUFDUyw0QkFBMEQsRUFDMUQsZUFBZ0MsRUFDaEMsMEJBQXNEO1FBRnRELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFYeEQsK0JBQTBCLEdBQUcsMEJBQTBCLENBQUM7UUFDeEQsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ2xDLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUN6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QUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUM5RCxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDdkMsQ0FBQztxQkFDSDtpQkFDRjswTEFJUSxTQUFTO3NCQURmLFdBQVc7dUJBQUMsK0NBQStDO2dCQU1yRCxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtTZWxlY3RvclN0cnVjdHVyZX0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9zZWxlY3Rvci1zdHJ1Y3R1cmUuYm8nO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9ufSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL2VudW0vcmVmY29kZS9jb25maWd1cmF0aW9uLWRpc3BsYXktb3B0aW9uLmVudW0nO1xyXG5pbXBvcnQge1Byb2R1Y3RDb25maWd1cmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9kdWN0LWNvbmZpZ3VyYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7Tm9kZVR5cGV9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvZW51bS9ub2RlLXR5cGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rvci13cmFwcGVyIHt7dGhpcy5zZWxlY3Rpb25DbGFzc319XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCAhPT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uRHJvcERvd25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgIT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCAhPT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uVGlsZVNtYWxsXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGxpc3RPZkNob2ljZXNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rvci1vcHRpb24td3JhcHBlclwiIFtjbGFzcy5hY3RpdmVdPVwiY2hpbGQuc2VsZWN0ZWQgPT09J0YnXCI+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uQnV0dG9uXCJcclxuICAgICAgICAgICAgICBbb3B0aW9uXT1cImNoaWxkXCJcclxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKGNoaWxkKVwiPlxyXG4gICAgICAgICAgICA8L2NvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1vcHRpb24tY2hlY2tib3hcclxuICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5MaXN0T2ZWYWx1ZXNcIlxyXG4gICAgICAgICAgICAgIFtvcHRpb25dPVwiY2hpbGRcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itb3B0aW9uLWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8Y28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGVcclxuICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlUm91bmRlZFwiXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCIncm91bmRlZCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRhYlwiXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCInc21hbGwtcm91bmRlZCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLkhvcml6b250YWxUaWxlc1wiXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCInaG9yaXpvbnRhbCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZSB8fFxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlU21hbGxcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiB2aXNpYmxlQW5zd2Vyc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdG9yLW9wdGlvbi13cmFwcGVyXCIgW2NsYXNzLmFjdGl2ZV09XCJjaGlsZC5zZWxlY3RlZCA9PT0nRidcIj5cclxuICAgICAgICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi10aWxlXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uVGlsZUxhcmdlID8gJ2xhcmdlJyA6ICdzbWFsbCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCJcclxuICAgICAgICAgICAgPjwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLkRyb3BEb3duXCI+XHJcbiAgICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1kcm9wZG93blxyXG4gICAgICAgICAgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uRHJvcERvd25cIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwibGlzdE9mQ2hvaWNlc1wiXHJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgID48L2NvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1kcm9wZG93bj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZSB8fFxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlU21hbGxcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93QWxsVGlsZXMgJiYgcmVtYWluaW5nVGlsZXNDb3VudCA+IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hvdy1tb3JlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd01vcmUoKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvdy1tb3JlLXRleHQtbGlua1wiIFt0ZXh0Q29udGVudF09XCInVklFVycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctbW9yZS10ZXh0LWxpbmtcIiBbdGV4dENvbnRlbnRdPVwicmVtYWluaW5nVGlsZXNDb3VudFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctbW9yZS10ZXh0LWxpbmtcIiBbdGV4dENvbnRlbnRdPVwiJ01PUkVfT1BUSU9OUycgfCBsb2NhbGl6ZTpmYWxzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dBbGxUaWxlcyAmJiBsaXN0T2ZDaG9pY2VzLmxlbmd0aCA+IG1heFZpc2libGVUaWxlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaG93LW1vcmUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd0xlc3MoKVwiIFt0ZXh0Q29udGVudF09XCInVklFV19MRVNTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3Nob3dTZWxlY3Rpb25zJywgW1xyXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHsndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoMTAwJSknLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHsndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoMCUpJywgb3BhY2l0eTogMX0pKSxcclxuICAgICAgdHJhbnNpdGlvbigndm9pZCA8PT4gKicsIGFuaW1hdGUoMjAwKSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdENvbmZpZ3VyYXRvclNlbGVjdG9yT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24nKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0b3JTdHJ1Y3R1cmU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxpc3RPZkNob2ljZXM6IFNlbGVjdG9yU3RydWN0dXJlW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1hcmtBc0V4Y2VwdGlvbjogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uID0gQ29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb247XHJcbiAgcHVibGljIHNlbGVjdGlvbkNsYXNzOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgc2hvd0FsbFRpbGVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG1heFZpc2libGVUaWxlczogbnVtYmVyID0gMTA7XHJcbiAgcHVibGljIG1heFZpc2libGVTbWFsbFRpbGVzOiBudW1iZXIgPSAyNDtcclxuICBwdWJsaWMgdmlzaWJsZUFuc3dlcnM6IFNlbGVjdG9yU3RydWN0dXJlW10gPSBbXTtcclxuICBwdWJsaWMgcmVtYWluaW5nVGlsZXNDb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHB1YmxpYyBwcm9kdWN0Q29uZmlndXJhdG9yU2VydmljZTogUHJvZHVjdENvbmZpZ3VyYXRvclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPSBDb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UYWI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXJrQXNFeGNlcHRpb24pIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25DbGFzcyA9ICdzZWxlY3Rpb24tZXhjZXB0aW9uIHNlbGVjdGlvbi1jb250YWluZXItJyArIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25DbGFzcyA9ICdzZWxlY3Rpb24tY29udGFpbmVyLScgKyB0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLm9wdlRyZWVOb2RlSGllcmFyY2h5ICYmIHRoaXMuc2VsZWN0aW9uLm5vZGVUeXBlID09PSBOb2RlVHlwZS5RdWVzdGlvbikge1xyXG4gICAgICAvLyBXaGVuIHRoZSBzZWxlY3Rpb24gaGFzIGEgb3B2VHJlZU5vZGVIaWVyYXJjaHkgYW5kIGhhcyBub2RlVHlwZSBPUFQgbWVhbnMgd2UgbmVlZCB0byBhZGQgYSBjYW5jZWwvIHNraXAgb3B0aW9uLlxyXG4gICAgICAvLyBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBzbGlkZSBvdXQgY29tcC8gc2VsZWN0b3IuXHJcbiAgICAgIC8vIEJ1dCB3ZSBuZWVkIHRvIG1ha2UgYSBjb3B5IG9mIGl0LCBpZiB3ZSBkbyBub3QgZG8gdGhhdCwgd2UgYXJlIG1pc3NpbmcgdGhlIHJpZ2h0IGhlYWRlci4uLlxyXG4gICAgICBjb25zdCBzZWxlY3Rpb25Db3B5OiBTZWxlY3RvclN0cnVjdHVyZSA9IE9iamVjdC5hc3NpZ24obmV3IFNlbGVjdG9yU3RydWN0dXJlKCksIHRoaXMuc2VsZWN0aW9uKTtcclxuICAgICAgdGhpcy5jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLmdldEltYWdlRm9yQW5zd2VyKHNlbGVjdGlvbkNvcHkpO1xyXG4gICAgICB0aGlzLmxpc3RPZkNob2ljZXMucHVzaChzZWxlY3Rpb25Db3B5KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmxlQW5zd2VycygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGlvbkNsaWNrZWQoYW5zd2VyOiBTZWxlY3RvclN0cnVjdHVyZSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9kdWN0Q29uZmlndXJhdG9yU2VydmljZS5zZWxlY3RTZWxlY3Rpb24uZW1pdChhbnN3ZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dNb3JlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QWxsVGlsZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5fY2FsY3VsYXRlVmlzaWJsZUFuc3dlcnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93TGVzcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FsbFRpbGVzID0gZmFsc2U7XHJcbiAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmxlQW5zd2VycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2FsY3VsYXRlVmlzaWJsZUFuc3dlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IENvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZSkge1xyXG4gICAgICBpZiAodGhpcy5zaG93QWxsVGlsZXMpIHtcclxuICAgICAgICB0aGlzLnZpc2libGVBbnN3ZXJzID0gdGhpcy5saXN0T2ZDaG9pY2VzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUFuc3dlcnMgPSB0aGlzLmxpc3RPZkNob2ljZXMuc2xpY2UoMCwgdGhpcy5tYXhWaXNpYmxlVGlsZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluaW5nVGlsZXNDb3VudCA9IE1hdGgubWF4KDAsIHRoaXMubGlzdE9mQ2hvaWNlcy5sZW5ndGggLSB0aGlzLm1heFZpc2libGVUaWxlcyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBDb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlU21hbGwpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0FsbFRpbGVzKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQW5zd2VycyA9IHRoaXMubGlzdE9mQ2hvaWNlcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpc2libGVBbnN3ZXJzID0gdGhpcy5saXN0T2ZDaG9pY2VzLnNsaWNlKDAsIHRoaXMubWF4VmlzaWJsZVNtYWxsVGlsZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluaW5nVGlsZXNDb3VudCA9IE1hdGgubWF4KDAsIHRoaXMubGlzdE9mQ2hvaWNlcy5sZW5ndGggLSB0aGlzLm1heFZpc2libGVTbWFsbFRpbGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZUFuc3dlcnMgPSB0aGlzLmxpc3RPZkNob2ljZXM7XHJcbiAgICAgIHRoaXMucmVtYWluaW5nVGlsZXNDb3VudCA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==