fabrikantencore 2.0.6 → 2.0.7

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 (942) hide show
  1. package/.browserslistrc +16 -0
  2. package/.editorconfig +16 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/angular.json +112 -0
  7. package/karma.conf.js +44 -0
  8. package/ng-package.json +6 -0
  9. package/package.json +11 -23
  10. package/{public_api.d.ts → public_api.ts} +3 -3
  11. package/src/app/app-routing.module.ts +10 -0
  12. package/src/app/app.component.html +1 -0
  13. package/src/app/app.component.scss +8 -0
  14. package/src/app/app.component.spec.ts +35 -0
  15. package/src/app/app.component.ts +10 -0
  16. package/src/app/app.module.ts +22 -0
  17. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.html +44 -0
  18. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.scss +11 -0
  19. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.spec.ts +23 -0
  20. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.ts +38 -0
  21. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.html +46 -0
  22. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.scss +0 -0
  23. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.spec.ts +23 -0
  24. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.ts +79 -0
  25. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.html +11 -0
  26. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.scss +8 -0
  27. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.spec.ts +23 -0
  28. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.ts +33 -0
  29. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.html +58 -0
  30. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.scss +18 -0
  31. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.spec.ts +23 -0
  32. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.ts +127 -0
  33. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.html +1 -0
  34. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.scss +0 -0
  35. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.spec.ts +23 -0
  36. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.ts +15 -0
  37. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.html +12 -0
  38. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.scss +0 -0
  39. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.spec.ts +23 -0
  40. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.ts +48 -0
  41. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.html +33 -0
  42. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.scss +60 -0
  43. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.spec.ts +23 -0
  44. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.ts +99 -0
  45. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.html +20 -0
  46. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.scss +38 -0
  47. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.spec.ts +23 -0
  48. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.ts +0 -0
  49. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.html +8 -0
  50. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.scss +31 -0
  51. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.spec.ts +23 -0
  52. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.ts +33 -0
  53. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.html +92 -0
  54. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.scss +50 -0
  55. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.spec.ts +23 -0
  56. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.ts +73 -0
  57. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.html +42 -0
  58. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.scss +44 -0
  59. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.spec.ts +23 -0
  60. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.ts +43 -0
  61. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.css +0 -0
  62. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.html +1 -0
  63. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.spec.ts +25 -0
  64. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.ts +17 -0
  65. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.html +41 -0
  66. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.scss +34 -0
  67. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.spec.ts +23 -0
  68. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.ts +49 -0
  69. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.html +42 -0
  70. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.scss +41 -0
  71. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.spec.ts +23 -0
  72. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.ts +49 -0
  73. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.html +56 -0
  74. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.scss +29 -0
  75. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.spec.ts +23 -0
  76. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.ts +253 -0
  77. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.html +44 -0
  78. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.scss +7 -0
  79. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.spec.ts +23 -0
  80. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.ts +114 -0
  81. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.html +41 -0
  82. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.scss +47 -0
  83. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.spec.ts +23 -0
  84. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.ts +131 -0
  85. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.html +16 -0
  86. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.scss +51 -0
  87. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.spec.ts +23 -0
  88. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.ts +0 -0
  89. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.html +64 -0
  90. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.scss +41 -0
  91. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.spec.ts +23 -0
  92. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.ts +147 -0
  93. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.html +5 -0
  94. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.scss +7 -0
  95. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.spec.ts +23 -0
  96. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.ts +18 -0
  97. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.html +97 -0
  98. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.scss +11 -0
  99. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.spec.ts +23 -0
  100. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.ts +187 -0
  101. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.html +26 -0
  102. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.scss +15 -0
  103. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.spec.ts +23 -0
  104. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.ts +23 -0
  105. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.html +99 -0
  106. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.scss +85 -0
  107. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.spec.ts +23 -0
  108. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.ts +172 -0
  109. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.html +45 -0
  110. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.scss +14 -0
  111. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.spec.ts +23 -0
  112. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.ts +89 -0
  113. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.html +119 -0
  114. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.scss +69 -0
  115. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.spec.ts +23 -0
  116. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.ts +346 -0
  117. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.html +38 -0
  118. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.scss +30 -0
  119. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.spec.ts +23 -0
  120. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.ts +19 -0
  121. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.html +40 -0
  122. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.scss +30 -0
  123. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.spec.ts +23 -0
  124. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.ts +19 -0
  125. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.html +31 -0
  126. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.scss +30 -0
  127. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.spec.ts +23 -0
  128. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.ts +17 -0
  129. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.html +142 -0
  130. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.scss +15 -0
  131. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.spec.ts +23 -0
  132. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.ts +120 -0
  133. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.html +1 -0
  134. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.scss +0 -0
  135. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.spec.ts +23 -0
  136. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.ts +15 -0
  137. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.html +1 -0
  138. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.scss +0 -0
  139. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.spec.ts +23 -0
  140. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.ts +15 -0
  141. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.html +45 -0
  142. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.scss +64 -0
  143. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.spec.ts +23 -0
  144. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.ts +60 -0
  145. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.html +5 -0
  146. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.scss +89 -0
  147. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.spec.ts +23 -0
  148. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.ts +20 -0
  149. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.html +10 -0
  150. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.scss +16 -0
  151. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.spec.ts +23 -0
  152. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.ts +30 -0
  153. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.html +10 -0
  154. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.scss +38 -0
  155. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.spec.ts +23 -0
  156. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.ts +46 -0
  157. package/src/app/modules/fabrikantencore/components/fab-category-tile/no-photo.png +0 -0
  158. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.html +24 -0
  159. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.scss +57 -0
  160. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.spec.ts +23 -0
  161. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.ts +63 -0
  162. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.html +23 -0
  163. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.scss +44 -0
  164. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.spec.ts +25 -0
  165. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.ts +41 -0
  166. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.html +13 -0
  167. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.scss +16 -0
  168. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.spec.ts +23 -0
  169. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.ts +23 -0
  170. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.html +4 -0
  171. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.scss +0 -0
  172. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.spec.ts +23 -0
  173. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.ts +32 -0
  174. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.html +1 -0
  175. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.scss +2143 -0
  176. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.spec.ts +23 -0
  177. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.ts +17 -0
  178. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.html +6 -0
  179. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.scss +13 -0
  180. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.spec.ts +23 -0
  181. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.ts +38 -0
  182. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.html +5 -0
  183. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.scss +8 -0
  184. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.spec.ts +23 -0
  185. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.ts +21 -0
  186. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.html +3 -0
  187. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.scss +7 -0
  188. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.spec.ts +23 -0
  189. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.ts +15 -0
  190. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.html +68 -0
  191. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.scss +99 -0
  192. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.spec.ts +23 -0
  193. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.ts +76 -0
  194. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.html +15 -0
  195. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.scss +24 -0
  196. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.spec.ts +23 -0
  197. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.ts +26 -0
  198. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.html +15 -0
  199. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.scss +20 -0
  200. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.spec.ts +23 -0
  201. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.ts +17 -0
  202. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.html +17 -0
  203. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.scss +13 -0
  204. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.spec.ts +23 -0
  205. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.ts +40 -0
  206. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.html +54 -0
  207. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.scss +57 -0
  208. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.spec.ts +23 -0
  209. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.ts +86 -0
  210. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.html +43 -0
  211. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.scss +65 -0
  212. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.spec.ts +23 -0
  213. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.ts +63 -0
  214. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.html +7 -0
  215. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.scss +34 -0
  216. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.spec.ts +23 -0
  217. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.ts +45 -0
  218. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.html +10 -0
  219. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.scss +3 -0
  220. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.spec.ts +23 -0
  221. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.ts +95 -0
  222. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.html +7 -0
  223. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.scss +24 -0
  224. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.spec.ts +23 -0
  225. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.ts +26 -0
  226. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.html +124 -0
  227. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.scss +92 -0
  228. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.spec.ts +23 -0
  229. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.ts +86 -0
  230. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.html +108 -0
  231. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.scss +79 -0
  232. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.spec.ts +23 -0
  233. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.ts +103 -0
  234. package/src/app/modules/fabrikantencore/fabrikantencore.module.spec.ts +13 -0
  235. package/src/app/modules/fabrikantencore/fabrikantencore.module.ts +260 -0
  236. package/src/app/modules/fabrikantencore/helpers/auth.guard.ts +28 -0
  237. package/src/app/modules/fabrikantencore/helpers/basic-auth.interceptor.ts +24 -0
  238. package/src/app/modules/fabrikantencore/helpers/error.interceptor.ts +24 -0
  239. package/src/app/modules/fabrikantencore/services/authentication.service.ts +55 -0
  240. package/src/app/modules/fabrikantencore/services/bestek.service.ts +126 -0
  241. package/src/app/modules/fabrikantencore/services/fabrikanten.service.ts +624 -0
  242. package/src/app/modules/fabrikantencore/services/importsets.service.ts +136 -0
  243. package/src/app/modules/fabrikantencore/services/mobile.service.ts +41 -0
  244. package/src/app/modules/fabrikantencore/services/navigate.service.ts +32 -0
  245. package/src/app/modules/fabrikantencore/services/photo.service.ts +121 -0
  246. package/src/app/modules/fabrikantencore/services/products.service.ts +276 -0
  247. package/src/app/modules/fabrikantencore/services/projectsetting.service.ts +90 -0
  248. package/src/app/modules/fabrikantencore/services/svg.service.ts +84 -0
  249. package/src/app/modules/fabrikantencore/services/translate.service.ts +331 -0
  250. package/src/app/modules/fabrikantencore/services/webgl.service.ts +72 -0
  251. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.ts +9706 -0
  252. package/src/assets/.gitkeep +0 -0
  253. package/src/assets/bouwconnect-achtergrond.png +0 -0
  254. package/src/assets/flags/1x1/ac.svg +76 -0
  255. package/src/assets/flags/1x1/ad.svg +148 -0
  256. package/src/assets/flags/1x1/ae.svg +6 -0
  257. package/src/assets/flags/1x1/af.svg +81 -0
  258. package/src/assets/flags/1x1/ag.svg +14 -0
  259. package/src/assets/flags/1x1/ai.svg +758 -0
  260. package/src/assets/flags/1x1/al.svg +5 -0
  261. package/src/assets/flags/1x1/am.svg +5 -0
  262. package/src/assets/flags/1x1/ao.svg +13 -0
  263. package/src/assets/flags/1x1/aq.svg +5 -0
  264. package/src/assets/flags/1x1/ar.svg +32 -0
  265. package/src/assets/flags/1x1/as.svg +73 -0
  266. package/src/assets/flags/1x1/at.svg +6 -0
  267. package/src/assets/flags/1x1/au.svg +8 -0
  268. package/src/assets/flags/1x1/aw.svg +186 -0
  269. package/src/assets/flags/1x1/ax.svg +18 -0
  270. package/src/assets/flags/1x1/az.svg +8 -0
  271. package/src/assets/flags/1x1/ba.svg +12 -0
  272. package/src/assets/flags/1x1/bb.svg +6 -0
  273. package/src/assets/flags/1x1/bd.svg +4 -0
  274. package/src/assets/flags/1x1/be.svg +7 -0
  275. package/src/assets/flags/1x1/bf.svg +7 -0
  276. package/src/assets/flags/1x1/bg.svg +7 -0
  277. package/src/assets/flags/1x1/bh.svg +4 -0
  278. package/src/assets/flags/1x1/bi.svg +15 -0
  279. package/src/assets/flags/1x1/bj.svg +14 -0
  280. package/src/assets/flags/1x1/bl.svg +7 -0
  281. package/src/assets/flags/1x1/bm.svg +97 -0
  282. package/src/assets/flags/1x1/bn.svg +36 -0
  283. package/src/assets/flags/1x1/bo.svg +678 -0
  284. package/src/assets/flags/1x1/bq.svg +5 -0
  285. package/src/assets/flags/1x1/br.svg +45 -0
  286. package/src/assets/flags/1x1/bs.svg +13 -0
  287. package/src/assets/flags/1x1/bt.svg +89 -0
  288. package/src/assets/flags/1x1/bv.svg +13 -0
  289. package/src/assets/flags/1x1/bw.svg +7 -0
  290. package/src/assets/flags/1x1/by.svg +22 -0
  291. package/src/assets/flags/1x1/bz.svg +145 -0
  292. package/src/assets/flags/1x1/ca.svg +4 -0
  293. package/src/assets/flags/1x1/cc.svg +19 -0
  294. package/src/assets/flags/1x1/cd.svg +12 -0
  295. package/src/assets/flags/1x1/cefta.svg +13 -0
  296. package/src/assets/flags/1x1/cf.svg +15 -0
  297. package/src/assets/flags/1x1/cg.svg +12 -0
  298. package/src/assets/flags/1x1/ch.svg +9 -0
  299. package/src/assets/flags/1x1/ci.svg +7 -0
  300. package/src/assets/flags/1x1/ck.svg +9 -0
  301. package/src/assets/flags/1x1/cl.svg +13 -0
  302. package/src/assets/flags/1x1/cm.svg +15 -0
  303. package/src/assets/flags/1x1/cn.svg +11 -0
  304. package/src/assets/flags/1x1/co.svg +7 -0
  305. package/src/assets/flags/1x1/cp.svg +7 -0
  306. package/src/assets/flags/1x1/cr.svg +7 -0
  307. package/src/assets/flags/1x1/cu.svg +13 -0
  308. package/src/assets/flags/1x1/cv.svg +13 -0
  309. package/src/assets/flags/1x1/cw.svg +14 -0
  310. package/src/assets/flags/1x1/cx.svg +15 -0
  311. package/src/assets/flags/1x1/cy.svg +6 -0
  312. package/src/assets/flags/1x1/cz.svg +5 -0
  313. package/src/assets/flags/1x1/de.svg +5 -0
  314. package/src/assets/flags/1x1/dg.svg +129 -0
  315. package/src/assets/flags/1x1/dj.svg +13 -0
  316. package/src/assets/flags/1x1/dk.svg +5 -0
  317. package/src/assets/flags/1x1/dm.svg +152 -0
  318. package/src/assets/flags/1x1/do.svg +6745 -0
  319. package/src/assets/flags/1x1/dz.svg +5 -0
  320. package/src/assets/flags/1x1/ea.svg +547 -0
  321. package/src/assets/flags/1x1/ec.svg +138 -0
  322. package/src/assets/flags/1x1/ee.svg +7 -0
  323. package/src/assets/flags/1x1/eg.svg +38 -0
  324. package/src/assets/flags/1x1/eh.svg +11 -0
  325. package/src/assets/flags/1x1/er.svg +13 -0
  326. package/src/assets/flags/1x1/es-ct.svg +4 -0
  327. package/src/assets/flags/1x1/es-ga.svg +187 -0
  328. package/src/assets/flags/1x1/es.svg +547 -0
  329. package/src/assets/flags/1x1/et.svg +14 -0
  330. package/src/assets/flags/1x1/eu.svg +28 -0
  331. package/src/assets/flags/1x1/fi.svg +5 -0
  332. package/src/assets/flags/1x1/fj.svg +123 -0
  333. package/src/assets/flags/1x1/fk.svg +89 -0
  334. package/src/assets/flags/1x1/fm.svg +11 -0
  335. package/src/assets/flags/1x1/fo.svg +12 -0
  336. package/src/assets/flags/1x1/fr.svg +7 -0
  337. package/src/assets/flags/1x1/ga.svg +7 -0
  338. package/src/assets/flags/1x1/gb-eng.svg +5 -0
  339. package/src/assets/flags/1x1/gb-nir.svg +131 -0
  340. package/src/assets/flags/1x1/gb-sct.svg +4 -0
  341. package/src/assets/flags/1x1/gb-wls.svg +9 -0
  342. package/src/assets/flags/1x1/gb.svg +7 -0
  343. package/src/assets/flags/1x1/gd.svg +27 -0
  344. package/src/assets/flags/1x1/ge.svg +6 -0
  345. package/src/assets/flags/1x1/gf.svg +7 -0
  346. package/src/assets/flags/1x1/gg.svg +9 -0
  347. package/src/assets/flags/1x1/gh.svg +6 -0
  348. package/src/assets/flags/1x1/gi.svg +32 -0
  349. package/src/assets/flags/1x1/gl.svg +4 -0
  350. package/src/assets/flags/1x1/gm.svg +9 -0
  351. package/src/assets/flags/1x1/gn.svg +7 -0
  352. package/src/assets/flags/1x1/gp.svg +7 -0
  353. package/src/assets/flags/1x1/gq.svg +23 -0
  354. package/src/assets/flags/1x1/gr.svg +16 -0
  355. package/src/assets/flags/1x1/gs.svg +132 -0
  356. package/src/assets/flags/1x1/gt.svg +220 -0
  357. package/src/assets/flags/1x1/gu.svg +23 -0
  358. package/src/assets/flags/1x1/gw.svg +15 -0
  359. package/src/assets/flags/1x1/gy.svg +9 -0
  360. package/src/assets/flags/1x1/hk.svg +30 -0
  361. package/src/assets/flags/1x1/hm.svg +8 -0
  362. package/src/assets/flags/1x1/hn.svg +18 -0
  363. package/src/assets/flags/1x1/hr.svg +56 -0
  364. package/src/assets/flags/1x1/ht.svg +116 -0
  365. package/src/assets/flags/1x1/hu.svg +7 -0
  366. package/src/assets/flags/1x1/ic.svg +7 -0
  367. package/src/assets/flags/1x1/id.svg +4 -0
  368. package/src/assets/flags/1x1/ie.svg +7 -0
  369. package/src/assets/flags/1x1/il.svg +14 -0
  370. package/src/assets/flags/1x1/im.svg +36 -0
  371. package/src/assets/flags/1x1/in.svg +25 -0
  372. package/src/assets/flags/1x1/io.svg +129 -0
  373. package/src/assets/flags/1x1/iq.svg +10 -0
  374. package/src/assets/flags/1x1/ir.svg +219 -0
  375. package/src/assets/flags/1x1/is.svg +12 -0
  376. package/src/assets/flags/1x1/it.svg +7 -0
  377. package/src/assets/flags/1x1/je.svg +44 -0
  378. package/src/assets/flags/1x1/jm.svg +8 -0
  379. package/src/assets/flags/1x1/jo.svg +16 -0
  380. package/src/assets/flags/1x1/jp.svg +11 -0
  381. package/src/assets/flags/1x1/ke.svg +23 -0
  382. package/src/assets/flags/1x1/kg.svg +15 -0
  383. package/src/assets/flags/1x1/kh.svg +61 -0
  384. package/src/assets/flags/1x1/ki.svg +36 -0
  385. package/src/assets/flags/1x1/km.svg +16 -0
  386. package/src/assets/flags/1x1/kn.svg +14 -0
  387. package/src/assets/flags/1x1/kp.svg +15 -0
  388. package/src/assets/flags/1x1/kr.svg +17 -0
  389. package/src/assets/flags/1x1/kw.svg +13 -0
  390. package/src/assets/flags/1x1/ky.svg +109 -0
  391. package/src/assets/flags/1x1/kz.svg +23 -0
  392. package/src/assets/flags/1x1/la.svg +12 -0
  393. package/src/assets/flags/1x1/lb.svg +15 -0
  394. package/src/assets/flags/1x1/lc.svg +8 -0
  395. package/src/assets/flags/1x1/li.svg +43 -0
  396. package/src/assets/flags/1x1/lk.svg +22 -0
  397. package/src/assets/flags/1x1/lr.svg +14 -0
  398. package/src/assets/flags/1x1/ls.svg +8 -0
  399. package/src/assets/flags/1x1/lt.svg +7 -0
  400. package/src/assets/flags/1x1/lu.svg +5 -0
  401. package/src/assets/flags/1x1/lv.svg +6 -0
  402. package/src/assets/flags/1x1/ly.svg +13 -0
  403. package/src/assets/flags/1x1/ma.svg +4 -0
  404. package/src/assets/flags/1x1/mc.svg +6 -0
  405. package/src/assets/flags/1x1/md.svg +71 -0
  406. package/src/assets/flags/1x1/me.svg +118 -0
  407. package/src/assets/flags/1x1/mf.svg +7 -0
  408. package/src/assets/flags/1x1/mg.svg +7 -0
  409. package/src/assets/flags/1x1/mh.svg +8 -0
  410. package/src/assets/flags/1x1/mk.svg +5 -0
  411. package/src/assets/flags/1x1/ml.svg +7 -0
  412. package/src/assets/flags/1x1/mm.svg +10 -0
  413. package/src/assets/flags/1x1/mn.svg +14 -0
  414. package/src/assets/flags/1x1/mo.svg +9 -0
  415. package/src/assets/flags/1x1/mp.svg +86 -0
  416. package/src/assets/flags/1x1/mq.svg +7 -0
  417. package/src/assets/flags/1x1/mr.svg +6 -0
  418. package/src/assets/flags/1x1/ms.svg +25 -0
  419. package/src/assets/flags/1x1/mt.svg +50 -0
  420. package/src/assets/flags/1x1/mu.svg +8 -0
  421. package/src/assets/flags/1x1/mv.svg +6 -0
  422. package/src/assets/flags/1x1/mw.svg +15 -0
  423. package/src/assets/flags/1x1/mx.svg +378 -0
  424. package/src/assets/flags/1x1/my.svg +7 -0
  425. package/src/assets/flags/1x1/mz.svg +21 -0
  426. package/src/assets/flags/1x1/na.svg +16 -0
  427. package/src/assets/flags/1x1/nc.svg +12 -0
  428. package/src/assets/flags/1x1/ne.svg +6 -0
  429. package/src/assets/flags/1x1/nf.svg +11 -0
  430. package/src/assets/flags/1x1/ng.svg +6 -0
  431. package/src/assets/flags/1x1/ni.svg +129 -0
  432. package/src/assets/flags/1x1/nl.svg +5 -0
  433. package/src/assets/flags/1x1/no.svg +7 -0
  434. package/src/assets/flags/1x1/np.svg +19 -0
  435. package/src/assets/flags/1x1/nr.svg +12 -0
  436. package/src/assets/flags/1x1/nu.svg +10 -0
  437. package/src/assets/flags/1x1/nz.svg +36 -0
  438. package/src/assets/flags/1x1/om.svg +115 -0
  439. package/src/assets/flags/1x1/pa.svg +13 -0
  440. package/src/assets/flags/1x1/pe.svg +244 -0
  441. package/src/assets/flags/1x1/pf.svg +18 -0
  442. package/src/assets/flags/1x1/pg.svg +16 -0
  443. package/src/assets/flags/1x1/ph.svg +8 -0
  444. package/src/assets/flags/1x1/pk.svg +15 -0
  445. package/src/assets/flags/1x1/pl.svg +6 -0
  446. package/src/assets/flags/1x1/pm.svg +7 -0
  447. package/src/assets/flags/1x1/pn.svg +53 -0
  448. package/src/assets/flags/1x1/pr.svg +13 -0
  449. package/src/assets/flags/1x1/ps.svg +15 -0
  450. package/src/assets/flags/1x1/pt.svg +57 -0
  451. package/src/assets/flags/1x1/pw.svg +11 -0
  452. package/src/assets/flags/1x1/py.svg +156 -0
  453. package/src/assets/flags/1x1/qa.svg +4 -0
  454. package/src/assets/flags/1x1/re.svg +7 -0
  455. package/src/assets/flags/1x1/ro.svg +7 -0
  456. package/src/assets/flags/1x1/rs.svg +296 -0
  457. package/src/assets/flags/1x1/ru.svg +7 -0
  458. package/src/assets/flags/1x1/rw.svg +13 -0
  459. package/src/assets/flags/1x1/sa.svg +26 -0
  460. package/src/assets/flags/1x1/sb.svg +13 -0
  461. package/src/assets/flags/1x1/sc.svg +7 -0
  462. package/src/assets/flags/1x1/sd.svg +13 -0
  463. package/src/assets/flags/1x1/se.svg +4 -0
  464. package/src/assets/flags/1x1/sg.svg +13 -0
  465. package/src/assets/flags/1x1/sh.svg +76 -0
  466. package/src/assets/flags/1x1/si.svg +18 -0
  467. package/src/assets/flags/1x1/sj.svg +7 -0
  468. package/src/assets/flags/1x1/sk.svg +9 -0
  469. package/src/assets/flags/1x1/sl.svg +12 -0
  470. package/src/assets/flags/1x1/sm.svg +73 -0
  471. package/src/assets/flags/1x1/sn.svg +8 -0
  472. package/src/assets/flags/1x1/so.svg +11 -0
  473. package/src/assets/flags/1x1/sr.svg +6 -0
  474. package/src/assets/flags/1x1/ss.svg +8 -0
  475. package/src/assets/flags/1x1/st.svg +16 -0
  476. package/src/assets/flags/1x1/sv.svg +594 -0
  477. package/src/assets/flags/1x1/sx.svg +56 -0
  478. package/src/assets/flags/1x1/sy.svg +6 -0
  479. package/src/assets/flags/1x1/sz.svg +34 -0
  480. package/src/assets/flags/1x1/ta.svg +76 -0
  481. package/src/assets/flags/1x1/tc.svg +50 -0
  482. package/src/assets/flags/1x1/td.svg +7 -0
  483. package/src/assets/flags/1x1/tf.svg +15 -0
  484. package/src/assets/flags/1x1/tg.svg +14 -0
  485. package/src/assets/flags/1x1/th.svg +7 -0
  486. package/src/assets/flags/1x1/tj.svg +26 -0
  487. package/src/assets/flags/1x1/tk.svg +5 -0
  488. package/src/assets/flags/1x1/tl.svg +13 -0
  489. package/src/assets/flags/1x1/tm.svg +202 -0
  490. package/src/assets/flags/1x1/tn.svg +13 -0
  491. package/src/assets/flags/1x1/to.svg +10 -0
  492. package/src/assets/flags/1x1/tr.svg +8 -0
  493. package/src/assets/flags/1x1/tt.svg +7 -0
  494. package/src/assets/flags/1x1/tv.svg +9 -0
  495. package/src/assets/flags/1x1/tw.svg +32 -0
  496. package/src/assets/flags/1x1/tz.svg +15 -0
  497. package/src/assets/flags/1x1/ua.svg +6 -0
  498. package/src/assets/flags/1x1/ug.svg +30 -0
  499. package/src/assets/flags/1x1/um.svg +15 -0
  500. package/src/assets/flags/1x1/un.svg +16 -0
  501. package/src/assets/flags/1x1/us.svg +10 -0
  502. package/src/assets/flags/1x1/uy.svg +28 -0
  503. package/src/assets/flags/1x1/uz.svg +30 -0
  504. package/src/assets/flags/1x1/va.svg +479 -0
  505. package/src/assets/flags/1x1/vc.svg +8 -0
  506. package/src/assets/flags/1x1/ve.svg +26 -0
  507. package/src/assets/flags/1x1/vg.svg +63 -0
  508. package/src/assets/flags/1x1/vi.svg +28 -0
  509. package/src/assets/flags/1x1/vn.svg +11 -0
  510. package/src/assets/flags/1x1/vu.svg +21 -0
  511. package/src/assets/flags/1x1/wf.svg +7 -0
  512. package/src/assets/flags/1x1/ws.svg +7 -0
  513. package/src/assets/flags/1x1/xk.svg +8 -0
  514. package/src/assets/flags/1x1/xx.svg +4 -0
  515. package/src/assets/flags/1x1/ye.svg +7 -0
  516. package/src/assets/flags/1x1/yt.svg +7 -0
  517. package/src/assets/flags/1x1/za.svg +17 -0
  518. package/src/assets/flags/1x1/zm.svg +27 -0
  519. package/src/assets/flags/1x1/zw.svg +21 -0
  520. package/src/assets/flags/4x3/ac.svg +76 -0
  521. package/src/assets/flags/4x3/ad.svg +150 -0
  522. package/src/assets/flags/4x3/ae.svg +6 -0
  523. package/src/assets/flags/4x3/af.svg +81 -0
  524. package/src/assets/flags/4x3/ag.svg +14 -0
  525. package/src/assets/flags/4x3/ai.svg +758 -0
  526. package/src/assets/flags/4x3/al.svg +5 -0
  527. package/src/assets/flags/4x3/am.svg +5 -0
  528. package/src/assets/flags/4x3/ao.svg +13 -0
  529. package/src/assets/flags/4x3/aq.svg +5 -0
  530. package/src/assets/flags/4x3/ar.svg +32 -0
  531. package/src/assets/flags/4x3/as.svg +72 -0
  532. package/src/assets/flags/4x3/at.svg +6 -0
  533. package/src/assets/flags/4x3/au.svg +8 -0
  534. package/src/assets/flags/4x3/aw.svg +186 -0
  535. package/src/assets/flags/4x3/ax.svg +18 -0
  536. package/src/assets/flags/4x3/az.svg +8 -0
  537. package/src/assets/flags/4x3/ba.svg +12 -0
  538. package/src/assets/flags/4x3/bb.svg +6 -0
  539. package/src/assets/flags/4x3/bd.svg +4 -0
  540. package/src/assets/flags/4x3/be.svg +7 -0
  541. package/src/assets/flags/4x3/bf.svg +7 -0
  542. package/src/assets/flags/4x3/bg.svg +7 -0
  543. package/src/assets/flags/4x3/bh.svg +4 -0
  544. package/src/assets/flags/4x3/bi.svg +15 -0
  545. package/src/assets/flags/4x3/bj.svg +14 -0
  546. package/src/assets/flags/4x3/bl.svg +7 -0
  547. package/src/assets/flags/4x3/bm.svg +97 -0
  548. package/src/assets/flags/4x3/bn.svg +36 -0
  549. package/src/assets/flags/4x3/bo.svg +676 -0
  550. package/src/assets/flags/4x3/bq.svg +5 -0
  551. package/src/assets/flags/4x3/br.svg +45 -0
  552. package/src/assets/flags/4x3/bs.svg +13 -0
  553. package/src/assets/flags/4x3/bt.svg +89 -0
  554. package/src/assets/flags/4x3/bv.svg +13 -0
  555. package/src/assets/flags/4x3/bw.svg +7 -0
  556. package/src/assets/flags/4x3/by.svg +20 -0
  557. package/src/assets/flags/4x3/bz.svg +145 -0
  558. package/src/assets/flags/4x3/ca.svg +4 -0
  559. package/src/assets/flags/4x3/cc.svg +19 -0
  560. package/src/assets/flags/4x3/cd.svg +5 -0
  561. package/src/assets/flags/4x3/cefta.svg +13 -0
  562. package/src/assets/flags/4x3/cf.svg +15 -0
  563. package/src/assets/flags/4x3/cg.svg +12 -0
  564. package/src/assets/flags/4x3/ch.svg +9 -0
  565. package/src/assets/flags/4x3/ci.svg +7 -0
  566. package/src/assets/flags/4x3/ck.svg +9 -0
  567. package/src/assets/flags/4x3/cl.svg +13 -0
  568. package/src/assets/flags/4x3/cm.svg +15 -0
  569. package/src/assets/flags/4x3/cn.svg +11 -0
  570. package/src/assets/flags/4x3/co.svg +7 -0
  571. package/src/assets/flags/4x3/cp.svg +7 -0
  572. package/src/assets/flags/4x3/cr.svg +7 -0
  573. package/src/assets/flags/4x3/cu.svg +13 -0
  574. package/src/assets/flags/4x3/cv.svg +13 -0
  575. package/src/assets/flags/4x3/cw.svg +14 -0
  576. package/src/assets/flags/4x3/cx.svg +15 -0
  577. package/src/assets/flags/4x3/cy.svg +6 -0
  578. package/src/assets/flags/4x3/cz.svg +5 -0
  579. package/src/assets/flags/4x3/de.svg +5 -0
  580. package/src/assets/flags/4x3/dg.svg +129 -0
  581. package/src/assets/flags/4x3/dj.svg +13 -0
  582. package/src/assets/flags/4x3/dk.svg +5 -0
  583. package/src/assets/flags/4x3/dm.svg +152 -0
  584. package/src/assets/flags/4x3/do.svg +6745 -0
  585. package/src/assets/flags/4x3/dz.svg +5 -0
  586. package/src/assets/flags/4x3/ea.svg +544 -0
  587. package/src/assets/flags/4x3/ec.svg +138 -0
  588. package/src/assets/flags/4x3/ee.svg +7 -0
  589. package/src/assets/flags/4x3/eg.svg +38 -0
  590. package/src/assets/flags/4x3/eh.svg +16 -0
  591. package/src/assets/flags/4x3/er.svg +8 -0
  592. package/src/assets/flags/4x3/es-ct.svg +4 -0
  593. package/src/assets/flags/4x3/es-ga.svg +187 -0
  594. package/src/assets/flags/4x3/es.svg +544 -0
  595. package/src/assets/flags/4x3/et.svg +14 -0
  596. package/src/assets/flags/4x3/eu.svg +28 -0
  597. package/src/assets/flags/4x3/fi.svg +5 -0
  598. package/src/assets/flags/4x3/fj.svg +120 -0
  599. package/src/assets/flags/4x3/fk.svg +90 -0
  600. package/src/assets/flags/4x3/fm.svg +11 -0
  601. package/src/assets/flags/4x3/fo.svg +12 -0
  602. package/src/assets/flags/4x3/fr.svg +7 -0
  603. package/src/assets/flags/4x3/ga.svg +7 -0
  604. package/src/assets/flags/4x3/gb-eng.svg +5 -0
  605. package/src/assets/flags/4x3/gb-nir.svg +132 -0
  606. package/src/assets/flags/4x3/gb-sct.svg +4 -0
  607. package/src/assets/flags/4x3/gb-wls.svg +9 -0
  608. package/src/assets/flags/4x3/gb.svg +7 -0
  609. package/src/assets/flags/4x3/gd.svg +27 -0
  610. package/src/assets/flags/4x3/ge.svg +6 -0
  611. package/src/assets/flags/4x3/gf.svg +7 -0
  612. package/src/assets/flags/4x3/gg.svg +9 -0
  613. package/src/assets/flags/4x3/gh.svg +6 -0
  614. package/src/assets/flags/4x3/gi.svg +32 -0
  615. package/src/assets/flags/4x3/gl.svg +4 -0
  616. package/src/assets/flags/4x3/gm.svg +14 -0
  617. package/src/assets/flags/4x3/gn.svg +7 -0
  618. package/src/assets/flags/4x3/gp.svg +7 -0
  619. package/src/assets/flags/4x3/gq.svg +23 -0
  620. package/src/assets/flags/4x3/gr.svg +16 -0
  621. package/src/assets/flags/4x3/gs.svg +133 -0
  622. package/src/assets/flags/4x3/gt.svg +220 -0
  623. package/src/assets/flags/4x3/gu.svg +23 -0
  624. package/src/assets/flags/4x3/gw.svg +13 -0
  625. package/src/assets/flags/4x3/gy.svg +9 -0
  626. package/src/assets/flags/4x3/hk.svg +30 -0
  627. package/src/assets/flags/4x3/hm.svg +8 -0
  628. package/src/assets/flags/4x3/hn.svg +18 -0
  629. package/src/assets/flags/4x3/hr.svg +58 -0
  630. package/src/assets/flags/4x3/ht.svg +116 -0
  631. package/src/assets/flags/4x3/hu.svg +7 -0
  632. package/src/assets/flags/4x3/ic.svg +7 -0
  633. package/src/assets/flags/4x3/id.svg +4 -0
  634. package/src/assets/flags/4x3/ie.svg +7 -0
  635. package/src/assets/flags/4x3/il.svg +14 -0
  636. package/src/assets/flags/4x3/im.svg +36 -0
  637. package/src/assets/flags/4x3/in.svg +25 -0
  638. package/src/assets/flags/4x3/io.svg +129 -0
  639. package/src/assets/flags/4x3/iq.svg +10 -0
  640. package/src/assets/flags/4x3/ir.svg +219 -0
  641. package/src/assets/flags/4x3/is.svg +12 -0
  642. package/src/assets/flags/4x3/it.svg +7 -0
  643. package/src/assets/flags/4x3/je.svg +45 -0
  644. package/src/assets/flags/4x3/jm.svg +8 -0
  645. package/src/assets/flags/4x3/jo.svg +16 -0
  646. package/src/assets/flags/4x3/jp.svg +11 -0
  647. package/src/assets/flags/4x3/ke.svg +23 -0
  648. package/src/assets/flags/4x3/kg.svg +15 -0
  649. package/src/assets/flags/4x3/kh.svg +61 -0
  650. package/src/assets/flags/4x3/ki.svg +36 -0
  651. package/src/assets/flags/4x3/km.svg +16 -0
  652. package/src/assets/flags/4x3/kn.svg +14 -0
  653. package/src/assets/flags/4x3/kp.svg +15 -0
  654. package/src/assets/flags/4x3/kr.svg +24 -0
  655. package/src/assets/flags/4x3/kw.svg +13 -0
  656. package/src/assets/flags/4x3/ky.svg +109 -0
  657. package/src/assets/flags/4x3/kz.svg +23 -0
  658. package/src/assets/flags/4x3/la.svg +12 -0
  659. package/src/assets/flags/4x3/lb.svg +15 -0
  660. package/src/assets/flags/4x3/lc.svg +8 -0
  661. package/src/assets/flags/4x3/li.svg +43 -0
  662. package/src/assets/flags/4x3/lk.svg +22 -0
  663. package/src/assets/flags/4x3/lr.svg +14 -0
  664. package/src/assets/flags/4x3/ls.svg +8 -0
  665. package/src/assets/flags/4x3/lt.svg +7 -0
  666. package/src/assets/flags/4x3/lu.svg +5 -0
  667. package/src/assets/flags/4x3/lv.svg +6 -0
  668. package/src/assets/flags/4x3/ly.svg +13 -0
  669. package/src/assets/flags/4x3/ma.svg +4 -0
  670. package/src/assets/flags/4x3/mc.svg +6 -0
  671. package/src/assets/flags/4x3/md.svg +70 -0
  672. package/src/assets/flags/4x3/me.svg +116 -0
  673. package/src/assets/flags/4x3/mf.svg +7 -0
  674. package/src/assets/flags/4x3/mg.svg +7 -0
  675. package/src/assets/flags/4x3/mh.svg +7 -0
  676. package/src/assets/flags/4x3/mk.svg +5 -0
  677. package/src/assets/flags/4x3/ml.svg +7 -0
  678. package/src/assets/flags/4x3/mm.svg +12 -0
  679. package/src/assets/flags/4x3/mn.svg +14 -0
  680. package/src/assets/flags/4x3/mo.svg +9 -0
  681. package/src/assets/flags/4x3/mp.svg +86 -0
  682. package/src/assets/flags/4x3/mq.svg +7 -0
  683. package/src/assets/flags/4x3/mr.svg +6 -0
  684. package/src/assets/flags/4x3/ms.svg +33 -0
  685. package/src/assets/flags/4x3/mt.svg +49 -0
  686. package/src/assets/flags/4x3/mu.svg +8 -0
  687. package/src/assets/flags/4x3/mv.svg +6 -0
  688. package/src/assets/flags/4x3/mw.svg +10 -0
  689. package/src/assets/flags/4x3/mx.svg +382 -0
  690. package/src/assets/flags/4x3/my.svg +7 -0
  691. package/src/assets/flags/4x3/mz.svg +21 -0
  692. package/src/assets/flags/4x3/na.svg +16 -0
  693. package/src/assets/flags/4x3/nc.svg +13 -0
  694. package/src/assets/flags/4x3/ne.svg +6 -0
  695. package/src/assets/flags/4x3/nf.svg +9 -0
  696. package/src/assets/flags/4x3/ng.svg +6 -0
  697. package/src/assets/flags/4x3/ni.svg +129 -0
  698. package/src/assets/flags/4x3/nl.svg +5 -0
  699. package/src/assets/flags/4x3/no.svg +7 -0
  700. package/src/assets/flags/4x3/np.svg +14 -0
  701. package/src/assets/flags/4x3/nr.svg +12 -0
  702. package/src/assets/flags/4x3/nu.svg +10 -0
  703. package/src/assets/flags/4x3/nz.svg +36 -0
  704. package/src/assets/flags/4x3/om.svg +115 -0
  705. package/src/assets/flags/4x3/pa.svg +14 -0
  706. package/src/assets/flags/4x3/pe.svg +244 -0
  707. package/src/assets/flags/4x3/pf.svg +19 -0
  708. package/src/assets/flags/4x3/pg.svg +9 -0
  709. package/src/assets/flags/4x3/ph.svg +6 -0
  710. package/src/assets/flags/4x3/pk.svg +15 -0
  711. package/src/assets/flags/4x3/pl.svg +6 -0
  712. package/src/assets/flags/4x3/pm.svg +7 -0
  713. package/src/assets/flags/4x3/pn.svg +53 -0
  714. package/src/assets/flags/4x3/pr.svg +13 -0
  715. package/src/assets/flags/4x3/ps.svg +15 -0
  716. package/src/assets/flags/4x3/pt.svg +57 -0
  717. package/src/assets/flags/4x3/pw.svg +11 -0
  718. package/src/assets/flags/4x3/py.svg +157 -0
  719. package/src/assets/flags/4x3/qa.svg +4 -0
  720. package/src/assets/flags/4x3/re.svg +7 -0
  721. package/src/assets/flags/4x3/ro.svg +7 -0
  722. package/src/assets/flags/4x3/rs.svg +292 -0
  723. package/src/assets/flags/4x3/ru.svg +7 -0
  724. package/src/assets/flags/4x3/rw.svg +13 -0
  725. package/src/assets/flags/4x3/sa.svg +26 -0
  726. package/src/assets/flags/4x3/sb.svg +13 -0
  727. package/src/assets/flags/4x3/sc.svg +7 -0
  728. package/src/assets/flags/4x3/sd.svg +13 -0
  729. package/src/assets/flags/4x3/se.svg +4 -0
  730. package/src/assets/flags/4x3/sg.svg +13 -0
  731. package/src/assets/flags/4x3/sh.svg +76 -0
  732. package/src/assets/flags/4x3/si.svg +18 -0
  733. package/src/assets/flags/4x3/sj.svg +7 -0
  734. package/src/assets/flags/4x3/sk.svg +9 -0
  735. package/src/assets/flags/4x3/sl.svg +7 -0
  736. package/src/assets/flags/4x3/sm.svg +75 -0
  737. package/src/assets/flags/4x3/sn.svg +8 -0
  738. package/src/assets/flags/4x3/so.svg +11 -0
  739. package/src/assets/flags/4x3/sr.svg +6 -0
  740. package/src/assets/flags/4x3/ss.svg +8 -0
  741. package/src/assets/flags/4x3/st.svg +16 -0
  742. package/src/assets/flags/4x3/sv.svg +594 -0
  743. package/src/assets/flags/4x3/sx.svg +56 -0
  744. package/src/assets/flags/4x3/sy.svg +6 -0
  745. package/src/assets/flags/4x3/sz.svg +34 -0
  746. package/src/assets/flags/4x3/ta.svg +76 -0
  747. package/src/assets/flags/4x3/tc.svg +50 -0
  748. package/src/assets/flags/4x3/td.svg +7 -0
  749. package/src/assets/flags/4x3/tf.svg +15 -0
  750. package/src/assets/flags/4x3/tg.svg +14 -0
  751. package/src/assets/flags/4x3/th.svg +7 -0
  752. package/src/assets/flags/4x3/tj.svg +22 -0
  753. package/src/assets/flags/4x3/tk.svg +5 -0
  754. package/src/assets/flags/4x3/tl.svg +13 -0
  755. package/src/assets/flags/4x3/tm.svg +205 -0
  756. package/src/assets/flags/4x3/tn.svg +13 -0
  757. package/src/assets/flags/4x3/to.svg +10 -0
  758. package/src/assets/flags/4x3/tr.svg +8 -0
  759. package/src/assets/flags/4x3/tt.svg +5 -0
  760. package/src/assets/flags/4x3/tv.svg +9 -0
  761. package/src/assets/flags/4x3/tw.svg +34 -0
  762. package/src/assets/flags/4x3/tz.svg +13 -0
  763. package/src/assets/flags/4x3/ua.svg +6 -0
  764. package/src/assets/flags/4x3/ug.svg +30 -0
  765. package/src/assets/flags/4x3/um.svg +15 -0
  766. package/src/assets/flags/4x3/un.svg +16 -0
  767. package/src/assets/flags/4x3/us.svg +10 -0
  768. package/src/assets/flags/4x3/uy.svg +28 -0
  769. package/src/assets/flags/4x3/uz.svg +30 -0
  770. package/src/assets/flags/4x3/va.svg +479 -0
  771. package/src/assets/flags/4x3/vc.svg +8 -0
  772. package/src/assets/flags/4x3/ve.svg +26 -0
  773. package/src/assets/flags/4x3/vg.svg +63 -0
  774. package/src/assets/flags/4x3/vi.svg +28 -0
  775. package/src/assets/flags/4x3/vn.svg +11 -0
  776. package/src/assets/flags/4x3/vu.svg +21 -0
  777. package/src/assets/flags/4x3/wf.svg +7 -0
  778. package/src/assets/flags/4x3/ws.svg +7 -0
  779. package/src/assets/flags/4x3/xk.svg +8 -0
  780. package/src/assets/flags/4x3/xx.svg +4 -0
  781. package/src/assets/flags/4x3/ye.svg +7 -0
  782. package/src/assets/flags/4x3/yt.svg +7 -0
  783. package/src/assets/flags/4x3/za.svg +17 -0
  784. package/src/assets/flags/4x3/zm.svg +27 -0
  785. package/src/assets/flags/4x3/zw.svg +21 -0
  786. package/src/environments/environment.prod.ts +3 -0
  787. package/src/environments/environment.ts +16 -0
  788. package/src/favicon.ico +0 -0
  789. package/src/index.html +16 -0
  790. package/src/main.ts +12 -0
  791. package/src/polyfills.ts +53 -0
  792. package/src/styles.scss +39 -0
  793. package/src/test.ts +26 -0
  794. package/src/webgl/WebGLQuery.min.js +6 -0
  795. package/src/webgl/WebGLViewerLight.min.js +89 -0
  796. package/src/webgl/gl-matrix.min.js +47 -0
  797. package/tsconfig.app.json +15 -0
  798. package/tsconfig.json +33 -0
  799. package/tsconfig.spec.json +18 -0
  800. package/esm2020/fabrikantencore.mjs +0 -5
  801. package/esm2020/public_api.mjs +0 -4
  802. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.mjs +0 -38
  803. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.mjs +0 -77
  804. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.mjs +0 -28
  805. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.mjs +0 -116
  806. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.mjs +0 -15
  807. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.mjs +0 -52
  808. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.mjs +0 -90
  809. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.mjs +0 -30
  810. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.mjs +0 -74
  811. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.mjs +0 -44
  812. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.mjs +0 -16
  813. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +0 -47
  814. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.mjs +0 -54
  815. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.mjs +0 -220
  816. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.mjs +0 -105
  817. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.mjs +0 -113
  818. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +0 -133
  819. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.mjs +0 -16
  820. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.mjs +0 -157
  821. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.mjs +0 -28
  822. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +0 -151
  823. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.mjs +0 -89
  824. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.mjs +0 -299
  825. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.mjs +0 -24
  826. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.mjs +0 -24
  827. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.mjs +0 -25
  828. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.mjs +0 -114
  829. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.mjs +0 -15
  830. package/esm2020/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.mjs +0 -14
  831. package/esm2020/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.mjs +0 -59
  832. package/esm2020/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.mjs +0 -32
  833. package/esm2020/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.mjs +0 -42
  834. package/esm2020/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.mjs +0 -59
  835. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs +0 -45
  836. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +0 -26
  837. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.mjs +0 -32
  838. package/esm2020/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.mjs +0 -16
  839. package/esm2020/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.mjs +0 -40
  840. package/esm2020/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.mjs +0 -24
  841. package/esm2020/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.mjs +0 -15
  842. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.mjs +0 -66
  843. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.mjs +0 -30
  844. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.mjs +0 -21
  845. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.mjs +0 -41
  846. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +0 -83
  847. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +0 -64
  848. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.mjs +0 -40
  849. package/esm2020/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.mjs +0 -82
  850. package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs +0 -28
  851. package/esm2020/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.mjs +0 -83
  852. package/esm2020/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.mjs +0 -89
  853. package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +0 -372
  854. package/esm2020/src/app/modules/fabrikantencore/helpers/auth.guard.mjs +0 -29
  855. package/esm2020/src/app/modules/fabrikantencore/helpers/basic-auth.interceptor.mjs +0 -26
  856. package/esm2020/src/app/modules/fabrikantencore/helpers/error.interceptor.mjs +0 -27
  857. package/esm2020/src/app/modules/fabrikantencore/services/authentication.service.mjs +0 -47
  858. package/esm2020/src/app/modules/fabrikantencore/services/bestek.service.mjs +0 -106
  859. package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +0 -493
  860. package/esm2020/src/app/modules/fabrikantencore/services/importsets.service.mjs +0 -114
  861. package/esm2020/src/app/modules/fabrikantencore/services/mobile.service.mjs +0 -35
  862. package/esm2020/src/app/modules/fabrikantencore/services/navigate.service.mjs +0 -32
  863. package/esm2020/src/app/modules/fabrikantencore/services/photo.service.mjs +0 -98
  864. package/esm2020/src/app/modules/fabrikantencore/services/products.service.mjs +0 -228
  865. package/esm2020/src/app/modules/fabrikantencore/services/projectsetting.service.mjs +0 -77
  866. package/esm2020/src/app/modules/fabrikantencore/services/svg.service.mjs +0 -70
  867. package/esm2020/src/app/modules/fabrikantencore/services/translate.service.mjs +0 -268
  868. package/esm2020/src/app/modules/fabrikantencore/services/webgl.service.mjs +0 -60
  869. package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +0 -7974
  870. package/fesm2015/fabrikantencore.mjs +0 -12746
  871. package/fesm2015/fabrikantencore.mjs.map +0 -1
  872. package/fesm2020/fabrikantencore.mjs +0 -12661
  873. package/fesm2020/fabrikantencore.mjs.map +0 -1
  874. package/index.d.ts +0 -5
  875. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.d.ts +0 -13
  876. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.d.ts +0 -22
  877. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.d.ts +0 -11
  878. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.d.ts +0 -22
  879. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.d.ts +0 -8
  880. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.d.ts +0 -17
  881. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.d.ts +0 -29
  882. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.d.ts +0 -14
  883. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.d.ts +0 -23
  884. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.d.ts +0 -21
  885. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.d.ts +0 -8
  886. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.d.ts +0 -19
  887. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.d.ts +0 -17
  888. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.d.ts +0 -37
  889. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.d.ts +0 -31
  890. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.d.ts +0 -30
  891. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.d.ts +0 -22
  892. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.d.ts +0 -10
  893. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.d.ts +0 -36
  894. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.d.ts +0 -14
  895. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.d.ts +0 -26
  896. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.d.ts +0 -23
  897. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.d.ts +0 -41
  898. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.d.ts +0 -12
  899. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.d.ts +0 -12
  900. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.d.ts +0 -11
  901. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.d.ts +0 -21
  902. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.d.ts +0 -8
  903. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.d.ts +0 -8
  904. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.d.ts +0 -21
  905. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.d.ts +0 -15
  906. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.d.ts +0 -20
  907. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.d.ts +0 -22
  908. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.d.ts +0 -21
  909. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.d.ts +0 -14
  910. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.d.ts +0 -12
  911. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.d.ts +0 -9
  912. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.d.ts +0 -17
  913. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.d.ts +0 -13
  914. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.d.ts +0 -8
  915. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.d.ts +0 -29
  916. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.d.ts +0 -13
  917. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.d.ts +0 -12
  918. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.d.ts +0 -17
  919. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.d.ts +0 -30
  920. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.d.ts +0 -25
  921. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.d.ts +0 -22
  922. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.d.ts +0 -23
  923. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.d.ts +0 -15
  924. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.d.ts +0 -29
  925. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.d.ts +0 -25
  926. package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +0 -80
  927. package/src/app/modules/fabrikantencore/helpers/auth.guard.d.ts +0 -11
  928. package/src/app/modules/fabrikantencore/helpers/basic-auth.interceptor.d.ts +0 -11
  929. package/src/app/modules/fabrikantencore/helpers/error.interceptor.d.ts +0 -11
  930. package/src/app/modules/fabrikantencore/services/authentication.service.d.ts +0 -16
  931. package/src/app/modules/fabrikantencore/services/bestek.service.d.ts +0 -19
  932. package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +0 -59
  933. package/src/app/modules/fabrikantencore/services/importsets.service.d.ts +0 -22
  934. package/src/app/modules/fabrikantencore/services/mobile.service.d.ts +0 -15
  935. package/src/app/modules/fabrikantencore/services/navigate.service.d.ts +0 -13
  936. package/src/app/modules/fabrikantencore/services/photo.service.d.ts +0 -20
  937. package/src/app/modules/fabrikantencore/services/products.service.d.ts +0 -29
  938. package/src/app/modules/fabrikantencore/services/projectsetting.service.d.ts +0 -19
  939. package/src/app/modules/fabrikantencore/services/svg.service.d.ts +0 -22
  940. package/src/app/modules/fabrikantencore/services/translate.service.d.ts +0 -44
  941. package/src/app/modules/fabrikantencore/services/webgl.service.d.ts +0 -19
  942. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +0 -2057
@@ -1,493 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { SelectProductRequest, SelectFilterOptionRequest, SelectCategoryRequest, SetRangeInputRequest, ResetFilterRequest, ResetAllFiltersRequest, ResetCategoryLayerRequest, RemoveProductSelectionRequest, FabrikantenRequestModel, ResetAllCategoriesRequest, BCBLinkRequestModel, FabrikantenFileRequestModel } from '../swagger/SwaggerClient';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../swagger/SwaggerClient";
5
- import * as i2 from "./bestek.service";
6
- import * as i3 from "./translate.service";
7
- import * as i4 from "./webgl.service";
8
- import * as i5 from "./svg.service";
9
- import * as i6 from "./navigate.service";
10
- export class FabrikantenService {
11
- constructor(FabrikantenApiClient, BestekService, TranslateService, WebGLService, SVGService, NavigateService) {
12
- this.FabrikantenApiClient = FabrikantenApiClient;
13
- this.BestekService = BestekService;
14
- this.TranslateService = TranslateService;
15
- this.WebGLService = WebGLService;
16
- this.SVGService = SVGService;
17
- this.NavigateService = NavigateService;
18
- this.Init = false;
19
- this.Loading = true;
20
- this.DownloadARKEYAdomiLoading = false;
21
- this.DownloadIFCLoading = false;
22
- this.DownloadRevitPluginLoading = false;
23
- this.Download3DAutoCADDwgLoading = false;
24
- this.Download3DDxfLoading = false;
25
- this.Download2DAutoCADDwgLoading = false;
26
- this.Download2DDxfLoading = false;
27
- this.DownloadRFALoading = false;
28
- this.SelectedPhoto = 0;
29
- this.SelectedTab = "Informatie";
30
- this.NavigateService.FabrikantenService = this;
31
- this.SVGService.FabrikantenService = this;
32
- }
33
- ResetAllFilters(ChangeDetectorRef) {
34
- this.Loading = true;
35
- ChangeDetectorRef.detectChanges();
36
- var request = new ResetAllFiltersRequest();
37
- request.sessionId = this.FabrikantenViewModel.sessionId;
38
- this.FabrikantenApiClient.resetAllFilters(request).subscribe(() => {
39
- this.ReloadModel(ChangeDetectorRef);
40
- }, (error) => {
41
- if (error.status == 400)
42
- console.log(error.json());
43
- else {
44
- console.log('An unexpected error occured');
45
- console.log(error);
46
- }
47
- this.Loading = false;
48
- ChangeDetectorRef.detectChanges();
49
- });
50
- }
51
- SelectOption(filterid, filteroptionid, ChangeDetectorRef) {
52
- this.Loading = true;
53
- ChangeDetectorRef.detectChanges();
54
- var request = new SelectFilterOptionRequest();
55
- request.sessionId = this.FabrikantenViewModel.sessionId;
56
- request.filterOptionId = filteroptionid;
57
- request.filterId = filterid;
58
- this.FabrikantenApiClient.selectFilterOption(request).subscribe(() => {
59
- this.ReloadModel(ChangeDetectorRef);
60
- }, (error) => {
61
- if (error.status == 400)
62
- console.log(error.json());
63
- else {
64
- console.log('An unexpected error occured');
65
- console.log(error);
66
- }
67
- this.Loading = false;
68
- ChangeDetectorRef.detectChanges();
69
- });
70
- }
71
- SetRangeInput(rangeinputid, value, ChangeDetectorRef) {
72
- this.Loading = true;
73
- ChangeDetectorRef.detectChanges();
74
- var request = new SetRangeInputRequest();
75
- request.sessionId = this.FabrikantenViewModel.sessionId;
76
- request.rangeInputId = rangeinputid;
77
- request.value = value;
78
- this.FabrikantenApiClient.setRangeInput(request).subscribe(() => {
79
- this.ReloadModel(ChangeDetectorRef);
80
- }, (error) => {
81
- if (error.status == 400)
82
- console.log(error.json());
83
- else {
84
- console.log('An unexpected error occured');
85
- console.log(error);
86
- }
87
- this.Loading = false;
88
- ChangeDetectorRef.detectChanges();
89
- });
90
- }
91
- SelectCategory(category, ChangeDetectorRef) {
92
- this.Loading = true;
93
- ChangeDetectorRef.detectChanges();
94
- var request = new SelectCategoryRequest();
95
- request.sessionId = this.FabrikantenViewModel.sessionId;
96
- request.categoryId = category.id;
97
- request.categoryLayer = category.layer;
98
- this.FabrikantenApiClient.selectCategory(request).subscribe(() => {
99
- this.ReloadModel(ChangeDetectorRef);
100
- }, (error) => {
101
- if (error.status == 400)
102
- console.log(error.json());
103
- else {
104
- console.log('An unexpected error occured');
105
- console.log(error);
106
- }
107
- this.Loading = false;
108
- ChangeDetectorRef.detectChanges();
109
- });
110
- }
111
- SelectProduct(product, ChangeDetectorRef) {
112
- this.Loading = true;
113
- ChangeDetectorRef.detectChanges();
114
- var request = new SelectProductRequest();
115
- request.sessionId = this.FabrikantenViewModel.sessionId;
116
- request.productId = product.id;
117
- this.FabrikantenApiClient.selectProduct(request).subscribe(() => {
118
- this.ReloadModel(ChangeDetectorRef);
119
- }, (error) => {
120
- if (error.status == 400)
121
- console.log(error.json());
122
- else {
123
- console.log('An unexpected error occured');
124
- console.log(error);
125
- }
126
- this.Loading = false;
127
- ChangeDetectorRef.detectChanges();
128
- });
129
- }
130
- ResetSelectionFilter(filter, ChangeDetectorRef) {
131
- this.Loading = true;
132
- ChangeDetectorRef.detectChanges();
133
- var request = new ResetFilterRequest();
134
- request.filterId = filter.id;
135
- request.sessionId = this.FabrikantenViewModel.sessionId;
136
- this.FabrikantenApiClient.resetFilterSelection(request).subscribe(() => {
137
- this.ReloadModel(ChangeDetectorRef);
138
- }, (error) => {
139
- if (error.status == 400)
140
- console.log(error.json());
141
- else {
142
- console.log('An unexpected error occured');
143
- console.log(error);
144
- }
145
- this.Loading = false;
146
- ChangeDetectorRef.detectChanges();
147
- });
148
- }
149
- ResetAllCategories(ChangeDetectorRef) {
150
- if (this.FabrikantenViewModel != null) {
151
- this.Loading = true;
152
- var request = new ResetAllCategoriesRequest();
153
- request.sessionId = this.FabrikantenViewModel.sessionId;
154
- this.FabrikantenApiClient.resetAllCategories(request).subscribe(() => {
155
- this.ReloadModel(ChangeDetectorRef);
156
- }, (error) => {
157
- if (error.status == 400)
158
- console.log(error.json());
159
- else {
160
- console.log('An unexpected error occured');
161
- console.log(error);
162
- }
163
- this.Loading = false;
164
- ChangeDetectorRef.detectChanges();
165
- });
166
- }
167
- }
168
- ResetSelectionCategory(categorylayer, ChangeDetectorRef) {
169
- this.Loading = true;
170
- ChangeDetectorRef.detectChanges();
171
- var request = new ResetCategoryLayerRequest();
172
- request.categoryLayer = categorylayer.layer;
173
- request.sessionId = this.FabrikantenViewModel.sessionId;
174
- this.FabrikantenApiClient.resetCategoryLayerSelection(request).subscribe(() => {
175
- this.ResetAllFilters(ChangeDetectorRef);
176
- }, (error) => {
177
- if (error.status == 400)
178
- console.log(error.json());
179
- else {
180
- console.log('An unexpected error occured');
181
- console.log(error);
182
- }
183
- this.Loading = false;
184
- ChangeDetectorRef.detectChanges();
185
- });
186
- }
187
- RemoveProductSelection(ChangeDetectorRef) {
188
- if (this.FabrikantenViewModel != null) {
189
- this.Loading = true;
190
- var request = new RemoveProductSelectionRequest();
191
- request.sessionId = this.FabrikantenViewModel.sessionId;
192
- this.FabrikantenApiClient.removeProductSelection(request).subscribe(() => {
193
- this.ReloadModel(ChangeDetectorRef);
194
- }, (error) => {
195
- if (error.status == 400)
196
- console.log(error.json());
197
- else {
198
- console.log('An unexpected error occured');
199
- console.log(error);
200
- }
201
- this.Loading = false;
202
- ChangeDetectorRef.detectChanges();
203
- });
204
- }
205
- }
206
- TabSelectionChanged(tab, ChangeDetectorRef) {
207
- this.SelectedTab = tab;
208
- this.TriggerReloads(ChangeDetectorRef);
209
- }
210
- GetFirstOpenCategoryLayer() {
211
- var arraylayers = this.FabrikantenViewModel?.categoryLayers;
212
- if (arraylayers != null) {
213
- for (var i = 0; i < arraylayers.length; i++) {
214
- if (arraylayers[i].selectedOption == 0) {
215
- return arraylayers[i];
216
- }
217
- }
218
- }
219
- return null;
220
- }
221
- ShowCategories() {
222
- return this.GetFirstOpenCategoryLayer() != null;
223
- }
224
- ShowVariants() {
225
- var bcbproducts = this.FabrikantenViewModel?.selectedProduct?.fabrikantenBCBProductViewModels;
226
- if (bcbproducts != null && bcbproducts.length > 1) {
227
- return true;
228
- }
229
- return false;
230
- }
231
- OpenBCBLink(wuid) {
232
- this.Loading = true;
233
- var request = new BCBLinkRequestModel();
234
- request.wuid = wuid;
235
- this.FabrikantenApiClient.getBCBLink(request).subscribe((model) => {
236
- window.open(model.url, '_blank');
237
- this.Loading = false;
238
- }, (error) => {
239
- if (error.status == 400)
240
- console.log(error.json());
241
- else {
242
- console.log('An unexpected error occured');
243
- console.log(error);
244
- }
245
- this.Loading = false;
246
- });
247
- }
248
- ReloadModel(ChangeDetectorRef) {
249
- this.Init = false;
250
- this.LoadFabrikantenViewModel(ChangeDetectorRef);
251
- }
252
- LoadFabrikantenViewModel(ChangeDetectorRef) {
253
- if (!this.Init) {
254
- this.Init = true;
255
- this.Loading = true;
256
- ChangeDetectorRef.detectChanges();
257
- var request = new FabrikantenRequestModel();
258
- if (this.FabrikantenViewModel != null) {
259
- request.sessionId = this.FabrikantenViewModel.sessionId;
260
- }
261
- else {
262
- request.sessionId = "";
263
- }
264
- this.FabrikantenApiClient.getFabrikantenViewModel(request).subscribe((model) => {
265
- this.FabrikantenViewModel = model;
266
- this.SelectedPhoto = 0;
267
- this.Loading = false;
268
- ChangeDetectorRef.detectChanges();
269
- this.TriggerReloads(ChangeDetectorRef);
270
- this.NavigateService.RefreshPage();
271
- }, (error) => {
272
- if (error.status == 400)
273
- console.log(error.json());
274
- else {
275
- console.log('An unexpected error occured');
276
- console.log(error);
277
- }
278
- this.Loading = false;
279
- ChangeDetectorRef.detectChanges();
280
- });
281
- }
282
- }
283
- // Downloads
284
- DownloadARKEYAdomi() {
285
- this.DownloadARKEYAdomiLoading = true;
286
- var request = new FabrikantenFileRequestModel();
287
- request.sessionId = this.FabrikantenViewModel.sessionId;
288
- request.fileType = "dhg";
289
- request.model3D = true;
290
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
291
- this.StartDownload(model.data, ".dhg");
292
- this.DownloadARKEYAdomiLoading = false;
293
- }, (error) => {
294
- if (error.status == 400)
295
- console.log(error.json());
296
- else {
297
- console.log('An unexpected error occured');
298
- console.log(error);
299
- }
300
- });
301
- }
302
- DownloadIFC() {
303
- this.DownloadIFCLoading = true;
304
- var request = new FabrikantenFileRequestModel();
305
- request.sessionId = this.FabrikantenViewModel.sessionId;
306
- request.fileType = "ifc";
307
- request.model3D = true;
308
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
309
- this.StartDownload(model.data, ".ifc");
310
- this.DownloadIFCLoading = false;
311
- }, (error) => {
312
- if (error.status == 400)
313
- console.log(error.json());
314
- else {
315
- console.log('An unexpected error occured');
316
- console.log(error);
317
- }
318
- });
319
- }
320
- DownloadRevitPlugin() {
321
- this.DownloadRevitPluginLoading = false;
322
- var request = new FabrikantenFileRequestModel();
323
- request.sessionId = this.FabrikantenViewModel.sessionId;
324
- request.fileType = "hdhRevit";
325
- request.model3D = true;
326
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
327
- this.StartDownload(model.data, ".hdhRevit");
328
- this.DownloadRevitPluginLoading = false;
329
- }, (error) => {
330
- if (error.status == 400)
331
- console.log(error.json());
332
- else {
333
- console.log('An unexpected error occured');
334
- console.log(error);
335
- }
336
- });
337
- }
338
- Download3DAutoCADDwg() {
339
- this.Download3DAutoCADDwgLoading = true;
340
- var request = new FabrikantenFileRequestModel();
341
- request.sessionId = this.FabrikantenViewModel.sessionId;
342
- request.fileType = "dwg";
343
- request.model3D = true;
344
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
345
- this.StartDownload(model.data, ".dwg");
346
- this.Download3DAutoCADDwgLoading = false;
347
- }, (error) => {
348
- if (error.status == 400)
349
- console.log(error.json());
350
- else {
351
- console.log('An unexpected error occured');
352
- console.log(error);
353
- }
354
- });
355
- }
356
- Download3DDxf() {
357
- this.Download3DDxfLoading = true;
358
- var request = new FabrikantenFileRequestModel();
359
- request.sessionId = this.FabrikantenViewModel.sessionId;
360
- request.fileType = "dxf";
361
- request.model3D = true;
362
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
363
- this.StartDownload(model.data, ".dxf");
364
- this.Download3DDxfLoading = false;
365
- }, (error) => {
366
- if (error.status == 400)
367
- console.log(error.json());
368
- else {
369
- console.log('An unexpected error occured');
370
- console.log(error);
371
- }
372
- });
373
- }
374
- Download2DAutoCADDwg() {
375
- this.Download2DAutoCADDwgLoading = true;
376
- var request = new FabrikantenFileRequestModel();
377
- request.sessionId = this.FabrikantenViewModel.sessionId;
378
- request.fileType = "dwg";
379
- request.model3D = false;
380
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
381
- this.StartDownload(model.data, ".dwg");
382
- this.Download2DAutoCADDwgLoading = false;
383
- }, (error) => {
384
- if (error.status == 400)
385
- console.log(error.json());
386
- else {
387
- console.log('An unexpected error occured');
388
- console.log(error);
389
- }
390
- });
391
- }
392
- Download2DDxf() {
393
- this.Download2DDxfLoading = true;
394
- var request = new FabrikantenFileRequestModel();
395
- request.sessionId = this.FabrikantenViewModel.sessionId;
396
- request.fileType = "dxf";
397
- request.model3D = false;
398
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
399
- this.StartDownload(model.data, ".dxf");
400
- this.Download2DDxfLoading = false;
401
- }, (error) => {
402
- if (error.status == 400)
403
- console.log(error.json());
404
- else {
405
- console.log('An unexpected error occured');
406
- console.log(error);
407
- }
408
- });
409
- }
410
- DownloadRFA() {
411
- this.DownloadRFALoading = true;
412
- var request = new FabrikantenFileRequestModel();
413
- request.sessionId = this.FabrikantenViewModel.sessionId;
414
- request.fileType = "rfa";
415
- request.model3D = false;
416
- this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
417
- this.StartDownload(model.data, ".rfa");
418
- this.DownloadRFALoading = false;
419
- }, (error) => {
420
- if (error.status == 400)
421
- console.log(error.json());
422
- else {
423
- console.log('An unexpected error occured');
424
- console.log(error);
425
- }
426
- });
427
- }
428
- StartDownload(data, extension) {
429
- if (this.FabrikantenViewModel?.selectedProduct?.id != null) {
430
- var id = this.FabrikantenViewModel?.selectedProduct?.id;
431
- var arr = data;
432
- var byteArray = new Uint8Array(arr);
433
- var a = window.document.createElement('a');
434
- var filename = this.TranslateService.GetActiveValueProduct(id);
435
- filename = filename.replace(/[^a-z0-9]/gi, '_') + extension;
436
- a.href = window.URL.createObjectURL(new Blob([byteArray], { type: 'application/octet-stream' }));
437
- a.download = filename;
438
- // Append anchor to body.
439
- document.body.appendChild(a);
440
- a.click();
441
- // Remove anchor from body
442
- document.body.removeChild(a);
443
- }
444
- else {
445
- alert('error: no product selected');
446
- }
447
- }
448
- // Reloads
449
- TriggerReloads(ChangeDetectorRef) {
450
- var array = this.FabrikantenViewModel.selectedProduct?.fabrikantenBCBProductViewModels;
451
- if (array != null && array.length == 1) {
452
- if (this.SelectedTab == "Bestek") {
453
- this.BestekService.LoadFabrikantenBestekViewModel(this.FabrikantenViewModel.sessionId, ChangeDetectorRef);
454
- }
455
- else if (this.SelectedTab == "3D") {
456
- this.WebGLService.LoadFabrikanten3DViewModel(this.FabrikantenViewModel.sessionId, ChangeDetectorRef);
457
- }
458
- else if (this.SelectedTab == "2D") {
459
- this.SVGService.LoadFabrikantenSVGViewModel(this.FabrikantenViewModel.sessionId, ChangeDetectorRef);
460
- }
461
- }
462
- }
463
- // Breadcrumb
464
- GetSteps() {
465
- var returnarray = new Array();
466
- var array = this.FabrikantenViewModel?.categoryLayers;
467
- if (array != null) {
468
- for (var i = 0; i < array.length; i++) {
469
- if (array[i].selectedOption != 0) {
470
- var options = array[i].categories;
471
- if (options != null) {
472
- for (var j = 0; j < options.length; j++) {
473
- if (options[j].id === array[i].selectedOption) {
474
- returnarray.push(options[j]);
475
- }
476
- }
477
- }
478
- }
479
- else {
480
- break;
481
- }
482
- }
483
- }
484
- return returnarray;
485
- }
486
- }
487
- FabrikantenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabrikantenService, deps: [{ token: i1.FabrikantenApiClient }, { token: i2.BestekService }, { token: i3.TranslateService }, { token: i4.WebGLService }, { token: i5.SVGService }, { token: i6.NavigateService }], target: i0.ɵɵFactoryTarget.Injectable });
488
- FabrikantenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabrikantenService, providedIn: 'root' });
489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabrikantenService, decorators: [{
490
- type: Injectable,
491
- args: [{ providedIn: 'root' }]
492
- }], ctorParameters: function () { return [{ type: i1.FabrikantenApiClient }, { type: i2.BestekService }, { type: i3.TranslateService }, { type: i4.WebGLService }, { type: i5.SVGService }, { type: i6.NavigateService }]; } });
493
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmlrYW50ZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBSUwsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIseUJBQXlCLEVBQ3pCLDZCQUE2QixFQUc3Qix1QkFBdUIsRUFFdkIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUVuQiwyQkFBMkIsRUFFNUIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFRbEMsTUFBTSxPQUFPLGtCQUFrQjtJQW1CN0IsWUFDVSxvQkFBMEMsRUFDMUMsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ3RCLGVBQWdDO1FBTGhDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXhCbEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV2QixZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ3hCLDhCQUF5QixHQUFZLEtBQUssQ0FBQztRQUMzQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsK0JBQTBCLEdBQVksS0FBSyxDQUFDO1FBQzVDLGdDQUEyQixHQUFZLEtBQUssQ0FBQztRQUM3Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsZ0NBQTJC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TyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NkJBQzlCO3lCQUNGO3FCQUNGO2lCQUNGO3FCQUNJO29CQUNILE1BQU07aUJBQ1A7YUFDRjtTQUNGO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7K0dBL2tCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQURMLE1BQU07MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBGYWJyaWthbnRlbkFwaUNsaWVudCxcclxuICBGYWJyaWthbnRlbkZpbHRlclZpZXdNb2RlbCxcclxuICBGYWJyaWthbnRlblZpZXdNb2RlbCxcclxuICBTZWxlY3RQcm9kdWN0UmVxdWVzdCxcclxuICBTZWxlY3RGaWx0ZXJPcHRpb25SZXF1ZXN0LFxyXG4gIFNlbGVjdENhdGVnb3J5UmVxdWVzdCxcclxuICBTZXRSYW5nZUlucHV0UmVxdWVzdCxcclxuICBSZXNldEZpbHRlclJlcXVlc3QsXHJcbiAgUmVzZXRBbGxGaWx0ZXJzUmVxdWVzdCxcclxuICBSZXNldENhdGVnb3J5TGF5ZXJSZXF1ZXN0LFxyXG4gIFJlbW92ZVByb2R1Y3RTZWxlY3Rpb25SZXF1ZXN0LFxyXG4gIEZhYnJpa2FudGVuUHJvZHVjdFZpZXdNb2RlbCxcclxuICBGYWJyaWthbnRlbkNhdGVnb3J5TGF5ZXJWaWV3TW9kZWwsXHJcbiAgRmFicmlrYW50ZW5SZXF1ZXN0TW9kZWwsXHJcbiAgRmFicmlrYW50ZW5DYXRlZ29yeVZpZXdNb2RlbCxcclxuICBSZXNldEFsbENhdGVnb3JpZXNSZXF1ZXN0LFxyXG4gIEJDQkxpbmtSZXF1ZXN0TW9kZWwsXHJcbiAgQkNCTGlua1Jlc3BvbnNlTW9kZWwsXHJcbiAgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsLFxyXG4gIEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbFxyXG59IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEJlc3Rla1NlcnZpY2UgfSBmcm9tICcuL2Jlc3Rlay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmF2aWdhdGVTZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU1ZHU2VydmljZSB9IGZyb20gJy4vc3ZnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlYkdMU2VydmljZSB9IGZyb20gJy4vd2ViZ2wuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgRmFicmlrYW50ZW5TZXJ2aWNlIHtcclxuICBwcml2YXRlIEluaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBEb3dubG9hZEFSS0VZQWRvbWlMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERvd25sb2FkSUZDTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBEb3dubG9hZFJldml0UGx1Z2luTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBEb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRG93bmxvYWQzRER4ZkxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRG93bmxvYWQyREF1dG9DQUREd2dMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERvd25sb2FkMkREeGZMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERvd25sb2FkUkZBTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgRmFicmlrYW50ZW5WaWV3TW9kZWw6IEZhYnJpa2FudGVuVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRQaG90bzogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBTZWxlY3RlZFRhYjogc3RyaW5nID0gXCJJbmZvcm1hdGllXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBGYWJyaWthbnRlbkFwaUNsaWVudDogRmFicmlrYW50ZW5BcGlDbGllbnQsXHJcbiAgICBwcml2YXRlIEJlc3Rla1NlcnZpY2U6IEJlc3Rla1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIFdlYkdMU2VydmljZTogV2ViR0xTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBTVkdTZXJ2aWNlOiBTVkdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBOYXZpZ2F0ZVNlcnZpY2U6IE5hdmlnYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5OYXZpZ2F0ZVNlcnZpY2UuRmFicmlrYW50ZW5TZXJ2aWNlID0gdGhpcztcclxuICAgIHRoaXMuU1ZHU2VydmljZS5GYWJyaWthbnRlblNlcnZpY2UgPSB0aGlzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0QWxsRmlsdGVycyhDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVzZXRBbGxGaWx0ZXJzUmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZXNldEFsbEZpbHRlcnMocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RPcHRpb24oZmlsdGVyaWQ6IG51bWJlciwgZmlsdGVyb3B0aW9uaWQ6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFNlbGVjdEZpbHRlck9wdGlvblJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG4gICAgcmVxdWVzdC5maWx0ZXJPcHRpb25JZCA9IGZpbHRlcm9wdGlvbmlkO1xyXG4gICAgcmVxdWVzdC5maWx0ZXJJZCA9IGZpbHRlcmlkO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuc2VsZWN0RmlsdGVyT3B0aW9uKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuUmVsb2FkTW9kZWwoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2V0UmFuZ2VJbnB1dChyYW5nZWlucHV0aWQ6IG51bWJlciwgdmFsdWU6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldFJhbmdlSW5wdXRSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QucmFuZ2VJbnB1dElkID0gcmFuZ2VpbnB1dGlkO1xyXG4gICAgcmVxdWVzdC52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuc2V0UmFuZ2VJbnB1dChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdENhdGVnb3J5KGNhdGVnb3J5OiBGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgU2VsZWN0Q2F0ZWdvcnlSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuY2F0ZWdvcnlJZCA9IGNhdGVnb3J5LmlkO1xyXG4gICAgcmVxdWVzdC5jYXRlZ29yeUxheWVyID0gY2F0ZWdvcnkubGF5ZXI7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5zZWxlY3RDYXRlZ29yeShyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogRmFicmlrYW50ZW5Qcm9kdWN0Vmlld01vZGVsLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgU2VsZWN0UHJvZHVjdFJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG4gICAgcmVxdWVzdC5wcm9kdWN0SWQgPSBwcm9kdWN0LmlkO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuc2VsZWN0UHJvZHVjdChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0U2VsZWN0aW9uRmlsdGVyKGZpbHRlcjogRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWwsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXNldEZpbHRlclJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QuZmlsdGVySWQgPSBmaWx0ZXIuaWQ7XHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQucmVzZXRGaWx0ZXJTZWxlY3Rpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZXNldEFsbENhdGVnb3JpZXMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXNldEFsbENhdGVnb3JpZXNSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG5cclxuICAgICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZXNldEFsbENhdGVnb3JpZXMocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRTZWxlY3Rpb25DYXRlZ29yeShjYXRlZ29yeWxheWVyOiBGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVzZXRDYXRlZ29yeUxheWVyUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5jYXRlZ29yeUxheWVyID0gY2F0ZWdvcnlsYXllci5sYXllcjtcclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZXNldENhdGVnb3J5TGF5ZXJTZWxlY3Rpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5SZXNldEFsbEZpbHRlcnMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbihDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlbW92ZVByb2R1Y3RTZWxlY3Rpb25SZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG5cclxuICAgICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZW1vdmVQcm9kdWN0U2VsZWN0aW9uKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFRhYlNlbGVjdGlvbkNoYW5nZWQodGFiOiBzdHJpbmcsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5TZWxlY3RlZFRhYiA9IHRhYjtcclxuXHJcbiAgICB0aGlzLlRyaWdnZXJSZWxvYWRzKENoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRGaXJzdE9wZW5DYXRlZ29yeUxheWVyKCk6IEZhYnJpa2FudGVuQ2F0ZWdvcnlMYXllclZpZXdNb2RlbCB8IG51bGwge1xyXG4gICAgdmFyIGFycmF5bGF5ZXJzID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbD8uY2F0ZWdvcnlMYXllcnM7XHJcblxyXG4gICAgaWYgKGFycmF5bGF5ZXJzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheWxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhcnJheWxheWVyc1tpXS5zZWxlY3RlZE9wdGlvbiA9PSAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gYXJyYXlsYXllcnNbaV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0NhdGVnb3JpZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5HZXRGaXJzdE9wZW5DYXRlZ29yeUxheWVyKCkgIT0gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93VmFyaWFudHMoKTogYm9vbGVhbiB7XHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbkJDQkxpbmsod3VpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEJDQkxpbmtSZXF1ZXN0TW9kZWwoKTtcclxuICAgIHJlcXVlc3Qud3VpZCA9IHd1aWQ7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRCQ0JMaW5rKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEJDQkxpbmtSZXNwb25zZU1vZGVsKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5vcGVuKG1vZGVsLnVybCwgJ19ibGFuaycpO1xyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVsb2FkTW9kZWwoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLkluaXQgPSBmYWxzZTtcclxuICAgIHRoaXMuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2FkRmFicmlrYW50ZW5WaWV3TW9kZWwoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuSW5pdCkge1xyXG4gICAgICB0aGlzLkluaXQgPSB0cnVlO1xyXG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBGYWJyaWthbnRlblJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmVxdWVzdC5zZXNzaW9uSWQgPSBcIlwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuVmlld01vZGVsKSA9PiB7XHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbCA9IG1vZGVsO1xyXG4gICAgICAgIHRoaXMuU2VsZWN0ZWRQaG90byA9IDA7XHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLlRyaWdnZXJSZWxvYWRzKENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICAgICAgdGhpcy5OYXZpZ2F0ZVNlcnZpY2UuUmVmcmVzaFBhZ2UoKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBEb3dubG9hZHNcclxuXHJcbiAgcHVibGljIERvd25sb2FkQVJLRVlBZG9taSgpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWRBUktFWUFkb21pTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuZmlsZVR5cGUgPSBcImRoZ1wiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmRoZ1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZEFSS0VZQWRvbWlMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkSUZDKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Eb3dubG9hZElGQ0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuZmlsZVR5cGUgPSBcImlmY1wiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmlmY1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZElGQ0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWRSZXZpdFBsdWdpbigpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWRSZXZpdFBsdWdpbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJoZGhSZXZpdFwiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmhkaFJldml0XCIpO1xyXG4gICAgICB0aGlzLkRvd25sb2FkUmV2aXRQbHVnaW5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkM0RBdXRvQ0FERHdnKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Eb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuZmlsZVR5cGUgPSBcImR3Z1wiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmR3Z1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWQzRER4ZigpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWQzRER4ZkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJkeGZcIjtcclxuICAgIHJlcXVlc3QubW9kZWwzRCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogRmFicmlrYW50ZW5GaWxlVmlld01vZGVsKSA9PiB7XHJcbiAgICAgIHRoaXMuU3RhcnREb3dubG9hZChtb2RlbC5kYXRhLCBcIi5keGZcIik7XHJcbiAgICAgIHRoaXMuRG93bmxvYWQzRER4ZkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWQyREF1dG9DQUREd2coKTogdm9pZCB7XHJcbiAgICB0aGlzLkRvd25sb2FkMkRBdXRvQ0FERHdnTG9hZGluZyA9IHRydWU7XHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBGYWJyaWthbnRlbkZpbGVSZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG4gICAgcmVxdWVzdC5maWxlVHlwZSA9IFwiZHdnXCI7XHJcbiAgICByZXF1ZXN0Lm1vZGVsM0QgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmR3Z1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZDJEQXV0b0NBRER3Z0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWQyRER4ZigpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWQyRER4ZkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJkeGZcIjtcclxuICAgIHJlcXVlc3QubW9kZWwzRCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuZ2V0RmFicmlrYW50ZW5GaWxlVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLlN0YXJ0RG93bmxvYWQobW9kZWwuZGF0YSwgXCIuZHhmXCIpO1xyXG4gICAgICB0aGlzLkRvd25sb2FkMkREeGZMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkUkZBKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Eb3dubG9hZFJGQUxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJyZmFcIjtcclxuICAgIHJlcXVlc3QubW9kZWwzRCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuZ2V0RmFicmlrYW50ZW5GaWxlVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLlN0YXJ0RG93bmxvYWQobW9kZWwuZGF0YSwgXCIucmZhXCIpO1xyXG4gICAgICB0aGlzLkRvd25sb2FkUkZBTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTdGFydERvd25sb2FkKGRhdGE6IGFueSwgZXh0ZW5zaW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmlkICE9IG51bGwpIHtcclxuICAgICAgdmFyIGlkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5pZDtcclxuXHJcbiAgICAgIHZhciBhcnIgPSBkYXRhO1xyXG4gICAgICB2YXIgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyKTtcclxuICAgICAgdmFyIGEgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG5cclxuICAgICAgdmFyIGZpbGVuYW1lID0gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlUHJvZHVjdChpZCk7XHJcbiAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucmVwbGFjZSgvW15hLXowLTldL2dpLCAnXycpICsgZXh0ZW5zaW9uO1xyXG5cclxuICAgICAgYS5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfSkpO1xyXG4gICAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7XHJcblxyXG4gICAgICAvLyBBcHBlbmQgYW5jaG9yIHRvIGJvZHkuXHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICAgICAgYS5jbGljaygpO1xyXG5cclxuXHJcbiAgICAgIC8vIFJlbW92ZSBhbmNob3IgZnJvbSBib2R5XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBhbGVydCgnZXJyb3I6IG5vIHByb2R1Y3Qgc2VsZWN0ZWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlbG9hZHNcclxuXHJcbiAgcHJpdmF0ZSBUcmlnZ2VyUmVsb2FkcyhDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHZhciBhcnJheSA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0Py5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgIGlmIChhcnJheSAhPSBudWxsICYmIGFycmF5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGlmICh0aGlzLlNlbGVjdGVkVGFiID09IFwiQmVzdGVrXCIpIHtcclxuICAgICAgICB0aGlzLkJlc3Rla1NlcnZpY2UuTG9hZEZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkIGFzIHN0cmluZywgQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuU2VsZWN0ZWRUYWIgPT0gXCIzRFwiKSB7XHJcbiAgICAgICAgdGhpcy5XZWJHTFNlcnZpY2UuTG9hZEZhYnJpa2FudGVuM0RWaWV3TW9kZWwodGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQgYXMgc3RyaW5nLCBDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5TZWxlY3RlZFRhYiA9PSBcIjJEXCIpIHtcclxuICAgICAgICB0aGlzLlNWR1NlcnZpY2UuTG9hZEZhYnJpa2FudGVuU1ZHVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkIGFzIHN0cmluZywgQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBCcmVhZGNydW1iXHJcblxyXG4gIHB1YmxpYyBHZXRTdGVwcygpOiBBcnJheTxGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsPiB7XHJcbiAgICB2YXIgcmV0dXJuYXJyYXkgPSBuZXcgQXJyYXk8RmFicmlrYW50ZW5DYXRlZ29yeVZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICB2YXIgYXJyYXkgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsPy5jYXRlZ29yeUxheWVycztcclxuXHJcbiAgICBpZiAoYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFycmF5W2ldLnNlbGVjdGVkT3B0aW9uICE9IDApIHtcclxuICAgICAgICAgIHZhciBvcHRpb25zID0gYXJyYXlbaV0uY2F0ZWdvcmllcztcclxuXHJcbiAgICAgICAgICBpZiAob3B0aW9ucyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgb3B0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zW2pdLmlkID09PSBhcnJheVtpXS5zZWxlY3RlZE9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuYXJyYXkucHVzaChvcHRpb25zW2pdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmV0dXJuYXJyYXk7XHJcbiAgfVxyXG59XHJcbiJdfQ==